From 2e10298b7b8d29719fbcec316914fee995f63595 Mon Sep 17 00:00:00 2001 From: ehpersonal38 <103586016+ehpersonal38@users.noreply.github.com> Date: Mon, 20 Mar 2023 16:12:15 -0400 Subject: [PATCH 1/2] Apprise ONLY notify for certain species --- birdnet.conf-defaults | 1 + scripts/config.php | 7 ++++++- scripts/install_config.sh | 1 + scripts/update_birdnet_snippets.sh | 4 ++++ scripts/utils/notifications.py | 5 +++++ 5 files changed, 17 insertions(+), 1 deletion(-) diff --git a/birdnet.conf-defaults b/birdnet.conf-defaults index d2cacea..03ca9f5 100644 --- a/birdnet.conf-defaults +++ b/birdnet.conf-defaults @@ -77,6 +77,7 @@ APPRISE_NOTIFY_NEW_SPECIES=0 APPRISE_WEEKLY_REPORT=1 APPRISE_NOTIFY_NEW_SPECIES_EACH_DAY=0 APPRISE_MINIMUM_SECONDS_BETWEEN_NOTIFICATIONS_PER_SPECIES=0 +APPRISE_ONLY_NOTIFY_SPECIES_NAMES="" #---------------------- Flickr Images API Configuration -----------------------# ## If FLICKR_API_KEY is set, the web interface will try and display bird images diff --git a/scripts/config.php b/scripts/config.php index 7ecefe8..6912af4 100644 --- a/scripts/config.php +++ b/scripts/config.php @@ -53,6 +53,7 @@ if(isset($_GET["latitude"])){ $timezone = $_GET["timezone"]; $model = $_GET["model"]; $sf_thresh = $_GET["sf_thresh"]; + $only_notify_species_names = $_GET['only_notify_species_names']; if(isset($_GET['apprise_notify_each_detection'])) { $apprise_notify_each_detection = 1; @@ -154,6 +155,7 @@ if(isset($_GET["latitude"])){ $contents = preg_replace("/APPRISE_MINIMUM_SECONDS_BETWEEN_NOTIFICATIONS_PER_SPECIES=.*/", "APPRISE_MINIMUM_SECONDS_BETWEEN_NOTIFICATIONS_PER_SPECIES=$minimum_time_limit", $contents); $contents = preg_replace("/MODEL=.*/", "MODEL=$model", $contents); $contents = preg_replace("/SF_THRESH=.*/", "SF_THRESH=$sf_thresh", $contents); + $contents = preg_replace("/APPRISE_ONLY_NOTIFY_SPECIES_NAMES=.*/", "APPRISE_ONLY_NOTIFY_SPECIES_NAMES=\"$only_notify_species_names\"", $contents); $contents2 = file_get_contents("./scripts/thisrun.txt"); $contents2 = preg_replace("/SITE_NAME=.*/", "SITE_NAME=\"$site_name\"", $contents2); @@ -172,6 +174,7 @@ if(isset($_GET["latitude"])){ $contents2 = preg_replace("/APPRISE_MINIMUM_SECONDS_BETWEEN_NOTIFICATIONS_PER_SPECIES=.*/", "APPRISE_MINIMUM_SECONDS_BETWEEN_NOTIFICATIONS_PER_SPECIES=$minimum_time_limit", $contents2); $contents2 = preg_replace("/MODEL=.*/", "MODEL=$model", $contents2); $contents2 = preg_replace("/SF_THRESH=.*/", "SF_THRESH=$sf_thresh", $contents2); + $contents2 = preg_replace("/APPRISE_ONLY_NOTIFY_SPECIES_NAMES=.*/", "APPRISE_ONLY_NOTIFY_SPECIES_NAMES=\"$only_notify_species_names\"", $contents2); @@ -549,8 +552,10 @@ https://discordapp.com/api/webhooks/{WebhookID}/{WebhookToken}

- +
+ +

