Безсерверний бот, який автоматично відстежує безкоштовні роздачі ігор на популярних платформах, таких як **Epic Games**, **Steam** та **PlayStation Plus**. Він розроблений для запуску за розкладом, перевірки нових пропозицій та надсилання своєчасних, гарно відформатованих сповіщень у Telegram-канал, щоб ви ніколи не пропустили роздачу.
Можливості
✔Моніторинг кількох платформ: Відстежує безкоштовні ігри на Epic Games, Steam та PlayStation Plus (місячні ігри та ігри з каталогу).
✔Сповіщення в Telegram: Надсилає зрозумілі, відформатовані повідомлення у вказаний Telegram-канал про анонси нових ігор.
✔Ручний запуск: Можливість миттєво запустити перевірку за допомогою команди `/check` в Telegram (тільки для адміністратора).
✔Постійне сховище: Використовує Upstash (Redis) для зберігання даних у продакшені та локальний JSON-файл для розробки, що запобігає повторним сповіщенням.
✔Безсерверне розгортання: Створено для роботи як економічно ефективна безсерверна функція на таких платформах, як Vercel.
✔Перевірки за розкладом: Використовує cron-завдання (налаштовані у `vercel.json`) для автоматизації періодичних перевірок нових роздач.
✔Гнучке налаштування: Легко вмикайте або вимикайте модулі платформ та налаштовуйте поведінку бота через центральний файл налаштувань.
Використані технології
Структура проєкту
game-hunt/
├── 📁 api/ # Вхідна точка для безсерверної функції Vercel
│ ├── 📄 check-games.js # Головний обробник (для cron-завдань)
│ └── 📄 webhook.js # Обробник команд від Telegram (напр., /check)
├── 📁 config/ # Файли конфігурації
│ └── 📄 settings.js # Перемикачі модулів та налаштування бота
├── 📁 data/ # Локальне сховище даних для розробки
│ └── 📄 games.json # Зберігає поточні та попередні списки ігор
├── 📁 lib/ # Основні модулі з логікою
│ ├── 📄 epic-games.js # Логіка для отримання даних з Epic Games
│ ├── 📄 steam.js # Логіка для отримання даних зі Steam
│ ├── 📄 ps-plus.js # Логіка для отримання даних з PlayStation Plus
│ ├── 📄 storage.js # Обробляє читання/запис у KV або локальний JSON
│ ├── 📄 kv.js # Конфігурація клієнта Upstash Redis
│ └── 📄 telegram.js # Обробляє надсилання повідомлень у Telegram
├── 📄 test-all.js # Комплексний скрипт для локального тестування
├── 📄 .env.example # Приклад змінних середовища
├── 📄 vercel.json # Конфігурація розгортання та cron-завдань Vercel
└── 📄 package.json # Залежності та скрипти проєкту