Валидация fb2

Аватар пользователя larin

1. Добавил валидацию загружаемых книг.
2. Прогнал через валидатор существующие. Список непрошедших - http://lib.rus.ec/stat/invalid.

Что-то маловато будет для существующих. AFAIK, очень много книг, которые ты перегонял в fb2 скриптом ("стартовый" контент либрусека), не проходят валидацию из-за ошибок того скрипта (в тексте оставались символы "больше" и "меньше", интерпретируемые как теги читалками).
А что есть сам валидатор, на чем написан, где можно пощупать?

Аватар пользователя larin

SeNS написал:
Что-то маловато будет для существующих. AFAIK, очень много книг, которые ты перегонял в fb2 скриптом ("стартовый" контент либрусека), не проходят валидацию из-за ошибок того скрипта (в тексте оставались символы "больше" и "меньше", интерпретируемые как теги читалками).
А что есть сам валидатор, на чем написан, где можно пощупать?

написан на пыхе, пощупать можно в архиве librusec.zip завтра, как перегенерируется.

larin написал:
написан на пыхе, пощупать можно в архиве librusec.zip завтра, как перегенерируется.

Отец, зачод! Пасибки.

Спасибо!

Аватар пользователя Tanja45

Спасибо большое!

ref

larin написал:
1. Добавил валидацию загружаемых книг.
2. Прогнал через валидатор существующие. Список непрошедших - http://lib.rus.ec/stat/invalid.

Спасибо! Хоть ясно, с чем бороться )

А нумерацию файлов в списке можно организовать? И как-нибудь общую цифру?
типа в заголовке:
Файлы, не прошедшие валидацию - "столько-то"
1....
2...
3...
и т.д.

Аватар пользователя golma1

Класс! Спасибо.

А полученный список динамический? Что будет, если я десяток книг из него исправлю? Исчезнут они из списка или придётся повторить прогонку, чтобы создать новый список?

golma1 написал:
Класс! Спасибо.
А полученный список динамический? Что будет, если я десяток книг из него исправлю? Исчезнут они из списка или придётся повторить прогонку, чтобы создать новый список?

Динамический, похоже )) Я уже исправил и залил новую версию одной книжки с объединением версий.
Из списка она пропала достаточно быстро ))

Аватар пользователя golma1

TaKir написал:
Динамический, похоже )) Я уже исправил и залил новую версию одной книжки с объединением версий.
Из списка она пропала достаточно быстро ))

Оптимально! Ларину - очередной виват! :)

Аватар пользователя F.CYXOB

Здравствуйте!
У меня есть минимум одна валидная книга, встретившаяся в списке (просто взгляд упал) - с Альда. Правда, я её ещё не читал / не вычитывал.
С удовольствием заменю. Список полистаю повнимательней, может быть ещё что-нибудь найду.

Как исправлять, удалять, добавлять? Хорошо бы иметь какую-нибудь однообразную методику или рекомендации.

Аватар пользователя Bullfear

F.CYXOB написал:
Как исправлять, удалять, добавлять? Хорошо бы иметь какую-нибудь однообразную методику или рекомендации.

А в чем проблема то? Вон справа ссылка "Добавление книги", на нее жмете и выбираете fb2 до двух мегабайт. Все просто.
Аватар пользователя F.CYXOB

OK! Добавил. А как реагировать (и надо ли) на полученное сообщение "Книга 47389 заменена на исправленную (удалить связь)"? Сорри, у меня мало опыта...

Аватар пользователя Bullfear

Никак. Сервер нашел дубль и его удалил.

Ура!


А хорошо бы это куда-нибудь на видное место.
Аватар пользователя larin

lankier написал:
Ура!

А хорошо бы это куда-нибудь на видное место.

http://lib.rus.ec/stat/ - куда уж виднее. Всё там собрано.
Аватар пользователя Igorek67

Всегда теперь худшие дубли автоматически удалять будут? Хорошо бы. А как оно само определяет, какая книга лучше?:)

Аватар пользователя larin

Igorek67 написал:
Всегда теперь худшие дубли автоматически удалять будут? Хорошо бы. А как оно само определяет, какая книга лучше?:)

Оно так и было с самого начала.
Только повадки неестественного интеллекта меняются.
Аватар пользователя Bullfear

larin написал:
Только повадки неестественного интеллекта меняются.

Вспомнилось "1.0:1.0 версия не лучше" по отношению к libruseс_kit :))) А потом еще было забавно, когда оставляло более позднюю дату - 2011 год, опять же Librusec_kit :)
Кстати, а как такая дата получилась?
Аватар пользователя larin

