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-каталога не требует никаких противоправных действий (но без доступа к пиратским книгам составить его я бы не смог). Кроме того, лично я не имею от этого ни малейшей выгоды (и даже не узнаю, если кто-нибудь этим пользоваться).

Книжная лига

28.2K поста82.1K подписчика

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

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


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

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


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


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


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


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


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

20
Автор поста оценил этот комментарий

А для тупых можно, в чем конкретная выгода? Зачем мне это?

раскрыть ветку (1)
46
Автор поста оценил этот комментарий

Выгода в систематической (насколько это возможно) структуре. Например, на флибусте жанр "история" - это 22604 книг подряд. Здесь же 3951 книга разложена по 1163 осмысленным вложенным подкатегориям. Если требуется конкретная книга, эта система не нужна, но если ищешь книгу по теме, или вообще саму тему, вот тогда она полезна.

показать ответы
4
Автор поста оценил этот комментарий

Погуглите библиотеку Траума, давно пользуюсь.

раскрыть ветку (1)
12
Автор поста оценил этот комментарий

Да, это было одно из вдохновений. У меня меньше книг - я никогда не ставил целью взять всё - но более детальная классификация. И моя идея - не конкурировать с флибустой, а дополнять.

Кроме того, библиотека Траума давно не обновляется, и с этим, увы, ничего не поделать, а моя система позволяет любому делать подборки и библиотеки, и распространять файлами в пределах нескольких мегабайт (дамп для моей весит 4Мб).

Автор поста оценил этот комментарий

спасибо за твое экспертное мнение

раскрыть ветку (1)
9
Автор поста оценил этот комментарий

В моей системе каждый подуровень - это выбор, уточняющий тему. Когда может полезна алфавитная система? Если мне нужен конкретный Достоевский а я допустим не знаю, где он лежит, я могу его найти обычным поиском, а не искать где-то между Дефо и Дюма.

показать ответы
14
Автор поста оценил этот комментарий

Т.е. систематизация примерно как у фантлаб?

https://fantlab.ru/bygenre

раскрыть ветку (1)
23
Автор поста оценил этот комментарий

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

показать ответы
15
Автор поста оценил этот комментарий

Непонятно что это вообще дает и в чем плюс\минус. И да, те же популярные библотеки - чем не устроили? Calibre к примеру.

раскрыть ветку (1)
6
Автор поста оценил этот комментарий

Ответил здесь. #comment_194376327

Автор поста оценил этот комментарий
Автор, сколько книг ты прочитал за свою жизнь? Зачем тебе 37000 их? Чтобы что?))
раскрыть ветку (1)
4
Автор поста оценил этот комментарий

Чтобы было. Если бы не это, я бы собирал марки или месяцами проходил игры на 100%, таков уж характер.))

показать ответы
Автор поста оценил этот комментарий

@moderator, а что, реклама пиратства и нарушения УК РФ это в порядке вещей?

раскрыть ветку (1)
6
Автор поста оценил этот комментарий

Не больше, чем топовые посты про рутрекер и репакеров )

6
Автор поста оценил этот комментарий

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

найди книгу по архивному делу и долистай до каталогизации, многое станет делать проще.

раскрыть ветку (1)
6
Автор поста оценил этот комментарий

Файлы на диске всё-таки отличаются от бумажных книг на полках. Например, алфавитные каталоги при наличии нормального поиска практически бессмысленны.

показать ответы
Автор поста оценил этот комментарий

я про это и говорю - у тебя каталогизация это алфавитный указатель, больше знать не хотим и строим из себя эксперта.

раскрыть ветку (1)
3
Автор поста оценил этот комментарий

Алфавитный каталог - это просто самый яркий реальный пример (и я знаю, что он не сверху, а уже в категориях, но суть не меняется). Я разбирался во всяких ББК, УДК и прочих, и для меня это был не вариант.


Впрочем, если вы считаете, что нужна библиотека на одной из таких классификаций, то можете начать делать, скрипты позволяют. Если же вся идея не нравится, то и спорить не о чем.

