Headless CalibreServer einrichten
Posted by quark007 | Posted in Uncategorized | Posted on 31-12-2015-05-2008
0
In Zeiten von eBook-Readern und einfach zugänglichen eBooks, habe ich mich dazu entschieden auch diese zentral auf meinem Server zu verwalten. Es gibt zwar ein Calibre-Plugin für OpenMediaVault, ich wollte jedoch das einlesen neuer Bücher in die DB automatisieren. Über eine komplette Installation im System war das für mich einfacher. Dabei habe ich mit an den folgenden beiden Anleitungen entlang gehangelt:
Installation und Benutzung detailiert beschrieben (jedoch mit xvfb)
Damit war es möglich Calibre als Service zu starten und somit auch den Webserver mit Zugriff auf die eBooks zu erreichen. Anschließend ging es noch darum, dass ebooks in einem definierten Ordner automatisch eingelesen und in das für den Paperwhite lesbare mobi-Format zu konvertieren. Mit Hilfe einiger Anleitungen ([1] [2] [3] kam ich schließlich zu folgendem Script:
#!/bin/bash count=0 IFS=' ' #rename 's/[^a-zA-Z0-9]//' *.pdf for datei in `find /media/[HDDID]/eBooks/_NewBooks -name "*.epub" -print 2>/dev/null` #find /media/[HDDID]/eBooks/_NewBooks/. -name "*.epub" -print0 | while IFS= read -r -d '' file; do if [ -f ${datei%.epub}.mobi ]; then echo $datei" bereits convertiert" else echo "Die Datei $datei wird konvertiert..." ebook-convert "$datei" "${datei%.epub}.mobi" >/dev/null 2>&1 count=$((count+1)) fi done if [ $count -gt 0 ] then IFS='' echo "Neue Bücher werden in die Bibliothek geladen" calibredb add /media/[HDDID]/eBooks/_NewBooks -r --with-library /media/957d350a-cf86-496a-bf57-cc4543527c5e/Public/eBooks/_calibre_library >/de$ sleep 1 rm /media/[HDDID]/eBooks/_NewBooks/* >/dev/null 2>&1 else echo "keine neuen Dateien gefunden" fi
Das Script ist sicher noch nicht perfekt, da es erst alle Bücher konvertiert und anschließend erst in die Datenbank einliest. Dieses Script habe ich als calibre-converter.sh im Userverzeichnis abgelegt und über einen Cronjob alle 5 Minuten aufgerufen.
*/5 * * * * sh /root/calibre-converter.sh
Aktuell bin ich noch dabei zu versuchen ein Plugin in meinen Headless Calibre so zu integrieren, dass ich mir den vorhergehenden Schritt vor dem Integrieren in die Datenbank ersparen kann. Falls ich zu einem Ergebnis komme, gibts hier weitere Infos dazu.
Weitere infos:
AutoStart mit systemd