56 lines
1.8 KiB
Python
56 lines
1.8 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.google_token
|
|
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)
|
|
client_token = GC.build_credentials(user.google_token.token,
|
|
user.google_token.refresh_token)
|
|
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()
|