Skip to content

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Repository files navigation

PapichWheel — колесо для донат-аукциона

Important

Математическая механика пошагового определения мест и расчёта вероятностей следующего выбывания основана на проекте naugam/fixed_wheel.

В PapichWheel алгоритм адаптирован под архитектуру локального приложения: случайный угол генерируется через WebCrypto, результат определяется фактическим сектором под стрелкой, а синхронизация вкладок, сохранение состояния, назначение мест и анимации реализованы отдельно.

Локальное приложение для проведения донат-аукциона на Windows. Оно принимает новые донаты из DonatePay и DonationAlerts, помогает распределять их по лотам и запускает колесо на выбывание в отдельном режиме для OBS.

Приложение работает только на вашем компьютере: локальный сервер слушает 127.0.0.1:5500.

Скачать и запустить

Готовая версия находится на странице Latest release.

  1. Скачайте PapichWheel_Setup.bat.
  2. Создайте отдельную папку для приложения и поместите файл туда.
  3. Запустите PapichWheel_Setup.bat. Он распакует файлы приложения и удалит себя.
  4. Запустите start_koleso.bat.
  5. Откроется админка:
http://127.0.0.1:5500/koleso_papich.html?view=admin

Работающий сервер отображается значком в системном трее. Через меню значка можно открыть приложение, открыть лог или завершить сервер.

Требования:

  • Windows 10 или Windows 11;
  • Windows PowerShell 5.1 или новее;
  • современный браузер;
  • интернет для донат-сервисов, проверки обновлений, поиска и функций OpenRouter.

Возможности

  • создание, редактирование и удаление лотов;
  • ручное изменение суммы каждого лота;
  • очередь новых, обработанных и проигнорированных донатов;
  • подключение DonatePay и DonationAlerts;
  • прием только новых донатов без повторного добавления уже обработанных;
  • восстановление необработанной очереди после перезапуска сервера;
  • автоматическая конвертация донатов DonationAlerts из USD и EUR в рубли;
  • тестовые донаты без реальной оплаты;
  • колесо на выбывание с отдельным режимом для OBS;
  • синхронизация админки и вкладки колеса;
  • таймер аукциона;
  • настройка масштаба и размеров панелей;
  • опциональный AI-разбор сообщений через OpenRouter;
  • поиск игр в Steam и аниме при создании нового лота;
  • автоматическая проверка наличия новой версии.

Режимы работы

Админка

Админка предназначена для управления аукционом:

  • добавления и редактирования лотов;
  • обработки донатов;
  • настройки интеграций;
  • управления таймером и колесом;
  • просмотра AI-предложений.

Не показывайте админку и вкладку «Настройки» на стриме.

Колесо

Нажмите «Открыть колесо в отдельной вкладке» или откройте:

http://127.0.0.1:5500/koleso_papich.html?view=wheel

Именно эту вкладку рекомендуется захватывать в OBS.

Подключение DonatePay

  1. Откройте «Настройки» > «Донат-сервисы».
  2. В карточке DonatePay нажмите «Подключить».
  3. Выберите регион: Россия (donatepay.ru) или Европа (donatepay.eu).
  4. Вставьте API Key.
  5. Завершите подключение.

Приложение использует локальную копию клиента Centrifuge для WebSocket-подключения и восстанавливает пропущенные события после переподключения.

Подключение DonationAlerts

  1. Откройте «Настройки» > «Донат-сервисы».
  2. В карточке DonationAlerts нажмите «Подключить».
  3. Выберите быстрый вход или подключение через собственное OAuth-приложение.
  4. Разрешите доступ на сайте DonationAlerts.
  5. Дождитесь статуса подключения.

Для собственного OAuth-приложения укажите redirect URL:

http://127.0.0.1:5500/koleso_papich.html

Старые донаты не добавляются как новые при первом подключении.

Конвертация валют

Суммы DonationAlerts в USD и EUR пересчитываются в рубли по курсам ЦБ РФ. Курс загружается локальным сервером и кэшируется. Если актуальный или сохраненный курс недоступен, донат не должен молча зачисляться с неверной суммой — приложение показывает проблему конвертации.

DonatePay не проходит через эту конвертацию.

AI-разбор донатов через OpenRouter

Функция необязательна и по умолчанию требует подтверждения пользователя.

AI может:

  • определить, к какому существующему лоту относится сообщение;
  • предложить создать новый лот;
  • искать игры в Steam;
  • искать аниме;
  • автоматически применить предложение при настроенных порогах уверенности.

Настройка:

  1. Создайте API key на OpenRouter.
  2. Откройте «Настройки» > «AI-разбор донатов».
  3. Сохраните ключ.
  4. При необходимости задайте локальный HTTP/HTTPS proxy.
  5. Нажмите «Проверить».
  6. Включите AI-подсказки и выберите режим подтверждения.

