Программа "Библиотекарь" / Круподёров Сергей

Программа "Библиотекарь"

Автор: Круподёров Сергей

На сайте есть много чего для писателей, но для читателей только книги. Что, конечно, тоже не мало, но почему бы это дело не исправить?

Исправляю.

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

Назначение программы по задумке: небольшая программа для ведения персональной библиотеки электронных книг в формате текстовых файлов, с возможностью использовать скрипты, делать комментарии, ставить метки, сравнивать разные версии одной книги для вычислении процента прочтения, хранить изображения связанные с книгой, серией или автором, просматривать встроенные изображения в fb2, обновлять тексты по ссылке одним кликом, возможность работы на нескольких операционных системах(минимум Windows и Linux), ну и главная - возможность запастись книгами на компьютере с интернетом и читать даже там и тогда, когда его нет.

Программа, так как используется sqlite3, может "подключатся" к библиотекам в локальных папках, в сетевых - иногда тоже, но каков будет результат использования я ручаться не буду. Это просто ограничения вышеозначенной библиотеки. 

Библиотека с точки зрения программы - это любая папка в которой была инициализирована библиотека (создан файл lib.sdb, в нём хранятся все связанные с книгами данные). Текстовые же файлы и изображения хранятся в 7z- архивах рядом с файлом библиотеки. Саму папку можно свободно перемещать, просто придется в программе каждый раз подключаться к новому месту (ключом библиотеке является полный путь к её папке).

Параметры программы и её кэш хранится для каждого пользователя в ОС отдельно. В Windows - в реестре, в Linux - в папке home пользователя. Если кто воспользовался программой не на своём компьютере, то лучше все эти записи почистить, в том числе и в целях безопасности (особенно, если было подключение к google с логином и паролем). Нужная кнопочка есть в окне параметров, а так же вся информация в справке.

В настройках главные два пункта: ник читателя и папка куда складывать файлы для чтения. Для каждого уникального ника ведется статистика чтения и к нему привязывается авторство комментариев. Для отдельных комментариев, правда, можно ник и поменять. Например: автор где то чего-то написал помимо книги и чтобы не искать потом тот комментарий, копируешь его себе в библиотеку и меняешь ник "комментатора" на имя автора; теперь комментарий никуда не пропадёт. Ник можно поменять временно изменив его в параметрах и нажав кнопку применить, после нового запуска программы будет взят сохранённый ник.

Собственно саму программу, как и библиотеку, можно переносить на флешке тоже, рядом с библиотекой. Лучше подходит windows версия (под linux она под wine спокойно запустится). Linux требует установленного Qt5 в системе(ну и бинарной совместимости в придачу).

Основные поддерживаемые форматы: fb2 и html. Была мысль включить и fb3(хотя его считай что нет как используемого) и там odt, docx, но была сочтена геморройной и была отброшена. fb2 добавляются без обработки, хотя функциональная возможность этого сохраняется, а html наоборот преобразуются с удалением "лишней" для книги информации. fb2-файлы добавляются с локальных папок компьютера(сетевых тоже можно), т.е. они должны быть заранее скачаны с сайта источника и различаются по id в document-info.

Для html файлов существуют отдельные скрипты для обновления, разбора файла и формирования файла для чтения. Для каждого отдельного файла можно еще установить хуки производящие дополнительную обработку. В наличии есть скрипты обновления:

  • notupdate - ссылка в буфере обмена не распознана как известная, ничего не делает
  • samlib - скачивает и добавляет в библиотеку тексты с samlib.ru
  • samlib_images - скачивает и добавляет изображения в библиотеку к соответствующему тексту.
  • fikbooknet - скачивает и добавляет в библиотеку тексты с ficbook.net
  • authortoday_images - скачивает и добавляет изображения с этого сайта к соответствующему тексту ( с тем же fb2-id или к серии этого текста или к автору, смотря что найдет в библиотеке). Может добавить и изображение отдельно если скопирована ссылка на него.
  • plotnikovs - этот скрипт при необходимости логинится в gmail.com после чего по document-id стаскивает документ с GoogleDrive в html формате. Правда тут уже нужно обязательно устанавливать хук для обработки текста чтобы уточнить его описание, о чём упомяну ниже. Скрипт полезен для членов КПЧ угадайте кого с трёх раз.  Но в последнее время о существовании этого КПЧ автор вспоминает так "часто", что может я и вырежу как нибудь этот функционал.

[spoiler="Для КПЧ"]

После добавления текста с GoogleDrive ему необходимо добавить хук для разбора примерно такого вида:

this.parsed_text.title = "Метка зла"

this.parsed_text.series_nums["Темный"] = 1

this.parsed_text.series.push("Темный")

this.parsed_text.janres.push("Фэнтези")

this.parsed_text.description = "<p>Типа аннотация в html-формате. Ага!</p>"

В этом хуке можно менять всё о книге, включая и автора, а то по умолчанию подставляется известно кто. Так что если какой другой автор захочет предоставлять доступ к своему тексту подобным же образом для чтения, то рядом со ссылкой можно положить и готовый хук.

this.parsed_text.authors = ["Плагиатор Великий Неповторимый"]

Правда, после первого добавления всё это придётся менять ручками в соседней вкладке. Или просто написать скрипт который всё сделает за вас сам.

[/spoiler]

Тексты с данного сайта добавляются посредством fb2(недавно, по моей наводке, наконец сделали уникальные fb2-id для книг). Хотя можно написать и скрипт обновления книги по одному клику. Но тут желательно чтобы был добавлен API сайта для читателей, который по логину и паролю (не основному а указанному в полях настроек) будет логинится и получать файлы fb2 по ссылке книги или сообщение о том что книга защищена от скачивания. Как быть с ситуацией когда скачивание разрешено, но нужна подписка - не знаю. Можно отдавать если подписка есть или сообщать чтоб подписался. Собственно, отдельный пароль ИМХО тут и нужен, чтобы программа не проявляла своевольства в подписывании, отписывании, поставке/снятии лайков и прочих вещах, которые будут всегда происходить неожиданно, всех то вариантов в скрипте не предусмотришь. ИМХО лучше чтобы читатель делал это осознанно и сам.

Можно еще много чего написать и не написать про данную программу, но, пожалуй, не буду больше. Только упомяну что всё можно в ней сделать с помощью скриптов. Встроены скрипты JavaScript - всё о них есть в справке программы.

У кого есть желание пользоваться - пользуйтесь.

GoogleDrive папка с файлами для установки

+16
410

2 комментария, по

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

Янь Данко
#

Ух ты, круто! Вы проделали серьезную работу! На чем писали, коль не секрет? Хотя sqlite и JavaScript намекает на веб-технологии.

Сама где-то посеяла свою библиотеку на харде, к сожалению. Теперь многое храню в инете, ссылками либо в облаке.

 раскрыть ветвь  1
Круподёров Сергей автор
#

Серьёзную? В прочем, исходники по размеру больше чем среднестатистический роман.

Язык C++, скриптовый язык можно встроить почти куда угодно, поэтому ничего он не намекает. Библиотека Qt нативно уже имеет встроенным ECMAScript, что почти то же самое что JavaScript просто одна из его реализаций, синтаксис тот же.

Мне собственно программа понадобилась в том числе и затем, чтоб не  забывать: что читал, что - нет.

 раскрыть ветвь  0
Написать комментарий
75 2 1
Наверх Вниз