-add support for 500px
-display thumb in iTerm2
This commit is contained in:
2023-12-18 06:53:59 +01:00
parent 58a1a129e4
commit 0a6e853b4d

View File

@@ -16,12 +16,13 @@ reset="\033[0m"
wild=("wildlife" "wildlifephoto" "wildlifephotographer")
nat=("naturelovers" "natureshot" "naturephotography")
reg=("Bourgogne" "Burgundy" "Bourgogne Franche-Comté" "Côte d'or")
#others=("lanscape" "animal")
others=()
others=("lanscape" "animal" "beautiful nature")
#others=()
# Display Instagram AND/OR Flickr tags
insta=true
flickr=true
insta=false # #Becasseauvariable #LeTeich #Bird
flickr=true # "Bécasseau variable" "Le Teich" Bird
ccpx=true # Bécasseau variable, Le Teich, Bird
gps=0
opt_gps=true
@@ -72,10 +73,10 @@ alpha () {
}
showHelp() {
echo -e "${greenbold}keywords2insta${reset} v2.1"
echo -e "${greenbold}keywords2insta${reset} v3.1"
echo -e "Bruno <bruno<clicclac.info>"
echo -e "Read exif and keywords from an image file, and copy them to the clipboard, "
echo -e " ready for Instagram and Flickr."
echo -e " ready for Instagram, Flickr and 500px."
echo
echo -e "${yellow}USAGE:${reset}"
echo -e "${green}keyword2insta [-Options...] -f <file>${reset}"
@@ -115,6 +116,10 @@ showHelp() {
echo -e " 3: Unknown long option."
echo -e " 4: Unknown short option."
echo -e " 5: No Keywords found in image file."
echo
echo -e "${yellow}Changelog:${reset}"
echo -e " v3.0: support 500px"
echo -e " v3.1: display thumb"
}
# https://stackoverflow.com/questions/402377/using-getopts-to-process-long-and-short-command-line-options
@@ -238,8 +243,6 @@ exif=$(exiftool -j "$file")
# exif
#make=$(echo "$exif" | jq -e '.[] | has("Make") | .Make')
make=$(echo "$exif" | jq -j '.[] | .Make | select( . != null )')
model=$(echo "$exif" | jq -j '.[] | .Model | select( . != null )')
date_original=$(echo "$exif" | jq -j '.[] | .DateTimeOriginal | select( . != null )')
@@ -257,6 +260,23 @@ width=$(echo "$exif" | jq -j '.[] | .ImageWidth | select( . != null )')
height=$(echo "$exif" | jq -j '.[] | .ImageHeight | select( . != null )')
size=$(echo "$exif" | jq -j '.[] | .FileSize | select( . != null )')
echo "$lensID"
# Display thumb image
if [ "$(echo $__CFBundleIdentifier | grep iterm2)" ]; then
tmp_path=/tmp/k2i
[ -d $tmp_path ] && rm -rf $tmp_path
mkdir $tmp_path
tempfoo=`basename "$file"`
magick "$file" -quality 50 -resize 600x600\> $tmp_path/thumb_$tempfoo
if [ -f "$tmp_path/thumb_$tempfoo" ]; then
[ $width -gt $height ] && w_thumb=600 || w_thumb=$(echo "600/3*2" | bc)
printf "\n\t\033]1337;File=;width=$w_thumb px;inline=1:`cat $tmp_path/thumb_$tempfoo | base64`\a\n"
fi
fi
echo
if [[ -n $iso ]] && [[ -n $speed ]] && [[ -n $aperture ]]; then
printf " %-11s %-35s \n" "Speed:" "${speed}"
@@ -272,6 +292,62 @@ if [[ -n $iso ]] && [[ -n $speed ]] && [[ -n $aperture ]]; then
fi
printf " %-11s %-35s \n" "Focal:" "${focal}"
# "LensInfo": "100-500mm f/?",
# "LensModel": "RF100-500mm F4.5-7.1 L IS USM",
# "Lens": "RF100-500mm F4.5-7.1 L IS USM",
# "LensID": "Canon RF 100-500mm F4.5-7.1L IS USM or Canon RF 100-500mm F4.5-7.1L IS USM + RF1.4x or Canon RF 100-500mm F4.5-7.1L IS USM + RF2x"
# "LensInfo": "600mm f/?",
# "LensModel": "EF600mm f/4L IS III USM",
# "Lens": "EF600mm f/4L IS III USM",
# "LensID": "Canon EF 600mm f/4L IS III USM"
# "LensInfo": "100mm f/?",
# "LensModel": "EF100mm f/2.8 Macro USM",
# "Lens": "EF100mm f/2.8 Macro USM",
# "LensID": "Canon EF 100mm f/2.8 Macro USM"
# "LensInfo": "24-105mm f/?",
# "LensModel": "EF24-105mm f/4L IS USM",
# "Lens": "EF24-105mm f/4L IS USM",
# "LensID": "Canon EF 24-105mm f/4L IS USM"
# "LensInfo": "17-40mm f/?",
# "LensModel": "EF17-40mm f/4L USM",
# "Lens": "EF17-40mm f/4L USM",
# "LensID": "Canon EF 17-40mm f/4L USM"
# "LensInfo": "500mm f/?",
# "LensModel": "EF500mm f/4L IS USM",
# "Lens": "EF500mm f/4L IS USM",
# "LensID": "Canon EF 500mm f/4L IS USM"
# "LensInfo": "70-200mm f/?",
# "LensModel": "EF70-200mm f/4L USM",
# "Lens": "EF70-200mm f/4L USM",
# "LensID": "Canon EF 70-200mm f/4L USM"
# "LensInfo": "24mm f/?",
# "LensModel": "24mm F1.4 DG HSM | Art 015",
# "Lens": "24mm F1.4 DG HSM | Art 015",
# "LensID": "Sigma 24-105mm f/4 DG OS HSM | A"
# "LensInfo": "24-105mm f/?",
# "LensModel": "RF24-105mm F4-7.1 IS STM",
# "Lens": "RF24-105mm F4-7.1 IS STM",
# "LensID": "Canon RF 24-105mm F4-7.1 IS STM"
# "LensInfo": "840mm f/?",
# "LensModel": "EF600mm f/4L IS III USM +1.4x III",
# "Lens": "EF600mm f/4L IS III USM +1.4x III",
# "LensID": "Canon EF 600mm f/4L IS III USM + 1.4x"
# "LensInfo": "700mm f/?",
# "LensModel": "EF500mm f/4L IS USM +1.4x III",
# "Lens": "EF500mm f/4L IS USM +1.4x III",
# "LensID": "Canon EF 500mm f/4L IS USM + 1.4x"
if [[ -n $lensID ]]; then
printf " %-11s %-35s \n" "LensID:" "${lensID}"
l="$lensID"
@@ -282,8 +358,20 @@ if [[ -n $iso ]] && [[ -n $speed ]] && [[ -n $aperture ]]; then
printf " %-11s %-35s \n" "Lens:" "${lens}"
l="$lens"
fi
printf " %-11s %-35s \n" "Widht:" "${width}"
printf " %-11s %-35s \n" "Height:" "${height}"
# width > height && w=2400 || w=1600
if [ $width -gt $height ]; then
wi=2400
he=1600
[ $width -ne $wi ] && printf " %-11s %-35s \n" "Width:" "${red}${width}${reset}" || printf " %-11s %-35s \n" "Width:" "${width}"
[ $height -ne $he ] && printf " %-11s %-35s \n" "Height:" "${red}${height}${reset}" || printf " %-11s %-35s \n" "Height:" "${height}"
elif [ $height -gt $width ]; then
wi=1600
he=2400
[ $width -ne $wi ] && printf " %-11s %-35s \n" "Width:" "${red}${width}${reset}" || printf " %-11s %-35s \n" "Width:" "${width}"
[ $height -ne $he ] && printf " %-11s %-35s \n" "Height:" "${red}${height}${reset}" || printf " %-11s %-35s \n" "Height:" "${height}"
fi
#printf " %-11s %-35s \n" "Width:" "${width}"
#printf " %-11s %-35s \n" "Height:" "${height}"
printf " %-11s %-35s \n" "Size:" "${size}"
if [[ -n $latitude ]] && [[ -n $longitude ]]; then
@@ -311,6 +399,7 @@ if [[ -n $iso ]] && [[ -n $speed ]] && [[ -n $aperture ]]; then
fi
# gps
if [ $opt_gps = true ]; then
if [ $gps -eq 1 ]; then
@@ -362,14 +451,16 @@ do
fi
k_fr="$ii"
if [ -n "$k_en" ]; then
[[ "$k_fr" = *" "* ]] && keyword_flickr+="\"${k_fr}\" " || keyword_flickr+="${k_fr} "
[[ "$k_en" = *" "* ]] && keyword_flickr+="\"${k_en}\" " || keyword_flickr+="${k_en} "
keyword_insta+="#${k_fr// /} #${k_en// /} "
[[ "$k_fr" = *" "* ]] && keyword_ccpx+="${k_fr}," || keyword_ccpx+="${k_fr},"
[[ "$k_en" = *" "* ]] && keyword_ccpx+="${k_en}," || keyword_ccpx+="${k_en},"
else
[[ "$k_fr" = *" "* ]] && keyword_flickr+="\"${k_fr}\" " || keyword_flickr+="${k_fr} "
[[ "$k_fr" = *" "* ]] && keyword_ccpx+="${k_fr}," || keyword_ccpx+="${k_fr},"
keyword_insta+="#${k_fr// /} "
fi
@@ -443,6 +534,7 @@ do
else
model_flickr+="${i} "
fi
model_ccpx+="${i},"
model_insta+="#${i// /} " # supprime tous les espaces et ajoute le #
done
@@ -497,6 +589,7 @@ done
lens_flickr="\"${l}\" "
lens_insta="$(echo "$l" | sed 's/ //g' | sed -r 's/[^ ]+/#&/g') "
lens_ccpx+="${l},"
for i in "${wild[@]}"
@@ -506,7 +599,8 @@ do
else
wildlife_flickr+="${i} "
fi
wildlife_insta+="#$(echo "${i}" | iconv -f UTF-8-MAC -t ascii//translit | sed 's/[^a-zA-Z 0-9]//g' | sed 's/ //g') "
wildlife_ccpx+="${i},"
wildlife_insta+="#$(echo "${i}" | iconv -s -f UTF-8-MAC -t ascii//translit | sed 's/[^a-zA-Z 0-9]//g' | sed 's/ //g') "
done
for i in "${nat[@]}"
@@ -516,7 +610,8 @@ do
else
nature_flickr+="${i} "
fi
nature_insta+="#$(echo "${i}" | iconv -f UTF-8-MAC -t ascii//translit | sed 's/[^a-zA-Z 0-9]//g' | sed 's/ //g') "
nature_ccpx+="${i},"
nature_insta+="#$(echo "${i}" | iconv -s -f UTF-8-MAC -t ascii//translit | sed 's/[^a-zA-Z 0-9]//g' | sed 's/ //g') "
done
for i in "${reg[@]}"
@@ -526,7 +621,8 @@ do
else
region_flickr+="${i} "
fi
region_insta+="#$(echo "${i}" | iconv -f UTF-8-MAC -t ascii//translit | sed 's/[^a-zA-Z 0-9]//g' | sed 's/ //g') "
region_ccpx+="${i},"
region_insta+="#$(echo "${i}" | iconv -s -f UTF-8-MAC -t ascii//translit | sed 's/[^a-zA-Z 0-9]//g' | sed 's/ //g') "
done
@@ -567,31 +663,37 @@ if [ $opt_all = false ]; then
if [ $opt_wildlife = false ]; then
wildlife_flickr=""
wildlife_insta=""
wildlife_ccpx=""
fi
if [ $opt_nature = false ]; then
nature_flickr=""
nature_insta=""
nature_ccpx=""
fi
if [ $opt_region = false ]; then
region_flickr=""
region_insta=""
region_ccpx=""
fi
if [ $opt_lens = false ]; then
lens_flickr=""
lens_insta=""
lens_ccpx=""
fi
if [ $opt_model = false ]; then
model_flickr=""
model_insta=""
model_ccpx=""
fi
fi
keywords_flickr="$keyword_flickr$model_flickr$lens_flickr$wildlife_flickr$nature_flickr$region_flickr"
keywords_ccpx="$keyword_ccpx$model_ccpx$lens_ccpx$wildlife_ccpx$nature_ccpx$region_ccpx"
keywords_insta=$(echo "$keyword_insta$model_insta$lens_insta$wildlife_insta$nature_insta$region_insta" | awk '{print tolower($0)}')
if [ $opt_others = true ]; then
@@ -611,13 +713,17 @@ if [ $opt_others = true ]; then
[[ "$i" = *" "* ]] && others_flickr+="\"${i}\" " || others_flickr+="${i} "
[[ "$o_en" = *" "* ]] && others_flickr+="\"${o_en}\" " || others_flickr+="${o_en} "
others_insta+="#${i// /} #${o_en// /} "
[[ "$i" = *" "* ]] && others_ccpx+="${i}," || others_ccpx+="${i},"
[[ "$o_en" = *" "* ]] && others_ccpx+="${o_en}," || others_ccpx+="${o_en},"
else
[[ "$i" = *" "* ]] && others_flickr+="\"${i}\" " || others_flickr+="${i} "
[[ "$i" = *" "* ]] && others_ccpx+="${i}," || others_ccpx+="${i},"
others_insta+="#${i// /} "
fi
done
keywords_flickr+="$others_flickr"
keywords_insta+="$others_insta"
keywords_ccpx+="${others_ccpx:0:-1}"
fi
@@ -631,7 +737,8 @@ if ! command -v iconv &> /dev/null; then
echo -e " - brew install iconv"
echo -e ""
else
keywords_insta=$(echo "$keywords_insta" | iconv -f UTF-8-MAC -t ascii//translit | sed 's/[^a-zA-Z 0-9 \#]//g')
###
keywords_insta=$(echo "$keywords_insta" | iconv -s -f UTF-8-MAC -t ascii//translit | sed 's/[^a-zA-Z 0-9 \#]//g')
fi
@@ -660,8 +767,7 @@ if [ "$insta" = true ]; then
echo -e "\n${bold}The Instagram's tags are available in your clipboard !${reset}"
echo "$keywords_insta"
echo -e "\nPress <Enter> to get the Flickr' tags..."
read -p ""
[ "$flickr" = true ] || [ "$ccpx" = true ] && echo -e "\nPress <Enter> to get the Flickr's or the 500px's tags..." && read -p ""
fi
@@ -674,4 +780,19 @@ if [ "$flickr" = true ]; then
[ "$insta" = true ] && echo -e "\n${bold}Here the Flickr's tags too !${reset}" || echo -e "\n${bold}The Flickr's tags are available in your clipboard !${reset}"
echo "$keywords_flickr"
"$ccpx" = true ] && echo -e "\nPress <Enter> to get the 500px's tags..." && read -p ""
fi
if [ "$ccpx" = true ]; then
if [[ "$OSTYPE" == "linux-gnu" ]] && [ -x "$(command -v xsel)" ]; then
xsel -b <<< "$keywords_ccpx"
elif [[ "$OSTYPE" == "darwin"* ]] && [ -x "$(command -v pbcopy)" ]; then
pbcopy <<< "$keywords_ccpx"
fi
#[ "$insta" = true ] && echo -e "\n${bold}Here the Flickr's tags too !${reset}" || echo -e "\n${bold}The Flickr's tags are available in your clipboard !${reset}"
[ "$insta" = true ] || [ "$flickr" = true ] && echo -e "\n${bold}Here the 500px's tags too !${reset}" || echo -e "\n${bold}The 500px's tags are available in your clipboard !${reset}"
echo "$keywords_ccpx"
fi