Может быть кому то пригодятся наработки по автоматизации скачивания архивов и баз с Флибусты . Изначально брал за исходники файлы с раздачи https://booktracker.org/viewtopic.php?t=67933
Но в дальнейшем. В итоге глубокой переработки получился универсальный скрипт. Который может работать на большинстве операционных систем linux.
Обновление от 09.12.2025
Флибуста опять под атакой.
Сайт работает с перебояим и ошибками.
В связи с этим, чтобы не сыпались ошибки немного доработал скрипты.
- В GetDaily.sh и в GetSql.sh, изменен алгоритм проверки скачанных архивов
- на целостность и вычисления размера.
- Если архив не проходит проверку на целостность, вычисление размера не происходит.
- Изменен алгоритм скачивания и последующих за ним действий.
- Если архив не скачан(ошибка), то имя архива заносится в ERROR.log.
- Во всех скриптах, изменение в переменных сценария.
- Все изменения см. В файле changelog.md (внутри архива).
Анонс.
Написан новый скрипт CreArch.sh
Единственная его функция находить в папке хранения
- единых архивов файлы с префиксами a.fb2 и a.usr. И перепаковывать их в один большой архив.
- На выходе получаются два больших архива с префиксами a.fb2 и a.usr.
- В перспективе. Создание инструмента для создания месячных архивов.
- В принципе уже сейчас возможно. Но думается будут доработки..
Сейчас тестирую в боевой обстановке, вылезут какие либо косяки или нет.
Полностью, с нуля переписан скрипт MakeFlibSingle.sh.
- Появилась возможность настроить префиксы, в имени создаваемых архивов.
vymhz
Перезалил раздачу.
Изменения:
Полностью, с нуля переписан скрипт MakeFlibSingle.sh.
- Появилась возможность настроить префиксы, в имени создаваемых архивов.
-Создан скрипт CreArch.sh. Единственная его функция находить в папке хранения
- единых архивов файлы с префиксами a.fb2 и a.usr. И перепаковывать их в один большой архив.
- На выходе получаются два больших архива с префиксами a.fb2 и a.usr.
-Имеется возможность изменять префиксы входящих и выходящих архивов.
vymhz
Сегодня вылезла ошибка.
Не правильно определялся последний скачанный файл.
Этот фрагмент кода еще из кода предыдущего автора. Исправил пока как есть.
Подумаю над тем, что бы подобного больше не было.
Еще переписан скрипт Delet_arc.sh, переписан полностью и переименован в DelArch.sh.
Появилась возможность настроить префиксы удаляемых архивов.
azazar
Нет сидов. Может лучше его на GitHub залить было?
vymhz
azazar писал(а):
Нет сидов. Может лучше его на GitHub залить было?
Не занимался такими вещами . Делал для себя. Решил поделиться.
vymhz
Есть новые доработки в скриптах.
Но в свете грустной новости о Сильвере. Теперь даже не знаю что делать. Может это все зря. Руки опускаются.
vymhz
Все таки решил продолжить.
Полностью переписан скрипт GetFlibDaily.sh (стал более компактный) и переименован в GetDaily.sh.
Устранена ошибка не правильного определения id последней скачанной книги.
Переписан скрипт MakeFlibSingle.sh (стал более компактный) и переименован в MakArch.sh.
GetFlibSql.sh переименован в GetSql.sh.
vymhz
Сегодня попробовал собрать месячный архив за сентябрь. Использовал скрипт CreArch.sh.
Получил два архива
f.fb2-797607-800800.zip
f.usr-797607-800800.zip
Сравнил с архивами выложенными в раздаче https://booktracker.org/viewtopic.php?t=49016
Итог:
fb2 один в один.
Usr, мой чуть больше. На 696303 байт
Можно считать результат вполне приемлемым.
banana123
Спасибо за раздачу.
А как можно скачать архивы за предыдущий период? НАпример за последний год? Или вообще все время?
vymhz
banana123 Этот скрипт предназначен для скачивания архивов с сайта флибусты. Там обычно выложены архивы свежих поступлений . Максимум недельной давности. Если вы хотите скачать полный архив флибусты то вам нужно смотреть раздачи.
Уже несколько дней флибуста очень плохо отрабатывает opds каталог. Постоянные обрывы и зависания.
В связи с этим возникла мысль, а не создать - ли собственный ежедневно обновляемый каталог флибусты (благо https://flibusta.is/sql/ обновляется ежедневно), чтобы избавить себя, ну и всех знакомых, от узкого горлышка поиска книг по каталогу opds, непосредственно с самой флибы. Скачал таблицы, залил в базу. Выяснилось, что lib.libfilename.sql.gz содержит всего 53 тысячи записей. Видимо путь, до остальных книг храница в хеше. Но так и не смог заставить отдать книгу по хеш запросу из таблицы libbook. Может что-то не правильно делаю, или это не возможно?
vymhz
Nasario3 писал(а):
Уже несколько дней флибуста очень плохо отрабатывает opds каталог. Постоянные обрывы и зависания. В связи с этим возникла мысль, а не создать - ли собственный ежедневно обновляемый каталог флибусты (благо https://flibusta.is/sql/ обновляется ежедневно), чтобы избавить себя, ну и всех знакомых, от узкого горлышка поиска книг по каталогу opds, непосредственно с самой флибы. Скачал таблицы, залил в базу. Выяснилось, что lib.libfilename.sql.gz содержит всего 53 тысячи записей. Видимо путь, до остальных книг храница в хеше. Но так и не смог заставить отдать книгу по хеш запросу из таблицы libbook. Может что-то не правильно делаю, или это не возможно?
Свой аналог OPDS? Стоит ли оно трудо затрат? Я использую каталогизатор freelib. У него есть встроенный OPDS и web. При надобности, есть возможность предоставлять своим друзьям доступ к этому всему. Такие возможности есть не только у freelib. FLibrary, calibre. Это только на вскидку. Или inpx-web. А изобретатать велосипед. Нужно ли это?