import os import sys import time import datetime from .__events__ import getEvents from . import ( lesson, evening, week_file, analytics ) from models import logger def run(): # LOADERSTATE = 0 # LOADERS = [ #? https://github.com/sindresorhus/cli-spinners/ # "⠉⠉", # "⠈⠙", # "⠀⠹", # "⠀⢸", # "⠀⣰", # "⢀⣠", # "⣀⣀", # "⣄⡀", # "⣆⠀", # "⡇⠀", # "⠏⠀", # "⠋⠁" # ] minute = -1 logger.success('Events', 'Started') logger.log('Events', 'Detected events: '+', '.join([_.__name__ for _ in getEvents()])) # type: ignore try: while True: time.sleep(5) date = datetime.datetime.now() logger.log('Events', '', True) if date.minute == minute: continue minute = date.minute for event in getEvents(): if date.weekday() in event.weekdays: for eventTime in event.time: if [date.hour, date.minute] == [eventTime.hour, eventTime.minute]: logger.log(f'event.{event.__name__}', f'Executing... ') # type: ignore try: status = event.execute() except Exception as e: logger.error(f'event.{event.__name__}', f'Error -> {e}') # type: ignore continue logger.success(f'event.{event.__name__}', f'Executed -> {status}') # type: ignore logger.warn('Events', f'Pause for {event.sleep+1}s') time.sleep(event.sleep + 61) except KeyboardInterrupt: logger.error('Main', 'Exiting by Ctrl+C... ') return