Вы здесьПрограмма для извлечения и замены иллюстраций в .fb2-книгах
Опубликовано чт, 14/10/2010 - 03:45 пользователем Рыжий Тигра
(зеркала: http://www.flibusta.net/node/83100 и http://www.the-ebook.org/forum/viewtopic.php?t=15947) Дарю обществу: fb2bin - извлекалка/заменялка двоичных вложений (картинок, MIDI-файлов и прочего) в .fb2-файлах. Возможности:
В ближайших планах - обработка вложений не сплошная, а списком; сличение вложений с файлами; обработка вложений .bat-файлами или иными скриптами. Цитата: fb2bin - список/извлечение замена двоичных вложений в FB2-файлах, (версия, дата) Пример применения - для замены прозрачных картинок в FB2-книге на обычные: Цитата: @echo off Ну и, само собой, исходники тоже лежат - вдруг кому-то пригодится. Кто найдёт ошибку или предложит доработку - делитесь! :-) 18/10/2010: выложена версия 1.1. Исправлена пара мелких, но неприятных ошибок. Подправлен интерфейс, улучшен вид выходного FB2-документа (аккуратнее сделаны отступы при изменяемых полях), заменён движок на более компактный и шустрый - программа "похудела" в тридцать раз, с 600 до 20 килобайт - не пугайтесь, это не вирус! :-) Как обычно - с исходниками. 19/10/2010: версия 1.2. Добавлена поддержка неюникодных кодировок (в т.ч. windows-1251) - оказывается, XML-движок их не поддерживал. Теперь поддерживает - я его переделал. Правда, без перекодировки - изменённый файл сохраняется в той же кодировке, что и исходный. Извиняюсь за невнимательность, скачавших предыдущие версии прошу скачать свежую. 28/10/2010: версии 1.3 (к вечеру уже устарела :-( ) и 1.4. Исправлена мелкая ошибка с порядком разбора тэгов; добавлена опция "не проверять валидность description'а FB2-документа" при просмотре списка вложений и их выгрузке; добавлена возможность выборочной обработки вложений с целью интеграции с Far Manager'ом; добавлен режим полного подавления вывода сообщений. 02/11/2010 - версия 1.5
|
Вход на сайтПоиск по блогам и форумамUser menuПоследние комментарии
kopak RE:О группе Дятлова. О той самой, того самого... 1 день
aldan RE:Подайте бедному копеечку на книжку с литреса... 1 день Isais RE:Катя Водянова - Дом и два жениха в придачу 1 день Aleks_Sim RE:Прошу переформатировать, распознать, etc... 2 дня kopak RE:Таинственная личность админа Флибусты 6 дней Саша из Киева RE:Кто сможет раздобыть и оцифровать нужные мне книги? 1 неделя Isais RE:Дмитрий Анатольевич Горчев - ЖЖ Дмитрия Горчева (2009–2010) 1 неделя Саша из Киева RE:Детям о Ленине (Издание 1965 года) 2 недели Саша из Киева RE:Приключения Мишки-Ушастика (Перевод Марата Брухнова) 2 недели babajga RE:Белая княжна 3 недели Isais RE:Файл достаточно хорош. Нет смысла в его улучшении. Ага,... 3 недели mazay RE:Sleepy Xoma - Bagⲣѱnoⲣojdennaѱ 4 недели zlyaka RE:С Новым годом! 4 недели Isais RE:Детство, опаленное войной (Вторая мировая 1939-1945 и ВОВ) 1 месяц SparkySpirit RE:Жорж Санд - переводы 19 века 1 месяц Саша из Киева RE:Наш дом - СССР 1 месяц babajga RE:Чернушка. Повести 1 месяц Саша из Киева RE:Сказки далёких островов 1 месяц Впечатления о книгах
Chernovol про Полтавченко: В прицеле «Азов» (Современная проза, О войне, Роман)
30 01 При чем тут "гражданская война"? Разве что граждане рф пришли убивать граждан Украины. Оценка: нечитаемо
Aleks_Sim про Полтавченко: В прицеле «Азов» (Современная проза, О войне, Роман)
30 01 Лысенко Владимир Андреевич" - а что "Азов" это современный украинский мир ? Оценка: отлично!
Лысенко Владимир Андреевич про Полтавченко: В прицеле «Азов» (Современная проза, О войне, Роман)
30 01 Нечитаемо, как хорошо убивать всех несогласных с русским миром, все наши правильные, а кто думает по другому должны быть убиты, осталось только Аляску захватить. Оценка: нечитаемо
Barbud про Фонд: Баба Люба. Вернуть СССР 4 (СИ) (Попаданцы, Самиздат, сетевая литература, Фантастика)
29 01 Дерьмище редкостной зловонности. Главное, что автор писать умеет, пишет образно, без "картона", коим грешат очень многие кропатели нетленки. Но боже мой, какую же херню он пишет! Первые две части осилил, остальные пролистнул по диагонали, ибо чушь. Оценка: нечитаемо
decim про Р. Дж. Баркер
29 01 Хорошо, а местами и отлично. Было бы совсем отлично, если бы автор не растянул историю на три тома, но это обычное дело.
mysevra про Баркер: Алые песнопения (Ужасы, Триллер, Детективы: прочее)
29 01 Как часть истории «Восставшего» - мило и познавательно. Но зачем такое изобилие обсценной лексики уличного разлива? Для реализьму, так сказать? Так у меня дл вас плохие новости, мои маленькие друзья, это лет 30 назад такое ………
lukyanelena про Гремучий ручей
29 01 Хотите серию про вампиров? Пожалуйста! Только забудьте про романтичные истории с загадочными красавцами и красавицами. Будет больно, будет страшно, будет неприятно, но я скорее поверю в таких тварей, чем в слащавых вампирчиков.
Лысенко Владимир Андреевич про Земляной: Игровой практикум [СИ] (Боевая фантастика, Фэнтези, ЛитРПГ)
29 01 Книга понравилась, читается легко, жду продолжения. Оценка: отлично!
Nicout про Сушков: "Ленинградское дело": генеральная чистка колыбели революции (Документальная литература)
29 01 Говорите, во время блокады Ленинграда руководство города голодало, как и остальные жители, а все рассказы про пирожные, колбасу и икру для коммуняк - вранье и клевета? Ну так прочтите что из себя представляли питерские деятели, ……… Оценка: отлично!
Синявский про Николай Егорович Дронников
28 01 На 95-м году жизни скончался Николай Дронников - советский и французский художник, график, скульптор, прозаик и издатель авторских книг, "летописец русской эмиграции".
ve51 про Чейз: Плоть орхидеи [The Flesh of the Orchid ru] (Крутой детектив)
27 01 Книга не входит в цикл "Дэйв Фэннер
Skyns71 про Гузман: Тропой священного козерога, или В поисках абсолютного центра (Современная проза, Биографии и Мемуары)
27 01 Господи... Жизнеописание наркомана. |
Комментарии
Отв: Программа для извлечения и замены иллюстраций в ...
Вот почему тебя давно не видно было!)).
скачал, посмотрю. Оболочку делать будешь? Если хочешь, чтобы программа использовалась обществом - нужно, имхо
Отв: Программа для извлечения и замены иллюстраций в ...
А вот где бы GUI'ёвая оболочка не помешала - это чтобы можно было каждую картинку в отдельности заменять и каждый раз смотреть - что получилось; но тут как раз проще будет не на сях писать, а доваять скриптец к тому же FBE - а я в ём не силён... :-(
Отв: Программа для извлечения и замены иллюстраций в ...
Насчёт такого скрипта уже мысль такая была, так, что всё возможно ))
Отв: Программа для извлечения и замены иллюстраций в ...
Заманался воевать с несколькими глюками из libxml2, переделываю на MiniXML - но у него тоже свои мухи. :-(
Если кто ещё знает какие маленькие и послушные сишные опен-сорсные библиотеки для возни с XML - делитесь!
Upd: можно не искать - Mini-XML (http://www.minixml.org/) годится; с мухами справился и подпатчил обработку entities'ов на свой вкус - за вечер; полдесятка использованных функций добавили к объёму готового exe'шника всего пару килобайт; короче - рекомендую! :-)
Отв: Программа для извлечения и замены иллюстраций в ...
Выложил свежую версию - 1.1.
Исправлена пара мелких, но неприятных ошибок. Подправлен интерфейс, улучшен вид выходного FB2-документа (аккуратнее сделаны отступы при изменяемых полях), заменён движок на более компактный и шустрый - программа "похудела" в тридцать раз, с 600 до 20 килобайт - не пугайтесь, это не вирус! :-)
Отв: Программа для извлечения и замены иллюстраций в ...
Версия 1.2.
Отв: Программа для извлечения и замены иллюстраций в ...
полезная утилита, спасибо.
а нельзя ли добавить опциональную возможность извлечения отдельного заданного файла?
это позволило бы более тесно интегрировать утилиту с Far manager
Отв: Программа для извлечения и замены иллюстраций в ...
Отв: Программа для извлечения и замены иллюстраций в ...
Отв: Программа для извлечения и замены иллюстраций в ...
Отв: Программа для извлечения и замены иллюстраций в ...
предназначено для Far2
сохранить в Plugins\Multiarc\Formats\custom_user.ini (добавить в существующий или создать новый)
при замене вложения создается новый файл, имя которого образуется добавлением постфикса ".fb2"
если желательно, чтобы замена вложения происходила без создания нового файла, надо убрать этот постфикс из строки Add=
Отв: Программа для извлечения и замены иллюстраций в ...
Upd: Нашёл: именно DebugBreak() и подосрал - fb2bin на нём падал, почему-то не перехватываясь отладчиком. :-(
Из нехорошестей - в stdout после списка попадает строка диагностики. Ща исправлю.
Отв: Программа для извлечения и замены иллюстраций в ...
Аддон к MultiArc для TotalCommander-a:
Отв: Программа для извлечения и замены иллюстраций в ...
Отв: Программа для извлечения и замены иллюстраций в ...
Подновил аддон к TotalCommander-у:
Это можно...
Инструкция:
1. Добавляем вышеприведённую секцию в Multiarc.ini, исправив в строке Archiver= путь к fb2bin.exe на свой.
2. В Тотале в окне Настройка на вкладке Архиваторы жмём кнопку Настройка архиваторных плагинов. В открывшемся окне в поле Файлы с расширением: вбиваем расширение fb2, а затем в списке плагинов выбираем multiarc.wcx. После этого, если не хотим чтобы у fb2-файлов были дефолтные архивные иконки и хотим входить в FB2-файл по Ctrl+PgDn, а не по даббл-клику, в поле над списком плагинов (слева от кнопки Обзор) число перед путём к multiarc.wcx меняем на 287.
Отв: Программа для извлечения и замены иллюстраций в ...
Под линухом - несобирается.
Почистил, что мог, конечно... Задефайнил ещё кучку (обратный слеш, например).
Но хочет, видимо, struct _stat - что бы это могло быть?
Нельзя ли к POSIX привести?
libmxml, вроде, подхватился... не патченный, понятно - из репы.
патчить либу - плохо :/
Оно ж, вроде, консольное - можно вполне в POSIX уложиться.
Ну, в ifdef/endif можно экстрасы добавить для учёта, скажем, файловой системы "с буквами дисков"...
Отв: Программа для извлечения и замены иллюстраций в ...
Отв: Программа для извлечения и замены иллюстраций в ...
Пилять! №;%:?*( коннективити любимого либрусека об коленку :-E
Хм-хм... там, похоже, не доводить, а капитально так редезайнить надо.
Во-первых, какая версия сорцов нынче считается кошерной? А то я ухватил, "что с краю лежало"...
Во-вторых, нехудо было бы какой-нибудь Makefile сгенерить (ЕМНИМС, виндовые IDE это позволяли. лет 10 тому как), который уже можно подправить.
В-третьих, опенсурс там или нет, а патченая либа - криво. потому как сорец, считай, придётся дистрибутить вместе с определённой версией либы, к которой, собссно, сделан патч. что есть запредельная кривизна с т.з. мейнтенанса. Лучше д
елать враппер поверх штатной либы.
В-четвёртых, подпил кода под специфику кодировки - тоже идея не фонтан. Есть iconv - вполне себе рабочая феня, все кодировки знает. Я бы вообще всё форсил в юникод - неужто где-то его ещё не переваривают?..
На счёт POSIX - есть рулёзная книжка :)
(книжку скачал, переложил на onlinedisk (пароль - мой ник, от греха...), но на мой вкус какчество - то ещё)
М. И. Беляков, Ю. И. Рабовер, А. Л. Фридман. Мобильная операционная система
Я тут ещё неделю на больничном - могу помочь :)
Отв: Программа для извлечения и замены иллюстраций в ...
Отв: Программа для извлечения и замены иллюстраций в ...
Отв: Программа для извлечения и замены иллюстраций в ...
Да! Ещё один момент - в POSIX-оболочках (типа линухового bash) глоббинг всяких метасимволов командной строки (типа *) выполняется оболочкой, а не программой!
Т.е. для того, чтобы обработать вызов вида
myProg all*such*files.?????
, в ДОСе/форточках надо самому выполнить поиск нужных файлов, а в POSIX - просто пройтись по argv.Такие фени надо оформлять в платформенно-специфичные секции в ifdef/endif
Отв: Программа для извлечения и замены иллюстраций в ...
Отв: Программа для извлечения и замены иллюстраций в ...
Выложил версию 1.4 (см. историю изменений в стартовом посте), привёл описание в соответствие с реальностью. :)
Отв: Программа для извлечения и замены иллюстраций в ...
Тигра, а поясни мне темному в двух словах, пожалуйста, какая основная идея этой программы.
Ведь то, что перечислено в самом начале, т.е. проверка, извлечение и замена делается в FB Editor'e и вполне удовлетворительно, вроде как. Или я чего-то не понял?
Отв: Программа для извлечения и замены иллюстраций в ...
У меня ручная замена полусотни картинок занимает около часа. А если нужно посмотреть, что получилось, по результатам внести изменения в картинки и снова заменять и пробовать, то это уже даже не напрягает, а конкретно раздражает.
Другое дело - автоматическая массовая замена. Но такого скрипта я не нашёл - есть только выгрузка оптом.
И наконец, если нужно забабахать обработку картинок "не прикладая рук" (к примеру, для конвертирования FB2 в что-нибудь ещё или под какой-то специфический девайс, да ещё и на удалённом сервисе) - то FBE2 вообще не годится никаким боком...
Отв: Программа для извлечения и замены иллюстраций в ...
Или у нас разные FBE или одно из двух.
Для массовой обработки есть скрипты "Сохранить объекты" и "Удалить все вложения". При этом сами картинки из fb2 удаляются, а ссылки-то остаются.
Далее обрабатываем картинки любыми средствами, хоть прикладая руки, хоть нет.
А дальше через обычную "скрепочку" (прикрепить бинарный файл) за один раз выбираем ВСЕ картинки и вкладываем назад. Всё. Остается только заново указать обложку. Ну и вызвать скрипт "Обновление картинок", если нужно.
Таким образом у меня выгрузка, пакетная обработка и обратная загрузка сотни и больше картинок занимает несколько минут.
Ничего особенно трахоемного не нахожу.
Отв: Программа для извлечения и замены иллюстраций в ...
А если над набором из пары десятков книг?
А над "пачкой" либрусечного "обновления"?
Отв: Программа для извлечения и замены иллюстраций в ...
А, дошло. Сразу для кучи книг. Ну если только для этого.
Хотя мне трудно представить, что можно захотеть сделать одним чохом с картинками со всей "пачки" либрусечного "обновления".
Отв: Программа для извлечения и замены иллюстраций в ...
Да хотя бы отоптимайзить PNGшки!
Через тот же optipng -full
Отв: Программа для извлечения и замены иллюстраций в ...
Отв: Программа для извлечения и замены иллюстраций в ...
Мне тоже кажется, что ни к чему.
Ну допустим даже вытащишь картинки из кучи файлов. А обратно запихивать куда будешь?!! Всё ж перезабудешь!
Или по принципу «кидай все картинки во все файлы сразу?»
IMHO,
эта утилита больше для
пингвинов-линуксоидов, которые не хотят юзать FBE, но при этом хотят работать с картинками в FB2.(файл FB2 это обычный текстовый файл с закодированными картинками и его можно править в любом текстовом редакторе, затруднение было только в картинках)
Отв: Программа для извлечения и замены иллюстраций в ...
Короче: не нужно - не юзай, юзаешь - не обзывай ненужным. :-)
Отв: Программа для извлечения и замены иллюстраций в ...
Нууу... тоже способ. Если б ты про "скрепочку" сказал три недели назад, а "сохранить вложения" и "удалить вложения" позволяли бы выбирать, что именно сохранить и куда, а FBE2 работал бы под любым браузером и под любой ОС и принимал бы командную строку - может, я б и не делал fb2bin (хотя и не факт: всё ж приятнее запускать 20-килобайтную прогу, чем ждать десяток минут. пока FBE2 откроет восьмимеговый файл с тремя сотнями картинок). А сейчас уже поздно - люди пользуются... :-)
Отв: Программа для извлечения и замены иллюстраций в ...
я там выше накидал комментов и в личку нагадил :)
Отв: Программа для извлечения и замены иллюстраций в ...
Дык у каждой картинки есть кнопочки "сохранить", "просмотреть" и "удалить".
Для выборочного сохранения и удаления самое то. И что именно и куда. А после обработки опять же "скрепочка".
Так я же не против.
Просто для себя уяснил, что утилита хороша для обработки нескольких книг за раз, а для работы с одной можно и обойтись и FBE.
Отв: Программа для извлечения и замены иллюстраций в ...
поддержу Тигру - неинтерактивная тулзовина для пакетного преобразования есть весчь!
особенно, если оно ещё и кроссплатформенное (а это для "консольного" приложения - не особо сложно).
можно, например, веб-сервис сделать на основе такой программы - закачал книжку, скачал конвертированную...
опять же, к такой тулзе приделать ГУЙ по вкусу - можно (а обратное - неверно).
Отв: Программа для извлечения и замены иллюстраций в ...
Вот, что у меня получилось на ту же тему...
На Питоне, ясен пень. Питон 2.7 - в штатной конфигурации, без добавок.
Умеет показывать, вынимать и заменять бинарные объекты. Для замены - извлеките (--extract) те, что есть, замените файлы "ин плейс" (без переименования) и выполните команду с ключиком --replace. Извлекаются (и заменяются) объекты с теми именами, что прописаны в файле ФБ2.
Код - здесь.
Отв: Программа для извлечения и замены иллюстраций в ...
Upd: ещё совершенно неясно, как обрабатываются ошибки при чтении и записи файлов. Ну не силён я в питоне... :-(
Отв: Программа для извлечения и замены иллюстраций в ...
Это-ж - макет! :)
Я в спецификацию ФБ2 даже не смотрел...
Хых - получите!
Отв: Программа для извлечения и замены иллюстраций в ...
Ну, тут - почти никак ничего не обрабатывается :)
А так: try-except блоки:
<strong>try:</strong>
fp = open('file.xxx')
data = fp.read()
fp.close()
<strong>except</strong> IOError,e:
<strong>print</strong> 'Error:',e
Отв: Программа для извлечения и замены иллюстраций в ...
Ну, тут - почти никак ничего не обрабатывается :)
А так: try-except блоки:
.
.
.
.
.
.
<strong>try:</strong>
fp = open('file.xxx')
data = fp.read()
fp.close()
<strong>except</strong> IOError,e:
<strong>print</strong> 'Error:',e
Отв: Программа для извлечения и замены иллюстраций в ...
Рыжий Тигра, спасибо за прожку :) Если не трудно, добавьте возможность отключения обновления истории изменения в fb2-файле (description/document-info/history).
Отв: Программа для извлечения и замены иллюстраций в ...
PS. Хинт: исходники доступны. :-)
Отв: Программа для извлечения и замены иллюстраций в ...
02/11/2010 - версия 1.5
Отв: Программа для извлечения и замены иллюстраций в ...
Эк вы тут семинар по программированию устроили. Думаете самое место?
Отв: Программа для извлечения и замены иллюстраций в ...
Отв: Программа для извлечения и замены иллюстраций в ...
Я по наивности думал, что записи в публичном блоге должны быть интересны не только двоим-троим. Программа-то ваша не только для программистов. Но кажется ошибался.
Отв: Программа для извлечения и замены иллюстраций в ...
PS.
Отв: Программа для извлечения и замены иллюстраций в ...
А я думал, что для всех работающих с fb2. А ведь пользователи программы с исходниками разбираться и не обязаны вроде бы.
А ничего интересного не придумал.
Отв: Программа для извлечения и замены иллюстраций в ...
Страницы