Раскладывание книг по полкам
Goto page 1, 2  Next
 
Libroom Forum IndexKobo
AuthorMessage

AxaRu
Искушенный участник форума

Искушенный участник форума



Joined: 26 Dec 2010
Posts: 58



Posted: 30.08.2016 18:31    

Version 0.92 build 2016-09-19

Наверное самая глупая фишка в ридерах от Kobo - это так называемые книжные полки.
Единственное преимущество перед хранением книг в директориях - возможность поместить книгу сразу в две и более полок. Довольно сомнительная возможность.

Я не использую Calibre и просто закидываю книги в ридер. Иногда раскладывал по полкам. Но после того, как полки несколько раз слетели, перестал это делать.
Как-то мне ночью не спалось и я написал скрип на python, который раскладывает книги по полкам.

Как это работает :

В основной памяти и на карточке я создал корневую директорию /Books.
Внутри - отдельные директории для серий, в которые я копирую книги.



Потом запускаю скрипт.

Скрипт сначала очищает две таблицы: Shelf и ShelfContent.
Потом сканирует папку Books и записывает названия вложенных папок в Shelf и собственно книги в ShelfContent.

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

Но это мои догадки.
Мне это было делать лениво и я по простому очищаю указанные таблицы.
Извините, если что не так.

Вложенные директории не проверял. К тому же, считаю смысла в них нет. Название полки не поместится на экран ридера.

Собственно и все.


Easy way
:

Можно просто скачать версию программы соответствующую Вашей операционной системе:
Linux 64 bit
Windows 64 bit

Просто подсоединяете Kobo и запустите программу. Она сама создаст полки, в соответствии с каталогами внутри /Books и разместит в них книги.


Способ посложнее

Кому интересно изменить скрипт, нужно устанавливать интерпретатор Python.


Установка Python

Для работы скрипта необходимо, что бы на вашем компьютере был установлен Python 3.

Если у вас Ubuntu :

...то Python 3.5 уже скорее всего стоит.
Если нет, то выполните команду:

Code:
sudo add-apt-repository ppa:fkrull/deadsnakes
sudo apt-get update
sudo apt-get install python3.5

Если у вас Windows :

...то установите Python 3.5.2 - 2016-06-27 отсюда
https://www.python.org/downloads/windows/


Как использовать

1. Сохраните скрипт в файл KoboShelf.py и дайте ему права на исполнение:
Code:
chmod +x KoboShelf.py

2. В каталоге .kobo в основной памяти KOBOeReader сделайте резервную копию базы данных.
Code:
$ cp KoboReader.sqlite KoboReader.sqlite.origin

3. Создайте папку /Books в основной памяти Kobo и на SD карточке, в ней папки с сериями, в них скопируйте ваши книги.

4. Запустите из терминала вышеуказанный скрипт.
Code:
./KoboShelf.py

На экране будет нечто похожее на :

Code:
BookShelf: Айзек Азимов. Академия
   file:///mnt/sd/Books/Айзек Азимов. Академия/Азимов 10 Триумф Академии.ePub
   file:///mnt/sd/Books/Айзек Азимов. Академия/Азимов 03 Академия.ePub
   file:///mnt/sd/Books/Айзек Азимов. Академия/Азимов 02 На пути к Академии.ePub
   file:///mnt/sd/Books/Айзек Азимов. Академия/Азимов 01 Прелюдия к Академии.ePub
   file:///mnt/sd/Books/Айзек Азимов. Академия/Азимов - Конец вечности.epub
   file:///mnt/sd/Books/Айзек Азимов. Академия/Азимов 09 Академия и хаос.ePub

. . . . . . . .
. . . . . . . .

BookShelf: Эндер Виггинс
   file:///mnt/sd/Books/Эндер Виггинс/Кард 8 Театр Теней.ePub
   file:///mnt/sd/Books/Эндер Виггинс/Кард 7 Тень Гегемона.ePub
   file:///mnt/sd/Books/Эндер Виггинс/Кард 1 Игра Эндера.ePub
   file:///mnt/sd/Books/Эндер Виггинс/Кард 5 Дети Разума.ePub
   file:///mnt/sd/Books/Эндер Виггинс/Кард 2 Говорящий от имени мертвых (Голос тех, кого нет).ePub
   file:///mnt/sd/Books/Эндер Виггинс/Кард 4 Ксеноцид.ePub
   file:///mnt/sd/Books/Эндер Виггинс/Кард 3 Советник по инвестициям.ePub
   file:///mnt/sd/Books/Эндер Виггинс/Кард 6 Тень Эндера.ePub

Process finished with exit code 0

5. Безопасно извлеките ридер.


Командная строка

В Linux и в Windows скрипт автоматически определяет точки монтирования Kobo и SD карты. Поэтому для создания полок никакие аргументы в команде запуска не нужны.

Аргументы командной строки :

