package-afra-status/service
2024-01-09 11:16:14 +01:00

45 lines
1,015 B
Python

#!/usr/bin/env python
import logging
from datetime import datetime, timedelta
from time import sleep
from pytz import utc
from requests import get
from hosted import device
logging.basicConfig(level=logging.INFO)
log = logging.getLogger("afra-status")
last_open = datetime.now(utc)
while True:
try:
r = get("https://spaceapi.afra-berlin.de/v1/status.json")
r.raise_for_status()
status = r.json()
except Exception as e:
log.exception("error while fetching status")
status = {
"state": {
"open": None,
},
}
try:
if status["state"]["open"]:
last_open = datetime.now(utc)
log.info('afra is open')
else:
log.info('afra is closed')
except KeyError:
log.exception("open status was not in state json")
if datetime.now(utc) - last_open > timedelta(minutes=2):
device.screen(on=False)
else:
device.screen(on=True)
sleep(30)