Модель по умолчанию — google/gemini-2.5-flash-lite. Ее можно заменить на другую модель OpenRouter, поддерживающую требуемый структурированный ответ. Запросы к OpenRouter могут расходовать платный баланс вашего аккаунта.

Где хранятся данные

Данные разделены между браузером и локальным сервером.

В браузерном localStorage хранятся:

  • лоты и суммы;
  • состояние колеса и таймера;
  • обработанные донаты;
  • настройки интерфейса;
  • несекретные настройки интеграций и AI.

Секреты хранятся отдельно:

%LOCALAPPDATA%\PapichWheel\secrets.json

API Key DonatePay, токен DonationAlerts и ключ OpenRouter защищаются Windows DPAPI для текущего пользователя Windows и не сохраняются в браузерном localStorage.

Серверные очереди и кэши находятся в:

%LOCALAPPDATA%\PapichWheel\cache

Технический лог release-версии:

assets\server.log

Новый аукцион и полный сброс

«Новый аукцион» очищает лоты, донаты и AI-результаты текущего аукциона, но сохраняет подключения и настройки.

«Сбросить все данные» удаляет:

  • браузерное состояние проекта;
  • лоты и историю донатов;
  • серверные очереди и кэши;
  • сохраненные токены и API-ключи;
  • технический лог приложения очищается.

Полный сброс необратим.

Обновление

  1. Закройте приложение через значок в системном трее.
  2. Скачайте новый PapichWheel_Setup.bat из Latest release.
  3. Поместите его рядом с существующим start_koleso.bat.
  4. Запустите установщик.
  5. Снова запустите start_koleso.bat.

Файлы приложения будут заменены. Данные из %LOCALAPPDATA%\PapichWheel и браузерное состояние при обычном обновлении не удаляются.

Безопасность

  • Сервер привязан только к 127.0.0.1:5500.
  • API защищен случайным токеном текущего процесса.
  • Проверяются заголовки Host и Origin.
  • Статические пути ограничены известными файлами приложения.
  • Для страницы применяется Content Security Policy.
  • Секретные значения маскируются в логах и хранятся через DPAPI.

Несмотря на защиту, соблюдайте правила:

  • скачивайте установщик только из этого репозитория;
  • не показывайте админку, настройки, токены и лог на трансляции;
  • не публикуйте свою папку %LOCALAPPDATA%\PapichWheel;
  • не запускайте измененный PapichWheel_Setup.bat из неизвестного источника;
  • закрывайте сервер, когда приложение не используется.

Возможные проблемы

Приложение не открывается

  • Убедитесь, что используется Windows.
  • Проверьте, не запущена ли другая копия на порту 5500.
  • Откройте адрес админки вручную.
  • Посмотрите assets\server.log.

Проверить занятость порта можно командой:

Get-NetTCPConnection -LocalPort 5500 -ErrorAction SilentlyContinue

Значок не появился в трее

Проверьте скрытые значки Windows. Если сервер не запустился, откройте assets\server.log.

DonationAlerts не подключается

  • Открывайте приложение через 127.0.0.1:5500, а не как локальный file://.
  • Для собственного OAuth-приложения проверьте App ID и точный redirect URL.
  • Проверьте доступ к DonationAlerts и повторите авторизацию.

DonatePay не подключается

  • Проверьте выбранный регион и API Key.
  • Убедитесь, что сеть не блокирует WebSocket DonatePay.
  • При ошибке лимита запросов дождитесь следующей попытки восстановления.

Донаты не появляются

  • Проверьте статус интеграции.
  • Убедитесь, что сбор донатов не поставлен на паузу.
  • Учитывайте, что при первом подключении старая история не добавляется.
  • Проверьте очередь «В ожидании» и assets\server.log.

AI не работает

  • Проверьте ключ OpenRouter кнопкой «Проверить».
  • Проверьте название модели и наличие баланса OpenRouter.
  • Если OpenRouter недоступен напрямую, настройте HTTP/HTTPS proxy.
  • Убедитесь, что выбранная модель поддерживает структурированный ответ.

Файлы проекта

Основные файлы:

start_koleso.bat
koleso_papich.html
centrifuge.min.js
local_server.ps1
tray.ico
tray-error.ico
build_release_single_bat.ps1
tests/
.github/workflows/release-latest.yml

build_release_single_bat.ps1 создает dist/PapichWheel_Setup.bat. В установщик включаются только шесть файлов приложения:

start_koleso.bat
assets/koleso_papich.html
assets/centrifuge.min.js
assets/local_server.ps1
assets/tray.ico
assets/tray-error.ico

Тесты и workflow нужны только для проверки и сборки релиза и не попадают в пользовательский установщик.

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages