Domov › Diskusné Fóra › Pomoc: software › Zmenenie pdb suboru? › Odpoveď na: Zmenenie pdb suboru?
raul: ta, ale samo Callibre Ti do metadat ePubu neprida autora a nazov knihy na zaklade nazvu suboru :). Co je dolezite, ak chcete knihu vobec najst a stiahnut cez Callibre Content server (3 modre gulicky – zapnut to budete vediet). Bez spravnych metadat proste nejde najst kniha cez Stanza napr. (Get Books > Shared v Stanza najde vas Callibre server)
A robit to rucne na 3000+ knihach nie je prilis velka sranda ;)
Tu to je. Skript som neupravoval na vyhadzovanie okien pre nastavenie premennych (cesta k foldru s knihami, pripona formatu, napr. .pdb, vystupne kodovanie – nastavene na CP-1250 (Windows CE)). Vsetko je nakodovane natvrdo. Cesty si upravte sami podla klasickeho *nixoveho zapisu (je mozne zistit POSIX cestu hodenim foldra s knihami drag&drop do okna Terminalu). Dalej, knihy je nutne prehodit do jedneho foldra, prezeranie podpriecinkov som neriesil.
Natvrdo je tiez nastavene filtrovanie autora a nazvu knihy z nazvu suboru, ak neviete aspon ciastocne regulerne vyrazy, tak smola :D
Vzasade, metadata sa nastavuju nasledovne casti skriptu:
set theAuthor to (do shell script “echo ‘” & myFile & “‘” & ” | perl -pe ‘s/(.+?)-(.+)/$1/g’ | sed ‘s/_/ /g'”)
set theTitle to (do shell script “echo ‘” & myFile & “‘” & ” | perl -pe ‘s/(.+?)-(.+)(\\.pdb|\\.PDB)/$2/g’ | sed ‘s/_/ /g'”)
Prvu cast nie je nutne vysvetlovat “set theTitle/set theAuthor” nastavi premenne. Samotne vyhladanie retazca v nazve suboru sa deje v casti “perl -pe ‘s/(.+?)-(.+)/$1/g'”, to, co je v zatvorkach je vzdy 1. cast, pomlcka – a druha cast nazvu suboru. V pripade “perl -pe ‘s/(.+?)-(.+)/$1/g'” teda nastavime autora na prvu cast nazvu suboru (.+?) pred pomlckou – tym, ze z nazvu vyfiltrujeme prvu cast cez premennu $1. Ak mate v nazve suboru delenie napr. stylom AUTOR,(ciarka) (medzera)TITUL, tak namiesto (.+?)-(.+) date (.+?), (.+)
Snad je to trosku zrejmejsie :)
Je nutne v Callibre dat si nainstalovat nastroje pre prikazovy riadok (Callibre > Ozubene kolieska > Preferences > Advanced > Miscellanious > Install Command Line Tools).
VSETKO NIZSIE JE SKRIPT. Skopirovat, vlozit do AppleScript Editor, upravit na svoje potreby, spustit.
(*–––––––ZACIATOK SKRIPTU––––––––*)
set theFiles to every paragraph of (do shell script “ls ~/Desktop/knihy”)
repeat with i from 1 to (count theFiles)
set myFile to item i of theFiles as string
set convertedFile to (do shell script “echo ‘” & myFile & “‘” & ” | perl -pe ‘s/(\\.pdb|\\.PDB)/.epub/g'”)
set theAuthor to (do shell script “echo ‘” & myFile & “‘” & ” | perl -pe ‘s/(.+?)-(.+)/$1/g’ | sed ‘s/_/ /g'”)
set theTitle to (do shell script “echo ‘” & myFile & “‘” & ” | perl -pe ‘s/(.+?)-(.+)(\\.pdb|\\.PDB)/$2/g’ | sed ‘s/_/ /g'”)
try
do shell script “ebook-convert ‘/Users/zhujo/Desktop/knihy/” & myFile & “‘” & ” ‘/Users/zhujo/Desktop/knihy/” & convertedFile & “‘” & ” –input-encoding CP1250 –input-profile default –output-profile default –pretty-print –change-justification justify –smarten-punctuation –authors ” & “‘” & theAuthor & “‘” & ” –title ” & “‘” & theTitle & “‘” & ” && calibredb add -a ‘” & theAuthor & “‘” & ” -t ‘” & theTitle & “‘ ” & “‘/Users/zhujo/Desktop/knihy/” & convertedFile & “‘”
end try
end repeat
display dialog “Hotovo!”
(*–––––––KONIEC SKRIPTU––––––––*)