fix_tolino_bool/README.md
2024-07-29 08:56:58 +02:00

48 lines
2.7 KiB
Markdown

# README
Falls jemand seinen Tolino Shine 5 / Shine Color / Vision Color (also die 2024er Generation) mit Calibre Version **bis einschließlich 7.15** verwendet (und im Treiber die Option *Neuere Firmware zu unterstützen versuchen* aktiviert) hat, wurden evtl. inkompatible Einträge in die Datenbank erstellt. Dieses Tool versucht, diese Einträge zu fixen.
**Warnung:** Auch wenn das Programm bei mir anstandslos macht was es soll, ist ein Backup der Datenbankdatei (*KoboReader.sqlite* im womöglich versteckten Verzeichnis *.kobo*) angeraten. Die Verwendung von *fix_tolino_bool.py* geschieht auf eigene Gefahr.
## Hintergrund
Die Kobogeräte mit der Firmwareversion 4.x verwenden boolsche Einträge in der Datenbank die Werte **"true"** und **"false"** (als String/Zeichenkette). Die Tolinogeräte mit der Firmwareversion 5.x verwenden hierfür jedoch die Werte **1** und **0**, wie es von SQLite3 (der Datenbank, die hier in Einsatz kommt) vorgesehen ist.
Wurde *Neuere Firmware zu unterstützen versuchen* aktiviert, wurden etwa beim Erstellen von neuen Sammlungen eben "true" bzw. "false" anstelle von 1 und 0 für diese Eintäge verwendet, was zu Problemen führen kann.
Hier ein Beispiel, wie so ein falscher Eintrag aussehen kann:
![](images/tolino_vs_kobo_bool.png)
## Verwendung
*fix_tolino_bool.py* versucht also, die entsprechenden Datenbankeinträge anzupassen. Hierfür muss man dem Tool lediglich den Pfad zum eingehängten Tolinogerät mitgeben. Zum Ausprobieren kann die Option `--dry-run` bzw. `-n` verwendet werden, was keinerlei Änderungen durchführt, sondern nur Informationen ausgibt.
Unter Linux könnte der Aufruf also wie folgt aussehen:
```
python fix_tolino_bool.py --dry-run /run/media/myuser/eReader
```
Wobei der Pfad oder zumindest *myuser* natürlich noch angepasst werden muss.
Und unter Windows sähe das so aus:
```
python fix_tolino_bool.py --dry-run E:
```
Hier wird das Laufwerk E als Einhängepunkt des Tolinos angenommen.
Um die Änderungen tatsächlich durchzuführen, ruft man das Ganze ohne die Option --dry-run auf.
`python fix_tolino_bool.py -h` informiert ebenfalls über die verfügbaren Optionen:
```
usage: fix_tolino_bool.py [-h] [-n] mount_point
positional arguments:
mount_point Directory/Mount point of your Tolino device
options:
-h, --help show this help message and exit
-n, --dry-run Don't change database; show information only.
```
## Systemvoraussetzungen
Es wird lediglich Python 3 vorausgesetzt. Die meisten Linuxdistributionen installieren Python standardmäßig. Ansonsten (Windows?) muss es installiert werden (https://www.python.org).
Ich habe das Tool unter Linux (und flüchtig unter Windows) getestet. Ich habe kein MacOS, aber damit sollte es eigentlich auch funktionieren.