helper webservice
This commit is contained in:
parent
73c6f13b0e
commit
c48ed23155
40
fahrplan/schedhelp.py
Normal file
40
fahrplan/schedhelp.py
Normal file
@ -0,0 +1,40 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import json
|
||||
import datetime
|
||||
import requests
|
||||
|
||||
from http.server import ThreadingHTTPServer, BaseHTTPRequestHandler
|
||||
|
||||
def run():
|
||||
schedule = requests.get('https://api.events.ccc.de/congress/2025/schedule.json').json() # json.load(open('schedule.json', 'r'))
|
||||
talks = []
|
||||
for day in schedule['schedule']['conference']['days']:
|
||||
for room in ['Zero', 'One', 'Fuse', 'Ground']: #day['rooms']:
|
||||
talks += day['rooms'][room]
|
||||
|
||||
|
||||
talks.sort(key=lambda talk: talk['date'])
|
||||
now = datetime.datetime.now()
|
||||
|
||||
upcoming = []
|
||||
for talk in talks:
|
||||
if datetime.datetime.fromisoformat(talk['date']).timestamp() < now.timestamp():
|
||||
continue
|
||||
upcoming.append({'start': talk['start'], 'room': talk['room'], 'title': talk['title']})
|
||||
|
||||
return json.dumps(upcoming)
|
||||
|
||||
|
||||
class Handler(BaseHTTPRequestHandler):
|
||||
def do_GET(self):
|
||||
data = run().encode("utf-8")
|
||||
self.send_response(200)
|
||||
self.send_header("Content-Type", "text/plain; charset=utf-8")
|
||||
self.send_header("Content-Length", str(len(data)))
|
||||
self.end_headers()
|
||||
self.wfile.write(data)
|
||||
|
||||
if __name__ == '__main__':
|
||||
server = ThreadingHTTPServer(("0.0.0.0", 8000), Handler)
|
||||
server.serve_forever()
|
||||
Loading…
Reference in New Issue
Block a user