Библиотекарь FBLibrarian

Материал из FictionBook
Перейти к: навигация, поиск

История программы

История от Дмитрия Пустовита

Сразу отвечу на вопрос "Почему такой скачок в версиях?"

Были произведены кардинальные изменения как в программном коде, так и в структуре базы данных. Билдов (невыложенных) было очень много. Изменения, производимые в программе не фиксировал по причине банальной лени и нехватки времени.

К тому же, я думаю, что программа уже достаточно функциональна и достойна того, чтобы изменить мажорный номер версии.

В процессе работы над программой мне очень помогают замечания пользователей.

Большое количество ошибок и недочетов выявлено именно ими.

По мере возможности я постарался в данном файле указывать имена или ники (форум fictionbook.org) людей выявивших ошибку или посоветовавших внести какое-либо изменение в программу.

Большое им спасибо за помощь!

Важные (ИМХО) замечания по алгоритму работы программы:

1. Названия книг, Серий в базе данных (и соответственно в Description после редактирования)

  хранятся в виде ProperCase (т.е. каждое слово с заглавной буквы).
  Предваряя вопросы: пробовал по-разному, МНЕ ПОНРАВИЛСЯ ЭТОТ ВАРИАНТ.

3. При сохранении книги на диск, а так же в режиме работы с файловой системой имя файла книги формируется следующим образом:

Фамилия_Имя (или Имя_Фамилия) (в зависимости от режима LNFN или FNLN) ПЕРВОГО В СПИСКЕ АВТОРА

+

Название_книги

+

(Название_Серии-Номер_в_серии) Причем, в зависимости от значения ключа "Транслит" в настройках все это будет или кириллицей или латиницей.

4. При формировании имени файла заменяются на подчеркивание символы не входящие в диапазон: ['A'..'Z', 'a'..'z', '0'..'9', '-', '!', '_', 'А'..'Я', 'а'..'я', 'Ё', 'ё']

5. При сохранении в базе данных (и в книге после выгрузки из библиотеки) обложка преобразуется к JPG, независимо от того, в каком формате она была в исходном файле.

Ограничения

1. Не поддерживается отображение более 1 обложки для каждой книги

2. Размер аннотации книги ограничен 4096 байтами (я считаю, что больше - это уже предисловие). При большем размере сканер не пропустит

3. Есть ограничения по длине полей. Обычно лишнее урезается справа. Но сканер может и не пропустить (не до конца проверил).

4. Может есть еще что-то, просто на данный момент я не вспомнил.


TODO


Функционал:

  • Визуализация физического размера файла базы данных
  • Сохранение Ini-файла не в рабочем каталоге
  • Перенос/копирование из библиотеки в библиотеку
  • Добавление книг формата не FB2

Plugins:

  • Экспорт списка книг в XML,CVS,TXT,XLS
  • Экспорт заголовков (BookInfo) (plugin)
  • Построение простейшего сайта на основе БД (plugin)


Версия 1.0.0.8 RC1 (DB+File System Version)

+ Исправлена серьезная ошибка. При редактировании информации о книге менялся ID документа. Теперь он остается прежним

! Добавил возможность сортировки в таблицах щелчком по заголовку (Glassy)

+ Изменил диалог создания библиотеки. Теперь сразу можно выбрать режим хранения книг (Admin)

+ Zip-ы из TMP теперь удаляются.

+ Добавил в сканер расшифровку ошибки/деталей дубликата (Admin)

+ Исправил ошибку записи списка жанров. Не производился поиск в алтернативных названиях

! Таблица Errors перенесена в файл FBLIBRARY.FDB

! Переделана форма отображения статистики. Теперь можно увидеть количество прочитанных книг (Alex)

! Добавлена возможность выбора действия по двойному клику по книге в списке (Не помню, кто просил)

Версия 1.0.0.4 RC1 (DB+File System Version)

+ Косметические изменения

+ Перевод заголовка главной формы работает нормально

