diff --git a/scripts/overview.php b/scripts/overview.php index 8673a85..c213a22 100644 --- a/scripts/overview.php +++ b/scripts/overview.php @@ -37,6 +37,33 @@ if(isset($_GET['custom_image'])){ die(); } +if(isset($_GET['blacklistimage'])) { + if(isset($_SERVER['PHP_AUTH_USER'])) { + $submittedpwd = $_SERVER['PHP_AUTH_PW']; + $submitteduser = $_SERVER['PHP_AUTH_USER']; + if($submittedpwd == $config['CADDY_PWD'] && $submitteduser == 'birdnet'){ + + $imageid = $_GET['blacklistimage']; + $file_handle = fopen($home."/BirdNET-Pi/scripts/blacklisted_images.txt", 'a+'); + fwrite($file_handle, $imageid . "\n"); + fclose($file_handle); + unset($_SESSION['images']); + die("OK"); + } else { + header('WWW-Authenticate: Basic realm="My Realm"'); + header('HTTP/1.0 401 Unauthorized'); + echo 'You must be authenticated.'; + exit; + } + } else { + header('WWW-Authenticate: Basic realm="My Realm"'); + header('HTTP/1.0 401 Unauthorized'); + echo 'You must be authenticated.'; + exit; + } + +} + if(isset($_GET['fetch_chart_string']) && $_GET['fetch_chart_string'] == "true") { $myDate = date('Y-m-d'); $chart = "Combo-$myDate.png"; @@ -107,17 +134,21 @@ if(isset($_GET['ajax_detections']) && $_GET['ajax_detections'] == "true" && isse } } - // Make the API call + // Read the blacklisted image ids from the file into an array + $blacklisted_ids = array_map('trim', file($home."/BirdNET-Pi/scripts/blacklisted_images.txt")); + + // Make the API call $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).$comnameprefix."&sort=relevance".$args."&per_page=5&media=photos&format=json&nojsoncallback=1"), true)["photos"]["photo"]; - // Find the first photo that is not blacklisted + // Find the first photo that is not blacklisted or is not the specific blacklisted id $photo = null; foreach ($flickrjson as $flickrphoto) { - if ($flickrphoto["id"] !== "4892923285") { + if ($flickrphoto["id"] !== "4892923285" && !in_array($flickrphoto["id"], $blacklisted_ids)) { $photo = $flickrphoto; break; } } + $modaltext = "https://flickr.com/photos/".$photo["owner"]."/".$photo["id"]; $authorlink = "https://flickr.com/people/".$photo["owner"]; $imageurl = 'https://farm' .$photo["farm"]. '.static.flickr.com/' .$photo["server"]. '/' .$photo["id"]. '_' .$photo["secret"]. '.jpg'; @@ -254,15 +285,18 @@ body::-webkit-scrollbar {
- +

+
diff --git a/scripts/todays_detections.php b/scripts/todays_detections.php index 495e0f2..4a86499 100644 --- a/scripts/todays_detections.php +++ b/scripts/todays_detections.php @@ -264,13 +264,16 @@ if(isset($_GET['ajax_detections']) && $_GET['ajax_detections'] == "true" ) { break; } } + // Read the blacklisted image ids from the file into an array + $blacklisted_ids = array_map('trim', file($home."/BirdNET-Pi/scripts/blacklisted_images.txt")); + // Make the API call $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).$comnameprefix."&sort=relevance".$args."&per_page=5&media=photos&format=json&nojsoncallback=1"), true)["photos"]["photo"]; - // Find the first photo that is not blacklisted + // Find the first photo that is not blacklisted or is not the specific blacklisted id $photo = null; foreach ($flickrjson as $flickrphoto) { - if ($flickrphoto["id"] !== "4892923285") { + if ($flickrphoto["id"] !== "4892923285" && !in_array($flickrphoto["id"], $blacklisted_ids)) { $photo = $flickrphoto; break; } @@ -378,16 +381,19 @@ die();
- +

- + +