calendarwatch_backend/Routine.py

54 lines
1.7 KiB
Python

from server import db
from database.models import User, Calendar
from backend import caltojson
import os
import google.oauth2.credentials
import json
class Routine:
def start(self, time=10):
self.updateCalendars()
def updateCalendar(self, user):
# check google:
credentials = user.getGoogleCredentials()
if credentials is None:
return
visualCals = []
calendars = db.session.query(Calendar).filter(Calendar.usr_id==user.id).all()
for calendar in calendars:
if calendar.toggle == 'True':
visualCals.append(calendar.calendar_id)
googleCreds = google.oauth2.credentials.Credentials(**credentials)
calendarjson = caltojson.generateJsonFromCalendarEntries(visualCals, googleCreds)
user.setJson(calendarjson)
'''
directory = 'userinfo/' + user.id + '/'
if not os.path.exists(directory):
os.makedirs(directory)
with open(directory + 'calendarevents.json', 'w', encoding='utf-8') as f:
json.dump(calendarjson, f, ensure_ascii=False, indent=4)
'''
def updateCalendars(self):
users = User.query.all()
for user in users:
self.updateCalendar(user)
def credentials_to_dict(credentials):
return{'token': credentials.token,
'refresh_token': credentials.refresh_token,
'token_uri': credentials.token_uri,
'client_id': credentials.client_id,
'client_secret': credentials.client_secret,
'scopes': credentials.scopes}
if __name__ == "__main__":
routine = Routine()
routine.start()