+ Убрал кнопки удалить обложку и загрузить обложку с главной формы -теперь доступны только в корректировке информации о книге

+ В комплект включена исправленная база данных

+ В сканере исправлен участок, отвечающий за замену книг в базе найденным дубликатом (теперь обновляется не только сам файл, но и информаци в базе данных)

+ Исправлена процедура изменения способа хранения (при большом количестве книг системе не хватало ресурсов, сейчас процедура работает стабильно. Проверено на 7000 книгах)

! Добавлена возможность указать папку на СЕ устройcтве при передаче файлов. (проверял на 2 устройствах Qtek 2020 и iPAQ 1915. В основную память прошло на ура в обоих случаях, на Storage Card на iPAQ скопировалось нормально, на Qtek файл сбойный. Подозреваю флешку. Проверяйте). Папка сохраняется в ini-файле.

! Положение и размер главной формы, формы просмотра обложки, формы сканера, а также положения и размеры колонок грида, положения и размеры панелей сохраняется при выходе в файле props.ini. Оборотная сторона: пришлось на данных формах отключить максимизацию и в первый раз они могут встать некрасиво на экране (свойство Position выставлено в poDesigned)


Версия 1.0 RC1 (DB+File System Version)

FB2-Сканер

! Сканер сильно переработан и перенесен из dll в основную программу

! Изменен алгоритм определения дубликатов. Теперь во внимание принимается ID из файла книги.

! Добавлена возможность отложить обработку ошибок сканирования на другой сеанс работы с программой

! Убран режим автоматического переноса файлов по папкам в процессе сканирования Это можно сделать вручную по правому клику на списке ошибок

! Теперь можно заменить книгу в библиотеке дубликатом, найденным в процессе сканирования

! При перемещении по списку ошибок в случае дубликата внизу отображается книга из библиотеки, чей дубликат был найден. Здесь же видна версия документа.

Библиотека

! Оптимизорваны запросы к базе данных. Теперь запуск программы происходит значительно быстрее

! На вкладках отображается размер архива с книгой

! Добавлена информация о количестве рецензий на книгу

! Изменена панель с алфавитными вкладками для авторов (вместо вкладок теперь надписи)

! Подписи для вкалдок вынесены в отдельный файл ABC.TXT в папке Language

! Добавлен режим хранения книг в виде файловой системы, замечания - см. выше

! Поменял движок скинов. Программа "понимает" *.msstyle

! Добавлена работа с авторами. В базе данных есть таблица синонимов автора. При работе по ней сканера производится поиск в первую очередь. При нахождении совпадения в базу попадают правильные значения данных автора (файл книги при этом не меняется)

! Добавлены кнопки часто используемых операций на панель управления

! Включено отображение всплывающих подсказок к кнопкам

! Есть возможность импорта жанров из файла genres_transfer. При этом происходит не полная замена жанров, а ОБНОВЛЕНИЕ существующих. К сожалению я не смог (пока) найти способ напрямую использовать этот файл без импорта.

! На панель инструментов выведена кнопка "Обновить". При нажатии на нее происходить переоткрытие запросов на текущей вкладке. Я отказался от автоматического обновления в пользу быстродействия

! Расширен функционал многопользовательской версии:

  • При добавлении книги теперь фиксируется, кем она добавлена
  • Добавлена возможность не отображать прочитанные книги
  • Для каждой книги можно вести "цитатник". Построен по тому же принципу, что история

и рецензии

  • - Удалять книги может либо тот, кто эту книгу внес, либо владелец

библиотеки.

  • Удалить автора может только владелец библиотеки
  • Добавлена возможность запомнить пользователя, входящего в программу по умолчанию

(если вы владелец библиотеки и работаете с чужого рабочего места НЕ ИСПОЛЬЗУЙТЕ ЭТУ ВОЗМОЖНОСТЬ (если вас интересует результат :))).

+ Устранена ошибка, когда в описание книги с отсутствующей обложкой записывалась обложка от другой, уже обработаной книги

