Initial commit
This commit is contained in:
51
main.py
Normal file
51
main.py
Normal file
@@ -0,0 +1,51 @@
|
||||
"""Entry point — wires everything together."""
|
||||
import asyncio
|
||||
import logging
|
||||
|
||||
from aiogram import Bot, Dispatcher
|
||||
from aiogram.fsm.storage.memory import MemoryStorage
|
||||
|
||||
from config import TOKEN
|
||||
from hashing import preload_backup_hashes
|
||||
from middlewares import TosMiddleware, UsernameTrackerMiddleware
|
||||
from persistence import load_backup_ids, load_blacklist, load_confirmed_users
|
||||
from routers import admin, group, private
|
||||
|
||||
logging.basicConfig(
|
||||
level=logging.INFO,
|
||||
format="%(asctime)s [%(levelname)s] %(name)s: %(message)s",
|
||||
)
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
async def main() -> None:
|
||||
# 1. Load persisted data
|
||||
load_backup_ids()
|
||||
load_confirmed_users()
|
||||
load_blacklist()
|
||||
|
||||
bot = Bot(token=TOKEN)
|
||||
dp = Dispatcher(storage=MemoryStorage())
|
||||
|
||||
# 2. Log cached hashes
|
||||
import bot_state as state
|
||||
logger.info("Loaded %d file hashes from cache.", len(state.backup_hashes))
|
||||
|
||||
# 3. Middlewares
|
||||
dp.update.outer_middleware(UsernameTrackerMiddleware())
|
||||
dp.update.outer_middleware(TosMiddleware())
|
||||
|
||||
# 4. Routers
|
||||
dp.include_router(private.router)
|
||||
dp.include_router(admin.router)
|
||||
dp.include_router(group.router)
|
||||
|
||||
# 5. Background tasks
|
||||
asyncio.create_task(group.purge_chatroom_semipublic_group(bot))
|
||||
|
||||
logger.info("Bot starting…")
|
||||
await dp.start_polling(bot)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
asyncio.run(main())
|
||||
Reference in New Issue
Block a user