fb2moby.py

GUI - Версия конвертера с графическим интерфейсом
CLI - Версия конвертера с интерфейсом командной строки

История версий
--------------
16.10.2013 Версия 2.5
    + Добавлена обработка вложенных в fb2 картинок, в имени файлов которых не указано расширение.
    + Добавлена возможность отправки книг на Kindle через почту. Отправляются только книги в формате mobi.
      Требуется почтовый адрес на kindle.com.
      В файле профиля добавлена секция sendtokindle для настройки параметров отправки:
        send (yes/no)  - Отправлять или нет книги после конвертации
        smtpserver - имя SMTP-сервера (для Google mail - smtp.gmail.com)
        smtpport - SMTP-порт (для Google mail - 465)
        smtplogin - логин к почтовому ящику (для Google mail - ваш email- *@gmail.com)
        smtppassword - пароль к почтовому ящику 
        useremail - ваш почтовый адрес
        kindleemail - ваш почтовый адрес *@kindle.com
        deleteaftersend (yes/no) - удалять книгу mobi с диска после отправки на kindle.
      Также добавлен параметр командной строки --send (yes/no), переопределяющий настройку send в профиле. 
         
   
02.09.2013 Версия 2.4.4
    * Исправлена ошибка падения конвертера при использовании настроек виньеток в профиле
    * В лог-файле символ перевода строки зависит от операционной системы.
   
30.08.2013 Версия 2.4.3
	* Проведен небольшой рефакторинг кода
	* GUI: Исправлена ошибка с опцией savemobiindir.
	+ GUI: Добавлена кнопка просмотра лог-файла. По нажатию запускается программа,
	  ассоциированная с расширением *.log.
	+ CLI: Добавлена возможность конвертации в azw3 при запуске конвертера из MyHomeLib
	  (определяется по наличию опции -nc, передаемой MHL в конвертер). Формат выходного файла
	  должен быть указан в файле профиля - параметр outputformat
	+ CLI, GUI: Добавлен параметр профиля authorstring, определяющий шаблон имени автора.
	  В шаблоне доступны следующие элементы:
	  #l - Фамилия
	  #f - Имя
	  #m - Отчество
	  #fi - Первая буква имени (с точкой)
	  #mi - Первая буква фамилии (с точкой)
	+ CLI, GUI: Добавлен параметр профиля bookseriestitle, определяющий шаблон названия книги
 	  приналичии серии.
 	  В шаблоне доступны следующие элементы:
 	  #series - название серии
 	  #abbrseries - аббревиатура название серии (аналогично, как делает конвертер fb2lrf). 
 	             Например, для серии "Очень интересная серия книг" - оиск
 	  #number - номер книги в серии
	  #title - название книги 	  

27.06.2013 Версия 2.4.2
    * Исправлен алгоритм обработки разделов сносок и примечаний в режимах block и inline -
      устранена проблема неотражаемых сносок в некоторых книгах.
    + Настройка символов-исключений для буквицы вынесена в профиль - параметр nodropcaps 
      раздела style
    + CLI: Добавлен параметр командной строки --deletesource, позволяющий удалить исходный файл
      fb2 в случае успешной конвертации.
    + CLI: Добавлен параметр командной строки --deleteinputdir, позволяющий удалить содержимое
      входящего каталога (указанного в параметре --inputdir) после конвертации всех файлов. 
      Результат конвертации отдельного файла не проверяется.

13.06.2013 Версия 2.4.1
    * Исправлено пропадание файлов конвертера в режиме debug при отсутствии kindlegen.
    * Исправлено падение GUI при наличии в пути конвертера кириллицы.
    * Исправлена ошибка вывода на консоль в Linux при запуске из-под MyRuLib.
    * Продолжается война с юникодом.
    * Тэг stanza формата fb2 преобразуется в <div class="stanza"> (раньше был <br/>)
    + GUI, CLI: Добавлена поддержка формата azw3 для конечных файлов (на базе кода KindleUnpack). 
      Формат конечного файла можно задать в профиле (параметр outputformat в секции fb2mobi), 
      параметр командной строки --outputformat, либо расширением конечного (outfile) файла.
      Возможные значения параметра mobi, azw3. По умолчанию mobi.
      В GUI в диалог настроек добавлена соответствующая настройка.
       
