Skip to content

mrfeod/grexch

Repository files navigation

Greek Results Bot

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 и запускаем.

1. Создайте Telegram-бота

  1. Откройте BotFather.
  2. Отправьте команду:
/newbot
  1. BotFather выдаст токен вида:
1234567890:AA...
  1. Сохраните токен, он нужен в settings.ini.

2. Скачайте бинарник из GitHub

  1. Cкачайте архив под вашу ОС:
  1. Распакуйте архив в отдельную папку.

После распаковки будут:

  • исполняемый файл (dist/greek-bot или dist/greek-bot.exe)
  • settings.ini.example
  • README.md

3. Настройте settings.ini

Скопируйте шаблон 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 — токен из BotFather
  • GREEK_BOT_SECRET — ваш секрет для кода активации
  • GREEK_BOT_DB — путь к SQLite-файлу (можно оставить как есть)

4. Запустите бота

Linux/macOS:

chmod +x ./greek-bot
./greek-bot

Windows: Двойной клик по greek-bot.exe или через терминал PowerShell:

.\greek-bot.exe

Бот работает, пока открыт этот процесс. Остановка: Ctrl+C.

Запуск для опытных пользователей

Этот вариант для запуска из исходников или своей сборки.

Требования

  • Python 3.10+
  • Bash (для start.sh/stop.sh)

1. Клонирование и установка

git clone https://github.com/mrfeod/grexch.git
cd grexch

2. Конфигурация

cp .env.example .env

Откройте .env и заполните переменные:

TELEGRAM_BOT_TOKEN=1234567890:AA...
GREEK_BOT_SECRET=the-secret-key
GREEK_BOT_DB=greek_results_bot.sqlite3

3. Запуск из исходников

Запуск:

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 бот просит ввести код активации.

/check

Проверить все сохраненные коды вручную.

/run n

Запустить периодическую проверку раз в n минут.

Пример:

/run 30

/stop

Остановить периодическую проверку.

/list

Показать все добавленные коды пользователя.

/remove CODE

Удалить один код.

Пример:

/remove 54321-1234-ANDREOU

/remove all

Удалить все коды пользователя и остановить периодическую проверку.

Если сайт greek-language.gr недоступен

  • При команде /check бот покажет ошибку запроса.
  • При фоновой проверке через /run n бот продолжит попытки и отправит результат, когда сайт снова ответит.

Бонус

ChatGPT для проверки результатов: https://chatgpt.com/g/g-69fdbaa828108191be1aa3402710020e-greek-exam-results

Бонус 2

Команда mac/ios для проверки результатов: https://www.icloud.com/shortcuts/0874759a39b84e64b21b2e601a773769

grexch_apple.mp4

Бонус 3

Однострочный 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 - по умолчанию введен код экзаменационного центра на Кипре, если вы сдавали экзамен в другом центре, этот код тоже нужно поменять.

About

A Telegram bot for automatically checking the results of the Greek language exam.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors