// Copyright (c) 2025 Nikolai Papin // // This file is part of the Auto Attendance app that looks for // self-attend QR-codes during lectures and opens their URLs in your // browser. // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See // the GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . package qrminator import ( "sync" "git.weirdcat.su/weirdcat/auto-attendance/internal/browserlauncher" "git.weirdcat.su/weirdcat/auto-attendance/internal/config" "git.weirdcat.su/weirdcat/auto-attendance/internal/linkvalidator" "git.weirdcat.su/weirdcat/auto-attendance/internal/logger" "git.weirdcat.su/weirdcat/auto-attendance/internal/screencapturer" "git.weirdcat.su/weirdcat/auto-attendance/internal/vision" ) type Qrminator interface { Init() error Start() error Stop() error Toggle() error ConsoleOutput() (string, error) UpdateConfig(string) error } type qrminatorImpl struct { config *config.Config log *logger.Logger capturer screencapturer.ScreenCapturer vision vision.Vision validator linkvalidator.LinkValidator launcher browserlauncher.BrowserLauncher active bool stats Stats mu sync.Mutex } // ConsoleOutput implements Qrminator. func (q *qrminatorImpl) ConsoleOutput() (string, error) { panic("unimplemented") } // Init implements Qrminator. func (q *qrminatorImpl) Init() error { panic("unimplemented") } // Start implements Qrminator. func (q *qrminatorImpl) Start() error { panic("unimplemented") } // Stop implements Qrminator. func (q *qrminatorImpl) Stop() error { panic("unimplemented") } // Toggle implements Qrminator. func (q *qrminatorImpl) Toggle() error { panic("unimplemented") } // UpdateConfig implements Qrminator. func (q *qrminatorImpl) UpdateConfig(string) error { panic("unimplemented") } func NewQrminator( cfg *config.Config, log *logger.Logger, capt screencapturer.ScreenCapturer, vis vision.Vision, val linkvalidator.LinkValidator, launch browserlauncher.BrowserLauncher, ) Qrminator { return &qrminatorImpl{ config: cfg, log: log, capturer: capt, vision: vis, validator: val, launcher: launch, active: false, stats: Stats{}, } }