#!/usr/bin/env bash #api_key= #user_id= ### Variables for self updating ScriptArgs=( "$@" ) ScriptPath="$(readlink -f "$0")" # /Users/bruno/Documents/Scripts/bashbirds/bashbirds.sh ScriptWorkDir="$(dirname "$ScriptPath")" # /Users/bruno/Documents/Scripts/bashbirds dotenv () { set -a # shellcheck disable=SC1091 [ -f "$ScriptWorkDir/.env" ] && . "$ScriptWorkDir/.env" || { echo -e "${red}\nNo .env file found ! No API key for Flickr.'.${reset}"; exit 1; } set +a } dotenv #photo_id=15306150004 #photo_id=54269348549 photo_id=53640846257 perpage=500 url_flickr="https://www.flickr.com/" : <<'END_COMMENT' END_COMMENT ################################################### # # # Get info for the given photo. # # flickr.photos.getInfo # # # ################################################### getinfo_photos() { params=("$@") #info_photo=$(curl -s "https://www.flickr.com/services/rest/?method=flickr.photos.getInfo&api_key=$api_key&photo_id=$photo_id&format=json&nojsoncallback=1") info_photo=$(curl -s "https://www.flickr.com/services/rest/?method=flickr.photos.getInfo&api_key=$1&photo_id=$2&format=json&nojsoncallback=1") id=$(echo "$info_photo" | jq -r '.photo .id') title=$(echo "$info_photo" | jq -r '.photo .title | ._content') description=$(echo "$info_photo" | jq -r '.photo .description | ._content') ## p=$(echo "$info_photo" | jq -r '.photo .dates | .posted') posted=$(LC_ALL=fr_FR.UTF-8 date -d @$p +"%d/%m/%Y %H:%M:%S" 2>/dev/null || LC_ALL=fr_FR.UTF-8 date -r $p +"%d/%m/%Y %H:%M:%S") t=$(echo "$info_photo" | jq -r '.photo .dates | .taken') taken=$(LC_ALL=fr_FR.UTF-8 date -d "$t" +"%d/%m/%Y %H:%M:%S" 2>/dev/null || LC_ALL=fr_FR.UTF-8 date -d "$t" +"%d/%m/%Y %H:%M:%S") view=$(echo "$info_photo" | jq -r '.photo .views') comments=$(echo "$info_photo" | jq -r '.photo .comments | ._content') tags=$(echo "$info_photo" | jq -r '.photo .tags | .tag[].raw' | tr '\n' ',') urls=$(echo "$info_photo" | jq -r '.photo .urls | .url[] | ._content') echo "Photo ID: $id" echo "Title: $title - Description: $description" echo "Posted: $posted - Taken: $taken" echo "View: $view - Comments: $comments" echo "Tags: $tags" echo } params_info=("$api_key" "$photo_id") getinfo_photos "${params_info[@]}" echo "--------------------------------------------" ################################################### # # # Get exif for the given photo. # # flickr.photos.getExif # # # ################################################### getexif_photos() { params=("$@") #exif_photo=$(curl -s "https://www.flickr.com/services/rest/?method=flickr.photos.getExif&api_key=$api_key&photo_id=$photo_id&format=json&nojsoncallback=1") exif_photo=$(curl -s "https://www.flickr.com/services/rest/?method=flickr.photos.getExif&api_key=$1&photo_id=$2&format=json&nojsoncallback=1") #id=$(echo "$exif_photo" | jq -r '.photo .id') #camera=$(echo "$exif_photo" | jq -r '.photo .camera') exifs=$(echo "$exif_photo" | jq -r '.photo .exif') model=$(echo "$exifs" | jq -r '.[] | select(.label == "Model") | (.raw ._content)') software=$(echo "$exifs" | jq -r '.[] | select(.label == "Software") | (.raw ._content)') date_orig=$(echo "$exifs" | jq -r '.[] | select(.label == "Date and Time (Original)") | (.raw ._content)') aperture=$(echo "$exifs" | jq -r '.[] | select(.label == "Aperture") | (.raw ._content)') exposure=$(echo "$exifs" | jq -r '.[] | select(.label == "Exposure") | (.raw ._content)') iso=$(echo "$exifs" | jq -r '.[] | select(.label == "ISO Speed") | (.raw ._content)') bias=$(echo "$exifs" | jq -r '.[] | select(.label == "Exposure Bias") | (.raw ._content)') ep=$(echo "$exifs" | jq -r '.[] | select(.label == "Exposure Program") | (.raw ._content)') wb=$(echo "$exifs" | jq -r '.[] | select(.label == "White Balance") | (.raw ._content)') #lens_info=$(echo "$exifs" | jq -r '.[] | select(.label == "Lens Info") | (.raw ._content)') #lens_model=$(echo "$exifs" | jq -r '.[] | select(.label == "Lens Model") | (.raw ._content)') lens=$(echo "$exifs" | jq -r '.[] | select(.label == "Lens") | (.raw ._content)') echo "Model: $model - Software: $software - Date: $date_orig" echo "Aperture: $aperture - Exposure: $exposure - ISO: $iso" echo "Exposure Bias: $bias - Exposure Program: $ep - White Balance: $wb" echo "Lens: $lens" echo } params_exifs=("$api_key" "$photo_id") getexif_photos "${params_exifs[@]}" echo "--------------------------------------------" ################################################### # # # Get contexts for the given photo. # # flickr.photos.getAllContexts # # # ################################################### getAllContexts_photos() { params=("$@") #contexts_photo=$(curl -s "https://www.flickr.com/services/rest/?method=flickr.photos.getAllContexts&api_key=$api_key&photo_id=$photo_id&format=json&nojsoncallback=1") contexts_photo=$(curl -s "https://www.flickr.com/services/rest/?method=flickr.photos.getAllContexts&api_key=$1&photo_id=$2&format=json&nojsoncallback=1") albums=$(echo "$contexts_photo" | jq -r '.set') groups=$(echo "$contexts_photo" | jq -r '.pool') title_album=$(echo "$albums" | jq -r '.[].title' | tr '\n' ' ') id_album=$(echo "$albums" | jq -r '.[].id' | tr '\n' ' ') title_group=$(echo "$groups" | jq -r '.[].title' | tr '\n' ' ') id_group=$(echo "$groups" | jq -r '.[].id' | tr '\n' ' ') url_group=$(echo "$groups" | jq -r '.[].url' | tr '\n' ' ') echo "ID: $id_album" echo "Albums: $title_album" echo echo "ID: $id_group" echo "Groups: $title_group" echo "URL: $url_flickr$url_group" } params_context=("$api_key" "$photo_id") getAllContexts_photos "${params_context[@]}"