Merge branch 'development'
This commit is contained in:
@@ -63,6 +63,8 @@ APPRISE_NOTIFICATION_BODY="A \$sciname \$comname was just detected with a confid
|
||||
APPRISE_NOTIFY_EACH_DETECTION=0
|
||||
APPRISE_NOTIFY_NEW_SPECIES=0
|
||||
APPRISE_WEEKLY_REPORT=1
|
||||
APPRISE_NOTIFY_NEW_SPECIES_EACH_DAY=0
|
||||
APPRISE_MINIMUM_SECONDS_BETWEEN_NOTIFICATIONS_PER_SPECIES=0
|
||||
|
||||
#---------------------- Flickr Images API Configuration -----------------------#
|
||||
## If FLICKR_API_KEY is set, the web interface will try and display bird images
|
||||
|
||||
+10
-1
@@ -26,6 +26,7 @@ if(isset($_GET["latitude"])){
|
||||
$apprise_input = $_GET['apprise_input'];
|
||||
$apprise_notification_title = $_GET['apprise_notification_title'];
|
||||
$apprise_notification_body = $_GET['apprise_notification_body'];
|
||||
$minimum_time_limit = $_GET['minimum_time_limit'];
|
||||
$flickr_api_key = $_GET['flickr_api_key'];
|
||||
$flickr_filter_email = $_GET["flickr_filter_email"];
|
||||
$language = $_GET["language"];
|
||||
@@ -110,6 +111,7 @@ if(isset($_GET["latitude"])){
|
||||
$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("/FLICKR_FILTER_EMAIL=.*/", "FLICKR_FILTER_EMAIL=$flickr_filter_email", $contents);
|
||||
$contents = preg_replace("/APPRISE_MINIMUM_SECONDS_BETWEEN_NOTIFICATIONS_PER_SPECIES=.*/", "APPRISE_MINIMUM_SECONDS_BETWEEN_NOTIFICATIONS_PER_SPECIES=$minimum_time_limit", $contents);
|
||||
|
||||
$contents2 = file_get_contents("./scripts/thisrun.txt");
|
||||
$contents2 = preg_replace("/LATITUDE=.*/", "LATITUDE=$latitude", $contents2);
|
||||
@@ -124,6 +126,7 @@ if(isset($_GET["latitude"])){
|
||||
$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("/FLICKR_FILTER_EMAIL=.*/", "FLICKR_FILTER_EMAIL=$flickr_filter_email", $contents2);
|
||||
$contents2 = preg_replace("/APPRISE_MINIMUM_SECONDS_BETWEEN_NOTIFICATIONS_PER_SPECIES=.*/", "APPRISE_MINIMUM_SECONDS_BETWEEN_NOTIFICATIONS_PER_SPECIES=$minimum_time_limit", $contents2);
|
||||
|
||||
|
||||
$fh = fopen("/etc/birdnet/birdnet.conf", "w");
|
||||
@@ -353,7 +356,13 @@ https://discordapp.com/api/webhooks/{WebhookID}/{WebhookToken}
|
||||
<input type="checkbox" name="apprise_notify_each_detection" <?php if($config['APPRISE_NOTIFY_EACH_DETECTION'] == 1 && filesize($home."/BirdNET-Pi/apprise.txt") != 0) { echo "checked"; };?> >
|
||||
<label for="apprise_weekly_report">Notify each new detection</label><br>
|
||||
<input type="checkbox" name="apprise_weekly_report" <?php if($config['APPRISE_WEEKLY_REPORT'] == 1 && filesize($home."/BirdNET-Pi/apprise.txt") != 0) { echo "checked"; };?> >
|
||||
<label for="apprise_weekly_report">Send weekly report</label><br><br>
|
||||
<label for="apprise_weekly_report">Send weekly report</label><br>
|
||||
|
||||
<hr>
|
||||
<label for="quantity">Minimum time between notifications of the same species (sec):</label>
|
||||
<input type="number" id="minimum_time_limit" name="minimum_time_limit" value="<?php echo $config['APPRISE_MINIMUM_SECONDS_BETWEEN_NOTIFICATIONS_PER_SPECIES'];?>" min="0"><br>
|
||||
|
||||
<br>
|
||||
|
||||
<button type="button" class="testbtn" onclick="sendTestNotification(this)">Send Test Notification</button><br>
|
||||
<span id="testsuccessmsg"></span>
|
||||
|
||||
@@ -76,6 +76,8 @@ APPRISE_NOTIFICATION_BODY="A \$sciname \$comname was just detected with a confid
|
||||
APPRISE_NOTIFY_EACH_DETECTION=0
|
||||
APPRISE_NOTIFY_NEW_SPECIES=0
|
||||
APPRISE_WEEKLY_REPORT=1
|
||||
APPRISE_NOTIFY_NEW_SPECIES_EACH_DAY=0
|
||||
APPRISE_MINIMUM_SECONDS_BETWEEN_NOTIFICATIONS_PER_SPECIES=0
|
||||
|
||||
#---------------------- Flickr Images API Configuration -----------------------#
|
||||
## If FLICKR_API_KEY is set, the web interface will try and display bird images
|
||||
|
||||
@@ -47,6 +47,9 @@ fi
|
||||
if ! grep APPRISE_NOTIFY_NEW_SPECIES_EACH_DAY /etc/birdnet/birdnet.conf &>/dev/null;then
|
||||
sudo -u$USER echo "APPRISE_NOTIFY_NEW_SPECIES_EACH_DAY=0 " >> /etc/birdnet/birdnet.conf
|
||||
fi
|
||||
if ! grep APPRISE_MINIMUM_SECONDS_BETWEEN_NOTIFICATIONS_PER_SPECIES /etc/birdnet/birdnet.conf &>/dev/null;then
|
||||
sudo -u$USER echo "APPRISE_MINIMUM_SECONDS_BETWEEN_NOTIFICATIONS_PER_SPECIES=0 " >> /etc/birdnet/birdnet.conf
|
||||
fi
|
||||
|
||||
# If the config does not contain the DATABASE_LANG setting, we'll want to add it.
|
||||
# Defaults to not-selected, which config.php will know to render as a language option.
|
||||
|
||||
@@ -4,11 +4,15 @@ import socket
|
||||
import sqlite3
|
||||
from datetime import datetime
|
||||
import requests
|
||||
import time as timeim
|
||||
|
||||
userDir = os.path.expanduser('~')
|
||||
APPRISE_CONFIG = userDir + '/BirdNET-Pi/apprise.txt'
|
||||
DB_PATH = userDir + '/BirdNET-Pi/scripts/birds.db'
|
||||
|
||||
flickr_images = {}
|
||||
species_last_notified = {}
|
||||
|
||||
|
||||
def notify(body, title, attached=""):
|
||||
apobj = apprise.Apprise()
|
||||
@@ -37,6 +41,12 @@ def sendAppriseNotifications(species, confidence, path, date, time, week, latitu
|
||||
body = settings_dict.get('APPRISE_NOTIFICATION_BODY')
|
||||
sciName, comName = species.split("_")
|
||||
|
||||
APPRISE_MINIMUM_SECONDS_BETWEEN_NOTIFICATIONS_PER_SPECIES = settings_dict.get('APPRISE_MINIMUM_SECONDS_BETWEEN_NOTIFICATIONS_PER_SPECIES')
|
||||
if APPRISE_MINIMUM_SECONDS_BETWEEN_NOTIFICATIONS_PER_SPECIES != "0":
|
||||
if species_last_notified.get(comName) is not None:
|
||||
if int(timeim.time()) - species_last_notified[comName] < int(APPRISE_MINIMUM_SECONDS_BETWEEN_NOTIFICATIONS_PER_SPECIES):
|
||||
return
|
||||
|
||||
try:
|
||||
websiteurl = settings_dict.get('BIRDNETPI_URL')
|
||||
if len(websiteurl) == 0:
|
||||
@@ -46,7 +56,6 @@ def sendAppriseNotifications(species, confidence, path, date, time, week, latitu
|
||||
|
||||
listenurl = websiteurl+"?filename="+path
|
||||
image_url = ""
|
||||
flickr_images = {}
|
||||
|
||||
if len(settings_dict.get('FLICKR_API_KEY')) > 0 and "$flickrimage" in body:
|
||||
if not comName in flickr_images:
|
||||
@@ -93,6 +102,7 @@ def sendAppriseNotifications(species, confidence, path, date, time, week, latitu
|
||||
.replace("$flickrimage", image_url if "{" in body else "")\
|
||||
.replace("$overlap", overlap)
|
||||
notify(notify_body, notify_title, image_url)
|
||||
species_last_notified[comName] = int(timeim.time())
|
||||
|
||||
APPRISE_NOTIFICATION_NEW_SPECIES_DAILY_COUNT_LIMIT = 1 # Notifies the first N per day.
|
||||
if settings_dict.get('APPRISE_NOTIFY_NEW_SPECIES_EACH_DAY') == "1":
|
||||
@@ -137,6 +147,7 @@ def sendAppriseNotifications(species, confidence, path, date, time, week, latitu
|
||||
.replace("$overlap", overlap)\
|
||||
+ " (first time today)"
|
||||
notify(notify_body, notify_title, image_url)
|
||||
species_last_notified[comName] = int(timeim.time())
|
||||
con.close()
|
||||
except sqlite3.Error as e:
|
||||
print(e)
|
||||
@@ -184,6 +195,7 @@ def sendAppriseNotifications(species, confidence, path, date, time, week, latitu
|
||||
.replace("$overlap", overlap)\
|
||||
+ " (only seen " + str(int(numberDetections)) + " times in last 7d)"
|
||||
notify(notify_body, notify_title, image_url)
|
||||
species_last_notified[comName] = int(timeim.time())
|
||||
con.close()
|
||||
except sqlite3.Error:
|
||||
print("Database busy")
|
||||
|
||||
Reference in New Issue
Block a user