FB2+NON-FB2(PDF, DJVU, ETC)=FBD? Или предложение по поддержке формата описаний для не-фб2 книг

Предложение простое. Автром программы "Библиотекарь", насколько я понимаю, был придуман формат файла описаний для не-фб2 книг. По сути - обычный пустой фб2 с заполненным дескрипшеном, который лежит рядом с книжкой. При наличии такого файла Библиотекарь берет из него всю инфу. Довольно удобно, кстати. При обработке файлов можно ввести все вручную и программа создаст архив в виде filename.pdf.zip с обоими файлами.

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

Пример такого файла: ftp://lib.rus.ec/Alexx_S/Попенко, Виктор - Метательное холодное оружие.djvu.zip

Собственно и предложение - добавить возможность обрабатывать такие архивы при добавлении книг, ну а задача максимум - перевести в такой вид уже имеющиеся книги

Прекрасная идея! Полностью поддерживаю. Осталось за малым - подогнать под это движок либрусека. Ну и продумать, как и кто и чем будет формировать это описание. Ведь насколько я понимаю, на либрусек должен заливаться уже готовый zip. А "Библиотекари" подтянутся.

Идея, безусловно, хорошая. Только "подгонять" лучше все-таки под имеющиеся стандарты (в OASIS есть точно, в ePUB - по-моему-есть)

А какие именно стандарты? Файл описания полностью совпадает с фб2, можно создавать его в любом редакторе. Библиотекарь (FB2Lib) его поддерживает, с фб2 либрусек работает - все за то, чтобы ввести такую фичу :)

Создаем фб2, заполняем дескрипшен, добавляем обложку и переименовываем в FB2 в FBD.

http://lib.rus.ec/stat/tot:
fb2: 105845
djvu: 4400
pdf: 2902
doc: 1336
txt: 572
html: 447
rtf: 319
остальными можно пренебречь.

По-хоршоему txt и html несложно перегнать в fb2, doc нужно перегнать в rtf и запретить заливку.
В любом случае основное - pdf и djvu, их практически поровну.
В pdf всю необходимую инфу можно засунуть в заголовок файла. Это наверное удобнее, чем таскать отдельный файл, меньше шансов потерять. Там уже есть название, автор, keywords, остальное можно запихать в Description
В djvu тоже кажется можно добавлять скрытый текст, надо покопаться.

Преимущества такого подхода, как я их вижу:
1. Наличие такого файла практически гарантирует то, что он содержит корректную информацию. Я сам очень плотно занимался факсимильными книгами, делал их по всем правилам, но дескрипшен никогда не заполнял. И никто, насколько я знаю, не заполняет. И как понять - правильную ли информацию он содержит?
2. Унификация. Для любого типа файлов он имеет один формат. И этот формат - хорошо знакомый всем, и либрусековскому движку, и программам-каталогизаторам, и пользователям - FB2.
3. Удобство. В FBD можно включить больше информации, нежели в сами файлы. Можно автоматически сгенерировать такие файлы на основе информации, содержащейся в базе либруска, Библиотекарь УЖЕ поддерживает этот формат и добавление в его базу книг будет произвдиться автоматически. Вот, к примеру, я сейчас доделываю подборку всех доступных книг по холодному оружию.

Как доделаю - можно будет всем скопом загрузить на либрусек. И процесс загрузки ничем не будет отличатья от загрузки фб2.

larin написал:

В pdf всю необходимую инфу можно засунуть в заголовок файла. Это наверное удобнее, чем таскать отдельный файл, меньше шансов потерять. Там уже есть название, автор, keywords, остальное можно запихать в Description
В djvu тоже кажется можно добавлять скрытый текст, надо покопаться.

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

А мы что, уже умеем metainfo из PDF брать ?! Офигеть.... Буду иметь в виду.

Ulenspiegel написал:
А мы что, уже умеем metainfo из PDF брать ?! Офигеть.... Буду иметь в виду.

Формат PDF открыт. Бери и пользуйся (вытаскивай). Кстати, поддерживается в т.ч. DublinCore. Вот, боюсь только, что "затаскивать" будет сложнее (хотя не пробовал)

Сложнее - это раз, не вся нужная информация может храниться - два, и у 99,99% PDF там мусор - три.

Кроме того, внесение информации в PDF гораздо более сложное дело. К примеру, добавляет человек книгу, заполняет вручную поля. Что сложнее - на основе введенной информации создать легкий файлик с описанием или модифициоровать PDF на сотню мегов? А обложку в него можно внедрить?

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

