From c181051901cd60277e4a18e814c7f0cdf875c977 Mon Sep 17 00:00:00 2001 From: Alexandre <44178713+alexbelgium@users.noreply.github.com> Date: Sat, 5 Oct 2024 10:33:17 +0200 Subject: [PATCH] Update 71-newfeatures.sh --- .../rootfs/etc/cont-init.d/71-newfeatures.sh | 99 +++++++++---------- 1 file changed, 48 insertions(+), 51 deletions(-) diff --git a/birdnet-pi/rootfs/etc/cont-init.d/71-newfeatures.sh b/birdnet-pi/rootfs/etc/cont-init.d/71-newfeatures.sh index 98bf86507..b4fbae83a 100755 --- a/birdnet-pi/rootfs/etc/cont-init.d/71-newfeatures.sh +++ b/birdnet-pi/rootfs/etc/cont-init.d/71-newfeatures.sh @@ -9,58 +9,55 @@ set -e echo " " bashio::log.info "Adding optional features" +# Denoiser +#if bashio::config.true "DENOISER_ANALYSIS_ENABLED"; then +# sed -i "s|ar 48000|ar 48000 -af \"arnndn=m=sample.rnnn\"|g" "$HOME"/BirdNET-Pi/scripts/birdnet_recording.sh +# sed -i "s|ar 48000|ar 48000 -af afftdn=nr=30:nt=w:om=o|g" "$HOME"/BirdNET-Pi/scripts/birdnet_recording.sh +#fi + # Enable the Processed folder +############################# + if bashio::config.true "PROCESSED_FOLDER_ENABLED" && ! grep -q "processed_size" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py; then - echo "... Enabling the Processed folder: the last 15 wav files will be stored there" - - # Adapt config.php to include Processed folder settings - sed -i '/GET\[\"info_site\"\]/a\ \$processed_size = \$_GET\[\"processed_size\"\];' "$HOME"/BirdNET-Pi/scripts/config.php - sed -i '/\$contents = file_get_contents/a\ \$contents = preg_replace\("/PROCESSED_SIZE=.*/", "PROCESSED_SIZE=\$processed_size", \$contents\);' "$HOME"/BirdNET-Pi/scripts/config.php - sed -i '/"success"/i
' "$HOME"/BirdNET-Pi/scripts/config.php - sed -i '/"success"/i

Processed folder management

' "$HOME"/BirdNET-Pi/scripts/config.php - sed -i '/"success"/i ' "$HOME"/BirdNET-Pi/scripts/config.php - sed -i '/"success"/i ' "$HOME"/BirdNET-Pi/scripts/config.php - sed -i '/"success"/i
' "$HOME"/BirdNET-Pi/scripts/config.php - sed -i '/"success"/i Processed is the directory where the formerly "Analyzed" files are moved after extractions, mostly for troubleshooting purposes.
' "$HOME"/BirdNET-Pi/scripts/config.php - sed -i '/"success"/i This value defines the maximum amount of files that are kept before replacement with new files.
' "$HOME"/BirdNET-Pi/scripts/config.php - sed -i '/"success"/i
' "$HOME"/BirdNET-Pi/scripts/config.php - sed -i '/"success"/i\
' "$HOME"/BirdNET-Pi/scripts/config.php - - # Add move_to_processed function in birdnet_analysis.py - sed -i "/log.info('handle_reporting_queue done')/a\ -def move_to_processed(file_name, processed_size):\n\ - processed_dir = os.path.join(get_settings()['RECS_DIR'], 'Processed')\n\ - os.rename(file_name, os.path.join(processed_dir, os.path.basename(file_name)))\n\ - files = glob.glob(os.path.join(processed_dir, '*'))\n\ - files.sort(key=os.path.getmtime)\n\ - while len(files) > processed_size:\n\ - os.remove(files.pop(0))\n\ -" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py - - # Add get_processed_size function in birdnet_analysis.py - sed -i "/log.info('handle_reporting_queue done')/a\ -def get_processed_size():\n\ - try:\n\ - processed_size = get_settings().getint('PROCESSED_SIZE')\n\ - return processed_size if isinstance(processed_size, int) else 0\n\ - except (ValueError, TypeError):\n\ - return 0\n\ -" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py - - # Add imports at the top of birdnet_analysis.py - sed -i "/from subprocess import CalledProcessError/a\ -import glob\n\ -import time\n\ -" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py - - # Modify main analysis logic to include Processed folder handling - sed -i "/os.remove(file.file_name)/i\ - processed_size = get_processed_size()\n\ - if processed_size > 0:\n\ - move_to_processed(file.file_name, processed_size)\n\ - else:\n\ -" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py - sed -i "/os.remove(file.file_name)/c\ os.remove(file.file_name)" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py -fi + echo "... Enabling the Processed folder : the last 15 wav files will be stored there" + # Adapt config.php + sed -i "/GET\[\"info_site\"\]/a\ \$processed_size = \$_GET\[\"processed_size\"\];" "$HOME"/BirdNET-Pi/scripts/config.php + sed -i "/\$contents = file_get_contents/a\ \$contents = preg_replace\(\"/PROCESSED_SIZE=\.\*/\", \"PROCESSED_SIZE=\$processed_size\", \$contents\);" "$HOME"/BirdNET-Pi/scripts/config.php + sed -i "/\"success\"/i
" "$HOME"/BirdNET-Pi/scripts/config.php + sed -i "/\"success\"/i

