Русский · Українська · English · Български
Управление домашней библиотекой электронных книг: каталогизация собственной коллекции файлов и работа в качестве клиента библиотек на движке «Либрусек».
MyHomeLib — настольная программа для Windows, которая позволяет каталогизировать собственную коллекцию электронных книг. Книги распределяются по авторам, сериям и жанрам, ищутся по произвольному набору условий и открываются в настроенной вами программе для чтения.
Кроме собственных коллекций, MyHomeLib работает как клиент библиотек на движке «Либрусек» — в частности, Флибусты и подобных сайтов. Каталог такой библиотеки подключается из файла INPX, после чего книги можно искать и просматривать локально, загружая с сервера только действительно нужные.
Книги могут храниться в формате FB2 (отдельные файлы или ZIP-архивы), FBD и любых других форматах; метаданные коллекции хранятся в базе SQLite.
Эта ветка продолжает оригинальный проект OleksiyPenkov/MyHomeLib, сохраняя совместимость с его форматами коллекций. Русский текст является основным: новые изменения из оригинального репозитория переносятся с переводом пользовательского интерфейса на русский и без возврата национальной полосы на заставку.
- Последняя стабильная русская сборка:
2.7.0_pre2.01. - Актуальный предварительный выпуск с поддержкой FLibrary:
2.7.0_pre2.02. Обе сборки2.7.0.1067проверены владельцем: обычные INPX снова импортируются, комплектные читалки открывают поддерживаемые форматы, а большой список книг верхнего жанра загружается только по кнопке «Показать». - Реализованы совместимость с компактной раздачей FLibrary, чтение 7z, восстановление вынесенных изображений и полноценная поддержка нескольких серий у одной книги.
- Обычные коллекции INPX/ZIP остаются основным совместимым форматом и не должны требовать миграции.
Подробная история решений, матрица проверок и очередь следующих задач находятся
в ROADMAP.md. Этот файл служит точкой продолжения разработки в
новом чате. Инструкция по получению готового exe — в
BUILDING.md.
Коллекции
- Несколько коллекций одновременно с мгновенным переключением между ними.
- Типы коллекций: локальная или сетевая, собственная или подключённая внешняя библиотека, FB2 или не-FB2.
- Мастер создания коллекции: пустая коллекция, построение из файла INPX или подключение существующего файла
.hlc2. - Обновление коллекции из сети и вручную, синхронизация папок и файлов, обслуживание базы данных.
- Копирование книг между FB2-коллекциями, экспорт коллекции в формат INPX.
Книги
- Импорт FB2 (отдельных файлов и ZIP-архивов), FBD и книг в других форматах; пакетный импорт из INPX, включая каталоги с контейнерами 7z.
- Мультисерийные каталоги INPX и metabib: одна книга может входить в несколько серий без дублирования файла. По умолчанию поиск показывает отдельную строку для каждой серии, как старые версии MyHomeLib; флажок «Без повторов по сериям» сворачивает их в один результат. При экспорте все связи сохраняются.
- Компактные раздачи FLibrary: чтение книг из 7z, возврат вынесенных обложек и иллюстраций, восстановление обычных FB2 и EPUB; JPEG XL автоматически преобразуется в JPEG/PNG для совместимости с читалками. Панель сведений извлекает только одну обложку, не пересобирая книгу целиком, и показывает обложки EPUB.
- Деревья просмотра по авторам, сериям и жанрам с алфавитными фильтрами для кириллицы и латиницы.
- Для больших коллекций вкладки книг заполняются при первом открытии, а не все сразу при запуске. В дереве жанров «Несортированное» находится внизу и не задерживает первый переход к обычному жанру. Верхние группы вроде «Фантастика» при выборе не раскрываются и не загружают огромный общий список: пользователь сам раскрывает нужные поджанры. Компактная кнопка «Показать» рядом с названием выбранной верхней группы позволяет явно загрузить книги этой группы и всех её поджанров. Поведение одинаково для обычных INPX-коллекций и FLibrary.
- Поиск по автору, названию, серии, жанру, ключевым словам, аннотации, имени файла, дате добавления, языку и оценке библиотеки — с условиями вида
%текст%,="точное значение",<,>,<>,OR— и сохранением наборов условий в пресеты. - Группы и избранное, рейтинг, прогресс чтения и рецензии; экспорт и импорт этих пользовательских данных отдельно от каталога с привязкой по LibID.
- Загрузка книг из онлайн-библиотеки, чтение во внешних программах в зависимости от типа файла.
- Отправка книг на устройство с конвертацией: fb2mobi, fb2epub, fb2lrf, fb2pdf; шаблоны имён файлов и подпапок.
- Пользовательские сценарии после отправки на устройство с подстановками
%DEST%,%TMP%,%FILENAME%и другими. - Редактирование описаний книг и авторов, экспорт списка книг в HTML.
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 онлайн-библиотеки.
- Просматривайте деревья авторов, серий и жанров, ищите книги на вкладке «Поиск», открывайте их в своей программе для чтения или отправляйте на устройство.
Подробнее — во встроенной справке.
FLibrary — отдельный свободный каталогизатор электронных книг. Он также дал имя компактному способу упаковки больших локальных коллекций Флибусты/LibRusEc, совместимость с которым добавлена в MyHomeLib. Сама библиотека книг в MyHomeLib не входит.
Файлы книг и каталог скачиваются отдельно у распространителя коллекции —
обычно это торрент-раздача с корневой папкой
fb2.flibusta.lib.rus.ec.7z. Ориентиры правильной раздачи: файл каталога
fb2.flibusta.lib.rus.ec.7z.inpx, корневые контейнеры книг *.7z и папки
covers/images. Обычная раздача Флибусты для старых версий MyHomeLib тоже
поддерживается: это flibusta_all_local-ГГГГ-ММ-ДД.inpx и набор архивов
fb2-*.zip/usr-*.zip. Получать следует только материалы, которые разрешено
скачивать в вашей юрисдикции; проект MyHomeLib не размещает книги и торренты.
Компактная раздача экономит место необычной структурой: тексты находятся в
корневых архивах 7z, а изображения — отдельно в папках covers и images.
MyHomeLib распознаёт эту структуру автоматически.
При создании коллекции выберите находящийся в корне раздачи файл
fb2.flibusta.lib.rus.ec.7z.inpx и саму корневую папку раздачи. Обычные INPX
с ZIP-архивами продолжают импортироваться по-старому. Для INPX без явно
записанного имени контейнера программа выбирает существующий одноимённый 7z,
а при его отсутствии — ZIP.
Сам формат INPX содержит только одно поле серии в строке. Поэтому FLibrary записывает одну физическую книгу несколько раз — по строке для каждой серии. Это штатный способ передать мультисерийность, а не несколько копий файла. MyHomeLib объединяет такие строки в одну физическую запись и сохраняет все связи с сериями. По умолчанию на вкладке «Поиск» эта книга показывается по одной строке для каждой серии — так же, как в прежних версиях программы. Чтобы убрать повторяющиеся строки, включите под полем «Название» флажок «Без повторов по сериям». Файл при этом всегда остаётся один, меняется только отображение. Например, в INPX от 1 сентября 2026 года 819 029 строк описывают 680 413 физических книг; остальные 138 616 строк передают дополнительные серии.
Файл .hlc2 — это отдельный SQLite-каталог с названиями книг и метаданными,
а 7z/ZIP — физическое хранилище текстов. Уже актуальный каталог можно просто
перенаправить на новую корневую папку: для совпадающих записей программа сама
подхватит 7z вместо прежнего имени ZIP. Но старый каталог от этого не получит
новые книги и исправленные метаданные. Чтобы применить новый выпуск INPX,
обновите коллекцию из этого INPX либо создайте коллекцию заново.
Совпадающая дата в именах двух каталогов не гарантирует одинаковый состав:
например, отдельная Flibusta и объединённая Flibusta & LibRusEc являются
разными коллекциями даже при одной дате. В таком случае безопаснее создать
новую коллекцию, не заменяя существующую базу .hlc2.
При открытии или выгрузке книги MyHomeLib извлекает текст и возвращает внутрь
FB2/EPUB соответствующие обложку и иллюстрации. В компактной раздаче часть
картинок хранится в JPEG XL (.jxl): он хорошо экономит место, но многие
читалки и электронные книги его не понимают. Поэтому MyHomeLib заранее
преобразует такие картинки в обычный JPEG или PNG и собирает стандартный файл
книги. PocketBook, AlReader, SumatraPDF и другая внешняя читалка получают уже
готовую книгу и не обязаны поддерживать JPEG XL. Если папки с картинками не
скачаны либо соответствующей картинки нет, текст всё равно открывается, только
без отсутствующих изображений.
Некоторые EPUB в этой раздаче сами являются вложенными 7z-архивами, хотя имя
книги оканчивается на .epub. Программа распознаёт их по содержимому, собирает
стандартный ZIP-EPUB, исправляет различия регистра в путях изображений и
проверенно открывает результат в обычной программе чтения.
Solid-блок такого внутреннего 7z распаковывается одним проходом, а уже сжатые
JPEG/PNG не сжимаются повторно. Это устраняет десятки повторных запусков 7-Zip
при каждом открытии или отправке EPUB на устройство.
Для этой функции рядом с программой нужны небольшие вспомогательные файлы
tools\7zip\7za.exe и tools\jpeg-xl\djxl.exe. Они включаются в готовую
поставку. Сценарий их проверенной загрузки для самостоятельной сборки описан в
BUILDING.md. Декодер JPEG XL выпускается для x64, поэтому
работа с такими изображениями требует 64-разрядной Windows даже при запуске
32-разрядной MyHomeLib.
В переносимую поставку входит папка Readers с двумя внешними программами.
AlReader используется для FB2/FBD, DOC/DOCX, RTF, TXT и HTML. Свободная
SumatraPDF используется для PDF, DjVu,
EPUB, MOBI/Kindle, CHM, XPS, комиксов и распространённых графических форматов.
Обычные ZIP/RAR/7z/TAR намеренно открываются через файловые ассоциации Windows:
это могут быть произвольные архивы, а не поддерживаемые SumatraPDF комиксы.
MyHomeLib при первом запуске заполняет соответствия автоматически;
пользовательские пути к другим читалкам не перезаписываются.
Если файл комплектной читалки удалён, сообщение об ошибке показывает полный
путь, по которому программа ожидала его найти.
Полная справка из 55 страниц поставляется на русском, украинском, английском и болгарском языках. Клавиша F1 контекстно-зависима: она открывает в браузере страницу, соответствующую активному окну или вкладке. Исходные файлы русской справки находятся в Program/Help/, index.html — оглавление и точка входа. Украинская версия сохранена в Program/Help/uk/.
Пошаговая инструкция для пользователей без опыта работы с Delphi, включая создание готовой папки с exe, приведена в файле BUILDING.md.
Необходимое ПО:
- Delphi 13 (RAD Studio 37.0);
- VirtualTreeView, устанавливается через GetIt;
- SQLite нужной разрядности; сценарий проверки описан в
BUILDING.md; - Node.js — необязательно, используется при обновлении встроенных языковых ресурсов.
Компоненты Konopka/Raize больше не требуются. В Trial-версии командная сборка
заблокирована лицензией: DLL значков, основную программу и MCP-сервер собирают
по отдельности в IDE. Полная версия Delphi позволяет выполнить те же три шага
через MSBuild без запуска тяжёлой IDE. Точные проекты, порядок и команды
приведены в BUILDING.md.
После компиляции запустите scripts\prepare-flibrary-runtime.ps1: он скачает
официальные 7-Zip и JPEG XL, проверит закреплённые контрольные суммы и положит
только необходимые файлы рядом с программой. Затем
scripts\prepare-readers.ps1 подготовит папку Readers и загрузит SumatraPDF
нужной разрядности. После этого prepare-runtime.ps1 проверит разрядность и
полноту всей поставки.
Program/
MyHomeLib.dpr основной проект
MHL.groupproj групповой проект: компоненты, иконки, программа и MCP-сервер
Forms/ формы VCL; Forms/Editors/ — диалоги редактирования
DataModules/ глобальные модули данных
Units/ ядро: глобальные типы, настройки, интерфейсы, вспомогательный код
DAO/ слой доступа к данным; DAO/SQLite/ — реализация для SQLite
ImportImpl/ импорт книг FB2, FBD и INPX, формы прогресса
DwnldImpl/ загрузка книг
UtilsImpl/ синхронизация, экспорт на устройство, обновление коллекции
Wizards/ мастер создания коллекции
Help/ русская справка; Help/uk/, Help/en/, Help/bg/ — переводы
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 Алексей Пеньков.
Программирование: Алексей Пеньков, Николай Рыманов, eg.
Развитие этой версии: Dicur3x — новые возможности, совместимость, улучшения и исправления.
Тестирование: eg, Evgeniy_V, albert, AlbanSpy, kaznelson, Olega.
Сообщения об ошибках и предложения принимаются на странице Issues.