+ Исправлено много незначительных ошибок

Версия 0.3.1.2

! Поддержка скинов (пока есть 5 встроенных) в планах - загрузка из файлов

! Удаление авторов

! Многопользовательский режим

  • Отметка о прочтении
  • Авторизация пользователя
  • Статус "Владелец библиотеки"
  • Рецензия
  • История для каждого пользователя
  • Избранное для каждого пользователя


+ Очистка временного каталога

+ Статистика после добавления книг в библиотеку

+ Добавлено несколько кнопок на панель инструментов

Сканер:

+ Изменен алгоритм декодирования обложки. Теперь это происходит намного быстрее даже на больших (порядка 1 Мб) обложках.

+ Исправил ошибку кодирования обложки (формат Base64 в конце м.б. не более 2 знаков =).

+ Подправил алгоритм распознавания MIME для обложки.

Версия 0.2.0.32

! Добавлен украинский языковый файл (Alex)

+ Не работает "переносить в зависимости от результата операции" (Stepochka)

+ Неправильно заполняется autorlist

+ Не отображается autorlist для книг с 2 и более авторами

+ После правки информации о книге частично убивается информация об авторе, в главном окне автора книги видно, а через поиск по имени/фамилии автора книга больше не находится (Stepochka)

+ Ещё, если править инфо о книге без обложки, в окне светится обложка от последней редактируемой и сохранённой (Stepochka)

+ UTF кодировка нестабильно пишется в файл

+ на PDA и при сохранении книги на диск создаётся архив с именем .fb2.zip (Stepochka)

+ Не очищается папка tmp независимо от указания в настройках (Stepochka)

+ Исправлена ошибка поиска по интервалу дат (при задании периода менее двух дней не находилось ничего)

+ Заменил гриды на главной форме для обзора большего количества информации и для введения впоследствии лучшей функциональности

+ Поставил задержку на обновление Detail датасетов при перемещении по Master Перемещение стало более комфортным (ИМХО). Detail обновляется теперь только при остановке прокрутки Master

+ Окно можно развернуть на весь экран (Stepochka)

Сканер:

! Немного оптимизировал код и изменил интерфейс

! Добавил возможность прервать сканирование (Stepochka)

! Добавил окно для вывода текущей операции

! Добавил расшифровку ошибок на каждом из этапов работы (MAX)

+ Устранил ошибку, связанную с Американскими настройками даты (yyyy.mm.dd) (спасибо за найденный глюк, MAX)


Версия 0.2.0.23

1. Заменена компонента, отвечающая за работу с ZIP. (Admin)

2. Сканер FB2 вынесен в отдельную DLL

3. Сканер теперь осуществляет реккурсивный обход папок, начиная с указанной (j0ker)

4. Изменена структура базы данных.

5. Оптимизированы запросы

6. Добавлена поддержка языковых файлов

7. Добавлена возможность регистрации нескольких библиотек (в т.ч. и находящихся на удаленном компьютере)

8. Добавлена возможность подключения программы для чтения

9. Изменено оформление интерфейса программы

10. В редактирование BookInfo добавлены недостающие поля

11. При сохранении BookInfo теперь обновляется сам файл в базе данных

12. Добавлена поддержка plugin-ов

13. Операция по сохранению базы в структуру папок вынесена в plugin

14. Исправлена ошибка с названиями, содержащими кавычки и пр. недопустимые символы

15. Исправлены ранее остававшиеся незамеченными ошибки

16. Начиная с этой версии я работаю над программой один.

Замеченные недоработки и недочеты:

1. Не всегда правильно отрабатывает "Портал" при невозможности подключения к последней открытой библиотеке.

2. При выгрузке из библиотеки на диск поддерживаются пока только UTF-8 и Win-1251. (У меня не было файлов в других кодировках - проверить остальные не смог)

Версия 0.1 beta 1

Начальная версия

Ошибки

Замечания и предложения