123 lines
6.2 KiB
Markdown
123 lines
6.2 KiB
Markdown
# Кьюарминатор
|
||

|
||

|
||

|
||
### ⚠️ Дисклеймер
|
||
|
||
Данное приложение создано исключительно в образовательных целях. Разработчик не поддерживает и не поощряет использование приложения для обхода учебных обязательств. Ответственность за использование программы полностью лежит на пользователе.
|
||
|
||
В коде приложения не содержатся никакие данные о сайтах ВУЗов, пользователю предоставляется возможность самостоятельно задать электронные адреса для проверки взаимодействия с гипотетической платформой.
|
||
|
||

|
||
|
||
## 💡 Идея
|
||
|
||
Дистант мог бы быть прекрасной возможностью отдохнуть, попить чаёк, поиграть, расслабиться, но необходимость отмечаться заставляет нас внимательно следить за ходом лекции в попытках выловить 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`.
|
||
|
||
# Поддержать разработчиков
|
||

|