/
Ksq
/
telegram_bot
Обзор
Документация
Войти
/
Ksq
/
telegram_bot
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
main.py
80 строк
3 KB
KSQ-web
бот из первого плейлиста
15 дек 2024, 19:45
15 дек 2024, 19:45
64ac3cb
Код
Авторство
О чём код?
from aiogram import Bot, Dispatcher, F import asyncio from dotenv import load_dotenv import os from aiogram.filters import Command from utils.commands import set_commands from handlers.start import get_start from state.register import RegisterState from state.create import CreateState from handlers.profile import viewn_game, viewn_game_date, add_match_player, delete_match_player, edit_subscription from handlers.register import start_register, register_name, register_phone from handlers.admin.create import create_game, select_place, select_date, select_time, select_minplayer, select_maxplayer, select_price from handlers.balance import viewn_balance, add_balance, process_pre_checkout_query, success_payment from handlers.user_game import viewn_user_game, pay_game from filters.CheckAdmin import CheckAdmin import logging logging.basicConfig(level=logging.WARNING, filename='bot_log.log', format="[%(asctime)s] - [%(levelname)s] - %(funcName)s: %(lineno)d - %(message)s", datefmt='%d-%m-%y %H:%M:%S' ) load_dotenv() token = os.getenv('TOKEN') admin_id = os.getenv('ADMIN_ID') bot = Bot(token=token, parse_mode='HTML') dp = Dispatcher() async def start_bot(bot: Bot): await bot.send_message(you_id_telegram, text='Я запустил бота') dp.startup.register(start_bot) dp.message.register(get_start, Command(commands='start')) #Регистрируем хендлеры регистрации dp.message.register(start_register, F.text=='Зарегистрироваться на сайте') dp.message.register(register_name, RegisterState.regName) dp.message.register(register_phone, RegisterState.regPhone) #Регистрируем хендлеры с созданием игры dp.message.register(create_game, Command(commands='create'), CheckAdmin()) dp.callback_query.register(select_place, CreateState.place) dp.callback_query.register(select_date, CreateState.date) dp.callback_query.register(select_time, CreateState.time) dp.message.register(select_minplayer, CreateState.minplayer) dp.message.register(select_maxplayer, CreateState.maxplayer) dp.message.register(select_price, CreateState.price) #Регистрируем хендлеры профиля <<Актуальные игры>> dp.message.register(viewn_game, F.text=='Актуальные игры') dp.callback_query.register(viewn_game_date, F.data.startswith('viewn_date_')) dp.callback_query.register(add_match_player, F.data.startswith('add_match')) dp.callback_query.register(delete_match_player, F.data.startswith('delete_match')) #Регистрируем хендлеры профиля <<Баланс>> dp.message.register(viewn_balance, F.text=='Баланс') dp.callback_query.register(add_balance, F.data.startswith('add_balance')) dp.pre_checkout_query.register(process_pre_checkout_query) dp.message.register(success_payment, F.successful_payment) #Регистрируем хендлеры профиля <<Ваши игры>> dp.message.register(viewn_user_game, F.text=='Ваши игры') dp.callback_query.register(pay_game, F.data.startswith('pay_game')) dp.callback_query.register(edit_subscription, F.data.startswith('edit_sub')) async def start(): await set_commands(bot) try: await dp.start_polling(bot, skip_updates=True) finally: await bot.session.close() if __name__ == '__main__': asyncio.run(start())