# Кьюарминатор ![](https://img.shields.io/badge/Go-blue?logo=go) ![](https://img.shields.io/badge/OpenCV-green?logo=opencv) ![](https://img.shields.io/badge/License-GPL_V3-purple) ### ⚠️ Дисклеймер Данное приложение создано исключительно в образовательных целях. Разработчик не поддерживает и не поощряет использование приложения для обхода учебных обязательств. Ответственность за использование программы полностью лежит на пользователе. В коде приложения не содержатся никакие данные о сайтах ВУЗов, пользователю предоставляется возможность самостоятельно задать электронные адреса для проверки взаимодействия с гипотетической платформой. ![Здесь нет рикролла](.github/cover.jpg) ## 💡 Идея Дистант мог бы быть прекрасной возможностью отдохнуть, попить чаёк, поиграть, расслабиться, но необходимость отмечаться заставляет нас внимательно следить за ходом лекции в попытках выловить QR-код. Это приложение призвано автоматизировать данную задачу, чтобы Вы смогли хоть на полтора часа забыть о том, что сегодня ВУЗ проводит пару прямо у Вас дома. ## 🎩 Функции - [x] Обнаружение QR-кодов - [x] Вывод ссылки в консоль - [x] Автоматический переход по ссылке ### ⏰ Запланированные - [ ] GUI - [ ] Звуковой сигнал - [ ] Push-уведомления с ntfy ### 🤔 На рассмотрении - [ ] Скриншот только области окна браузера - [ ] Работа при свёрнутом окне браузера - [ ] Отметка через API журнала ## 📐 Реализация Приложение делает скриншот окна браузера с заданным интервалом и анализирует снимки с помощью OpenCV, обнаруживая и декодируя QR-коды. Ссылки, ведущие на журнал посещаемости, автоматически открываются в браузере, либо используется другое альтернативное поведение, выбранное пользователем. ## 🧻 Начало работы ### 🖥 ОС Вам потребуется поддерживаемая операционная система из списка ниже. Если галочки нет, то поддержка появится в будущем. - [x] Linux (Wayland) - [x] Linux (XORG) - [x] Windows 10/11 - [ ] MacOS (не тестировалось, должно билдиться) ### ⬇️ Установка Перейдите в список релизов и скачайте портативный исполняемый файл для Вашей платформы. Если хотите собрать приложение самостоятельно, читайте следующий раздел. ### ⚙️ Настройка При первом запуске будет необходимо выполнить настройку приложения. Расположение файла конфигурации зависит от системы: - В Linux: - `~/.config/auto-attendance/auto-attendance.toml` - В Windows: - `C:\Users\user\AppData\Roaming\auto-attendance\auto-attendance.toml` Необходимо получить актуальный файл конфигурации, который будет работать с конкретным журналом посещений. Ключевую роль играют следующие параметры: ```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 #### Порядок сборки Склонируйте мой репозиторий: ```bash git clone https://git.weirdcat.su/weirdcat/auto-attendance ``` Перейдите в него: ```bash cd auto-attendance ``` Запустите сборку: ```bash # для текущей платформы make # make build-linux # make build-macos ``` Далее для запуска можете использовать команду `make run`. ### Dockerfile (Windows) На данный момент единственный проверенный и самый простой способ собрать приложение под Windows - использовать [специальный Dockerfile](https://git.weirdcat.su/weirdcat/auto-attendance/raw/branch/main/Dockerfile.windows-build). На Windows для этого можно использовать WSL с Docker. #### Порядок сборки (Bash): ```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`. # Поддержать разработчиков ![Николай (Telegram)](https://t.me/thebreadcat)