46 lines
1.1 KiB
Bash
46 lines
1.1 KiB
Bash
|
set +o errexit
|
||
|
|
||
|
# Modified from https://github.com/sentriz/cliphist/blob/master/contrib/cliphist-wofi-img
|
||
|
|
||
|
# set up thumbnail directory
|
||
|
thumb_dir="/tmp/cliphist/thumbs"
|
||
|
mkdir -p "$thumb_dir"
|
||
|
|
||
|
cliphist_list="$(cliphist list)"
|
||
|
|
||
|
# delete thumbnails in cache but not in cliphist
|
||
|
for thumb in "$thumb_dir"/*; do
|
||
|
clip_id="${thumb##*/}"
|
||
|
clip_id="${clip_id%.*}"
|
||
|
check=$(rg <<< "$cliphist_list" "^$clip_id\s")
|
||
|
if [ -z "$check" ]; then
|
||
|
>&2 rm -v "$thumb"
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
# create thumbnail if image not processed already
|
||
|
read -r -d '' prog <<EOF
|
||
|
/^[0-9]+\s<meta http-equiv=/ { next }
|
||
|
|
||
|
match(\$0, /^([0-9]+)\s(\[\[\s)?binary.*(jpg|jpeg|png|bmp)/, grp) {
|
||
|
image = grp[1]"."grp[3]
|
||
|
system("[ -f $thumb_dir/"image" ] || echo " grp[1] "\\\\\t | cliphist decode | convert - -resize '256x256>' $thumb_dir/"image )
|
||
|
print "img:$thumb_dir/"image
|
||
|
next
|
||
|
}
|
||
|
|
||
|
1
|
||
|
EOF
|
||
|
|
||
|
output=$(gawk <<< "$cliphist_list" "$prog")
|
||
|
|
||
|
# Use a while loop with read to iterate over each line
|
||
|
echo "$output" | while IFS= read -r line; do
|
||
|
if [[ ! $line =~ ^img:/tmp/cliphist/thumbs ]]; then
|
||
|
[[ $line =~ ([0-9]+) ]]
|
||
|
line=${BASH_REMATCH[1]}
|
||
|
fi
|
||
|
|
||
|
echo "$line"
|
||
|
done
|