Flickr display images only by user ID
Now you can upload your own bird images to your Flickr account and see them in BirdNET-Pi!
This commit is contained in:
@@ -64,8 +64,12 @@ APPRISE_NOTIFY_EACH_DETECTION=0
|
|||||||
APPRISE_NOTIFY_NEW_SPECIES=0
|
APPRISE_NOTIFY_NEW_SPECIES=0
|
||||||
|
|
||||||
#---------------------- Flickr Images API Configuration -----------------------#
|
#---------------------- Flickr Images API Configuration -----------------------#
|
||||||
|
## If FLICKR_API_KEY is set, the web interface will try and display bird images
|
||||||
|
## for each detection. If FLICKR_FILTER_EMAIL is set, the images will only be
|
||||||
|
## displayed from a particular Flickr user (e.g. yourself).
|
||||||
|
|
||||||
FLICKR_API_KEY=
|
FLICKR_API_KEY=
|
||||||
|
FLICKR_FILTER_EMAIL=
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
#-------------------------------- Defaults ----------------------------------#
|
#-------------------------------- Defaults ----------------------------------#
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ if(isset($_GET["latitude"])){
|
|||||||
$apprise_notification_title = $_GET['apprise_notification_title'];
|
$apprise_notification_title = $_GET['apprise_notification_title'];
|
||||||
$apprise_notification_body = $_GET['apprise_notification_body'];
|
$apprise_notification_body = $_GET['apprise_notification_body'];
|
||||||
$flickr_api_key = $_GET['flickr_api_key'];
|
$flickr_api_key = $_GET['flickr_api_key'];
|
||||||
|
$flickr_filter_email = $_GET["flickr_filter_email"];
|
||||||
$language = $_GET["language"];
|
$language = $_GET["language"];
|
||||||
|
|
||||||
if(isset($_GET['apprise_notify_each_detection'])) {
|
if(isset($_GET['apprise_notify_each_detection'])) {
|
||||||
@@ -79,6 +80,7 @@ if(isset($_GET["latitude"])){
|
|||||||
$contents = preg_replace("/APPRISE_NOTIFY_NEW_SPECIES=.*/", "APPRISE_NOTIFY_NEW_SPECIES=$apprise_notify_new_species", $contents);
|
$contents = preg_replace("/APPRISE_NOTIFY_NEW_SPECIES=.*/", "APPRISE_NOTIFY_NEW_SPECIES=$apprise_notify_new_species", $contents);
|
||||||
$contents = preg_replace("/FLICKR_API_KEY=.*/", "FLICKR_API_KEY=$flickr_api_key", $contents);
|
$contents = preg_replace("/FLICKR_API_KEY=.*/", "FLICKR_API_KEY=$flickr_api_key", $contents);
|
||||||
$contents = preg_replace("/DATABASE_LANG=.*/", "DATABASE_LANG=$language", $contents);
|
$contents = preg_replace("/DATABASE_LANG=.*/", "DATABASE_LANG=$language", $contents);
|
||||||
|
$contents = preg_replace("/FLICKR_FILTER_EMAIL=.*/", "FLICKR_FILTER_EMAIL=$flickr_filter_email", $contents);
|
||||||
|
|
||||||
$contents2 = file_get_contents("./scripts/thisrun.txt");
|
$contents2 = file_get_contents("./scripts/thisrun.txt");
|
||||||
$contents2 = preg_replace("/LATITUDE=.*/", "LATITUDE=$latitude", $contents2);
|
$contents2 = preg_replace("/LATITUDE=.*/", "LATITUDE=$latitude", $contents2);
|
||||||
@@ -90,6 +92,7 @@ if(isset($_GET["latitude"])){
|
|||||||
$contents2 = preg_replace("/APPRISE_NOTIFY_NEW_SPECIES=.*/", "APPRISE_NOTIFY_NEW_SPECIES=$apprise_notify_new_species", $contents2);
|
$contents2 = preg_replace("/APPRISE_NOTIFY_NEW_SPECIES=.*/", "APPRISE_NOTIFY_NEW_SPECIES=$apprise_notify_new_species", $contents2);
|
||||||
$contents2 = preg_replace("/FLICKR_API_KEY=.*/", "FLICKR_API_KEY=$flickr_api_key", $contents2);
|
$contents2 = preg_replace("/FLICKR_API_KEY=.*/", "FLICKR_API_KEY=$flickr_api_key", $contents2);
|
||||||
$contents2 = preg_replace("/DATABASE_LANG=.*/", "DATABASE_LANG=$language", $contents2);
|
$contents2 = preg_replace("/DATABASE_LANG=.*/", "DATABASE_LANG=$language", $contents2);
|
||||||
|
$contents2 = preg_replace("/FLICKR_FILTER_EMAIL=.*/", "FLICKR_FILTER_EMAIL=$flickr_filter_email", $contents2);
|
||||||
|
|
||||||
|
|
||||||
$fh = fopen("/etc/birdnet/birdnet.conf", "w");
|
$fh = fopen("/etc/birdnet/birdnet.conf", "w");
|
||||||
@@ -187,6 +190,8 @@ https://discordapp.com/api/webhooks/{WebhookID}/{WebhookToken}
|
|||||||
<h3>Bird Photos from Flickr</h3>
|
<h3>Bird Photos from Flickr</h3>
|
||||||
<label for="flickr_api_key">Flickr API Key: </label>
|
<label for="flickr_api_key">Flickr API Key: </label>
|
||||||
<input name="flickr_api_key" type="text" value="<?php print($config['FLICKR_API_KEY']);?>"/><br>
|
<input name="flickr_api_key" type="text" value="<?php print($config['FLICKR_API_KEY']);?>"/><br>
|
||||||
|
<label for="flickr_filter_email">Only search photos from this Flickr user?: </label>
|
||||||
|
<input name="flickr_filter_email" type="email" placeholder="myflickraccount@gmail.com" value="<?php print($config['FLICKR_FILTER_EMAIL']);?>"/><br>
|
||||||
<p>Set your Flickr API key to enable the display of bird images next to detections. <a target="_blank" href="https://www.flickr.com/services/api/misc.api_keys.html">Get your free key here.</a></p>
|
<p>Set your Flickr API key to enable the display of bird images next to detections. <a target="_blank" href="https://www.flickr.com/services/api/misc.api_keys.html">Get your free key here.</a></p>
|
||||||
<h3>Localization</h3>
|
<h3>Localization</h3>
|
||||||
<label for="language">Database Language: </label>
|
<label for="language">Database Language: </label>
|
||||||
|
|||||||
@@ -77,8 +77,12 @@ APPRISE_NOTIFY_EACH_DETECTION=0
|
|||||||
APPRISE_NOTIFY_NEW_SPECIES=0
|
APPRISE_NOTIFY_NEW_SPECIES=0
|
||||||
|
|
||||||
#---------------------- Flickr Images API Configuration -----------------------#
|
#---------------------- Flickr Images API Configuration -----------------------#
|
||||||
|
## If FLICKR_API_KEY is set, the web interface will try and display bird images
|
||||||
|
## for each detection. If FLICKR_FILTER_EMAIL is set, the images will only be
|
||||||
|
## displayed from a particular Flickr user (e.g. yourself).
|
||||||
|
|
||||||
FLICKR_API_KEY=
|
FLICKR_API_KEY=
|
||||||
|
FLICKR_FILTER_EMAIL=
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
#-------------------------------- Defaults ----------------------------------#
|
#-------------------------------- Defaults ----------------------------------#
|
||||||
|
|||||||
+17
-2
@@ -67,6 +67,21 @@ if(isset($_GET['ajax_detections']) && $_GET['ajax_detections'] == "true" && isse
|
|||||||
if($_GET['only_name'] == "true") { echo $comname.",".$filename;die(); }
|
if($_GET['only_name'] == "true") { echo $comname.",".$filename;die(); }
|
||||||
|
|
||||||
if (!empty($config["FLICKR_API_KEY"])) {
|
if (!empty($config["FLICKR_API_KEY"])) {
|
||||||
|
|
||||||
|
if(!empty($config["FLICKR_FILTER_EMAIL"])) {
|
||||||
|
if(!isset($_SESSION["FLICKR_FILTER_EMAIL"])) {
|
||||||
|
unset($_SESSION['images']);
|
||||||
|
$_SESSION['FLICKR_FILTER_EMAIL'] = json_decode(file_get_contents("https://www.flickr.com/services/rest/?method=flickr.people.findByEmail&api_key=".$config["FLICKR_API_KEY"]."&find_email=".$config["FLICKR_FILTER_EMAIL"]."&format=json&nojsoncallback=1"), true)["user"]["nsid"];
|
||||||
|
}
|
||||||
|
$emailargs = "&user_id=".$_SESSION['FLICKR_FILTER_EMAIL'];
|
||||||
|
} else {
|
||||||
|
if(isset($_SESSION["FLICKR_FILTER_EMAIL"])) {
|
||||||
|
unset($_SESSION["FLICKR_FILTER_EMAIL"]);
|
||||||
|
unset($_SESSION['images']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// if we already searched flickr for this species before, use the previous image rather than doing an unneccesary api call
|
// if we already searched flickr for this species before, use the previous image rather than doing an unneccesary api call
|
||||||
$key = array_search($comname, array_column($_SESSION['images'], 0));
|
$key = array_search($comname, array_column($_SESSION['images'], 0));
|
||||||
if($key !== false) {
|
if($key !== false) {
|
||||||
@@ -84,7 +99,7 @@ if(isset($_GET['ajax_detections']) && $_GET['ajax_detections'] == "true" && isse
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$flickrjson = json_decode(file_get_contents("https://www.flickr.com/services/rest/?method=flickr.photos.search&api_key=".$config["FLICKR_API_KEY"]."&text=".str_replace(" ", "%20", $engname)."&license=2%2C3%2C4%2C5%2C6%2C9&sort=relevance&per_page=5&orientation=square,portrait&format=json&media=photos&nojsoncallback=1"), true)["photos"]["photo"][0];
|
$flickrjson = json_decode(file_get_contents("https://www.flickr.com/services/rest/?method=flickr.photos.search&api_key=".$config["FLICKR_API_KEY"]."&text=".str_replace(" ", "%20", $engname)."&license=2%2C3%2C4%2C5%2C6%2C9&sort=relevance".$emailargs."&per_page=5&orientation=square,portrait&format=json&media=photos&nojsoncallback=1"), true)["photos"]["photo"][0];
|
||||||
$modaltext = "https://flickr.com/photos/".$flickrjson["owner"]."/".$flickrjson["id"];
|
$modaltext = "https://flickr.com/photos/".$flickrjson["owner"]."/".$flickrjson["id"];
|
||||||
$authorlink = "https://flickr.com/people/".$flickrjson["owner"];
|
$authorlink = "https://flickr.com/people/".$flickrjson["owner"];
|
||||||
$imageurl = 'https://farm' .$flickrjson["farm"]. '.static.flickr.com/' .$flickrjson["server"]. '/' .$flickrjson["id"]. '_' .$flickrjson["secret"]. '.jpg';
|
$imageurl = 'https://farm' .$flickrjson["farm"]. '.static.flickr.com/' .$flickrjson["server"]. '/' .$flickrjson["id"]. '_' .$flickrjson["secret"]. '.jpg';
|
||||||
@@ -117,7 +132,7 @@ if(isset($_GET['ajax_detections']) && $_GET['ajax_detections'] == "true" && isse
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="relative"><a target="_blank" href="index.php?filename=<?php echo $mostrecent['File_Name']; ?>"><img class="copyimage" width="25" height="25" src="images/copy.png"></a>
|
<td class="relative"><a target="_blank" href="index.php?filename=<?php echo $mostrecent['File_Name']; ?>"><img class="copyimage" width="25" height="25" src="images/copy.png"></a>
|
||||||
<div class="centered_image_container" style="margin-bottom: 0px !important;">
|
<div class="centered_image_container" style="margin-bottom: 0px !important;">
|
||||||
<?php if(!empty($config["FLICKR_API_KEY"])) { ?>
|
<?php if(!empty($config["FLICKR_API_KEY"]) && strlen($image[2]) > 0) { ?>
|
||||||
<img onclick='setModalText(<?php echo $iterations; ?>,"<?php echo urlencode($image[2]); ?>", "<?php echo $image[3]; ?>", "<?php echo $image[4]; ?>", "<?php echo $image[1]; ?>")' src="<?php echo $image[1]; ?>" class="img1">
|
<img onclick='setModalText(<?php echo $iterations; ?>,"<?php echo urlencode($image[2]); ?>", "<?php echo $image[3]; ?>", "<?php echo $image[4]; ?>", "<?php echo $image[1]; ?>")' src="<?php echo $image[1]; ?>" class="img1">
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
<form action="" method="GET">
|
<form action="" method="GET">
|
||||||
|
|||||||
@@ -121,6 +121,19 @@ if(isset($_GET['ajax_detections']) && $_GET['ajax_detections'] == "true" ) {
|
|||||||
|
|
||||||
if (!empty($config["FLICKR_API_KEY"]) && (isset($_GET['display_limit']) || isset($_GET['hard_limit']))) {
|
if (!empty($config["FLICKR_API_KEY"]) && (isset($_GET['display_limit']) || isset($_GET['hard_limit']))) {
|
||||||
|
|
||||||
|
if(!empty($config["FLICKR_FILTER_EMAIL"])) {
|
||||||
|
if(!isset($_SESSION["FLICKR_FILTER_EMAIL"])) {
|
||||||
|
unset($_SESSION['images']);
|
||||||
|
$_SESSION['FLICKR_FILTER_EMAIL'] = json_decode(file_get_contents("https://www.flickr.com/services/rest/?method=flickr.people.findByEmail&api_key=".$config["FLICKR_API_KEY"]."&find_email=".$config["FLICKR_FILTER_EMAIL"]."&format=json&nojsoncallback=1"), true)["user"]["nsid"];
|
||||||
|
}
|
||||||
|
$emailargs = "&user_id=".$_SESSION['FLICKR_FILTER_EMAIL'];
|
||||||
|
} else {
|
||||||
|
if(isset($_SESSION["FLICKR_FILTER_EMAIL"])) {
|
||||||
|
unset($_SESSION["FLICKR_FILTER_EMAIL"]);
|
||||||
|
unset($_SESSION['images']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// if we already searched flickr for this species before, use the previous image rather than doing an unneccesary api call
|
// if we already searched flickr for this species before, use the previous image rather than doing an unneccesary api call
|
||||||
$key = array_search($comname, array_column($_SESSION['images'], 0));
|
$key = array_search($comname, array_column($_SESSION['images'], 0));
|
||||||
if($key !== false) {
|
if($key !== false) {
|
||||||
@@ -138,7 +151,7 @@ if(isset($_GET['ajax_detections']) && $_GET['ajax_detections'] == "true" ) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$flickrjson = json_decode(file_get_contents("https://www.flickr.com/services/rest/?method=flickr.photos.search&api_key=".$config["FLICKR_API_KEY"]."&text=".str_replace(" ", "%20", $engname)."&license=2%2C3%2C4%2C5%2C6%2C9&sort=relevance&per_page=5&orientation=square,portrait&media=photos&format=json&nojsoncallback=1"), true)["photos"]["photo"][0];
|
$flickrjson = json_decode(file_get_contents("https://www.flickr.com/services/rest/?method=flickr.photos.search&api_key=".$config["FLICKR_API_KEY"]."&text=".str_replace(" ", "%20", $engname)."&license=2%2C3%2C4%2C5%2C6%2C9&sort=relevance".$emailargs."&per_page=5&orientation=square,portrait&media=photos&format=json&nojsoncallback=1"), true)["photos"]["photo"][0];
|
||||||
$modaltext = "https://flickr.com/photos/".$flickrjson["owner"]."/".$flickrjson["id"];
|
$modaltext = "https://flickr.com/photos/".$flickrjson["owner"]."/".$flickrjson["id"];
|
||||||
$authorlink = "https://flickr.com/people/".$flickrjson["owner"];
|
$authorlink = "https://flickr.com/people/".$flickrjson["owner"];
|
||||||
$imageurl = 'https://farm' .$flickrjson["farm"]. '.static.flickr.com/' .$flickrjson["server"]. '/' .$flickrjson["id"]. '_' .$flickrjson["secret"]. '.jpg';
|
$imageurl = 'https://farm' .$flickrjson["farm"]. '.static.flickr.com/' .$flickrjson["server"]. '/' .$flickrjson["id"]. '_' .$flickrjson["secret"]. '.jpg';
|
||||||
@@ -152,7 +165,7 @@ if(isset($_GET['ajax_detections']) && $_GET['ajax_detections'] == "true" ) {
|
|||||||
<td class="relative"><a target="_blank" href="index.php?filename=<?php echo $todaytable['File_Name']; ?>"><img class="copyimage" width=25 src="images/copy.png"></a>
|
<td class="relative"><a target="_blank" href="index.php?filename=<?php echo $todaytable['File_Name']; ?>"><img class="copyimage" width=25 src="images/copy.png"></a>
|
||||||
|
|
||||||
<div class="centered_image_container">
|
<div class="centered_image_container">
|
||||||
<?php if(!empty($config["FLICKR_API_KEY"])) { ?>
|
<?php if(!empty($config["FLICKR_API_KEY"]) && strlen($image[2]) > 0) { ?>
|
||||||
<img onclick='setModalText(<?php echo $iterations; ?>,"<?php echo urlencode($image[2]); ?>", "<?php echo $image[3]; ?>", "<?php echo $image[4]; ?>", "<?php echo $image[1]; ?>")' src="<?php echo $image[1]; ?>" class="img1">
|
<img onclick='setModalText(<?php echo $iterations; ?>,"<?php echo urlencode($image[2]); ?>", "<?php echo $image[3]; ?>", "<?php echo $image[4]; ?>", "<?php echo $image[1]; ?>")' src="<?php echo $image[1]; ?>" class="img1">
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
|
|
||||||
|
|||||||
@@ -81,5 +81,9 @@ if [ ! -f $HOME/BirdNET-Pi/model/labels.txt ];then
|
|||||||
&& logger "[$0] Installed new language label file for '$DATABASE_LANG'";
|
&& logger "[$0] Installed new language label file for '$DATABASE_LANG'";
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if ! grep FLICKR_FILTER_EMAIL /etc/birdnet/birdnet.conf &>/dev/null;then
|
||||||
|
sudo -u$USER echo "FLICKR_FILTER_EMAIL=" >> /etc/birdnet/birdnet.conf
|
||||||
|
fi
|
||||||
|
|
||||||
sudo systemctl daemon-reload
|
sudo systemctl daemon-reload
|
||||||
restart_services.sh
|
restart_services.sh
|
||||||
|
|||||||
Reference in New Issue
Block a user