Библиотекарь FBLibrarian — различия между версиями

Материал из FictionBook
Перейти к: навигация, поиск
(История)
(История от TaciturnMan)
Строка 1: Строка 1:
== История от TaciturnMan==
+
[[История программы]]
 
+
Версия 1.0.0.56 (01.02.2007):
+
* Исправлена ошибка с аннотацией на вкладке "Жанры".
+
* Устранена ошибка, возникающая после регистрации пользователя при активной вкладке "Новинки".
+
* Востановлено контекстное меню в списке проектов, найденных с помощью поиска в текущей библиотеке.
+
Контекстное меню в списке проектов, найденных с помощью поиска во всех библиотеках, отключено.
+
 
+
Версия 1.0.0.54 (31.01.2007):
+
* Устранен баг с пустыми именами в списке авторов.
+
* Усовершенствован механизм автоматического обновления структуры базы данных
+
 
+
Версия 1.0.0.52 (30.01.2007):
+
* Устранен баг с обрезанием имен и фамилий авторов в форме редактирования информации о книге.
+
* Изменено представление списка авторов
+
 
+
------------------------------------------------------------------
+
Статусы обработки добавляемого документа:
+
 
+
Ready for process=Отмечен для обработки
+
 
+
Successfully added=Успешно добавлен
+
 
+
Updated=Обновлено
+
 
+
Bad archive=Поврежденный архив
+
 
+
Parsing error=Ошибка разбора
+
 
+
Duplicate (identical)=Дубликат (идентичный)
+
 
+
Duplicate (older)=Дубликат (старее)
+
 
+
Duplicate (IDs differ)=Дубликат (ID отличается)
+
 
+
Duplicate=Дубликат
+
 
+
Error updating database=Ошибка обновления базы
+
------------------------------------------------------------------
+
Алгоритм анализа сканером добавляемого документа:
+
 
+
1. Сканер ищет подобный документ по идентификатору, созданному из названия книги и авторов
+
в алфавитном порядке. Если документ с таким идентификатором не найден в базе, создается новый
+
документ (статус "Успешно добавлен").
+
 
+
2. Если документ с таким идентификатором найден, проверяется, совпадает ли в них поле ID. Если
+
поле ID совпадает, проверяется версия (поле VERSION) добавляемого документа. Если версия больше,
+
чем версия документа в библиотеке, документ заменяет аналогичный документ в библиотеке (статус
+
"Обновлено"). Если поля ID не совпадают, документу присваивается статус "Дубликат (ID отличается)".
+
 
+
3. Если версии не отличаются, проверяется соответствие размеров и дат последней модификации
+
двух документов. Если размеры файлов и их даты последней модификации совпадают, документ
+
приобретает статус "Дубликат (идентичный)". Если версия добавляемого документа меньше или
+
дата последней модификации меньше при равных версиях, присваивается статус "Дубликат (старее)".
+
Иначе присваивается статус "Дубликат" (т.е., когда версии равны, но добавляемый документ новее (?)
+
по дате последней модификации).
+
 
+
4. Если в процессе обработки в базе (после распаковки, парсинга, и упаковки) возникает любая
+
непредвиденная ошибка, документ приобретает статус "Ошибка обновления базы".
+
------------------------------------------------------------------
+
 
+
Версия 1.0.0.50 (25.01.2007):
+
* В сканере добавлена возможность выбрать несколько записей и обработать одной командой
+
* Устранено несколько мелких недочетов в сканере и форме редактирования информации о книге.
+
 
+
Версия 1.0.0.49 (25.01.2007):
+
* Исправлена ошибка, возникающая при импорте сканером книг с длинными названиями жанров
+
в старом формате.
+
* Много мелких усовершенствований и баг-фиксов
+
 
+
Версия 1.0.0.46 (24.01.2007):
+
* В сканере в левой части убран "лишний" столбец с датой поиска файла, а в правой --
+
отменена группировка по-умолчанию по дате обработки.
+
* В списках книг установлена сортировка по-умолчанию: серия, номер, название книги.
+
* Служебный файл сканера переименован с  FBLIBRARY.FDB  в  FBSCANNER.FDB (предложено faiber).
+
Файл со старым именем будет переименован автоматически при старте программы.
+
 
+
Версия 1.0.0.45 (23.01.2007):
+
* Переписана форма "Информация о книге" и процедуры внесения изменений в FB2-файл.
+
ВНИМАНИЕ!
+
Нужно учитывать, что для минимизации возможных искажений исходного FB2-файла в
+
нем переписываются только те реквизиты, которые были изменены в форме редактирования.
+
В то же время, в случае переписывания многострочных текстовых полей для форматирования
+
текста будет использовано только простое разбиение на параграфы с помощью тега <nowiki><p></nowiki>.
+
 
