prepare("
SELECT d_today.Com_Name, d_today.Sci_Name, d_today.Date, d_today.Time, d_today.Confidence, d_today.File_Name,
MAX(d_today.Confidence) as MaxConfidence,
(SELECT MAX(Date) FROM detections d_prev WHERE d_prev.Com_Name = d_today.Com_Name AND d_prev.Date < DATE('now', 'localtime')) as LastSeenDate,
(SELECT COUNT(*) FROM detections d_occ WHERE d_occ.Com_Name = d_today.Com_Name AND d_occ.Date = DATE('now', 'localtime')) as OccurrenceCount
FROM detections d_today
WHERE d_today.Date = DATE('now', 'localtime')
GROUP BY d_today.Com_Name
");
ensure_db_ok($statement);
$result = $statement->execute();
$new_species = [];
$rare_species = [];
$rare_species_threshold = isset($config['RARE_SPECIES_THRESHOLD']) ? $config['RARE_SPECIES_THRESHOLD'] : 30;
while ($row = $result->fetchArray(SQLITE3_ASSOC)) {
$last_seen_date = $row['LastSeenDate'];
if ($last_seen_date === NULL) {
$new_species[] = $row;
} else {
$date1 = new DateTime($last_seen_date);
$date2 = new DateTime('now');
$interval = $date1->diff($date2);
$days_ago = $interval->days;
if ($days_ago > $rare_species_threshold) {
$row['DaysAgo'] = $days_ago;
$rare_species[] = $row;
}
}
}
if (!isset($_SESSION['images'])) {
$_SESSION['images'] = [];
}
$flickr = null;
function display_species($species_list, $title, $show_last_seen=false) {
global $config, $_SESSION, $flickr;
$species_count = count($species_list);
if ($species_count > 0): ?>
detected today!
5): ?>
get_uid_from_db()['uid']) {
unset($_SESSION['images']);
$_SESSION["FLICKR_FILTER_EMAIL"] = $flickr->get_uid_from_db()['uid'];
}
// Check if the Flickr image has been cached in the session
$key = array_search($comname, array_column($_SESSION['images'], 0));
if ($key !== false) {
$image = $_SESSION['images'][$key];
} else {
// Retrieve the image from Flickr API and cache it
$flickr_cache = $flickr->get_image($todaytable['Sci_Name']);
array_push($_SESSION["images"], array($comname, $flickr_cache["image_url"], $flickr_cache["title"], $flickr_cache["photos_url"], $flickr_cache["author_url"], $flickr_cache["license_url"]));
$image = $_SESSION['images'][count($_SESSION['images']) - 1];
}
$image_url = $image[1] ?? ""; // Get the image URL if available
}
$last_seen_text = "";
if ($show_last_seen && isset($todaytable['DaysAgo'])) {
$days_ago = $todaytable['DaysAgo'];
if ($days_ago > 30) {
$months_ago = floor($days_ago / 30);
$last_seen_text = "
Last seen: {$months_ago}mo ago";
} else {
$last_seen_text = "
Last seen: {$days_ago}d ago";
}
}
$occurrence_text = "";
if (isset($todaytable['OccurrenceCount']) && $todaytable['OccurrenceCount'] > 1) {
$occurrence_text = " ({$todaytable['OccurrenceCount']}x)";
}
?>
|
|
Max confidence: ' . round($todaytable['Confidence'] * 100 ) . '%' . $occurrence_text;
echo " First detection: {$todaytable['Time']}";
echo $last_seen_text;
?> |
";
}
?>
5 Most Recent Detections
Loading...
Currently Analyzing
";
?>