Bot & Automation
Activity Reminder Bot
/root/hermes-projects/Activity Reminder Bot
apps/activity_reminder_bot/bot/main.py
text
import asyncio
import logging
from aiogram import Bot, Dispatcher
from aiogram.fsm.storage.memory import MemoryStorage
from activity_reminder_bot.bot.handlers import router
from activity_reminder_bot.core.config import get_settings
from activity_reminder_bot.core.logging import setup_logging
from activity_reminder_bot.scheduler.reminder_scheduler import ReminderScheduler
logger = logging.getLogger(__name__)
async def main() -> None:
settings = get_settings()
setup_logging(settings.log_level)
if not settings.telegram_bot_token:
raise RuntimeError("TELEGRAM_BOT_TOKEN belum diisi.")
bot = Bot(token=settings.telegram_bot_token)
dispatcher = Dispatcher(storage=MemoryStorage())
dispatcher.include_router(router)
scheduler = ReminderScheduler(bot)
await scheduler.start()
logger.info("Activity Reminder Bot polling started")
try:
await dispatcher.start_polling(bot)
finally:
await scheduler.shutdown()
await bot.session.close()
if __name__ == "__main__":
asyncio.run(main())