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.
|
|
import datetime
from dateutil import rrulefrom gapi.apis.calendar_api import get_calendars_from_api, calendar_apifrom gapi.apis.calendar_api.models import Event
from scraper import get_classes, Class
LOCATION = "5500 St Louis Ave, Chicago, IL 60625"
def rrule_former(class_obj): days = class_obj.days start = datetime.datetime.combine( class_obj.date_range[0], class_obj.time_range[0] ).astimezone() end = datetime.datetime.combine( class_obj.date_range[1], class_obj.time_range[1] ).astimezone()
days = [(day - 1) % 7 for day in days] ret = rrule.rrule( freq=rrule.WEEKLY, dtstart=start, wkst=rrule.SU, until=end, byweekday=days ) return ret
if __name__ == "__main__": with open("schedule.html", "rb") as file: data = file.read() _class: Class my_api = calendar_api( "Class upload", scopes=["https://www.googleapis.com/auth/calendar"] ) calendars = get_calendars_from_api(my_api) classes = [] for _class in get_classes(data): if _class.time_range is not None: e = Event( datetime.datetime.combine(_class.date_range[0], _class.time_range[0]), datetime.datetime.combine(_class.date_range[0], _class.time_range[1]), _class.title, "location: {}".format(_class.location), [rrule_former(_class)], location=LOCATION, )
classes.append(e) for _class in classes: school_calendar.update_or_add_event(_class)
|