Skip to content

About

Подписка на изменения по сайт PL

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

4 Commits

Folders and files

Repository files navigation

get-update-pl

Мониторинг поисковых запросов на pornolab.net: приложение выполняет поиск по сохранённым запросам и показывает новые (непрочитанные) ветки форума.

Использование

  1. Запустите get-update-pl.exe (или python main.py из исходников).
  2. При первом запуске откроются Настройки: заполните логин и пароль pornolab, добавьте поисковые запросы, при необходимости укажите папку для .torrent-файлов и прокси.
  3. Нажмите «Проверить» — приложение войдёт на сайт и выполнит все активные запросы. Новые темы появятся в таблице и будут накапливаться между запусками.
  4. Действия с темами:
    • двойной клик — открыть ветку в браузере;
    • «Скачать торрент» — скачать .torrent через сессию приложения в папку из настроек (работает множественное выделение);
    • «Подтвердить (прочитано)» (кнопка, Enter/Delete, контекстное меню) — тема считается прочитанной и больше в списке не появится.

Если сайт запросит капчу, появится окно с картинкой — введите код вручную. Автоматического обхода капчи в приложении нет.

Файлы рядом с exe

  • settings.json — настройки (внимание: пароль хранится открытым текстом);
  • data.sqlite3 — запросы и найденные темы;
  • cookies.dat — сессия сайта;
  • app.log — журнал;
  • debug/ — HTML-дампы при ошибках разбора страниц.

Как это устроено

Десктоп-приложение для Windows на Python 3.12 + Tkinter, собирается в один exe PyInstaller'ом. Сайт работает на движке TorrentPier (как RuTracker), страницы в кодировке windows-1251, поиск доступен только после входа.

Сценарий «Проверить»:

  1. CheckWorker (фоновый поток) через PlSession.ensure_login() проверяет сохранённые cookies и при необходимости входит заново. Если сайт просит капчу, поток через очередь событий просит GUI показать диалог и ждёт введённый код.
  2. Для каждого активного запроса search.search() отправляет форму tracker.php (сортировка по дате, новые сверху), при необходимости проходит следующие страницы и разбирает таблицу результатов в список тем.
  3. Storage.add_topics() сохраняет только темы с новым topic_id, поэтому прочитанная тема больше не возвращается.
  4. Главное окно получает события 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.

About

Подписка на изменения по сайт PL

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages