Этот скрипт позволяет извлечь исходный код оформления со страницы, автоматически перенося все изображения на локальный хостинг (сейчас это http://file.kirovnet.ru/).
Поддерживаются трекеры и форумы на не слишком сильно изменённых движках TorrentPier и TBDev.
Здесь предполагается, что у вас Win*. Пользователи *nix переходят к следующему разделу.
Подготовка:
- Для начала вам понадобится Python 2.7
- Скачайте архив со скриптами, нажав на большую кнопку "Файлы" ("Downloads") cверху справа от этого текста.
- Распакуйте архив в отдельную папочку. Для удобства можно сделать ярлыки к файлам
getbb.py
иrehost.py
и положить их поудобнее, а сами файлы оставить в покое.
Использование:
- Сохраните страницу, откуда хотите взять оформление, себе на диск.
- Бросьте мышкой (drag&drop) файл страницы на файл
getbb.py
(или на ярлык). - После завершения процесса откроется блокнот с текстом оформления.
Если что-то пошло не так, используйте консоль. Если всё совсем плохо, свяжитесь со мной.
getbb.py [-h] [-o OUTPUT] [-c N] [-nr] [-nt] [-no] target
target ссылка на целевую страницу или путь к соответствующему HTML-файлу
-h, --help вывести справку
-o имя текстового файла, в который выводится код
оформления (по-умолчанию out.txt).
-c N указывает количество постов для разбора, по-умолчанию N = 1
-nr, --no-rehost не использовать функционал rehost
-nt, --no-thumb не исправлять миниатюры
-no, --no-open не открывать блокнот по окончании
В getbb встроена поддержка многопоточной загрузки изображений, что значительно ускоряет процесс переноса изображений на локальный хостинг.
Для того, чтобы эта фича заработала, достаточно установить gevent.
В некоторых исходниках иногда в качестве миниатюр используются либо сами изображения (при этом "миниатюрами" они сделаны через CSS-свойства), либо слишком мелкие/обрезанные картинки. В таких случаях возможна автоматическая генерация новых, качественных миниатюр.
Для того, чтобы эта фича заработала, достаточно установить Python Imaging Library (PIL) (бинарники для винды - здесь).
Этот скрипт может работать отдельно от getbb
в качестве быстрого способа закинуть файл-другой на file.kirovnet.ru.
Под виндой работает drag&drop.
Интерфейс командной строки:
python rehost.py [-h] [-o OUTPUT] [-i] [-nc] [-fc] target [target ...]
target URL или локальные пути файлов
-h, --help вывести справку
-o выводить список ссылок в файл (по-умолчанию - в консоль)
-i, --image предположить, что по ссылке картинка или страница с картинкой,
и попытаться найти прямую ссылку на неё (этим пользуется getbb)
-nc, --no-cache не использовать функционал кэша ссылок
-fc, --force-cache кэшировать в том числе и ссылки на локальные файлы
Примерный список того, что можно сделать:
- придумать формат для правил замены, вынести их в отдельный файл
- переписать под BeautifulSoup или lxml (я не хотел зависеть от сторонних библиотек, поэтому парсинг HTML написан вручную на регэкспах).
- переписать под python3k с сохранением совместимости (но gevent пока только для 2.x?)
- GUI
- ...
Если у кого-то есть желание сделать что-нибудь (неважно, из этого списка или нет), делайте форк или шлите патч. Желательно соблюдать, по возможности, PEP8 и писать комментарии по-английски.
Если у вас есть, что сказать, можно написать мне в личку или постучаться в IRC (irc.kirovnet.ru #megapirat).