Processed folder management

" "$HOME"/BirdNET-Pi/scripts/config.php + sed -i "/\"success\"/i " "$HOME"/BirdNET-Pi/scripts/config.php + sed -i "/\"success\"/i \"/>" "$HOME"/BirdNET-Pi/scripts/config.php + sed -i "/\"success\"/i
" "$HOME"/BirdNET-Pi/scripts/config.php + sed -i "/\"success\"/i Processed is the directory where the formerly 'Analyzed' files are moved after extractions, mostly for troubleshooting purposes.
" "$HOME"/BirdNET-Pi/scripts/config.php + sed -i "/\"success\"/i This value defines the maximum amount of files that are kept before replacement with new files.
" "$HOME"/BirdNET-Pi/scripts/config.php + sed -i "/\"success\"/i
" "$HOME"/BirdNET-Pi/scripts/config.php + sed -i "/\"success\"/i\
" "$HOME"/BirdNET-Pi/scripts/config.php + # Adapt birdnet_analysis.py - move_to_processed + sed -i "/log.info('handle_reporting_queue done')/a\ os.remove(files.pop(0))" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py + sed -i "/log.info('handle_reporting_queue done')/a\ while len(files) > processed_size:" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py + sed -i "/log.info('handle_reporting_queue done')/a\ files.sort(key=os.path.getmtime)" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py + sed -i "/log.info('handle_reporting_queue done')/a\ files = glob.glob(os.path.join(processed_dir, '*'))" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py + sed -i "/log.info('handle_reporting_queue done')/a\ os.rename(file_name, os.path.join(processed_dir, os.path.basename(file_name)))" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py + sed -i "/log.info('handle_reporting_queue done')/a\ processed_dir = os.path.join(get_settings()['RECS_DIR'], 'Processed')" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py + sed -i "/log.info('handle_reporting_queue done')/a\def move_to_processed(file_name, processed_size):" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py + sed -i "/log.info('handle_reporting_queue done')/a\ " "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py + # Adapt birdnet_analysis.py - get_processed_size + sed -i "/log.info('handle_reporting_queue done')/a\ return 0" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py + sed -i "/log.info('handle_reporting_queue done')/a\ except (ValueError, TypeError):" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py + sed -i "/log.info('handle_reporting_queue done')/a\ return processed_size if isinstance(processed_size, int) else 0" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py + sed -i "/log.info('handle_reporting_queue done')/a\ processed_size = get_settings().getint('PROCESSED_SIZE')" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py + sed -i "/log.info('handle_reporting_queue done')/a\ try:" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py + sed -i "/log.info('handle_reporting_queue done')/a\def get_processed_size():" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py + sed -i "/log.info('handle_reporting_queue done')/a\ " "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py + # Modify calls + sed -i "/from subprocess import CalledProcessError/a\import glob" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py + sed -i "/from subprocess import CalledProcessError/a\import time" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py + # Modify main code + sed -i "/os.remove(file.file_name)/i\ processed_size = get_processed_size()" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py + sed -i "/os.remove(file.file_name)/i\ if processed_size > 0:" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py + sed -i "/os.remove(file.file_name)/i\ move_to_processed(file.file_name, processed_size)" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py + sed -i "/os.remove(file.file_name)/i\ else:" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py + sed -i "/os.remove(file.file_name)/c\ os.remove(file.file_name)" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py +fi || true echo " "