11.06.2013 Версия 2.3
    * Конвертация: Доработаны процедуры обработки ошибок и логирования.
    * Конвертация: Кардинально исправлена проблема падения конвертера при наличии в тексте fb2 специальных символов html (& <> и т.п.).
      Теперь ВСЕ спецсимволы заменяются на их мнемонические представления такого вида &amp;.
    * CLI: Все сообщения конвертера теперь на русском языке.
    * GUI: Переработан диалог настройки
    + GUI: Добавлен пункт меню "О программе"
    + GUI: Можно добавлять содержимое папки с помощью drag'n'drop или через пункт меню "Добавить папку"

08.06.2013 Версия 2.2.2
    * GUI: Исправление мелких ошибок
    * CLI: Исправление мелких ошибок

08.06.2013 Версия 2.2
    + GUI: Кардинально переработан интерфейс, в том числе с точки зрения юзабилити. Добавлено меню.
    + GUI: Переработан механизм конвертации: два режима - конвертация всех файлов, конвертация только выделенных файлов. При возникновении ошибки процесс не прерывается, для каждого файла выставляется статус конвертации (зеленая точка - успешно, красная точка - ошибки, ошибки можно посмотреть в лог-файле). По окончании конвертации есть возможность удаления успешно сконвертированных файлов.
    + GUI: Работа с профилями. Есть возможность указать в настройках каталог с преднастроенными файлами профилей *.conf (по-умолчанию профили берутся из каталога конвертера). Профили выбираются в основном окне из выпадающего списка, при выходе из программы выбранный профиль сохраняется.
    * CLI: Исправлена ошибка в обработке тэга image fb2 при наличии атрибута id.
    Замечание 1: для корректной работы GUI-версии, если у вас была установлена предыдущаяя версия, удалите в домашнем каталоге подкаталог .fb2mobi.
    Для Windows: C:\Users\<username>\.fb2mobi, для Linux, Mac OS: ~/.fb2mobi 
    Замечание 2: Документация будет актуализирована в следующей версии.
 
06.06.2013 Версия 2.1
    + GUI, CLI: Добавлена обработка файлов *.zip
    + CLI: Добавлен параметр -s, --savefolderstructure для сохранения структуры каталогов inputdir в outputdir.
      Работает только с параметрами -i, --inputdir и -o, --outputdir
    + CLI: Добавлен параметр --log LOG - имя лог-файла. При указании этого параметра все сообщения 
      в режимах verbose, debug, а также сообщения об ошибках выводятся не на экран а в указанный файл. 
    + GUI: Все диагностические сообщения выводятся в лог-файл в домашний каталог пользователя в подкаталоге .fb2mobi
    * GUI: Файлы добавляются/удаляются кнопками Ins/Del соответственно. Комбинация Control-A - выделить все файлы в списке.
    * GUI: Отключена сортировка файлов по алфавиту при добавлении.
    * GUI, CLI: Улучшена обработка ошибок

05.06.2013 Версия 2.0
    + GUI-интерфейс
    * Устранены мелкие ошибки
    * Небольшие правки стилей

03.06.2013 Версия 1.8
    * Название режима по-умолчанию для сносок изменено на "default" (было "ref").
    + Добавлены виньетки. См. описание в документации.
    + Добавлен параметр для установки названия раздела аннотации. См. параметр командной строки --annotationtitle и параметр в файле профиля annotationtitle.
    + Добавлен параметр для установки названия раздела содержания. См. параметр командной строки --toctitle и параметр в файле профиля toctitle.
    + Дополнена и переработана документация.

31.05.2013 Версия 1.7.2
    * Исправление мелких багов.
    * Содержание: содержание включено в навигацию джойстиком, некоторые изменения отображения содержания (для первого заголовка, удаление текста ссылок). 
    * Документация: актуализировано содержимое. Начато оформление в формате markdown.
    
30.05.2013 Версия 1.7.1
    * Исправлен режим добавления скобок для inline-сносок. Теперь вид скобок (в общем случае
      текст до сноски и текст после сноски) настраивается в css (спасибо dimasic):
      см. стили span.inlinenote::before, span.inlinenote::after.
    + Inline-сноски:
      Поддержка двух режимов - inline и block (параметр профиля notes/mode). 
      В режиме inline текст сноски отображается непосредственно в тексте, в том месте, 
      где встретилась ссылка на эту сноску со стилем inlinenote. 
      В режиме block сноски текущего абзаца отображаются отдельным блоком сразу после абзаца.  
      Все сноски текущего абзаца помещаются в один блок со стилем blocknote, в текст сноски 
      включается также ее заголовок со стилем notenum. 
      В профиле можно указать через запятую список имен разделов, ссылки на которые обрабатываются
      как inline-сноски (параметр профилия notes/bodies). Например, 
      bodies = notes
      bodies = notes, comments
  
29.05.2013 Версия 1.6.1
    * Добавлена проверка наличия входного файла
    * Исправлена ошибка вычисления имени файла mobi и имени файла *.fb2.zip 
    * Исправлен алгоритм обработки файла профиля - сейчас конвертер не выпадает с ошибкой,
      если какой-либо параметр отсутствует в файле профиля.
    * Исправлена ошибка с формированием обложки книги при отсутствии изображения обложки в
      исходном файле.
    + Добавлена формирование раздела "Аннотация" при наличии в исходном файле раздела
      annotation. Соответствующий стиль в CSS annotation.
    + Добавлена возможность включения текста сносок и комментариев непосредственно в текст
      книги - режим inline notes. Задается в профиле параметром inlinenotes в секции style,
      либо из командной строки - см. параметр --inlinenotes. 

28.05.2013 Версия 1.5
    * Проведена ревизия исходного кода, добавлены комментарии.
    + Существенно повышена скорость конвертации из fb2 в xhtml - скорость возросла до 10 раз
      (особенно заметно на больших файлах).
    + Добавлен режим пакетной обработки файлов в указанной папке (с вложенными подпапками). 
      См. параметр -i, --inputdir.
    + Добавлен параметр -o, --outputdir для указания папки-приемника готовых файлов mobi.
    + Добавлена обработка ошибок и исключительных ситуаций, корректности некоторых параметров.
24.05.2013 Версия 1.4
    * Исправлена ошибка, приводящая к падению конвертера, если в заголовках присутсвуют
      тэги html.
    * Переносы: переделан механизм расстановки переносов. Теперь не требуется предварительная
      обработка файла fb2 для расстановки переносов, обработка происходит в момент конвертации
    * Переносы: исправлена ошибка инициализации словаря исключений в файле hyphenator.ru. 
      Теперь слова-исключения для русского языка работают (файл hypenations/ru.py).
    + Содержание: добавлен параметр tocmaxlevel для ограничения уровня заголовка, помещаемого в
      toc.html. Параметр задается в профиле как tocmaxlevel, либо через командную строку.
      Значение параметра отсчитывается от 0. В toc.ncx помещаются все заголовки.
    + Стили: Добавлен css-стиль h0 для первого заголовка в body. 
    + Стили: переделан алогритм расстановки буквицы (dropcaps) согласно Amazon Kinde
      Publishing Guideline. Буквица задается элементом span (см. стили в css). 
19.05.2013 Версия 1.3
    * Переход на lxml парсер - несколько увеличилась скорость конвератции
    * Обработка картинок, картинки внутри параграфа отображаются как inline
    + Содержание: теперь в содержание попадают только заголовки из body 
      с пустым атрибутом name, для остальных body (notes, comments) - попадают
      только первые заголовки (предполагаем, что название раздела, типа
      Примечания, Комментарии).
    + Содержание: добавлена поддержка стилей для уровня вложенности раздела -
      см. стили indent0-indent6. Про формировании toc.html соответствующий стиль
      пристваивается заголовку согласно его уровня вложенности. 
      Стили доступны для 7 уровней, если уровень вложенности заголовка больше,
      присваивается стиль indent6.  
    + Форматированный вывод промежуточных файлов для более удобной читаемости
    + Обработка тэга date 
16.05.2013 Версия 1.2
    * Ошибка формирования имени автора (в пустое поле вставлялось None)
    * Опечатки
    * При отсутствии значений параметров fontsdir и css в режимах verbose и 
      debug выдаются соответствующие предупреждения
    + Поддержка fb2.zip
    + Опции сжатия для kindlegen (параметры -c0, -c1, -c2). Задается в профиле
      как compressionlevel, через командную строку, как -kc 0, -kc 1, -tc 2.
    + Скрипт отлажен под OS Linux (Ubuntu 13.04). Архив исходных кодов собран 
      под Linux.
    
15.05.2013 Версия 1.1
    * Исправлена ошибка определения полного пути к файлу css и папке fonts, если в 
      профиле указаны относительные пути
    * Относительные пути, указанные в профиле для параметров css и fontsdir теперь
      отсчитываются от папки, в которой лежит файл профиля
    + Решена проблема совместимости с MyHomeLib - добавлены фиктивные параметры,
      которые передает MyHomeLib в fb2mobi.exe
    + Добавлен режим verbose (как в профиле, так и через командную строку) - 
      вывод сообщений о процессе конвертации
    + В режимах verbose и debug теперь выводятся сообщения kindlegen.
    
14.05.2013 Версия 1.0 - начальный релиз








 
