Telegram-бот для проверки результатов экзамена на сайте greek-language.gr.
Бот умеет:
- проверять результат вручную
- запускать периодическую проверку каждые
nминут - присылать сообщение, когда результат найден
- хранить несколько кодов для одного пользователя
Пользователь отправляет боту код в формате:
CENTER-CANDIDATE-SURNAME-SECRET
Пример:
54321-1234-ANDREOU-the-secret-key
Где:
54321 — код экзаменационного центра
1234 — код кандидата
ANDREOU — фамилия кандидата
the-secret-key — значение GREEK_BOT_SECRET
Этот вариант без Python: скачиваем готовый бинарник из GitHub и запускаем.
- Откройте BotFather.
- Отправьте команду:
/newbot
- BotFather выдаст токен вида:
1234567890:AA...
- Сохраните токен, он нужен в
settings.ini.
- Cкачайте архив под вашу ОС:
- Распакуйте архив в отдельную папку.
После распаковки будут:
- исполняемый файл (
dist/greek-botилиdist/greek-bot.exe) settings.ini.example- README.md
Скопируйте шаблон settings.ini.example в dist/settings.ini (рядом с исполняемым файлом), откройте settings.ini и заполните:
[bot]
TELEGRAM_BOT_TOKEN=1234567890:AA...
GREEK_BOT_SECRET=the-secret-key
GREEK_BOT_DB=greek_results_bot.sqlite3Пояснения:
TELEGRAM_BOT_TOKEN— токен из BotFatherGREEK_BOT_SECRET— ваш секрет для кода активацииGREEK_BOT_DB— путь к SQLite-файлу (можно оставить как есть)
Linux/macOS:
chmod +x ./greek-bot
./greek-botWindows:
Двойной клик по greek-bot.exe или через терминал PowerShell:
.\greek-bot.exeБот работает, пока открыт этот процесс. Остановка: Ctrl+C.
Этот вариант для запуска из исходников или своей сборки.
- Python 3.10+
- Bash (для
start.sh/stop.sh)
git clone https://github.com/mrfeod/grexch.git
cd grexchcp .env.example .envОткройте .env и заполните переменные:
TELEGRAM_BOT_TOKEN=1234567890:AA...
GREEK_BOT_SECRET=the-secret-key
GREEK_BOT_DB=greek_results_bot.sqlite3Запуск:
bash ./start.shОстановка:
bash ./stop.shИли напрямую (нужно создать venv и установить requirements):
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python greek.pyПосле команды /start бот просит ввести код активации.
Проверить все сохраненные коды вручную.
Запустить периодическую проверку раз в n минут.
Пример:
/run 30
Остановить периодическую проверку.
Показать все добавленные коды пользователя.
Удалить один код.
Пример:
/remove 54321-1234-ANDREOU
Удалить все коды пользователя и остановить периодическую проверку.
- При команде
/checkбот покажет ошибку запроса. - При фоновой проверке через
/run nбот продолжит попытки и отправит результат, когда сайт снова ответит.
ChatGPT для проверки результатов: https://chatgpt.com/g/g-69fdbaa828108191be1aa3402710020e-greek-exam-results
Команда mac/ios для проверки результатов: https://www.icloud.com/shortcuts/0874759a39b84e64b21b2e601a773769
grexch_apple.mp4
Однострочный bash-скрипт для получения результата в человекочитаемом виде:
CODE=КОД_КАНДИДАТА; SURNAME=ФАМИЛИЯ; curl -sS 'https://www.greek-language.gr/certification/results/index.html' -X POST --data-raw "inputCenterCode=35703&inputCandidateCode=${CODE}&inputCandidateSurname=${SURNAME}" | LC_ALL=C.UTF-8 perl -Mutf8 -CSDA -0777 -pe 's#<img[^>]*checkon\.png[^>]*># ✓#g;s#<img[^>]*>##g;s#</th><td><table[^>]*>#\n#g;s#</(?:h4|p|tr)>#\n#g;s#</b># #g;s#</td><td[^>]*># #g;s#<[^>]+>##g;s#^\s+|\s+$##gm;s#[ \t]{2,}# #g;s#\n+#\n#g;s#\z#\n#'Нужно поменять CODE и SURNAME на свои.
inputCenterCode=35703 - по умолчанию введен код экзаменационного центра на Кипре, если вы сдавали экзамен в другом центре, этот код тоже нужно поменять.