Bullfear написал:
larin написал:
Только повадки неестественного интеллекта меняются.

Вспомнилось "1.0:1.0 версия не лучше" по отношению к libruseс_kit :))) А потом еще было забавно, когда оставляло более позднюю дату - 2011 год, опять же Librusec_kit :)
Кстати, а как такая дата получилась?

Чудны повадки неестественного интеллекта...
Аватар пользователя F.CYXOB

Здравствуйте!

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

Файл из списка (цитата):
«img - Не гневи колдуна! (Гусляр - 6 : Гусляр навеки-4) 12K (365) (читать) (скачать) - Кир Булычев»

Скаченный (скачать - http://lib.rus.ec/b/9589/download ) невалидный файл имеет в теге (book-title): «Не гневи колдуна !». т.е., кроме невалидности, содержит ошибку и в названии книги - лишний пробел между словом и восклицательным знаком.

Вопрос: Откуда разница названий книги: в списке не так, как в файле?

Спасибо.

F.CYXOB написал:
Откуда разница названий книги: в списке не так, как в файле?

В списке показаны названия из базы данных. Кто-то исправил ошибку через страницу редактирования книги, в базе данных появилось новое название, а в файле осталось старое.
Аватар пользователя F.CYXOB

Спасибо!

Файл обновился удачно, судя по сообщению "Книга 9589 заменена на исправленную (удалить связь)".
А два дня назад он добавился как новый. Пришлось разбираться, удалять исправленный-добавленный, и просить помощи.

М-м-м, кажется, валидатор использует тот FictionBookGenres.xsd, в котором нету «Литературоведения» (sci_philology), — я сделал новый .fb2 для «Драмы на дне» (старый файл был в списке невалидных), а валидатор указал, что нету такого жанра в схеме. :( Получилась замена невалидного на… невалидное. :)

Или жанр «Литературоведение» можно проставлять только на страничке редактирования, а в самом дескрипшене *.fb2 его прописывать нельзя?

nonduc написал:
Или жанр «Литературоведение» можно проставлять только на страничке редактирования, а в самом дескрипшене *.fb2 его прописывать нельзя?

Этот жанр Ларин недавно добавил по просьбам трудящихся. В грибовском списке его нету.

Я ж сам и был этими «просящими трудящимися»! :D И то, что жанра нету в Грибовском списке, мне прекрасно известно. :)
У меня тут была не претензия к валидатору, а уточняющий вопрос к Ларину, только и всего.

Хм.. :) А может действительно оторвать проверку жанров, раз уж движок сам их проверяет? Чтобы не повторяться. В общем я тут подправил xsd, если вдруг понадобится.

Не-не, не отрывай, полезная штука, пущай будет! Оченно удобно проверять файлы до заливки. И проверка жанров тоже нужна — мне, во всяком случае, ибо я с *.fb2 работаю не в спецредакторах, а в обычном текстовом, EditPlus’е. :)

Ну тогда надо взять новый FictionBookGenres.xsd отсюда.

Спасибки! :)

Правда, я себе локально сей .xsd уже собственноручно поправил, но остальным пригодится, факт. Если, конечно, Ларин нам не скажет, что в дескрипшене эти либрусековские жанры прописывать нельзя.

Аватар пользователя larin

nonduc написал:
Если, конечно, Ларин нам не скажет, что в дескрипшене эти либрусековские жанры прописывать нельзя.

Можно.
Мало-ли что там валидатор бурчит, пропустил - значит можно.

Gut! :)

Э-э-э… это в смысле, что можно в дескрипшене сразу жанр прописывать. А не обращать внимание на валидатор не смогу — Ordnung muß sein! Зиг одер Тод! Каррамба! :D

Досточтимый сэр, а нельзя ли чудный список невалидных файлов http://lib.rus.ec/stat/invalid имени камрада lankier'a снабдить нумерами спереди по порядку?
Он большой и в нем трудновато ориентироваться.
Можно, конечно, отгрызать книжки с концов, но бывает и в середине за что-то зацепишься....

Аватар пользователя larin

oldvagrant написал:
Досточтимый сэр, а нельзя ли чудный список невалидных файлов http://lib.rus.ec/stat/invalid имени камрада lankier'a снабдить нумерами спереди по порядку?

Можно.

Большое спасибо!

