Často může být zdlouhavé přidávat do souborů PDF správné metainformace. Já sám si stahované PDF soubory z mého předplaceného účtu Heise IX třídím do své soukromé knihovny Calibre.
Protože se tento proces opakuje každý měsíc, vymyslel jsem následující nastavení. Do knihovny přetahuji pouze nové soubory PDF.
Vytvořil jsem kontejner, který získává mou knihovnu Calibre jako svazek (-v …:/books). Do tohoto kontejneru jsem nainstaloval následující balíčky:
$ apt-get update && apt-get install -y xpdf calibre
#!/bin/bash
export LANG=C.UTF-8
mkdir /tmp/worker1/
find /books/ -type f -iname '*.pdf' -newermt 20201201 -print0 |
while IFS= read -r -d '' line; do
calibreID=$(echo "$line" | sed -r 's/.*\(([0-9]+)\).*/\1/g')
echo "bearbeite $clearName"
echo "id $calibreID";
cp "$line" /tmp/worker1/test.pdf
echo "ocr "
pdftotext -f 0 -l 5 /tmp/worker1/test.pdf /tmp/worker1/tmp.txt
echo "text aufbereitung"
cat /tmp/worker1/tmp.txt | grep -i -F -w -v -f /books/blacklist.txt | sed -r s/[^a-zA-ZäöüÄÖÜ]+//g | grep -iE '[A-Za-z]{2,212}' | sed ':begin;$!N;s/\n/,/;tbegin' > /tmp/worker1/final.txt
calibredb set_metadata --with-library /books/ --field cover:"cover.jpg" --field tags:"$(cat /tmp/worker1/final.txt) " --field series:"Heise IX" --field languages:"Deutsch" --field authors:"Heise Verkag" $calibreID
rm /tmp/worker1/*
done
Příkazem “calibredb set_metadata” nastavím vše ostatní jako značky. Výsledek vypadá takto:
Skript je k dispozici také na Githubu: https://github.com/ChristianKnedel/heise-ix-reader-for-calibre .