flib20

На Пикабу
1386 рейтинг 4 подписчика 1 подписка 1 пост 1 в горячем
Награды:
5 лет на Пикабу
1228

Flibrary - библиотека на основе флибусты

Всем привет!


Когда-то, как и многие пользователи интернета, я начал собирать электронные книги в свою локальную библиотеку. Но, в отличии от большинства, не смог вовремя остановиться, и она разрослась до весьма неприличных размеров. Чистить и удалять было жалко, поэтому пришлось навести какой-никакой порядок, чтобы папка с книгами не была совсем уж неподъёмной помойкой. После этого оказалось, что в такую библиотеку можно добавить ещё книг, за чем неизбежно последовала необходимость снова проводить ревизию. После нескольких таких циклов библиотека разрослась до более чем 37000 книг, разложенных по почти 7000 директориям и более 50Гб на диске. Тематика самая разнообразная, упор сделан больше на "серьёзную" литературу, но и жанрово-развлекательной тоже немало.


В процессе создания библиотеки я подумал, что было бы очень обидно потерять её при каком-нибудь техническом сбое, и что для меня одного это она явно избыточна, и здорово бы научиться ей делиться со всеми желающими. Однако, когда я представил себе необходимость загружать всё это на какое-нибудь облако или трекер и синхронизировать при каждом обновлении, меня охватила тоска и уныние. Вдобавок, любое приличное облако за такие дела быстро забанит. Кроме того, сами книги найти не проблема - почти все это fb2 с флибусты - так что основная ценность - это структура. Да и сама структура не есть что-то окончательное; я, конечно, попытался честно разобраться во многих жанрах и категориях, но всё же я лишь дилетант и наверняка многое можно сделать лучше. В общем, нужна не рыба а удочка.


Так что я пошёл другим путём. За основу был взято то, что почти все мои книги были с флибусты, а там у каждой книги есть свой уникальный номер. Поэтому, чтобы сохранить структуру, достаточно записать, в какой директории лежит какая книга, а по номеру можно получить как ссылку на страницу этой книги, так и саму книгу в архиве флибусты, который можно скачать на торрентах. Немного умея программировать, я написал набор скриптов для работы с такими библиотеками. Поддерживаются три основных действия: 1) создание дамп-файла из файловой директории, 2) восстановление директории из дамп-файла и архива флибусты, 3) создание из дамп-файла html-каталога библиотеки.


Скрипты лежат в репозитории:

https://github.com/flibrarian/flibrary

Там же находится детальное README, и тестовая коллекция из нескольких книг, для проверки настроек перед использованием основной.


Скрипты написаны на python2 (он, увы, успел за это время устареть, и как-нибудь надо будет переписать это на третьем), но для удобства три основных скрипта скомпилированы под windows:

https://github.com/flibrarian/flibrary/releases


Сама библиотека лежит отдельно в:

https://github.com/flibrarian/flibrary-main-collection

и иногда обновляется.


Альтернативно всё есть на меге:

https://mega.nz/folder/QJpGXRjb#1HftyMZtcSzBUh0omTHUsQ


Вкратце, для построения html-каталога надо положить в одну папку flibhtml.exe (или flibhtml.py с зависимостями), flibconfig.ini и library.dump, и запустить первый. Чтобы ссылки были куда надо, надо во flibconfig.ini записать адрес флибусты или рабочего зеркала в параметр FLIB_URL.


Для восстановления полной библиотеки надо скачать полный (только fb2 достаточно) архив флибусты с торрентов (есть на rutracker и booktracker). Занимает он около 300Гб, но хорошо сидируется (кроме того, он весьма полезен в быту и без моих скриптов). Дальше нужны flibextract.exe (или flibextract.py с зависимостями), flibconfig.ini и library.dump. Во flibconfig.ini надо заполнить ARCHIVE_PATH - путь к загруженному архиву (обычно заканчивается на fb2.Flibusta.Net) и EXTRACT_TO_PATH - путь к пустой директории, где будет создана библиотека. (Для windows обязательно надо сохранить 4 волшебных символа перед именем диска, иначе длинные пути могут не обработаться) Полная распаковка занимает около 3-х часов на HDD.


Дополнительно есть flibdump.exe (flibdump.py), позволяющий создавать свои библиотеки, и flibsqlupdate.py, при помощи которого можно обновить описание книг из sql-дампов флибусты. (flibsqlupdate не скомпилирован, потому что тот, кто может поднять локальную БД и импортировать sql-дампы, и с питоном разберётся без проблем.)


PS: Я понимаю, что всё это на грани, поэтому нисколько не призываю к пиратству. Скачивание пиратских книг - личный выбор и личная ответственная каждого. Библиотекой можно пользоваться и в ознакомительных целях с целью поиска книг для последующего легального приобретения. Например, построение и использование html-каталога не требует никаких противоправных действий (но без доступа к пиратским книгам составить его я бы не смог). Кроме того, лично я не имею от этого ни малейшей выгоды (и даже не узнаю, если кто-нибудь этим пользоваться).

Показать полностью
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества