59 lines
1.8 KiB
Python
59 lines
1.8 KiB
Python
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
|