Возможно где-то туплю, но выложил на ftp файл, который не проходит валидацию здесь, хотя прекрасно валидируется из .NET со схемой скачанной с www.fictionbook.org.
Файл A_Night_in_the_Lonesome_October.fb2
Выдаваемая ошибка наводит на мысли что срубилась не валидация - а скорее всего парсинг XML, причем не совсем понятно на чем - файл во вполне легальной Win-1252.
Fatal Error 6003: input conversion failed due to input error, bytes 0x8D 0x41 0x6E 0x64 on line 0
Fatal Error 6003: input conversion failed due to input error, bytes 0x8D 0x41 0x6E 0x64 on line 0
Error 1544: encoder error on line 0
Fatal Error 77: Premature end of data in tag p line 1420 in /www/ocr/A_Night_in_the_Lonesome_October.fb2 on line 1420
Fatal Error 77: Premature end of data in tag section line 1342 in /www/ocr/A_Night_in_the_Lonesome_October.fb2 on line 1420
Fatal Error 77: Premature end of data in tag body line 32 in /www/ocr/A_Night_in_the_Lonesome_October.fb2 on line 1420
Fatal Error 77: Premature end of data in tag FictionBook line 2 in /www/ocr/A_Night_in_the_Lonesome_October.fb2 on line 1420
Найдены ошибки!
Error 1872: The document has no document element. on line 0

Аватар пользователя larin

ngeht написал:
Выдаваемая ошибка наводит на мысли что срубилась не валидация - а скорее всего парсинг XML, причем не совсем понятно на чем - файл во вполне легальной Win-1252.

Win-1252 совершенно нелегальна.
Легальных кодировок и так слишком много - две.
Правильная utf8 и неправильная 1251. Остальные - нелегальны.

Перевод в utf8 не спасает. Ошибка остается. Файл nlo1.fb2 на ftp.

Аватар пользователя larin

Первый же экран - <p><Hi. I'm a watchdog.></p>
В fb2 нет тега <Hi.>

Это вообще-то кавычка типографская, а не угловая скобка. :-) Если смотреть бинарным вьюевром в 1252 - то код у неё не 0x3c, а 0xAB. Если в utf8 - два байта 0xC2, 0xAB. Как-то тег все-таки не так оформляется. ;-)
Посмотрите, pls, внимательно на ошибку - это не ошибка XSD валидатора.

Аватар пользователя larin

ngeht написал:
Посмотрите, pls, внимательно на ошибку - это не ошибка XSD валидатора.

Указанная валидатором строчка (1420):
<p><8d>And the dizziness is not quite dizziness. It feels good."</p>
Что там за ужас вместо открывающей кавычки?

Спасибо, прошло.

Это никакая не «типографская» кавычка, а совершенно левый знак препинания. :)
Английские кавычки первого уровня — это “” (&_#8220; и &_#8221;). Английские «вложенные» кавычки — ‘’ (&_#8216; и &_#8217;). Пример: “quotes ‘inside’ quotes”.

Хочу ещё предложить по ходу дела удалять мусор из названия книги (например, альтернативные названия) и переносить его по возможности в аннотацию. А также обновлять номер версии и добавлять историю изменений типа:

&lt;history>
  &lt;p>1.1 : xml and fb2 validation errors fixes&lt;/p>
&lt;/history>

cancel написал:
Хочу ещё предложить по ходу дела удалять мусор из названия книги (например, альтернативные названия) и переносить его по возможности в аннотацию.

Хочу Вам предложить лучше продумывать свои предложения.

pkn написал:
Хочу Вам предложить лучше продумывать свои предложения.

Мои предложения очень хорошо обдуманы и базируются на пятилетнем опыте работы с электронными библиотеками (MARC и всё такое, ага?). Так вот альтернативные названия, названия серии и прочее в названии книги — это мусор. Дополнительная информация помещается в соответствующие поля (серия в sequence), а если таковой нет — в комментарии.

cancel написал:
Так вот альтернативные названия, названия серии и прочее в названии книги — это мусор.

Почему? (Ну кроме эстетических соображений)

cancel написал:
Так вот альтернативные названия, названия серии и прочее в названии книги — это мусор. Дополнительная информация помещается в соответствующие поля (серия в sequence), а если таковой нет — в комментарии.

Где их становится невозможно найти поиском.

pkn написал:
Где их становится невозможно найти поиском.

прикрутить поиск по аннотации не такая уж архисложная проблема.

cancel написал:

прикрутить поиск по аннотации не такая уж архисложная проблема.

Клауза "Мои предложения очень хорошо обдуманы", как я понимаю, снимается. Вот и ладненько.

Страницы

X