async def main(): logger = get_logger() logger.info("Start") auth = GAuth(logger) with open(f'{os.environ.get("SECRETS")}/creds.json', 'r') as f: creds = json.load(f) mail = GMail(auth.mail, logger) session = aiohttp.ClientSession() reports = Reports(session, mail, creds, logger) # Login login = asyncio.create_task(reports.login()) # Get events to process calendar = GCal(auth.calendar, creds["cal_id"], logger) calendar.query_calendar() # Make sure we're logged in & process events await login if len(calendar.users) > 0: # Call reports.dowload_reports_and_send_draft for each new event, this downloads report and creates draft done, pending = await asyncio.wait([ reports.download_reports_and_send_draft(data) for data in calendar.users ]) # Patch events that drafts were succesfully created for (returned +ve) for task in done: if result := task.result(): calendar.patch(result)
def viewCal(): gcal = GCal() id1 = gcal.get_tempID() oldEvents = gcal.get_events(calendar='temp', daysPast=2, daysFuture=7) gcal.delete_multiple('main', oldEvents) if request.method == 'GET': sciPyLAS.run() tempList = gcal.get_events(calendar='temp', daysPast=0, daysFuture=7) if request.method == 'POST': gcal.migrate_events() for i in tempList: ID = i.name try: temp = request.form[ID] gcal.delete_event('temp', ID) except: pass return render_template('viewCal.html', id1=id1, tempList=tempList)
def main(): parser = argparse.ArgumentParser(parents=[tools.argparser]) parser.add_argument('-n', '--new-creds', action='store_true', default=False, help="Clear previously saved Google credentials") cms_group = parser.add_mutually_exclusive_group() cms_group.add_argument('-s', '--skip-cms', action='store_true', default=False, help="Skip enrolling to CMS courses") cms_group.add_argument('-o', '--only-cms', action='store_true', default=False, help="Only enrol to CMS courses") args = parser.parse_args() if not args.only_cms: gcal = GCal(args.new_creds) set_cal(gcal) reg_sections = erp.get_reg_sections() print("Fetched registered courses from ERP.") final_secions = override_sections(reg_sections) for course_code, sections in final_secions.items(): course = get_course(course_code, sections) if not args.skip_cms: enrol_cms(course_code, sections) if not args.only_cms: for event in make_course_events(course): gcal.create_event(event) gcal.print_event(event, "Created", "in GCal.")
def __init__(self): self.calendar = GCal(config.CONTACTS_CAL_ID) self.agenda = GContacts() self.agenda.retrieve_contacts()
try: temp = request.form[ID] gcal.delete_event('temp', ID) except: pass return render_template('viewCal.html', id1=id1, tempList=tempList) @app.route('/createEvent', methods=['GET', 'POST']) #Function that runs when page opens def event(): elements = {'name': '', 'startTime': '0', 'endTime': '0'} if request.method == 'POST': #Checks to see if all the boxes are filled for i in elements: if request.form[i] != '': elements[i] = request.form[i] event = generateEvent(elements['name'], elements['startTime'], elements['endTime']) return redirect(url_for('index')) #Defines what html page runs when page is opened return render_template('event.html') if __name__ == '__main__': cal = GCal() app.run()
def __init__(self, weather_api_token,google_cloud_api_key=None): self.weather_api_token = weather_api_token self.google_cloud_api_key = google_cloud_api_key self.calendar = GCal()