PDF’lere doğru meta bilgileri eklemek genellikle sıkıcı olabilir. Heise IX abonelik hesabımdan indirdiğim PDF’leri özel Calibre kütüphanemde kendim sıralıyorum.
Bu süreç her ay tekrarlandığı için aşağıdaki düzeni oluşturdum. Yalnızca yeni PDF’lerimi kitaplığıma sürüklüyorum.
Calibre kitaplığımı bir birim olarak alan bir kapsayıcı oluşturdum (-v …:/books). Bu konteynerde aşağıdaki paketleri kurdum:
$ 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
“calibredb set_metadata” komutu ile diğer her şeyi etiket olarak ayarladım. Sonuç şöyle görünür:
Komut dosyası Github’da da mevcuttur: https://github.com/ChristianKnedel/heise-ix-reader-for-calibre .