Catalog · How the catalog works
MyHomeLib
MyHomeLib – комп'ютерна програма для керування домашньою бібліотекою електронних книг. MyHomeLib може використовуватися не тільки для каталогізації колекції файлів з електронними книгами, але і як клієнт для роботи з бібліотекою Лібрусек та іншими бібліотеками на движку Лібрусек (Флібуста та іншими подібними).
- ★ 169 on GitHub
Anyone may press Interesting, signed in or not. It helps others find this project.
README
MyHomeLib
Українська · English · Български
Керування домашньою бібліотекою електронних книг: каталогізація власної колекції файлів і робота як клієнт бібліотек на движку Лібрусек.
Що це таке
MyHomeLib — настільна програма для Windows, яка дає змогу каталогізувати власну колекцію файлів електронних книг: книги розкладаються по авторах, серіях і жанрах, шукаються за довільним набором умов і відкриваються в тій програмі для читання, яку ви налаштували.
Окрім власних колекцій, MyHomeLib працює як клієнт бібліотек на движку Лібрусек — зокрема Флібусти та подібних сайтів. Каталог такої бібліотеки підключається з файлу INPX, після чого книги можна шукати й переглядати локально, а завантажувати з сервера лише ті, які справді потрібні.
Книги зберігаються у форматах FB2 (окремі файли або zip-архіви), FBD та будь-яких інших; метадані колекції — у базі SQLite.
Можливості
Колекції
- Кілька колекцій одночасно з миттєвим перемиканням між ними.
- Типи колекцій: локальна чи мережева, власна чи підключена зовнішня бібліотека, FB2 чи не-FB2.
- Майстер створення колекції: порожня колекція, побудова з файлу INPX або підключення наявного файлу
.hlc2. - Оновлення колекції з мережі та вручну, синхронізація тек і файлів, обслуговування бази даних.
- Копіювання книг між FB2-колекціями, експорт колекції у формат INPX.
- Експорт групи у переносну колекцію metabib. Група може містити книги з кількох колекцій; фільтри перегляду та позначки книг не обмежують експорт.
Книги
- Імпорт FB2 (файли й архіви), FBD та книг у інших форматах; пакетний імпорт з INPX.
- Дерева перегляду за авторами, серіями та жанрами з алфавітними фільтрами (кирилиця й латиниця).
- Пошук за автором, назвою, серією, жанром, ключовими словами, анотацією, ім'ям файлу, датою додавання, мовою та оцінкою бібліотеки — з умовами виду
%текст%,="точне значення",<,>,<>,OR— і збереженням наборів умов у пресети. - Групи та обране, рейтинг, прогрес читання й рецензії; експорт та імпорт цих даних користувача окремо від каталогу (прив'язка за LibID).
- Завантаження книг з онлайн-бібліотеки, читання у зовнішніх програмах за типом файлу.
- Надсилання книг на пристрій з конвертацією: fb2mobi, fb2epub, fb2lrf, fb2pdf; шаблони імен файлів і підтек.
- Користувацькі скрипти після надсилання на пристрій з підстановками
%DEST%,%TMP%,%FILENAME%та іншими. - Редагування описів книг і авторів, експорт списку книг у HTML.
Експорт групи: Створіть групу, додайте книги й виберіть Група → Експортувати групу (metabib) або цю команду в контекстному меню групи. Під час першого експорту виберіть теку; наступні експорти використовують збережену теку. Команда Тека експорту груп… змінює її. Кожен запуск створює нову теку MHL-<GUID> з catalog.jsonl та ZIP-архівами, які містять до 1000 книг. Експортуються лише доступні файли, без завантаження та конвертації. Журнал показує пропущені книги й підсумкові кількості. Скасування не публікує неповну колекцію.
Для імпорту залиште ZIP-архіви поруч із catalog.jsonl, виберіть каталог у майстрі створення колекції та вкажіть теку пакета як кореневу теку книг. Пакет має власний ідентифікатор бібліотеки та нові ідентифікатори книг; вихідні LibID зберігаються як походження даних каталогу. Особисті групи, оцінки, рецензії та прогрес читання не включаються. Текст перекладачів зберігається спеціально позначеним твердженням; відновити структуровані імена та початкові спостереження джерел зі збереженого каталогу неможливо. Інші читачі metabib можуть не підтримувати це представлення перекладачів.
Якщо жанр із таким кодом уже є в цільовій колекції, імпорт зберігає його визначення. Каталог експорту містить назву й категорію джерела. Суперечливі визначення з різних вихідних колекцій отримують окремі коди. Ідентифікатор похідної бібліотеки придатний для імені файлу, тому майстер може використати запропоноване ім'я бази даних.
AI-асистенти
- Разом з програмою встановлюється MCP-сервер (
MHLMcpServer.exe), який відкриває колекцію асистентам на кшталт Claude: пошук книг, перегляд авторів, серій і жанрів, зміст і текст книги, пошук усередині книги. Працює лише на читання й не потребує запущеної MyHomeLib. Як підключити — у довідці, розділ «MCP-сервер для AI-асистентів».
Мова інтерфейсу
Інтерфейс доступний українською, англійською та болгарською. Мова перемикається в меню Вигляд → Мова інтерфейсу і застосовується після перезапуску програми. Усі три мови вбудовані у виконуваний файл, тож жоден зовнішній файл не може їх замінити чи прибрати. Довідка також перекладена всіма трьома мовами й перемикається разом з інтерфейсом.
Дерево жанрів теж підлаштовується під мову інтерфейсу. Для наявних колекцій назви жанрів оновлюються самі — вони зберігаються в базі колекції, тож раніше залишалися мовою, якою колекцію було створено.
Болгарський переклад машинний і не вичитаний носієм мови — у меню вибору мови він так і підписаний. Якщо якийсь рядок звучить неправильно, напишіть на сторінці Issues: наведіть рядок і запропонуйте заміну.
Інші мови підключаються каталогами перекладу поруч із програмою (Lang\<код>.json). Програма завантажує тільки каталоги, підписані ключем проєкту: непідписаний файл не завантажується й не з'являється в меню. Якщо ви хочете перекласти інтерфейс своєю мовою, напишіть на сторінці Issues — готовий переклад буде підписано й повернуто вам разом з файлом підпису.
Російськомовного інтерфейсу проєкт не постачає і каталогів російською не підписує. Це свідоме рішення.
Встановлення
Готові інсталятори для 64- та 32-розрядної Windows публікуються на сторінці Releases. Якщо потрібного файлу там немає, інсталятор можна зібрати самостійно — див. Installer/build_installer.cmd (потрібен Inno Setup).
Вимоги: Windows 10 або новіша. Місце на диску визначається переважно розміром колекцій книг, а не самою програмою.
Програма підтримує portable-режим: якщо поруч із виконуваним файлом лежить myhomelib2.ini, налаштування читаються з нього, а не з %APPDATA%. Це дає змогу тримати програму разом з колекцією на зовнішньому носії.
Швидкий старт
- Встановіть програму й запустіть її.
- Колекція → Створити — майстер запитає тип колекції, теку з книгами й формат файлів.
- Наповніть колекцію: імпортуйте наявні файли книг з диска або побудуйте каталог з файлу INPX онлайн-бібліотеки.
- Переглядайте дерева авторів, серій і жанрів, шукайте книги на вкладці «Пошук», відкривайте їх у своїй програмі для читання або надсилайте на пристрій.
Докладніше — у вбудованій довідці.
Довідка
Повна довідка (55 сторінок, українською, англійською та болгарською) постачається разом з програмою. Клавіша F1 контекстно-залежна — відкриває у браузері саме ту сторінку, яка відповідає активному вікну чи вкладці. Вихідні файли довідки — у теці Program/Help/; index.html є змістом і точкою входу.
Збірка з вихідного коду
Потрібно:
- Delphi 13 (RAD Studio 37.0);
- VirtualTreeView (встановлюється через GetIt);
- Konopka Signature VCL Controls (
BonusKSVC8.0.2, теж через GetIt); C:\Windows\System32у зміннійPATH— подія after-build викликаєrobocopy, і без цього збірка падає наcopy_help.cmd;- Node.js — необов'язковий. Подія before-build викликає
Program\embed_lang.cmd, який вбудовує каталоги перекладу у виконуваний файл. Без Node.js збірка не падає, але ви отримаєте програму лише українською.
Каталоги перекладу (Program/Lang/) не входять до цього репозиторію. Без них збірка успішна й дає програму українською; як їх отримати — див. tools/lang/README.md.
Збирайте лише через груповий проєкт Program\MHL.groupproj — він містить пакет компонентів, DLL з іконками, головну програму та MCP-сервер у правильному порядку:
cmd.exe /c "set BDS=C:\Program Files (x86)\Embarcadero\Studio\37.0&& set BDSCOMMONDIR=C:\Users\Public\Documents\Embarcadero\Studio\37.0&& C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe Program\MHL.groupproj /t:Build /p:Config=Release /p:Platform=Win64 /nologo /v:minimal"Для 32-розрядної збірки замініть /p:Platform=Win64 на /p:Platform=Win32. Основна платформа — Win64; збирайте її першою, але перед випуском мають проходити обидві.
Не запускайте msbuild безпосередньо на
Program\MyhomeLib.dproj. Це переписує файл проєкту й піднімає імпортCodeGear.Delphi.Targetsвище груп конфігурації, після чого будь-яка наступна збірка — зокрема й групова — падає зF2613 Unit 'SysUtils' not found. Груповий проєкт файл не переписує.
Результат збірки: Program/OUT/Bin64/ та Program/OUT/BIN/ (виконувані файли), Program/OUT/Units/ (DCU). Подія after-build кладе поруч з exe теку довідки та Resources\Icons\<платформа>\MHLIcons.dll — усі іконки програма завантажує з цієї DLL під час виконання.
Структура репозиторію
Program/
MyHomeLib.dpr ???????????????? ????????????
MHL.groupproj ???????????????? ???????????? (???????????????????? + ???????????? + ???????????????? + MCP-????????????)
Forms/ ?????????? VCL (frm_*.pas), Forms/Editors/ ??? ?????????????? ??????????????????????
DataModules/ dm_user.pas ??? ???????????????????? ???????????? ?????????? (????????????????????????, ???????????????? ????)
Units/ ????????: ?????????????????? ????????, ????????????????????????, ????????????????????, ??????????????????
DAO/ ?????? ?????????????? ???? ?????????? (???????????????????? ??????????), DAO/SQLite/ ??? ????????????????????
ImportImpl/ ???????????? ?????????????? ???????? (FB2, FBD, INPX) ?? ?????????? ????????????????
DwnldImpl/ ???????????? ???????????????????????? ????????
UtilsImpl/ ??????????????????????????, ?????????????? ???? ????????????????, ?????????????????? ????????????????
Wizards/ ?????????????? ?????????????????? ????????????????
Help/ ?????????????? ?????????????????????? (HTML)
Resources/ ????????????, ????????????????????
Components/
MHLComponents/ ?????????? ?????????????????????? ???????? ???????????????? (BookTreeView, ???????????? FB2, ????????????)
Utils/ ?????????????????? ?????????????? (??????. ??????????)
Installer/ ?????????????? Inno Setup
tools/ ?????????????????? ?????????????? ???????????????? (??????????????, ???????????????? ??????????????????)Утиліти
Utils/MHLMcpServer— MCP-сервер (Model Context Protocol) лише для читання, який відкриває колекцію MyHomeLib клієнтам на кшталт Claude: пошук книг, перегляд авторів, серій і жанрів, зміст і текст книги, пошук усередині книги. Лінкується з тим самим шаром DAO, що й програма, тож бачить ті самі колекції. На відміну від решти утиліт, постачається інсталятором і лягає поруч зMyHomeLib.exe. Опис для користувачів — у довідці (mcp_server.html), технічний — уUtils/MHLMcpServer/README.md.Utils/MHLSQLiteConsole— окрема консоль SQLite для роботи з базами колекцій напряму.Utils/MHLSQLiteExt— розширення SQLite мовою C++ з користувацькими функціями, які використовує програма.
Ліцензія
MIT — див. LICENSE. © 2008–2026 Олексій Пеньков.
Ліцензія поширюється на код, але не на назву. Форк, який розповсюджує збірки, має випускати їх під власною назвою — див. NOTICE.
Автори
Програмування: Олексій Пеньков, Николай Рыманов, eg.
Тестування: eg, Evgeniy_V, albert, AlbanSpy, kaznelson, Olega.
Зворотний зв'язок
Про помилки й пропозиції пишіть на сторінці Issues.

