Информационный портал
pocket versionPOCKET  wikiWIKI  FAQFAQ  ПоискПоиск  ПользователиПользователи  ГруппыГруппы  РегистрацияРегистрация  ПрофильПрофиль  Войти и проверить личные сообщенияВойти и проверить личные сообщения  ВходВход

Обсуждение Fb2Fix
На страницу 1, 2, 3 ... 9, 10, 11  След.
 
Найти сообщения без ответов
Начать новую тему   Ответить на тему    Список форумов www.fictionbook.org -> Сделано для FB
Предыдущая тема :: Следующая тема  
Автор Сообщение


Gremlin2
Новенький участник форума

Новенький участник форума

Зарегистрирован: 06.04.2008
Сообщения: 70

СообщениеДобавлено: Вт Апр 08, 2008 21:31    Заголовок сообщения: Обсуждение Fb2Fix Ответить с цитатой

Программа предназначена для пакетной обработки и правки fb2 документов.
Для работы требуется .NET Framework 2.0

Что умеет:
    Обрабатывать как одиночные файлы, так и каталоги.
    Работает с архивами, а так же с вложенными в них архивами (пока только zip)
    Читает невалидные XML-файлы
    Пытается исправлять структуру fb2. Удаляет невалидные символы [&#00 - &#1f]. Заменяет <> на &lt; и &gt; в тексте документа.
    Правит структуру <title-info>, <document-info>, <src-title-info>.
    Если в <program-used> находит "LibRusEc kit", создаёт новый Id, а старый сохраняет в поле <custom-info inфo-type="librusec-id"/>
    Транслитеризирует имена файлов
    Может содержать и содержит ошибки Embarassed

Краткую справку можно получить запустив программу без параметров. Пожелания, предложения и сообщения об ошибках будут выслушаны и возможно исправлены. И последние: Автор не несёт никакой ответственности за возможные проблемы - делайте backup.

Текущую и предыдущие версии можно скачать тут:
http://www.assembla.com/wiki/show/fb2fix
На там же, в скором времени, будет расположена новая версия (следите за новостями), а также будут выложены исходники (C#).

Последняя версия 1.0.8 от 22.05.2008:

Ваш Гремлин II


Последний раз редактировалось: Gremlin2 (Чт Май 22, 2008 21:48), всего редактировалось 4 раз(а)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение


Mar00k
Новенький участник форума

Новенький участник форума

Зарегистрирован: 16.11.2007
Сообщения: 32
Откуда: Минск

СообщениеДобавлено: Ср Апр 09, 2008 11:15    Заголовок сообщения: Ответить с цитатой

Программа полезная, спасибо. Посмотрим как работает.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение


Cd_spb
Зрелый участник форума

Зрелый участник форума

Зарегистрирован: 28.06.2006
Сообщения: 189

СообщениеДобавлено: Ср Апр 09, 2008 11:47    Заголовок сообщения: Re: Обсуждение Fb2Fix Ответить с цитатой

Gremlin2 писал(а):
    Если в <program-used> находит "LibRusEc kit", создаёт новый Id, а старый сохраняет в поле <custom-info inфo-type="librusec-id"/>

Надеюсь обработка проходит "условно", т.е. если
Код:
instring("program-used")="LibRusEc kit"
AND
("ID"="... ... .. ..:..:.. 2013" OR "ID"="... ... .. ..:..:.. 2007")
например "Mon Jun 10 19:57:46 2013" "Tue Jun 12 03:34:15 2007"

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


Stepochka
Зрелый участник форума

Зрелый участник форума

Зарегистрирован: 11.08.2005
Сообщения: 206
Откуда: Москва

СообщениеДобавлено: Ср Апр 09, 2008 15:15    Заголовок сообщения: Ответить с цитатой

Гремлин II огромное спасибо!
Очень актуально для книг с либрус
Вернуться к началу
Посмотреть профиль Отправить личное сообщение


Gremlin2
Новенький участник форума

Новенький участник форума

Зарегистрирован: 06.04.2008
Сообщения: 70

СообщениеДобавлено: Пт Апр 11, 2008 13:28    Заголовок сообщения: Ответить с цитатой

Cd_spb писал(а):
Надеюсь обработка проходит "условно", т.е. если
Код:
Код:
instring("program-used")="LibRusEc kit"
AND
("ID"="... ... .. ..:..:.. 2013" OR "ID"="... ... .. ..:..:.. 2007")
например "Mon Jun 10 19:57:46 2013" "Tue Jun 12 03:34:15 2007"   


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


1. После успешной обработки, в обработанный файл добавляется tag <custom-info info-type="fb2fix-status"/>, при нахождении которого, программа просто игнорирует данный документ. Для повторной обработки таких файлов в новой версии будет добавлен новый параметр "/force"

2. Перед принятием решения о создании нового ID, проверяется наличие <custom-info info-type="librusec-id">, и в случае нахождения новый ID не создаётся.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение


Cd_spb
Зрелый участник форума

Зрелый участник форума

Зарегистрирован: 28.06.2006
Сообщения: 189

СообщениеДобавлено: Пт Апр 11, 2008 15:42    Заголовок сообщения: Ответить с цитатой

Gremlin2, не совсем корректно, так как предусматривает только вариант, когда fb2fix генерила id. А если он был исправлен руками?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение


Gremlin2
Новенький участник форума

Новенький участник форума

Зарегистрирован: 06.04.2008
Сообщения: 70

СообщениеДобавлено: Пт Апр 11, 2008 15:57    Заголовок сообщения: Ответить с цитатой

Cd_spb писал(а):
не совсем корректно, так как предусматривает только вариант, когда fb2fix генерила id. А если он был исправлен руками?

Ok, теперь я понял, что имелось ввиду. Можно добавить проверку на совпадение по шаблону. Только вот по какому?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение


Cd_spb
Зрелый участник форума

Зрелый участник форума

Зарегистрирован: 28.06.2006
Сообщения: 189

СообщениеДобавлено: Пт Апр 11, 2008 16:13    Заголовок сообщения: Ответить с цитатой

Вот по этому:
Код:
("ID"="... ... .. ..:..:.. 2013" OR "ID"="... ... .. ..:..:.. 2007")

Где "." - любой символ. Проверено Wink
У либрусека два типа id - "Tue Jun 12 03:34:15 2007" и "Mon Jun 10 19:57:46 2013" Ключевое - пробелы с годом. Пробелов в id я, кажется, болеше ни у кого не видел.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение


Gremlin2
Новенький участник форума

Новенький участник форума

Зарегистрирован: 06.04.2008
Сообщения: 70

СообщениеДобавлено: Пт Апр 11, 2008 16:52    Заголовок сообщения: Ответить с цитатой

Cd_spb писал(а):
У либрусека два типа id - "Tue Jun 12 03:34:15 2007" и "Mon Jun 10 19:57:46 2013" Ключевое - пробелы с годом. Пробелов в id я, кажется, болеше ни у кого не видел.


т.е. только те книги, которые были добавлены в 2007 и 2013 Shocked году?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение


Cd_spb
Зрелый участник форума

Зрелый участник форума

Зарегистрирован: 28.06.2006
Сообщения: 189

СообщениеДобавлено: Пт Апр 11, 2008 17:42    Заголовок сообщения: Ответить с цитатой

У него, по крайне мере был дурацкий алгоритм - id генерилось из времени с точностью до минуты. Именно это и нужно заменять, так как может у десяти книг быть одинаковый id.
Если не в курсе, то изначально либрусек был заполнен документами автоматически сгенеренными из либ.ру. Отсюда все проблемы.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение


Gremlin2
Новенький участник форума

Новенький участник форума

Зарегистрирован: 06.04.2008
Сообщения: 70

СообщениеДобавлено: Пт Апр 11, 2008 21:47    Заголовок сообщения: Ответить с цитатой

Cd_spb писал(а):
Код:
("ID"="... ... .. ..:..:.. 2013" OR "ID"="... ... .. ..:..:.. 2007")


Код:
^\w{3}\s\w{3}\s\d{1,2}\s\d{2}:\d{2}:\d{2}\s\d{4}$


Подойдёт такой Regex для проверки?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение


Ghost mail
Новенький участник форума

Новенький участник форума

Зарегистрирован: 04.06.2007
Сообщения: 16

СообщениеДобавлено: Сб Апр 12, 2008 9:25    Заголовок сообщения: Ответить с цитатой

Gremlin2 писал(а):
Cd_spb писал(а):
Код:
("ID"="... ... .. ..:..:.. 2013" OR "ID"="... ... .. ..:..:.. 2007")
Код:
^\w{3}\s\w{3}\s\d{1,2}\s\d{2}:\d{2}:\d{2}\s\d{4}$
Подойдёт такой Regex для проверки?
Зачем мудрствовать лукаво, если все можно (проверка на наличие "неправильных" символов) : [: ]+
ну или от обратного, то есть если не выполняется условие (с включенным "без учета регистра") : ([0-9a-f-]*?)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение


Gremlin2
Новенький участник форума

Новенький участник форума

Зарегистрирован: 06.04.2008
Сообщения: 70

СообщениеДобавлено: Сб Апр 12, 2008 14:09    Заголовок сообщения: Ответить с цитатой

Нашёл другую проблему, часто встречаются в разметке документа тэги:
Код:
<h2 xmlns="">Taken: , 1</h2>


Что делать и кто виноват? Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение


Cd_spb
Зрелый участник форума

Зрелый участник форума

Зарегистрирован: 28.06.2006
Сообщения: 189

СообщениеДобавлено: Сб Апр 12, 2008 22:11    Заголовок сообщения: Ответить с цитатой

Ghost mail писал(а):
Gremlin2 писал(а):
Cd_spb писал(а):
Код:
("ID"="... ... .. ..:..:.. 2013" OR "ID"="... ... .. ..:..:.. 2007")
Код:
^\w{3}\s\w{3}\s\d{1,2}\s\d{2}:\d{2}:\d{2}\s\d{4}$
Подойдёт такой Regex для проверки?
Зачем мудрствовать лукаво, если все можно (проверка на наличие "неправильных" символов) : [: ]+
ну или от обратного, то есть если не выполняется условие (с включенным "без учета регистра") : ([0-9a-f-]*?)

Если мне не изменяет память - стандарт fb2 не регламентирует диапазон символов, сл-но Ваш шаблон не подходит. Я точно помню id LX-43...

Gremlin2, я не понимаю Вашей формы записи regexpa, но Вы же проверете "на кошках" Wink
Вернуться к началу
Посмотреть профиль Отправить личное сообщение


AlexArh
Новенький участник форума

Новенький участник форума

Зарегистрирован: 24.11.2006
Сообщения: 21

СообщениеДобавлено: Сб Апр 12, 2008 22:59    Заголовок сообщения: Ответить с цитатой

А можно доделать прогу так, чтобы она генерировала ID если его нет воо бще (тег <id> пропущен) или ID пустой?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов www.fictionbook.org -> Сделано для FB Часовой пояс: GMT + 3
На страницу 1, 2, 3 ... 9, 10, 11  След.
Страница 1 из 11

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


Powered by phpBB © 2001, 2005 phpBB Group