bot/event/__init__.py
2026-08-30 13:48:59 +03:00

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