Open-source версия Telegram inline-бота для поиска характеристик мобильных устройств. Бот использует парсинг GSMArena/Helpix, локальный SQLite-кеш, fuzzy search и пользовательские настройки.
Основной публичный Telegram-инстанс закрывается: его слишком дорого и неудобно поддерживать как постоянно работающий сервис. Репозиторий опубликован, чтобы проект можно было запускать самостоятельно, изучать, дорабатывать или использовать как основу для своего бота.
Если вам нужны только данные по устройствам, проще использовать поддерживаемый API:
API продолжает поддерживаться и работать независимо от основного Telegram-бота. В нём доступны уже спаршенные устройства, поэтому в большинстве случаев не нужно поднимать своего бота, парсер и локальную базу.
Код API-сервера не входит в этот open-source репозиторий. В публичной версии также нет API-dashboard, создания API-ключей и команды /api в Telegram-боте.
- Inline-поиск устройств в Telegram через Telethon.
- Fuzzy search по локально закешированным устройствам.
- Парсеры GSMArena и Helpix.
- SQLite-хранилище для кеша, настроек и предложений устройств.
- Пользовательские настройки бота.
- Python 3.11+
- Telegram bot token от BotFather
- Telegram API ID/hash с https://my.telegram.org
- SQLite, он входит в стандартную поставку Python
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .envЗаполните .env своими Telegram credentials и нужными настройками запуска. Приложение читает настройки из переменных окружения:
set -a
source .env
set +apython bot.pyОсновные переменные окружения:
TELEGRAM_BOT_TOKEN,TELEGRAM_TEST_BOT_TOKENTELEGRAM_API_ID,TELEGRAM_API_HASHGSMARBOT_DB_PATH, по умолчаниюgsmarbot.dbGSMARBOT_SOURCE_URL, по умолчаниюhttps://github.com/appsfolder/gsmarbotPROXY_URLS- необязательный список прокси через запятую
Runtime-файлы намеренно игнорируются git: SQLite-базы, Telethon-сессии, логи, API key JSON, proxy lists, локальные кеши и приватный API-код.
bot.py- точка входа Telegram-бота.bot_state.py- совместимость и helpers вокруг SQLite-состояния.modules/config.py- конфигурация через переменные окружения.modules/db.py- SQLite-схема и доступ к данным.modules/parserengine.py- web search и парсинг страниц устройств.modules/fuzzengine.py- локальный fuzzy search.modules/articlesbuilder.py,modules/keyboardbuilder.py,modules/reformer.py- форматирование inline-выдачи Telegram.modules/utils.py- небольшие общие helpers.site/- статические страницы и документация hosted API.misc/- локализация и вспомогательные данные.
MIT