initial commit
This commit is contained in:
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user