+
Т.е., например, если аннотация не изменялась, то в FB2-файле останется узел <annotation>,
+
который полностью совпадает в исходным. ОДНАКО, если текст в поле "Аннотация" изменялся,
+
то узел <annotation> в FB2-файле будет переписан заново, используя простое разбиение текста
+
на параграфы при помощи тега <nowiki><p></nowiki>, и при этом потеряется сложное форматирование
+
аннотации (тегами <poem>,  <nowiki><cite></nowiki>, <subtitle>, <nowiki><table></nowiki>, <empty-line/>).
+
 
+
Одним словом, без надобности не редактируйте поля "Аннотация", "История", "Прочее".
+
+
Версия 1.0.0.42 (16.01.2007):
+
* Добавлена функция поиска по зарегистрированным в портале библиотекам (автор: PDV)
+
* В сканере расширен список статусов, сигнализирующих о результатах обработки файла
+
* Добавлена проверка прав доступа для редактирования информации об авторах и синонимах
+
(предложено Stepochka).
+
 
+
Версия 1.0.0.37 (12.01.2007):
+
* База данных: поле "Имя" (автора, переводчика) расширено со 20 до 40 символов
+
* База данных: поле "Отчество" (автора, переводчика) расширено со 30 до 40 символов
+
* База данных: тип поля "DocInfo.FileDate" изменен с DATE на TIMESTAMP.
+
 
+
Версия 1.0.0.35 (22.12.2006):
+
* С целью оптимизации переписаны процедуры парсинга и импорта книги в сканером
+
 
+
Версия 1.0.0.34 (21.12.2006):
+
* Исправлена очередная ошибка, возникающая при сохранении информации о книге.
+
 
+
Версия 1.0.0.33 (20.12.2006):
+
* Исправлена ошибка, возникающая при сохранении информации о книге.
+
* В сканере исправлена процедура для замещения книги другой версией (при различающихся ID книг).
+
* В сканере добавлена возможность, в случае обнаружения дубликата, создавать новую книгу, не удаляя старой.
+
 
+
Версия 1.0.0.32 (18.12.2006):
+
* Автоматическое обновление хранимых процедур в базе данных
+
* Процедура для копирования информации об авторах, пользователях, рецензиях, цитатах, оценках, прочтениях из других баз данных (см. файл Migration.txt)
+
* Мелкие усовершенствования и баг-фиксы
+
 
+
Версия 1.0.0.30 (08.12.2006):
+
* Опция сохранения размеров и позиций окон программы
+
* Настройки алфавитной панели: шрифт, размеры, интервал (PDV)
+
* Много мелких усовершенствований и баг-фиксов
+
 
+
Версия 1.0.0.26 (01.12.2006):
+
* База данных: опять без кодировки по-умолчанию!
+
* База данных: построены все ограничения целостности на уровне таблиц
+
* База данных: исправлены ошибки в процедурах при создании серий
+
* База данных: поле "Название книги" расширено со 100 до 252 символов
+
* Исправлены ошибки при импорте неархивированных FB2-файлов
+
* Исправлено несколько ошибок, касающихся интерфейса.
+
* Исправлена ошибка, возникающая при вводе нового пользователя (AlexArh).
+
* Исправлена ошибка при импорте файлов с датами в нестандартных форматах
+
* Расширены поля на форме сканера для счетчиков файлов
+
* Добавлены перекрестные ссылки на автора и серию (PDV)
+
* Портал (перечень доступных библиотек) теперь хранится в ini-файле вместо БД (PDV).
+
 
+
Версия 1.0.0.20 (22.11.2006):
+
* Сканер построен по "старой" модели, которая более ориентирована на пакетное добаление книг (аналогично версии 1.0.0.12, но в одном окне).
+
* Поиск в главной форме вызывается по Ctrl-F
+
* После закрытия сканера сохраняется позиция в списке авторов, которая была перед открытием сканера
+
* Сохраняются информация о прочтении, оценках и заметках при обновлении книги новой версией
+
* Проверяются права пользователя при открытии другой базы/библиотеки
+
* Базы данных перестроены в версии Firebird 1.5.3 с кодировкой по умолчанию WIN1251. Архив с программой включает в себя обновленную библиотеку gds32.dll
+
* Программа ожидает файлы баз данных в кодировке WIN1251, из-за этого зависает при попытке открыть БД старого формата без указания кодировки. Пока не выяснено, почему сессия зависает, а не выдает сообщение об ошибке в момент создания.
+
 
+
--
+
Замечания и баг-репорты принимаются на  <taciturnman@gmail.com>
+
  
 
== История от Дмитрия Пустовита==
 
== История от Дмитрия Пустовита==

Версия 11:24, 2 февраля 2007

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

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

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

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

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

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

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

По мере возможности я постарался в данном файле указывать имена или ники (форум 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

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

Ошибки

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