1
0
Fork 0
This repository has been archived on 2024-02-17. You can view files and clone it, but cannot push or open issues or pull requests.
TelegramEDT/TelegramEDT/__init__.py

56 lines
1.8 KiB
Python

from os.path import isfile
from threading import RLock
from aiogram import Bot, Dispatcher, types
from aiogram.types import reply_keyboard
from aiogram.utils.callback_data import CallbackData
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from TelegramEDT.EDTcalendar import Calendar
from TelegramEDT.base import Base, User
from TelegramEDT.lang import lang
from TelegramEDT.logger import logger
from TelegramEDT.EDTscoped_session import scoped_session
if not isfile("token.ini"):
logger.critical("No token specified, impossible to start the bot !")
exit(1)
API_TOKEN = open("token.ini").readline().replace("\n", "")
ADMIN_ID = 148441652
TIMES = ["", "day", "next", "week", "next week"]
bot = Bot(token=API_TOKEN)
posts_cb = CallbackData("post", "id", "action")
dp = Dispatcher(bot)
engine = create_engine("sqlite:///edt.db")
session_factory = sessionmaker(bind=engine)
Session = scoped_session(session_factory)
if not isfile("edt.db"):
Base.metadata.create_all(engine)
key = reply_keyboard.ReplyKeyboardMarkup()
for k in ["Edt", "Kfet", "Setkfet", "Setedt", "Notif", "Settomuss"]:
key.add(reply_keyboard.KeyboardButton(k))
modules_active = list()
def check_id(user: types.User):
with Session as session:
if (user.id,) not in session.query(User.id).all():
logger.info(f"{user.username} add to the db")
if user.locale and user.locale.language:
lg = user.locale.language
else:
lg = ""
session.add(User(id=user.id, language=lg))
session.commit()
logger.info("Start loading modules")
from TelegramEDT.modules import load_module
for m in ["modules", "basic", "edt", "kfet", "tomuss", "edt_notif", "tools"]:
load_module(m)
logger.info("Modules loading finish")