Code:
./KoboShelf.py -h
usage: KoboShelf.py [-h] [--onboard ONBOARD] [--sd SD] [--onboard_sw {on,off}]
                    [--sd_sw {on,off}] [-s] [-v]

optional arguments:
  -h, --help            show this help message and exit
  --onboard ONBOARD     eReaders mount point
  --sd SD               SD cards mount point
  --onboard_sw {on,off}
                        Enabling/disabling adding book from eReader onboard
                        memory. Enabled by default
  --sd_sw {on,off}      Enabling/disabling adding book from SD card memory.
                        Enabled if SD card present
  -s, --showsettings    Display settings and exit. Reader must be connected.
  -v, --version         show program's version number and exit


Какие могут быть траблы

Скрипт в экспериментальной стадии, поэтому возможно все.
Если по какой то причине испортилась база данных KoboReader.sqlite, то восстанавливаем ее из сохраненной копии.
Как всегда, все вы выполняете на свой страх и риск. Я ни за что не отвечаю.

В скрипте меняйте, что хотите, хоть автора, хоть код. Razz


Исходный код в Git-репозитории:
https://github.com/Axa-Ru/KoboShelfes/blob/master/KoboShelf.py

Проверено
С Kobo Glo, Kobo H2O, Kobo Aura One под Ubuntu, Windows 7. У меня рабоает без нареканий.
У dnlтребуется перезагрузка.

Всем удачи.


Last edited by AxaRu on 19.03.2017 17:08; edited 42 times in total
 
View user's profile ^

kaznelson
Член клуба The eBook

Член клуба The eBook



Joined: 08 Jun 2007
Posts: 4642


Location: Москва

Posted: 31.08.2016 09:50    

Автоматическое создание книжных полок:
MobileRead Forums - [Aura H2O] AutoShelf

Полки обновляются при подключении/отключении устройства по USB, причём только при наличии изменений со времени предыдущего обновления. Если книг много, то создание полок занимает несколько минут (без визуального отображения процесса). К сожалению, полки не отображаются мгновенно, а требуют ещё одного цикла подключения/отключения (либо перезагрузку).

(c) frostschutz
_________________
Kobo Glo HD, Kobo Aura H2O, Kindle Paperwhite 2
 
View user's profile ^

AxaRu
Искушенный участник форума

Искушенный участник форума



Joined: 26 Dec 2010
Posts: 58



Posted: 31.08.2016 11:46    

О как. А я поискал и не нашел.
Тогда в топку.
 
View user's profile ^

kaznelson
Член клуба The eBook

Член клуба The eBook



Joined: 08 Jun 2007
Posts: 4642


Location: Москва

Posted: 31.08.2016 13:39    

AxaRu
Ну почему сразу "в топку"? Кому нравятся внутренние скрипты, а кому и внешние...
_________________
Kobo Glo HD, Kobo Aura H2O, Kindle Paperwhite 2
 
View user's profile ^

AndreyM2
Постоянный участник форума

Постоянный участник форума



Joined: 27 Jul 2016
Posts: 156



Posted: 02.09.2016 20:25    

kaznelson wrote:
Автоматическое создание книжных полок:
MobileRead Forums - [Aura H2O] AutoShelf
Не работает на HD. Думал, я такой рукожоп, ан нет, полистал тему, там тоже самое пишут. Проверьте, кому не сложно.
 
View user's profile ^

AxaRu
Искушенный участник форума

Искушенный участник форума



Joined: 26 Dec 2010
Posts: 58



Posted: 02.09.2016 22:52    

Ну тогда попробуйте мой скрипт.
 
View user's profile ^

AxaRu
Искушенный участник форума

Искушенный участник форума



Joined: 26 Dec 2010
Posts: 58



Posted: 04.09.2016 12:44    

Добавил:
- обработку аргументов командной строки.
- автоматическое определение монтирования под linux
- поддержку windows (пока не проверял)

Обработка книг из основной памяти пока не сделана.

Проверил на Kobo H2O v 3.19.5761

Стабильная версия в шапке.
Как всегда последняя версия на githab
 
View user's profile ^

AxaRu
Искушенный участник форума

Искушенный участник форума



Joined: 26 Dec 2010
Posts: 58



Posted: 06.09.2016 10:16    

Добавил поддержку Windows.
Скрипт автоматически определяет смонтированное устройство и SD карту и добавляет из них книги и полки.

MacOS не проверял, но должно работать. В нем пока не поддерживается автоматическое определение смонтированного ридера.

Протестировал с Kobo Glo и Kobo H2O
:

В принципе, я сделал все. Если есть какие предложения по развитию, то готов обсудить.
 
View user's profile ^

Gul
Искушенный участник форума

Искушенный участник форума



Joined: 30 Jul 2014
Posts: 41



Posted: 07.09.2016 02:32    