0
Автор поста оценил этот комментарий

ИМХО Торрент был бы оптимален с каким-нибудь разумным периодом обновления торрент-файла раз в 2-3 месяца. На том же рутрекере есть гигантская раздача иосов циски, регулярно обновляется.

Я бы присоединился к раздающим. Вот на днях только SSD на 240 гигов отвёл под раздачи.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Так жила библиотека Траума: обновления и кумулятивные релизы от третьих лиц, всё отдельными раздачами. И это было не то чтобы удобно, да и распыляло силы между Траумом, флибустой и либрусеком. Здесь торрент один - архив флибусты, который хотя и большой (всего в 6 раз кстати), но успешно поддерживается сообществом и имеет самостоятельную ценность, а сама структура записана в 4-х мегабайтный файл, (причём скрипты поддерживают режим быстрого обновления, т.е. месячные изменения можно обновить за несколько минут).


И это не говоря уже о возможности создавать другие подборки и коллекции.

1
Автор поста оценил этот комментарий

Для windows обязательно надо сохранить 4 волшебных символа перед именем диска, иначе длинные пути могут не обработаться
а можно немного подробностей на этот счёт?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

В файле-примере они есть: \\?\

Если парсер их съест в сообщении, то

два обратных слэша знак вопроса ещё один обратный слэш.

В README есть ссылка на документацию.

5
Автор поста оценил этот комментарий

Сейчас отхвачу минусов. Но. 1) Все описанное автором - обычный каталог в хорошей бумажной библиотеке. Где вовсе не только по алфавиту. Но это ладно. 2) Каталогизация в описанном им виде (как на фантлабе) - не очень уж удобна. Точней, она удобна, когда человек четко знает, что ищет. Например такая последовательность: "История России - 18 век- Первая четверть- Война со Швецией. - Перевооружение русской армии. - Артиллерия". 3) Но для того, чтобы так хорошо выстроить последовательность - надо все книги прочитать, проанализировать. Автор этого не делал, по его словам. А понастроил ветвлений на основании аннотаций? 4) То есть даже поисковик Яндекса окажется быстрей и проще, чем его каталог. Потому что поисковик Яндекса использует при поиске не одну аннотацию, но и написанные под ней комментарии людей, которые книгу уже прочитали. И владея несложной наукой выделения ключевых слов для поиска - можно найти нужную книгу в один запрос. // А так - автор молодец, великий труд проделал.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

1) Уже писал в другой ветке, имеющиеся класссификации имеют свои недостатки, и подстраиваться под них ради не совсем понятно какой выгоды не хочется. Например, в ББК художественная литература находится на третьем уровне в разделе "Социальные(гуманитарные) науки/филологические науки и художественная литература/художественная литература". Может для библиотечных каталогов оно и удобно, но по мне так художественная литература никак не раздел науки, и достойна быть на верхнем уровне структуры. Многие люди читающие художку и знать не знают про филологические науки, зачем им лишние препятствия?

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

Темы

Политика

Теги

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

Сообщества

18+

Теги

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

Сообщества

Игры

Теги

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

Сообщества

Юмор

Теги

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

Сообщества

Отношения

Теги

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

Сообщества

Здоровье

Теги

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

Сообщества

Путешествия

Теги

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

Сообщества

Спорт

Теги

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

Сообщества

Хобби

Теги

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

Сообщества

Сервис

Теги

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

Сообщества

Природа

Теги

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

Сообщества

Бизнес

Теги

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

Сообщества

Транспорт

Теги

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

Сообщества

Общение

Теги

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

Сообщества

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

Теги

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

Сообщества

Наука

Теги

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

Сообщества

IT

Теги

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

Сообщества

Животные

Теги

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

Сообщества

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

Теги

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

Сообщества

Экономика

Теги

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

Сообщества

Кулинария

Теги

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

Сообщества

История

Теги

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

Сообщества