LINUX.ORG.RU
ФорумTalks

flibusta\первое мая, как хранить fb2?

 , , ,


0

1

уже 12 часов качаю архив флибусты и задумался, что если их программа говно?
что если я хочу свой OPDS с преферансом?
ок, есть готовый https://github.com/mitshel/sopds вариант, только мануал по установке почти столько же строк занимает, что и код.
нахер, лучше велосипедить.
на форуме уже были попытки и на Qt флибусту каталогизировать и по разному.
я запнулся прям на самом первом шаге - разбор XML у fb2.
есть у нас извращенцы, которые пробовали проверять xml по схемам? потому что это не тривиальная оказалась задачка, авторы наплодили несколько 2х версий схемы. обратно не совместимых, но при этом все считают себя 2.0 версиями. по этому фиг угадаешь, что за xml сейчас перед тобой.
зачем вообще смотреть схемы в xml? потому что как минимум жанр зависит от версии.
есть истории успеха в хранении и каталогизации флибусты?
есть те, кто проверял fb2 по схемам?

Архив чем то отличается от архива Либрусека?

ilovewindows ★★★★★
()
Ответ на: комментарий от ptarh

есть некие *.inp файлы похожие на индексы
ими наверное и пользуется программа MultiLib
но во первых у меня нет доверия в полноте и актуальности этих «полубинарных» файлах СКИФ,,:?sf_fantasy:sf_action:sf_cyberpunk:?Попаданец???179209?526135?179209?0?fb2?2010-01-26?ru?3?? во вторых этот формат парсить ещё хуже чем сами книги. потому что нужно поддерживать консистентность.

system-root ★★★★★
() автор топика
Ответ на: комментарий от system-root

А сами названия небось хэшами, так что у локальных поисковиков никаких шансов? Такой то стыд...

ptarh ★★★★★
()
Ответ на: комментарий от deep-purple

там у всех из рандомной выборки http://www.gribuser.ru/xml/fictionbook/2.0 хотя это может означать любой из трёх форматов даже внутри схем ссылки те же. авторы как-то не продумали версионность.

system-root ★★★★★
() автор топика

есть конечно вариант парсить всё подряд без проверки схемы, брать элемент «жанр» (в надежде что он всегда в одном и том же месте) фигачить его как есть в базу, а потом пройтись и проверить не затесались ли там жанры из других версий, если да, то кросстаблицы.
это всё колхоз и фигово ложится на ElasticSearch
в итоге есть у меня 400гигов (наверное терабайт при распаковке) xml документов, в чьей схеме я даже не уверен. я конечно не программист, но пытаться парсить и тем более заливать это в базы данных через 100500 «try, catch» или «как есть» это хуже чем колхоз.

system-root ★★★★★
() автор топика
Ответ на: комментарий от system-root

даже внутри схем ссылки те же

Ну, я такое уже видел ))

это может означать любой из трёх

Чот я порылся там у них — и вроде как означает что это ОДИН мажорный формат с минорными плюшками, где более поздняя минорщина совместима с ранними за счет необязательных дополнений. Т.е. просто валидируй по последней, и если какая-то книга будет формата предыдущего минора — ты тупо не получишь значения для необязательных, т.к. их там не будет.

deep-purple ★★★★★
()
Последнее исправление: deep-purple (всего исправлений: 1)
Ответ на: комментарий от fmrlex

Я просто оставлю это здесь.

В: Имеет ли смысл скачивать Флибусту, при наличии Либрусека?
О: В настоящее время (17.02.2015) разница между этой сборкой и библиотекой flibusta по состоянию на 22.01.2015 составляет около 50 книг. Т. е. разница незначительная.

тред не про то, где скачать fb2, а про то, что fb2 оказался очень хреновым форматом (лично на мой вкус)

system-root ★★★★★
() автор топика
Ответ на: комментарий от system-root

А что нравится? епуб? Тогда конвертер в руки и го. Хотя TinyOPDS интегрируется с конвертером и отдает книги в епубе.

fmrlex
()

А зачем тебе проверка по схеме? Выпиши набор полей, по которым ты бы хотел делать поисковые индексы. Разбор xml-я вообще на SAX. В ходе разбора встречается поле, входящее в заданый набор - заполняем нужное свойство. По окончанию разбора, если не было ошибок (т.е. xml валидный, на соответствие схеме - пофиг) сохраняем документ, получаем его айдишник в нашем хранилище (если хранить документы файлами в фс - айдишником будет относительный путь к нему, если блобами в базе - то id/uuid записи) и скармливаем эти данные индексатору.

Если писать сервис под jvm, то можно еще и без отдельно стоящего ElasticSearch/Solr обойтись, злобно оставив встроенный lucene.

Nagwal ★★★★
()
Ответ на: комментарий от system-root

Угу, тред про то что строительство велосипеда начинается со «старый велосипед говно» и «а какие вообще бывают руды металлов для строительства велосипеда», 150 гигов архивов и программы под все существующие операционки игнорируются, потому как говно. Вообщем ниачом тред.

ilovewindows ★★★★★
()

на форуме уже были попытки и на Qt флибусту каталогизировать и по разному.

Может быть это даже я. У меня софтинка в принципе готова. Я её только все никак не могу оформить для других. Для других, в смысле инструкцию сделать, удобное окно настроек(я то и в коде могу пути поменять) и вот такое вот всё.

Loki13 ★★★★★
()
Ответ на: комментарий от ilovewindows

старый велосипед говно

старого велосипеда нет. у него даже колёс нет
из 1000 случайных файлов, только 45 прошли валидацию по схеме v2.2
у большей части элемент жанр либо пустой, либо там бред от цифр до русских букв
ага, ещё нашел 5 разных кодировок

150 гигов архивов и программы под все существующие операционки игнорируются

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

system-root ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.