Ну и еще один, условный правда, но плюс - все это уже испытано на практике, и результат мне нравится, специально обработал полсотни книг перед тем, как предлагать.

1. Я то не против fbd, я прокомментировал мнение Ларина. Более того, на торрент.рус.ек давненько было обсуждение подобной фичи и я предлагал именно такой вариант - файл описания на базе фб2!
2. "Не вся информация может храниться" - именно, что вся. Более того, я подозреваю 8) что в pdf можно засунуть фб2 описание как есть !!! (да, без картинки, но если покопаться в описании pdf, то и это имхо реализуемо). К djvu, к сожалению, указанное не относится, не сильно нарушая спецификацию формата.
2. "Жанры для нехуд.лит." - т.к. мы не возводим в абсолют (???) FB2, то может подумать о использования УДК? Напр. добавляем атрибут, типа <genre udk="681.325.5-181.4">science</genre> Кстати, и Грибову это могло бы пригодиться 8)
3. "Удобство для пользователя" - ему в любом случае нужна какая то приблуда для создания файла описания. Значит её нужно написать...

Цитата:
3. "Удобство для пользователя" - ему в любом случае нужна какая то приблуда для создания файла описания. Значит её нужно написать...

Любой редактор ФБ2, Fb2Lib

vladk написал:
2. "Жанры для нехуд.лит." - т.к. мы не возводим в абсолют (???) FB2, то может подумать о использования УДК? Напр. добавляем атрибут, типа <genre udk="681.325.5-181.4">science</genre> Кстати, и Грибову это могло бы пригодиться 8)

УДК в библиотеках уже не используется, перешли на ББК.
А что такое ISBN? Тоже по жанру книги? Или что-то другое?

Если Вам сказали, что моя фамилия - Друпал, Вас обманули. А затаскивать как раз довольно просто, AAcrobat 9 вполне позволяет.

Насчет друпала не понял, но речь не об Акробате,а об Либресеке, о DjVu и всех остальных форматах, об автоматическом заполнении описания у любой книги ;)

Когда говорил о друпале, имел в виду именно Либрусек, на нем живущий. А Акробат - это достаточно пристойное средство для внесения в PDF-файл библиографической информации.

Ulenspiegel написал:
Если Вам сказали, что моя фамилия - Друпал, Вас обманули. А затаскивать как раз довольно просто, AAcrobat 9 вполне позволяет.

Нет, не Друпал, но как я понимаю, в наших силах (soshial) писать расширения для либрусека.

Ну так между "формат уже поддерживается" и "расширение для поддержки можно написать" - дистанция огромного размера :)
А вообще Вы подали хорошую мысль.

Ulenspiegel написал:
Ну так между "формат уже поддерживается" и "расширение для поддержки можно написать" - дистанция огромного размера :)
А вообще Вы подали хорошую мысль.

Загнать в pdf fb2 description- вот это действительно не просто хорошая а отличнейшая мысль!!!

ВПЕРЁД ТОВАРИЩИ! ОТ ТЕОРИИ К ПРАКТИКЕ!
P.S. Кто-бы мне ножи заточил на кухне:(

Кстати, очень близко к данной теме:
Заливая сюда djvu, пытаюсь использовать в качестве дескрипшена "аннотацию" (в разумных пределах, естественно) - ну там информацию о печатном издании, содержание и т.п. Пытаюсь прикрепить к аннотации файл (обложку книги) - облом - "ошибка какая то js". Глюк или фича?

Импорт заработал - http://lib.rus.ec/b/166042.
Всасывает автора, жанры, обложку, аннотацию - всё то же, что и из fb2.
Потестируй.

larin написал:
Импорт заработал - http://lib.rus.ec/b/166042.
Всасывает автора, жанры, обложку, аннотацию - всё то же, что и из fb2.
Потестируй.

Не получается. Подробности - в ЛС!

vladk написал:
Не получается. Подробности - в ЛС!

не вижу.

larin написал:
vladk написал:
Не получается. Подробности - в ЛС!

не вижу.

Может это у меня Опера глючит?
Ну да бог с ней!
Я то не понял, что уже работает FBD!!! Побежал тестировать!

FBD РАБОТАЕТ!!!
Качать Ларина!
Не успели пожелать, а оно уже есть!

Две ложки дегтя:
1. Тэги разметки из аннотации в формате fb2 (типа emphasis, strong)преобразуются в тэги HTML (i, b), добавляются тэги "p class=...", и в итоге при просмотре аннотации это все теряется. Или это опять у меня Опера глючит?
2. После правки аннотации обложка исчезла!!!

И еще набравшись наглости (аппетит приходит во время еды) - может, раз мы теперь можем загонять дескрипшн полностью, его как то высвечивать полностью, как для fb2 книг?
И можно ли будет добавить дескрипшен к уже залитым книгам? Я понимаю, что это противоречит идеологии (залитый файл становится неприкасаемым), но очень уж не хочется по новой заливать файлы.

Залил пару книг, все работает.
Если не указать разрешение, то либо пишет ошибку переименования файла, либо добавляет как ФБ2, впрочем поле обязательное. для верности его можно было бы сделать выпадающим списком с возможностью ввода
Пробовал заменять существующие файлы. Не получается, книга добавляется как новая.
Отказвается добавлять книгу с версией не выше, чем у книги, которая была удалена из библиотеки.

Ну а в общем, все отлично, все работает :) Вот сделать бы формирование FBD для всех неформатных книг - было бы вообще великолепно :)

Огромное спасибо!

Гут. Предложение - выложить "рыбу" FBD-файла в раздел "Софт"

Ulenspiegel написал:
Гут. Предложение - выложить "рыбу" FBD-файла в раздел "Софт"

Хм... Рыба для ФБ2? Для чего? Это же стандартный фб2, в редакторе он сам создается, а если редактировать вручную, то как быть с ID и обложками?

Резонно, насчёт ID и обложки - недодумал.

2Alexx_S:
>Вот сделать бы формирование FBD для всех неформатных книг - было бы вообще великолепно :)
А какая разница - я так понял, что Ларин сделал это для всех "не фб2 книг" Или имеется в виду - "уже залитых"? Это вряд ли.

2Ulenspiegel:
А зачем "рыба"? Это есть самый обычный fb2 файл с пустым body. То, что не пригодится движку либрусека, пригодится "библиотекарям" и "читалкам" (в перспективе).

vladk написал:
Или имеется в виду - "уже залитых"? Это вряд ли.

Да, я имел в виду для уже залитых. И формировать такие файлы описаний при заливке и правке информаци о книге. Это в идеале.

Alexx_S написал:
Да, я имел в виду для уже залитых. И формировать такие файлы описаний при заливке и правке информаци о книге. Это в идеале.

будет.

Сделал генерацию FBD.
Доступна по /b/ID/fbd, например - http://lib.rus.ec/b/164111/fbd
Просьба проверить для разных книг и посмотреть, всё ли включено.
Если всё нормально - буду запихивать в архивы.

larin написал:

Если всё нормально - буду запихивать в архивы.

Уупс... этавот... значит, опять всё перекачивать?

pkn написал:
larin написал:

Если всё нормально - буду запихивать в архивы.

Уупс... этавот... значит, опять всё перекачивать?

зачем?

larin написал:
pkn написал:
larin написал:

Если всё нормально - буду запихивать в архивы.

Уупс... этавот... значит, опять всё перекачивать?

зачем?

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

larin написал:
Сделал генерацию FBD.
Просьба проверить для разных книг и посмотреть, всё ли включено.
Если всё нормально - буду запихивать в архивы.

А если хочется что-то добавить?

фбд по сслыке невалидный. что-то в аннотации

Fatal Error 39: AttValue: " or ' expected in /www/ocr/fbd.fb2 on line 14
Fatal Error 65: attributes construct error in /www/ocr/fbd.fb2 on line 14
Fatal Error 73: Couldn't find end of Start Tag date line 14 in /www/ocr/fbd.fb2 on line 14
Fatal Error 76: Opening and ending tag mismatch: title-info line 4 and date in /www/ocr/fbd.fb2 on line 14
Error 201: Namespace prefix l for href on image is not defined in /www/ocr/fbd.fb2 on line 15
Fatal Error 76: Opening and ending tag mismatch: description line 3 and title-info in /www/ocr/fbd.fb2 on line 17
Fatal Error 76: Opening and ending tag mismatch: FictionBook line 2 and description in /www/ocr/fbd.fb2 on line 21
Fatal Error 5: Extra content at the end of the document in /www/ocr/fbd.fb2 on line 22

