fb2 и FBReader. Кто виноват и что делать?

Если в книге (формат fb2) попадается открывающая угловая скобка ("<"), FBReader считает, что это начало тега и, как следствие, не выводит весь текст начиная с этой строки и до конца (на латинском тексте не проверял).
Вроде как, с точки зрения XML, каждый тег должен быть закрыт, но и FBReader мог бы и игнорировать некорректные теги.
Лечится это просто - достаточно поменять "<" на "&lt;" (неплохо бы ещё поменять и закрывающую ">" на "&gt;").
Из 1900 скачанных мною книг, такая проблема наблюдается в 78-ми. Могу дать список этих книг или сразу вдуть исправленные файлы (правил скриптом оптом, не уверен, что корректно).

FBReader - дурацкая читалка.

Невалидные файлы - это чаще всего ошибки либрусековского конвертора, которым были сделаны fb2 во времена основания Либрусека; скобки - это обычно неправильно обработанные комментарии в теле текста.
Невалидных файлов хватает - вот список: http://lib.rus.ec/stat/invalid

Если не уверены, что корректно, то может и не надо?

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

MaxKam написал:
FBReader - дурацкая читалка.

Я не сторонник FBReader, но он здесь ни при чём. На открытые угловые скобки и другие читалки ругаются, хотя и по разному.
HaaliReader вообще не открывает книгу, СoolReader 2 показывает всё только до этого символа, конец книги теряется, а вот CoolReader 3 и AlReader не отображают всего лишь остаток абзаца, а дальше всё показывается нормально.
И FB Editor 2.0 такие книги не открывает.

Цитата:
Я не сторонник FBReader, но он здесь ни при чём.

Так я и не говорил, что дело в читалке - я просто считаю FBReader бестолковой читалкой (уточню - дурацкой и бестолковой для компьютера, мобильной мелочью я не пользуюсь).

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

>FBReader - дурацкая читалка.

Linux альтернативы?

>скобки - это обычно неправильно обработанные комментарии в теле текста.

Вернее, что-то типа сносок, но не столь это важно.

>Невалидных файлов хватает - вот список: http://lib.rus.ec/stat/invalid

Угу. У меня из этого списка вся Кристи, Чейз и Макбейн.

>Если не уверены, что корректно, то может и не надо?

Точнее сказать, уверен что некорректно :) (не заменён ">" на "&gt;"), но по крайней мере всё читается. Вот и спрашиваю: "Что делать?"

qwe- написал:
>FBReader - дурацкая читалка.
Linux альтернативы?

Меня это тоже интересует, я альтернативы не нашел.

kumpelalte написал:
qwe- написал:
>FBReader - дурацкая читалка.
Linux альтернативы?

Меня это тоже интересует, я альтернативы не нашел.

Я под Линухом пользую PyBookReader.
http://reeed.ru/prog_ornament_lin.php

Под Дебианом вроде бы работает Coolreader3. Под Федорой мне его собрать толком не удалось.

>Под Федорой мне его собрать толком не удалось.

Coolreader3 почти без проблем собрался (под Fedora). Да, описанной проблемы у него нет, но функционал - никакой.

