Add modular Roblox buyer bot and documentation
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
import asyncio
|
||||
import logging
|
||||
from datetime import datetime
|
||||
|
||||
from aiogram import Bot, Dispatcher
|
||||
from aiogram.enums import ParseMode
|
||||
from aiogram.fsm.storage.memory import MemoryStorage
|
||||
from aiogram.client.default import DefaultBotProperties
|
||||
|
||||
from config import ADMIN_ID, BOT_TOKEN, LOG_BOT_TOKEN, SHOP_NAME
|
||||
from db.storage import load_config, load_stats
|
||||
from handlers import admin, start, upload, user
|
||||
from runtime import set_bots
|
||||
from utils.logging import log_admin
|
||||
|
||||
|
||||
async def main() -> None:
|
||||
defaults = DefaultBotProperties(parse_mode=ParseMode.HTML)
|
||||
bot = Bot(token=BOT_TOKEN, default=defaults)
|
||||
log_bot = Bot(token=LOG_BOT_TOKEN, default=defaults) if LOG_BOT_TOKEN else None
|
||||
set_bots(bot, log_bot)
|
||||
|
||||
dispatcher = Dispatcher(storage=MemoryStorage())
|
||||
dispatcher.include_router(start.router)
|
||||
dispatcher.include_router(user.router)
|
||||
dispatcher.include_router(admin.router)
|
||||
dispatcher.include_router(upload.router)
|
||||
|
||||
load_config()
|
||||
load_stats()
|
||||
await log_admin(
|
||||
bot,
|
||||
ADMIN_ID,
|
||||
f"<b>{SHOP_NAME}</b> started\n{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}",
|
||||
log_bot,
|
||||
)
|
||||
try:
|
||||
await dispatcher.start_polling(bot)
|
||||
finally:
|
||||
if log_bot:
|
||||
await log_bot.session.close()
|
||||
await bot.session.close()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
logging.basicConfig(
|
||||
level=logging.INFO,
|
||||
format="%(asctime)s - %(levelname)s - %(message)s",
|
||||
handlers=[
|
||||
logging.FileHandler("bot.log", encoding="utf-8"),
|
||||
logging.StreamHandler(),
|
||||
],
|
||||
)
|
||||
asyncio.run(main())
|
||||
Reference in New Issue
Block a user