Все эти фатальные эрроры - суть ущербности fb2, его нелепых и необоснованных ограничений.
Вот как должен выглядеть дескрипшен, чтоб считаться валидным (угловые скобки заменены звездочками):
*description*
*title-info*
*genre*sci_history*/genre*
*author*
*first-name*Сергей*/first-name*
*middle-name*Петрович*/middle-name*
*last-name*Михеев*/last-name*
*id*52142*/id*
*/author*
*book-title*Эпоха Петра Великого*/book-title*
*annotation*
*p*В первом томе книги рассматривается положение России в международных отношениях в конце XVII в., состояние ее вооруженных сил, история создания регулярной армии при Петре I, характеристика военной деятельности первого императора и его сотрудников (А.Д. Меншикова, Б.П. Шереметева, М.М. Голицына, Я.В. Брюса), причины и начальный этап Великой Северной войны, Нарвская операция (1700), битва при Лесной (1708), Полтавское сражение(1709) и завершающий этап войны. Делаются общие выводы о состоянии русской армии при Петре I и кратко рассказывается военной деятельности при его преемниках. Завершает том описание Кунерсдорфского сражения (1759) – одного из ключевых сражений Семилетней войны (1756—1763).*/p*
*/annotation*
*date*1910*/date*
*coverpage*
*image l:href="#cover_0.png"/**/coverpage*
*lang*ru*/lang*
*sequence name="История Русской армии" number="1"/*
*/title-info*
*document-info*
*author*
*first-name**/first-name*
*last-name**/last-name*
*/author*
*program-used*FB Editor v2.0*/program-used*
*date value="2009-09-18"*18 September 2009*/date*
*id*3B9B893F-ACC9-4016-9FBB-2ABEB6B4A7E5*/id*
*version*1.0*/version*
*/document-info*

*custom-info info-type="librusec-id"*164111*/custom-info*
*/description*
*body*
*title*
*empty-line/*
*/title*
*section*
*empty-line/*
*/section*
*/body*
*binary id="cover_0.png"

Покопался с этой книжкой

У даты отсутствуют кавычки, но лучше значение даты текстом вообще опустить

[date value=1910]1910[/date]
Надо:
[date]1910[/date]

