Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 305c6bcd96 | |||
| 464ce8987c | |||
| 85668bb29f | |||
| 07230ac0cd |
@@ -23,6 +23,9 @@ others=()
|
|||||||
insta=true
|
insta=true
|
||||||
flickr=true
|
flickr=true
|
||||||
|
|
||||||
|
gps=0
|
||||||
|
opt_gps=true
|
||||||
|
|
||||||
opt_others=false
|
opt_others=false
|
||||||
opt_lens=false
|
opt_lens=false
|
||||||
opt_model=false
|
opt_model=false
|
||||||
@@ -32,13 +35,10 @@ opt_wildlife=false
|
|||||||
opt_all=true
|
opt_all=true
|
||||||
|
|
||||||
long_path=`pwd`"/"`basename "$0"` # /Users/bruno/Documents/Scripts/kymsu2/keywords2insta.sh
|
long_path=`pwd`"/"`basename "$0"` # /Users/bruno/Documents/Scripts/kymsu2/keywords2insta.sh
|
||||||
|
# long: /Users/bruno/Documents/GitHub/GooFuzz/keywords2insta.sh
|
||||||
#long_path=$(realpath "$0") # vide
|
#long_path=$(realpath "$0") # vide
|
||||||
echo "long: $long_path"
|
|
||||||
|
|
||||||
dir=$(dirname "$0")
|
|
||||||
#dir="$0"
|
|
||||||
echo "dir: $dir"
|
|
||||||
|
|
||||||
|
dir=$(dirname "$0") # /Users/bruno/Documents/Scripts/keywords2insta
|
||||||
|
|
||||||
|
|
||||||
trim () {
|
trim () {
|
||||||
@@ -72,7 +72,7 @@ alpha () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
showHelp() {
|
showHelp() {
|
||||||
echo -e "${greenbold}keywords2insta${reset} v1.1"
|
echo -e "${greenbold}keywords2insta${reset} v2.1"
|
||||||
echo -e "Bruno <bruno<clicclac.info>"
|
echo -e "Bruno <bruno<clicclac.info>"
|
||||||
echo -e "Read exif and keywords from an image file, and copy them to the clipboard, "
|
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 and Flickr."
|
||||||
@@ -194,6 +194,8 @@ fi
|
|||||||
|
|
||||||
[ ! -f "$file" ] && echo -e "${bold}${red}No input file !${reset}" && exit 2
|
[ ! -f "$file" ] && echo -e "${bold}${red}No input file !${reset}" && exit 2
|
||||||
|
|
||||||
|
echo -e "\n${greenbold}keywords2insta${reset} v2.0"
|
||||||
|
|
||||||
# dico français / anglais
|
# dico français / anglais
|
||||||
|
|
||||||
fr=()
|
fr=()
|
||||||
@@ -221,10 +223,8 @@ if [ -f $dir/keywords.csv ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
echo -e "\n${greenbold}keywords2insta${reset} v2.0"
|
|
||||||
|
|
||||||
echo -e "\n${bold}Reading $file exif...${reset}"
|
echo -e "\n${bold}Reading $file exif...${reset}"
|
||||||
#exif=$(exiftool -Canon -s -Keywords "$file")
|
|
||||||
# The exiftool application exits with a status of 0 on success, or 1 if an
|
# The exiftool application exits with a status of 0 on success, or 1 if an
|
||||||
# error occurred, or 2 if all files failed the -if condition (for any of
|
# error occurred, or 2 if all files failed the -if condition (for any of
|
||||||
# the commands if -execute was used).
|
# the commands if -execute was used).
|
||||||
@@ -237,13 +237,6 @@ exif=$(exiftool -j "$file")
|
|||||||
# the commands if -execute was used).
|
# the commands if -execute was used).
|
||||||
|
|
||||||
# exif
|
# exif
|
||||||
#echo "$exif"
|
|
||||||
|
|
||||||
#if (jq -e '.[] | has("Make")' <<< "$exif"); then
|
|
||||||
# make=$(echo "$exif" | jq -j '.[] | .Make')
|
|
||||||
#else
|
|
||||||
# make="z"
|
|
||||||
#fi
|
|
||||||
|
|
||||||
#make=$(echo "$exif" | jq -e '.[] | has("Make") | .Make')
|
#make=$(echo "$exif" | jq -e '.[] | has("Make") | .Make')
|
||||||
|
|
||||||
@@ -257,6 +250,9 @@ lens=$(echo "$exif" | jq -j '.[] | .Lens | select( . != null )')
|
|||||||
lensID=$(echo "$exif" | jq -j '.[] | .LensID | select( . != null )')
|
lensID=$(echo "$exif" | jq -j '.[] | .LensID | select( . != null )')
|
||||||
lensModel=$(echo "$exif" | jq -j '.[] | .LensModel | select( . != null )')
|
lensModel=$(echo "$exif" | jq -j '.[] | .LensModel | select( . != null )')
|
||||||
focal=$(echo "$exif" | jq -j '.[] | .FocalLength | select( . != null )')
|
focal=$(echo "$exif" | jq -j '.[] | .FocalLength | select( . != null )')
|
||||||
|
latitude=$(echo "$exif" | jq -j '.[] | .GPSLatitude | select( . != null )')
|
||||||
|
longitude=$(echo "$exif" | jq -j '.[] | .GPSLongitude | select( . != null )')
|
||||||
|
altitude=$(echo "$exif" | jq -j '.[] | .GPSAltitude | select( . != null )')
|
||||||
|
|
||||||
echo
|
echo
|
||||||
if [[ -n $iso ]] && [[ -n $speed ]] && [[ -n $aperture ]]; then
|
if [[ -n $iso ]] && [[ -n $speed ]] && [[ -n $aperture ]]; then
|
||||||
@@ -265,8 +261,12 @@ if [[ -n $iso ]] && [[ -n $speed ]] && [[ -n $aperture ]]; then
|
|||||||
printf " %-10s %-35s \n" "ISO:" "${iso}"
|
printf " %-10s %-35s \n" "ISO:" "${iso}"
|
||||||
printf " %-10s %-35s \n" "Date:" "${date_original}"
|
printf " %-10s %-35s \n" "Date:" "${date_original}"
|
||||||
printf " %-10s %-35s \n" "Maker:" "${make}"
|
printf " %-10s %-35s \n" "Maker:" "${make}"
|
||||||
[[ "$make" =~ ^SONY ]] && alpha
|
if [[ "$make" =~ ^SONY ]]; then
|
||||||
printf " %-10s %-35s \n" "APN:" "$alpha_name (${model})"
|
alpha
|
||||||
|
printf " %-10s %-35s \n" "APN:" "$alpha_name (${model})"
|
||||||
|
else
|
||||||
|
printf " %-10s %-35s \n" "APN:" "${model}"
|
||||||
|
fi
|
||||||
printf " %-10s %-35s \n" "Focal:" "${focal}"
|
printf " %-10s %-35s \n" "Focal:" "${focal}"
|
||||||
if [[ -n $lensID ]]; then
|
if [[ -n $lensID ]]; then
|
||||||
printf " %-10s %-35s \n" "LensID:" "${lensID}"
|
printf " %-10s %-35s \n" "LensID:" "${lensID}"
|
||||||
@@ -278,25 +278,48 @@ if [[ -n $iso ]] && [[ -n $speed ]] && [[ -n $aperture ]]; then
|
|||||||
printf " %-10s %-35s \n" "Lens:" "${lens}"
|
printf " %-10s %-35s \n" "Lens:" "${lens}"
|
||||||
l="$lens"
|
l="$lens"
|
||||||
fi
|
fi
|
||||||
|
if [[ -n $latitude ]] && [[ -n $longitude ]]; then
|
||||||
|
printf " %-10s %-35s \n" "Latitude:" "${latitude}"
|
||||||
|
printf " %-10s %-35s \n" "Longitude:" "${longitude}"
|
||||||
|
printf " %-10s %-35s \n" "Altitude:" "${altitude}"
|
||||||
|
gps=1
|
||||||
|
fi
|
||||||
echo
|
echo
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# gps
|
||||||
|
if [ $opt_gps = true ]; then
|
||||||
|
if [ $gps -eq 1 ]; then
|
||||||
|
echo "GPS data available !"
|
||||||
|
|
||||||
|
a=$(echo -e "Do you want to ${bold}erase GPS data${reset} ? (k)eep or (e)rase ")
|
||||||
|
read -p "$a" choice
|
||||||
|
|
||||||
|
if [ "$choice" == "e" ] || [ "$choice" == "E" ]; then
|
||||||
|
echo "Erasing GPS data..."
|
||||||
|
exiftool -gps:all= "$file"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# erase GPS data
|
||||||
|
echo "Erasing GPS data..."
|
||||||
|
exiftool -gps:all= "$file"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
# keywords
|
# keywords
|
||||||
k=$(echo "$exif" | jq --compact-output --raw-output '.[] | .Keywords[]?' | tr "\n" "," | sed 's/\,$//')
|
k=$(echo "$exif" | jq --compact-output --raw-output '.[] | .Keywords[]?' | tr "\n" "," | sed 's/\,$//')
|
||||||
#k=$(echo "$exif" | sed -n '/^Keywords/p' | awk -F":" '{print $2}' | sed 's/^ *//g')
|
#k=$(echo "$exif" | sed -n '/^Keywords/p' | awk -F":" '{print $2}' | sed 's/^ *//g')
|
||||||
|
|
||||||
if [ -z "$k" ]; then
|
if [ -z "$k" ]; then
|
||||||
echo -e "\n${bold}${red}No Keywords found !${reset}"
|
echo -e "\n${bold}${red}No Keywords found !${reset}"
|
||||||
echo "Quit."
|
echo
|
||||||
#exit 5
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
IFS="," read -a key <<< "$k"
|
IFS="," read -a key <<< "$k"
|
||||||
|
|
||||||
#echo "key:${key[@]}_"
|
|
||||||
#echo "dico:${dico[@]}_"
|
|
||||||
|
|
||||||
|
|
||||||
for i in "${key[@]}"
|
for i in "${key[@]}"
|
||||||
do
|
do
|
||||||
@@ -304,22 +327,11 @@ do
|
|||||||
# @ bouton d'or@
|
# @ bouton d'or@
|
||||||
# xargs: unterminated quote
|
# xargs: unterminated quote
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ii=$(echo "$i" | xargs -0) # trim $i
|
|
||||||
#ii=$(echo "$i" | sed 's/ *$//g')
|
|
||||||
ii="$i"
|
ii="$i"
|
||||||
trim ii
|
trim ii
|
||||||
#trim i
|
|
||||||
|
|
||||||
#echo "i:$i"
|
|
||||||
#echo "ii:$ii"
|
|
||||||
|
|
||||||
if [[ ! "$ii" =~ ^_ ]]; then
|
if [[ ! "$ii" =~ ^_ ]]; then
|
||||||
|
|
||||||
#echo "ii: $ii"
|
|
||||||
#echo ${dico["$ii"]}
|
|
||||||
|
|
||||||
if [[ ${dico["$ii"]} ]] ; then
|
if [[ ${dico["$ii"]} ]] ; then
|
||||||
k_en=${dico["$ii"]}
|
k_en=${dico["$ii"]}
|
||||||
else
|
else
|
||||||
@@ -328,8 +340,6 @@ do
|
|||||||
|
|
||||||
k_fr="$ii"
|
k_fr="$ii"
|
||||||
|
|
||||||
#echo "k_fr:$k_fr"
|
|
||||||
#echo "k_en:$k_en"
|
|
||||||
|
|
||||||
if [ -n "$k_en" ]; then
|
if [ -n "$k_en" ]; then
|
||||||
[[ "$k_fr" = *" "* ]] && keyword_flickr+="\"${k_fr}\" " || keyword_flickr+="${k_fr} "
|
[[ "$k_fr" = *" "* ]] && keyword_flickr+="\"${k_fr}\" " || keyword_flickr+="${k_fr} "
|
||||||
@@ -340,8 +350,6 @@ do
|
|||||||
keyword_insta+="#${k_fr// /} "
|
keyword_insta+="#${k_fr// /} "
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#echo "keyword_insta:$keyword_insta"
|
|
||||||
#echo "keyword_flickr:$keyword_flickr"
|
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
@@ -369,17 +377,19 @@ done
|
|||||||
# "Make": "Canon",
|
# "Make": "Canon",
|
||||||
# "Model": "Canon EOS R7",
|
# "Model": "Canon EOS R7",
|
||||||
|
|
||||||
#mod=("${model}")
|
if [[ "$make" =~ ^Panasonic ]] || [[ "$make" =~ ^FUJI ]]; then
|
||||||
#m=("${model}")
|
|
||||||
|
|
||||||
#echo "mod:${mod[@]}_"
|
|
||||||
#echo "m:${m[@]}_"
|
|
||||||
|
|
||||||
if [[ "$make" =~ ^Panasonic ]] || [[ "$make" =~ ^SONY ]] || [[ "$make" =~ ^FUJI ]]; then
|
|
||||||
mod=("${make} ${model}")
|
mod=("${make} ${model}")
|
||||||
mod+=("${make}")
|
mod+=("${make}")
|
||||||
mod+=("${model}")
|
mod+=("${model}")
|
||||||
mod+=("${make,,}photography")
|
mod+=("${make,,}photography")
|
||||||
|
elif [[ "$make" =~ ^SONY ]]; then
|
||||||
|
mod=("${make} ${model}")
|
||||||
|
mod+=("${make}")
|
||||||
|
mod+=("${model}")
|
||||||
|
# convertir α en Alpha
|
||||||
|
q=$(echo "${alpha_name}" | sed 's/α/Alpha /')
|
||||||
|
mod+=("$q")
|
||||||
|
mod+=("${make,,}photography")
|
||||||
elif [[ "$make" =~ ^"OM Digital Solutions" ]]; then
|
elif [[ "$make" =~ ^"OM Digital Solutions" ]]; then
|
||||||
mod=("${make} ${model}") # OM Digital Solutions OM-5
|
mod=("${make} ${model}") # OM Digital Solutions OM-5
|
||||||
mod+=("Olympus") # Olympus
|
mod+=("Olympus") # Olympus
|
||||||
@@ -391,7 +401,6 @@ elif [[ "$model" =~ ^NIKON ]] || [[ "$model" =~ ^LEICA ]]; then
|
|||||||
mod+=("${z}photography") # nikonphotography leicaphotography
|
mod+=("${z}photography") # nikonphotography leicaphotography
|
||||||
mod+=("${y}") # NIKON LEICA
|
mod+=("${y}") # NIKON LEICA
|
||||||
mod+=("${model}") # NIKON Z 9 LEICA Q3
|
mod+=("${model}") # NIKON Z 9 LEICA Q3
|
||||||
# awk -F"|" '{$1=$2=$3=""; print $0}' PURCHASE_testing.csv > testing.csv
|
|
||||||
w=$(echo "${model}" | awk '{$1=""; print $0}' | xargs)
|
w=$(echo "${model}" | awk '{$1=""; print $0}' | xargs)
|
||||||
mod+=("${w}")
|
mod+=("${w}")
|
||||||
elif [[ "$model" =~ ^Canon ]]; then
|
elif [[ "$model" =~ ^Canon ]]; then
|
||||||
@@ -404,11 +413,8 @@ elif [[ "$model" =~ ^Canon ]]; then
|
|||||||
mod+=("${y}") # Canon R6
|
mod+=("${y}") # Canon R6
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#echo "mod:${mod[@]}_"
|
|
||||||
|
|
||||||
for i in "${mod[@]}"
|
for i in "${mod[@]}"
|
||||||
do
|
do
|
||||||
#model+="${i} "
|
|
||||||
if [[ "$i" = *" "* ]]; then
|
if [[ "$i" = *" "* ]]; then
|
||||||
model_flickr+="\"${i}\" "
|
model_flickr+="\"${i}\" "
|
||||||
else
|
else
|
||||||
@@ -417,8 +423,6 @@ do
|
|||||||
model_insta+="#${i// /} " # supprime tous les espaces et ajoute le #
|
model_insta+="#${i// /} " # supprime tous les espaces et ajoute le #
|
||||||
done
|
done
|
||||||
|
|
||||||
#echo "model_flickr: $model_flickr"
|
|
||||||
#echo "model_insta: $model_insta"
|
|
||||||
|
|
||||||
#lens
|
#lens
|
||||||
|
|
||||||
@@ -471,9 +475,6 @@ done
|
|||||||
lens_flickr="\"${l}\" "
|
lens_flickr="\"${l}\" "
|
||||||
lens_insta="$(echo "$l" | sed 's/ //g' | sed -r 's/[^ ]+/#&/g') "
|
lens_insta="$(echo "$l" | sed 's/ //g' | sed -r 's/[^ ]+/#&/g') "
|
||||||
|
|
||||||
#echo "lens_flickr: $lens_flickr"
|
|
||||||
#echo "lens_insta: $lens_insta"
|
|
||||||
|
|
||||||
|
|
||||||
for i in "${wild[@]}"
|
for i in "${wild[@]}"
|
||||||
do
|
do
|
||||||
@@ -482,7 +483,6 @@ do
|
|||||||
else
|
else
|
||||||
wildlife_flickr+="${i} "
|
wildlife_flickr+="${i} "
|
||||||
fi
|
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_insta+="#$(echo "${i}" | iconv -f UTF-8-MAC -t ascii//translit | sed 's/[^a-zA-Z 0-9]//g' | sed 's/ //g') "
|
wildlife_insta+="#$(echo "${i}" | iconv -f UTF-8-MAC -t ascii//translit | sed 's/[^a-zA-Z 0-9]//g' | sed 's/ //g') "
|
||||||
done
|
done
|
||||||
|
|
||||||
@@ -620,7 +620,6 @@ if ! command -v gawk &> /dev/null; then
|
|||||||
echo -e " - brew install gawk"
|
echo -e " - brew install gawk"
|
||||||
echo -e ""
|
echo -e ""
|
||||||
else
|
else
|
||||||
#keywords_flickr=$(echo "$keywords_flickr" | gawk -v RS="[ \n]" -v ORS=" " '!($0 in a){print;a[$0]}')
|
|
||||||
keywords_insta=$(echo "$keywords_insta" | gawk -v RS="[ \n]" -v ORS=" " '!($0 in a){print;a[$0]}')
|
keywords_insta=$(echo "$keywords_insta" | gawk -v RS="[ \n]" -v ORS=" " '!($0 in a){print;a[$0]}')
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user