771

Репакер архива Флибусты FB2

Делаю для себя, вдруг кому тоже полезно будет, плюс пожелания/критику собрать.


Вот допустим ты из тех людей которые скачали себе на комп архив пиратской библиотеки Флибуста. Многие, конечно, спросят "нафига", но это другой разговор :)

Ну пусть не прям всю Флибусту, а архив только с FB2 книгами (который на май 2022 года занимает под 330 Гб).

Но вот лично тебе, допустим, интересны только детективы, или эротика, ну или вообще только книги по высшей математике. И тебе остальное просто не надо.

Или вот картинки в книгах. На Флибусте есть как иллюстрированные справочники, так и фантастика где разве что постер из картинок и тот как бы не особо нужен. А тебе нужны только книги где картинки не важны, то может ну их нафик, эти картинки, только место занимают!


Вот исходя из этого я сначала захотел просто поудалять картинки из книг, т.к. лично мне интересно только художественная литература где картинок и нет. Потом подумал добавить фильтр по жанрам и наглядно увидел сколько всего в архиве Флибусты разного, чего мне совсем, в общем то, и не надо.


Можете тоже оценить списочек.

Непосредственно о программе.


Написано быдлокодером-любителем (т.е. мной) на языке Python.

Что реализовано: удаление картинок (опционально), возможность добавления черного списка жанров, и многопоточность. Написана типа справка по программе.

Правда, в Python родные библиотеки для ZIP не умеют в многопоточность, поэтому вместо многопоточного сжатия одного архива запускается одновременная работа с несколькими архивами (чтение старого и запись в новый), что сами понимаете, не очень хорошо дружит с HDD при множестве одновременных операций записи и чтения. Рекомендую писать репак на другой HDD, а лучше SSD.


Также репакер можно использовать на раздачах других библиотек (например Либрусека) если они организованы точно также (zip архивы и индекс-файл inpx)


Чего надо бы сделать, но пока не сделал:

создание нового индекс-файла чтобы в MyHomeLib загружалась информация только  об оставшихся в репаке книгах (если вы использовали фильтр по жанрам). Может переписать на другом языке, могу в Golang.

Но лень :)


Результаты работы:


Оригинальный архив только FB2 Флибуста к маю 2022 - 337 Гб.

Репак с удалением картинок - 94 Гб.

(если пережать zip через 7-Zip, то лишь чуть-чуть улучшить результат, можно сжать другим сжатием и довольно сильно, но тогда MyHomeLib не сможет с ними работать, так что смысл от этого пропадает)

Только книги с жанром "юмористическая фантастика" - 2.7 Гб

Только "юмористическая фантастика" и с удалением картинок - 1.3 Гб


P.S. Была еще мысль "примотать синей изолентой" сюда сжатие PPMd (в который не умеет MyHomelib) которое сжимает текст значительно лучше чем ZIP Deflate, но тогда пришлось бы делать шаманство чтобы и MyHomeLib работало, и правильную книгу отдельно вытаскивать уже своей программкой.


Исходники программы здесь https://gist.github.com/Filarius/684a053ca1395e30f0db18842fe...

Готовую к употреблению программу с попыткой написать справку положил на Я.Диск https://disk.yandex.ru/d/kt89jYCOzVy4Qw (надеюсь должна запустится на вин 7).


Апдейт:

Добавил фильтр по языкам, упростил работу с фильтром жанров.

Книжная лига

28.1K постов82.1K подписчиков

Правила сообщества

Мы не тоталитаристы, здесь всегда рады новым людям и обсуждениям, где соблюдаются нормы приличия и взаимоуважения.


ВАЖНЫЕ ПРАВИЛА

При создании поста обязательно ставьте следующие теги:


«Ищу книгу» — если хотите найти информацию об интересующей вас книге. Если вы нашли желаемую книгу, пропишите в названии поста [Найдено], а в самом посте укажите ссылку на комментарий с ответом или укажите название книги. Это будет полезно и интересно тем, кого также заинтересовала книга;


«Посоветуйте книгу» — пикабушники с удовольствием порекомендуют вам отличные произведения известных и не очень писателей;


«Самиздат» — на ваш страх и риск можете выложить свою книгу или рассказ, но не пробы пера, а законченные произведения. Для конкретной критики советуем лучше публиковаться в тематическом сообществе «Авторские истории».


Частое несоблюдение правил может в завлечь вас в игнор-лист сообщества, будьте осторожны.


ВНИМАНИЕ. Раздача и публикация ссылок на скачивание книг запрещены по требованию Роскомнадзора.