Reviewed-on: #4
Кьюарминатор
⚠️ Дисклеймер
Данное приложение создано исключительно в образовательных целях. Разработчик не поддерживает и не поощряет использование приложения для обхода учебных обязательств. Ответственность за использование программы полностью лежит на пользователе.
В коде приложения не содержатся никакие данные о сайтах ВУЗов, пользователю предоставляется возможность самостоятельно задать электронные адреса для проверки взаимодействия с гипотетической платформой.
💡 Идея
Дистант мог бы быть прекрасной возможностью отдохнуть, попить чаёк, поиграть, расслабиться, но необходимость отмечаться заставляет нас внимательно следить за ходом лекции в попытках выловить QR-код. Это приложение призвано автоматизировать данную задачу, чтобы Вы смогли хоть на полтора часа забыть о том, что сегодня ВУЗ проводит пару прямо у Вас дома.
🎩 Функции
- Обнаружение QR-кодов
- Вывод ссылки в консоль
- Автоматический переход по ссылке
⏰ Запланированные
- GUI
- Звуковой сигнал
- Push-уведомления с ntfy
🤔 На рассмотрении
- Скриншот только области окна браузера
- Работа при свёрнутом окне браузера
- Отметка через API журнала
📐 Реализация
Приложение делает скриншот окна браузера с заданным интервалом и анализирует снимки с помощью OpenCV, обнаруживая и декодируя QR-коды. Ссылки, ведущие на журнал посещаемости, автоматически открываются в браузере, либо используется другое альтернативное поведение, выбранное пользователем.
🧻 Начало работы
🖥 ОС
Вам потребуется поддерживаемая операционная система из списка ниже. Если галочки нет, то поддержка появится в будущем.
- Linux (Wayland)
- Linux (XORG)
- Windows 10/11
- MacOS (не тестировалось, должно билдиться)
⬇️ Установка
Перейдите в список релизов и скачайте портативный исполняемый файл для Вашей платформы. Если хотите собрать приложение самостоятельно, читайте следующий раздел.
⚙️ Настройка
При первом запуске будет необходимо выполнить настройку приложения. Расположение файла конфигурации зависит от системы:
- В Linux:
~/.config/auto-attendance/auto-attendance.toml
- В Windows:
C:\Users\user\AppData\Roaming\auto-attendance\auto-attendance.toml
Необходимо получить актуальный файл конфигурации, который будет работать с конкретным журналом посещений. Ключевую роль играют следующие параметры:
qr_query_token = '' # Название query-параметра, содержащего уникальный токен ссылки
self_approve_url = '' # Полный URL ссылки QR-кода (без query-параметров)
🔨 Сборка
Make (Linux, MacOS)
🧩 Зависимости
- git
- make
- curl
- opencv 4.12.0
- go 1.25.4
Порядок сборки
Склонируйте мой репозиторий:
git clone https://git.weirdcat.su/weirdcat/auto-attendance
Перейдите в него:
cd auto-attendance
Запустите сборку:
# для текущей платформы
make
# make build-linux
# make build-macos
Далее для запуска можете использовать команду make run.
Dockerfile (Windows)
На данный момент единственный проверенный и самый простой способ собрать приложение под Windows - использовать специальный Dockerfile. На Windows для этого можно использовать WSL с Docker.
Порядок сборки (Bash):
# Создаем директорию и переходим в нее
mkdir build && cd build
# Получаем содержимое Dockerfile
curl "https://git.weirdcat.su/weirdcat/auto-attendance/raw/branch/main/Dockerfile.windows-build" > Dockerfile
# Выполняем сборку
docker build -t autoattendance-build-windows .
# Копируем бинарник из образа в текущую папку
docker run --rm -v $(pwd):/output autoattendance-build-windows sh -c "cp /go/src/auto-attendance/bin/autoattendance.exe /output/"
Готовое приложение - файл autoattendance.exe.
