diff options
author | Francesco Minnocci | 2022-11-01 01:37:51 +0100 |
---|---|---|
committer | Francesco Minnocci | 2022-11-01 01:37:51 +0100 |
commit | a4e7c33cf1066cbe3d672a510703d94fb2cc4699 (patch) | |
tree | 9ca3111aada00f42c9ada06c9cd74a8a12db86fb /exiftool.patch | |
parent | 26db9a9b2a21f707f874704bae62e6529403f76b (diff) | |
download | aur-a4e7c33cf1066cbe3d672a510703d94fb2cc4699.tar.gz |
Fix build
Diffstat (limited to 'exiftool.patch')
-rw-r--r-- | exiftool.patch | 202 |
1 files changed, 84 insertions, 118 deletions
diff --git a/exiftool.patch b/exiftool.patch index 8fa2f9470367..edc003317968 100644 --- a/exiftool.patch +++ b/exiftool.patch @@ -1,130 +1,96 @@ ---- kunst/kunst 2021-02-02 12:40:50.127158706 +0100 -+++ /usr/bin/kunst 2021-02-02 12:33:26.573815292 +0100 -@@ -9,10 +9,12 @@ - - VERSION=1.3.2 - COVER=/tmp/kunst.jpg --MUSIC_DIR=~/Music --SIZE=250x250 --POSITION="+0+0" - ONLINE_ALBUM_ART=false -+MUSIC_DIR=${KUNST_MUSIC_DIR:-"~/Music/"} -+SIZE=${KUNST_SIZE:-"250x250"} -+POSITION=${KUNST_POSITION:-"+0+0"} +diff --git a/kunst b/kunst +index 9d0a8f4..9b12827 100755 +--- a/kunst ++++ b/kunst +@@ -12,6 +12,8 @@ COVER=/tmp/kunst.jpg + MUSIC_DIR="${KUNST_MUSIC_DIR:-~/Music}" + SIZE="${KUNST_SIZE:-250x250}" + POSITION="${KUNST_POSITION:-+0+0}" +COVER_NAMES=${KUNST_COVER_NAMES:-"folder|cover|front"} +COVER_EXT=${KUNST_COVER_EXT:-"jpg|png"} - - show_help() { - printf "%s" "\ -@@ -138,33 +140,52 @@ - - # Extract the album art from the mp3 file and dont show the messsy - # output of ffmpeg -- ffmpeg -i "$MUSIC_DIR$(mpc current -f %file%)" "$COVER" -y &> /dev/null -+ if [ "$(type -p exiftool &>/dev/null)" ]; then -+ SONG="$MUSIC_DIR/$(mpc --format "%file%" current)" -+ PICTURE_TAG="-Picture" + ONLINE_ALBUM_ART="" + PROG_NAME=$(basename "$0") + +@@ -152,7 +154,23 @@ find_album_art(){ + + # Extract the album art from the mp3 file and dont show the messsy + # output of ffmpeg +- ffmpeg -i "$MUSIC_DIR$(mpc current -f %file%)" "$COVER" -y &> /dev/null ++ if [ "$(type -p exiftool &>/dev/null)" ]; then ++ SONG="$MUSIC_DIR/$(mpc --format "%file%" current)" ++ PICTURE_TAG="-Picture" + -+ if [ "$SONG" = *".m4a" ]; then -+ PICTURE_TAG="-CoverArt" -+ fi -+ # Extract album cover using perl-image-exiftool -+ exiftool -b "$PICTURE_TAG" "$SONG" > "$COVER" -+ # Check if image is valid -+ img_data=$(identify "$COVER" 2>&1) -+ if [ "$img_data" = *"insufficient"* ]; then -+ return 1 -+ fi -+ else -+ ffmpeg -i "$MUSIC_DIR/$(mpc current -f %file%)" "$COVER" -y &> /dev/null -+ fi - -- # Get the status of the previous command -- STATUS=$? -+ STATUS=$? - - # Check if the file has a embbeded album art - if [ "$STATUS" -eq 0 ];then -- [ ! "$SILENT" ] && echo "kunst: extracted album art" -+ [ ! "$SILENT" ] && echo "kunst: extracted album art" - ARTLESS=false - else ++ if [ "$SONG" = *".m4a" ]; then ++ PICTURE_TAG="-CoverArt" ++ fi ++ # Extract album cover using perl-image-exiftool ++ exiftool -b "$PICTURE_TAG" "$SONG" > "$COVER" ++ # Check if image is valid ++ img_data=$(identify "$COVER" 2>&1) ++ if [ "$img_data" = *"insufficient"* ]; then ++ return 1 ++ fi ++ else ++ ffmpeg -i "$MUSIC_DIR/$(mpc current -f %file%)" "$COVER" -y &> /dev/null ++ fi + + # Get the status of the previous command + STATUS=$? +@@ -162,19 +180,21 @@ find_album_art(){ + log "extracted album art" + ARTLESS=false + else - DIR="$MUSIC_DIR$(dirname "$(mpc current -f %file%)")" -- [ ! "$SILENT" ] && echo "kunst: inspecting $DIR" -+ DIR="$MUSIC_DIR/$(dirname "$(mpc current -f %file%)")" -+ -+ # prevent iterating the entire $MUSIC_DIR if mpc experiences an error -+ [ "$DIR" == "$MUSIC_DIR"/. ] && ARTLESS=true && return 1 -+ -+ [ ! "$SILENT" ] && echo "kunst: inspecting $DIR" - - # Check if there is an album cover/art in the folder. -- # Look at issue #9 for more details ++ DIR="$MUSIC_DIR/$(dirname "$(mpc current -f %file%)")" ++ # prevent iterating the entire $MUSIC_DIR if mpc experiences an error ++ [ "$DIR" == "$MUSIC_DIR"/. ] && ARTLESS=true && return 1 + log "inspecting $DIR" + + # Check if there is an album cover/art in the folder. +- # Look at issue #9 for more details - for CANDIDATE in "$DIR/cover."{png,jpg}; do -- if [ -f "$CANDIDATE" ]; then -- STATUS=0 -- ARTLESS=false -- convert "$CANDIDATE" $COVER &> /dev/null -- [ ! "$SILENT" ] && echo "kunst: found cover.png" -- fi ++ # Look at issues #9 and #45 for more details ++ while IFS= read -r CANDIDATE; do + if [ -f "$CANDIDATE" ]; then + STATUS=0 + ARTLESS=false + convert "$CANDIDATE" $COVER &> /dev/null +- log "found cover.png" ++ log "found $(basename "$CANDIDATE")" + fi - done -+ # Look at issues #9 and #45 for more details -+ while IFS= read -r CANDIDATE; do -+ if [ -f "$CANDIDATE" ]; then -+ STATUS=0 -+ ARTLESS=false -+ convert "$CANDIDATE" $COVER &> /dev/null -+ [ ! "$SILENT" ] && echo "kunst: found $(basename "$CANDIDATE")" -+ fi -+ done < <(find "$DIR" -type f | grep -i -E -- "($COVER_NAMES).($COVER_EXT)") ++ done < <(find "$DIR" -type f | grep -i -E -- "($COVER_NAMES).($COVER_EXT)") fi - - if [ "$STATUS" -ne 0 ];then -- [ ! "$SILENT" ] && echo "error: file does not have an album art" -+ [ ! "$SILENT" ] && echo "error: file does not have an album art" - get_cover_online - fi - } -@@ -200,10 +221,6 @@ - } - done - -- [ "$KUNST_MUSIC_DIR" != "" ] && MUSIC_DIR="$KUNST_MUSIC_DIR" -- [ "$KUNST_SIZE" != "" ] && SIZE="$KUNST_SIZE" -- [ "$KUNST_POSITION" != "" ] && POSITION="$KUNST_POSITION" -- - # Flag to run some commands only once in the loop - FIRST_RUN=true - -@@ -211,12 +228,9 @@ - update_cover - - if [ "$ARTLESS" == true ];then -- # Dhange the path to COVER because the music note -- # image is a png not jpg -- COVER=/tmp/kunst.png - - # Decode the base64 encoded image and save it -- # to /tmp/kunst.png -+ # to /tmp/kunst.jpg - echo "$MUSIC_NOTE" | base64 --decode > "$COVER" - fi - -@@ -229,8 +243,9 @@ - FIRST_RUN=false - - # Display the album art using sxiv -- sxiv -g "$SIZE$POSITION" -b "$COVER" -N "Kunst" & + + if [ "$STATUS" -ne 0 ];then +@@ -220,12 +240,8 @@ main() { + update_cover + + if [ "$ARTLESS" == true ];then +- # Dhange the path to COVER because the music note +- # image is a png not jpg +- COVER=/tmp/kunst.png - -+ # If sxiv is closed, kill the script as well with the trap at the end of -+ # the script (see issue #48). -+ (sxiv -g "$SIZE$POSITION" -b "$COVER" -N "Kunst"; kill -USR1 0) & - # Save the process ID so that we can kill - # sxiv when the user exits the script - echo $! >/tmp/kunst.pid -@@ -251,4 +266,6 @@ + # Decode the base64 encoded image and save it +- # to /tmp/kunst.png ++ # to /tmp/kunst.jpg + echo "$MUSIC_NOTE" | base64 --decode > "$COVER" + fi + +@@ -235,7 +251,9 @@ main() { + FIRST_RUN=false + + # Display the album art using sxiv +- sxiv -g "$SIZE$POSITION" -b "$COVER" -N "Kunst" & ++ # If sxiv is closed, kill the script as well with the trap at the end of ++ # the script (see issue #48). ++ (sxiv -g "$SIZE$POSITION" -b "$COVER" -N "Kunst"; kill -USR1 0) & + + # Save the process ID so that we can kill + # sxiv when the user exits the script +@@ -257,4 +275,6 @@ main() { trap "" SIGTSTP - + trap pre_exit EXIT +trap 'exit 1' TERM HUP INT +trap 'exit 0' USR1 |