Мониторинг поисковых запросов на pornolab.net: приложение выполняет поиск по сохранённым запросам и показывает новые (непрочитанные) ветки форума.
- Запустите
get-update-pl.exe(илиpython main.pyиз исходников). - При первом запуске откроются Настройки: заполните логин и пароль pornolab, добавьте поисковые запросы, при необходимости укажите папку для .torrent-файлов и прокси.
- Нажмите «Проверить» — приложение войдёт на сайт и выполнит все активные запросы. Новые темы появятся в таблице и будут накапливаться между запусками.
- Действия с темами:
- двойной клик — открыть ветку в браузере;
- «Скачать торрент» — скачать .torrent через сессию приложения в папку из настроек (работает множественное выделение);
- «Подтвердить (прочитано)» (кнопка, Enter/Delete, контекстное меню) — тема считается прочитанной и больше в списке не появится.
Если сайт запросит капчу, появится окно с картинкой — введите код вручную. Автоматического обхода капчи в приложении нет.
settings.json— настройки (внимание: пароль хранится открытым текстом);data.sqlite3— запросы и найденные темы;cookies.dat— сессия сайта;app.log— журнал;debug/— HTML-дампы при ошибках разбора страниц.
Десктоп-приложение для Windows на Python 3.12 + Tkinter, собирается в один exe PyInstaller'ом. Сайт работает на движке TorrentPier (как RuTracker), страницы в кодировке windows-1251, поиск доступен только после входа.
Сценарий «Проверить»:
CheckWorker(фоновый поток) черезPlSession.ensure_login()проверяет сохранённые cookies и при необходимости входит заново. Если сайт просит капчу, поток через очередь событий просит GUI показать диалог и ждёт введённый код.- Для каждого активного запроса
search.search()отправляет формуtracker.php(сортировка по дате, новые сверху), при необходимости проходит следующие страницы и разбирает таблицу результатов в список тем. Storage.add_topics()сохраняет только темы с новымtopic_id, поэтому прочитанная тема больше не возвращается.- Главное окно получает события
status / new / done / errorи перерисовывает таблицу непрочитанных тем.
| Модуль | Назначение |
|---|---|
main.py |
точка входа: журнал, настройки, БД, главное окно |
app/config.py |
settings.json, значения по умолчанию, папка данных |
app/session.py |
HTTP-сессия, cookies, вход, обнаружение капчи |
app/search.py |
поиск по tracker.php, разбор HTML, скачивание .torrent |
app/storage.py |
SQLite: таблицы queries и topics (флаг read) |
app/worker.py |
фоновый поток проверки и протокол событий для GUI |
app/gui/ |
главное окно, настройки, диалог капчи, «О программе» |
Подробный план и результаты разведки сайта — в PLAN.md.
py -3.12 -m venv .venv
.venv\Scripts\python -m pip install -r requirements.txt
.venv\Scripts\python main.py
Сборка exe: powershell -ExecutionPolicy Bypass -File build.ps1 →
dist\get-update-pl.exe.