🌰

MyKyivBot

Твій персональний асистент у Києві. Автоматичний моніторинг світла, погода та дозвілля.

Aiogram 3 Telethon (MTProto) WeatherAPI AsyncIO

💡 Про Проект

MyKyivBot — це комплексне рішення для жителів столиці. Бот агрегує найважливішу інформацію в одному інтерфейсі, позбавляючи необхідності підписуватись на десятки каналів. Головна "фішка" — це отримання актуальних графіків відключень світла безпосередньо з першоджерела (ДТЕК) без затримок.

📱 Функціонал Меню

Інтерактивне меню бота складається з наступних розділів:

🛠 Технічна Реалізація (Codebase)

Приклад реалізації парсингу графіків через Telethon. Це дозволяє обійти відсутність публічного API у ДТЕК.

handlers/electricity_graphics.py
async def get_latest_kyiv_schedule() -> list[dict]:
    # Ініціалізація клієнта Telethon (User-bot)
    await client.start()
    
    # Отримуємо історію повідомлень каналу ДТЕК
    messages = await client.get_messages("@dtek_ua", limit=40)
    TARGET_PHRASE = "Київ: графіки відключень"

    for msg in messages:
        # Фільтрація за датою (не старіше 3 днів)
        if msg.date < datetime.now(timezone.utc) - timedelta(days=3):
            break
        
        # Пошук ключової фрази в тексті
        if msg.message and TARGET_PHRASE.lower() in msg.message.lower():
            if msg.photo:
                # Завантаження актуального фото графіку
                photo_path = await msg.download_media(
                    file=f"electricity_graphics_images/schedule_latest.jpg"
                )
                return [{"photo": photo_path, "text": msg.message}]
    
    return [{"text": "✅ Наразі графіків відключень немає. Світло є!"}]