Files
slidetogether/present/present.py

49 lines
1.1 KiB
Python
Raw Normal View History

2020-05-03 22:51:16 +00:00
#!/usr/bin/env python3
import json
import pyautogui
import requests
import sseclient
import sys
import time
import urllib
ALLOWED_CONTROLS = {'left', 'right'}
if len(sys.argv) != 2:
print(f'usage: {sys.argv[0]} <url>')
sys.exit(1)
url = urllib.parse.urlparse(sys.argv[1])
qs = urllib.parse.parse_qs(url.query)
if 'room' not in qs or len(qs['room']) != 1:
print(f'invald url: {sys.argv[1]}')
room = qs['room'][0]
presentUrl = urllib.parse.urlunparse([
url.scheme,
url.netloc,
'/api/present',
url.params,
urllib.parse.urlencode({'room_id': room}),
url.fragment,
])
while True:
try:
response = requests.get(presentUrl, stream=True)
client = sseclient.SSEClient(response)
for event in client.events():
parsed = json.loads(event.data)
control = parsed['control']
if control not in ALLOWED_CONTROLS:
print(f'INVALID CONTROL: {control}')
continue
print(control)
pyautogui.press(control)
except Exception as e:
print(e)
time.sleep(2)