diff --git a/scripts/advanced.php b/scripts/advanced.php index e225442..c7081f7 100644 --- a/scripts/advanced.php +++ b/scripts/advanced.php @@ -101,7 +101,7 @@ if(isset($_GET['submit'])) { } } - if(isset($_GET["freqshift_hi"])) { + if(isset($_GET["freqshift_hi"]) && is_numeric($_GET['freqshift_hi'])) { $freqshift_hi = $_GET["freqshift_hi"]; if(strcmp($freqshift_hi,$config['FREQSHIFT_HI']) !== 0) { $contents = preg_replace("/FREQSHIFT_HI=.*/", "FREQSHIFT_HI=$freqshift_hi", $contents); @@ -109,7 +109,7 @@ if(isset($_GET['submit'])) { } } - if(isset($_GET["freqshift_lo"])) { + if(isset($_GET["freqshift_lo"]) && is_numeric($_GET['freqshift_lo'])) { $freqshift_lo = $_GET["freqshift_lo"]; if(strcmp($freqshift_lo,$config['FREQSHIFT_LO']) !== 0) { $contents = preg_replace("/FREQSHIFT_LO=.*/", "FREQSHIFT_LO=$freqshift_lo", $contents); @@ -117,7 +117,7 @@ if(isset($_GET['submit'])) { } } - if(isset($_GET["freqshift_pitch"])) { + if(isset($_GET["freqshift_pitch"]) && is_numeric($_GET['freqshift_pitch'])) { $freqshift_pitch = $_GET["freqshift_pitch"]; if(strcmp($freqshift_pitch,$config['FREQSHIFT_PITCH']) !== 0) { $contents = preg_replace("/FREQSHIFT_PITCH=.*/", "FREQSHIFT_PITCH=$freqshift_pitch", $contents); diff --git a/scripts/config.php b/scripts/config.php index 6912af4..f758dbd 100644 --- a/scripts/config.php +++ b/scripts/config.php @@ -76,7 +76,7 @@ if(isset($_GET["latitude"])){ $apprise_weekly_report = 0; } - if(isset($timezone)) { + if(isset($timezone) && in_array($timezone, DateTimeZone::listIdentifiers())) { shell_exec("sudo timedatectl set-timezone ".$timezone); date_default_timezone_set($timezone); echo " @@ -460,7 +465,7 @@ window.setInterval(function(){ document.getElementById("spectrogramimage").src = "/spectrogram.png?nocache="+Date.now(); }, *1000); - + 2){?> // every 1 second, this loop will run and refresh the custom image window.setInterval(function(){ // Find the customimage element diff --git a/scripts/play.php b/scripts/play.php index 6dc91b0..49e1072 100644 --- a/scripts/play.php +++ b/scripts/play.php @@ -112,24 +112,19 @@ if(isset($_GET['shiftfile'])) { $freqshift_tool = $config['FREQSHIFT_TOOL']; if ($freqshift_tool == "ffmpeg") { - $cmd = "/usr/bin/nohup /usr/bin/ffmpeg -y -i \"".$pi.$filename."\" -af \"rubberband=pitch=".$config['FREQSHIFT_LO']."/".$config['FREQSHIFT_HI']."\" \"".$shifted_path.$filename."\""; - shell_exec("mkdir -p ".$shifted_path.$dir." && echo \"".$cmd."\" > /tmp/shift.sh && chmod +x /tmp/shift.sh"); + $cmd = "sudo /usr/bin/nohup /usr/bin/ffmpeg -y -i \"".$pi.$filename."\" -af \"rubberband=pitch=".$config['FREQSHIFT_LO']."/".$config['FREQSHIFT_HI']."\" \"".$shifted_path.$filename."\""; + shell_exec("sudo mkdir -p ".$shifted_path.$dir." && ".$cmd); } else if ($freqshift_tool == "sox") { //linux.die.net/man/1/sox $soxopt = "-q"; $soxpitch = $config['FREQSHIFT_PITCH']; - $cmd = "/usr/bin/nohup /usr/bin/sox \"".$pi.$filename."\" \"".$shifted_path.$filename."\" pitch ".$soxopt." ".$soxpitch; - shell_exec("mkdir -p ".$shifted_path.$dir." && echo \"".$cmd."\" > /tmp/shift.sh && chmod +x /tmp/shift.sh"); + $cmd = "sudo /usr/bin/nohup /usr/bin/sox \"".$pi.$filename."\" \"".$shifted_path.$filename."\" pitch ".$soxopt." ".$soxpitch; + shell_exec("sudo mkdir -p ".$shifted_path.$dir." && ".$cmd); } - - shell_exec("/tmp/shift.sh"); - shell_exec("rm -f /tmp/shift.sh"); } else { - $cmd = "rm -f " . $shifted_path.$filename; - shell_exec("echo \"".$cmd."\" > /tmp/unshift.sh && chmod +x /tmp/unshift.sh"); - shell_exec("/tmp/unshift.sh"); - shell_exec("rm -f /tmp/unshift.sh"); + $cmd = "sudo rm -f " . $shifted_path.$filename; + shell_exec($cmd); } echo "OK"; diff --git a/scripts/stats.php b/scripts/stats.php index 8a47cba..9b6da18 100644 --- a/scripts/stats.php +++ b/scripts/stats.php @@ -1,4 +1,5 @@
- + diff --git a/scripts/update_birdnet_snippets.sh b/scripts/update_birdnet_snippets.sh index e04c080..813bf4d 100755 --- a/scripts/update_birdnet_snippets.sh +++ b/scripts/update_birdnet_snippets.sh @@ -11,12 +11,9 @@ 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 +chmod 666 ~/BirdNET-Pi/scripts/*.txt +chmod 666 ~/BirdNET-Pi/*.txt +find $HOME/BirdNET-Pi -path "$HOME/BirdNET-Pi/birdnet" -prune -o -type f ! -perm /o=w -exec chmod a+w {} \; # Create blank sitename as it's optional. First time install will use $HOSTNAME. if ! grep SITE_NAME /etc/birdnet/birdnet.conf &>/dev/null;then diff --git a/scripts/utils/notifications.py b/scripts/utils/notifications.py index 7db08d4..efa1f44 100644 --- a/scripts/utils/notifications.py +++ b/scripts/utils/notifications.py @@ -49,7 +49,7 @@ def sendAppriseNotifications(species, confidence, path, date, time, week, latitu 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(",")): + if 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') @@ -77,8 +77,9 @@ def sendAppriseNotifications(species, confidence, path, date, time, week, latitu if not comName in flickr_images: try: # TODO: Make this work with non-english comnames. Implement the "// convert sci name to English name" logic from overview.php here + headers = {'User-Agent': 'Python_Flickr/1.0'} url = 'https://www.flickr.com/services/rest/?method=flickr.photos.search&api_key='+str(settings_dict.get('FLICKR_API_KEY'))+'&text='+str(comName)+' bird&sort=relevance&per_page=5&media=photos&format=json&license=2%2C3%2C4%2C5%2C6%2C9&nojsoncallback=1' - resp = requests.get(url=url) + resp = requests.get(url=url, headers=headers) resp.encoding = "utf-8" data = resp.json()["photos"]["photo"][0]