X-Git-Url: https://zdv2.bktei.com/gitweb/BK-2020-03.git/blobdiff_plain/f06d25b954d7fc046d0f0bbd641feb5df721efd6..10fef6ad7acae8f9e90ee710ad054ecfc063132d:/user/htmlz_to_cbz.sh diff --git a/user/htmlz_to_cbz.sh b/user/htmlz_to_cbz.sh index bf535f0..de313f0 100755 --- a/user/htmlz_to_cbz.sh +++ b/user/htmlz_to_cbz.sh @@ -1,32 +1,38 @@ #!/bin/bash # Desc: Collects .jpg/jpeg files from a Calibre .htmlz file into .cbz files -# Version: 0.0.1 +# Version: 0.1.2 +# Depends: jdupes 1.27.3 for fin in ./*.htmlz; do ( dout="${fin%.*}"; unzip "$fin" -x / -d "$dout"; pushd "$dout"; - mapfile -t images < <(cat index.html | grep -E "(.jpg|.jpeg)" | sed -E -e 's#.+(images/[0-9]+.(jpeg|jpg)).+#\1#'); - dout="./output"; - if [[ -d "$dout" ]]; then - rm -r "$dout"; + mapfile -t images < <(cat index.html | grep -E "(.jpg|.jpeg|.png)" | sed -E -e 's#.+(images/[0-9]+.(jpeg|jpg|png)).+#\1#' | uniq; ); + dout2="./output"; + if [[ -d "$dout2" ]]; then + rm -r "$dout2"; fi; - mkdir "$dout"; + mkdir "$dout2"; n=1; for path in "${images[@]}"; do - fnew="${dout}/$(printf "%06d" "$n").jpg"; + fnew="${dout2}/$(printf "%06d" "$n").jpg"; cp "$path" "$fnew"; ((n++)); done; + # Add cover file if present if [[ -f cover.jpg ]]; then - cp -n cover.jpg ./output/000000.jpg; + cp -n cover.jpg "${dout2}/000000.jpg"; + fi; + # Remove duplicate images + if command -v jdupes 1>/dev/random 2>&1; then + jdupes -dN "$dout2"; fi; faout="output.cbz"; if [[ -f "$faout" ]]; then rm "$fout"; fi; - zip -r output.cbz output; + zip -j output.cbz "$dout2"/*; ) & done; wait && echo "STATUS:Finished." 1>&2;