| .gitignore | ||
| AccessibilityClickHelper.cs | ||
| AccessibilityClickHelper.exe | ||
| AGENTS.md | ||
| build-accessibility-helper.bat | ||
| config.example.json | ||
| full-scan.bat | ||
| launch.vbs | ||
| live.bat | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| run-web.bat | ||
| run.bat | ||
| scanner.mjs | ||
| scanner.test.mjs | ||
| sound.mp3 | ||
PoE 2 Scanner
Локальный сканер торговли Path of Exile 2. Поддерживает разовый поиск, консольный Live и Web UI с SSE-уведомлениями.
Настройка
- Скопируйте
config.example.jsonвconfig.json. - Укажите лигу, предмет и максимальную цену.
- Добавьте свежие
POESESSIDиPOETOKENв локальныйconfig.jsonлибо передайте их через переменные окружения.
config.json содержит секреты и исключён из Git. Не отправляйте его другим людям и не кладите в публичные архивы.
Пример безопасной структуры:
{
"league": "Runes of Aldur",
"itemName": "The Desperate Alliance",
"itemType": "Vase Relic",
"maxPrice": 5,
"priceCurrency": "divine",
"maxResults": 500,
"poeSessionId": "",
"poeToken": ""
}
Переменные окружения POESESSID и POETOKEN имеют приоритет над значениями из файла.
Запуск
node scanner.mjs
node scanner.mjs --live
node scanner.mjs --serve
Web UI будет доступен только на этом компьютере:
http://127.0.0.1:3999
Также доступны:
full-scan.bat— разовый поиск.live.bat— консольный Live.launch.vbs— скрытый запуск Web UI.run.bat— меню режимов.
Проверка
npm test
npm run check
Как устроен Live
- Сканер создаёт поисковый запрос и запоминает уже существующие объявления.
- Подключается к PoE Live WebSocket.
- Новые ID последовательно загружаются через PoE API.
- При разрыве WebSocket включается polling раз в 30 секунд.
- При устаревшем search ID сканер получает новый и переподключается.
Все HTTP-запросы к PoE идут через одну очередь с минимальным интервалом 1,2 секунды. При HTTP 429 сканер читает указанное PoE время ожидания.
Локальный API
Сервер слушает только 127.0.0.1. Изменяющие состояние POST-запросы защищены случайным токеном, который получает Web UI.
GET /api/configPOST /api/searchPOST /api/live/startPOST /api/live/stopPOST /api/secureGET /api/live/stream
Файлы состояния
config.json— локальные настройки и авторизация.seen.json— кеш просмотренных объявлений.sound.mp3— звук уведомления.
startup.json больше не создаётся.