Exemplo n.º 1
0
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)
Exemplo n.º 2
0
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)
Exemplo n.º 3
0
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.")
Exemplo n.º 4
0
 def __init__(self):
     self.calendar = GCal(config.CONTACTS_CAL_ID)
     self.agenda = GContacts()
     self.agenda.retrieve_contacts()
Exemplo n.º 5
0
            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()
Exemplo n.º 6
0
 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()