2nd commit
This commit is contained in:
104
functions.sh
104
functions.sh
@@ -69,12 +69,114 @@ getinfo_photos() {
|
|||||||
comments=$(echo "$info_photo" | jq -r '.photo .comments | ._content')
|
comments=$(echo "$info_photo" | jq -r '.photo .comments | ._content')
|
||||||
tags=$(echo "$info_photo" | jq -r '.photo .tags | .tag[].raw' | tr '\n' ',')
|
tags=$(echo "$info_photo" | jq -r '.photo .tags | .tag[].raw' | tr '\n' ',')
|
||||||
|
|
||||||
urls=$(echo "$info_photo" | jq -r '.photo .urls | .url[] | ._content')
|
url=$(echo "$info_photo" | jq -r '.photo .urls | .url[] | ._content')
|
||||||
|
|
||||||
|
: <<'END_COMMENT2'
|
||||||
#echo "Photo ID: $id - Title: $title"
|
#echo "Photo ID: $id - Title: $title"
|
||||||
echo "Description: $description"
|
echo "Description: $description"
|
||||||
echo "Posted: $posted - Taken: $taken"
|
echo "Posted: $posted - Taken: $taken"
|
||||||
echo "View: $view - Comments: $comments"
|
echo "View: $view - Comments: $comments"
|
||||||
echo "Tags: $tags"
|
echo "Tags: $tags"
|
||||||
echo
|
echo
|
||||||
|
END_COMMENT2
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
###################################################
|
||||||
|
# #
|
||||||
|
# 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')
|
||||||
|
|
||||||
|
if [ "$albums" != "null" ]; then
|
||||||
|
title_alb=$(echo "$albums" | jq -r '.[].title' | tr '\n' ';')
|
||||||
|
id_alb=$(echo "$albums" | jq -r '.[].id' | tr '\n' ';')
|
||||||
|
else
|
||||||
|
title_alb=""
|
||||||
|
id_alb=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$groups" != "null" ]; then
|
||||||
|
title_gro=$(echo "$groups" | jq -r '.[].title' | tr '\n' ';')
|
||||||
|
id_gro=$(echo "$groups" | jq -r '.[].id' | tr '\n' ';')
|
||||||
|
url_gro=$(echo "$groups" | jq -r '.[].url' | tr '\n' ';')
|
||||||
|
else
|
||||||
|
title_gro=""
|
||||||
|
id_gro=""
|
||||||
|
url_gro=""
|
||||||
|
fi
|
||||||
|
: <<'END_COMMENT2'
|
||||||
|
|
||||||
|
echo "ID: $id_alb"
|
||||||
|
echo "Albums: $title_alb"
|
||||||
|
echo
|
||||||
|
|
||||||
|
echo "ID: $id_gro"
|
||||||
|
echo "Groups: $title_gro"
|
||||||
|
echo "URL: $url_flickr$url_gro"
|
||||||
|
END_COMMENT2
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
###################################################
|
||||||
|
# #
|
||||||
|
# Get favorites for the given photo. #
|
||||||
|
# flickr.photos.getFavorites #
|
||||||
|
# #
|
||||||
|
###################################################
|
||||||
|
|
||||||
|
getFavorites_photos() {
|
||||||
|
|
||||||
|
params=("$@")
|
||||||
|
favorites_photo=$(curl -s "https://www.flickr.com/services/rest/?method=flickr.photos.getFavorites&api_key=$1&photo_id=$2&format=json&nojsoncallback=1")
|
||||||
|
|
||||||
|
favorites=$(echo "$favorites_photo" | jq -r '.photo .total')
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
search_photos() {
|
||||||
|
|
||||||
|
# tags, tag_mode (OR/AND), text (-exclude)
|
||||||
|
# min_upload_date, max_upload_date, min_taken_date, max_taken_date (timestamp or mysql datetime)
|
||||||
|
# sort (date-posted-asc, date-posted-desc, date-taken-asc, date-taken-desc, interestingness-desc, interestingness-asc, and relevance.)
|
||||||
|
# group_id, user_id, media (all/photos/videos), has_geo
|
||||||
|
# extras (description, license, date_upload, date_taken, owner_name, icon_server, original_format, last_update, geo, tags, machine_tags, o_dims, views, media, path_alias, url_sq, url_t, url_s, url_q, url_m, url_n, url_z, url_c, url_l, url_o)
|
||||||
|
|
||||||
|
|
||||||
|
params=("$@")
|
||||||
|
search_photo=$(curl -s "https://www.flickr.com/services/rest/?method=flickr.photos.search&api_key=$1&user_id=$2&$3&format=json&nojsoncallback=1")
|
||||||
|
|
||||||
|
search=$(echo "$search_photo" | jq -r '.photos .photo')
|
||||||
|
|
||||||
|
counter=0
|
||||||
|
while read -r id && read -r title; do
|
||||||
|
echo -e "${BOLD}Photo ID: ${id}\t Title: ${title}${COLOR_RESET}"
|
||||||
|
|
||||||
|
photo_id=$(echo "${id}" | sed "s/'/''/g")
|
||||||
|
photo_title=$(echo "${title}" | sed "s/'/''/g")
|
||||||
|
|
||||||
|
ID+=(${id})
|
||||||
|
((++counter))
|
||||||
|
|
||||||
|
done < <(jq -r -c '.[] | .id, .title' <<< "$search")
|
||||||
|
|
||||||
|
request="${request//+/ }"
|
||||||
|
request="${request//%3A/:}"
|
||||||
|
|
||||||
|
echo -e "${COLOR_GREEN}Found $counter public photos for request (${request//+/ }) on Flickr.${COLOR_RESET}"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
238
insert.sh
Executable file
238
insert.sh
Executable file
@@ -0,0 +1,238 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
#NO_COLOR=1
|
||||||
|
|
||||||
|
# Check if NO_COLOR is set to disable colorization
|
||||||
|
if [ -z "$NO_COLOR" ]; then
|
||||||
|
: "${COLOR_GREEN:=$'\e[32m'}"
|
||||||
|
: "${COLOR_GREEN_BOLD:=$'\e[1;32m'}"
|
||||||
|
: "${COLOR_RED:=$'\e[31m'}"
|
||||||
|
: "${COLOR_RED_BOLD:=$'\e[1;31m'}"
|
||||||
|
: "${COLOR_YELLOW=$'\e[33m'}"
|
||||||
|
: "${COLOR_YELLOW_BOLD:=$'\e[1;33m'}"
|
||||||
|
: "${COLOR_SILVER=$'\e[37m'}"
|
||||||
|
: "${COLOR_LIGHT_GREY=$'\e[249m'}"
|
||||||
|
: "${COLOR_BRIGHT_PURPLE=$'\e[35;1m'}"
|
||||||
|
: "${BOLD:=$'\e[1m'}"
|
||||||
|
: "${ITALIC:=$'\e[3m'}"
|
||||||
|
: "${COLOR_RESET:=$'\e[00m'}"
|
||||||
|
else
|
||||||
|
: "${BOLD:=$'\e[1m'}"
|
||||||
|
: "${COLOR_RESET:=$'\e[00m'}"
|
||||||
|
: "${ITALIC:=$'\e[3m'}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
#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
|
||||||
|
|
||||||
|
|
||||||
|
###################################################
|
||||||
|
# #
|
||||||
|
# Create database flick.db #
|
||||||
|
# #
|
||||||
|
###################################################
|
||||||
|
|
||||||
|
dir=$(dirname "$0")
|
||||||
|
|
||||||
|
if [ ! -f ./flickr.db ]; then
|
||||||
|
cmd0="CREATE TABLE photos (PhotoID VARCHAR(16) PRIMARY KEY, Title VARCHAR(50), Description VARCHAR(100), Posted VARCHAR(16), Taken VARCHAR(16), View INT, Favorites INT, Comments INT, Tags VARCHAR(300), Url VARCHAR(75), AlbumID VARCHAR(100), GroupID VARCHAR(150) );"
|
||||||
|
echo "$cmd0" | sqlite3 ./flickr.db
|
||||||
|
|
||||||
|
cmd1="CREATE TABLE groups (GroupID VARCHAR(16) PRIMARY KEY, GroupTitle VARCHAR(75), GroupUrl VARCHAR(50) );"
|
||||||
|
echo "$cmd1" | sqlite3 ./flickr.db
|
||||||
|
|
||||||
|
cmd2="CREATE TABLE albums (AlbumID INT PRIMARY KEY, AlbumTitle VARCHAR(50) UNIQUE );"
|
||||||
|
echo "$cmd2" | sqlite3 ./flickr.db
|
||||||
|
|
||||||
|
if [ $? -ne 0 ]; then exit 0; fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
array=()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
source "$ScriptWorkDir/functions.sh"
|
||||||
|
|
||||||
|
perpage=500
|
||||||
|
pages=
|
||||||
|
# getinfo_people
|
||||||
|
username=
|
||||||
|
userid=
|
||||||
|
path_alias=
|
||||||
|
firstdatetaken=
|
||||||
|
photosurl=
|
||||||
|
profileurl=
|
||||||
|
# getinfo_photos
|
||||||
|
description=
|
||||||
|
posted=
|
||||||
|
taken=
|
||||||
|
view=
|
||||||
|
comments=
|
||||||
|
tags=
|
||||||
|
url=
|
||||||
|
# getFavorites_photos
|
||||||
|
favorites=
|
||||||
|
# getAllContexts_photos
|
||||||
|
title_alb=
|
||||||
|
id_alb=
|
||||||
|
title_gro=
|
||||||
|
id_gro=
|
||||||
|
url_gro=
|
||||||
|
|
||||||
|
###################################################
|
||||||
|
# #
|
||||||
|
# Get info about the given user. #
|
||||||
|
# #
|
||||||
|
###################################################
|
||||||
|
|
||||||
|
params_info=("$api_key" "$user_id")
|
||||||
|
getinfo_people "${params_info[@]}"
|
||||||
|
|
||||||
|
echo -e "\n${COLOR_GREEN}Get info about user ($user_id).${COLOR_RESET}"
|
||||||
|
|
||||||
|
printf "%15s %50s\n" "Name:" "$username"
|
||||||
|
printf "%15s %50s\n" "Alias:" "$path_alias"
|
||||||
|
printf "%15s %50s\n" "UserID:" "$userid"
|
||||||
|
printf "%15s %50s\n" "Joined:" "$firstdatetaken"
|
||||||
|
printf "%15s %50s\n" "Gallery:" "$photosurl"
|
||||||
|
printf "%15s %50s\n" "Profile:" "$profileurl"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
###################################################
|
||||||
|
# #
|
||||||
|
# Get a list of public photos for the given user. #
|
||||||
|
# #
|
||||||
|
###################################################
|
||||||
|
|
||||||
|
#photos=$(curl "https://www.flickr.com/services/rest/?method=flickr.people.getPublicPhotos&api_key=$api_key&user_id=$user_id&per_page=500&page=2&format=json&nojsoncallback=1")
|
||||||
|
|
||||||
|
echo -e "\n${COLOR_GREEN}Get a list of public photos for the given user ($user_id).${COLOR_RESET}"
|
||||||
|
|
||||||
|
: <<'END_COMMENT2'
|
||||||
|
|
||||||
|
echo -e "One request per page..."
|
||||||
|
|
||||||
|
#for page in {1..2}
|
||||||
|
for (( page=1; page <=$pages; page++ ))
|
||||||
|
do
|
||||||
|
#echo "Page $page"
|
||||||
|
curl -s "https://www.flickr.com/services/rest/?method=flickr.people.getPublicPhotos&api_key=$api_key&user_id=$user_id&per_page=500&page=$page&format=json&nojsoncallback=1" | jq '.photos | .photo' > "page${page}.json"
|
||||||
|
done
|
||||||
|
|
||||||
|
echo -e "Concatenate all pages in liste.json"
|
||||||
|
|
||||||
|
allpages=$(ls page*.json | tr '\n' ' ')
|
||||||
|
|
||||||
|
#jq -s 'add' page1.json page2.json > liste.json
|
||||||
|
jq -s 'add' ${allpages} > liste.json
|
||||||
|
|
||||||
|
#echo -e "Display all images list..."
|
||||||
|
echo -e "Insertion des données du fichier liste.json dans la base flickr.db...\n"
|
||||||
|
END_COMMENT2
|
||||||
|
|
||||||
|
photos=$(cat page1.json)
|
||||||
|
#photos=$(cat liste.json)
|
||||||
|
ID=()
|
||||||
|
counter=1
|
||||||
|
|
||||||
|
while read -r id && read -r title; do
|
||||||
|
echo -e "${BOLD}Photo ID: ${id}\t Title: ${title}${COLOR_RESET}"
|
||||||
|
|
||||||
|
photo_id=$(echo "${id}" | sed "s/'/''/g")
|
||||||
|
photo_title=$(echo "${title}" | sed "s/'/''/g")
|
||||||
|
|
||||||
|
# Infos
|
||||||
|
params_info=("$api_key" "$id")
|
||||||
|
getinfo_photos "${params_info[@]}"
|
||||||
|
|
||||||
|
photo_description=$(echo "${description}" | sed "s/'/''/g")
|
||||||
|
photo_posted=$(echo "${posted}" | sed "s/'/''/g")
|
||||||
|
photo_taken=$(echo "${taken}" | sed "s/'/''/g")
|
||||||
|
photo_view=$(echo "${view}" | sed "s/'/''/g")
|
||||||
|
photo_comments=$(echo "${comments}" | sed "s/'/''/g")
|
||||||
|
photo_tags=$(echo "${tags}" | sed "s/'/''/g")
|
||||||
|
photo_url=$(echo "${url}" | sed "s/'/''/g")
|
||||||
|
|
||||||
|
# Favorites
|
||||||
|
params_favorites=("$api_key" "$_photo_id")
|
||||||
|
getFavorites_photos "${params_favorites[@]}"
|
||||||
|
photo_favorites=$(echo "${favorites}" | sed "s/'/''/g")
|
||||||
|
|
||||||
|
# Albums - Groups
|
||||||
|
params_context=("$api_key" "$id")
|
||||||
|
getAllContexts_photos "${params_context[@]}"
|
||||||
|
|
||||||
|
# Albums
|
||||||
|
a_t=$(echo "${title_alb}" | sed "s/'/''/g") # album_title
|
||||||
|
a_i=$(echo "${id_alb}" | sed "s/'/''/g") # album_id
|
||||||
|
|
||||||
|
IFS=';'
|
||||||
|
read -ra album_title <<< "$a_t"
|
||||||
|
read -ra album_id <<< "$a_i"
|
||||||
|
|
||||||
|
req=
|
||||||
|
for val in ${!album_id[@]}
|
||||||
|
do
|
||||||
|
echo "${album_id[$val]} - ${album_title[$val]}"
|
||||||
|
|
||||||
|
if [ -n "${album_id[$val]}" ]; then
|
||||||
|
cmd5="INSERT OR REPLACE INTO albums (AlbumID, AlbumTitle) VALUES ('${album_id[$val]}', '${album_title[$val]}');"
|
||||||
|
echo "$cmd5" | sqlite3 ./flickr.db
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
: <<'END_COMMENT2'
|
||||||
|
END_COMMENT2
|
||||||
|
|
||||||
|
# Groups
|
||||||
|
g_t=$(echo "${title_gro}" | sed "s/'/''/g") # group_title
|
||||||
|
g_i=$(echo "${id_gro}" | sed "s/'/''/g") # group_id
|
||||||
|
g_u=$(echo "${url_gro}" | sed "s/'/''/g") # group_url
|
||||||
|
|
||||||
|
IFS=';'
|
||||||
|
read -ra group_title <<< "$g_t"
|
||||||
|
read -ra group_id <<< "$g_i"
|
||||||
|
read -ra group_url <<< "$g_u"
|
||||||
|
|
||||||
|
for val in ${!group_id[@]}
|
||||||
|
do
|
||||||
|
echo "${group_id[$val]} - ${group_title[$val]} - ${group_url[$val]}"
|
||||||
|
|
||||||
|
if [ -n "${group_id[$val]}" ]; then
|
||||||
|
cmd4="INSERT OR REPLACE INTO groups (GroupID, GroupTitle, GroupUrl) VALUES ('${group_id[$val]}', '${group_title[$val]}', '${group_url[$val]}');"
|
||||||
|
echo "$cmd4" | sqlite3 ./flickr.db
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
cmd3="INSERT OR REPLACE INTO photos (PhotoID, Title, Description, Posted, Taken, View, Favorites, Comments, Tags, Url, AlbumID, GroupID) VALUES ('$photo_id','$photo_title', '$photo_description', '$photo_posted', '$photo_taken', '$photo_view', '$photo_favorites', '$photo_comments', '$photo_tags', '$photo_url', '$a_i', '$g_i');"
|
||||||
|
echo "$cmd3" | sqlite3 ./flickr.db
|
||||||
|
echo $?
|
||||||
|
|
||||||
|
|
||||||
|
ID+=(${id})
|
||||||
|
((++counter))
|
||||||
|
|
||||||
|
done < <(jq -r -c '.[] | .id, .title' <<< "$photos")
|
||||||
|
|
||||||
|
echo -e "${COLOR_GREEN}Found $counter public photos for user ($user_id) on Flickr.${COLOR_RESET}"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
302
select.sh
Executable file
302
select.sh
Executable file
@@ -0,0 +1,302 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
#NO_COLOR=1
|
||||||
|
|
||||||
|
# Check if NO_COLOR is set to disable colorization
|
||||||
|
if [ -z "$NO_COLOR" ]; then
|
||||||
|
: "${COLOR_GREEN:=$'\e[32m'}"
|
||||||
|
: "${COLOR_GREEN_BOLD:=$'\e[1;32m'}"
|
||||||
|
: "${COLOR_RED:=$'\e[31m'}"
|
||||||
|
: "${COLOR_RED_BOLD:=$'\e[1;31m'}"
|
||||||
|
: "${COLOR_YELLOW=$'\e[33m'}"
|
||||||
|
: "${COLOR_YELLOW_BOLD:=$'\e[1;33m'}"
|
||||||
|
: "${COLOR_SILVER=$'\e[37m'}"
|
||||||
|
: "${COLOR_LIGHT_GREY=$'\e[249m'}"
|
||||||
|
: "${COLOR_BRIGHT_PURPLE=$'\e[35;1m'}"
|
||||||
|
: "${BOLD:=$'\e[1m'}"
|
||||||
|
: "${ITALIC:=$'\e[3m'}"
|
||||||
|
: "${COLOR_RESET:=$'\e[00m'}"
|
||||||
|
else
|
||||||
|
: "${BOLD:=$'\e[1m'}"
|
||||||
|
: "${COLOR_RESET:=$'\e[00m'}"
|
||||||
|
: "${ITALIC:=$'\e[3m'}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
#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
|
||||||
|
|
||||||
|
source "$ScriptWorkDir/functions.sh"
|
||||||
|
|
||||||
|
: <<'END_COMMENT2'
|
||||||
|
TABLE photos (
|
||||||
|
PhotoID VARCHAR(16) PRIMARY KEY,
|
||||||
|
Title VARCHAR(50),
|
||||||
|
Description VARCHAR(100),
|
||||||
|
Posted VARCHAR(16),
|
||||||
|
Taken VARCHAR(16),
|
||||||
|
View INT,
|
||||||
|
Favorites INT,
|
||||||
|
Comments INT,
|
||||||
|
Tags VARCHAR(300),
|
||||||
|
Url VARCHAR(75),
|
||||||
|
AlbumID VARCHAR(100),
|
||||||
|
GroupID VARCHAR(150)
|
||||||
|
)
|
||||||
|
|
||||||
|
TABLE groups (
|
||||||
|
GroupID VARCHAR(16) PRIMARY KEY,
|
||||||
|
GroupTitle VARCHAR(75),
|
||||||
|
GroupUrl VARCHAR(50)
|
||||||
|
)
|
||||||
|
|
||||||
|
TABLE albums (
|
||||||
|
AlbumID INT PRIMARY KEY,
|
||||||
|
AlbumTitle VARCHAR(50) UNIQUE
|
||||||
|
)
|
||||||
|
END_COMMENT2
|
||||||
|
|
||||||
|
|
||||||
|
###################################################
|
||||||
|
# #
|
||||||
|
# If database flick.db doesn't exist, create it ! #
|
||||||
|
# #
|
||||||
|
###################################################
|
||||||
|
|
||||||
|
dir=$(dirname "$0")
|
||||||
|
|
||||||
|
if [ ! -f ./flickr.db ]; then
|
||||||
|
./insert.sh
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
perpage=500
|
||||||
|
pages=
|
||||||
|
# getinfo_people
|
||||||
|
username=
|
||||||
|
userid=
|
||||||
|
path_alias=
|
||||||
|
firstdatetaken=
|
||||||
|
photosurl=
|
||||||
|
profileurl=
|
||||||
|
# getinfo_photos
|
||||||
|
photo_id=
|
||||||
|
photo_title=
|
||||||
|
photo_description=
|
||||||
|
photo_posted=
|
||||||
|
photo_taken=
|
||||||
|
photo_view=
|
||||||
|
photo_comments=
|
||||||
|
photo_tags=
|
||||||
|
photo_url=
|
||||||
|
# getAllContexts_photos
|
||||||
|
title_alb=
|
||||||
|
id_alb=
|
||||||
|
title_gro=
|
||||||
|
id_gro=
|
||||||
|
url_gro=
|
||||||
|
# getFavorites_photos
|
||||||
|
favorites=
|
||||||
|
# search_photos
|
||||||
|
search=
|
||||||
|
|
||||||
|
: <<'END_COMMENT2'
|
||||||
|
|
||||||
|
echo -e "\n${BOLD}Most viewed:${COLOR_RESET}"
|
||||||
|
|
||||||
|
req1="SELECT * FROM photos ORDER BY View DESC LIMIT 10;"
|
||||||
|
result1=$(sqlite3 "$ScriptWorkDir/flickr.db" "$req1")
|
||||||
|
|
||||||
|
echo
|
||||||
|
printf "%s%15s %50s %8s %s\n" "${BOLD}" "ID" "Title" "View" "${COLOR_RESET}"
|
||||||
|
|
||||||
|
if [ -n "$result1" ]; then
|
||||||
|
array1=()
|
||||||
|
keywords=()
|
||||||
|
cmpt=1
|
||||||
|
while IFS='|' read -ra array1;
|
||||||
|
do
|
||||||
|
photo_id="${array1[0]}"
|
||||||
|
photo_title="${array1[1]}"
|
||||||
|
photo_view="${array1[5]}"
|
||||||
|
|
||||||
|
printf "%15s %50s %8d \n" "$photo_id" "$photo_title" "$photo_view"
|
||||||
|
|
||||||
|
cmpt=$((cmpt+1))
|
||||||
|
done <<< "$result1"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
echo -e "\n${BOLD}Most commanted:${COLOR_RESET}"
|
||||||
|
|
||||||
|
req2="SELECT * FROM photos ORDER BY Comments DESC LIMIT 10;"
|
||||||
|
result2=$(sqlite3 "$ScriptWorkDir/flickr.db" "$req2")
|
||||||
|
|
||||||
|
echo
|
||||||
|
printf "%s%15s %50s %8s %s\n" "${BOLD}" "ID" "Title" "Comments" "${COLOR_RESET}"
|
||||||
|
|
||||||
|
if [ -n "$result2" ]; then
|
||||||
|
array2=()
|
||||||
|
keywords=()
|
||||||
|
cmpt=1
|
||||||
|
while IFS='|' read -ra array2;
|
||||||
|
do
|
||||||
|
photo_id="${array2[0]}"
|
||||||
|
photo_title="${array2[1]}"
|
||||||
|
photo_comments="${array2[7]}"
|
||||||
|
|
||||||
|
printf "%15s %50s %8d \n" "$photo_id" "$photo_title" "$photo_comments"
|
||||||
|
|
||||||
|
cmpt=$((cmpt+1))
|
||||||
|
done <<< "$result2"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
echo -e "\n${BOLD}Most favoris:${COLOR_RESET}"
|
||||||
|
|
||||||
|
req3="SELECT * FROM photos ORDER BY Favorites DESC LIMIT 10;"
|
||||||
|
result3=$(sqlite3 "$ScriptWorkDir/flickr.db" "$req3")
|
||||||
|
|
||||||
|
echo
|
||||||
|
printf "%s%15s %50s %8s %s\n" "${BOLD}" "ID" "Title" "Favorites" "${COLOR_RESET}"
|
||||||
|
|
||||||
|
if [ -n "$result3" ]; then
|
||||||
|
array3=()
|
||||||
|
keywords=()
|
||||||
|
cmpt=1
|
||||||
|
while IFS='|' read -ra array2;
|
||||||
|
do
|
||||||
|
photo_id="${array3[0]}"
|
||||||
|
photo_title="${array3[1]}"
|
||||||
|
photo_comments="${array3[6]}"
|
||||||
|
|
||||||
|
printf "%15s %50s %8d \n" "$photo_id" "$photo_title" "$photo_comments"
|
||||||
|
|
||||||
|
cmpt=$((cmpt+1))
|
||||||
|
done <<< "$result3"
|
||||||
|
fi
|
||||||
|
END_COMMENT2
|
||||||
|
|
||||||
|
|
||||||
|
echo -e "\n${BOLD}Request:${COLOR_RESET}"
|
||||||
|
|
||||||
|
_user_id=14829919@N00
|
||||||
|
|
||||||
|
#request="tags=deer,biche"
|
||||||
|
|
||||||
|
# tags, tag_mode (OR/AND), text (-a term to exclude)
|
||||||
|
# min_upload_date, max_upload_date, min_taken_date, max_taken_date (timestamp or mysql datetime ('YYYY-MM-DD hh:mm:ss'))
|
||||||
|
# sort (date-posted-asc, date-posted-desc, date-taken-asc, date-taken-desc, interestingness-desc, interestingness-asc, and relevance.)
|
||||||
|
# group_id, user_id, media (all/photos/videos), has_geo
|
||||||
|
# extras (description, license, date_upload, date_taken, owner_name, icon_server, original_format, last_update, geo, tags, machine_tags, o_dims, views, media, path_alias, url_sq, url_t, url_s, url_q, url_m, url_n, url_z, url_c, url_l, url_o)
|
||||||
|
|
||||||
|
|
||||||
|
# text
|
||||||
|
request=""
|
||||||
|
while :
|
||||||
|
do
|
||||||
|
read -e -p "Search text (prefix - to exclude term, or q to quit) in library: " search
|
||||||
|
|
||||||
|
[ "$search" == "q" ] && break
|
||||||
|
if [ "$search" != "q" ] && [ -n "$search" ]; then
|
||||||
|
request="text=${search// /+}"
|
||||||
|
|
||||||
|
[ -n "$request" ] && break 2
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
: <<'END_COMMENT3'
|
||||||
|
|
||||||
|
#tag
|
||||||
|
# &text=rencontre+entre+2&format=json
|
||||||
|
request=""
|
||||||
|
while :
|
||||||
|
do
|
||||||
|
read -e -p "Search tags ( or q to quit) in library: " search
|
||||||
|
|
||||||
|
[ "$search" == "q" ] && break
|
||||||
|
if [ "$search" != "q" ] && [ -n "$search" ]; then
|
||||||
|
request="tags=${search// /,}"
|
||||||
|
echo "$request"
|
||||||
|
|
||||||
|
[ -n "$request" ] && break 2
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
#media
|
||||||
|
# &media=video&format=json
|
||||||
|
request=""
|
||||||
|
while :
|
||||||
|
do
|
||||||
|
read -e -p "Search medias (all/photo/video or q to quit) in library: " search
|
||||||
|
|
||||||
|
[ "$search" == "q" ] && break
|
||||||
|
|
||||||
|
if [ "$search" != "q" ] && [[ "$search" =~ all|photo*|video* ]]; then
|
||||||
|
request="media=${search}"
|
||||||
|
|
||||||
|
[ -n "$request" ] && break 2
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
#date
|
||||||
|
request=""
|
||||||
|
utmin=""
|
||||||
|
utmax=""
|
||||||
|
while :
|
||||||
|
do
|
||||||
|
read -e -p "Search dates ('YYYY-MM-DD' or q to quit) in library, from: " search_from
|
||||||
|
[ "$search_from" == "q" ] && break
|
||||||
|
|
||||||
|
read -e -p "Search dates ('YYYY-MM-DD') in library, to: " search_to
|
||||||
|
|
||||||
|
read -e -p "(U)pload date or (T)aken date:" x
|
||||||
|
|
||||||
|
if [ "$x" == "u" ] || [ "$x" == "U" ]; then
|
||||||
|
utmin="min_upload_date"
|
||||||
|
utmax="max_upload_date"
|
||||||
|
elif [ "$x" == "t" ] || [ "$x" == "T" ]; then
|
||||||
|
utmin="min_taken_date"
|
||||||
|
utmax="max_taken_date"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$utmin" ] && [ -n "$utmax" ]; then
|
||||||
|
if [[ "$search_from" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]] && [[ "$search_to" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
|
||||||
|
|
||||||
|
search_from="$search_from 00:00:00"
|
||||||
|
search_to="$search_to 23:59:59"
|
||||||
|
|
||||||
|
#request="min_taken_date=${search_from}&max_taken_date=${search_to}"
|
||||||
|
request="$utmin=${search_from}&$utmax=${search_to}"
|
||||||
|
|
||||||
|
request="${request// /+}"
|
||||||
|
request="${request//:/%3A}"
|
||||||
|
|
||||||
|
echo "$request"
|
||||||
|
|
||||||
|
[ -n "$request" ] && break 2
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
END_COMMENT3
|
||||||
|
|
||||||
|
if [ -n "$request" ]; then
|
||||||
|
params_search=("$api_key" "$_user_id" "$request")
|
||||||
|
search_photos "${params_search[@]}"
|
||||||
|
fi
|
||||||
Reference in New Issue
Block a user