Вы здесьПрограмма для извлечения и замены иллюстраций в .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Последние комментарии
Леди Стервa RE:Подайте бедному копеечку на книжку с литреса... 1 день
medved RE:Предупреждение: "зеркала" флибусты 3 дня Isais RE:Соседи 5 дней babajga RE:Как сова отправилась в отпуск 1 неделя Саша из Киева RE:Горящие паруса 2 недели Саша из Киева RE:Подвиг героев - судьба страны. МНР: люди и годы 3 недели commodore RE:Письма 1 месяц Саша из Киева RE:Три минуты истории 1 месяц nehug@cheaphub.net RE:Как бы с этим побороться и побороть? 1 месяц Саша из Киева RE:Книги на латышском языке 1 месяц stevecepera RE:Список современных французских писателей? 1 месяц etorus2008 RE:Отв: Помогите найти книгу по описанию 2 месяца lemma7 RE:Чёрный нимб и другие истории, исполненные неизъяснимого ужаса 2 месяца Wedmak RE:Помогите найти!.. #2 2 месяца sem14 RE:Координация сканирования и вычитки 2 месяца babajga RE:Кто сможет раздобыть и оцифровать нужные мне книги? 2 месяца Isais RE:Мои открытия 2 месяца kopak RE:О группе Дятлова. О той самой, того самого... 2 месяца Впечатления о книгах
Лысенко Владимир Андреевич про Усманов: Шутки богов. Поспешное решение (Боевая фантастика, Героическая фантастика)
03 07 Еле прочитал десяток страниц, дальше не смог. Оценка: неплохо
dimaeg про Проект «Ковчег»
03 07 Люблю читать произведения автора, но это серия самая худшее издание автора.
dimaeg про Регрессор в СССР
03 07 Раздражает главный герой, чуть что сразу плакать. ГГ мой ровесник, ну не видел я таких плакс в то время и восторженные дебилизм главного героя раздражает. Пытаюсь уже 4 или 5 раз начать читать 2 том и бросаю.
Wik@Tor про Порошин: Гость из будущего. Том 1 [СИ] (Юмор: прочее, Самиздат, сетевая литература)
02 07 Неинтересная сказка про вора из будущего Оценка: плохо
скунс про Карелин: Лекарь Империи (Городское фэнтези, Попаданцы, Самиздат, сетевая литература)
01 07 Читать интересно,понравилось Оценка: хорошо
Isais про Журнал «Мир Фантастики»: Мир фантастики, 2023 № 07 (Публицистика, Газеты и журналы, Фантастика: прочее)
30 06 Неожиданные две странички комикса в конце номера... очень повеселили!
дядя_Андрей про Хоттабыч
29 06 Прочитал всю, пока имеющуюся, серию. Впечатление двоякое. Примерно до "Аватара" всё шло более-менее. Да и "Аватар" вначале заинтересовал. А вот, когда началось голимое фэнтези, я уже заскучал. Да и ГГ какой-то странный. С ………
marin029 про Шаман: Эвакуатор 3 и 4 [СИ] (Фэнтези, Постапокалипсис, Попаданцы, Самиздат, сетевая литература)
29 06 Похоже напутано с номерами томов 2, 3 и 4
voronin345 про Ежов: Перелетная птица (Социальная фантастика, Попаданцы, Самиздат, сетевая литература)
28 06 сочинение школьника пятого класса....как я нагну всех и мня не поставят в угол. Оценка: нечитаемо
mysevra про Бардуго: Правление волков [litres] [Rule of Wolves ru] (Героическая фантастика, Фэнтези, Городское фэнтези)
27 06 Хорошая работа переводчика, а сама история получилась тусклой. Зачем реанимировать то, что так хорошо упокоено? Найди себе нового идола. Оценка: неплохо
mysevra про Ищенко: Потусторонний криминал (Документальная литература, Научпоп)
27 06 В 90-е такая книга была бы откровением, в 2018 – слабенько, всё уже где-то читано. Оценка: неплохо
mysevra про Уланов: Плюс на минус (Детективная фантастика, Городское фэнтези)
27 06 Мне понравилось. Многие ругают авторов за незнание предмета. Какого, к чёрту, предмета? Справочника по содержанию русалок? Эта история не есть мануал рейнджера, это фольк-детектив, фэнтези и немножко мелодрама, призванная ……… Оценка: отлично! |
Комментарии
Отв: Программа для извлечения и замены иллюстраций в ...
Вот почему тебя давно не видно было!)).
скачал, посмотрю. Оболочку делать будешь? Если хочешь, чтобы программа использовалась обществом - нужно, имхо
Отв: Программа для извлечения и замены иллюстраций в ...
А вот где бы 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. А ведь пользователи программы с исходниками разбираться и не обязаны вроде бы.
А ничего интересного не придумал.
Отв: Программа для извлечения и замены иллюстраций в ...
Страницы