diff --git a/scripts/install_config.sh b/scripts/install_config.sh index e6dc4c4..64d83e3 100755 --- a/scripts/install_config.sh +++ b/scripts/install_config.sh @@ -105,6 +105,7 @@ APPRISE_NOTIFY_NEW_SPECIES=0 APPRISE_WEEKLY_REPORT=1 APPRISE_NOTIFY_NEW_SPECIES_EACH_DAY=0 APPRISE_MINIMUM_SECONDS_BETWEEN_NOTIFICATIONS_PER_SPECIES=0 +APPRISE_ONLY_NOTIFY_SPECIES_NAMES="" #---------------------- Flickr Images API Configuration -----------------------# ## If FLICKR_API_KEY is set, the web interface will try and display bird images diff --git a/scripts/update_birdnet_snippets.sh b/scripts/update_birdnet_snippets.sh index 8b0bd28..d8ecb0c 100755 --- a/scripts/update_birdnet_snippets.sh +++ b/scripts/update_birdnet_snippets.sh @@ -181,6 +181,10 @@ if ! grep CUSTOM_IMAGE_TITLE /etc/birdnet/birdnet.conf &>/dev/null;then sudo -u$USER echo "CUSTOM_IMAGE_TITLE=\"\"" >> /etc/birdnet/birdnet.conf fi +if ! grep APPRISE_ONLY_NOTIFY_SPECIES_NAMES /etc/birdnet/birdnet.conf &>/dev/null;then + sudo -u$USER echo "APPRISE_ONLY_NOTIFY_SPECIES_NAMES=\"\"" >> /etc/birdnet/birdnet.conf +fi + sudo systemctl daemon-reload restart_services.sh diff --git a/scripts/utils/notifications.py b/scripts/utils/notifications.py index 304f0d7..7db08d4 100644 --- a/scripts/utils/notifications.py +++ b/scripts/utils/notifications.py @@ -47,6 +47,11 @@ def sendAppriseNotifications(species, confidence, path, date, time, week, latitu body = settings_dict.get('APPRISE_NOTIFICATION_BODY') sciName, comName = species.split("_") + APPRISE_ONLY_NOTIFY_SPECIES_NAMES = settings_dict.get('APPRISE_ONLY_NOTIFY_SPECIES_NAMES') + if APPRISE_ONLY_NOTIFY_SPECIES_NAMES is not None and APPRISE_ONLY_NOTIFY_SPECIES_NAMES.strip() != "": + if not any(bird.lower().replace(" ", "") in comName.lower().replace(" ", "") for bird in APPRISE_ONLY_NOTIFY_SPECIES_NAMES.split(",")): + return + 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: From dc406ed8f456c607529291277fa601bf42dffafc Mon Sep 17 00:00:00 2001 From: ehpersonal38 <103586016+ehpersonal38@users.noreply.github.com> Date: Mon, 20 Mar 2023 19:47:26 -0400 Subject: [PATCH 2/2] Fix permission issues --- scripts/update_birdnet_snippets.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/scripts/update_birdnet_snippets.sh b/scripts/update_birdnet_snippets.sh index d8ecb0c..e04c080 100755 --- a/scripts/update_birdnet_snippets.sh +++ b/scripts/update_birdnet_snippets.sh @@ -11,6 +11,12 @@ my_dir=$HOME/BirdNET-Pi/scripts #sudo chmod -R g+wr $HOME/* find $HOME/* -not -user $USER -execdir sudo -E chown $USER:$USER {} \+ find $HOME/* -not -user $USER -execdir sudo chmod g+wr {} \+ +files=("$HOME/BirdNET-Pi/apprise.txt" "$HOME/BirdNET-Pi/exclude_species_list.txt" "$HOME/BirdNET-Pi/include_species_list.txt" "$HOME/BirdNET-Pi/scripts/disk_check_exclude.txt" "$HOME/BirdNET-Pi/scripts/blacklisted_images.txt") +for file in "${files[@]}" +do + sudo chown caddy:caddy "$file" +done +chmod -R a+w $HOME/BirdNET-Pi/scripts/*.php # Create blank sitename as it's optional. First time install will use $HOSTNAME. if ! grep SITE_NAME /etc/birdnet/birdnet.conf &>/dev/null;then