The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Выпуск каталогизатора домашней библиотеки MyLibrary 3.0"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Подсказка: Ссылки "<<" и ">>" открывают первые и последние 10 сообщений.
. "Выпуск каталогизатора домашней библиотеки MyLibrary 3.0" +/
Сообщение от ProfessorNavigator (ok), 23-Фев-24, 13:09 
> В доках содержимое ~/.cache описывают как non-essential data, почему не в ~/.config/MyLibrary, где было бы логичнее?

Так в ~/.cache и не лежит ничего важного. Там находятся только размеры главного окна и размеры окна закладок, а также имя последней выбранной коллекции. Можете удалять смело - при запуске программа просто вернётся к размерам окон по умолчанию, а в имени коллекции будет то, что первым прочитает библиотека <filesystem> в папке Collections.

> Collections и BookMarks - это подкаталоги, не файлы?

Да. В папке Collections соответственно находятся подкаталоги с названиями коллекций, в каждом из них - файл base. Это собственно и есть база данных коллекции. В папке BookMarks находится файл bookmarks - это файл закладок.

Формат файла базы:

- 2 байта - размер пути к директории с книгами коллекции.
- Путь к директории коллекции.

Затем идут записи о файлах коллекции (число не ограниченно).

Формат записи о файле:

- 8 байт - размер записи о файле
- 2 байта - размер относительного пути файла
- Относительный путь файла в директории коллекции (вида 'имя_файла' или например 'директория1/директория2/файл')
- 2 байта - размер хеш суммы файла
- Хеш сумма файла в бинарном виде. В данный момент для хеширования используется алгоритм BLAKE-256.

Затем в каждой записи о файле идут записи о книгах, содержащихся в файле (их размер включается в размер записи о файле).

Формат записи о книге:

- 8 байт - размер записи о книге.
- 2 байта - размер пути к книге в файле (для архивов, в противном случае - 0)
- Путь к книге (если файл - архив, в противном случае не указывается).
- 2 байта - размер поля "авторы".
- Авторы книги.
- 2 байта - размер названия книги.
- Название книги.
- 2 байта - размер поля "серия".
- Серия книги
- 2 байта - размер поля "жанры книги".
- Жанры книги.
- 2 байта - размер поля "дата".
- Дата создания книги (для fb2, epub и pdf книг берётся из файла, если доступна, для djvu - указывается дата создания файла).


Формат файла bookmarks.

Неограниченное число записей.

Формат записи:

- 8 байт - размер записи.
- 2 байта - размер пути к файлу с книгой.
- Полный путь к файлу с книгой.
- 2 байта - размер пути к книге (для архивов, в противном случае - 0).
- Путь к книге в файле (для архивов, в противном случае не указывается).
- 2 байта - размер поля "авторы".
- Авторы книги.
- 2 байта - размер названия книги.
- Название книги.
- 2 байта - размер поля "серия".
- Серия книги
- 2 байта - размер поля "жанры книги".
- Жанры книги.
- 2 байта - размер поля "дата".
- Дата создания книги.

Поля "авторы", "серия", "жанры книги", "дата", а также название книги берутся из базы коллекции при создании закладки.

И для базы, и для закладок : все числа - беззнаковые целые соответствующих типов (uint16_t, uint64_t). Порядок байт - little endian. Все текстовые поля в кодировке UTF-8.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Выпуск каталогизатора домашней библиотеки MyLibrary 3.0, opennews, 22-Фев-24, 21:48  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру