import os from dataclasses import dataclass from datetime import datetime from pprint import pprint import mysql.connector @dataclass class Event: """ An Event with id,name,start,stop,location,description,organiser """ id: int name: str start: datetime stop: datetime location: str description: str organiser: str def fetch_events() -> list[Event]: mydb = mysql.connector.connect( host=os.environ.get("MYSQL_URL", "mysql.pvv.ntnu.no").strip(), user=os.environ.get("MYSQL_USER", "calendar-bot").strip(), password=os.environ["MYSQL_PASSWORD"].strip(), database="www-data_nettside", ) mycursor = mydb.cursor() mycursor.execute(""" SELECT id,name,start,stop,location,description,organiser FROM events WHERE DATE(start) = CURDATE() """) db_result = mycursor.fetchall() results = [] for row in db_result: results.append( Event( id=row[0], name=row[1], start=datetime.fromisoformat(row[2]), stop=datetime.fromisoformat(row[3]), location=row[4], description=row[5], organiser=row[6], ), ) return results if __name__ == "__main__": pprint(fetch_events())