Вы здесьПрограмма для извлечения и замены иллюстраций в .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Последние комментарии
logusss RE:Прошу переформатировать, распознать, etc... 6 часов
nehug@cheaphub.net RE:Доступ 1 день нэнси RE:Подайте бедному копеечку на книжку с литреса... 1 день babajga RE:Слева, где сердце: Повести и рассказы 1 день babajga RE:Ежик покидает дом 2 дня babajga RE:Сказки без подсказки. Сборник 2 дня sibkron RE:«Уроки русского» 3 дня babajga RE:сиреневая звезда 3 дня edvud RE:Не работает регистрация и восстановление пароля 5 дней Larisa_F RE:Грушевое дерево 6 дней koifish RE:Оплатил абонемент, деньги списались, абонемента нет 6 дней Саша из Киева RE:Неудавшийся священник 1 неделя babajga RE:Повесть о чудесном одуванчике 2 недели Саша из Киева RE:Ночной пассажир 2 недели larin RE:Оплатила,но абонемент не отображается 2 недели tvnic RE:Maxima-library - новый адрес 2 недели Саша из Киева RE:Хождение во власть. После путча 2 недели babajga RE:Алиса в стране чудес 3 недели Впечатления о книгах
скунс про Афанасьев: Кто ты, Такидзиро Решетников? [СИ] (Попаданцы, Самиздат, сетевая литература)
14 05 Понравилось,читать интересно Оценка: хорошо
lokiiii про Давыдов: Манящая корона [litres] (Героическая фантастика, Фэнтези)
13 05 Повелся на обложку (хотя дракон там тот ещё, но для этой книги как раз), и даже SEO аннотация не отпугнула... и зря. Тут всё настолько плохо, что даже сложно сказать что хуже. По сути, это небольшой рассказик, от силы ……… Оценка: нечитаемо
Lan2292 про Идущий по мирам
13 05 Решила написать по поводу данного произведения следующее, рояль на рояле лежит и роялем погоняет. Если не зацикливаться на этом и воспринимать как некий стеб, неплохо.
Alexx_S про Сандерсон: Рифматист [Литрес] [The Rithmatist ru] (Героическая фантастика, Детективная фантастика, Фэнтези)
13 05 Перевод ужасен, нечитаемо. Персонажи постоянно "взглядывают" - "переводчик" банально не знает значение этого слова
obivatel про Горький: Дед Архип и Лёнька (Русская классическая проза, Детская проза)
13 05 Цитата: "Прочитав в соответствующем -- т.е. в младшем школьном возрасте..." А потом нам объяснили, что всё было не так, [:голосом Новодворской с причмокиванием:] "балы-красавицы-лакеи-юнкера", и "хруст хранцускай булки"(тм), ……… Оценка: отлично!
obivatel про Ледяная принцесса
13 05 Читабельно Многобукофф -- огромный плюс. Всему циклу и каждому тому отдельно -- отлично, Очень понравилось объяснение почему политику высшего уровня противопоказано быть честнейшим и принципиальнейшим человеком (третий ………
Oleg68 про Кобен: Победитель [litres] (Триллер, Детективы: прочее)
13 05 Книга понравилась. Необычный сюжет и развязка в самом конце. Оценка: хорошо
vadim_kz про Артем Всеволодович Туров (Art)
12 05 Немного занудно но вполне читаемо, даже несмотря на ошибки орфографии.
Isais про Белов: Книга 1. Слесарь [СИ] (Боевая фантастика, Фэнтези, Постапокалипсис, Самиздат, сетевая литература)
12 05 Автора аннотации обманули -- картинка на обложке с фовизмом рядом не пробегала. Максимум, на какое художественное течение она тянет, -- примитивизм. Если вообще считать, что эта картинка относится к искусству...
zingy про Медведева: Жена архимага [litres] (Любовная фантастика)
12 05 главный герой просто омерзителен Оценка: плохо
Dongel про Горький: Дед Архип и Лёнька (Русская классическая проза, Детская проза)
11 05 <<Прочитав в соответствующем -- т.е. в младшем школьном возрасте -- этот рассказ, я искренне, от души, навсегда возненавидел Максима Горького.>> Да, оставляет ощущение полной безнадеги. И я даже затрудняюсь с оценкой. ……… Оценка: отлично! |
Комментарии
Отв: Программа для извлечения и замены иллюстраций в ...
Вот почему тебя давно не видно было!)).
скачал, посмотрю. Оболочку делать будешь? Если хочешь, чтобы программа использовалась обществом - нужно, имхо
Отв: Программа для извлечения и замены иллюстраций в ...
А вот где бы 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. А ведь пользователи программы с исходниками разбираться и не обязаны вроде бы.
А ничего интересного не придумал.
Отв: Программа для извлечения и замены иллюстраций в ...
Страницы