calendarwatch_backend/Routine.py

48 lines
1.6 KiB
Python
Raw Normal View History

from server import db
2020-05-15 16:00:11 +02:00
from server.models import User, Calendar
from backend import caltojson
2020-05-15 16:00:11 +02:00
import os
import google.oauth2.credentials
import json
class Routine:
def start(self, time=10):
self.updateCalendars()
def updateCalendars(self):
users = User.query.all()
for user in users:
# check google:
credentials = user.getGoogleCredentials()
if credentials is None:
continue
2020-05-15 16:00:11 +02:00
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)
2020-05-15 16:00:11 +02:00
calendarjson = caltojson.generateJsonFromCalendarEntries(visualCals, googleCreds)
user.setJson(calendarjson)
2020-05-15 16:00:11 +02:00
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)
2020-05-15 16:00:11 +02:00
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()