суббота, апреля 13, 2019

Почитаем…

Когда-то довольно уже давно скачал архив библиотеки Lib.rus.ec – больше 100 Гб данных и клиент для доставания книжек из архивов и для обновления самих архивов. Несколько месяцев назад клиент почему-то перестал обновлять базу, а из существующей базы книжки доставал тоже как-то не очень уверенно.
Потыкался, потыкался, выяснилось, что можно и руками книжки доставать, но в архивах они имеют имена наподобие 12345678.fb2, что не очень радостно. Полез на трекеры - а там архив для скачивания уже больше 250 Гб. Провёл ревизию компьютеров - у меня и места-то столько нет, чтоб это всё хозяйство развернуть.
При более внимательном рассмотрении выяснилось, что к имеющимся у меня архивам можно скачать дополнительные файлы и получить более или менее актуальный архив библиотеки. С клиентом оказалось хуже - его автор бросает поддержку, отдаёт исходники, ковыряйтесь сами.
Решил пойти своим путём.
Соорудил WPF-программку, которая потрошит zip-архивы, достаёт оттуда fb2-файлы, фильтрует их по языкам и жанрам, переименовывает по названию книжки и раскладывает по системе папок типа \жанр\автор\язык.  Для экономии места используются жёсткие ссылки (когда книга имеет несколько жанров) и упаковка в zip-архивы (читалки, выяснилось, поддерживают книжки в таком формате).
Скачал все доступные на трекере (http://trec.to/viewforum.php?f=52)  обновления архива (получилось примерно 130 файлов с суммарным объёмом около 200 Гб). "Распаковка" заняла примерно неделю, по ходу дела потребовалось раз 20 модифицировать программку (из-за несоблюдения стандартов fb2 в файлах библиотеки и для учёта и исправления ошибок в данных, которых быть не должно бы, но пользователь у нас пытливый). Программку даже переделал под другую платформу - вместо .NET 4.7 использовал .NET Core 3. Из любопытства в основном.
Дальше уже чисто вручную, при помощи ФАРа. Выкинуть чепуху типа "Наука-политика" и т.п. жанры и выкинуть мелочи в отдельных жанрах. Думаю, за неделю потихоньку справлюсь и запущу на облака куда-нибудь.
Пускай теперь родимое государствие блокирует что угодно - книжек мне хватит лет на 500, даже если читать только известных мне авторов. ‍

Комментариев нет: