3.0 KiB
3.0 KiB
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 больше не создаётся.