initial commit

This commit is contained in:
ehpersonal38
2022-08-17 10:14:57 -04:00
parent 35d8b5ea11
commit f3f618e2a8
4 changed files with 22 additions and 1 deletions
+2
View File
@@ -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
+2
View File
@@ -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
+3
View File
@@ -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.
+15 -1
View File
@@ -4,11 +4,15 @@ import socket
import sqlite3
from datetime import datetime
import requests
import time
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,14 @@ def sendAppriseNotifications(species, confidence, path, date, time, week, latitu
body = settings_dict.get('APPRISE_NOTIFICATION_BODY')
sciName, comName = species.split("_")
print(species_last_notified)
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(time.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 +58,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 +104,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(time.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 +149,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(time.time())
con.close()
except sqlite3.Error as e:
print(e)
@@ -184,6 +197,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(time.time())
con.close()
except sqlite3.Error:
print("Database busy")