В начале тип ссылок объявлен
[FictionBook xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.gribuser.ru/xml/fictionbook/2.0"]
Надо:
[FictionBook xmlns="http://www.gribuser.ru/xml/fictionbook/2.0" xmlns:l="http://www.w3.org/1999/xlink"]

Ну и разрешение надо бы добавить:
[coverpage][image l:href="#cover_0.png"/][/coverpage]

[binary id="cover_0.png" content-type="image/png"]

Аннотация – отсутствуют теги абзаца


[annotation]В первом томе книги … войны (1756—1763).[/annotation]

Надо:
[annotation]

В первом томе книги … войны (1756—1763).

[/annotation]

Не хватает языка

[lang]ru[/lang]

Либрусековский АйДи лучше записать так (хотя валидатор все равно ругается):

[custom-info info-type="librusec-id"]164111[/custom-info]

Добавить блок информации о документе:

[document-info]
[author]
[first-name][/first-name]
[middle-name][/middle-name]
[last-name][/last-name]
[nickname]N.A.[/nickname][/author]
[program-used][/program-used]
[date][/date]
[id]7FFAA135-E575-4378-A1DB-3CF3D31FCB6F[/id]
[version]1.0[/version]
[/document-info]

Файл со всеми изменениями: ftp://lib.rus.ec/Alexx_S/fbd.fb2

Alexx_S написал:
Покопался с этой книжкой
У даты отсутствуют кавычки, но лучше значение даты текстом вообще опустить

fixed.
Alexx_S написал:

В начале тип ссылок объявлен
[FictionBook xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.gribuser.ru/xml/fictionbook/2.0"]
Надо:
[FictionBook xmlns="http://www.gribuser.ru/xml/fictionbook/2.0" xmlns:l="http://www.w3.org/1999/xlink"]


fixed.
Alexx_S написал:

Ну и разрешение надо бы добавить:

fixed.
Alexx_S написал:

Аннотация – отсутствуют теги абзаца


[annotation]В первом томе книги … войны (1756—1763).[/annotation]

Надо:
[annotation]

В первом томе книги … войны (1756—1763). [/annotation]

Не хватает языка
[lang]ru[/lang]


fixed.
Alexx_S написал:

Либрусековский АйДи лучше записать так (хотя валидатор все равно ругается):
[custom-info info-type="librusec-id"]164111[/custom-info]

валидатор ругается на custom-info? а разве для него есть какие-то правила? что нам говорит схема?
Alexx_S написал:

Добавить блок информации о документе:

а где её брать? нет в djvu ни id, ни прочей информации о документе.

глянь, что получилось, желательно на нескольких книгах.

Цитата:
валидатор ругается на custom-info? а разве для него есть какие-то правила? что нам говорит схема?

Тут я пас, в схеме не разбираюсь. Но такой вариант предлагает FBE 2.0

Цитата:
а где её брать? нет в djvu ни id, ни прочей информации о документе.

Генерить, наверное. Прочую информацию не заполнять, пустой оствить. Имя автора документа надо бы, любое, тот же Библиотекарь без него отказывается работать с файлом.

Цитата:
глянь, что получилось, желательно на нескольких книгах.

Ок, сейчас займусь

Посмотрел пока две книги.

1. Констркцию
[custom-info]
[librusec-id]164851[/librusec-id]
[/custom-info]

лучше, все же, заменить на

[custom-info info-type="librusec-id"]164851[/custom-info]

Во всяком случае, FBE и FB2Lib ее понимают, первая же в FB2Lib вызывает ошибку XML, а в FBE теряется тип данных.

2. В просмотренных пока двух книгах, http://lib.rus.ec/b/164851/fbd и http://lib.rus.ec/b/164380/fbd встречаются ссылки и картинки. Их надо как-то обрабатывать. С ссылками все ясно (если не ошибаюсь, поменять href на l:href, а картики можно ставить обложкой (при отсутсвии оной) или удалять если обложка есть.

Буду смотреть дальше

Книга http://lib.rus.ec/b/161940/fbd

в аннотации встречается оформление текста, отчего его корежи абсолютно везде, в читалках ,редакторах, Библиотекаре:


А квадратики в библиотекаре и на други книгах встречаются, что-то с симоволом конца строки (который, кстати, не вставляется через буфер в Ворд и вырезается FBE и читалками)

Alexx_S написал:
Книга http://lib.rus.ec/b/161940/fbd

в аннотации встречается оформление текста, отчего его корежи абсолютно везде, в читалках ,редакторах, Библиотекаре:


А квадратики в библиотекаре и на други книгах встречаются, что-то с симоволом конца строки (который, кстати, не вставляется через буфер в Ворд и вырезается FBE и читалками)


Откуда и зачем там взялся div я не знаю, удалил - стало лучше.
А с форматированием беда.
Придётся писать конвертор html=>fb2 для аннотаций видимо. В базе друпала они лежат и редактируются в упрощённом html, а в fb2 могут иметь стихи и прочие цитаты, вплоть до таблиц.
И как это конвертить туда-обратно - непонятно.
Задумался.

Запушу код на git, может кто глянет parser.inc на эту тему.

larin написал:

Откуда и зачем там взялся div я не знаю, удалил - стало лучше.
А с форматированием беда.
Придётся писать конвертор html=>fb2 для аннотаций видимо. В базе друпала они лежат и редактируются в упрощённом html, а в fb2 могут иметь стихи и прочие цитаты, вплоть до таблиц.
И как это конвертить туда-обратно - непонятно.
Задумался.

Запушу код на git, может кто глянет parser.inc на эту тему.

А надо? Имхо, вполне достаточно преобразовать в обычный текст, все форматирование потеряется.
Сейчас посмотрел код страницы, там тег [br /] (кстати, а пробел нужен передо косой чертой? может, в нем все дело?). Вот преобразовать его в символ конца строки и все.

Да, и еще - на этой книге FBE ругается на имя обложки, может их все переименовывать в cover.jpg/png?

Alexx_S написал:
А надо? Имхо, вполне достаточно преобразовать в обычный текст, все форматирование потеряется.
Сейчас посмотрел код страницы, там тег [br /] (кстати, а пробел нужен передо косой чертой? может, в нем все дело?).

нет там никаких br.

Alexx_S написал:
Вот преобразовать его в символ конца строки и все.

нет в fb2 символа конца строки. Не во что преобразовывать. Разве что в p обернуть.
Alexx_S написал:

Да, и еще - на этой книге FBE ругается на имя обложки, может их все переименовывать в cover.jpg/png?

А чем ему имя обложки не нравится? Вполне кошерное имя.
Ладно, пусть будет cover.

larin написал:

нет в fb2 символа конца строки. Не во что преобразовывать. Разве что в p обернуть.

Блин, точно! Так и надо сделать - заключить в [p]

larin написал:

А чем ему имя обложки не нравится? Вполне кошерное имя.
Ладно, пусть будет cover.

Говорит что

Страницы

X