Инструкции по сборке:
1. Распаковать исходные тексты и зайти в каталог с исходниками.
2. От root`а поставить пакет wxGTK-devel, если не стоит (yum -y install wxGTK-devel)
3. Запустить сценарий ./run_make_linux.sh
4. Зайти в каталог optimized и выполнить make install
5. Создать символьную ссылку /usr/share/fonts/truetype/msttcorefonts на каталог с TTF шрифтами от Microsoft.

Ну, функционал меня интересовал только с точки зрения единообразия с lbook'ом. А затык был в том, что не увиделся порт wxGTK, по-моему. Надо будет еще раз попробовать :)

>Я под Линухом пользую PyBookReader.

Там кроме автоскролинга перед FBReader преимуществ я не вижу.
Да и падает он на таких файлах. Кроме того давно не развивается.

AlReader - отличная читалка, прекрасно идёт под wine, но там организации книг нет.

Кхм... по стандарту XML знаки "<" или ">" ( и несколько других) в тексте встречаться не должны. точка. именно для их замены и были изобретены "& g t ;" , "& l t ;" и подобное.
FB2 же подвид XML.
Так что делайте валидные книги в соответствии с стандартом и не будет у вас проблем.

>Кхм... по стандарту XML ............

Ну так, о чём и речь. :) Поменял "<" на "&lt;" и как бы начало читаться. Вопрос не о читалках, а о том, нужны ли кому-либо 78 читаемых файлов и куда это всё кинуть.
Не то что бы у меня какое-то чувство вины, но как бы люди руки приложили, файло кинули, и в целом я минут десять потратил на замену херьки "<" оптом...

Ну так не понял в чем суть жалобы ? - не валидные файлы надо править, если вы поправили - огромное вам спасибо. Конечно лучше чтоб они изначально заливались валидными но все же не валидные лучше чем ничего так что вроде все в порядке :)

>Ну так не понял в чем суть жалобы ?

Да небыло жалоб никаких. Суть в том, что есть читаемые файлы и лить их или не лить, а если лить, то куда?

qwe- написал:
Суть в том, что есть читаемые файлы и лить их или не лить, а если лить, то куда?

Ну, вообще-то, раз Вы сами говорите, что "Точнее сказать, уверен что некорректно", то, может, ну его? ;)
А ещё лучше, вышлите на библиотечное мыло, я посмотрю, ДОисправляю и залью.

Отлично. Мыло какое? По большому счёту, там всего лишь нужно найти "&lt;" и поменять следующую за ним ">" на "&gt;". (У меня просто времени нет совсем. Извините.)

bibliotekar.librusec (][) gmail.com
в теме напишите "для Голмы". я буду знать.

Отправил. Извиняюсь за задержку.

Посмотрела.
Там угловыми скобками выделены сноски. Поэтому их надо не заменять, а оформить правильным образом. ;)
Сделаю.

>Там угловыми скобками выделены сноски.

Угу, об этом я выше говорил. Подозреваю, что большинство книг из списка - http://lib.rus.ec/stat/invalid этим и страдают.

>Поэтому их надо не заменять, а оформить правильным образом.

Я тут фильтр строчек в тридцать нарисовал, который это исправляет. В общем, могу им по файлам оптом пройтись. Не знаю только как их оптом из библиотеки выдуть. :) Ну или сам фильтр скинуть если нужен (он на awk).

Стыдно признаться, но я в этих всех фильтрах ни бельмеса не понимаю... :(
Посему ничего конкретного ответить не могу.

Да чего тут стыдного, Вам это в общем-то и не нужно.
А способа все книги с ошибками оптом скачать случайно не знаете?

Нет, не знаю. :(

Способ выкачать оптом нашёл. :) Теперь вопрос. Есть прекрасная программка исправляющая некоторые проблемы fb2 - fb2fix (http://www.assembla.com/wiki/show/fb2fix). Если я выкачаю оптом все битые файлы, обработаю корявые сноски, затем пропущу через сиё чудо и оптом волью обратно через http://lib.rus.ec/upload/ftp/fb2 это нормально?

Не думаю, что это хорошая идея. :(
1. Такая акция уже однажды происходила.
2. fb2fix делает файлы номинально валидными. Сноски при этом не расставляются, форматирование (например, разбиение на главы) не производится. Таким образом, файлы из списка невалидных исчезнут, но лучше от этого не станут.

Я - против. Сорри. :)

Ок. А если просто сноски поправлю?

Что Вы имеете в виду под "поправлю"?

>Что Вы имеете в виду под "поправлю"?

Да в общем-то именно то, с чего всё и начиналось. :)

Цитата:

>Если в книге (формат fb2) попадается открывающая угловая скобка ("<")... не выводит весь текст начиная с этой строки и до конца.

>Там угловыми скобками выделены сноски. Поэтому их надо не заменять, а оформить правильным образом. ;)

>могу по файлам оптом пройтись.

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

Не знаю, честно говоря. Пока такие файлы можно выловить - то ли пожалуется кто, то ли в процессе разгребания списка "инвалидов".
Если Вы пройдётесь по ним своим скриптом, то они будут считаться валидными, но форматирования им это не добавит.
Для меня это - сомнительная выгода.

Не совсем так. Изложу технологию.
1. Выгребаем все невалидные файлы. Приметно 2200 штук.
2. Отбрасываем все файлы в которых нет текста вида "<Текст на русском". Остаётся примерно 900 штук.
3. В каждом из них смотрим на первое вхождение такого текста и текста перед ним. Если визуально это похоже на сноску, то считаем, что и далее по тексту это сноски. Таких файлов 256 штук.
4. Исправляем в них сноски и посылаем Вам.
5. Вы смотрите опытным глазом и выкладываете то, что на Ваш взгляд нормально.

В некоторых из тех файлов, что Вы прислали, только часть угловых скобок была замещена (первая?). Так что мне пришлось менять остальные.
Но коль Вы можете выделить такие "битые" файлы, было бы жаль упускать такой случай. ;)
Учитывая, однако, что каждый файл мне придётся всё равно проверить и скриптом расставить сноски, не вижу необходимости исправлять в них сноски до этого.

Поэтому встречное предложение. :)
Вы делаете первые три пункта из Вашего списка и высылаете мне полученные после фильтра файлы. Я их постепенно форматирую и выкладываю.
На файлах Агаты Кристи наработала уже некоторый алгоритм, который позволяет это делать довольно быстро.
Что скажете?

Если согласны, то мне достаточно одних файлов, списки ошибок не нужны, я их все "вижу". :)

>... только часть угловых скобок была замещена (первая?)

Ой, как давно это было. :)

>Вы делаете первые три пункта из Вашего списка и высылаете мне полученные после фильтра файлы.

Не вопрос. Но, уточните, в каком виде Вам будет удобнее проверять. Есть четыре варианта:
1. Ничего не менять.
2. Заменять только левую скобку.
3. Заменять обе скобки.
4. Сразу делать сноску.

>На файлах Агаты Кристи

Кстати, 256 штук - это вместе с Кристи. :)

Заменять обе скобки на фигурные. Можете? :)

На что угодно (любую последовательность символов). :)
Заменять обе скобки?

В принципе можно делать сноску, но и оставлять текст. Если ссылка правильная, то убивать текст, если нет, то сноску и ссылку.

qwe- написал:

В принципе можно делать сноску, но и оставлять текст. Если ссылка правильная, то убивать текст, если нет, то сноску и ссылку.

Нет, ничего такого делать не надо. ;)

Замените, пожалуйста, обе угловые скобки на соответствующие фигурные. Этого будет достаточно.

P.S. Агата Кристи сделана. :)

Сделано (один нюанс - если после скобки латинская буква, то увы...). Получилось 29 мегабайт. Вам всё сразу или частями?

>Агата Кристи сделана. :)

Круто. :)

Можно сразу. Выложите куда-нибудь, ладно?

С выложить проблема. Отправил мылом.

Приложения к письму нет. :( Боюсь, что дело в объёме приложения.
Если другого способа нет, нужно разбить на несколько архивов. Скажем, по 5М. Такое приложение должно пройти.

Конечно нет. Это я как всегда файл не вложил. :)
Правда и гугломыл отказался такой большой принимать. Пришлось сжать 7zip`ом. Надеюсь, открыть сможете. Если что, вот ссылка на архиватор - http://www.7-zip.org/download.html

qwe- написал:
Надеюсь, открыть сможете.

Обижаете. В-)

Всё получила. Займусь. :)

>Обижаете. В-)

Это я на всякий случай. :)

Спасибо.

X