Вы здесьПрограмма для извлечения и замены иллюстраций в .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Последние комментарии
stevecepera RE:Список современных французских писателей? 2 дня
Саша из Киева RE:Подайте бедному копеечку на книжку с литреса... 5 дней Саша из Киева RE:Как бы с этим побороться и побороть? 6 дней etorus2008 RE:Отв: Помогите найти книгу по описанию 1 неделя lemma7 RE:Чёрный нимб и другие истории, исполненные неизъяснимого ужаса 1 неделя Wedmak RE:Помогите найти!.. #2 1 неделя sem14 RE:Координация сканирования и вычитки 2 недели babajga RE:Кто сможет раздобыть и оцифровать нужные мне книги? 3 недели Isais RE:Мои открытия 3 недели kopak RE:О группе Дятлова. О той самой, того самого... 3 недели A5. RE:Не присылает пароль на почту 1 месяц babajga RE:Плюмаж 1 месяц babajga RE:Блошкинс и Фрю. Опасное путешествие 1 месяц alexk RE:Багрепорт - 2 1 месяц babajga RE:Удивленная сова 2 месяца Larisa_F RE:Серия «Квадрат» издательства «Текст» 2 месяца Aleks_Sim RE:Беженцы с Флибусты 2 месяца edvud RE:Прошу переформатировать, распознать, etc... 2 месяца Впечатления о книгах
mysevra про Быченин: Оружейники [litres] (Космическая фантастика, Научная фантастика)
12 05 Много лишнего, от этого становится скучно. Оценка: плохо
mysevra про Кетчам: Мертвый сезон. Мертвая река [сборник litres] (Триллер, Детективы: прочее)
12 05 Неловко об этом упоминать, но почему-то в процессе чтения именно этой книги я постоянно засыпала. Оценка: неплохо
mysevra про Бернетт: Маленькая принцесса [A Little Princess ru] (Детская проза)
12 05 Внутренний стержень, формирование собственной вселенной. Книга на все времена. В детстве понимаешь смысл этой истории совсем иначе. Оценка: отлично!
Lan2292 про Билик: Царь царей (Юмористическая фантастика, Городское фэнтези, Самиздат, сетевая литература)
11 05 Что можно сказать о серии, мне понравилось, есть конечно недочеты и к слогу можно предъявить небольшие претензии, но я прочитала все рассказы до девятой включительно и не было желания прекратить, рекомендую любителям сказок Оценка: отлично!
DMcL про Михаил Дорин
11 05 Авиатор - дневник молодого лётчика. Просто проза про лётную работу. Может кому и понравится. Мне нет - очень Скучно!
Barbud про Порошин: Гость из будущего. Том 1 [СИ] (Юмор: прочее, Самиздат, сетевая литература)
10 05 В качестве прикола над попаданцами в совок сойдет. Автор, судя по возрасту, с реалиями СССР немного знаком, успел захватить по краешку, но тут он точно какой-то альтернативный мир изображает. Хотя если без претензий на серьезность ……… Оценка: неплохо
Belomor.canal про Врангель: Воспоминания. От крепостного права до большевиков (История, Биографии и Мемуары)
10 05 Это великолепный автофикшн - с диалогами, сценами... читается как роман! Всем советую! Оценка: отлично!
Олег Макаров. про Дашко: Москва [СИ] (Альтернативная история, Исторический детектив, Попаданцы, Самиздат, сетевая литература)
09 05 > kappa1 есть такое слово "походу". Мне оно тоже не нравится, но ничего с этим не поделать, русский язык не обязан развиваться так, чтобы нам с вами нравилось. И, кстати, "похоже" это не совсем (совсем не) точный "перевод" .
kappa1 про Дашко: Москва [СИ] (Альтернативная история, Исторический детектив, Попаданцы, Самиздат, сетевая литература)
09 05 Уважаемый автор! Нет такого слова "походу", есть "похоже", ... , "похоже". Ещё песня есть такая у Агутина: "Не похожий на тебя, не похожий на меня, Просто так прохожий парень чернокожий...". Прослушай её пару раз, может быть ……… Оценка: хорошо
msnaumov про Фреймане: Прощай, Атлантида [Ardievu, Atlantīda! ru] (Биографии и Мемуары)
08 05 Исправлены ошибки в тексте, добавлены недостающие 4 страницы
Isais про Сергей Николаевич Тимофеев
07 05 Потрясающий воображение пример того, сколь много для общей пользы может сделать человек, имея голову на плечах, трудолюбие и хороший инструментарий.
0к про Четверикова: Измена в Ватикане, или Заговор пап против христианства (История, Публицистика)
07 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. А ведь пользователи программы с исходниками разбираться и не обязаны вроде бы.
А ничего интересного не придумал.
Отв: Программа для извлечения и замены иллюстраций в ...
Страницы