Experimental communication tools (televex screen + televex print)
https://televex.vvvvvvaria.org/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
142 lines
4.0 KiB
142 lines
4.0 KiB
import feedparser
|
|
import os
|
|
from icalendar import Calendar
|
|
import datetime
|
|
from requests import get
|
|
import urllib
|
|
import json
|
|
import pypandoc
|
|
import time
|
|
|
|
ics = get("https://varia.zone/events.ics").text
|
|
gcal = Calendar.from_ical(ics)
|
|
now = datetime.datetime.now()
|
|
|
|
while True:
|
|
|
|
#os.system("toilet --gay -w 125 -W --filter border:gay \ \ \ \ \ VARIA\ \ \ \ \ ")
|
|
os.system("./venv/bin/python3 tools/ascii-art-but-with-unicode/repeated_sinus_amplitude_variation.py | lolcat -a -d 1")
|
|
print("")
|
|
time.sleep(1)
|
|
|
|
abouts = ["""
|
|
|
|
[NL]
|
|
|
|
Varia is een collectieve ruimte in Rotterdam
|
|
die zich richt op alledaagse technologie.
|
|
|
|
Wij zijn van mening dat technologie niet het
|
|
exclusieve domein van specialisten moet zijn.
|
|
Technologie beinvloedt iedereen en zou verschil-
|
|
lende manieren van leven mogelijk moeten maken,
|
|
in plaats van deze uit te sluiten. We vatten
|
|
alledaagse technologie breed op; niet alleen
|
|
computers, standaarden of protocollen horen
|
|
daarbij, maar bijvoorbeeld ook kookgereedschap
|
|
of muziekinstrumenten.
|
|
|
|
Vanuit onze achtergrond in kunst, ontwerp,
|
|
software & hardware, onderwijs en theoretische
|
|
praktijken, voelen we de behoefte om een plek
|
|
te vormen waar technologie en sociale vragen
|
|
met elkaar verbonden zijn; een plek waar
|
|
samenwerking, continuteit, ontwikkeling,
|
|
collectief leren, nieuwsgierigheid en experi-
|
|
ment voorop staan.
|
|
|
|
""",
|
|
"""
|
|
[EN]
|
|
|
|
Varia is a collective-space in Rotterdam
|
|
focused on everyday technologies.
|
|
|
|
We believe technology should not be the
|
|
exclusive domain of specialists. It affects
|
|
everyone and should enable, rather than
|
|
preclude, diverse ways of living. We under-
|
|
stand everyday technology broadly; not just
|
|
as computers, standards, or protocols, but
|
|
also, for example, as cooking tools or
|
|
musical instruments.
|
|
|
|
Being involved in the fields of art, design,
|
|
software & hardware, education and theoretical
|
|
practices, we felt the need for a place where
|
|
technology and social questions are linked; a
|
|
place where collaboration, continuity, develop-
|
|
ment, collective learning, curiosity and ex-
|
|
periments are foregrounded.
|
|
|
|
"""
|
|
]
|
|
# for lang in abouts:
|
|
# for line in lang.split('\n'):
|
|
# os.system(f"echo '{ line }' | lolcat -a -d 1")
|
|
|
|
os.system("./venv/bin/python3 tools/ascii-art-but-with-unicode/multi_column_page.py | lolcat -a -d 1")
|
|
|
|
print("")
|
|
time.sleep(3)
|
|
|
|
for c in gcal.walk():
|
|
|
|
if c.name == "VEVENT":
|
|
|
|
date = c.get("dtstart").dt
|
|
title = c.get("summary")
|
|
|
|
if date > now:
|
|
|
|
# An attempt to keep TeleVex running throughout the night
|
|
# (even if the Multifeeder/server is not available)
|
|
try:
|
|
url = 'https://multi.vvvvvvaria.org/API/latest/25'
|
|
response = urllib.request.urlopen(url).read()
|
|
multifeeder = json.loads(response)
|
|
|
|
except:
|
|
|
|
multifeeder = []
|
|
os.system("toilet -f script -w 125 --gay Zzz... the server sleeps.")
|
|
|
|
for post in multifeeder:
|
|
|
|
# Clean up the title of the RSS & Calendar
|
|
title_check = title.lower().strip().replace('\n','')
|
|
rss_title_check = post["title"].lower().strip().replace('\n','')
|
|
|
|
if title_check == rss_title_check:
|
|
|
|
os.system("toilet --gay -w 125 -W --filter border:gay \ \ \ COMING UP\ \ \ \ ")
|
|
print("")
|
|
time.sleep(1)
|
|
|
|
description = pypandoc.convert_text(post["summary"], 'plain', format='html',extra_args=['--columns=64'])
|
|
|
|
# Send the event to the terminal·
|
|
|
|
# Title
|
|
os.system(f"toilet -f big --gay -w 125 '{ title }'")
|
|
print("")
|
|
time.sleep(1)
|
|
|
|
# Date
|
|
print(date.strftime("%A %d %B %Y (%H:%M:%S)"))
|
|
print("")
|
|
time.sleep(1)
|
|
|
|
# Description
|
|
lines = [line for line in description.split('\n')]
|
|
for line in lines:
|
|
# HACKY!!!
|
|
line = line.replace('\n', '')
|
|
#line = line.replace('(', '(')
|
|
#line = line.replace(')', ')')
|
|
#line = line.replace(';', '\;')
|
|
#line = line.replace('"', '\"')
|
|
#line = line.replace("'", "\'")
|
|
os.system(f"echo '{ line }' | lolcat -a -d 1")
|
|
print("")
|
|
time.sleep(3)
|
|
|