WorldWideNewsTelegramBot — це Telegram-бот, який надає користувачам новини з різних країн світу через зручну систему багаторівневого меню. Реалізований із дотриманням принципів модульності, безпечного зберігання даних та масштабованості.
- 📋 Багаторівневе навігаційне меню.
- 📌 Збереження стану користувача між сесіями (через
pickleі Google Cloud Storage). - 🧱 Клас-базована архітектура (
Action,NavigatorController,BotController,NewsReceiver). - 🗞️ Публікація новин у Markdown-форматі.
- 🔐 Інтеграція з Google Cloud Secret Manager для безпечної роботи з токенами та ключами.
- ☁️ Працює у серверлес-середовищі через Webhook — без використання long polling.
- 📦 Чітка структура проєкту, легко розширюється та підтримується.
main.py– Запускає Telegram-бота і починає опитування повідомлень.bot_controller.py– Контролер, який спрямовує вхідні повідомлення до відповідних дій.bot_model.py(NewsReceiver) – Основна бізнес-логіка: отримання новин, збереження даних, повернення відповіді.bot_view.py– Відповідає за форматування новин у вигляді Markdown-повідомлень.navigation_menu.py– Реалізація багаторівневого меню для вибору країни або теми.user_model.py– Модель користувача з поточними виборами.user_storage.py– Серіалізація даних користувача та збереження в хмарі.error_handler.py– Централізована обробка помилок.
requirements.txt– Перелік зовнішніх бібліотек (наприклад,pyTelegramBotAPI, бібліотеки Google Cloud,wwntgbotlib).cloudbuild.yaml– Налаштування для автоматичної збірки й деплою в GCP через Cloud Build.
Проєкт реалізовано з використанням таких технологій та бібліотек:
- Версія: Python 3.11+
- Основна мова розробки – застосовується як для логіки Telegram-бота, так і для інтеграції з Google Cloud та обробки даних.
- Бібліотека:
pyTelegramBotAPI - Використовується для створення Telegram-бота, обробки команд, повідомлень та взаємодії з користувачем.
- Google Cloud Storage – зберігання даних користувачів (сесій) у вигляді серіалізованих об'єктів.
- Google Secret Manager – безпечне зберігання конфіденційних даних (наприклад, токенів).
- Cloud Build – автоматизація CI/CD: збірка, тестування та деплой бота.
google-cloud-storage– для роботи з хмарним сховищем Google.google-cloud-secret-manager– для доступу до токенів та ключів через GCP.pickle(вбудована) – для серіалізації об’єктів користувача.wwntgbotlib– власна бібліотека, що містить логіку обробки новин, категорій, країн тощо.
cloudbuild.yaml– опис інструкцій для автоматичного деплою.requirements.txt– список залежностей Python для встановлення.
Цей стек дозволяє створити гнучкий, масштабований Telegram-бот із багаторівневою навігацією, збереженням стану користувача в хмарі та можливістю CI/CD-деплою.
- Створіть Telegram-бота через BotFather.
- Налаштуйте Google Cloud:
- Створіть bucket у Cloud Storage.
- Збережіть секрети в Secret Manager (
BOT_TOKEN,PROJECT_ID, тощо).
- Задеплойте функцію на Google Cloud Functions або інший серверлес-сервіс із підтримкою webhook.
❗ Цей бот не використовує long polling — запуск відбувається за подіями через Webhook.
Цей проєкт поширюється під ліцензією MIT.



