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()
 |