Есть несколько вопросов/пожеланий...
0. "Как использовать" если Win10 ?
1. Правильно я понял, что названия папок в /books - это названия полок, а файлы внутри - это книги и вложенные папки с файлами невозможны?
2а. Можно сделать запуск "для дураков", т.е. вывести кнопку запуска скрипта на экран Kobo?
2б. Можно интегрировать запуск скриптов резервного копирования базы данных и создания полок в KSM8 http://www.mobileread.com/forums/showthread.php?t=266821 ?
_________________
KPW3(Wi-Fi JPN 5.8.7 jail vlasovsoft 2016.03)
H2O(3.19.5761 Metazoa patch KSM8 vlasovsoft 2016.03)
 
View user's profile ^

AxaRu
Искушенный участник форума

Искушенный участник форума



Joined: 26 Dec 2010
Posts: 58



Posted: 07.09.2016 12:25    

0. Честно скажу, не знаю. У меня нет Windows 10. На днях поставлю на виртулке и отпишу.
1. Да, названия папок внутри /Books (с большой буквы) - это названия полок.

Вложенные папки допускаются. Названием полки будет имя каталога в котором присутствуют книги.
:


Например:
Папка "/Book/Звягинцев/Одисей покидает Итаку"
Будет создано 2 полки: "Звягинцев" и "Одисей покидает Итаку", если в каждой из них будут книги.
Code:
BookShelf: Звягинцев
   file:///mnt/sd/Books/Звягинцев/Звягинцев - Уик-энд на берегу.ePub
   file:///mnt/sd/Books/Звягинцев/Звягинцев - Хотеть - значит мочь.ePub
BookShelf: Одисей подкидает Итаку
   file:///mnt/sd/Books/Звягинцев/Одисей подкидает Итаку/Звягинцев 09 Скорпион в янтаре. Том 2. Криптократы.ePub
   file:///mnt/sd/Books/Звягинцев/Одисей подкидает Итаку/Звягинцев 02 Одиссей покидает Итаку.ePub


2а. Нет. нельзя. Этот скрипт запускается на компьютере.
2б. Нет, нельзя.
 
View user's profile ^

AxaRu
Искушенный участник форума

Искушенный участник форума



Joined: 26 Dec 2010
Posts: 58



Posted: 19.09.2016 15:35    

Исправил ошибку, которая иногда возникала в Windows из-за неверного определения unicode.
 
View user's profile ^

dnl
Новенький участник форума

Новенький участник форума



Joined: 22 Sep 2016
Posts: 7



Posted: 22.09.2016 10:47    

В 10-й винде, к сожалению, не работает.
В Linux Mint заработал, спасибо за ваш труд.
 
View user's profile ^

AxaRu
Искушенный участник форума

Искушенный участник форума



Joined: 26 Dec 2010
Posts: 58



Posted: 25.09.2016 16:18    

dnl wrote:
В 10-й винде, к сожалению, не работает.

Какую диагностику выдает?
 
View user's profile ^

dnl
Новенький участник форума

Новенький участник форума



Joined: 22 Sep 2016
Posts: 7



Posted: 26.09.2016 09:19    

Скрипт отрабатывает, вроде бы нормально, но полки не создаются.
Сегодня ещё раз попробую и пришлю вам отчёт.
 
View user's profile ^

AxaRu
Искушенный участник форума

Искушенный участник форума



Joined: 26 Dec 2010
Posts: 58



Posted: 27.09.2016 01:26    

Буду признателен.
 
View user's profile ^

dnl
Новенький участник форума

Новенький участник форума



Joined: 22 Sep 2016
Posts: 7



Posted: 28.09.2016 17:22    

Прошу прощения, ввёл в заблуждение вас. Просто полки не появляются без перезагрузки книжки. Всё работает. Спасибо вам.
 
View user's profile ^

AxaRu
Искушенный участник форума

Искушенный участник форума



Joined: 26 Dec 2010
Posts: 58



Posted: 28.09.2016 21:42    

Ничего, бывает. Very Happy
Но вообще то полки должны появляться сразу.
Если не трудно, сообщите модель книжки, версию firmware.
Запускаете скрипт или сборку exe?
 
View user's profile ^

dnl
Новенький участник форума

Новенький участник форума



Joined: 22 Sep 2016
Posts: 7



Posted: 29.09.2016 00:10    

Kobo Aura H20
Software version 3.19.5761
Python 3.5.2
Запускаю скрипт.
 
View user's profile ^

kaznelson
Член клуба The eBook

Член клуба The eBook



Joined: 08 Jun 2007
Posts: 4642


Location: Москва

Posted: 29.09.2016 10:23    

dnl wrote:
Запускаю скрипт

И?..
_________________
Kobo Glo HD, Kobo Aura H2O, Kindle Paperwhite 2
 
View user's profile ^

dnl
Новенький участник форума

Новенький участник форума



Joined: 22 Sep 2016
Posts: 7



Posted: 29.09.2016 10:31    

И, отрабатывает нормально. Но, полки могу увидеть только после перезагрузки книжки. Кстати, тоже самое и в Linux Mint.
 
View user's profile ^
Libroom Forum IndexKoboAll times are GMT + 4 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

© Libroom, 2021