Skip to content

Уведомления о подарках Telegram

Notifications You must be signed in to change notification settings

junioraww/TGifts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TGifts (WIP)

Полу-автоматический скрипт для покупки подарков

Планируются реализации для виртуалок, desktop-приложений, Android-приложений и так далее. Данный код (при желании) можно подогнать под любую задачу.

Концепт

Работу по проверке магазина подарков и будущей покупки подарков выполняют worker'ы, каждый из них запускается в своем контейнере, машине или на отдельном смартфоне

Вместо парсинга DOM-элементов (то есть поиска HTML-блоков), выполняется поиск по визуальным составляющим (в скриншотах). Есть минусы, например - повышенные требования к ресурсам, НО! Поиск по скриншотам упрощает настройку и открывает возможности для интеграции с OCR / аналитическими нейросетями

Код построен так, что бы worker'ы могли иметь разные реализации (Android-приложение, Chrome-клиент Telegram Web и так далее). То есть даже на парковке работать будет.

Периодически worker'ы отправляют ping на центральный сервер (main worker). Для их общения используются вебсокеты с self-signed certs (защищенное TCP соединение). Если worker перестает посылать ping, админ сразу получает уведомление.

Использование

На данный момент реализован Chrome-клиент Telegram Web под Linux Desktop, то есть необходима машина Linux с графической средой.

Покупка подарков не реализована, только уведомление о новых подарках (если включен 1 воркер - уведомление приходит раз в 15 секунд, если 2 - то 7,5 секунд, и так далее)

  1. Запуск main:
$ git clone https://github.com/JuniorAww/tgifts
cd TGifts
bash ./how-to-get-certs.md
bun .
  1. Запуск worker:
$ cd worker/web-python
python3 index.py
  1. Команды бота (main):
/fetch worker_name - отобразить последний скриншот от воркера и время ping'а
/add worker_name - разрешить подключение для нового воркера
/click worker_name x,y - отправить команду для нажатия и отобразить скриншот
/save worker_name image_name - сохранить изображение у воркера worker_name

To Do

  • Алгоритм в main worker для распределения времени парсинга
    (Объяснение) Что бы время между проверками шопа подарков разными worker'ами было минимально, нужно "распределять" работу - то есть давать команду сначала воркеру А, затем воркеру Б. Сейчас они работают асинхронно (сервер не регулирует)
  • OCR поиск текста
  • Worker под Android-клиент или виртуалку
  • Упростить работу с ботом

Спасибо за просмотр!

About

Уведомления о подарках Telegram

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published