From 899c9bcbfd380584f5ef6fbe5007166b64334987 Mon Sep 17 00:00:00 2001 From: Tobias Boesch Date: Wed, 29 Jan 2020 13:47:42 +0100 Subject: [PATCH 001/206] Branch and repo changed for buster install * Repo topas-rec * Branch develop --- scripts/installscripts/buster-install-default.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/installscripts/buster-install-default.sh b/scripts/installscripts/buster-install-default.sh index 40415b6e4..d72a5e339 100755 --- a/scripts/installscripts/buster-install-default.sh +++ b/scripts/installscripts/buster-install-default.sh @@ -5,7 +5,7 @@ # The absolute path to the folder which contains this script PATHDATA="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -GIT_BRANCH=${GIT_BRANCH:-master} +GIT_BRANCH=${GIT_BRANCH:-develop} clear echo "##################################################### @@ -528,7 +528,7 @@ cd /home/pi/ || exit # Must be changed to the correct branch!!! # Change to master when merging develop with master!!! -git clone https://github.com/MiczFlor/RPi-Jukebox-RFID.git --branch "${GIT_BRANCH}" +git clone https://github.com/topas-rec/RPi-Jukebox-RFID.git --branch "${GIT_BRANCH}" cd /home/pi/RPi-Jukebox-RFID/misc/sampleconfigs/ || exit sudo rm phoniebox-rfid-reader.service.stretch-default.sample From bcee4f2c20445928bfc22c091a00421a63c31db5 Mon Sep 17 00:00:00 2001 From: manajoe Date: Tue, 9 Jun 2020 21:14:00 +0100 Subject: [PATCH 002/206] implemented shutdownwithreducingvolume --- scripts/playout_controls.sh | 74 ++++++++++++++++++++++++++++++++----- 1 file changed, 65 insertions(+), 9 deletions(-) diff --git a/scripts/playout_controls.sh b/scripts/playout_controls.sh index 6252a2655..58f2cb545 100755 --- a/scripts/playout_controls.sh +++ b/scripts/playout_controls.sh @@ -22,11 +22,13 @@ NOW=`date +%Y-%m-%d.%H:%M:%S` # shutdown # shutdownsilent # shutdownafter +# shutdownwithreducingvolume # reboot # scan # mute # setvolume # setmaxvolume +# setmaxvolumetemp # setstartupvolume # getstartupvolume # setvolumetostartup @@ -34,6 +36,7 @@ NOW=`date +%Y-%m-%d.%H:%M:%S` # volumedown # getvolume # getmaxvolume +# getmaxvolumetemp # setvolstep # getvolstep # playerstop @@ -159,6 +162,20 @@ case $COMMAND in echo "${PATHDATA}/playout_controls.sh -c=shutdownsilent" | at -q t now + ${VALUE} minute fi ;; + shutdownwithreducingvolume) + # get current volume in percent + VOLPERCENT=$(echo -e status\\nclose | nc -w 1 localhost 6600 | grep -o -P '(?<=volume: ).*') + # divide current volume by 10 to get a step size for reducing the volume + VOLSTEP=`expr $((VOLPERCENT / 10))`; + # divide VALUE by 10, volume will be reduced every TIMESTEP minutes (e.g. for a value of "30" it will be every "3" minutes) + TIMESTEP=`expr $((VALUE / 10))`; + # loop 10 times to reduce the volume by VOLSTEP every TIMESTEP minutes + for i in $(seq 1 10); do + VOLPERCENT=`expr ${VOLPERCENT} - ${VOLSTEP}`; echo "${PATHDATA}/playout_controls.sh -c=setvolume -v="$VOLPERCENT | at -q t now + `expr $(((i * TIMESTEP)-1))` minute; + done + # schedule shutdown after VALUE minutes + echo "${PATHDATA}/playout_controls.sh -c=shutdownsilent" | at -q t now + ${VALUE} minute + ;; reboot) if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi ${PATHDATA}/resume_play.sh -c=savepos && mpc clear @@ -196,7 +213,7 @@ case $COMMAND in setvolume) if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi #increase volume only if VOLPERCENT is below the max volume limit and above min volume limit - if [ ${VALUE} -le $AUDIOVOLMAXLIMIT ] && [ ${VALUE} -ge $AUDIOVOLMINLIMIT ]; + if [ ${VALUE} -le $AUDIOVOLMAXLIMIT ] && [ ${VALUE} -ge $AUDIOVOLMINLIMIT ] && [ ${VALUE} -le $AUDIOVOLMAXTEMP ]; then # set volume level in percent echo -e setvol $VALUE\\nclose | nc -w 1 localhost 6600 @@ -206,6 +223,11 @@ case $COMMAND in # if we are over the max volume limit, set the volume to maxvol echo -e setvol $AUDIOVOLMAXLIMIT\\nclose | nc -w 1 localhost 6600 fi + if [ ${VALUE} -gt $AUDIOVOLMAXTEMP ]; + then + # if we are over the max volume temü limit, set the volume to maxvoltemp + echo -e setvol $AUDIOVOLMAXTEMP\\nclose | nc -w 1 localhost 6600 + fi if [ ${VALUE} -lt $AUDIOVOLMINLIMIT ]; then # if we are unter the min volume limit, set the volume to minvol @@ -235,14 +257,30 @@ case $COMMAND in # increase by $AUDIOVOLCHANGESTEP VOLPERCENT=`expr ${VOLPERCENT} + \( ${AUDIOVOLCHANGESTEP} \* ${VALUE} \)` #increase volume only if VOLPERCENT is below the max volume limit - if [ $VOLPERCENT -le $AUDIOVOLMAXLIMIT ]; - then - # set volume level in percent - echo -e setvol +$VOLPERCENT\\nclose | nc -w 1 localhost 6600 - else - # if we are over the max volume limit, set the volume to maxvol - echo -e setvol $AUDIOVOLMAXLIMIT\\nclose | nc -w 1 localhost 6600 - fi + #is max volume limit above max volume temp? + if [ $AUDIOVOLMAXLIMIT -gt $AUDIOVOLMAXTEMP ]; + then + #increase volume only if VOLPERCENT is below the max volume temp + if [ $VOLPERCENT -le $AUDIOVOLMAXTEMP ]; + then + # set volume level in percent + echo -e setvol +$VOLPERCENT\\nclose | nc -w 1 localhost 6600 + else + # if we are over the max volume temp, set the volume to maxvoltemp + echo -e setvol $AUDIOVOLMAXTEMP\\nclose | nc -w 1 localhost 6600 + fi + #otherwise max volume temp must be above or equal max volume limit + elif [ $AUDIOVOLMAXTEMP -ge $AUDIOVOLMAXLIMIT ]; + then + if [ $VOLPERCENT -le $AUDIOVOLMAXLIMIT ]; + then + # set volume level in percent + echo -e setvol +$VOLPERCENT\\nclose | nc -w 1 localhost 6600 + else + # if we are over the max volume limit, set the volume to maxvol + echo -e setvol $AUDIOVOLMAXLIMIT\\nclose | nc -w 1 localhost 6600 + fi + fi else # $VOLFILE DOES exist == audio off # read volume level from $VOLFILE and set as percent @@ -315,10 +353,28 @@ case $COMMAND in # create global config file because individual setting got changed . ${PATHDATA}/inc.writeGlobalConfig.sh ;; + setmaxvolumetemp) + if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi + # read volume in percent + VOLPERCENT=$(echo -e status\\nclose | nc -w 1 localhost 6600 | grep -o -P '(?<=volume: ).*') + # if volume of the box is greater than wanted maxvolumetemp, set volume to maxvolumetemp + if [ $VOLPERCENT -gt ${VALUE} ]; + then + echo -e setvol ${VALUE} | nc -w 1 localhost 6600 + fi + # write new value to file + echo "$VALUE" > ${PATHDATA}/../settings/Max_Volume_Limit_Temp + # create global config file because individual setting got changed + . ${PATHDATA}/inc.writeGlobalConfig.sh + ;; getmaxvolume) if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi echo $AUDIOVOLMAXLIMIT ;; + getmaxvolumetemp) + if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi + echo $AUDIOVOLMAXTEMP + ;; setvolstep) if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi # write new value to file From ebe8f27e11d5ca2d250950ac7844a125d192ae43 Mon Sep 17 00:00:00 2001 From: manajoe Date: Tue, 9 Jun 2020 21:19:08 +0100 Subject: [PATCH 003/206] implemented shutdownwithreducingvolume --- scripts/playout_controls.sh | 63 +++++++------------------------------ 1 file changed, 11 insertions(+), 52 deletions(-) diff --git a/scripts/playout_controls.sh b/scripts/playout_controls.sh index 58f2cb545..f3a2d983c 100755 --- a/scripts/playout_controls.sh +++ b/scripts/playout_controls.sh @@ -28,7 +28,6 @@ NOW=`date +%Y-%m-%d.%H:%M:%S` # mute # setvolume # setmaxvolume -# setmaxvolumetemp # setstartupvolume # getstartupvolume # setvolumetostartup @@ -36,7 +35,6 @@ NOW=`date +%Y-%m-%d.%H:%M:%S` # volumedown # getvolume # getmaxvolume -# getmaxvolumetemp # setvolstep # getvolstep # playerstop @@ -175,7 +173,7 @@ case $COMMAND in done # schedule shutdown after VALUE minutes echo "${PATHDATA}/playout_controls.sh -c=shutdownsilent" | at -q t now + ${VALUE} minute - ;; + ;; reboot) if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi ${PATHDATA}/resume_play.sh -c=savepos && mpc clear @@ -213,7 +211,7 @@ case $COMMAND in setvolume) if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi #increase volume only if VOLPERCENT is below the max volume limit and above min volume limit - if [ ${VALUE} -le $AUDIOVOLMAXLIMIT ] && [ ${VALUE} -ge $AUDIOVOLMINLIMIT ] && [ ${VALUE} -le $AUDIOVOLMAXTEMP ]; + if [ ${VALUE} -le $AUDIOVOLMAXLIMIT ] && [ ${VALUE} -ge $AUDIOVOLMINLIMIT ]; then # set volume level in percent echo -e setvol $VALUE\\nclose | nc -w 1 localhost 6600 @@ -223,11 +221,6 @@ case $COMMAND in # if we are over the max volume limit, set the volume to maxvol echo -e setvol $AUDIOVOLMAXLIMIT\\nclose | nc -w 1 localhost 6600 fi - if [ ${VALUE} -gt $AUDIOVOLMAXTEMP ]; - then - # if we are over the max volume temü limit, set the volume to maxvoltemp - echo -e setvol $AUDIOVOLMAXTEMP\\nclose | nc -w 1 localhost 6600 - fi if [ ${VALUE} -lt $AUDIOVOLMINLIMIT ]; then # if we are unter the min volume limit, set the volume to minvol @@ -257,30 +250,14 @@ case $COMMAND in # increase by $AUDIOVOLCHANGESTEP VOLPERCENT=`expr ${VOLPERCENT} + \( ${AUDIOVOLCHANGESTEP} \* ${VALUE} \)` #increase volume only if VOLPERCENT is below the max volume limit - #is max volume limit above max volume temp? - if [ $AUDIOVOLMAXLIMIT -gt $AUDIOVOLMAXTEMP ]; - then - #increase volume only if VOLPERCENT is below the max volume temp - if [ $VOLPERCENT -le $AUDIOVOLMAXTEMP ]; - then - # set volume level in percent - echo -e setvol +$VOLPERCENT\\nclose | nc -w 1 localhost 6600 - else - # if we are over the max volume temp, set the volume to maxvoltemp - echo -e setvol $AUDIOVOLMAXTEMP\\nclose | nc -w 1 localhost 6600 - fi - #otherwise max volume temp must be above or equal max volume limit - elif [ $AUDIOVOLMAXTEMP -ge $AUDIOVOLMAXLIMIT ]; - then - if [ $VOLPERCENT -le $AUDIOVOLMAXLIMIT ]; - then - # set volume level in percent - echo -e setvol +$VOLPERCENT\\nclose | nc -w 1 localhost 6600 - else - # if we are over the max volume limit, set the volume to maxvol - echo -e setvol $AUDIOVOLMAXLIMIT\\nclose | nc -w 1 localhost 6600 - fi - fi + if [ $VOLPERCENT -le $AUDIOVOLMAXLIMIT ]; + then + # set volume level in percent + echo -e setvol +$VOLPERCENT\\nclose | nc -w 1 localhost 6600 + else + # if we are over the max volume limit, set the volume to maxvol + echo -e setvol $AUDIOVOLMAXLIMIT\\nclose | nc -w 1 localhost 6600 + fi else # $VOLFILE DOES exist == audio off # read volume level from $VOLFILE and set as percent @@ -353,28 +330,10 @@ case $COMMAND in # create global config file because individual setting got changed . ${PATHDATA}/inc.writeGlobalConfig.sh ;; - setmaxvolumetemp) - if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi - # read volume in percent - VOLPERCENT=$(echo -e status\\nclose | nc -w 1 localhost 6600 | grep -o -P '(?<=volume: ).*') - # if volume of the box is greater than wanted maxvolumetemp, set volume to maxvolumetemp - if [ $VOLPERCENT -gt ${VALUE} ]; - then - echo -e setvol ${VALUE} | nc -w 1 localhost 6600 - fi - # write new value to file - echo "$VALUE" > ${PATHDATA}/../settings/Max_Volume_Limit_Temp - # create global config file because individual setting got changed - . ${PATHDATA}/inc.writeGlobalConfig.sh - ;; getmaxvolume) if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi echo $AUDIOVOLMAXLIMIT ;; - getmaxvolumetemp) - if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi - echo $AUDIOVOLMAXTEMP - ;; setvolstep) if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi # write new value to file @@ -761,4 +720,4 @@ case $COMMAND in echo Unknown COMMAND $COMMAND VALUE $VALUE if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo "Unknown COMMAND ${COMMAND} VALUE ${VALUE}" >> ${PATHDATA}/../logs/debug.log; fi ;; -esac +esac \ No newline at end of file From ea07b55d8c71b5f81dbff9463b78adb3af1830b5 Mon Sep 17 00:00:00 2001 From: manajoe Date: Tue, 9 Jun 2020 21:20:20 +0100 Subject: [PATCH 004/206] fixed type --- scripts/playout_controls.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/playout_controls.sh b/scripts/playout_controls.sh index f3a2d983c..d1cda4d55 100755 --- a/scripts/playout_controls.sh +++ b/scripts/playout_controls.sh @@ -720,4 +720,4 @@ case $COMMAND in echo Unknown COMMAND $COMMAND VALUE $VALUE if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo "Unknown COMMAND ${COMMAND} VALUE ${VALUE}" >> ${PATHDATA}/../logs/debug.log; fi ;; -esac \ No newline at end of file +esac From eb1ecfffdd3fd006836819ec222dc13b90b16289 Mon Sep 17 00:00:00 2001 From: Felix Bachmair Date: Sat, 21 Nov 2020 17:32:05 +0100 Subject: [PATCH 005/206] activation of shutdown button class in gpio_control --- .../gpio_control/GPIODevices/shutdown_button.py | 16 +++++++++++----- .../example_configs/gpio_settings_test.ini | 2 +- components/gpio_control/gpio_control.py | 9 +++++++++ .../gpio_control/test/gpio_settings_test.ini | 2 +- .../gpio_control/test/test_shutdown_button.py | 8 ++++---- 5 files changed, 26 insertions(+), 11 deletions(-) diff --git a/components/gpio_control/GPIODevices/shutdown_button.py b/components/gpio_control/GPIODevices/shutdown_button.py index 5682a7a7f..40129f325 100644 --- a/components/gpio_control/GPIODevices/shutdown_button.py +++ b/components/gpio_control/GPIODevices/shutdown_button.py @@ -4,19 +4,20 @@ import logging from .simple_button import SimpleButton - logger = logging.getLogger(__name__) class ShutdownButton(SimpleButton): def __init__(self, pin, action=lambda *args: None, name=None, bouncetime=500, edge=GPIO.FALLING, - hold_time=.1, led_pin=None, time_pressed=2): + hold_time=.1, led_pin=None, time_pressed=2, hold_repeat=False, pull_up_down=GPIO.PUD_UP,iteration_time=.2): self.led_pin = led_pin - self.time_pressed = 2 - self.iteration_time = .2 + self.time_pressed = time_pressed + self.iteration_time = iteration_time super(ShutdownButton, self).__init__(pin=pin, action=action, name=name, bouncetime=bouncetime, edge=edge, - hold_time=hold_time, hold_repeat=False) + hold_time=hold_time, hold_repeat=hold_repeat, pull_up_down=pull_up_down, + ) + pass # function to provide user feedback (= flashing led) while the shutdown button is pressed # do not directly call shutdown, in case it was hit accedently @@ -47,3 +48,8 @@ def callbackFunctionHandler(self, *args): self.set_led(GPIO.HIGH) # leave it on for the moment, it will be off when the system is down self.when_pressed(*args) + + def __repr__(self): + return ''.format( + self.name, self.pin, self.hold_repeat, self.hold_time + ) diff --git a/components/gpio_control/example_configs/gpio_settings_test.ini b/components/gpio_control/example_configs/gpio_settings_test.ini index 78b859287..a1ab63273 100644 --- a/components/gpio_control/example_configs/gpio_settings_test.ini +++ b/components/gpio_control/example_configs/gpio_settings_test.ini @@ -35,7 +35,7 @@ hold_repeat: False [Shutdown] enabled: True -Type: Button +Type: ShutdownButton Pin: 3 hold_time: 2 functionCall: functionCallShutdown diff --git a/components/gpio_control/gpio_control.py b/components/gpio_control/gpio_control.py index e4be1ac5d..3e6134495 100755 --- a/components/gpio_control/gpio_control.py +++ b/components/gpio_control/gpio_control.py @@ -69,6 +69,15 @@ def generate_device(config, deviceName): getFunctionCall(config.get('functionCallDown')), config.getfloat('timeBase', fallback=0.1), name=deviceName) + elif device_type == 'ShutdownButton': + return ShutdownButton(pin=config.getint('Pin'), + action=getFunctionCall(config.get('functionCall',fallback='functionCallShutdown')), + name=deviceName, + bouncetime=config.getint('bouncetime', fallback=500), + edge=config.get('edge', fallback='FALLING'), + hold_repeat=config.getboolean('hold_repeat', False), + hold_time=config.getfloat('hold_time', fallback=0.3), + pull_up_down=config.get('pull_up_down', fallback=GPIO.PUD_UP)) logger.warning('cannot find {}'.format(deviceName)) return None diff --git a/components/gpio_control/test/gpio_settings_test.ini b/components/gpio_control/test/gpio_settings_test.ini index 78b859287..a1ab63273 100644 --- a/components/gpio_control/test/gpio_settings_test.ini +++ b/components/gpio_control/test/gpio_settings_test.ini @@ -35,7 +35,7 @@ hold_repeat: False [Shutdown] enabled: True -Type: Button +Type: ShutdownButton Pin: 3 hold_time: 2 functionCall: functionCallShutdown diff --git a/components/gpio_control/test/test_shutdown_button.py b/components/gpio_control/test/test_shutdown_button.py index 223106c58..18ae10672 100644 --- a/components/gpio_control/test/test_shutdown_button.py +++ b/components/gpio_control/test/test_shutdown_button.py @@ -16,12 +16,12 @@ def shutdown_button(): return ShutdownButton(pin=1, action=mocked_function) -class TestShutdownButton(): +class TestShutDownButton(): def test_init(self): ShutdownButton(pin=1) @patch('time.sleep', mock_time) - def test_action(self, shutdown_button): + def test_action_too_short_press(self, shutdown_button): for i in range(9): GPIO.input.reset_mock() GPIO.input.side_effect = i * [0] + [1] @@ -30,13 +30,13 @@ def test_action(self, shutdown_button): mocked_function.assert_not_called() @patch('time.sleep', mock_time) - def test_action2(self, shutdown_button): + def test_action_invalid_press(self, shutdown_button): GPIO.input.side_effect = lambda *args: 1 shutdown_button.callbackFunctionHandler() mocked_function.assert_not_called() @patch('time.sleep', mock_time) - def test_action3(self, shutdown_button): + def test_action_valid_press(self, shutdown_button): GPIO.input.side_effect = lambda *args: 0 shutdown_button.callbackFunctionHandler() mocked_function.assert_called_once() From d10ac02f9d91f7f08d77d5bbf66fe65d90496309 Mon Sep 17 00:00:00 2001 From: s-martin Date: Mon, 23 Nov 2020 23:42:02 +0100 Subject: [PATCH 006/206] update to next version number --- settings/version-number | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings/version-number b/settings/version-number index 8bbe6cf74..be1c36e58 100755 --- a/settings/version-number +++ b/settings/version-number @@ -1 +1 @@ -2.2 +2.3rc1 From 039d3422422e4ca6456f5d4eb112a095ce3c01f3 Mon Sep 17 00:00:00 2001 From: s-martin Date: Mon, 23 Nov 2020 23:43:07 +0100 Subject: [PATCH 007/206] fixed date for 2.2 release --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2a66eeef3..494db0b35 100755 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ A contactless jukebox for the Raspberry Pi, playing audio files, playlists, podc * **Gitter Community** we got ourselves a gitter community; chat us up at https://gitter.im/phoniebox -* **Phoniebox [2.2](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/4?closed=1) released (2020-xx-xx)** +* **Phoniebox [2.2](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/4?closed=1) released (2020-11-23)** The [2.2](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/4?closed=1) release was pushed through the doors with many contributors (some of which in alphabetical order): @andreasbrett @BerniPi @juhrmann @Luegengladiator @MarkusProchaska @MarlonKrug @patrickweigelt @princemaxwell @RalfAlbers @s-martin @themorlan @veloxidSchweiz @xn--nding-jua. [List of all contributors](https://github.com/MiczFlor/RPi-Jukebox-RFID/graphs/contributors) From 85fef0f40e039c46c2f7ffe144afc6f976a4aec0 Mon Sep 17 00:00:00 2001 From: s-martin Date: Mon, 23 Nov 2020 23:44:22 +0100 Subject: [PATCH 008/206] go back for commit to master --- settings/version-number | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings/version-number b/settings/version-number index be1c36e58..8bbe6cf74 100755 --- a/settings/version-number +++ b/settings/version-number @@ -1 +1 @@ -2.3rc1 +2.2 From 6b0d27126d1d4534a7de62300c5050422a8515af Mon Sep 17 00:00:00 2001 From: s-martin Date: Mon, 23 Nov 2020 23:45:41 +0100 Subject: [PATCH 009/206] update to next release --- settings/version-number | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings/version-number b/settings/version-number index 8bbe6cf74..be1c36e58 100755 --- a/settings/version-number +++ b/settings/version-number @@ -1 +1 @@ -2.2 +2.3rc1 From 5d79d02f645b9b92b6b665fa001c0a8a887593af Mon Sep 17 00:00:00 2001 From: s-martin Date: Thu, 26 Nov 2020 21:22:22 +0100 Subject: [PATCH 010/206] Minor changes --- CONTRIBUTING.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 21005a60f..5f5767a92 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -130,8 +130,8 @@ The original contributor will be notified of the revert. be resolved within one business day. ## Guidelines ## -* Currently Phoniebox runs on Raspian **Buster** and **Stretch**. Therefore all Python code should work with **Python 3.5**. Some existing code may still be Python 2, but new code has to be compatible with Python 3.5 and old code that is changed should then be ported to Python 3.5. -* For GPIO all code should work with RPi.GPIO. gpiozero is currently not intended to use. +* Currently Phoniebox runs on Raspian **Buster** and **Stretch**. Therefore all Python code should work with **Python 3.5**. +* For GPIO all code should work with **RPi.GPIO**. gpiozero is currently not intended to use. ## Additional Resources From 6d0b79221cee36d606da0fb4a5aaaa54f0175aba Mon Sep 17 00:00:00 2001 From: s-martin Date: Sun, 29 Nov 2020 11:34:47 +0100 Subject: [PATCH 011/206] Add version number to startup script --- scripts/startup-scripts.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/startup-scripts.sh b/scripts/startup-scripts.sh index 88ac6b260..503c165cf 100755 --- a/scripts/startup-scripts.sh +++ b/scripts/startup-scripts.sh @@ -12,10 +12,12 @@ if [ ! -f $PATHDATA/../settings/global.conf ]; then fi . $PATHDATA/../settings/global.conf ########################################################### +echo "Phoniebox is starting..." + +cat $PATHDATA/../settings/version-number cat $PATHDATA/../settings/global.conf -echo echo "${AUDIOVOLSTARTUP} is the mpd startup volume" #################################### From 01ad7816afda054c4b7cbd529ab8122c77c9798f Mon Sep 17 00:00:00 2001 From: s-martin Date: Sun, 29 Nov 2020 20:05:43 +0100 Subject: [PATCH 012/206] Improve reading artist (#1166) * Improve reading artist Implement #1164 * Fix syntax * Fix syntax * More idiomatic check --- components/displays/HD44780-i2c/i2c_lcd.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/components/displays/HD44780-i2c/i2c_lcd.py b/components/displays/HD44780-i2c/i2c_lcd.py index 3539d460d..1adbcd866 100755 --- a/components/displays/HD44780-i2c/i2c_lcd.py +++ b/components/displays/HD44780-i2c/i2c_lcd.py @@ -333,12 +333,16 @@ def sec_to_min_and_sec(seconds): album = album.replace("\n", "").replace("ä", "\341").replace("ö", "\357").replace("ü", "\365").replace("ß", "\342").replace("Ä", "\341").replace("Ö", "\357").replace("Ü", "\365") # weitere codes siehe https://www.mikrocontroller.net/topic/293125 # except KeyError: # album = "" # - ## read in artist info # + ## read in artist info try: # artist = current_song_infos['artist'] # artist = artist.replace("\n", "").replace("ä", "\341").replace("ö", "\357").replace("ü", "\365").replace("ß", "\342").replace("Ä", "\341").replace("Ö", "\357").replace("Ü", "\365") # weitere codes siehe https://www.mikrocontroller.net/topic/293125 # except KeyError: # - artist = "" # + try: # + artist = current_song_infos['name'] # + artist = artist.replace("\n", "").replace("ä", "\341").replace("ö", "\357").replace("ü", "\365").replace("ß", "\342").replace("Ä", "\341").replace("Ö", "\357").replace("Ü", "\365") # weitere codes siehe https://www.mikrocontroller.net/topic/293125 # + except KeyError: # + artist = "" # if (client.mpd_version) >= "0.20": try: # elapsed = status['elapsed'].split(".")[0] # From 6510aba645ad4853a74f9c0df94e1b02e9d97999 Mon Sep 17 00:00:00 2001 From: veloxidSchweiz <55716261+veloxidSchweiz@users.noreply.github.com> Date: Mon, 30 Nov 2020 22:37:26 +0100 Subject: [PATCH 013/206] Feature/gpio debugging (#1165) * change logging * functionCall in case of invalid read of btn * adjust behavior to fix strange behavior in case of button press is not stead y --- .../gpio_control/GPIODevices/simple_button.py | 5 +++-- .../GPIODevices/two_button_control.py | 22 +++++++++++++++++-- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/components/gpio_control/GPIODevices/simple_button.py b/components/gpio_control/GPIODevices/simple_button.py index 250a59739..2e2c8202f 100644 --- a/components/gpio_control/GPIODevices/simple_button.py +++ b/components/gpio_control/GPIODevices/simple_button.py @@ -72,10 +72,11 @@ def __init__(self, pin, action=lambda *args: None, name=None, bouncetime=500, ed self._action = action GPIO.add_event_detect(self.pin, edge=self.edge, callback=self.callbackFunctionHandler, bouncetime=self.bouncetime) + self.callback_with_pin_argument = False def callbackFunctionHandler(self, *args): - if (len(args) > 0 and args[0] == self.pin): - logger.debug('args before: {}'.format(args)) + if len(args) > 0 and args[0] == self.pin and not self.callback_with_pin_argument: + logger.debug('Remove pin argument by callbackFunctionHandler - args before: {}'.format(args)) args = args[1:] logger.debug('args after: {}'.format(args)) diff --git a/components/gpio_control/GPIODevices/two_button_control.py b/components/gpio_control/GPIODevices/two_button_control.py index 83e3e9214..ef861e275 100644 --- a/components/gpio_control/GPIODevices/two_button_control.py +++ b/components/gpio_control/GPIODevices/two_button_control.py @@ -11,9 +11,17 @@ def functionCallTwoButtons(btn1, btn2, functionCall1, functionCall2, functionCallBothPressed=None): def functionCallTwoButtons(*args): + btn1_pin=btn1.pin + btn2_pin=btn2.pin + pressed_button=None + if len(args) > 0 and args[0] in (btn1_pin,btn2_pin): + logger.debug('Remove pin argument by TwoButtonCallbackFunctionHandler - args before: {}'.format(args)) + pressed_button=args[0] + args = args[1:] + logger.debug('args after: {}'.format(args)) btn1_pressed = btn1.is_pressed btn2_pressed = btn2.is_pressed - logger.debug('Btn1 {}, Btn2 {}'.format(btn1_pressed, btn2_pressed)) + logger.info('Btn1 {}, Btn2 {}-args:{}'.format(btn1_pressed,btn2_pressed,args)) if btn1_pressed and btn2_pressed: logger.debug("Both buttons was pressed") if functionCallBothPressed is not None: @@ -29,8 +37,16 @@ def functionCallTwoButtons(*args): logger.debug("Btn2 is pressed, action: functionCall2") logger.info('functionCall2') return functionCall2(*args) + elif pressed_button == btn1_pin: + logger.debug("No Button recognized, called by {}-pin1:functionCall1".format(args)) + logger.info('functionCall1') + return functionCall1(*args) + elif pressed_button == btn2_pin: + logger.debug("No Button recognized, called by {}-pin2:functionCall2".format(args)) + logger.info('functionCall2') + return functionCall2(*args) else: - logger.debug("No Button Pressed: no action") + logger.debug("No Button recognized, cannot evaluate reason for function call - {}".format(args)) return None return functionCallTwoButtons @@ -60,6 +76,7 @@ def __init__(self, edge=GPIO.FALLING, hold_time=hold_time, hold_repeat=hold_repeat) + self.btn1.callback_with_pin_argument = True self.btn2 = SimpleButton(pin=bcmPin2, action=lambda *args: None, @@ -68,6 +85,7 @@ def __init__(self, name=name + 'Btn2', bouncetime=500, edge=GPIO.FALLING) + self.btn2.callback_with_pin_argument = True generatedTwoButtonFunctionCall = functionCallTwoButtons(self.btn1, self.btn2, self.functionCallBtn1, From 6d504e5158f8ebff98fbf90c11b5410bd406b10d Mon Sep 17 00:00:00 2001 From: Schneelocke <75278644+Schneelocke@users.noreply.github.com> Date: Tue, 1 Dec 2020 20:30:17 +0100 Subject: [PATCH 014/206] Set Own Repo --- scripts/installscripts/buster-install-default.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/installscripts/buster-install-default.sh b/scripts/installscripts/buster-install-default.sh index 4fc1efe49..561676436 100755 --- a/scripts/installscripts/buster-install-default.sh +++ b/scripts/installscripts/buster-install-default.sh @@ -19,7 +19,7 @@ # The absolute path to the folder which contains this script PATHDATA="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" GIT_BRANCH=${GIT_BRANCH:-master} -GIT_URL=${GIT_URL:-https://github.com/MiczFlor/RPi-Jukebox-RFID.git} +GIT_URL=${GIT_URL:-https://github.com/Schneelocke/RPi-Jukebox-RFID.git} echo GIT_BRANCH $GIT_BRANCH echo GIT_URL $GIT_URL From 7ee558c635506d6c7dfdf8b926c435b5bcf92cfb Mon Sep 17 00:00:00 2001 From: s-martin Date: Wed, 2 Dec 2020 22:53:26 +0100 Subject: [PATCH 015/206] Fix volume of startup sound (#1169) Fixes #1167 --- scripts/inc.writeGlobalConfig.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/inc.writeGlobalConfig.sh b/scripts/inc.writeGlobalConfig.sh index ea1f28600..1f98bc54c 100755 --- a/scripts/inc.writeGlobalConfig.sh +++ b/scripts/inc.writeGlobalConfig.sh @@ -150,7 +150,7 @@ AUDIOVOLMINLIMIT=`cat $PATHDATA/../settings/Min_Volume_Limit` # Startup_Volume # 1. create a default if file does not exist if [ ! -f $PATHDATA/../settings/Startup_Volume ]; then - echo "0" > $PATHDATA/../settings/Startup_Volume + echo "30" > $PATHDATA/../settings/Startup_Volume chmod 777 $PATHDATA/../settings/Startup_Volume fi # 2. then|or read value from file From 9da0b1355bb98499fd0f1070d2be59a17603d6b1 Mon Sep 17 00:00:00 2001 From: StefanMinke <69303081+StefanMinke@users.noreply.github.com> Date: Mon, 7 Dec 2020 10:09:26 +0100 Subject: [PATCH 016/206] missing savepos-command in "playerstopafter" As there is a savepos-command in "playerstop" this should also be included in "playerstopafter". --- scripts/playout_controls.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/playout_controls.sh b/scripts/playout_controls.sh index 57b93e396..dc95a603f 100755 --- a/scripts/playout_controls.sh +++ b/scripts/playout_controls.sh @@ -579,7 +579,7 @@ case $COMMAND in # stop player after ${VALUE} minutes if [ ${VALUE} -gt 0 ]; then - echo "mpc stop" | at -q s now + ${VALUE} minute + echo "${PATHDATA}/resume_play.sh -c=savepos && mpc stop" | at -q s now + ${VALUE} minute fi ;; playernext) From 68af5b68f26dc3884a42b24ca7d3cea85f6005f7 Mon Sep 17 00:00:00 2001 From: jrn <33904621+JoernUhl@users.noreply.github.com> Date: Mon, 7 Dec 2020 14:12:47 -0500 Subject: [PATCH 017/206] Update buster-install-default.sh (#1181) Added spacing --- scripts/installscripts/buster-install-default.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/installscripts/buster-install-default.sh b/scripts/installscripts/buster-install-default.sh index 4fc1efe49..b4b4f553f 100755 --- a/scripts/installscripts/buster-install-default.sh +++ b/scripts/installscripts/buster-install-default.sh @@ -428,7 +428,7 @@ config_audio_interface() { esac # append variables to config file echo "AUDIOiFace=\"$AUDIOiFace\"" >> "${HOME_DIR}/PhonieboxInstall.conf" - echo "Your iFace is called'$AUDIOiFace'" + echo "Your iFace is called '$AUDIOiFace'" read -rp "Hit ENTER to proceed to the next step." INPUT } From cdd33bf1df252e923761d9ed02c305db2c2b1a21 Mon Sep 17 00:00:00 2001 From: Schneelocke Date: Sun, 13 Dec 2020 20:53:58 +0100 Subject: [PATCH 018/206] Revert "Set Own Repo" This reverts commit 6d504e5158f8ebff98fbf90c11b5410bd406b10d. --- scripts/installscripts/buster-install-default.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/installscripts/buster-install-default.sh b/scripts/installscripts/buster-install-default.sh index e8b90952b..b4b4f553f 100755 --- a/scripts/installscripts/buster-install-default.sh +++ b/scripts/installscripts/buster-install-default.sh @@ -19,7 +19,7 @@ # The absolute path to the folder which contains this script PATHDATA="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" GIT_BRANCH=${GIT_BRANCH:-master} -GIT_URL=${GIT_URL:-https://github.com/Schneelocke/RPi-Jukebox-RFID.git} +GIT_URL=${GIT_URL:-https://github.com/MiczFlor/RPi-Jukebox-RFID.git} echo GIT_BRANCH $GIT_BRANCH echo GIT_URL $GIT_URL From 54b25f14d6ae8c886a7b040e38a13771ac23dc25 Mon Sep 17 00:00:00 2001 From: ChrisSoc Date: Mon, 14 Dec 2020 10:12:49 +0100 Subject: [PATCH 019/206] Add base functionality for Bluetooth headphone integration --- components/bt-headphones/bt-buttons.py | 96 ++++++++++++ components/bt-headphones/bt-sink-switch.py | 138 ++++++++++++++++++ .../bt-headphones/install-bt-buttons.sh | 30 ++++ .../bt-headphones/install-bt-sink-switch.sh | 43 ++++++ .../phoniebox-bt-buttons.service.sample | 13 ++ 5 files changed, 320 insertions(+) create mode 100755 components/bt-headphones/bt-buttons.py create mode 100755 components/bt-headphones/bt-sink-switch.py create mode 100755 components/bt-headphones/install-bt-buttons.sh create mode 100755 components/bt-headphones/install-bt-sink-switch.sh create mode 100644 components/bt-headphones/phoniebox-bt-buttons.service.sample diff --git a/components/bt-headphones/bt-buttons.py b/components/bt-headphones/bt-buttons.py new file mode 100755 index 000000000..b6dc96446 --- /dev/null +++ b/components/bt-headphones/bt-buttons.py @@ -0,0 +1,96 @@ +#!/usr/bin/env python3 + +from evdev import InputDevice, categorize, ecodes +from subprocess import check_call +import time + +# Enable Bluetooth Headphone Buttons for Music Control +# Script will listen to headphone button press events and call approriate phonibox control function +# If no headset is connected, it will endlessly check headset connection status every 3 seconds. + + +# Step 1: Find out which event the bluetooth headset is connected to. +# It will be an input event device: /dev/input/eventX +# Make sure it is connected first and you can playback music :-) Follow the excellent instructions in the wiki +# +# Option 1) cat /proc/bus/input/devices +# In my case the bluetooth headset is listed under its MAC address +# Option 2) Disconnect headset, show >ls /etc/input +# Connect headset , show >ls /etc/input, analyze the difference +# +# Step 2: Test the event +# > cat /dev/input/event1 +# Press some buttons on the headset. Not all buttons will be forwarded, e.g. vol up/down may also be handled only in the headset. +# Try also long/short press +# The output will look wired. Don't worry - the important thing is that you are seeing something on the console +# +# Step 3: Figure out the key mappings +# In this script adapt the EVTDEV constant to fit your input event device +# Call this script directly from command the line (make sure it does not run as a service, if you already used the install script: ./sudo systemctl stop phoniebox-bt-buttons) +# >./bt-buttons.py +# Press a button on the headset. The script will output a log like this +# +# key event at 1600886330.107993, 201 (KEY_PAUSECD), up +# +# The "201" is the keycode, you are looking for. Go through all the buttons. Also try short/long press. On my headphones, they result in different keycodes +# +# Step 4: Adjust this script with keycodes (and behavior) +# If you are only looking for the play/pause/next/prev, simply adapt the keycodes below +# If you have more buttons than I have, you may extend the if-else clause towards the end of the script. +# To add new ctrl functions, check out playout_controls.sh for available commands +# +# This script has been tested with the following headset: PowerLocus Buddy +# +# Note: +# (a) If the event device does not exist, this script will not throw an error. (so you see no output if things dont work!) +# But continue checking if that event will appear at some time, i.e. which will happen if the headset gets connected. +# So if nothing happens, make sure you have the right event device listed here. +# (b) This script assumes a constant /dev/input/eventX to headset mapping, which is not globally given. +# But in a stable raspberry pi setup it will be constant, if no input devices are added/removed (especially in any order) +# +# Feature Enhancements +# Use cat /proc/bus/input/devices first to find correct eventX to headset mapping +# +# If you want this script to run automatically as service after booting, run the install script, or do this: +# Adjust directory paths in phoniebox-bt-buttons.service.sample +# sudo cp phoniebox-bt-buttons.service.sample /etc/systemd/system/phoniebox-bt-buttons.service +# sudo chown root:root /etc/systemd/system/phoniebox-bt-buttons.service +# sudo chmod 644 /etc/systemd/system/phoniebox-bt-buttons.service +# sudo systemctl enable phoniebox-bt-buttons.service + + +BTNPLAY = 200 +BTNPAUSE = 201 +BTNNEXT = 163 +BTNPREV = 165 + +EVTDEV='/dev/input/event1' + +def btkeyhandler(): + # Try to open the event device + dev = InputDevice(EVTDEV) + print(dev) + # Infinite loop reading the events. Will fail, if event device gets disconnected + for event in dev.read_loop(): + if event.type == ecodes.EV_KEY: + # Report the button event + print(categorize(event)) + # Only act on button press, not button release + if event.value == 1: + if event.code == BTNPLAY: + check_call("./scripts/playout_controls.sh -c=playerpause", shell=True) + elif event.code == BTNPAUSE: + check_call("./scripts/playout_controls.sh -c=playerpause", shell=True) + elif event.code == BTNNEXT: + check_call("./scripts/playout_controls.sh -c=playernext", shell=True) + elif event.code == BTNPREV: + check_call("./scripts/playout_controls.sh -c=playerprev", shell=True) + +while True: + try: + btkeyhandler() + break + except FileNotFoundError: + # Sleeping in long intervalls when headset is not connected + time.sleep(3) + diff --git a/components/bt-headphones/bt-sink-switch.py b/components/bt-headphones/bt-sink-switch.py new file mode 100755 index 000000000..6df8d0b1f --- /dev/null +++ b/components/bt-headphones/bt-sink-switch.py @@ -0,0 +1,138 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Created on Tue Dec 8 17:39:01 2020 + +Provides btSwitch (see below) as function and callable script + +If called as script, configure led_pin according to your set-up + +@author: chris +""" + +import sys +import re +import subprocess + +# If called as script, this variable will set GPIO number of the LED to reflect sink status +# Uses BCM GPIO numbering, i.e. 6 means GPIO6 +# Set 'led_pin=None' to disable LED support (and no GPIO pin is blocked in this case) +led_pin = 6 + +def btUsage(sname): + print("Usage") + print(" ./" + sname + "[ toggle | speakers | headphones]") + +def btSwitch(cmd, led_pin=None): + """ + Set/Toggle between regular speakers and headphone output. If no bluetooth device is connected, always defaults to mpc output 1 + + To be precise: toggle between mpc output 1 and mpc output 2. + + So, set up your /etc/mpd.conf correctly: first audio_output section should be speakers, second audio_output section should be headphones + To set up bluetooth headphones, follow the wiki + Short guide to connect bluetooth (without audio setup) + sudo bluetoothctl + power on + agent on + scan on -> shows list of Bluetooth devices in reach + pair C4:FB:20:63:A7:F2 -> pairing happens + trust C4:FB:20:63:A7:F2 -> trust you device + connect C4:FB:20:63:A7:F2 -> connect + scan off + exit + Next time headphones are switched on, they should connect automatically + + Requires + sudo apt install bluetooth + + Attention + The user to runs this script (precisly who runs bluetoothctl) needs proper access rights. Otherwise bluetoothctl will always return "no default controller found" + The superuser and users of group "bluetooth" have these. You can check the policy here + /etc/dbus-1/system.d/bluetooth.conf + Best to check first if the user which later runs this script can execute bluetoothctl and get meaningful results + sudo -u www-data bluetoothctl show + E.g. if you want to do bluetooth manipulation from the web interface, you will most likely need to add www-data to the group bluetooth + if you want to test this script from the command line, you will most likely need to add user pi (or whoever you are) to the group bluetooth or run it as superuser + sudo usermod -G bluetooth -a www-data + Don't forget to reboot for group changes to take effect here + + LED support + If LED number (GPIO number, BCM) is provided, a LED is switched to reflect output sink status + off = speakers, on = headphones + LED blinks if no bluetooth device is connected and bluetooth sink is requested, before script default to output 1 + + A note for developers: This script is not persistent and only gets called (from various sources) when the output sink is changed/toggled and exits. + This is done to make is callable from button press (gpio button handler), rfid card number, web interface + The LED state however should be persistent. With GPIOZero, the LED state gets reset at the end of the script. For that reason GPIO state is manipulated through shell commands + + Parameters + ---------- + cmd : string + toggle | speakers | headphones + + led_pin : integer + GPIO pin number of LED to reflect output status. If None, LED support is disabled (and no GPIO pin is blocked) + """ + # Check for valid command + if cmd != "toggle" and cmd != "speakers" and cmd != "headphones": + print("Error: Invalid command. Doing nothing.") + return + + # Sloppy check if LED pin request is valid GPIO pin number + if led_pin < 2 or led_pin > 27: + led_pin = None + print("- ERROR: Invalid led_pin. Ignoring led_pin = " + str(led_pin), file=sys.stderr) + + if led_pin: + # Set-up GPIO LED pin if not already configured. If it already exists, sanity check direction of pin before use + try: + with open("/sys/class/gpio/gpio" + str(led_pin) + "/direction") as f: + if f.readline(3) != "out": + print("- ERROR: LED pin already in use with direction 'in'. Ignoring led_pin = " + str(led_pin), file=sys.stderr) + led_pin = None + except: + # GPIO direction file does not exist -> pin is not configured. Set it up (sleep is necessary!) + subprocess.run("echo " + str(led_pin) + " > /sys/class/gpio/export; \ + sleep 0.1; \ + echo out > /sys/class/gpio/gpio" + str(led_pin) + "/direction", shell=True, check=False) + + # Figure out if output 1 (speakers) is enabled + isSpeakerOn_console = subprocess.run("mpc outputs", shell=True, check=False, capture_output=True) + isSpeakerOn = re.search(b"1.*enabled", isSpeakerOn_console.stdout) + + # Figure out if a bluetooth device is connected (any device will do). Assume here that only speakers/headsets will be connected + # -> No need for user to adapt MAC address + # -> will actually support multiple speakers/headsets paired to the phoniebox + # Alternative: Check for specific bluetooth device only with "bluetoothctl info MACADDRESS" + isBtConnected_console = subprocess.run("bluetoothctl info", shell=True, check=False, capture_output=True) + isBtConnected = re.search(b"Connected:\s+yes", isBtConnected_console.stdout) + + if ((cmd == "toggle" and isSpeakerOn) or (cmd == "headphones")): + # Only switch to BT headphones if they are actually connected + if isBtConnected: + print("Switched audio sink to \"Output 2\"") + subprocess.run("mpc enable only 2", shell=True, check=False); + if led_pin: + subprocess.run("echo 1 > /sys/class/gpio/gpio" + str(led_pin) + "/value", shell=True, check=False) + return + else: + print("No bluetooth device connected. Defaulting to \"Output 1\".") + if led_pin: + sleeptime = 0.25 + for i in range(0,3): + subprocess.run("echo 1 > /sys/class/gpio/gpio" + str(led_pin) + "/value; sleep " + str(sleeptime) + "; echo 0 > /sys/class/gpio/gpio" + str(led_pin) + "/value; sleep " + str(sleeptime), shell=True, check=False) + + # Default: Switch to Speakers + print("Switched audio sink to \"Output 1\"") + subprocess.run("mpc enable only 1", shell=True, check=False); + if led_pin: + subprocess.run("echo 0 > /sys/class/gpio/gpio" + str(led_pin) + "/value", shell=True, check=False) + + +if __name__ == "__main__": + if len(sys.argv) == 2: + btSwitch(sys.argv[1], led_pin) + else: + btUsage(sys.argv[0]) + diff --git a/components/bt-headphones/install-bt-buttons.sh b/components/bt-headphones/install-bt-buttons.sh new file mode 100755 index 000000000..21eaf96b5 --- /dev/null +++ b/components/bt-headphones/install-bt-buttons.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +# Check that script is called from source directory +FILE=bt-buttons.py +if [ ! -f "$FILE" ]; then + echo -e "Error: Install script must be started from source directoy of bt-headphones!" + exit -1 +fi + +USER=`whoami` +SCRPATH=`pwd` + +# Configuring service file +echo -e "\nConfiguring service" +sed "s@WorkingDirectory.*@WorkingDirectory=${SCRPATH}@g" phoniebox-bt-buttons.service.sample > phoniebox-bt-buttons.service.configured +sed -i "s@ExecStart.*@ExecStart=${SCRPATH}/${FILE} > /dev/null@g" phoniebox-bt-buttons.service.configured + +# Install service and enable it +SSRC=phoniebox-bt-buttons.service.configured +SDST=/etc/systemd/system/phoniebox-bt-buttons.service +echo -e "\nInstalling service" +sudo mv -f ${SSRC} ${SDST} +sudo chown root:root ${SDST} +sudo chmod 644 ${SDST} +sudo systemctl enable phoniebox-bt-buttons.service +sudo systemctl start phoniebox-bt-buttons.service + +# Final notes +echo -e "\n\nIMPORTANT NOTE:\nThis feature requires a certain amount of customization to each headset. Check out $FILE for details." +echo -e "If experimenting with the script make sure the service is stopped:\n sudo systemctl stop phoniebox-bt-buttons.service\n\n" diff --git a/components/bt-headphones/install-bt-sink-switch.sh b/components/bt-headphones/install-bt-sink-switch.sh new file mode 100755 index 000000000..3c6b72583 --- /dev/null +++ b/components/bt-headphones/install-bt-sink-switch.sh @@ -0,0 +1,43 @@ +#!/bin/bash + +# Check that script is called from source directory +FILE=bt-sink-switch.py +if [ ! -f "$FILE" ]; then + echo -e "Error: Install script must be started from source directoy og bt-headphones!" + exit -1 +fi + +USER=`whoami` +SCRPATH=`pwd` + +# Ensure script is executable for everyone +sudo chmod ugo+x $FILE + +# Make sure required packages are installed +echo -e "\nChecking bluetooth packages" +#sudo apt install bluetooth -y + +# Add users to bluetooth, to make bluetooth control avaiable through web interface +echo -e "\nSetting up user rights" +#sudo usermod -G bluetooth -a www-data +#sudo usermod -G bluetooth -a ${USER} + +# Default to speaker sink after boot +#STARTUP=../../scripts/startup-scripts.sh +STARTEXISTS=0 +if [ -f ${STARTUP} ]; then + # Check if script is already registed with startup-scripts.sh + STARTEXISTS=`grep -c ${FILE} ${STARTUP}` +fi +if [ "${STARTEXISTS}" = 0 ]; then + echo -e "\nRegistering start-up script" + echo -e "\n#Default audio sink to speakers irrespective of setting at shutdown" >> $STARTUP + echo -e "${SCRPATH}/bt-sink-switch.py speakers\n" >> $STARTUP +fi + +# Register script is enabled at global controls +# TBD + +# Final notes +echo -e "\n\n\nIMPORTANT NOTE:\nPlease modify ${FILE} around line 20 for\n led_pin=6\nto configure LED pin-out or diable LED support altogether." + diff --git a/components/bt-headphones/phoniebox-bt-buttons.service.sample b/components/bt-headphones/phoniebox-bt-buttons.service.sample new file mode 100644 index 000000000..54b7ddb52 --- /dev/null +++ b/components/bt-headphones/phoniebox-bt-buttons.service.sample @@ -0,0 +1,13 @@ +[Unit] +Description=Phoniebox Bluetooth Buttons Service +After=network.target + +[Service] +User=pi +Group=pi +Restart=always +WorkingDirectory=/home/pi/RPi-Jukebox-RFID +ExecStart=/home/pi/RPi-Jukebox-RFID/scripts/bt-buttons.py > /dev/null + +[Install] +WantedBy=multi-user.target From 066d80762d91cffa33bec672cad35abfb6e75326 Mon Sep 17 00:00:00 2001 From: s-martin Date: Tue, 15 Dec 2020 23:03:47 +0100 Subject: [PATCH 020/206] Add Discussions link to Readme --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 494db0b35..e0defd681 100755 --- a/README.md +++ b/README.md @@ -12,6 +12,8 @@ A contactless jukebox for the Raspberry Pi, playing audio files, playlists, podc ## Important updates / news +* **Discussions forums** we use Github's Discussions feature for a more forum style. Please ask questions there, bugs and enhancements should still be in issues; see here https://github.com/MiczFlor/RPi-Jukebox-RFID/discussions + * **Gitter Community** we got ourselves a gitter community; chat us up at https://gitter.im/phoniebox * **Phoniebox [2.2](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/4?closed=1) released (2020-11-23)** From 663e8089edc59ef3e133f6ceaf736a1b802d8e78 Mon Sep 17 00:00:00 2001 From: s-martin Date: Fri, 18 Dec 2020 12:32:48 +0100 Subject: [PATCH 021/206] Update Mopidy Iris to 3.54.2 (#1161) --- requirements-spotify.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements-spotify.txt b/requirements-spotify.txt index fa82f0c3e..83fa3206f 100644 --- a/requirements-spotify.txt +++ b/requirements-spotify.txt @@ -1,3 +1,3 @@ # Spotify related requirements # You need to install these with `sudo pip install --upgrade --force-reinstall -r requirements-spotify.txt` - Mopidy-Iris==3.45.0 + Mopidy-Iris==3.54.2 From 213b396e8f66c40d27b19666be7763760b27f313 Mon Sep 17 00:00:00 2001 From: ChrisSoc Date: Fri, 18 Dec 2020 21:06:11 +0100 Subject: [PATCH 022/206] Integrate bluetooth headphone toggle into Web Interface --- components/bt-headphones/bt-sink-switch.py | 21 ++-- .../bt-headphones/install-bt-sink-switch.sh | 36 ++++-- htdocs/ajax.getAudioSink.php | 11 ++ htdocs/ajax.getBluetoothStatus.php | 28 +++++ htdocs/inc.bluetooth.php | 67 +++++++++++ htdocs/lang/lang-de-DE.php | 56 +-------- htdocs/lang/lang-en-UK.php | 3 + htdocs/lang/lang-nl-NL.php | 112 +++++++++++------- htdocs/settings.php | 11 ++ scripts/playout_controls.sh | 5 + scripts/rfid_trigger_play.sh | 3 + settings/rfid_trigger_play.conf.sample | 2 + 12 files changed, 239 insertions(+), 116 deletions(-) create mode 100755 htdocs/ajax.getAudioSink.php create mode 100755 htdocs/ajax.getBluetoothStatus.php create mode 100755 htdocs/inc.bluetooth.php diff --git a/components/bt-headphones/bt-sink-switch.py b/components/bt-headphones/bt-sink-switch.py index 6df8d0b1f..cf0e58c6a 100755 --- a/components/bt-headphones/bt-sink-switch.py +++ b/components/bt-headphones/bt-sink-switch.py @@ -15,9 +15,9 @@ import subprocess # If called as script, this variable will set GPIO number of the LED to reflect sink status -# Uses BCM GPIO numbering, i.e. 6 means GPIO6 +# Uses BCM GPIO numbering, i.e. 'led_pin = 6' means GPIO6 # Set 'led_pin=None' to disable LED support (and no GPIO pin is blocked in this case) -led_pin = 6 +led_pin = None def btUsage(sname): print("Usage") @@ -79,12 +79,13 @@ def btSwitch(cmd, led_pin=None): print("Error: Invalid command. Doing nothing.") return - # Sloppy check if LED pin request is valid GPIO pin number - if led_pin < 2 or led_pin > 27: - led_pin = None - print("- ERROR: Invalid led_pin. Ignoring led_pin = " + str(led_pin), file=sys.stderr) + # Rudimentary check if LED pin request is valid GPIO pin number + if led_pin is not None: + if led_pin < 2 or led_pin > 27: + led_pin = None + print("- ERROR: Invalid led_pin. Ignoring led_pin = " + str(led_pin), file=sys.stderr) - if led_pin: + if led_pin is not None: # Set-up GPIO LED pin if not already configured. If it already exists, sanity check direction of pin before use try: with open("/sys/class/gpio/gpio" + str(led_pin) + "/direction") as f: @@ -112,8 +113,8 @@ def btSwitch(cmd, led_pin=None): # Only switch to BT headphones if they are actually connected if isBtConnected: print("Switched audio sink to \"Output 2\"") - subprocess.run("mpc enable only 2", shell=True, check=False); - if led_pin: + subprocess.run("mpc enable only 2", shell=True, check=False, capture_output=True); + if led_pin is not None: subprocess.run("echo 1 > /sys/class/gpio/gpio" + str(led_pin) + "/value", shell=True, check=False) return else: @@ -125,7 +126,7 @@ def btSwitch(cmd, led_pin=None): # Default: Switch to Speakers print("Switched audio sink to \"Output 1\"") - subprocess.run("mpc enable only 1", shell=True, check=False); + subprocess.run("mpc enable only 1", shell=True, check=False, capture_output=True); if led_pin: subprocess.run("echo 0 > /sys/class/gpio/gpio" + str(led_pin) + "/value", shell=True, check=False) diff --git a/components/bt-headphones/install-bt-sink-switch.sh b/components/bt-headphones/install-bt-sink-switch.sh index 3c6b72583..036b0240b 100755 --- a/components/bt-headphones/install-bt-sink-switch.sh +++ b/components/bt-headphones/install-bt-sink-switch.sh @@ -3,7 +3,21 @@ # Check that script is called from source directory FILE=bt-sink-switch.py if [ ! -f "$FILE" ]; then - echo -e "Error: Install script must be started from source directoy og bt-headphones!" + echo -e "Error: Install script must be started from source directoy of bt-headphones!" + exit -1 +fi + +# Only works for the Classic edition +EDITIONFILE=../../settings/edition +if [ ! -f "$EDITIONFILE" ]; then + echo -e "Error: Cannot find file '$EDITIONFILE' to check Phonibox edition" + exit -1 + +fi + +EDITION=`cat $EDITIONFILE` +if [ "${EDITION}" != "classic" ]; then + echo -e "Error: Sorry, this feature is only working with the classic edition, but got '${EDITION}'" exit -1 fi @@ -15,29 +29,29 @@ sudo chmod ugo+x $FILE # Make sure required packages are installed echo -e "\nChecking bluetooth packages" -#sudo apt install bluetooth -y +sudo apt install bluetooth -y -# Add users to bluetooth, to make bluetooth control avaiable through web interface +# Add users to bluetooth, to make bluetooth control available through web interface echo -e "\nSetting up user rights" -#sudo usermod -G bluetooth -a www-data -#sudo usermod -G bluetooth -a ${USER} +sudo usermod -G bluetooth -a www-data +sudo usermod -G bluetooth -a ${USER} # Default to speaker sink after boot -#STARTUP=../../scripts/startup-scripts.sh +STARTUP=../../scripts/startup-scripts.sh STARTEXISTS=0 if [ -f ${STARTUP} ]; then # Check if script is already registed with startup-scripts.sh STARTEXISTS=`grep -c ${FILE} ${STARTUP}` fi -if [ "${STARTEXISTS}" = 0 ]; then +if [ "${STARTEXISTS}" = 0 ]; then echo -e "\nRegistering start-up script" echo -e "\n#Default audio sink to speakers irrespective of setting at shutdown" >> $STARTUP echo -e "${SCRPATH}/bt-sink-switch.py speakers\n" >> $STARTUP fi -# Register script is enabled at global controls -# TBD +# Let global controls know this feature is enabled +CONFFILE=../../settings/BtHeadphoneIntegration +echo "ON" > ${CONFFILE} # Final notes -echo -e "\n\n\nIMPORTANT NOTE:\nPlease modify ${FILE} around line 20 for\n led_pin=6\nto configure LED pin-out or diable LED support altogether." - +echo -e "\n\n\nIMPORTANT NOTE:\nPlease modify ${FILE} around line 20 for\n led_pin=None\nto configure LED pin-out.\n Do nothing to leave it disabled." diff --git a/htdocs/ajax.getAudioSink.php b/htdocs/ajax.getAudioSink.php new file mode 100755 index 000000000..6e5cd2734 --- /dev/null +++ b/htdocs/ajax.getAudioSink.php @@ -0,0 +1,11 @@ +enabled", $btOutputs); + $btOutputs = str_replace("disabled", "disabled", $btOutputs); + print "$btOutputs"; + +?> diff --git a/htdocs/ajax.getBluetoothStatus.php b/htdocs/ajax.getBluetoothStatus.php new file mode 100755 index 000000000..b1f5d3ec5 --- /dev/null +++ b/htdocs/ajax.getBluetoothStatus.php @@ -0,0 +1,28 @@ + diff --git a/htdocs/inc.bluetooth.php b/htdocs/inc.bluetooth.php new file mode 100755 index 000000000..7d7a2cbf1 --- /dev/null +++ b/htdocs/inc.bluetooth.php @@ -0,0 +1,67 @@ + + + + +
+
+
+

+ +

+ "; + print "
"; + print "
"; + if (strpos($btswitch, "Default") === false) { + print "
"; + } else { + print "
"; + } + print "Message: $btswitch
"; + print "
"; + print "
"; + } + ?> +
+ + +
+
+ +
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+
+ diff --git a/htdocs/lang/lang-de-DE.php b/htdocs/lang/lang-de-DE.php index 386214cc4..0916d7f38 100755 --- a/htdocs/lang/lang-de-DE.php +++ b/htdocs/lang/lang-de-DE.php @@ -1,6 +1,5 @@ Du kannst Karten auch manuell mit Ordnern verbinden. Das Handbuch erklärt, wie man sich mit der Phoniebox verbindet und Karten registriert.

"; $lang['cardRegisterTriggerSuccess'] = "Die Karte ist jetzt verknüpft um die Funktion auszuführen:"; - -/* -* "Karten bearbeiten"-Formular -*/ $lang['cardFormFolderLegend'] = "RFID-Karte verlinken mit:"; $lang['cardFormFolderLabel'] = "Einen Audio-Ordner auswählen"; $lang['cardFormFolderSelectDefault'] = "Keiner (--Wählen-- zur Auswahl eines Ordners)"; @@ -145,7 +129,6 @@ $lang['cardFormTriggerLabel'] = "... eine Phoniebox Funktion auswählen"; $lang['cardFormTriggerHelp'] = "Wähle eine Funktion aus der Liste aus (z.B. 'pause', 'volume up', 'shutdown'). Bestehende Verknüpfungen werden im Pulldown-Menü angezeigt."; $lang['cardFormTriggerSelectDefault'] = "Wähle eine Phoniebox Funktion"; - $lang['cardFormStreamLegend'] = "Stream verlinken / erstellen"; $lang['cardFormStreamLabel'] = "Stream URL (benötigt immer einen neuen Ordner - s.o.)"; $lang['cardFormStreamPlaceholderClassic'] = "http(...).mp3 / .m3u / .ogg / .rss / .xml / ..."; @@ -153,19 +136,14 @@ $lang['cardFormStreamHelp'] = "Füge die URL für spotify, Podcast, Webradio, Stream oder andere Online-Medien hinzu"; $lang['cardFormStreamTypeSelectDefault'] = "Wähle den Typ"; $lang['cardFormStreamTypeHelp'] = "Wähle die Art des Streams, den du hinzufügen möchtest"; - $lang['cardFormYTLegend'] = "Von YouTube Herunterladen"; $lang['cardFormYTLabel'] = "YouTube URL (einzelner Track oder Playlist)"; $lang['cardFormYTPlaceholder'] = "z.B. https://www.youtube.com/watch?v=7GI0VdPehQI"; $lang['cardFormYTSelectDefault'] = "--Wählen--, um einen Ordner auszuwählen oder einen neuen darunter zu erstellen"; $lang['cardFormYTHelp'] = "Füge die volle YouTube-URL wie im Beispiel hinzu"; $lang['cardFormRemoveCard'] = "Karten-ID entfernen"; - -// Karten IDs als .csv-Datei exportieren $lang['cardExportAnchorLink'] = "Alle RFID Verknüpfungen exportieren (Audio und Systembefehle)"; $lang['cardExportButtonLink'] = ".csv-Datei aller verfügbaren RFID-Verknüpfungen erstellen"; - -// Karten IDs aus .csv-Datei importieren $lang['cardImportAnchorLink'] = "RFID Verknüpfungen aus .csv-Datei importieren"; $lang['cardImportFileLabel'] = ".csv-Datei auswählen um RFID-Verknüpfungen zu erstellen"; $lang['cardImportFileSuccessUpload'] = "Datei erfolgreich hochgeladen: "; @@ -186,10 +164,6 @@ $lang['cardImportFormDeleteHelp'] = "Welche der bestehenden RFID-Verknüpfungen sollen behalten werden, welche gelöscht?"; $lang['cardImportFileDeleteMessageCommands'] = "

Systembefehle gelöscht.

"; $lang['cardImportFileDeleteMessageAudio'] = "

Audio Verknüpfungen gelöscht.

"; - -/* -* "Track bearbeiten"-Formular -*/ $lang['trackEditTitle'] = "Track-Management"; $lang['trackEditInformation'] = "Track-Informationen"; $lang['trackEditMove'] = "Track verschieben"; @@ -200,10 +174,6 @@ $lang['trackEditDeleteHelp'] = "Es gibt kein Rückgängigmachen für gelöschte Dateien. Sie sind weg! Bist du sicher?"; $lang['trackEditDeleteNo'] = "Diesen Track NICHT löschen"; $lang['trackEditDeleteYes'] = "Ja, diesen Track LÖSCHEN"; - -/* -* Einstellungen -*/ $lang['settingsVolChangePercent'] = "Lautst. Änderung"; $lang['settingsMaxVol'] = "Max. Lautstärke"; $lang['settingsStartupVol'] = "Start-Lautstärke"; @@ -236,17 +206,12 @@ $lang['settingsWlanSendEmail'] = "E-Mail Adr."; $lang['settingsWlanSendON'] = "Ja, E-Mail senden."; $lang['settingsWlanSendOFF'] = "Nein, E-Mail nicht senden."; - - +$lang['settingsVolumeManager'] = "Select volume manager"; $lang['settingsWlanReadNav'] = "Wlan IP vorlesen"; $lang['settingsWlanReadInfo'] = "Wlan IP bei jedem Systemstart vorlesen? (nützlich wenn du deine Phoniebox in ein neues Wlan-Netzwerk mit dynamischer IP verbindest)"; $lang['settingsWlanReadQuest'] = "Wlan IP vorlesen?"; $lang['settingsWlanReadON'] = "Ja, Wlan IP vorlesen."; $lang['settingsWlanReadOFF'] = "Nein, Wlan IP nicht vorlesen."; - -/* -* Systeminformationen -*/ $lang['infoOsDistrib'] = "Betriebssystem"; $lang['infoOsCodename'] = "Codename"; $lang['infoOsTemperature'] = "Temperatur"; @@ -257,10 +222,8 @@ $lang['infoDebugLogTail'] = "DEBUG Logdatei: Letzte 40 Zeilen"; $lang['infoDebugLogClear'] = "Lösche Inhalt von debug.log"; $lang['infoDebugLogSettings'] = "Debug Log Einstellungen"; - -/* -* Ordnerverwaltung und Dateien hochladen -*/ +$lang['infoAudioActive'] = "Aktive Audioausgänge"; +$lang['infoBluetoothStatus'] = "Bluetooth Status"; $lang['manageFilesFoldersTitle'] = "Ordner & Dateien"; $lang['manageFilesFoldersUploadFilesLabel'] = "Dateien von deinem Laufwerk auswählen"; $lang['manageFilesFoldersUploadLegend'] = "Dateien hochladen"; @@ -276,22 +239,13 @@ $lang['manageFilesFoldersErrorNewFolderNotParent'] = "

Der übergeordnete Ordner existiert nicht.

"; $lang['manageFilesFoldersSuccessNewFolder'] = "Neuer Ordner erstellt: "; $lang['manageFilesFoldersSelectDefault'] = "--Wählen--, um einen Ordner auszuwählen und/oder einen neuen Unterordner zu erstellen"; - $lang['manageFilesFoldersRenewDB'] = "Datenbank erneuern"; $lang['manageFilesFoldersLocalScan'] = "Musikbibliothek scannen"; $lang['manageFilesFoldersRenewDBinfo'] = "Bitte scanne deine Musikbibliothek, nachdem du neue Dateien hochgeladen oder Ordner verschoben hast. Der Scan ist nicht notwendig, um Musik zu hören, aber es ist notwendig, um Track-Informationen in der Web-Oberfläche zu sehen. Es werden nur neue oder verschobene Dateien gescannt. Während der Scan läuft, wird Mopidy gestoppt. Nach Abschluss des Scans startet Mopidy automatisch neu. Den Serverstatus siehst du im Abschnitt Info."; - -/* -* Dateisuche -*/ $lang['searchTitle'] = "Audiodateien suchen"; $lang['searchExample'] = "z.B. Moonlight"; $lang['searchSend'] = "Suchen"; $lang['searchResult'] = "Suchergebnisse:"; - -/* -* Filter -*/ $lang['filterall'] = "Zeige alle"; $lang['filterfile'] = "Dateien"; $lang['filterlivestream'] = "Livestream"; diff --git a/htdocs/lang/lang-en-UK.php b/htdocs/lang/lang-en-UK.php index d0144c5e0..096411f12 100755 --- a/htdocs/lang/lang-en-UK.php +++ b/htdocs/lang/lang-en-UK.php @@ -68,6 +68,7 @@ $lang['globalLanguageSettings'] = "Language Settings"; $lang['globalPriority'] = "Priority"; $lang['globalEmail'] = "Email address"; +$lang['globalAudioSink'] = "Audio Devices"; // Player title HTML $lang['playerSeekBack'] = "seek back"; @@ -259,6 +260,8 @@ $lang['infoDebugLogTail'] = "DEBUG log file: Last 40 lines"; $lang['infoDebugLogClear'] = "Clear all content from debug.log"; $lang['infoDebugLogSettings'] = "Debug Log Settings"; +$lang['infoAudioActive'] = "Enabled Audio Devices"; +$lang['infoBluetoothStatus'] = "Bluetooth Status"; /* * Folder Management and File Upload diff --git a/htdocs/lang/lang-nl-NL.php b/htdocs/lang/lang-nl-NL.php index 6f27f51e3..16dee3443 100755 --- a/htdocs/lang/lang-nl-NL.php +++ b/htdocs/lang/lang-nl-NL.php @@ -1,6 +1,5 @@ (Javascript in browser vereist om ingeschakeld te kunnen worden.)"; $lang['cardEditMessageDefault'] = "De kaart-ID's die in dit systeem worden gebruikt, staan ​​vermeld op de home page."; $lang['cardRegisterMessageSwipeNew'] = "Veeg nog een kaart als u meer kaarten wilt registreren."; @@ -114,33 +117,53 @@ $lang['cardRegisterDownloadingYT'] = "

YouTube-audio wordt gedownload. Dit kan een paar minuten duren. U kunt het logbestand 'youtube-dl.log' in de gedeelde map controleren.

"; $lang['cardRegisterSwipeUpdates'] = "Dit wordt automatisch bijgewerkt terwijl je een RFID-kaart veegt."; $lang['cardRegisterManualLinks'] = "

U kunt kaarten ook handmatig met mappen verbinden. In de handleiding wordt uitgelegd hoe u verbinding maakt met de phoniebox en kaarten registreert.

"; - -/* -* Card edit form -*/ +$lang['cardRegisterTriggerSuccess'] = "The card is now linked to trigger the command:"; $lang['cardFormFolderLegend'] = "Audiomap"; $lang['cardFormFolderLabel'] = "a) Link kaart naar audiomap"; $lang['cardFormFolderSelectDefault'] = "Geen (Pulldown om een ​​map te selecteren)"; +$lang['cardFormFolderHelp'] = "Containing local files or add YouTube content (specify below)."; +$lang['cardFormNewFolderLabel'] = "... or link a new folder"; +$lang['cardFormNewFolderHelp'] = "Always use a new folder for streams (see below) and optionally for YouTube."; +$lang['cardFormNewFolderPlaceholder'] = "e.g. 'Artist Name/Album'"; +$lang['cardFormTriggerLegend'] = "Trigger system command"; +$lang['cardFormTriggerLabel'] = "... or link to a system command"; +$lang['cardFormTriggerHelp'] = "Select system commands (like 'pause', 'volume up', 'shutdown') from the list of available commands. If a RFID card is already linked to a function, the ID is shown in the pulldown menu."; +$lang['cardFormTriggerSelectDefault'] = "Select command to link"; +$lang['cardFormStreamLegend'] = "Link Stream"; $lang['cardFormStreamLabel'] = "b) ... of maak verbinding met de Stream-URL"; $lang['cardFormStreamPlaceholderClassic'] = "Livestream: http(...).mp3 / .m3u / .ogg / ..."; $lang['cardFormStreamPlaceholderPlusSpotify'] = "spotify:album/artist/playlist/track:### / Livestream: http(...).mp3 / .m3u / .ogg / ..."; $lang['cardFormStreamHelp'] = "Voeg de URL toe voor spotify, podcast, webradio, stream of andere online media"; $lang['cardFormStreamTypeSelectDefault'] = "Selecteer type"; $lang['cardFormStreamTypeHelp'] = "Selecteer het type dat u toevoegt"; -$lang['cardFormStreamFolderPlaceholder'] = "bijv. 'Album / Afspeellijst / Stationsnaam'"; -$lang['cardFormStreamFolderHelp'] = "Naam voor de audiomap die de stream-URL bevat."; $lang['cardFormYTLegend'] = "YouTube"; $lang['cardFormYTLabel'] = "c) ... of download YouTube-audio"; $lang['cardFormYTPlaceholder'] = "bijv. https://www.youtube.com/watch?v=7GI0VdPehQI"; $lang['cardFormYTSelectDefault'] = "Pulldown om een ​​map te selecteren of maak hieronder een nieuwe aan"; -$lang['cardFormYTFolderPlaceholder'] = "bijv. 'Nieuwe Map'"; -$lang['cardFormYTFolderHelp'] = "Naam voor de audiomap die de YouTube-audio bevat."; $lang['cardFormYTHelp'] = "Voeg de volledige YouTube-URL toe zoals in het voorbeeld"; $lang['cardFormRemoveCard'] = "Verwijder kaart-ID"; - -/* -* Track edit form -*/ +$lang['cardExportAnchorLink'] = "Export all RFID links (audio playout and commands)"; +$lang['cardExportButtonLink'] = "Create .csv file of available RFID links"; +$lang['cardImportAnchorLink'] = "Import RFID links from .csv file"; +$lang['cardImportFileLabel'] = "Select .csv file to create RFID links"; +$lang['cardImportFileSuccessUpload'] = "Successful upload of file: "; +$lang['cardImportFileErrorUpload'] = "

There was an error uploading the file, please try again!

"; +$lang['cardImportFileErrorFiletype'] = "

Wrong file type! The file must be a .csv file.

"; +$lang['cardImportFormOverwriteLabel'] = "Select import action"; +$lang['cardImportFormOverwriteHelp'] = "Specify what to do with the uploaded RFID links."; +$lang['cardImportFormOverwriteAll'] = "Overwrite both: audio AND commands"; +$lang['cardImportFormOverwriteAudio'] = "Overwrite ONLY audio triggers"; +$lang['cardImportFormOverwriteCommands'] = "Overwrite ONLY system commands"; +$lang['cardImportFileOverwriteMessageCommands'] = "

System commands were overwritten with uploaded RFID IDs.

"; +$lang['cardImportFileOverwriteMessageAudio'] = "

Links to audio playlists etc. were overwritten with uploaded RFID IDs.

"; +$lang['cardImportFormDeleteLabel'] = "Delete or keep other RFID links?"; +$lang['cardImportFormDeleteNone'] = "Keep all existing: audio AND commands"; +$lang['cardImportFormDeleteAll'] = "Delete both: audio AND commands"; +$lang['cardImportFormDeleteAudio'] = "Delete ONLY audio triggers"; +$lang['cardImportFormDeleteCommands'] = "Delete ONLY system commands"; +$lang['cardImportFormDeleteHelp'] = "Which of the existing RFID links should be kept, which deleted?."; +$lang['cardImportFileDeleteMessageCommands'] = "

System commands deleted.

"; +$lang['cardImportFileDeleteMessageAudio'] = "

Audio links deleted.

"; $lang['trackEditTitle'] = "Track management"; $lang['trackEditInformation'] = "Track informatie"; $lang['trackEditMove'] = "Verplaats track"; @@ -151,21 +174,20 @@ $lang['trackEditDeleteHelp'] = "Er is geen 'ongedaan maken' voor verwijderde bestanden. Ze zijn weg! Weet je het zeker?"; $lang['trackEditDeleteNo'] = "Verwijder deze track NIET"; $lang['trackEditDeleteYes'] = "Ja, VERWIJDER deze track"; - - -/* -* Settings -*/ $lang['settingsVolChangePercent'] = "Vol. verandering %"; $lang['settingsMaxVol'] = "Maximaal Volume"; +$lang['settingsStartupVol'] = "Startup Volume"; $lang['settingsWifiRestart'] = "De wijzigingen die zijn aangebracht op uw WiFi-verbinding vereisen dat een herstart van kracht wordt."; $lang['settingsWifiSsidPlaceholder'] = "Bijv.: PhonieHomie"; $lang['settingsWifiSsidHelp'] = "De naam waaronder uw WiFi wordt weergegeven als 'beschikbaar netwerk'"; +$lang['settingsWifiPassHelp'] = "The password of your WiFi (8 characters at least)"; +$lang['settingsWifiPrioHelp'] = "Your WiFi's priority (0-100). If more than one WiFi is found the box will connect to the one with the higher priority"; $lang['settingsSecondSwipe'] = "Tweede veeg"; $lang['settingsSecondSwipeInfo'] = "Wanneer u dezelfde RFID voor de tweede keer gebruikt, wat gebeurt er dan? Start de afspeellijst opnieuw? Schakelen tussen pauze / afspelen?"; $lang['settingsSecondSwipeRestart'] = "afspeellijst opnieuw afspelen"; $lang['settingsSecondSwipeSkipnext'] = "Ga naar het volgende nummer"; $lang['settingsSecondSwipePause'] = "Schakelen tussen pauze / afspelen"; +$lang['settingsSecondSwipePlay'] = "Resume playback"; $lang['settingsSecondSwipeNoAudioPlay'] = "Negeer audio playout-triggers, alleen systeemopdrachten"; $lang['settingsSecondSwipePauseInfo'] = "Negeer het opnieuw scannen van dezelfde kaart voor:"; $lang['second'] = "Seconde"; @@ -178,10 +200,18 @@ $lang['settingsShowCoverON'] = "Albumhoes laten zien"; $lang['settingsShowCoverOFF'] = "Albumhoes niet laten zien"; $lang['settingsMessageLangfileNewItems'] = "Er zijn nieuwe taalitems in het oorspronkelijke lang-en-UK.php -bestand. Uw taalbestand is bijgewerkt en bevat nu deze (in het Engels). Misschien wilt u uw taalbestand bijwerken en uw wijzigingen in de Phoniebox-code aanbrengen :) "; - -/* -* System info -*/ +$lang['settingsWlanSendNav'] = "Mail Wlan IP"; +$lang['settingsWlanSendInfo'] = "Send Wlan IP over email on boot? (useful if you hook your Phoniebox into a new Wlan networt with dynamic IP)"; +$lang['settingsWlanSendQuest'] = "Send Wlan IP?"; +$lang['settingsWlanSendEmail'] = "email addr."; +$lang['settingsWlanSendON'] = "Yes, send email."; +$lang['settingsWlanSendOFF'] = "No, do not send email."; +$lang['settingsVolumeManager'] = "Select volume manager"; +$lang['settingsWlanReadNav'] = "Read Wlan IP"; +$lang['settingsWlanReadInfo'] = "Read IP address of wlan (wifi) each time after booting? (useful if you hook your Phoniebox into a new wlan networt with dynamic IP)"; +$lang['settingsWlanReadQuest'] = "Read wlan IP?"; +$lang['settingsWlanReadON'] = "Yes, read wlan IP."; +$lang['settingsWlanReadOFF'] = "No, do not read wlan IP."; $lang['infoOsDistrib'] = "OS-distributie"; $lang['infoOsCodename'] = "Codenaam"; $lang['infoOsTemperature'] = "Temperatuur"; @@ -189,10 +219,11 @@ $lang['infoStorageUsed'] = "Opslag gebruik"; $lang['infoMopidyStatus'] = "Mopidy Server Status"; $lang['infoMPDStatus'] = "MPD Server Status"; - -/* -* Folder Management and File Upload -*/ +$lang['infoDebugLogTail'] = "DEBUG log file: Last 40 lines"; +$lang['infoDebugLogClear'] = "Clear all content from debug.log"; +$lang['infoDebugLogSettings'] = "Debug Log Settings"; +$lang['infoAudioActive'] = "Enabled Audio Devices"; +$lang['infoBluetoothStatus'] = "Bluetooth Status"; $lang['manageFilesFoldersTitle'] = "Mappen & bestanden"; $lang['manageFilesFoldersUploadFilesLabel'] = "Selecteer bestanden van uw schijf"; $lang['manageFilesFoldersUploadLegend'] = "Upload bestanden"; @@ -208,19 +239,13 @@ $lang['manageFilesFoldersErrorNewFolderNotParent'] = "

De bovenliggende map bestaat niet.

"; $lang['manageFilesFoldersSuccessNewFolder'] = "Nieuwe map gemaakt:"; $lang['manageFilesFoldersSelectDefault'] = "Trek naar beneden om een ​​map te selecteren en / of maak hieronder een nieuwe onderliggende map"; - $lang['manageFilesFoldersRenewDB'] = "Database vernieuwen"; $lang['manageFilesFoldersLocalScan'] = "Scan muziekbibliotheek"; $lang['manageFilesFoldersRenewDBinfo'] = "Scan uw muziekbibliotheek na het uploaden van nieuwe bestanden of het verplaatsen van mappen. De scan is niet nodig om muziek te horen, maar het is noodzakelijk om nummerinformatie te zien in de Web UI. Alleen nieuwe of verplaatste bestanden worden gescand. Terwijl de scan wordt uitgevoerd, wordt mopidy gestopt. Nadat de scan is voltooid, start de mopidy automatisch. U kunt de serverstatus zien in het gedeelte Info."; - $lang['searchTitle'] = "Zoeken naar audiobestanden"; $lang['searchExample'] = "z.B. Moonlight"; $lang['searchSend'] = "Zoeken"; $lang['searchResult'] = "Zoekresultaten:"; - -/* -* Filter -*/ $lang['filterall'] = "Toon alles"; $lang['filterfile'] = "Bestanden"; $lang['filterlivestream'] = "Livestream"; @@ -228,4 +253,3 @@ $lang['filterspotify'] = "Spotify"; $lang['filteryoutube'] = "YouTube"; ?> - diff --git a/htdocs/settings.php b/htdocs/settings.php index 51a0fa4a2..d6358f733 100755 --- a/htdocs/settings.php +++ b/htdocs/settings.php @@ -126,6 +126,17 @@
+ + + +
diff --git a/scripts/playout_controls.sh b/scripts/playout_controls.sh index dc95a603f..9470ddbb0 100755 --- a/scripts/playout_controls.sh +++ b/scripts/playout_controls.sh @@ -67,6 +67,7 @@ NOW=`date +%Y-%m-%d.%H:%M:%S` # recordstop # recordplaylatest # readwifiipoverspeaker +# bluetoothtoggle # The absolute path to the folder whjch contains all the scripts. # Unless you are working with symlinks, leave the following line untouched. @@ -994,6 +995,10 @@ case $COMMAND in sudo rm WifiIp.mp3 /usr/bin/php /home/pi/RPi-Jukebox-RFID/scripts/helperscripts/cli_ReadWifiIp.php ;; + bluetoothtoggle) + if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi + ../components/bt-headphones/bt-sink-switch.py $VALUE + ;; *) echo Unknown COMMAND $COMMAND VALUE $VALUE if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo "Unknown COMMAND ${COMMAND} VALUE ${VALUE}" >> ${PATHDATA}/../logs/debug.log; fi diff --git a/scripts/rfid_trigger_play.sh b/scripts/rfid_trigger_play.sh index 5e62645bb..3cb22787b 100755 --- a/scripts/rfid_trigger_play.sh +++ b/scripts/rfid_trigger_play.sh @@ -271,6 +271,9 @@ if [ "$CARDID" ]; then $CMDREADWIFIIP) $PATHDATA/playout_controls.sh -c=readwifiipoverspeaker ;; + $CMDBLUETOOTHTOGGLE) + $PATHDATA/playout_controls.sh -c=bluetoothtoggle -v=toggle + ;; *) # We checked if the card was a special command, seems it wasn't. diff --git a/settings/rfid_trigger_play.conf.sample b/settings/rfid_trigger_play.conf.sample index b061c8a44..3ac8a5d9f 100755 --- a/settings/rfid_trigger_play.conf.sample +++ b/settings/rfid_trigger_play.conf.sample @@ -47,6 +47,8 @@ CMDSEEKBACK="%CMDSEEKBACK%" CMDPAUSE="%CMDPAUSE%" ### Resume audio playout CMDPLAY="%CMDPLAY%" +### Toggle between speakers and bluetooth headphones +CMDBLUETOOTHTOGGLE="%CMDBLUETOOTHTOGGLE%" ## System ### Shutdown From 4e307fa407da67e21519f3c2cd8c45fe6d8391fd Mon Sep 17 00:00:00 2001 From: ChrisSoc Date: Fri, 18 Dec 2020 21:50:45 +0100 Subject: [PATCH 023/206] Fix bugs and default configuration after testing --- components/bt-headphones/bt-buttons.py | 48 +++++++++++-------- .../phoniebox-bt-buttons.service.sample | 4 +- 2 files changed, 30 insertions(+), 22 deletions(-) diff --git a/components/bt-headphones/bt-buttons.py b/components/bt-headphones/bt-buttons.py index b6dc96446..1bbf40112 100755 --- a/components/bt-headphones/bt-buttons.py +++ b/components/bt-headphones/bt-buttons.py @@ -15,8 +15,8 @@ # # Option 1) cat /proc/bus/input/devices # In my case the bluetooth headset is listed under its MAC address -# Option 2) Disconnect headset, show >ls /etc/input -# Connect headset , show >ls /etc/input, analyze the difference +# Option 2) Disconnect headset, show >ls /dev/input +# Connect headset , show >ls /dev/input, analyze the difference # # Step 2: Test the event # > cat /dev/input/event1 @@ -26,7 +26,7 @@ # # Step 3: Figure out the key mappings # In this script adapt the EVTDEV constant to fit your input event device -# Call this script directly from command the line (make sure it does not run as a service, if you already used the install script: ./sudo systemctl stop phoniebox-bt-buttons) +# Call this script directly from command the line (make sure it does not run as a service, if you already used the install script: >sudo systemctl stop phoniebox-bt-buttons) # >./bt-buttons.py # Press a button on the headset. The script will output a log like this # @@ -42,29 +42,37 @@ # This script has been tested with the following headset: PowerLocus Buddy # # Note: -# (a) If the event device does not exist, this script will not throw an error. (so you see no output if things dont work!) +# (a) If the event device does not exist, this script will not throw an error. (You will see no output if things dont work!) # But continue checking if that event will appear at some time, i.e. which will happen if the headset gets connected. # So if nothing happens, make sure you have the right event device listed here. # (b) This script assumes a constant /dev/input/eventX to headset mapping, which is not globally given. # But in a stable raspberry pi setup it will be constant, if no input devices are added/removed (especially in any order) # -# Feature Enhancements +# Possible future feature enhancements # Use cat /proc/bus/input/devices first to find correct eventX to headset mapping # -# If you want this script to run automatically as service after booting, run the install script, or do this: -# Adjust directory paths in phoniebox-bt-buttons.service.sample -# sudo cp phoniebox-bt-buttons.service.sample /etc/systemd/system/phoniebox-bt-buttons.service -# sudo chown root:root /etc/systemd/system/phoniebox-bt-buttons.service -# sudo chmod 644 /etc/systemd/system/phoniebox-bt-buttons.service -# sudo systemctl enable phoniebox-bt-buttons.service - +# If you want this script to run automatically as service after booting do this: +# The easy way: +# run the install script +# The hard way: +# Adjust directory paths in phoniebox-bt-buttons.service.sample +# sudo cp phoniebox-bt-buttons.service.sample /etc/systemd/system/phoniebox-bt-buttons.service +# sudo chown root:root /etc/systemd/system/phoniebox-bt-buttons.service +# sudo chmod 644 /etc/systemd/system/phoniebox-bt-buttons.service +# sudo systemctl enable phoniebox-bt-buttons.service +# +# Troubleshooting +# If buttons fail to work after reboot, take a look into the boot messages to analyze the service messages +# >journalctl -b -u phoniebox-bt-buttons.service +# Check with >bluetoothctl info, if the headset is connected, play some music to be sure. Check /dev/input/eventX exists and check >cat /proc/bus/input/devices +# Then go back to starting the script in the console and take a look at the messages (stop the service first) -BTNPLAY = 200 +BTNPLAY = 200 BTNPAUSE = 201 -BTNNEXT = 163 -BTNPREV = 165 +BTNNEXT = 163 +BTNPREV = 165 -EVTDEV='/dev/input/event1' +EVTDEV='/dev/input/event0' def btkeyhandler(): # Try to open the event device @@ -78,13 +86,13 @@ def btkeyhandler(): # Only act on button press, not button release if event.value == 1: if event.code == BTNPLAY: - check_call("./scripts/playout_controls.sh -c=playerpause", shell=True) + check_call("../../scripts/playout_controls.sh -c=playerpause", shell=True) elif event.code == BTNPAUSE: - check_call("./scripts/playout_controls.sh -c=playerpause", shell=True) + check_call("../../scripts/playout_controls.sh -c=playerpause", shell=True) elif event.code == BTNNEXT: - check_call("./scripts/playout_controls.sh -c=playernext", shell=True) + check_call("../../scripts/playout_controls.sh -c=playernext", shell=True) elif event.code == BTNPREV: - check_call("./scripts/playout_controls.sh -c=playerprev", shell=True) + check_call("../../scripts/playout_controls.sh -c=playerprev", shell=True) while True: try: diff --git a/components/bt-headphones/phoniebox-bt-buttons.service.sample b/components/bt-headphones/phoniebox-bt-buttons.service.sample index 54b7ddb52..34f012f31 100644 --- a/components/bt-headphones/phoniebox-bt-buttons.service.sample +++ b/components/bt-headphones/phoniebox-bt-buttons.service.sample @@ -6,8 +6,8 @@ After=network.target User=pi Group=pi Restart=always -WorkingDirectory=/home/pi/RPi-Jukebox-RFID -ExecStart=/home/pi/RPi-Jukebox-RFID/scripts/bt-buttons.py > /dev/null +WorkingDirectory=/home/pi/RPi-Jukebox-RFID/components/bt-headphones +ExecStart=/home/pi/RPi-Jukebox-RFID/components/bt-headphones/bt-buttons.py > /dev/null [Install] WantedBy=multi-user.target From 369c7f9a68208dfcf3f599459eeab4070783f734 Mon Sep 17 00:00:00 2001 From: miohna <50060359+miohna@users.noreply.github.com> Date: Fri, 18 Dec 2020 22:26:41 +0100 Subject: [PATCH 024/206] (maint) Minor typos, whitespace issues (#1214) --- scripts/playout_controls.sh | 4 ++-- scripts/rfid_trigger_play.sh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/playout_controls.sh b/scripts/playout_controls.sh index dc95a603f..2c3224e58 100755 --- a/scripts/playout_controls.sh +++ b/scripts/playout_controls.sh @@ -68,7 +68,7 @@ NOW=`date +%Y-%m-%d.%H:%M:%S` # recordplaylatest # readwifiipoverspeaker -# The absolute path to the folder whjch contains all the scripts. +# The absolute path to the folder which contains all the scripts. # Unless you are working with symlinks, leave the following line untouched. PATHDATA="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" @@ -80,7 +80,7 @@ PATHDATA="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo "########### SCRIPT playout_controls.sh ($NOW) ##" >> ${PATHDATA}/../logs/debug.log; fi ########################################################### -# Read global configuration file (and create is not exists) +# Read global configuration file (and create if not exists) # create the global configuration file from single files - if it does not exist if [ ! -f ${PATHDATA}/../settings/global.conf ]; then . ${PATHDATA}/inc.writeGlobalConfig.sh diff --git a/scripts/rfid_trigger_play.sh b/scripts/rfid_trigger_play.sh index 5e62645bb..b15a7c912 100755 --- a/scripts/rfid_trigger_play.sh +++ b/scripts/rfid_trigger_play.sh @@ -80,7 +80,7 @@ if [ "$CARDID" ]; then # Special uses are for example volume changes, skipping, muting sound. case $CARDID in - $CMDSHUFFLE) + $CMDSHUFFLE) # toggles shuffle mode (random on/off) $PATHDATA/playout_controls.sh -c=playershuffle ;; From bd35f4a918d3ded9855db521c8f58b75f2164d6a Mon Sep 17 00:00:00 2001 From: ChrisSoc Date: Sat, 19 Dec 2020 00:02:38 +0100 Subject: [PATCH 025/206] Add GPIO function call for bluetooth audio toggle --- components/gpio_control/function_calls.py | 2 ++ scripts/playout_controls.sh | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/components/gpio_control/function_calls.py b/components/gpio_control/function_calls.py index 567c38f23..0ecaa3fe0 100644 --- a/components/gpio_control/function_calls.py +++ b/components/gpio_control/function_calls.py @@ -77,6 +77,8 @@ def functionCallPlayerSeekFwd(*args): def functionCallPlayerSeekBack(*args): function_call("{command} -c=playerseek -v=-10".format(command=playout_control), shell=True) +def functionCallBluetoothToggle(*args): + function_call("{command} -c=bluetoothtoggle -v=toggle".format(command=playout_control), shell=True) def getFunctionCall(functionName): logger.error('Get FunctionCall: {} {}'.format(functionName, functionName in locals())) diff --git a/scripts/playout_controls.sh b/scripts/playout_controls.sh index 9470ddbb0..59e6a7bd5 100755 --- a/scripts/playout_controls.sh +++ b/scripts/playout_controls.sh @@ -997,7 +997,7 @@ case $COMMAND in ;; bluetoothtoggle) if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi - ../components/bt-headphones/bt-sink-switch.py $VALUE + $PATHDATA/../components/bt-headphones/bt-sink-switch.py $VALUE ;; *) echo Unknown COMMAND $COMMAND VALUE $VALUE From 11cc776f68aca6cc04f0fcf8de398caef0d5d455 Mon Sep 17 00:00:00 2001 From: s-martin Date: Sat, 19 Dec 2020 23:13:08 +0100 Subject: [PATCH 026/206] Create codeql-analysis.yml --- .github/workflows/codeql-analysis.yml | 67 +++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 .github/workflows/codeql-analysis.yml diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml new file mode 100644 index 000000000..0c63344c5 --- /dev/null +++ b/.github/workflows/codeql-analysis.yml @@ -0,0 +1,67 @@ +# For most projects, this workflow file will not need changing; you simply need +# to commit it to your repository. +# +# You may wish to alter this file to override the set of languages analyzed, +# or to provide custom queries or build logic. +# +# ******** NOTE ******** +# We have attempted to detect the languages in your repository. Please check +# the `language` matrix defined below to confirm you have the correct set of +# supported CodeQL languages. +# +name: "CodeQL" + +on: + push: + branches: [ develop ] + pull_request: + # The branches below must be a subset of the branches above + branches: [ develop ] + schedule: + - cron: '16 18 * * 0' + +jobs: + analyze: + name: Analyze + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + language: [ 'cpp', 'javascript', 'python' ] + # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] + # Learn more: + # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + # Initializes the CodeQL tools for scanning. + - name: Initialize CodeQL + uses: github/codeql-action/init@v1 + with: + languages: ${{ matrix.language }} + # If you wish to specify custom queries, you can do so here or in a config file. + # By default, queries listed here will override any specified in a config file. + # Prefix the list here with "+" to use these queries and those in the config file. + # queries: ./path/to/local/query, your-org/your-repo/queries@main + + # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). + # If this step fails, then you should remove it and run the build manually (see below) + - name: Autobuild + uses: github/codeql-action/autobuild@v1 + + # ℹ️ Command-line programs to run using the OS shell. + # 📚 https://git.io/JvXDl + + # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines + # and modify them (or add more) to build your code if your project + # uses a compiled language + + #- run: | + # make bootstrap + # make release + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v1 From 42f66ded243521d1036c6840c175165000ac3bd2 Mon Sep 17 00:00:00 2001 From: s-martin Date: Sat, 19 Dec 2020 23:16:43 +0100 Subject: [PATCH 027/206] Update codeql-analysis.yml --- .github/workflows/codeql-analysis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 0c63344c5..df6b2837a 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -28,7 +28,7 @@ jobs: strategy: fail-fast: false matrix: - language: [ 'cpp', 'javascript', 'python' ] + language: [ 'javascript', 'python' ] # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] # Learn more: # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed From 7bfab7553c7398232cb292bb2f9bd3d06733f824 Mon Sep 17 00:00:00 2001 From: s-martin Date: Sun, 20 Dec 2020 19:51:29 +0100 Subject: [PATCH 028/206] Change path to gpio_settings.ini --- .github/ISSUE_TEMPLATE/bug_template.md | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_template.md b/.github/ISSUE_TEMPLATE/bug_template.md index 7b555ca31..1be942778 100644 --- a/.github/ISSUE_TEMPLATE/bug_template.md +++ b/.github/ISSUE_TEMPLATE/bug_template.md @@ -89,13 +89,5 @@ Can be found in the output of `sudo lsusb -v` when it is connected via USB. ### Other notable hardware From 7744519016bcff80dee8ac32594b00901338af04 Mon Sep 17 00:00:00 2001 From: s-martin Date: Wed, 23 Dec 2020 22:21:25 +0100 Subject: [PATCH 029/206] Add mopidy extensions versions to script --- .../helperscripts/Analytics_AfterInstallScript.sh | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/scripts/helperscripts/Analytics_AfterInstallScript.sh b/scripts/helperscripts/Analytics_AfterInstallScript.sh index 0424076ba..2b68e9551 100755 --- a/scripts/helperscripts/Analytics_AfterInstallScript.sh +++ b/scripts/helperscripts/Analytics_AfterInstallScript.sh @@ -29,16 +29,16 @@ ls -lh /etc/lighttpd/lighttpd.conf echo "*** /etc/lighttpd/conf-available/15-fastcgi-php.conf" ls -lh /etc/lighttpd/conf-available/15-fastcgi-php.conf -echo "*** /etc/php/7.0/fpm/php.ini" -ls -lh /etc/php/7.0/fpm/php.ini +echo "*** /etc/php/7.3/fpm/php.ini" +ls -lh /etc/php/7.3/fpm/php.ini echo "*** /etc/sudoers" ls -lh /etc/sudoers echo "*** /etc/systemd/system/phoniebox*" ls -lh /etc/systemd/system/phoniebox-rfid-reader.service -ls -lh /etc/systemd/system/phoniebox-startup-sound.service -ls -lh /etc/systemd/system/phoniebox-gpio-buttons.service +ls -lh /etc/systemd/system/phoniebox-startup-scripts.service +ls -lh /etc/systemd/system/phoniebox-gpio-control.service ls -lh /etc/systemd/system/phoniebox-idle-watchdog.service echo "*** /etc/mpd.conf" @@ -65,9 +65,6 @@ echo " " echo "*** /etc/locale.gen" ls -lh /etc/locale.gen -echo "*** /etc/locale.gen" -ls -lh /etc/locale.gen - echo "*** /etc/mopidy/mopidy.conf" ls -lh /etc/mopidy/mopidy.conf sudo cat /etc/mopidy/mopidy.conf | grep username @@ -82,4 +79,6 @@ sudo cat ~/.config/mopidy/mopidy.conf | grep username #sudo cat ~/.config/mopidy/mopidy.conf | grep client_id #sudo cat ~/.config/mopidy/mopidy.conf | grep client_secret +sudo mopidyctl deps + echo " " From 33a58afb6e6aed4de971d12265f96b20a39aa99d Mon Sep 17 00:00:00 2001 From: miohna Date: Wed, 23 Dec 2020 23:06:23 +0100 Subject: [PATCH 030/206] Fixes bug in folder tree, related to special chars Resolving #469 by simplifying collapse IDs in folder tree. Make use of integers for collapse IDs rather than folder names to avoid problem with any kind of non-allowed characters as ID value. Simplifies corresponding code as no character replacement is required for collapse IDs anymore. --- htdocs/func.php | 2 +- htdocs/inc.viewFolderTree.php | 9 ++------- htdocs/index.php | 6 +----- 3 files changed, 4 insertions(+), 13 deletions(-) diff --git a/htdocs/func.php b/htdocs/func.php index ff829c25b..be12ea2de 100755 --- a/htdocs/func.php +++ b/htdocs/func.php @@ -288,7 +288,7 @@ function index_folders_print($item, $key) } } $playlist = $contentTree[$key]['path_rel']; - $id = str_replace(",", "", $contentTree[$key]['id']); + $id = $contentTree[$key]['id']; /**/ //print "
\nkey:".$key." id:".$contentTree[$key]['id']." path_rel:".$contentTree[$key]['path_rel']; print_r($contentTree); print "
"; //??? //print "
\nfiles:"; print_r($files); print "
"; //??? diff --git a/htdocs/inc.viewFolderTree.php b/htdocs/inc.viewFolderTree.php index 6810d29da..b40e26657 100755 --- a/htdocs/inc.viewFolderTree.php +++ b/htdocs/inc.viewFolderTree.php @@ -140,13 +140,8 @@ // chop off the $Audio_Folders_Path in the beginning //$temp['path_rel'] = substr($folder."/".$value, strlen($Audio_Folders_Path) + 1, strlen($folder."/".$value)); $temp['path_rel'] = substr($subfolder, strlen($Audio_Folders_Path) + 1, strlen($subfolder)); - // some special version with no slashes or whitespaces for IDs on the panel collapse - $temp['id'] = preg_replace('/\//', '---', $temp['path_rel']); - $temp['id'] = preg_replace('/\ /', '-_-', $temp['id']); - $temp['id'] = preg_replace('/\[/', '_-', $temp['id']); - $temp['id'] = preg_replace('/\]/', '-_', $temp['id']); - $temp['id'] = preg_replace('/&/', 'and', $temp['id']); - $temp['id'] = "ID".preg_replace('/\:/', '-+-', $temp['id']); + // IDs on the panel collapse + $temp['id'] = "ID".$idcounter++; // count the level depth in the tree by counting the slashes in the path $temp['level'] = substr_count($temp['path_rel'], '/'); // information about the content diff --git a/htdocs/index.php b/htdocs/index.php index f45ded1e0..d714567ad 100755 --- a/htdocs/index.php +++ b/htdocs/index.php @@ -124,16 +124,12 @@ $audiofolders = array_filter(glob($Audio_Folders_Path.'/*'), 'is_dir'); usort($audiofolders, 'strcasecmp'); -// counter for ID of each folder +// counter for ID of each folder, increased when used (within inc.viewFolderTree.php) $idcounter = 0; // go through all folders foreach($audiofolders as $audiofolder) { - // increase ID counter - $idcounter++; - include('inc.viewFolderTree.php'); - } ?> From e6cad661f3bee2ce569ddbe67aacb669df7df635 Mon Sep 17 00:00:00 2001 From: Micz Flor Date: Thu, 31 Dec 2020 17:17:26 +0100 Subject: [PATCH 031/206] 2021 calendar --- README.md | 6 +++++- docs/2021-Phoniebox-Calendar.jpg | Bin 0 -> 703431 bytes 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 docs/2021-Phoniebox-Calendar.jpg diff --git a/README.md b/README.md index 494db0b35..58c9e6067 100755 --- a/README.md +++ b/README.md @@ -8,7 +8,11 @@ A contactless jukebox for the Raspberry Pi, playing audio files, playlists, podcasts, web streams and spotify triggered by RFID cards. All plug and play via USB, no soldering iron needed. Update: if you must, it now also features a howto for adding GPIO buttons controls. -![The 2020 Phoniebox Calendar](docs/2020-Phoniebox-Calendar.jpg "The 2020 Phoniebox Calendar") +## The Phoniebox Calendar 2021 is here!!! + +Another bunch of wonderful designs! 20201 is the third Phoniebox calendar. If you are interested, you can see the [2019 and 2020 calendars in the docs folder](https://github.com/MiczFlor/RPi-Jukebox-RFID/tree/develop/docs). You can [download the printable PDF here](https://mi.cz/static/2021-Phoniebox-Calendar.pdf). + +![The 2021 Phoniebox Calendar](docs/2021-Phoniebox-Calendar.jpg "The 2021 Phoniebox Calendar") ## Important updates / news diff --git a/docs/2021-Phoniebox-Calendar.jpg b/docs/2021-Phoniebox-Calendar.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b62591cf19f60de4619a05f1b13a565273219b79 GIT binary patch literal 703431 zcmb4q2T)Vd_hzsn3L+vXy-EkA6FN$7(g{_12O+eCrl2AqAT3CZ^cFxsz))36q$H6J zQX(w@LJ^XHLBQp=`=8yJ-PzgMd*8e_^X{AX?%Z?Vx#xc0cmB=(`vqV$(9zcc(9qBT zl+P>R-#p+E;L4@TS1w<=a^>=st5>hk(lOG}UAsod%y9DtBP;XWyR6JCENq;D+-&Up z94st6;ynEKg+xR}?r}>zkPv<#C@doUpO?^Fy?T|7mhLtk-ECnu7B=Dk@AB^(;1=y= z*{jbl(%b@ExJ7gE7R|qY00#g-bNN5L{a=OV!o~CcUZp*6Wj}BEALV~G|5xk3pMV<| zX#f`(FEXCLp=pI|lcTNu;SzwUpG)}i1r27c8@kmzfaicGEicFizC717092^6y79?k zLmqAqos`sPx;kMuy-xq$u_dm-t>wYYxMIi%*lh+8FcPN@IzdP`s|t;wvtPb^spWtM zONJ*e-x@A|9RKFI=nI^`$4o3f&p3dGEKqkoh1=!8y$xiM_ zgV|BWcr4EG?cZIJaA~|CK=2LE)-#?9m*{LCi5z?Y(9+Vn1_sBb8Pb}Hd2`Z<%s`G8 zfli+{5F@LbsO8Px)q!-~JL@gxsJdkGXpwaH19NS*1bsB)bBm1ihR%kd$zK*Ufv!!d zj~!o43l7eUCEf~RbXY~}7L9u6fB7$4Uby2n&~-ZgE_ofL*I+-LdO=sM@d*z2h{V*17LX`fS1!nw?D(vsa7L}`Wa5%y z+DSE^Ibc$=HbL(abFN(W{C#vLNCIYE5tV=ZHWTPw@qO%(p}^K`$8!oI-8m9vBCKxcYoCbZSy)>f~w^(O_)OxpBb z;I2dmXR8g|*zU(776aMD+l#Fy6laAJ;KfPfj`+?bb)&5#tOSZkQQ=?KrV+o?bfuJm z`?2#ucz9^@I|HrZgc8emD_Zms^}`;T!K)Io^f`b}&8O|sN0t`olBysuh7iO?GF8}k z>f478J9Dz`Six3h9lIpCO`zwKdGT$oK}ube-8%H_#@K3C4YX&r*YqNA_)fU!7B6<7 ztZ}g62jFS}svr~43`GYtbOQi9V;{%Lboz8s`9-9%gSQ!H(Vizhxv%66ANS|*-a|2u zb{j!l?-nRchZVI;cDBv8Ul{!+Ix(Xf;BvoZJ>K^v(tinSKoprphPT5X77@ht`rhne za^CO&#>#v?j(^Ua9quW$%pAIN#H?rbyXMv%UsTEd)c45c)kFqnJF};yjG9$BhZvUP zq!rTEUZHB!Bl*hu#ZiY)Npp*wgl^2>-acAwd>g1Qp29vp&2HuSS9xOzs}K8Ld#dZp zBHX5(I)DI!vFOztF$99#`W7Fyxaei!Kn(V!VC9e7sGfSymbGu)bJ63o&-Id{cIy&) z@~>UyF?fFA2@OpSxhpSDcQ}!A{_d&t8w#(8KCf|_@&>pHWrgFsYV>T$xqkG3vK>lQ z?JNkc=^#1f#ga@17JcT?>85Hy5CR``$G;JLsp;9qNLYtkEP^J*lXpz#{(6ff-)-2T zG1@RY!Q_Hs{G6-(<;>Bd3Ke}jSxpT9;0isPrAmadM@Bxf<6v_R1A0alaZ((veazyN ztGAX|Dfsyv)n$?#%dIc7XacUnhGl_5hWvf(cwk*kkMbV}SAaM3e~GzdemZcP9ei9) z=YLUW!ljfxhfm@bx7b>u*YKONEIbvyDzjSu2juF!l=#KbK^9K6Rs;uH=vj02E?GpLuQwjn%~#JYw8M8k^T){ zuDHR*oA()?ocsF(om4himunhYE-N=^w0TtW0t_cei{&NO7~Lu*v02D&Nsib1T|F3D z1ez48H#(dmzc9mEIU`lZ@v|8nxyVq1cy@rOem6X4o) z#>s4o(wGx`1Pdq29EBc3DDAAeZZodxA9F`P`>mrh7m9?L6!HSv81FMcnV@$VB-8?{h21kFcYE4N(cg;`9tjKsE3 zah1qwp64HE0RZ0qQ)g~=N|%8SK#?{FFh1CU0p{HcGMk5M>qCUFnm^?8go&zl4d1HGS4xuTS>c%rXO za|V~cyo92ed2E!-6AN&zUBO_Q?5CRhnRAjYe&)L^B{d};1^l_$=rUBLrySH_B6n}3 zavfE&{Ivs}^t6Z*Y`F0(7u(HkV&A4vP=max>iKL6XQSi>^!wbc&_2hP7P?tm$I5_3 zH+f=B!o@E){d|?2;v&}Yh&Q_LUi5NHWM|PNF^ zb}c(}a-^%f(t%}qh5}Ps%+E@bdE)75ehIWUgxe_Ji$=d)&+E5P7~$;JX(eCr%a$T& zZ-I@{HcT)ruZF<2C+TG*F8_kpzrr0==Q--Z71&J;kVyyTb~fj|5En$6K!entH~9|7 zJgmU_H}!2E8oK|4wHI`tiT6J`dC4=VvP%?4edj|NF826Qe~&3uIf@ks??qe$zHUDj zF8l{bZ?x~}W;xu^VfHBgNdnC-!OE4!=j`kpj&0YQTia8OpH^_XxKT2gEni~2(r1!p zH3wHicP9R*b#ajY-1(Lg*u*R~%|Mj`j|N#K?{cXXoStI(Oy}^4L*wZqGQE)$K}^DQ4lU~ z@MaXJYSfS`R?}9e{$Y2I-QPZ+GFqMDs2R9x&x@>=Y_dMt?owuMZ|^}0Z49r-b}0j& zm=tc12fB#q6l%ru%gmZrZ#2|8Dw(L>*g~m#W`z*BtJZB$qJJl$^#jf(P+fY4(Rsdo zO7BEfKuo?E0()*Rhwy*#^$L6$dK5T-$udXG~H-JoV9k|1Zye>ChF&gqq<+sz_ zKTTc@k8x#@|FO_DGh1>25XQnmV@hyY#Ys(Vw-%u$&{xawE|kyRG-a;|B12Ho8qV|^ z{YbVwd7$(1OeJ;U;aNJ1ZTw`ok|sd2O?LwBMkJAAs0Uo!3RXM2?M7UWupk`!YyzM1 z8{34&ya_+@DF>=xe7c@Wahn=xqMZC#svf%f-p8bV&=;?5ndg{)FoxPc*o6F9-+H9) zC*j%3)izS;r(a(&E_PrxK2iX7ct+`jMih+3zY?Au97H;)n$JV@ZwiOwo5qZ7`6f#| z4ctL`PgI3~DD<|B4{5Xu^0mqlwW%&A9)^V-gNr&1tBPO&&&U&#=1YOjLCWjxsT-@Y zt@yY3{s>XD;6eDCquR#vuTlo%^Ez}kdZtf zL7E^;h_wsSS=z;uBin?kb6KkI zEUE=D{pHCpk5W&Jtmw)kx%({);eTNU0~!3ag~w77pXWAHeiC$sXKpmjO}?K;67z|_ z;t$q>BG=l5;z(zs9ORG8P;KPQ>bOIm29NDQ7{0q`moRIK-cKAm_%Lz3K6<)A#!H5~ zBB_&#-p1EYU9H5bHG4seO;{YjG0{KMtY}J%88sT}=GQh)RUkNSnaHT`9t}AxF$p7ASSPudKke3!*={ikrl|aP9jnpty zNQ?<9=yH4!-PNj92-Bh2gwB1>0nL@eN<%jUsfWZ}{u+9}5P`Rvk_>R2?syzX-F7|J z&7TV8$+<(vwa39Jb9ekxeN*Dq39cf^&j7mT&t*MaJbzQCzb1iA*=CogajK{q-A2_| zRRGJNFA(KxSQ7>5M2xtx=A*OHbv;K?tuUXuP9gBP;l>_IpreyX@8EKG@*?NbUPSk- z_Y*)p$Fw{pv&bDZng7nq6zN}Y<50cItz3|+E2AEyBwl!IiZwwy>fcV>Tp7kHj!0`n zsF}92swR{SFaK^9P8cARlMV@|OCz%z*Fvy1-+eEn-qP%QTw6bYouyWAz7362PZJs^ zRXorBsc}BL8d_%7H&oREy$GI_GTdr8QIPi2Bh9hnc_cXz{gcb;XEXE!jbnZlM%e#$ zWA**}Z73ATNjAw};t~O@(E8ZR-+f*KdgXV=`(uy4m)l$!)+*2@dgw_31oR{eq<>ui znN-GA&v9-NuB@5<^UZaxT;K1lmrb#D{dS{2v4Kby2)?;AO;EzHgfliA8Ol6i?r05; z=9=*k96_vfELrsMV7;XbNw3tp+@@v!M3m0CG}wK{`3)`*##N0Oyger|M^xS={)&gg zhdu^8k8T@Ga80Jn+O*elIFDd?c8hxbDmsAX-P9OPG?8v@kVuh)oXc`YY zqh}kNj+RBOw!A2q^rQz3S1%n5j4S)LRL~mc>lyDZI9Q+%0m6$f!fNLRS6U+4VZ8pVdWk^+xVS}CgJAlDsTi@sM@1Muh@&M>M zRKgd21gNq-FbKG+PuveYj{fWvO)f4TtGt>xQLrB)tI9rf+@qGz2hwL;+Cf93OW^q zHAd^(o1kn)q-~M)Tg&UvN&mKY0VDneK!ER#oB3*p;ly%1|3k#7L!5H~CTjl&A1^bU zQQ%vR<&xvo?XZdg;SweU%EWPTQ z_!X=Kq9*?=YKF9TduHD|bRecvZGNLOJi|$^fuoL2{=K#YzcTPyskZjA`@jx1)`^&F zV@qT%LDh3{%1LM3pL{l%Im{_jh5l|@r2R6Zi^SC!fFj>=^M3w8c-dSPuR@d=Lznr8 zH_j(pc6I2dCS4ZJzD_5b*v_)04$Mloq@hlA6=8klOPfJ*CgMJL}-whXnlD;7rM}YVOrE zu@``Mqq86Gs$3Fn8p5(Y2heH!2$?5ObY8#whIX^696u_2N4(5+p81(W$A{N1dBzVy z@BG;0Q%tiElb#z;+CfhFXempRv6Do_aL>@KJjGsJHHCJ;Yyh(c3pa~rE6Gu^N;T9W zjNQ;9C@5?A??DWo&8^V=PHW$h2}9RmA43aX8Q+eukR8K;k&+_$yxWitb@X)Q!d~6$ z^aAI!4` z_Kh6Vf;C;d6X~>Pu46;D6WaJDT`a~1U!};o*>)3lsZXbk@!oYcC8!FkI^63RpgoJ} zNGU<9=l*#|%9&tvJnW$E;K{!#-B+FEOe`L?tzwLQB!r&pJ}L~sg=Nzr4#52Y0G;fki%$8#t!4d{F(uwPg99yt z3@#hQMKm((O0Mhn$BMqt`Gr865v3~Cb~f5|x~bfnM|zZpP*cm_hXu0Q<3%&sP$i2= z?+X{|O4c%h{TW~mO9j~JUD?v8uHvY9nCcr_sRHE8BVk4VdYy4v>EYHPziVm2W&nc1T=LKGVm1!8^yrl25zgg7R(BM98SWOfy zXNP4H6zE3?%8Dr=gHz$elit`K*^TIi`^}hrgEVN8=dgrPx~V)PgLLHiZ#rq2Up4Sa*5x;oW*W!-4M z(>2w&32MH4AePv#TdZR%rCH?b<&YYMGKtt+9bQR&!}qED0ST4W3JqnW8x64-1ki-+ zT0O3lq2CKR8er=FddF30vN#^KOldL;`7C1KZ_bE48Tctmh zxzxz#v?`9MwiAxU*LJj9xQG~Ke0_#_JV3a)TSC07r@yPC6H?H}8pr0V)%1H)x0s5xp^H&kz!ZL znC2S&1E@Rd3pE>Zdfu;GvziVhby=$g_`4cs>P0!Vj~sm%gx}=oP)p-Ds>9xt>?jT# zUo}FfwRDm^OU(8PV`QWxhElt&Cr4XtPZc*vL_>2izD;zikXnlHlWDuaNL46DL@x0c zNC44viSAMPAtXXIHk?-0<%XV$xfVjj-%{yTS&oY~%6{Q*gcDq%>5J9{TZ3yZ;x>{t z!+=S9PEp$pD>Hx{$dJXxcI=@3O&MP`J(GwbUgbz@*e>_xBLecfV4#>xDf6?b08fy4 z0jOZ$ujq`i!}mNJhu!S&HJUWZ?>_y>hLsDUyHgGG|32tevF?BJ*gN^d zn}?d09y1|wzwXRb_)dFE1Zeo>+M5vmo{6jNGL6ayn zDPl4+G|Pg&GE8Z1yQXWN5IGwC{l2R}<<5lL&OoZ38vjib5JV-14^z1h6&mn--_yf; zHSo#g=f#Go&^DQ${{Ti7gTX*Fhk@O@pyHsi>?XHdZA{&yQp;-KIA3<3aRc1ERx&R%|)e*}hxN)HEQYd9L;Aq4nnOf>6a0h5YJoC%b z<~~vS=iz0o+##%nK zhzG=L0pc(7yraFqcs|e?-<0&~=`H|j`I3dpUU3*0s6e~96eE|(%YBIq_kkfUH>fH< zP%Uu^Etq=#nhZgahlSF>2kk6(h6r6gUHff37X9q>mUozn zQ{0IkF%6{Etdhr~)$4^#0&C@CqQ-RBvMLkxuQDw3R-tWOBi4~F=Mg<->3pcYTlmna zPivL(kgc^-ndPwI7JH?qFmWHb;;=O;l|jePx33B`zkwqM8-iJ}?aB5<{{X5xZpLp~ z+z6dTf7T)hNn{msKSn~C2+TYBAHWk{(6wPv%HgLlvN7WsT|QZZ^piKtx5p$ZTud+g z`<`@vDXSQG=KLY0I9n6s_u4DaYA5~}%EjJ^X)7>#&>gKLRka$}Tn2L>{y0c#?XhA_!X<%!u{2Z~`9*Zc1qHz3U-S zfR7?acl(kth{lingDufLsh|Ssp&AQNy9oHj7KvP}ws4s`vCahsnoVv;#>R7Of?-&B zQxj(3_x7q~B;nAWJYrM7gyJJE^6RcGwn36v+t)ro}OeeqfD8~wBTo@n*5f`*9W zRYT5)r(AkWH?NNAX}eV{WgOjVSI85W4S3EO)QFydMsENv0G{(`@cdxB#HhhrP}`OL znKAn#o$!BZ2?I+Z(5fQC%KtKr#^wJ!py1bPFlH)bo|gDTF_>3rSV%A}=6+{@@l)bm zwqaI$YjAD2AKPFX@@r9W{yJW@hnyX_Oz%RU$DhA0jIt5;xj;si!E$H}ML z>Qk{HsNrL-q=QrCX^0Jc+m*CD?&Np}b4Bj%dTM1m*K2(SoV_yue`@NQ?T-0fsuGchJB!BIK|U{YXJ9SFgp<;9|`;fe3L=?H?!~W!EK=Cx&~3 z^pPNg{H!gBtJ<+47LBf6=lTqEO^>_8%9Tpk`r{d958DmH4>xwL#N50SfX5Z|q+=*E z$*SNFO>>p++#o&9I_0oZW6$D>(K=r+JLxdG6Vh&aC7lDP6V^J>KsudOs>U+dgjzX= zgUTGC-0*4o(24z3_%UdHstLhuPuQ3Llyhkjexf>%Qr7r6DZr<(5& z>bi_cX9+FkB0)W{2chVwAZqfvO&dreBwso31lVwLz9H9OwAEnrK6hBpZ3@<8dLG%n zeV5~W(<({u*+z~#%r?{JCC`BObBXk3N1iu>Nv^ak7ia}}gp9rPnWfFFo^bkQy1Gue z>3<2CbW{qrXi034dvAxn>jAY6csY-(DFS28!RA=`u#H*58yWI-5+d@nnUtrt-F%Wr z+Pmo-6I69j4+)Dys_%_R3(|#W{3aW<#W)-)^tj=p z-f0*n`N0E&Dj~5a_YlXTVCP2zv(&%pSe&For}E`3NLc^!I9y_JZ#dn=&l3hUCxu0> zX!e&)_xN*C=N6iuodp%-6&n$K@uqc+YAM~^THTWdNm1?CS(jk{5;>c6L&s-r(l$YI z)af}#>*4Y0c?nguKjd-!hb&PUN3jE^e4Oz<`I7c$vW zq-_Nz3bV3TJ37`*3!ol?s=C@IK?vjq*rUa#@aMABkL{?)CNQxzk{r>84PNX)_STF* zPXC@pPwqLnam^pE%&&(>`tNb1E(H}#m8DGK&8A&^d3OLl$DbW35XE$Ohy9LQu4MXR z7IqUuI@GK{Vof=zY46vgey5mf8wJ&oIvN$CmZYqeQiE)LsNHvC14%-ryCnC$tkk#U zq5X(+JVBrumY7>1c~U_E7b$T$tG!l|p1!lQP+X5WTZn;{ieYTL=wnvwC1y9OQ1z)R zCV2_$EnOO3AcGaP*>3z^Nvg+|TIJvtHOjjJ0iRIpM*35aHP+?Zjj_4KETf-8Qwn~p z?)DYYY%Ryl;2rjE_p;;IH+~W-Fo=*PmLp6QNiz6RTPu|cy{TZ+AG+vqDm@vH@#ZsZ z2huUKncY-+sm9FFYAXERX)71$2lXSZ{1?Hk?qa8`DT1DF^F0Zl%CF)&64S5m<+9%2 zS4hP;I{6%~M@9e8q?@P|?_#n-=Q%TQif9=Z$)lJ&myg!3G?V;*5c*`{<2L)rozUfd z@CxF=+oy)-u_kRiO|RS-F~PqB=?a%Qk9xN54`Ui*tWaL!;Go zb^CTUkv|J^stk<%98~$a5#(NruYHjns^fzSk`Y&A#ohG-!E<42lwzC4yJX7aZ~K(3 zi1(*=(b5uI6X3+Mg8gFwliWE%orhiyxT~9TO+4~1w`ZV2E^E|5k4;Mo7V{mYEa>O9 zIF32yIyF8jfm=zc$dVF5j{MwV!-dNFh@U%HDNg>)eq!F|FaoGAc$ZMR6jtOBUXVIV z3hhD{+Hn<|?Y*ulm@wJbM$d4lP(9mNJo_8M7h+Fr$A@w#C(5Tvs2WtvO$l5&87P&z zlbG&bP`iO(A_Ya+B3#Lmk0?vY;|g&MBP(fpahWBu(-4PD6M=P-`WUlFUwz6Q_oxk+v4YA^gD!ja!0t*E`^&CsyWO^x(`4#aK zom@8ue;WE3XEXAQsL)cInQ#pXo`U(lA8Hz>{=_P+2N@QyvbTvg*oOHQ%;O=a+Fu{&wmA$ z(%b2jQ5{7*tTxM3R|+f(@>^>3P&ch@Ph9s|#kPhG7si=9@!6_*L^#|y_EdLP$wA5a z?<$4kqn+|H+EnVgJda4^1yxp=ikCLCt?-l~$^gRx5Y#Oad8T$lY*Pj%r)X6nGFC2Qv1)Og4uq;|>V(7ipSU}N<* zo6508SBO_JS6K7gnA{mDBtt~Y)!DZl*T=H^1&4pqH~wD8YdtnrdS%7v!|ju^vx3%7317;0 zlIP}{=agzhtIFD1@m55}*X7hAol5jHo&Zx@}r!M8wKm;?(Q!5Sk& zq1@M)7GTKh0GOe;ykojKTJLQzbRCIYgnBKJBZ~a(ZAnAeALx*pdFFA$+wgEzqns?P zjUr<5ILFg#hO+^Bf7v$wMR{|$pKRV7WC>f~)%y!h#BgIy+i>H5A?Hy}l?@>>01~T% zl02y|tSZC8of-m@ToFpvD{@WPG*E_Fj%N~+P;SQJDsG;{XTIi|p#Xs3EV z-N-?|4qbdBO~qqgrKt{Roh`6bx?UvN(NeE07aZCV>IqeuAYQhAfS50E*!)uHWpd@5 zrT&rW_2<-@PlYtS$?wOn7QV-Erh?w6s^}Vmlq2o=eM#;+UX@w2tn}TV->PWad8153bFDrE#CsMXiLel0o5gZ zu%0k*3@+GS%RcsaHy5&KDg;vLY{g|SLi%lZd2E01vo*f7Dcgi;$wFop$jW_>*=zG5 zc-xQrzt=Ol#a^f7%oW}Hy7I@7k~ z?ee_UztJOk8|)#-(jp$(^*SsMf!~vYK|E5bqFAn!X9PhU6xD-r-=h3B71WkeN5+F* z2cB9s?aa)KW;G@XjS-sghba8v3P)nuSI<7xBb9%EM{aTIB?Mo>v$_C(1lyF-&pr5< z>wZK~UiDJ46!E!3go zAl8Ypj||Hr`QOIZXHHsMPRmcnn8f88b1m%b8oK8f`}7f34*QfmU<2JgprT|d&r~bp z?GaT4k)uFKxa0c{PM`qj$D4zEqEs%>vGp}JsQ3rceE;tq28Y}bOlzV_7=;(yI6gIw z6JNsD*8{y8mXAsX6E1E?pT*(U(-R$U3YEnTY|fH)eS9ZigO+NEiOO5i+thlFjp+v} zYG-wXC~-HV>dgebx|^R;q8G(q^@K0U&NBuentRUI>0f&=UtNzF<9~pgQH2Voy~2ON z&2ns_@1~x9v`FL=XR#?4%KhMZ`V!bc#uyxAI1OqDGuS*z0$26FHg!<2oxv1}2q>EM zeQ7ky*=*u`zP%;kkzKA6+x+dMvr9Sr7^@1F4|J-0=`T94r^_Pav=}**=FC2X^6eA1 zg*@9fj|>*@Cf-qgw!f5OO$HVQsUGJ_bk40b_HA3EYUjU7#pPoP-3UwVxtj+a%Xt$y z-O~F|NwwWfDpb;L1Zzi5PDo_CUD3el_iQ?%vrqis`@vMtpVn%+L%&@~s9PZ}(2{iu zw9>k=<7I4g971>f2m84LBh+$GZcND3v;?LJ=!;gisI>X9e2<9^gS1A7kKj3?mDteY zcoYA#g1Jpr=@Q49O21a1^cGfSesjD^4ZJniw)E36d;zpu14gIRDTD@Nb~~FrcNp)4Zwe&^n8oG={Wgmd>^k*x^)JV4%`J2>i0-gM_=(kOxB z(&ctZcFWTc=~IqRC$aT#b!+;{TNAfltNXW@>vdvHXzQ!j%|2!KCt4^s@bBc*2eE=Y zn&x3w{aIA53AWH%rp5J&cA$*=y5?%N&C<9fdzu1Kbe?yNh+-79|D0f`{!JUr>P=^Q z#LjX)I!1pbEK__$+}8eX7|8U(0u4YX#L%VeGoBmzBU7dD$)%;`TOck!R6DUgmh zT{S~AVLfu_u(3eA4La?1E5Hf~@uWAOm)912_4@L=&bQM$H6K5#mslbF!Zz)b@y94E zbL3GxDIKo7=>Q={(L~p1p9<~;A zd{L|IZxt{-#~T9+IFOPJK@Nn_!MH4(SaH?)_An!(?<&mg1HpGsDK=frCfuR35V}A< z+34odft;cbVmiU2c{jYs3qZrcmPRhWb_p)0d50LsDQZ9R?o?Pq6Cz12^^L*WHS1wu zhOgPu)BJo#wvC4qg*X)nS2>EG%Gx%6X|foc{b%U=#U#rR;pz{72aT!5Gtz!4dpAvj z;BAR&(4Izh0CjeLg1XWcCfUXdcAA)FuP)DKM>rDNX0DhJW9|XjVd_-J_$I6Px z3($>)UR$$Y7n8bU{jDh~DDp7K)Th;j6y93IGp_hFp4B)FsF2JlNFSOK34cE=MhrmJ zs*v-B{Ymz39Phc|`KDdNJ}ynJmg1-C^XOA;T}vnIh}SGY!;|@9RuX!0cUumKW#BQd zXzoA;-bPTG(UR1N1Gb(_46ZZaDHW!ryTF&9>GvS>@jb85bwXG4B*fNpOky1*pzC88 z!;N}CE+4k9sJUV7Q!gjwC7vIUXV=VHHa1_q-8 z+wSJiwU6Bg#&IvEu$hU7hgLs5hL{#PjC!PFDlssc1aXfCnhB!H{2yH9-+4$6(w8$n z_PAj2#CH2xyp0nt5tC(&2%nzfvjZ)=$m+ZD)1Z=s?+D0)v1`};0tJ#T zS0~q)4-Y`ys|6m~*%(kR01;WQblpWbC33c#uvMm53x^TJcSSSZdod5KeQjHVg<|b; zxO2zOsms}?Q?4SO@<^XU$x7|IFb|H*5 zL2`2P9|hNm*CI#f5!Kf_-9yIr^n>L+V)hK-a^tMl4%6QPJt^%i$+=Imo)Sg&%mkaA zLdMN-`Z9@lQ2;7q^Dhq!QXTJ;LUaeD{cl3kyP9rASngJO+(!F-Y;98R#fSIR&OI9E)w*wCqcc|rsDI`|%8(*vWRFFm1Rlx$S1nrQ3^uMxet*mwgFaGhI zHH=_yP0JjH@g%i(^}*Ze;<7aWEo+e&E60W{v1%>3QY6>EvSTrTVT zYkmT+YLdLdqetrl4}T-41LaTgBjRl!2|l@u%<@$2%49FO`vP{bCdR>?PmXDkO>ZaP zbOd6+&<&DnVte@sa-_(tNv=lb{^CxzBh`Tnsxody(Mhi-Z-NjgTE!0AoN0N~BRs61 z)10M5XLiM`BlVT}D7<3zzvn9C3o&b)*Z+~XaOI7@*ejL-CVFNMm1i$*(*w?PSG>yx z_?fjD)5mPkOVT2CvMxXRm(3lzo|PwPb3PW1Ph<3M1D0z8sQNkN2 z?Bj1%YiI58{{Xq|x}@%gGCtU6?#5pcb=WvtxU_#n%QD3@uL@!4n#TDqrIQ1c*=zKb z<3fe|T_-(46J(kdOzbQyGoGm}j204$j!t8dmY8PZHH>k1`HiRIT> zK+?WMx9wXdnDc84zjW^rC` zPLCGE-XJ#ciMZBREC2cmUxVawObOK)G`s0J5;a(5qQnKK_pwaX{3T5FkL+#%FEm}* z7jg=1nv(XR&p9eu>T1vz;@Y}jzKB$AFS_;(rmsJBj1@UN`+v=?U}u?)kRElX2veB~ zt1P+wiIGj}czT6_1)Psyt~(zn+YrV+)9vB&?Kwl!${R&XGgNA$1fPYdsu0@t(g#~& z*C`ZHx9gN*me87}Dl3=IJ{+9!XN~(do$Obu2I)XK2PGl0o#RH+Y#w{C)9A3CEEO?uCGx|Rxh|NOW@dr}gqNpT6eb8>PBuv{ zYyAiLSl%PGrx#B+F;J17-D{@Q(|O`rpmN__&#uVKP3lr21d1Y`3~k`|xLvLPMk@C$ zx&YUs7uk1K_E?`@`K#E8nxzYBj}IFXI}0jVP~e^w$_D*)XUuOHdO4#Z-xaq7R>t|_Cl-6<5M{l$J$eVpXZ30f+a+(Tt_`m1EWe@C}} z5$F_D!Zw4;#7fvusH9p9^szpwEz#-bWLyCfmvFx+`t*3u2G$;=u1cVIdD*v1Ok2S1 zqOx0y*nv)G;^!)bCUDhtQMa%zwXOLfk2%+A-a3$_hq&ft8m%vymm~@25Ta6Su|^~8uQv65-^MN(<@r8jRq^wV;qorVq~m-|q*fWLR{fZRj>z`l5r zgz84_Hy`H<3UE90E>NGc#uc8u`Uj91HxC~$U5ZwQV|q1hj<|32EZL|R#m2+Q>Mx}F z4zbkq@}dxJQ{0J2uj*dGuc*y)tl;G2A0YcUWhD4CNHBf))BxV|$NC=te!8}kVBWZM zCeiyPW{nKysa2m)SMb|+_H|C!G43;mlcipG9dLt|xb|bP%(&vC@v|K2;4#&3U$yNY z;Np=5L_s7@=Y)bIIF~4Si=OSR*qsQ?%dxU0ka6;Hqo?k}#G?o|{(UxsJ+*ix0ds0kiyElv3b)}l z3@{END{3zj{~4wqauAts<50^dYo-Cvkln9S>$$Se2Q1f_L;L7$@q^*sk2c#j|0 zzUblO+>Mj(6|e!u?C4J_#f1(b3D&AxAO~2Lf|rPkD^L6r;%iL_E(C zl&ay=>?0Qbg^OReFTwNIddc=h_VCaQCd#SxAUNBRfozPS;74ObL56J7TY zFdS#bJ-1((PF>tOBd$1{MI6)hw*P60P52r?&E335iJt29*x&sJkUM4jy=c00BHVNI zl4i-NCDw0a_M~yL@pv!CZT}y@E}guGUOMwR7FIVSJv~)G$BmNbPi`(&o!%yq&Vn|2 z@yEjd0LCY?S0C>86mw$^tE;m=c!g7cJDHC<7sBE0vxla#XK+b+hybS;lh*enOHSpq zxL7SqGu?EKTLjMFM8s$MZu~$x2XkgKALHY5R`AOBg^h!$rEs#GnKQUKbLQU0dg^>J zV%oYqWKjcI69gp8l}WY%y#yJ$)^eS0>{dy(LW6%SFFC!3SE>nLhKPxTV)CUcqf8rE^N2w3dL^x)jA`RsbZb;Z_QYQ0)yQ2TiT#08uJ>Z%wEmM2bnaEBPI3MJnF|k3b7#(mJQb2-hwQrxP!UtmVdy#)K zV*UZ>ad_u)uL+X%X)dbsWS;ET7uM^y|KZ%i0QkW_fC+ZBr`vfx+EpT!f5+?$POZa@ z{sZV<-BR<9vmf&N?HtZM9=(NYp|bn~Tsy>(VwmG9&-^bI{^_;h$43>>HE;^M9jnDg z#64(uAC0aVUL%M}YDLy1B)e5j( z+oU9zJG4f?lqsEsAJO5Rd=`#X_4lk^A9iYUH8xQn!@k`~$(!ONIKh}4h`=6IC58n; z%6J3R9Cxq6Aek>euq6m~2=qMrGrm3*k-YGCZ3+*nN$L`jfOY(?B2Yvx*4a$0Ysuja9yK+vul;t}1pI8NlJ;~|MlmO&Bc^w+-TjmIKR`0d1N-0Dw z6p=pdWvmYeLaos+JO}YPE|N~d&CRG7sa!pM2cELbYY2vWgqY~*AJ-7Gq(8qpD>lhj zP+6$N`57*9X|nHXy7AgE=U!d>>~F3I$<1ek5kTh&fh=Nm{=>5q*Y>3BaU=f#hX0#? zSNL*t&QF&XeeBvX#YKz6UhOf>+pPJ!_X?97+Oy3 ztat6_iNbtPT}JhulwI6doVxnDT6r()Y>~9K>4y3h)S6mL*P`oRHKl(5C9+7I-U(6l zMBvX^CmgG;;Va}Yb=p4A`lqqk74hjGAm(>NociBE--v;@nUg#<)0%$(g)!aZAp934 zcnT#r)(bg#u8ZXGq8vOuj<&PkU5btLscw-MQXT#M86BDg6VnQZNXFR5I(JY)1X(P1 z2Ikt3;Y|hqF}~{O{#W63IhaPHq3U5*p0QTC$Mv+&Nal`(4qJi__IIZ-^fv7ybDen; zL=|iqTy;if#1Pc!mW-FSU0=-qKJ05xm~KE0$r5vxTzHU3G1APV_SYOc=8~~*ry3En zf};4H$Wz(wGnJtlfA?l0uo%v*zjio*89&$m|5iDxo1F^Knd8&*Uybr7i|grwQJV=P zt!a+-0e*X5DJKz3XmW9!WAPb->P!%|&9&y7&wS?8-PCrq zKr3@6_xdd@se7;K9rBzPHrhKky{un+pE(*4-l(5rGQ-#J$gPk&JmZdPek<}X5$yDZ z97F2<#H;Kzz`n{#7H$qL{J?(vmq-Q|u$J_TGDtY{U#l)iSRY@fV+g?ovzRWgRv*U1 z)$KrKW2a_B#$gg`h?LHyO{JFn7`rZCRpD0b8u47-K_Mx24N*JP77-E?_i=~b#(^Py zyOJDZDh?MYBt6=_CREjvU8WVVMc5?ZDiz{Zl~S(B9a^5Eu8|x<76{otx?RV^;QZ^< zny6LS;lt8b60SPh(bk~gXgG`}z={8r4)TX&>DI|7>j%2r)r=b=7Mg=b$bxM@Zrrhd zdei!*{TJRq(4fZ|lSD80K;4a~IZo3C-5o{U6CI)_>rWRwGJyW{fTvT{6Hl<@DOtN! zL(9C%As3HUputY<8JuN}Hr^{zBfPrvQ!GY#K58L4ytxfRI@-K90(lN&+>D8&On0Qu z06{%NGA|j5vqRrkPdpGZE9jaua$}tELFmEVO=~m<*r@R%#u}_(TjKY37yxYi| zuQe0KUF5S=R{G@or1Yg`Zd846RmY<*?~m1mv+ASPuxoaAh?2jBDsYzkr!zwta+{&` zAuk-h)0A)srrw&|Z~g4}3n#`*o2&WP{_lR<4(#t3M;UhHaAIM;h5^yl>Bj>9bd9fj zMsu?*4gnWV6y@l@ntai3@Wg$t*2OXpO4xVAny zIlZ2?-+!i%d(Vb9S47b5t1X;*!L&V1?lJ?MCNggVNpg~z2+zsGFKr%}-*Rx$>j_=d ziAH2tF2xJ)>?_Psdh4aHj`9&R++og13n zbV`@AkWD_43VpW{{qV^5jpPCI-%j3$nX7s17}~NdCI=cMNC>h{ma@OIxup9UzpU+VHDEKc>ebX$f*(=#kz>K5~2d zXA{YkIr>=asp%_6a7y5%e&Gi#fK7Vy^nRr)cEuALtM3v(m9^%}taZd8YZ6m$2O_(@ zpXEo1XAhXDD8vm|(*|sM3N0GQS<^qK?|=ah55Y3nS#;n8A$_jRSk%75mlPOuJ6?r& zW29^Pm=Q*k#tls(_6~xFaGGVQxH5JFI7^);UP3EiB1`(*ky`99{wD%%%tfjZ)y+`O zv5RE{NUg(`)5FGEnSAbsAf48m*wH{BDn|4|^vD15ax*fzW>jh9K|)d)UDKh%qrp@Z ziq}1r-sIEmQQ7Ovhq9W>JF-1Y1*+A}Tz;iED&>f%8iKlhRcl+stf-ouBCBTg%l!*( z?80}M??te`>;cU<5|!+zpPZfc{8`V(0|V`;&1zTD;ns!wOnY_|UTc4L?Ea2BPaksf z3eAz~M{7iM`JA=i{}MTuyY1ec{n}H$Qen|?flFXG;7GP4&+}#Zk-94%$H();BDlfp zhk5Orh?5Lmxy_)WKdHs(HAeOJHSf-A3N8ng)+Z0Tl_>rx%23=lJ#??AEjqF};hqUy z1}<47ZV)*))yPEn!>&wwR?Q<^>Nr6a37R^XTR{z0JpM>Y)|cC0@f6#;wsxnKDUiLF z#W9v&_nta6vCM9P=tOA+$u^R}j>IwZrxN`n4<5%ZsMlTd-9+8~h!1D|GU%-PD(dbw zxEzh>s!ih%${cKe*;pz(lj*g~{TXX;JZpHC`|Ak?#gy)Oa`4bO2-*+c+<%1+iG zwE&ME*N(oblr5Yezu~vB8njN!o>~1JQajx?-b5&U*H@f-KJOUXmp$}sNA4)Fh4N+6 zXKk(>+PQ6ap6_jkp7aBiOM_^?JUMM4(O0nizO)zsvZ-7#(gi)NYRou~YW{DrOL+u;Gb$#vC->0#m)DM%j&w+! zm749xnGVzRx)&c)o=VE#n>AhHzEX;-ia+M&4to|h>$r*f_;Rbf+BV)_F4fNz-@E<5 z&A~Eau7*9r*G~PG3NgAd^HE$VaeU$O*=_B+JSEHOuD8nSX{aG^qwi#{oxEt9gBgb< z7mI8Y-HZ}O5)#MLS&epeP2lv*ZNTMlqUQ3qwE#JHki9cLy zecEAQb!K^)aOI`jH&(ihctn0Rc4h0{|83I%bBI-%U`gNN+7*#IheY;EabU8x5EbMQ zzorYkd_QF6JxRKF_;ab~`HL-no>{uHi+{cL2~Z}hs5H7m^OUDU?9Pj~_gNhvI5@qV zggBzB3GUik#JsZC@9hFh#uqg9?J|8{W@@h$nQgA;R_2mDd|oN{NIqxSGz7Fw+7bQN zea+6V2euib70W%_)l0C&c_}94v~%G@7tR(qo5Ox033|G9H2h@nFvd{2r>z-#+pxs( zVHGaxZ6Yt>W6h1Szo+jKRJu!ijc|d!YJDe+`@a398mW7ytLISAi6_tFbsviAKI|uA z+sf+O$py3mXLxP#%tsyd75x_uue;Y{{{An*QHjvAM$~tdkOhp>35pC?N8R~A5ZlB6 zMyTw2+{vGNQ|30>8espHThJI17BsqQm~%_T*PeU#Rno?s zIF08}l@_;*EF0guUE-d;+PvF;*Iw*{LPf)vOB(8_ve?c$8VRrxyS z-`pTxKYyA!T30>=iF?1ZfCSc4bD9p1g`EF1dEN1HG=uVABqiqFHm({6?H$-rnCxmA zB@ETFoNT{ssbA!MH|hL);w1;iHMHWO*&Hm1)2HIB2mRZRpn3}-U*vcQatyxqstqT8 z?R4d?QVEwn>u}9e-*zc#c+`qrDg~v*sW&c@we{jesG1L-rYH*;+S{J4tCdkXGrJX(v4sv>$o?ve;MCFS#k3K?KUrA@X!K;sLGiqVgiCA-s z97Eiu4d5$Fl8OT4-;BgbdSv#t6%yZ2(#vjJ?!0-Rc$P?v_mZT57@}b*JxQ?ZhpvO} zQdm0opFTf_aSo<`>YuO9+IKIz>;qKxuCCNcX_4~>4qasE4@bKqpOhHZre1A+b4|qH zhBzv06v>?ms1!jv>bqY5ZgmR!yz!o|_TZ_@06iz*h6fJGi?$#bC;dW^5_cD_U6p)$ ze!1h_64Sf@2)3TS?U?Sy9`Y<3It9*7^W0b~9iBMZGHVd)RIl%9-)k&Zn5%&#*3we9dH{!M4KkQ?Qx>D!gyjH`6xC?p zYa)+oRf_Z(zmZ=Il$Ixq@duhbyo`1oxi&{Jr;(?7In{RW>8wi5!e#N3mP3va-v~*> zMENF|e5Uq*GVC;>lX-py+5r_{#j*)3Iz?cv!xmgddUB(BAU5DzTA^C$qSlm=7yf%E z@^0Ne?3m-6Bsc3T=dP|s*LRGnEUL@oQUi6g1~V)oCQ!0xStIrB<-St5q(cj$W)j;A z`@8=ww{0n;&;KJn(TIU2Be{G3^J#qEYA`R0UL4a6?)_P<0_rPV%Jgw5{(b|zozD{!aPC^;=e2s2I^(ie&3+?)65Wr!* zzi*!{AjCBn=PM81jmWB+M<=rvK)v)FW$wgd8j7j@a(Y5BqYps+lkpd}vrD`}&97Qt zo&Cq^67!`DOZh=_633XKNPaK((Z7Yr-WV(8*zm&|;NMscj+vW?>5$L=o(bM^5%66d z^e*MlP%u0d7~J+P0;Lu0>iWS9(X5*5&Zx%exHOZe5LcmMqyoDX{pPGsAvzSB&q?sV z+IUT}uzs}T{w(-OYDAOmhCa2K&Zf0baB5*zoSPxPt)Hz3FRk$(zUYxLQ-V6)%<~4= zny*FZ<>tuN{xXo3<&Cs$=2Yq=`IuMQ_0I=S>AK>zH#X<^ecvZ~^3rce+yMv`mD}Lj zktb=_ws+HDU2}DUEO1JG)pZkB*0S+~(8G80l+Txz^>O1zTGV$s%0i^I2YgRd4yTp9 zT4o~Wf`8VVC&;8rv{m|9LFCUreJ%E?ytGapznU~go6?v!{CkdjiG$=dm&aU03lq1gv?!9uu;D)?IYGFGQZ*svz5r&~3zFT1c zGV(s6(LF!PDPoZK zGS;5!H*_NJq|fIkkMduhLf-;IcjtlLhAOA))2Je>jiyP=2f;&*?q&^=-^FTVM$YQt zqJ1eN?syH5R0B!~Cq)l}n&`(jkbYqtIO0IGo|<-`Z!`Ei-AwE)yK$@S;^aivQ|QsnOLp9R(D2djZHdrdb6-W*Tufoe;^Y{y+#Gv=vDx zDWc2fU`U+kJDxr5Yk?LbVyYaZ&_WYMb-jLJ_~%?+)XI9q={1*&3OdW;zein~1m(huc>e9`|r<+iu6F}>7J|Y ze8b4xtN2X(iAdhfA*=V5pB`;bHM+7NVA7pYKa&%}rKvSR8~*lkdSET}?G zsmK1E#_*1`++MP!br9k!Y7nVZTso-q;c!*b-CNNMl--cs|J?OEj1SnIdWCj|NPn}V=Ed#Ru>0QWdhbe*EWYw) zlGH_s+6+*fhLqC|Mbs<1Q;D)y{HpAGzaED8TKPY?9BtQ}v4}*6znpd)cXvn_AiK^2 zMY$-yT^l%cYbS7;fwZ1QZlL{7ouydX1CDcsakC^yH?r~}n;69_Tte2?K4Tt5WTzHs zCpaO0L~KTd6FO4qS?906xRCc;?k_3R%IC8){fz*1TBCKF`9iX@_AN)BYO-(52<62> zGQCreGQkOgUAIL?o=x}Fmr>pab?+3NYz_6WH-g?ke@ZI)1T)V+(&-VRsP!5Jf=$9a zk{NQ6c*QZI+LC_t8j{J1RSbzN#C{V`96XdJW0o~2lE!I*$ zlIFv(CA;_(`uo+3F(akf@h3DwqPnGT-b$u~R=Ee6Y50tqR-}7?46pWfs4>`;E#*K= zpwMjc2avD0$v3-yqe_9u2M!G2*&&(iTro-@&R<_Jy(e5-Kx&KZR+VpXCfc-r;5c9r zKmHlJ>=dAOZV?a6yVjH)eRyxke2Fx|#)BI*q8UN=NZQ$L1GL83u(2q0La+LI&u zs~T4%s~H(Qwa$rANwLkoVeC*9@*9z(@;#GbJt-LF)FvHL#1w*{3VMtBKEm4!;LU>g{1HSIhVD$iSRtL#)Vs=J)!BgBtsLzpX6V5_h@YG><0_LTJIz zBgzKm=xU5#bg07_>Z}Wlu1!=w?O~OtRx0 zk3Tv`Hq=l(_u&`~qkz|1n|cQj@I5!XgUMy~{qgqNq3L@)eZ%ar5}2B!0~{1ZFSo|% zwqFD8su2?0@j=<-erB8oE_5(->F@m7UbXzJU{Dn-!0vV`G-KGwuvxw$(g9mV3iph1 zS>P&1KP7V%ihhS~;&e6y%;>=7BOKekpcLpgP{*KHHe)`jXPaA>^X=~g*q^5;7^@0( zcgsQB_OgY)+4VT<_VNXlkK2Lk9g$?)I-Gu~q-?ixq9-ZjDAYo_p|Ry+{_vw?gi;L& zoA&a+zhPzxI%$=q4Xsl2Q-geK>CDeQw6aHrOZu;_US(J@15q=sH;5xL^j|6L=x8c0 zb^(?Y@?Zgn$2ekxh+Nh=llB>e=j^3{$u)%pAlO)7Mr~=CZAvTy67vg;P(kv4R_WRk zy3L(KQRnYoKUFap+Q%Q)rthm$|oFx1I#C){mf z3N3go6?1z|4g5VF!FA7ClaG$!Zfq4zZOSKzqpSMIb?37SJDjER6E==T8;8N$7KmMi z;jSdNPoN>HP(TivGalj$PYrgsm`(Jd+)iFgMqqLv4r%Nal#5-vt2~3BVnexDPg3;- z0hJ$x0s5JllyO%~)xuXC!8sFkwj*xHJqLQh@AZRf+x$LA42=_G0xQfUZZ!Dvx%YN6 zz@OByz)_H`naA&0{$=md(YY3{pf-N)X?eFH?^o6krJ+0Q?V>^{|@~=M}=J0T4v1AB;)Lc zN*S`89K7)~D~lG?-VqQH1s-KSAe>G%Po}qS%Q-iG@F~MNxI#FGKzoUt4|K%JF;<&2I(IFL2!IrA?Mu_Fq^XF%ZigwK|xe3@O z&9)gGx+8z{atFBx8|qX)Q2G4vkKNyI3m0dRfnr1Ti^lY})8)9U7PkI=6!EaoD`jY{*l+WQfD}KUSu5%o z%wqPJ!D{rwU8Y{j^Dy{8`K^hnF>ZVW{UxXb>$Tiw>Mc-DyHx6s$~!RxCoUKlDtVI1 ze6=@L)gK?ImjmowI8-^~HxpxO(~k9M`nlsOZqD~qi=<{|L?0v&LFJT=bYJdJ-g?`` z>YHDh#HnDMMC^nvoCrOykK~t;&?clmqMUgrk#hQ~=6-99({25eY1J?ThKw8$$WLyJ zt;P)axFmGW)MAT&M*!Kr75j&#T6x`-_qV4=WS;+cxYvzbpz7W6>1mvpT+6$u<*RWJ z4XY9CvS-C`c6B6POl^Fspe(nP=_@nR4!5A@@z=mgr(KnJZAz7_%qD$j?#$TK^5liH zh2hvn#vm8gwi{J8NAq>M0#rvBw$X?5dE*Q_1e*053y@}cjDG4W$09&7E^mLbA3lb% zpo{fq*B$$o*LGaOft!GZKjv>PU!v!)Mx5jn9Vk{LD9*9V##{q2xT$G;nIktV8@aS8 zg!#(d3@xB%9p|j`1%ax?Qf4na3a~Sr0X5h<$IoXBKpGe z2p-QV1&vlKLf`d9?X325)Yb4x`S8zyGRzorwz`$iR%H*e(T21@6?sRyA5(ZqE0oTA z0l$Z_!|NvLfo7nCL3PW_Uxj??iG0 zZb1sG)&^^uqywlXT4VhR_}&gBj7b@xY~mrWcTM|Fdw$hm(bbj;TEIik4rvtpF^5~k z5VdNr(SeKP@%5S%XoAioVwK8C?fr<#R>Z*G)_&0h>kGt+A4?R9BDf%c$S|Y73FuIXbeQH_9>vUJ&aXa?6^v1Q&Qx}9ago*`f^^v`z0Z?v& zv)ViQk(nE+YW&TQ?#Sq5^#J5czXLDdGfZ2Q4~Ao&(9Gt3aOjaarsf+$Avk}OM^mH! z%>A2Nv~9$b?hm;m|sY??;g)N=q%MzIR0%; z6}Qyv9(!w_s3aIsS`^9}n z-);?SL*PL9M1 zJ(ot)VTi6Nx@#@izF)h3jQ9vxc^EXa8|MrdOEk{MhQ`T7ZuJOO*Sj#;6qs|j^1W2I z44m`VRHN`=n1sF`;;(!PUZHirvnbR`L4sktZ;CD1IJ+9HYNK3M{=0u^t*HIyw*KF* zQAt_~uvAI>nQa$uc@6J=G#sLJzZ4tRSYP)r_W`HSRi$@E%`%hH?n7a=H3h+)itW1$ z;f1H?x*VkutC)G8acq8Q)XHo~0ppTx<9ILMsw0KHg|}GJBSsM*^HEp})n@Ro-Z{qU zmZTASf>zae!!ueSFG!Y(zdM&0XE06M!x6X%H>F6;;&O=b_68Rw34hWqE)WKu&?K@;6F{1~vjJhz(Bl+6?1@(clSE9JT1@iXeq_ z+JWVP$NDYyXR?>7f;UJtdlU*7ffHATSj;G%s<*edC4S{-IMq1uR)~W2WK_wB`o0{D3`cbnfeFQ5UV2|M`OZ9gYJE!3OlO@Z!`R zatQ+$s7x!KOj5^>NR57)scmEjGm}ltiVu@hI|`cvLKX`%^)3M}+ZZb!TCW$B+EGx> zb|^_GU`TDO%GP5Mj~)PC1HuZYUJek(R8od~5j0N2NShP)O%X#|H@t*#jNt9=C`Wwc zwSf->*c%1QClt$KyPhE`VNS7NdtR62*YqiMIH>Yv#;4e41ZjC!r#gDv5$m`kr||n` z7pFqm=o3$$J&ojtVWwRR8MDO6 zWpHc0l#*i7VW`U8##I$EJzH3#_~65hyM5a))m+Yjzf0uKD4zt?sNH#3q&brK*Tnn1 ziWjTUsRn(x22quvlN z>fu42;HI3yl%zB+eHKi^1%?ZYU+_6MS37z9!W`oQVT^5#*j@c`N;7N41E#kktXD)E zCD~s>x0y$hN1iUjXAprOyZ$AD=!n>So2|FY6S-jpp@;KVHY1#+&ks~&=M=?)1u;t8 z2Z*M_s>bubG>>I`EQ8imxUC?9v2HAS^ppj9NwyM4b;N6wZEA&?N8x^lA!n3syL~|ykQaT<{}CqyR+O4MZl`q68w{+*tql-@^a%7L{G~McgV%^bT#)^=>Qw`OnOD zPFz!ts*Q}P{iHfRK_b+=Yb1N&>2x2LI<5z8FQS%C|78*!XNvn?)Y#AM2*-=H^tOW& zAGFW$hyRLw^X72+?cf%%%uHnn3>=3sS**`$S1o!b;maQn{3*D{P@o?@%a9*CmoE9byaUv~e4n<>u+SjbVKS&)7|K z?yH5EPFN28`K+)CzOwA9!(;H_v~>l*OHCab5G+ZQ4Id_-1LeE3+tfRdh}os_hZrPP zvvZCuM9P#XxT*z&Yvx>AM(oU^V|_+BBn_=*SNSaT3dy3sprhD-Qz6^k^o2)aru?`{ zIA+Wh%vHxyx&}isIT-R4D0o2!^S&l(V};*`Bpko}wXx7oyOC7zu8O1PV;^AIE5)QV zXVI8-l#|i??^ORKJD?IqRJEWY*)gRt4_lZk0r$VQ%b~pZ$k1G~FZ7bZh_abcjZ;UbA$)&td_$`Prw`b2a>N^^ zwo?#VzSS43L6(by$>^WLwbR-d}8FkfLH=DN}5vJGJS9q)zGuBy~++Et|@KeTy~?+ehSE0 zw3u3USbg{{3xBpk!jqs@=TT6qqxrj&_^0-(Dqbwvxkj`09D2$|9$&eejN6`ED`6h`8%leL#iXr(qMgN@$R7&{r1 zsoBq>a!)I2Z>la{~(LXygJTyJ(Vtz9iYcc|$%>%`b+RgrXOhJbL{>Fm0s?(6xg(fY&GcA*$s^;6z}dE~o=4q7*)mfUO^E7{!9>kEyJF_omfYrdO&OhGb|FyzSinVP~B&MaJ> zvR*jQtJYXXoMn4W!|lMGF7R4?e6l&eHw~}GVc__Yrv{Z44lwjgU4f(P^i=Jd*8GU# zYjXOeU<&x(9WN@`s%*xfmlP8u4qBk`450+lJ@*$%`Je*fZF}W1Q2jI07Y;38U@&VN zSM zbDgB|Gcm@T=H3?9FAGD9k(22{I`!a8RD~)V1$eLXg=qB>>X5u$`g6FUGc@R&i|)b` zPhX7MJQvTQdGI5Q3j>QBak@~>nH0R42T~Ju6c(rBti14U*=xbYzl0)~`fHC38Aa0* z21Y}NaTy$*ejo-JQByz|`IG1Hbz*?s9DvZR_g>~?&_W62TN@vLhxGGeAv^1v5I_Hz z(J1S7eBe=^-7w`r>Zdig!cg^Of*N`*K>Gv+R;wGJ7r3y^LK-mkNREWYQRekR^$Z$P zrt3hWe8%UAL5TVqzjcb?Tl)`;5?%=SQ@z|wVR<6Z06@1Xe=&R)+Ako=$CUdO$O{$U zYkX1E(0f1pC%*}o4G*P3ilo)7pvvd;Urw!=dV9~ zzPJuTM2-xCAosGB_M0~RjdX+h87d?7C46wJ?`RU*3yzGbhG{l4+sY{;nAI^gJ*dhqLN_p%aN;A%wb z%trs*S6bY7`HwZg8#|W?=blR*3L_U5s>evQLLLOSR!`;f*G_TU6^vC}J6m3_Nf(vx ziCKz(pG7I@W1N zERVLo(Bq$F-3`eC)-n|AmZYwp=s>JTU9y(O+!052MbIVK1Y_x@Mke=B9xY_CL?Gu8 zH8a16rG0}zE!j|-9q;9;_K*kc6e=23D9#PLqc5%W>*`pH7qUD2J%4}iKDxz zk;Jm+y1wo;X9o=pTc(RRGvA-a`9cTMvQZz-oM-J4NzdIrl>N|Qz}b^TJiC~PZ9429 z%p3cS8bN6f4T2UVLNlsg15mN(p(9T!+03hfCX>sdO^xN56`zzlnTTd%C6{O+R!zma zOL*4`JzGVix^S8fh9{!rL#Wffs&1R^oPw*Gg>gkKMKtboBV#?N`Jhq%>u;C3k zIWt9IaKIrp%yI=c(E%x9X-K_GcGCMDsdg%vO^88isT()6-9kQdjF?Z1S}kR~-PJ4^ z5fO@0(^|=+c`FUBxqy!5=I#aM=6x&UROhJhV&S}=&>tfg50j-Vbe03L%k_a4)c(Q2 zN87F)5-rWPCedB?moYQNn*meVydktC(`e z+SboAU#e8RiK*)%|6;KZ;g9ZMlT%+FUcP(DT@DLM$@@oUpr*$pY#&hO_s z`3M&kVAxHXwP??T@4F@U-sqT28h#Yp@cU}s^RDIcd7frUv_lUDpbVs8p0r5tSCao@ z{3*HHs!Mb^t%et#pk}Ac7-s!rWBgf=T~0oO{M{iXe+K@*H0nVm)n}@3>TraK`^(Ua zQ?|8leB4Hu*Hj`J$Q<5tT9FzVZ}3;_m6Z0Xf+tJPAba86>jsKp{7zr_P{!eo8)Yxj z{<^%_6u75%d5amD_4&L=o|T42O)O&3#bQtHdUOgyujHA9auO;6=d6Rzn(yMi1=VK3 zH0JLjr?4vzKQF@r9*iP+!CbC_@n_NVB8OW%$elJq#m5J3yf<3z{qW_Oh}WC0FuvLR z;@zc4C0OwHIgcgM6RmRWC5J0U@wSOTcN6f1NK@{vLwCiEw(TyxnYeAIw3%D{PN|x* z6r9$>_m9POr%85AY6Zj}o4RVhBZ>t+zq*Fta=DG6y5Cdb6#doWfr4#{AxtsU>QmY| z{J3O{u^iWLxM4yaZDq>s8gtuTPsk}!qnw%tRr6{NlZ9EWrR>GV)&R zj6P_0fxr1SgASU5Qbz}=d6XMA*A4Q>H`swkyG9uc@+fey^y|PJi;<_ZuM7%Z)a__I z0n<5LNBBtmys3+mRygFT(b4;o1{@LORV~YW^)t7Fw{TEB zxUY0&S+i!{T8!Q`E8N*IaErz)Hkh(#B2ISP^-@jwe({NQ=a3JN&YWyrW~GQbL}b9=W6zP-2G0i1zi%lqPLkEKy!Hf| zYR5+H=2$^p3lZkH2t-h7vMm0=badE>L9U=_Pimab!uUyn-d~3*Go}>|(ul9FPNV#= zyw0X*UmI?%Uq7O##Q}P6P0gXz7l<^IvYQBiQMZ@15A+nAV|j89ba$w7QkC|DDgdY) zf=CmAAcClHAn`$ZUfEM{X4?rg$|I!_gvZ(sI$lh;x8qNqGqubYl>XVey&~}MuJ44# zK2C%5H$!CrH^B;Bwqm~Uk~+xcjShn$idN4CzFv4BFFtgKLF{kOH)Z`Gt`?LyLTTgY z79=!ZhGxwBn7P5ZGt8^uzB9i#3@HyaBIcf$DrKUB^%bB}HlP~j!{*ca{f!W=Idn1A zAbu0w;{xcUoNaMw&NBQ3Awgwv6m=E1jry=H>amtk7pDf4%^xYLMGM^5@wTQ*TMM^8-mr)iAK zM-*0(oc}ABF@;7pVf1iJcXT6pI%0AV)l3^Uo4Hl}=79!%AWZFxZ;s@6&Oh;-gqE_) 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

  • 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
    OV+4+Ge3pEqu?* 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%0Ah3pf4dnXY8&i3cZ4x0gXl1kA@=_Oc!i?rve=S= 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 f*=S0kfe Date: Thu, 31 Dec 2020 17:22:53 +0100 Subject: [PATCH 032/206] 2021 calendar --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 58c9e6067..91517b157 100755 --- a/README.md +++ b/README.md @@ -10,10 +10,12 @@ A contactless jukebox for the Raspberry Pi, playing audio files, playlists, podc ## The Phoniebox Calendar 2021 is here!!! -Another bunch of wonderful designs! 20201 is the third Phoniebox calendar. If you are interested, you can see the [2019 and 2020 calendars in the docs folder](https://github.com/MiczFlor/RPi-Jukebox-RFID/tree/develop/docs). You can [download the printable PDF here](https://mi.cz/static/2021-Phoniebox-Calendar.pdf). +Another bunch of wonderful designs! 2021 is the third Phoniebox calendar. If you are interested, you can see the [2019 and 2020 calendars in the docs folder](https://github.com/MiczFlor/RPi-Jukebox-RFID/tree/develop/docs). Download [the printable PDF of 2021 here](https://mi.cz/static/2021-Phoniebox-Calendar.pdf). ![The 2021 Phoniebox Calendar](docs/2021-Phoniebox-Calendar.jpg "The 2021 Phoniebox Calendar") +The year 2020 also has a clear *:star: community hero :star:*: @s-martin has been doing outstanding work for the Phoniebox community:sparkles:. Thanks to you and may 2021 be a wonderful year for you. + ## Important updates / news * **Gitter Community** we got ourselves a gitter community; chat us up at https://gitter.im/phoniebox From 5d4a1eb93438c60378239d87882a9d3677ba6a96 Mon Sep 17 00:00:00 2001 From: s-martin Date: Fri, 1 Jan 2021 10:25:53 +0100 Subject: [PATCH 033/206] Added stop on removal functionality example (#1209) See #1049 --- .../gpio_control/example_configs/gpio_settings.ini | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/components/gpio_control/example_configs/gpio_settings.ini b/components/gpio_control/example_configs/gpio_settings.ini index 87d786bcb..8a2176468 100755 --- a/components/gpio_control/example_configs/gpio_settings.ini +++ b/components/gpio_control/example_configs/gpio_settings.ini @@ -89,4 +89,11 @@ Type: Button Pin: 21 pull_up: True hold_time: 0.3 -functionCall: functionCallPlayerPauseForce \ No newline at end of file +functionCall: functionCallPlayerPauseForce + +[RFIDDevice] +enable: True +Type: Button +Pin: 21 +pull_up: True +functionCall: functionCallPlayerStop From ca6a4786cd217fb9a08be9d6c6806d2fc0f99994 Mon Sep 17 00:00:00 2001 From: jeripeierSBB Date: Fri, 1 Jan 2021 10:58:24 +0100 Subject: [PATCH 034/206] feat: GPIO Buttons over USB Encoder (#1249) * feat: Buttons USB Encoder Closes MiczFlor#1156 * change usb to uppercase USB --- components/controls/__init__.py | 0 .../controls/buttons_usb_encoder/README.md | 19 ++++++ .../controls/buttons_usb_encoder/__init__.py | 0 .../buttons-usb-encoder.jpg | Bin 0 -> 24462 bytes .../buttons_usb_encoder.py | 30 ++++++++++ .../io_buttons_usb_encoder.py | 56 ++++++++++++++++++ .../map_buttons_usb_encoder.py | 43 ++++++++++++++ ...oniebox-buttons-usb-encoder.service.sample | 14 +++++ .../register_buttons_usb_encoder.py | 19 ++++++ .../setup-buttons-usb-encoder.sh | 36 +++++++++++ components/gpio_control/function_calls.py | 5 +- 11 files changed, 220 insertions(+), 2 deletions(-) create mode 100644 components/controls/__init__.py create mode 100644 components/controls/buttons_usb_encoder/README.md create mode 100644 components/controls/buttons_usb_encoder/__init__.py create mode 100644 components/controls/buttons_usb_encoder/buttons-usb-encoder.jpg create mode 100644 components/controls/buttons_usb_encoder/buttons_usb_encoder.py create mode 100644 components/controls/buttons_usb_encoder/io_buttons_usb_encoder.py create mode 100644 components/controls/buttons_usb_encoder/map_buttons_usb_encoder.py create mode 100755 components/controls/buttons_usb_encoder/phoniebox-buttons-usb-encoder.service.sample create mode 100644 components/controls/buttons_usb_encoder/register_buttons_usb_encoder.py create mode 100755 components/controls/buttons_usb_encoder/setup-buttons-usb-encoder.sh diff --git a/components/controls/__init__.py b/components/controls/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/components/controls/buttons_usb_encoder/README.md b/components/controls/buttons_usb_encoder/README.md new file mode 100644 index 000000000..ff501f1ec --- /dev/null +++ b/components/controls/buttons_usb_encoder/README.md @@ -0,0 +1,19 @@ +# Buttons USB Encoder + +Taken from [issue 1156](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/1156). + +Supports functionality of buttons which are connected via USB Encoder. The USB Encoder is the easy solution for anyone +who doesn't want to solder, but also wants arcade buttons. + +Tested Devices: + +* [IGames Zero Verzögerung USB Encoder](https://www.amazon.de/gp/product/B01N0GZQZI) +* [EG STARTS Nullverzögerung USB Encoder](https://www.amazon.de/gp/product/B075DFNK24) + +## Usage + +1. Plug in your USB Encoder. You don't need to install any drivers. After plugging in, the USB encoder acts like an + input device. +2. Run the script `setup-buttons-usb-encoder.sh` to set up your USB Encoder (choose the device and map the buttons). + +![USB Encoder schematics](buttons-usb-encoder.jpg) diff --git a/components/controls/buttons_usb_encoder/__init__.py b/components/controls/buttons_usb_encoder/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/components/controls/buttons_usb_encoder/buttons-usb-encoder.jpg b/components/controls/buttons_usb_encoder/buttons-usb-encoder.jpg new file mode 100644 index 0000000000000000000000000000000000000000..45042654c3b34f835c6515571f5d221dd3e9dfb2 GIT binary patch literal 24462 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 WNzVW56Hj)8|InQO-y668ockY7Yh@Jx literal 0 HcmV?d00001 diff --git a/components/controls/buttons_usb_encoder/buttons_usb_encoder.py b/components/controls/buttons_usb_encoder/buttons_usb_encoder.py new file mode 100644 index 000000000..b832f343a --- /dev/null +++ b/components/controls/buttons_usb_encoder/buttons_usb_encoder.py @@ -0,0 +1,30 @@ +#!/usr/bin/env python3 + +import sys + +sys.path.append(".") + +import logging +from evdev import categorize, ecodes, KeyEvent +import components.gpio_control.function_calls +from io_buttons_usb_encoder import button_map, current_device + +logger = logging.getLogger(__name__) + +try: + button_map = button_map() + for event in current_device().read_loop(): + if event.type == ecodes.EV_KEY: + keyevent = categorize(event) + if keyevent.keystate == KeyEvent.key_down: + try: + function_name = button_map[keyevent.keycode] + try: + getattr(components.gpio_control.function_calls, function_name)() + except: + logger.warning( + "Function " + function_name + " not found in function_calls.py (mapped from button: " + keyevent.keycode + ")") + except KeyError: + logger.warning("Button " + keyevent.keycode + " not mapped to any function.") +except: + logger.error("An error with Buttons USB Encoder occurred.") diff --git a/components/controls/buttons_usb_encoder/io_buttons_usb_encoder.py b/components/controls/buttons_usb_encoder/io_buttons_usb_encoder.py new file mode 100644 index 000000000..c20e5c366 --- /dev/null +++ b/components/controls/buttons_usb_encoder/io_buttons_usb_encoder.py @@ -0,0 +1,56 @@ +#!/usr/bin/env python3 + +import os.path +import sys +import json + +from evdev import InputDevice, list_devices + +path = os.path.dirname(os.path.realpath(__file__)) +device_name_path = path + '/deviceName.txt' +button_map_path = path + '/buttonMap.json' + + +def all_devices(): + return [InputDevice(fn) for fn in list_devices()] + + +def current_device(): + if not os.path.isfile(device_name_path): + sys.exit('Please run register_buttons_usb_encoder.py first') + else: + with open(device_name_path, 'r') as f: + device_name = f.read() + devices = all_devices() + for device in devices: + if device.name == device_name: + _current_device = device + break + try: + _current_device + except: + sys.exit('Could not find the device %s\n. Make sure it is connected' % device_name) + return _current_device + + +def write_current_device(name): + with open(device_name_path, 'w') as f: + f.write(name) + f.close() + + +def button_map(): + if not os.path.isfile(button_map_path): + sys.exit('Please run map_buttons_usb_encoder.py first') + else: + with open(button_map_path, 'r') as json_file: + button_map = json.load(json_file) + if (len(button_map) == 0): + sys.exit("No buttons mapped to a function") + return button_map + + +def write_button_map(button_map): + with open(button_map_path, 'w') as fp: + json.dump(button_map, fp) + fp.close() diff --git a/components/controls/buttons_usb_encoder/map_buttons_usb_encoder.py b/components/controls/buttons_usb_encoder/map_buttons_usb_encoder.py new file mode 100644 index 000000000..5b94ebedc --- /dev/null +++ b/components/controls/buttons_usb_encoder/map_buttons_usb_encoder.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python3 + +import sys + +sys.path.append(".") + +from evdev import categorize, ecodes, KeyEvent +from io_buttons_usb_encoder import current_device, write_button_map +import components.gpio_control.function_calls + +try: + functions = list( + filter(lambda function_name: function_name.startswith("functionCall"), + dir(components.gpio_control.function_calls))) + button_map = {} + + print("") + print("During the next step you can map your buttons to one of the following available functions:") + print(list(map(lambda function_name: function_name.replace("functionCall", ""), functions))) + print("") + if input('Ready to continue? (y/n)') != 'y': + sys.exit("Aborted mapping buttons to functions") + + for function_name in functions: + function_name_short = function_name.replace("functionCall", "") + print("") + print("Press button to map " + function_name_short + " or press ctrl+c to skip this function") + try: + for event in current_device().read_loop(): + if event.type == ecodes.EV_KEY: + keyevent = categorize(event) + if keyevent.keystate == KeyEvent.key_down: + button_map[keyevent.keycode] = function_name + print("Button " + keyevent.keycode + " is now mapped to " + function_name_short) + break + except KeyboardInterrupt: + continue + if len(button_map) == 0: + print("Warning: No buttons mapped to a function!") + else: + write_button_map(button_map) +except KeyboardInterrupt: + sys.exit("Aborted mapping buttons to functions") diff --git a/components/controls/buttons_usb_encoder/phoniebox-buttons-usb-encoder.service.sample b/components/controls/buttons_usb_encoder/phoniebox-buttons-usb-encoder.service.sample new file mode 100755 index 000000000..c885fe811 --- /dev/null +++ b/components/controls/buttons_usb_encoder/phoniebox-buttons-usb-encoder.service.sample @@ -0,0 +1,14 @@ +[Unit] +Description=Phoniebox Buttons USB Encoder Service +After=network.target iptables.service firewalld.service + +[Service] +User=pi +Group=pi +Restart=always +RestartSec=10 +WorkingDirectory=/home/pi/RPi-Jukebox-RFID +ExecStart=/home/pi/RPi-Jukebox-RFID/components/controls/buttons_usb_encoder/buttons_usb_encoder.py + +[Install] +WantedBy=multi-user.target diff --git a/components/controls/buttons_usb_encoder/register_buttons_usb_encoder.py b/components/controls/buttons_usb_encoder/register_buttons_usb_encoder.py new file mode 100644 index 000000000..7c9d9dbf8 --- /dev/null +++ b/components/controls/buttons_usb_encoder/register_buttons_usb_encoder.py @@ -0,0 +1,19 @@ +#!/usr/bin/env python3 +import sys + +from io_buttons_usb_encoder import all_devices, write_current_device + +try: + devices = all_devices() + i = 0 + print("") + print("Choose the Buttons USB Encoder device from the list") + for dev in devices: + print(i, dev.name) + i += 1 + + dev_id = int(input('Device Number: ')) + + write_current_device(devices[dev_id].name) +except KeyboardInterrupt: + sys.exit("Aborted to register Buttons USB Encoder.") diff --git a/components/controls/buttons_usb_encoder/setup-buttons-usb-encoder.sh b/components/controls/buttons_usb_encoder/setup-buttons-usb-encoder.sh new file mode 100755 index 000000000..7a827fdfc --- /dev/null +++ b/components/controls/buttons_usb_encoder/setup-buttons-usb-encoder.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env bash + +HOME_DIR="/home/pi" +JUKEBOX_HOME_DIR="${HOME_DIR}/RPi-Jukebox-RFID" +BUTTONS_USB_ENCODER_DIR="${JUKEBOX_HOME_DIR}/components/controls/buttons_usb_encoder" + +question() { + local question=$1 + read -p "${question} (y/n)? " choice + case "$choice" in + y|Y ) ;; + n|N ) exit 0;; + * ) echo "Error: invalid" ; question ${question};; + esac +} + +printf "Please make sure that the Buttons USB Encoder and the buttons are connected before continuing...\n" +question "Continue" + +# make files executable +sudo chmod +x "${BUTTONS_USB_ENCODER_DIR}"/register_buttons_usb_encoder.py +sudo chmod +x "${BUTTONS_USB_ENCODER_DIR}"/buttons_usb_encoder.py +sudo chmod +x "${BUTTONS_USB_ENCODER_DIR}"/map_buttons_usb_encoder.py + +# choose buttons usb encoder device +"${BUTTONS_USB_ENCODER_DIR}"/register_buttons_usb_encoder.py + +# setup buttons +"${BUTTONS_USB_ENCODER_DIR}"/map_buttons_usb_encoder.py + +printf "\nStart phoniebox-buttons-usb-encoder service...\n" +sudo cp -v "${BUTTONS_USB_ENCODER_DIR}"/phoniebox-buttons-usb-encoder.service.sample /etc/systemd/system/phoniebox-buttons-usb-encoder.service +sudo systemctl start phoniebox-buttons-usb-encoder.service +sudo systemctl enable phoniebox-buttons-usb-encoder.service + +printf "Done.\n" diff --git a/components/gpio_control/function_calls.py b/components/gpio_control/function_calls.py index 567c38f23..c4918b590 100644 --- a/components/gpio_control/function_calls.py +++ b/components/gpio_control/function_calls.py @@ -1,11 +1,12 @@ import logging import sys from subprocess import Popen as function_call +import os +import pathlib logger = logging.getLogger(__name__) -playout_control = "../../scripts/playout_controls.sh" - +playout_control = os.path.abspath(os.path.join(pathlib.Path(__file__).parent.absolute(), "../../scripts/playout_controls.sh")) def functionCallShutdown(*args): function_call("{command} -c=shutdown".format(command=playout_control), shell=True) From 6393a42bfb469a457dfc4e286c6ea31a36c02a29 Mon Sep 17 00:00:00 2001 From: Dominik Ach Date: Fri, 1 Jan 2021 11:58:03 +0100 Subject: [PATCH 035/206] added support for pc/sc readers --- scripts/Reader.py.pcsc | 70 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100755 scripts/Reader.py.pcsc diff --git a/scripts/Reader.py.pcsc b/scripts/Reader.py.pcsc new file mode 100755 index 000000000..795b03206 --- /dev/null +++ b/scripts/Reader.py.pcsc @@ -0,0 +1,70 @@ +#!/usr/bin/env python3 + +# Reader.py supporting PC/SC-readers +# Uses the first available reader +# Requirements +# apt install pcscd python3-pyscard + +from smartcard.scard import * +from smartcard.util import toHexString +from smartcard.util import * + +class Reader: + + reader = None + + def __init__(self): + self.reader = self + + def readCard(self): + + response = [] + + try: + hresult, hcontext = SCardEstablishContext(SCARD_SCOPE_USER) + if hresult != SCARD_S_SUCCESS: + raise error( + 'Failed to establish context: ' + \ + SCardGetErrorMessage(hresult)) + + try: + hresult, readers = SCardListReaders(hcontext, []) + if hresult != SCARD_S_SUCCESS: + raise error( + 'Failed to list readers: ' + \ + SCardGetErrorMessage(hresult)) + + readerstates = [] + for i in range(len(readers)): + readerstates += [(readers[i], SCARD_STATE_UNAWARE)] + + hresult, newstates = SCardGetStatusChange(hcontext, 0, readerstates) + + hresult, newstates = SCardGetStatusChange( + hcontext, + INFINITE, + newstates) + + reader = readers[0] + + hresult, hcard, dwActiveProtocol = SCardConnect( + hcontext, + reader, + SCARD_SHARE_SHARED, + SCARD_PROTOCOL_T0 | SCARD_PROTOCOL_T1) + + hresult, response = SCardTransmit(hcard,dwActiveProtocol,[0xFF,0xCA,0x00,0x00,0x00]) + + + finally: + hresult = SCardReleaseContext(hcontext) + if hresult != SCARD_S_SUCCESS: + raise error( + 'Failed to release context: ' + \ + SCardGetErrorMessage(hresult)) + + return(toHexString(response, PACK)) + + except error as e: + print(e) + From 657f87f25f6f3036aec2a4fcef0569089ba2fc49 Mon Sep 17 00:00:00 2001 From: Micz Flor Date: Fri, 1 Jan 2021 13:18:04 +0100 Subject: [PATCH 036/206] Web App settings for swipe or place rifd (#1130) * web app settings for #1122 * web app settings for #1122 * Include @toqqi's review comments Co-authored-by: s-martin --- htdocs/inc.header.php | 5 +- htdocs/inc.setPlayerBehaviourRFID.php | 75 +++++++++++++++++++++++++++ htdocs/lang/lang-en-UK.php | 6 +++ htdocs/settings.php | 16 ++++++ scripts/inc.writeGlobalConfig.sh | 15 ++++++ 5 files changed, 116 insertions(+), 1 deletion(-) create mode 100644 htdocs/inc.setPlayerBehaviourRFID.php diff --git a/htdocs/inc.header.php b/htdocs/inc.header.php index 59898adda..8d4a0b3b9 100755 --- a/htdocs/inc.header.php +++ b/htdocs/inc.header.php @@ -148,11 +148,14 @@ function fileGetContentOrDefault($filename, $defaultValue) // read the global conf file $globalConf = parse_ini_file($conf['settings_abs']."/global.conf", $process_sections = null); -//print "
    "; print_r($globalConf); print "
    "; //??? +if ($debug == "true") { + print "
    Array globalConf"; print_r($globalConf); print "
    "; //??? +} // assign the values from the global conf file to the vars in PHP $Audio_Folders_Path = $globalConf['AUDIOFOLDERSPATH']; $Playlists_Folders_Path = $globalConf['PLAYLISTSFOLDERPATH']; +$Swipe_or_Place = $globalConf['SWIPEORPLACE']; $Second_Swipe = $globalConf['SECONDSWIPE']; $Second_Swipe_Pause = $globalConf['SECONDSWIPEPAUSE']; $Second_Swipe_Pause_Controls = $globalConf['SECONDSWIPEPAUSECONTROLS']; diff --git a/htdocs/inc.setPlayerBehaviourRFID.php b/htdocs/inc.setPlayerBehaviourRFID.php new file mode 100644 index 000000000..180efd812 --- /dev/null +++ b/htdocs/inc.setPlayerBehaviourRFID.php @@ -0,0 +1,75 @@ + + '.$conf['settings_abs'].'/Swipe_or_Place'; + if($debug == "true") { + print $exec; print "
    Swipe_or_Place: ".$Swipe_or_Place; + } + exec($exec); + } elseif(trim($_POST['rfidSwipePlace']) == "PLACENOTSWIPE") { + $Swipe_or_Place = "PLACENOTSWIPE"; + $exec = 'echo "'.$Swipe_or_Place.'" > '.$conf['settings_abs'].'/Swipe_or_Place'; + if($debug == "true") { + print $exec; print "
    Swipe_or_Place: ".$Swipe_or_Place; + } + exec($exec); + } + // execute shell to create config file + $exec = "sudo ".$conf['scripts_abs']."/inc.writeGlobalConfig.sh"; + // execute shell to restart RFID Reader Service + $exec = "sudo systemctl restart phoniebox-rfid-reader.service"; + if($debug == "true") { + print $exec; + } + exec($exec); +} else { + if($debug == "true") { + print "
    Swipe_or_Place: ".$Swipe_or_Place; + } +} +?> + + +
    +

    + +
    '> +
    + + + '/> + +
    +
    + +
    + diff --git a/htdocs/lang/lang-en-UK.php b/htdocs/lang/lang-en-UK.php index d0144c5e0..ee208e498 100755 --- a/htdocs/lang/lang-en-UK.php +++ b/htdocs/lang/lang-en-UK.php @@ -205,6 +205,12 @@ /* * Settings */ +$lang['settingsPlayoutBehaviourCard'] = "General RFID player control"; +$lang['settingsPlayoutBehaviourCardLabel'] = "Swipe or place the card?"; +$lang['settingsPlayoutBehaviourCardSwipe'] = "Swiping starts the player."; +$lang['settingsPlayoutBehaviourCardPlace'] = "Placing the card starts player, removal stops it."; +$lang['settingsPlayoutBehaviourCardHelp'] = "If you chose 'Place card', this affects the 'Second Swipe' options which can be selected below."; + $lang['settingsVolChangePercent'] = "Vol. Change %"; $lang['settingsMaxVol'] = "Maximum Volume"; $lang['settingsStartupVol'] = "Startup Volume"; diff --git a/htdocs/settings.php b/htdocs/settings.php index 51a0fa4a2..13a0b9224 100755 --- a/htdocs/settings.php +++ b/htdocs/settings.php @@ -97,6 +97,22 @@
    +
    +
  • _fe5OnTt#xSt9yvOr;7i|Bn&57jb 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�?&PULq~}y(N0H)A)n6pMoFylSiLI0PiZ8jbdPv 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
    Q`P`8J67#b|c;pSluG#SY49Zrif#hyf~ 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 kRYnco%Fe?F|-^Z>*~GnH)BZk8BzmS!c(e2;^t? zbRVb|mf&V(f2;LEL*Ki@E0w4H7M%DfHU(zu4`S~)km(7~MFx>NhyDUAeWYbqjh_T) zbJ~b!{>l9ZTZI1TzAWkfWnJbe&3D6MN9fW(ouw+|o^V3I_U6>6yQaK7(>M$xCwpol zn{d=8`;?QDx0$NppwP&MKM1ZgvmtDiXCt!JX=L*RbO@E2j*fJLenm`p4H@vumRBsW z32Rl>662RRy;I+gmoWf-eivcJv#y*-_rOIV?mIfS7DulM)N127=KON^%2QgaBcT=} zu+s`;T>y^2wA)VQn7c*;ffaZvP8_wT zBiXNxXRyZRk>f5RxfpKVQB3!hcJ`b(`x!OZgNWKD5Ejn5Jg&8$TJ#vsxUB13hd8t_ z2R2#)fXNQ#v%0#zS>9&1o%?|U?>{9PpBcCm3vy$@{!<|!?iagDPoVsFpanN|zov+O zk5{BN>YuY-Ev24`9PzMQE5r}q+RP2%|Iw%5UGOQi#75)eanH9kZ#?{%w(7o#k*ayK zW*;c9`Ml+Q-^P#I+wjuU6X%sGv!3`IZj;I3?CHyWZtH$ek;WUJlXfu~is|D2T%ltJ zt;PFP)cvkc%wbdKwbHxzNsla!Qq($9RB)Qx@i zh0V&AJjm2g_&+a89yv9SFg0;qp20kSvwqGX#db4rj6B2iI58?O?S%C@5bh~uAo=m9$2m{HO@L1t(;k&4 zYJ^A_pTcRcgNmVEkS_EsW2f!-nRtb7YRRuGU!edgOE~y)A{+01TC{{vx5m`@KW%pY zME@nBCT@7c*w`yGdVvOMJMUVo*R-D(WKjO|nm;wR(_}L$_%c2HY*AKo{UYsG#`nU- zo_fmqKEq_f1gH+CjRC7d#8x`Hr-pj<<=8vRTC1Te95*yWu4ZK$5YWY!_& zeWB-IO8=@(DtLXIpS6P#!^EuYC#0fI%KbrP$U9P6kQ!`(O`f-mejO$_yiUqo5he4M z;Q_-ub{?zR9^7y~%_P!B>{#&DnIVBK(=yCPjLPpQ`{-Y%{elcv0>dbB8Ue_5a@R&K zdme+$vTE)ugo%bM~rDkhNkX%|AhAltZ!MhARW?GKZ1gH`fC<#=-Zk9GeMA zV&rs}QslF>`r2CgEV{b(ZB#9thK|uWIv<$O$8(w`nmIElwzqC1!nxvY+i>Y+Uxn;E z>pjC1Fu*%Eg&7+_UP>Z1Ihux|C)^|LVpU|i@Q?y`^JrNVwJM|9(G)_mzkpPKPtx~y zf1>ask-bNQD0lXT?&OS_HjABHgo3;$vJU|yZoQ6M8iY1^n@=QhmsCT6aYy*qdK0|$ z?Xu-Rtl4#d@rj8!Efaxa7AW#0rUU9^R!!lNIj~mEZyMLNUgkT)0KopJIvDD)5!IOb~zQOUWH_n#yDw7=LA~{Re6L^ z!Xw+RVKn3ltHeVvid!{dg^IG$*tbvwkG+vumA()QJUE=Vf&8X2P4gf!-kd}NRDpE^ zjJ`wxHxb##kcRM7V4E4FAi>=ZbP5N0y%>y(Nl{IkzU?RXMjBq6mc}G!UF{N*^KUYf3e@9{I~k*5{3Bv;ZaUa&amDRq8Pxkj zn*3`?45J__?BG5Y%KjEx3rByyV4_j3Q&P~^eWpESq`6u#_>{J8VWdZE!XgK73+F5NSiX z7G2t^b?N{4gDm*$cEi%Zsz?yC&n!fA+@!iVNIdisF+*cX6FjAwY1M!Gct(-AGVq^# zas8WtCT0Cg?V$B_B0NQd`4R-7+c1hRX3r8NGk&DSzpG2+(C})n@iGXQdE-(|ZR>FV9YDRiTI!1^b_?F(+SfF+fG7Vtd zNo()EPOOD1z`;yl$ngNUj3e_*Y?gT!761AzWXg@9m{(3IO}Lr?JGqTSjCT=p=-eALZB6{oLgjzo?5wOEV5)jN+;j#9|K@hkeBFY(CDfS0r^#bi!nWAi zv^Oa5%hG<7Qe_XFKL~`Xmy9*Pd4r$hdt1RL*9p2puJ2jjjB5Bdf9ONzikp`=Dd~uLmC(tQ* zxw=i;$amdKf}#6V^-Ae1Sx~hVz5Q)Gb9R%b9=pTPp=CDs@RRSxCTs5@yXeJ55ER$oT-Yff%b z6b`z)gd?=b<3UO|B()H|kgT!Pk<}Mu4VXOsSvLu1JL`I6A2@v(KYI*q?RnY!_5ZV{ z?dzYv06X93f$z*H520=U;s*Rntt6a2gtoB7emHi}{@+T(23-HpM~4*sw@TFcXUP>f zD#P`U0i4UaP~*R+9cmxY_@lG@-}ATCg#I@-!qTGZk#O}{^82znnhx^G|DNPO#hD=g zTP5-!ys&@B|NLjMqW>1ox_Jz3;cQxXhHS#iSr+_n{=ch)Q4W-=$ELMxuv!b&bit7; z$*i<|6x;7Qf)-B5*T{p{Tf#-BBjeu@Liv&9T@m%cd;7NVN28K$eZ*}DU4g|g!7-~f z&ba{5hy?fblUqp`uQ;*;UBzB^-NeKL;8^yYZ7LfUrK)T&wVrF=QF+1c*V7j zW|+ZoDcgtXF(Ys}X=JmH47Q`T*@)jTw&=yl=H}*vFWkMQsCYAarl@==Ef}`+euTwP zFZ9z7_Wo^Pq*AiQuDm%<^xCwf@pqy)f4G8SQj_=fmtUAyoLY9TewTTH+t;n|3#^WetV`rSMSVL&G!jAv z!)gY0kMpOX1L68|$l*ki6%$L5W{C__9df2g znQ1#OC#p?s&NKDDngd2|7{}R2fF~n9bfjqF z#ze6vw5vlv;fJ^oH5ga3D?va|H5ZBPmJpXC_U`iz$XX;xjmM2XhIt9GU0S!njUlF@ zmnIpH&e%-|TMa7->X0ZWh|gh@?6)qjDz7OR-XzoH8O=G-Dvv`e!xq#`icIIFD!s@I zB6p&j=pf!M?6!7W^4IPIt_wJ1X~#7{Fg(IcODpfd zF(dp(WGP)7Zfc9F0?0fV%}fEVrFKNC#mD9?0a6OX!Zy69=tAC~w<-)nwgk zE?=v-&D_DgKBfXoX;CU#vRJXLAlQ}AL+Dos6BAvfsLPxELWDWAjK<8#(3FUM?zS;Z z1joYyLwfNSsytS4KGTe?5>}PzKLo);496hH)X7GKT}%3Xjx3=jIc8Ht76_=o1V*iS zlSZ)z&4NbiW6?B{fh)w+km&h0hkWk7u+>SX>f;dnA2% z2=vy6(7PPXw{o+#P(DRrz~lRnN6WU18{xahxBUPe_fNjXqFEXO6QJ%Z8z&AdA+jdseOVIA$ z_Q;~msC||giAvxtXKtfjS(-e)t!3Lgrls(O#GcVvfJmRAQcb9=wM)a%w0py`JgxZNxb1%Q4??o6@R|?RjHAE4YpM8 zV0Q$26+UX^o>cTQhPIXOv-sK5`(zI;lD^5Ek-~3nh+wjW5GA+vjP8>|5aNzdPa|_g zxp_(qZv<%@%&S7LoLlO5??ZtIu8%A?+%m_KhC;ji#={HUDFu-T9h0c78Axr9OTMl; zU8!&7@GPXxcdW*=e^})7(Gy&K-t=E8ymM1`jp~G5CoJkfBY2TeK#~CH-FBV=|GTwI zyU~E8=*0)U-9s6MOb6;4i=uX1e51?I)Za8aOl(<)EP@MYeI3s#MzGPy`9tFk8OR&+{xYfdwB3i&!W48wy7s+2zN*iOBf zmqRO_>(iJIhE{C%T5LdVgd*}Cf-tO3QOgncaNsm2o( zT2ER@DvMBYjl)q@T_d(($f9DyQuKod+DBVJ&9~UkH z*Dbao@r?eQ$R*3gFUk2}sNlL`kz7w2hwV1;$|1yJCEnIg=)gyxJL6U>faKTj9#|*q zl(|^oql|!Lz}Yv_a-V#$KTn9z6WVIY(2EmtyHKsO%R^bzrNYho9vR9|md8KQMUMmZ z-Ils@_py;(F13BKHdoXco+Yt7)E-xkwiq!yKsmqeCO?N&ZQS-tzzNZb=qnS~$~x`l z9l8x+9F^`RUGJfNO>FD_G>(eMkERSbK7MPDOT|#A+}@%zm0td7mMlY=ABQ zAOJ@ez?!6=O<7CsM;G5M%^o^dhVSJc@w?bG8z8`cHaJW0RSu^GE97wU(;#bpRtn#4 zblPD;L$g`M@FzjIiR=Lv7kxSov8uFWBv-p`u5Rn>ZYNi`nIr*1T7sy9q(qib9FaUO z90}y-r+@E_eNF_kFONdR z)Z_6M4tQ{=B?9~gDDv00e8eT*ubDB!3PeMm%dXl^A3LHv=fsd zx9x`^#BgiNk8F>BiznisYRQ$(N3tIzg>Fo~PPYcaqjn9w2d*28hI)kYt#k2xTsBaN zaN(&b+BoN#{RZP%xqKQXHWf7CeOuQx3;s^4;P;&~Nkm6+E>7dpL5v=AdY~pQ%2)*g zCKEX)PrdCGF)%Xu>ZYGs=$$%1qs2)RQ({mcx3c__!8vw?T4?7&Bs;KXVF;#*>%X>$RUy=6Q>o>t&R(^JSi=X%Rij*q9G zM4~H)pzrbH?Afhg*K(Vy*0xi3u`O24*vpPsU-b?gi57`7#$g!Olln6>-rI5Y1s7JD z4ygx^^7{u4n9=^iY<(H{>DRIWrxN{!_pwNu(jbGiyPBB9DQ>8h3b{rTGAI}S6|I0) zetW+{cKh&w6p#Rp)UrQ}Ye)__0kS6>!_3M)$=kOCA(vVkLTnL;%1vBfqQhhffGxm` z+tbrQc?H1r-I}-}q84yYs+6MA{v&8NZhMBE*bAz^b2Ttn75-j>_zd5ySVZxN9m#M? z3=2OYlW)7)6kO0HRJvpqk+CE`cHK*&QF&6M~+K*72^SA|^701__^N!q-*Ia)HjaTej;u0SRi zPEyhIL``;8x(e($k$5e_?ICU+PqGFg(B^R<{`Xn=%wu!|Gkc$_htC(k5*SHh@Q5BQ zYJ}?j9{vJ~{N6@2BI;HX&`k!EnpaRWseEB;G#2}q7PxaNXC1KtqPUKM?!4BiK2ZD% z2>)>`OrVNg%P_<>PxWSZSXaruC6%4}Y5?hN#C5DOaE+STnkN7*^H60cB=^c>{@g<0 zQgVtl%k-+^i#AY@oEugQX?R%GOT3JMm~x{7|F8C%R)kR{G3F>D@f~E_&Lxo z*GF)r1aM)!woY>rx~4uRbuw>4DN>+ueF{)5oZdX5viJGq_o6TM#rxSi@S35oXrSDK z&A%_mS#?FDHBPZ6*L`WeoL}9(6nC-`PDoEO?3tIUwGP5` zVU{`e9C|yNG~qE@TUqVzj;|Rad{T!tH+YteSoeT{vPuOWO7~NXft(1f;Zv3@%)*6E zT@39C*$*{g#ydC{B&oGbl_+3yI~UC&062Y>rrHzTW;`|Bc=d@T45FIWoNm9`&;p~!gW#>~mssoZI1kwe^##6$}PtS&W;>Rkz;K+h$0Wav8)Rout~%CDzFQo^ji z1QY-9y)2SX{h=!)`0Lo~!N7SY1LfDZLL72ej^gZjev`GOPkk52oGJ0B{UeVdTn<1q zhqEK@ZxsW0z_+{STPBtvzk*q*hAUd+zhoN_pF8fkRHud_O!z)J&&98X5BT9JjE#>D; z>iLyl^Qx6vXl>9(bn}&5H!RkunwAPm!-Lc)b)wUhmC&RSlrq-qbR|I8T(cgsqOHs5 z*Q*(tbq?Frc(z&HhF#T*5%{)^SF=(bzh}pn@!^Q~-2Dk}nmp`#egLw@h!%C1Idf11 zW|;i;3Wn2^M@T#^|6UdO4FV2WNL-*$ zrgd^bvMC8JMwxy7)Oce-oC~JWg}Hg*Y}=`)*c*b3;0(p=hooy!kz|9=u6u;mFFc9f zi7&%1FZ(D25ajCNM$n!v{(EbBr#->n7F+q)HDI3Bw6_heK=*5U6cMl>N7O?SL`9CN znoV8N97l{Is%OX11IKJ{N1IAM6i;GCSkZ~=9g+tv*6+~k0at1gicN+uG<)2zswI`Y ziv!x~YybjsZ{tp=W4Ctwv&xnxn`F$gEFo!Os?Q{gSLkXd?R>+U!KLlS$+=E7elY1s zl~gws(81eVGZcis@FS~Vs zo(hk`kHKmx*V~se(%Awee(z;nW|iPz2b?H+QI3?PO-YxvShjjz)xipbowcb><#s6 zwn?`>(TMNS%o_xmKoET<1mt};_Y+vk*!$*%q5Fv?Ie*j6iQjbv39zsO(u-}s?Eiok z3Dd+I=GSON7IJ`HG?yr@5G?%RdH+Iqz0e`G_@;CYO8+S&z3fg3-{?XTp+-Z&R);&z zW5Cva^g2hcDt^~G%!Gy^%R;H+1z$WkN$-;-c5qsUB<`Fc3qZh3rX!YivO;5p3a|?c zc#ZSnigTRyfKe%5fr)OXYPK3>R@Ywnfsns|xbd@QFboi*`t=g}r%F;eTS!e?oA0Ju2t*a=oSR5Kg4q^OkpVqFLF~?Hn5E z9AH#{DjYu6jejBagU>p4+LmiF!K<@hU{|2o+n9g zvo|G~LaLOofsC>F!X%zTJ#W~x6!yt&`b$HQ_0N2_h!p9nxmF_Kp@r~lT-F&}u+`K$ zW&&yp&${U74Jmhd`(8*CmR0$=&rL*h7l3u!U(l^y;>mDWn$h?Bo#u9 zJgSnzEIbhH$+N+w-L}HD%UU2#WK%5-XA^1)lZf43Zn!S?JXeCVooMBKWA}s-E0_df zj*5}wXL4NcRCkUy{3sx?rFXH?O|bUxuql+2$eA_92}!}Y3Qa-HPgI&Qb#rv}oFuNI ztTJ;WWN{vG1Xq?|Q;(IK5LKN7pwXW%$lw^js?3AU-%d_-wsY18C%z;BMlFOyuhQ(npNAa3`^KC=DqJ8|P0I(h4Fqcnm$1RcMVvvYmOx3TNavHV&Wbj&9;(gYA)eHQ~7VA#3h1jR<|OT{|4gdZV`qAQnEb+(gXV zU*K?KT{-IPmRAYFwB2$t{LykHl#rO&;O3i#rN!v}e(yRMMx|S$_4+l`8c!e?iR4W< zd4R#&50-{$ib_kSNp`6Dbe!UMa0)#OP=V4Ywy&1xfSNfoA}Vbk)5978hze68=2U^m zD&4U}Id>?b&asO=lEU4C=-n84yW@4OOX(LFWQa==wZcuVE%JqBmx{Y$d^9Jk<@HaR zn(fBp~ z*3G04u}W3Sz-j1o<9&Q{yH=>uWW}PWT5ROn-a%ri`cG_p&0#j&l!3E}xmzkNGGRRB zh;URAnhQZwu4yNt_k>;Cq@W$c@*dl6j|Y`Izs=%R2GXvE_8rmWf53C@{D`a3(bxiO zU6pP=1wbo~6$ln#gxvuB5Odaq-0h#AOf3<$1(cWfNK_d`^QQqPWvFW*H2%X!VZj;YYe2SWrdKURkAZ z)VnZLGL*W$Gxfrj(;d_!;xr&ffLoAe!@UV~2(-k4&^2MRbnJ4{$PP{jAJ4BB4eo%O~dx>p8FH0KlYTPeaF^J0gar|lB zU}%mY5cV2hfWVAlDrgxv0wv*4Z)Ek-O3IyXJzU&~WH*P~q2#Tf|sYLN{H-D+9Zr%>+Ary=o zQqWOw;v*<4uC2`wbA(<}G@e}u@oV{D<`z(83FokV!fOHQkG8xc{MjEnKw(7l7a$xQ zj$tP!LsYl5YWrOI_QwuZ#p39X%(vZb9^qMPq3+VzzUHZJb|y(ESaMW9ZH#s*I-dv- zI`(aIYl0+$o~?;LpsII}?UPnv)k>~U#euWpW$nE}9&O-;iDT>$DDFodw@4_qtd3TR z9Peikl8*K+4@^#hb1pj9ii8T}9Mg6(hkpX1#JP}{7ll8z6cR+L%4ris3E8Z=z|0y$ z)gd5g=MF`Lk-&*;B%PGzfYejnN6j>m%e2*ExY0Q*{{}vsWo2{1eJlTYNDMZDw5E&R zj^)7_Ah$z4RPMFzv_PhRzYX)c?0_p;WIxJ>_1W(vm;0)o)zZx%If)t8yqJfegW^A6 zuY(+p@wW7<&a!UOBL!+2@gtmF4VOah;mSO=t56E*loH7>7)6B#M*Hr;WRnzOm{ zqSR-T(iHYg6e)Hwx|M+=WNx~(QMHU=iy766LTgcc)+=zz?)H#t$T@qA^IrBStXf?6 zd(A>4;jkp0x{Ij}(3J8X+KA&3?<^x^I4%r#gVdhS7Xygc!5^WN1?mbSDrY!jHyoA? zGI%l$E+gT9@(9Bdx{V-Rb)SIuSr1;p=nzlT)Oi{kD`OG4IvdWB@X)?HbeiCb^|!et zntc**?TU%(miATkmaU9jD&Il5{AuVI3U6@#c@}eET4laD&c8z#><`+(?3ALqCKJHU zT@;}Q47SIRW9lFctNgV7@4LK9=G1CWuAgGDPBw+pQ}(#^1#H_*do8FZnZwJNRdL zrv|`N{>6O`dGzlgcUonC0a7Nam|-nV-}?m@hhBW!n9MSNBPeW ze3PUiVSbX;`BM7!*bOF2utFsa+0@?Xbi;Qa+4TyvR>2&qJlpr_HNs>z_< z)i|CDgdR$*0Ten8o|4TapMqa5?`#O^;fN>*h;W1l8~E!_7M8M>V{SClVzoUU#^ z>G0k}f?(R?|KyiW>E$$GY z1SwW1QnXN{MG6#(_2z%y_xt7!nc)nx=j5>2oZWqXkKAvep!9~L>owjb3O8nQ_vp_g z6vU;DM6bH4JCr?MM4P~(ORnL$qAz&sqN}~~tn#xbFzR2a2YC^SB1IcFUg@@P>l&x1 z(81VWV|r9m#URX{So*%1tm^ThF)73HsIN;iF<2+^SN$3zI!Yy(1Gj*nX#eDrx>Dx= zz?&bdS67VcxdXwfc^}aZ(xym%`oMWa`xa4leIO3lFMC=U$yjNU=$reHnN_~g9eQ7h zD{2CLQvMOcM20{6$N=s48cB=meT3%_Y#hEXRmf3Qk|P<^-EtIw$d{e(5Z**ne3%^$ zE&LOGLgnBr1Mh2c7bpSc>yHhtYD*nTPmkO*H;MT`_@EMM1=zN*vbV)M?% zI)Ye?R2MBd4iqmBL$!w-l8p`*4tvf)pT@(`7R#`X%o99fn<>x{5p!u%L{2rr5BYS` zvO9M+`9mze)RYp>u4^rg(p$b2B|kQI`5bZqz_K=o&Woyud1`oH`#=leT9mS*WtE?J z3fzm=rlX8BS+9DF`*ia1m5^-i7NyI_Kh{s|u}l@0!33}dKmZrDSM_)6Gnex26^m2Q|{ zNb4Z1(8NgHK~>ORA4m5M$>U?Jv`D9?1zo#A8Pbn)HC*A4*G3U$@D-J}Qv@=`DpP)) z{bWzY_kO_S8K%_GjPPl%XXextKgTvE{7KFIkg&q7Mqic@eh2jI!8FnMM{&8wUXos? zb8ddYHVKHQ*aa>okfCrL-DpQ6bER?at&lrHtx@ux*V_3?wFH2m_8k-S&908hjtJ*y z%ZtMy28^&oz%%CHx3vbkksV>MiRtaYUX@SYGj*9njx1iOf8@(kpqR> zxMW+$9Pkgrjss;r>c6cos%tAuzFO(EMy%Z|X*+vQ!Wui#i_lCuy^nDFaDNIk?0Cdu zi7qAVz2B;S28|D4+vvbt*1OtH!c1!H82d0fDPas}P;2w!VQRB>rf6qnok9g#d=O5r z{j22k=g}^Ai|G0p2%I5lQ0>NnP%w>RhTzICPbst}c1kX7O|A9K+R;wlxMf6a0y zaWx}Y#dEY&zc4?>sg9p#`Ti_Vp41(3^IQf?saJt`k#M*|P(OJ50&2Bep;eQDyso;RjxDIU$X3cM>5XIwWmko!i0La?BCAp6 zXSFAZmKod?&r{T78)&~YZX(%iXazNE&6HK)3R(sxZ@dEYU?9hr2|;5atX?1kf4hT; zzAhRCsnK@e6jd3a3}IOv#SQo5&K}DCa;k#HgJcvjn$^kLlWU7+JTfI4Q+qnugs(M* z9UfoBGOtPb@?M?vgK+2OP4lkf_RXrz;~5L0UuC2{i=C~#RjE7q3(Y`cnTBUMl>QQ7 zRd*P(Xb~v?2!W8J&MmUDVr0ZX46@ilEbY=*{TvB3-qYMehs>UVWYybSi@l#AUu7Jo z^j~XY`86)5*zdzK4C1pTu-*%dUdijv#Hr$wY?LGUZ%aT?%`%IlVG&9^lexDO(Gnh!g1K{0pT(hvjo)Jr)L!Uud~o+!3q8>hyrNqhAoQ{^ z0zAPXr?_c>K+bZaENvA2CM&k2Q`P~WQ~O}$p$!XVc8JJ=bEJ4MU?jNwcaMml?K33VMfKXd2kVUdCp}~<- z3yv0oC*M1xTx?EP-5t(rx`NT>>=e5rpURzvFfg=!-FXw%hjcRQJ(Tf#(wo!peHUOo zLkCo0)M@Baw^4TxR8?cR@bv5Ab>huGllJ7;Ys`W={Tfm+PJf7??T`xqaW$~;(OqvH zmRD5FYM4e+B`Jufe5`N!OxF99(Te-H-Vle8Y~f>tRm(@15J^!9+q447yV@zd$`Yw| z>FG)KBu-IXeJ<~^f_`bLZ<=Q6!0OT(HBP2!C5|Wds_Uz+8Fx}t>3M+*!*d7=Uq`Ck8(9M}R5R}K~*m~#v|r}DSVOI}Iv|GfX;GF$hqX*6;*S!-Z>R0AF~`h%>Re@& zm((>w1|uqgApToqWf2}kW2o|0QD^tSI`qpR$w>*0IPJ~j&H9WDIXfni?#1s*)*3XW z+z@2d%n%1B%PF}&vl;5{cs3Q{f9F(BT2L;s91CJeuc32^55K~ktgjMqqswheq!w%g zab*KPjC@EEo7XFk%8wu==va@$qff$$ry=zh(d9Mgi($+qCoM6xl3YhCXl%Qp05l8a zGl1_sxr?0Njs=*Y_23Us3)#XxjmiK*=CP5L?)-+n8!C8=T`(mC5((m)GH+@OkBi#AeOoBaxO>xf32H6?Bc4lb7o z7}J)NQ|uvcHUnTHC6il3SK=XD{3MCI5}1rOcwG8;d$^u6oh6I5g#FDSjDeP-FB9m{ zl9!?5Lz`djYl@;=KUm&d*xG*OB@Ku`1+5`j{3g@bgH z)wy_|%?1YWV1A!hnR$w{Yy`S4Vn{_GnPr2D>%)zroY0}`T=oNekB5GNW+{;= z>^oLZ1YWoNDd}wFGI`8*RIXmTUbqPxc})D#)XL*!4J?u$TcH1|jf8C*#^HuD+GHks zY}1?Me)IsA03Y-pa+G1F_0$YE$WZ3|*w5TYjGVPMt^DYJ+%nvlG)RVcq`- z79`dfR9@oMyem|%f27oMAujQBkVeha8ICjlm`dW+Vj|y0ds|%--;Nh?v~#pPPb)v^ z6EN0P24HHs##Y5^tSB>>U&OTNXjGNtlQw~*#_{Hp%N_Zfll~5UEvtSsLVJE2cg2}^ z`5F*KFv#`Wpp$8_!@BU8%*fMT%Eik@g~cIhJ|0`lB<6Ky~dPTi4>^;?Fzt*UOsM;yY1gBO0 z;E_|O<39Kq+ zMjWJ2f3o*7!DUI(M4_>*|E*zb|d+9d}PAYXiHvGD8uAI3ZNK>?S> z|A5p(&WS@7DMi^B2Q5*1$rl#%38R54J+s`=m5r&{ z5Nd*OO6n!aVKJaign?G)GBz6M^jOrq(n8jYs%L#UuVRd^1?m()8gK=8Vsxm>9BTbh zfDD&3`8L)4Y#mTS2g4RDmM4RZQbym$n(Tzf(a{m6OW@*9RADT8elCE83QbSCRN~jj zBgfPe`ZoX7-Yq4{{i+dY6xUp~>G$d!Gwtm%;?2bqx?zk@d) z=>aw`f)M^8iY4Vn?9g%Qx5^D$I3Y^jEN*m3?oUyg6#raYz-1AQ|7Jzd;eH7FM#z&w z>4WQq;n7?0sq8z)%@^za8Jn8ttz+Zug29U*!1!x4PC34W^J%YcqqZx{#*=q@Q2bnbjva39EE zGZG->OT(hpsqI;l7N!&b;Xta-(i^QQae-(mt}= z96bE;i#8bfm9*^57n!`-5OV{& zw<-W#3+%w_GcWJbdCz+?ocvJyb0%&@98-|I(lId28B^;4Ml`XKjDoY>)K^b(XYRdU zM^_GW6u94`;a5|ET;VO2i02X9&~1lBJGQ2H?FwustdW#+FCWHY7r;Fp`UzA*t$gGg zUz1YbBzJG!kCq-&b1zou^f+h#5~>rxHPPk2XM6|#x^_~NagGOSdiP$MCo>O?Z2E5&zct3c+HvovtR)A&aieah!v zabmjPg@bbN>GQ}_iq19gOTp1xbf8jTGz6n2HhQvx5ZwHgn-lJNgk_L@2;v`V)V5#O zt7190PWPNkoIp=)SJeE1mW{*DITrfT%cvXg65TSijFg?)0{7e+k5kQJ{SXM1#>} zzY#80ML8m;2dds9exHkK;tV1P6%!giO1gfJw#z*YBQHD2Q^_!4Rzy1AD!h6gzch8g zhQ-&b(d>nH#CD81FI-m`9MN4j0}VC2!M4Se1) zR^`pF{igDuPLLPN?QFMt2#)TPbaYT|z~WS(pDIu#R%OsyG|i7JnX2A@2WC!ZMA<6y z<-Hv{AqjLvwF-O6HhnbWfklm4`o-cjq<^qg=-QAt$Hmnivn*Te%-jYJ|B zxm&2eIr$R6Jbt^3uYd)wwOnrQr!S8FBy)}iwuha``Ay;sWGor}mdE%GIh{>-Me{)l z!htCY)PW0{UnkG;vMLA&7}Pn^v1QQCb7_T?0oyxjI|tjt-h%YWPVAhK_%@f1h@@)y zGGPf3_ok`;z9ufBfBhv+!+=D3R$jQW%EQCZ$VIG@G6X5Uk%2;&t2lVX2ge8NOgl2& z45*}|L2mrU`0ScTXPBKKm5?YPr@AtFrh6KTteUvBAd50Z2Aa)0h}p8ar2l0#ea0ld zJ^v6x%*u2B6RMrMaUc9=0FK$G_0;N2DLcMMNVY+mA3+%;LE6OWr%BN}du z@9v5{5w8D4x5)7^yoWPO$qx^U1<0Y2YXWbAI#^(R4JHP@eJo$LGDTMUmglq*<~cJDGIzT<(Uo8!dzF)NKX*$)oNt#)g5FPq8Ty?6Gw} zsPb0HeBPLwUAR{z`U5lQg-?$Vmfq1Q>)`ba-bgBpiQL|)+wC)f66 zX!MgyyKpZ$+%1#duPsKco|e+ZaLK$Xx+kzu2a44x=d2uR5ShxUT%HHvn;3$c)_3BQ zPZfuFdA&| zmhTt6PZBg66CDMdlUC7@X8c0MM5mIaB1*1O8~xVnoSA7v_vE;-xd| zYmCVUlgCZ46$GbB%i&njAMT5tzeF&scGCMKlAL?rOtIs!{MffxP110bz6*g3m+2fX z8MQ`RDm3w+$wIU=b!BW*-bwm6G+!eM&cWS5iU!#AO&M;Gkmzm-`w!Q4yR)k43q)_V z33QlMU;oM%DQz^GnjCr|tgg>J0^qeh-Up;?-Hq`TuTAx?cbO>-y)@OxEDW5^E)}|z z3+3D;V!Dkm`kG?tS5GZK(r@6MVZAhu0Y{_P*uNC&wihn zcWn^ANE*sI;LAClq_By0bZNqdKQtR-h&Yx%f;?>l{rvV={8W&B<# zS&kP>&l&0;(44C2q|foOcdhyVFjj2v>F$GH$6P*E>CjkT3;S(&{aVs(h(k|S8Gja1 zJ2o)62eXM+FVd=3K|f^wOy4Vc5>Yfflz6J?tp$xvNx$C(_c0F-7#=r)~kA*fiBk#=PoC(ww-ZB(fh@XTLW8 z#ETR1^Gb~tZNw$AmpPFTzdU$k%0ZE7-peL9O5LlLuLj+GXRn9*4fU{73ka;DHAwI) z<2MQdz6MoBy>KLDBttt2ODnw`tkFgOVcmNi(Ol(H%hQW(PbIp{QoGACS z`DzVIuXmW3r_m#>byg1Ah=3TK(*Hew^Ns%(9pVie+iBHjA7;9@%OQT$br@*qz`LN| zhGDq2X*Zd0U`hvXx8$30LXfO^bWMYg)xhCXU&TtdQw;3INA;^h{!>t#Iw1+e^@HuJ z`{Cw`n^>$Xk6(j20XY-ZEtU!by+**a@yFT#*PDMo(Zf11- z3!*o-ybgGX&+luh9SwXSV;mXqZPLqLGXVASh|nva`eff~Ze{UyM2xR|;@l&LAYrt{ zfWq@^ZXPC+36KS)EvCDStMBanUDLjjQ^n~vt4pLUp)GERUY$;KjgF;8Qa#~Xlvkz| zG1L2>1wQtS1sV*yyjjcRjd4f$M3KDxz(WTBUeP&!0NLhdmcz$^&4C>ZFd&(9VsnGM z;f<8W4YGmvGfYs?@p($LOwXXe5q&$z-ptX*G>gG5;CV0=V}jSpWqioFkqax}JY8f} z3!TE3{8ZPq?!$HA3!krnvLo9+zq?E|I&I!%|GYzg90OJVd(c-Lc4FLm`hfa_CgFBj zFZ}O;)#rh0{@bul5bysSbZJMS+kn*2=Re4;|0El@CeOeBja{{GXlwlW|Nc#}rO@^D^~S@;U6ucB&Gm)VANn<9CpB>!Z}NX` z@c-V|e<%EZ2cD~On|J^JsXuJ~_xeZ>KKh=%{_hpHXJTdkpMRrMYvh#tph1`K80`K8 zU7~3wvVsxWE=LW{q@Y%9+$Q4Jr#R!+>{ya`*`+rz-wDj?uHhe(ALF5a1pLBdR-9al zUi>I>wl;oBd^&l8XQS-(0;>e>b!{WVS(|2ipDfwdKYoSl-P#r9WtCx1)oJDeuZv$T zfu`nXkLiAXapmuuEgfsbc1iMhmGu$dN|ZSzebRz{w}yseypF&2H@$ zW4nYR*}R1NyvRUW2%AWbY*j26#k!c{%7a_;+Sl(-@?uTi9i=0=Ujz;n&A1WfkYk!h zxKHbBVnS@sR^LC2RIDA4zfmp(bDRo|#0Pu5@0PSN*CptnyBl*jIO)BZvR@ci@?rQm z-BNk{DhjuI1WO!ju9vF`bu}lb~>FbBOQaTl^Od628#!i6ea z*UpiD6^5t27B6y~_=_+-g$Ixej~SlA(QdAk@WG_vUT=v?<)~>J)j>xX{zA%45on=J z3HD3#LgYMt3qtAD98clkzoJ;IA@iIauZeD(shhX-cRh@z)-pVmJ(ixlrEu~8;Zi<* zE1aLr3zySYwCMa&O{C4jQW|NXuzq$Hz-BHD=Blc1UL}lr#dGaiAi^MaW`e3#%Ymka z^{J3n)UA)H>wneys^Xb^FeUmABcId;hRJ(+O75v@NrTmfJwpWM$uH&33y z`2EePll^}E&b5kD>^4SoNfYeC!yA|EjN;`hG0nG(fNO*?R(2(KqwRZ$g7~Nd%oqFo z9*OeKyF$0WC+)V}?5Uh5Q^ACbILx+KQ|?TE(b89{zUv$T@gv7NuQT^0va#ZdtzhQ5v~)GJC`f zg+3zAu?TkvHb2cF%Rw}JY{nykXgkF+L!;TOZ+MQ4YigE0X13u$$i@bspM~pBoY)ezS&j7>GE1L zF*_x{v4*3P0R`D*zTf`Xc2pX3NX2#J=inL(Zd$?Wq53joegTh z7x>cx`Zi@OWnvBf7F}hfifLP_oNO!uLc5$YX<}&BI)V2QL%8Oy-YvPJ zI%ijAf<@grBlmiBFGFFM{f(X9uDADY6CKZ#Uz!5Owelvr^2#s}DSEK#c2Lc?vqeGv z9R9AJ_sdOBhBL-Zj^im?G>REc8hMAY5Y7>~bogZ}>DRHJP zObs$%CWz9F7PU8jCY6caIgmF&*)QZfnSW^Gv$~vFNd$^|z2)U=z~jI}PcfYzx@$s@ ztg1=zbkpi<+RG~U8nJFlBA5(45l!{Rh#qJ3BjR>Fw3~MoJnh)owX# z-Arxn;27-|HETc!VJYHhL;bW%B6QcOEdy$goG$zTnv0%OV|QR-lu6|Z@jo@Z1t{@S z24xM3H>YxRE0&PYqdDx)Bc3WS+xfxCXV}BXWjH$N(UJ#r`Qj*9Bu`AZg4N_(-e4a0 zIwO*LlGI^@zLT3A#4eD>W<=+@r%7JkX)O{ZGIW__mhHhmS?`APbtvb4*yzSWzFn6s zX)#G;yPazqnl-9IPJ;CMSWdc(;jb&xNlLW}(Itq*A6+}HQ@2P&n$gRY7I!Zv)HbEE zkLZ827iLXRET>f5-m%XPT=%5dSMQRfONtdVpta}e*(PYvRH+|rr;;}WXSE8A%5;N; z_H+uJ-xjV*@P|W-ZAYQouFv;&ol5wLm#>KH5TU(>C~>=uEvn?zx}1Yi!SgSyn{ceE zlP8H=zRk<`TL`De%LoG_2VpR;zPTLh&*o={eRf-oJ4(?qU2nU_j}-^Y%bVeq{I?H_ zi`k9H)!ID^kK%>M+Kxtl6{+bf&jq#O&Gpgt2}k(RkkpFRKMXl}x}bnEtnj)bqWA-5 z$!S%&JTqAFj*brlcg)o{itpUCJW_WGs;#LI9OEm?P|rm-Lof3qKQtg-l$?Dk4q%EW zDIu^Q41Z698s}!$U~v^=07t@!2?A2UCfhB~yY&7}Ve>}o2jtjrq(GHKiESvj%oBL& z5)2vZwrp&0u*QBGQ$`+E7!s<-a2n^O2KeEs1tZeAMxSx-urO;Z6{fTO7L$+&Bp-yO zA7~uKk?R}0w^@G1m*8$g` zlVRx~sru6dR9?UJ+S?LI<=F$8N;ey}6DbKA4&TA}?K)Vj6^xTDRC(Oc(pg3z1IbabCE-S66&?nU1n@PcD5p-!b9O zlyjF6XG$C+AYU0xnb=c6YO3uE$Jy5r@LljSU4++=*r=A$Kxwr4Xu4JX(@v@BmJ6>< zyswJVBItsHMSNGC0th0Ibs2dEy{Qt8@J172QQ1fIUe(OJZCy)c&u>`t{1;F!pGjAA z)bJl^f5<=!EIC5dms^-WS$FLh=?O0u`Cor}`(lq>C(yH5m!EGX>qw#slMbPDQ1&Hl zsx>%UXT3wKGHiwo5d$3ElBD9hdz|Tb9Ip9@+mW~-@eiYyn%C~yQ@qL|^nv?OZ$`K z34sQ_Y2{#Sg7h)r>pjBvem8^hao zyg~+AP`EocDu?uN=OqPm#Z1l9bWoo6r@t?Q$*0WsQc_k#+cA$RH}nTim+%eBF#KXc z{_J0i2)2p{(3bQ&;j}u;2pQWYBO@Gi9JgNI|3q`YDVq2d(JW2rE;5rms2A;m21p4O z0ZmcdY;hjums<3Plp=s$&F9N>a}@#Rc6^lDucbyob^g$BDABC82X`+7g`%7 zO$b>hR@-Vp?E7t(9{?*s=kE7}uAtMTw@E>f`H4L{-!%FKdkXfC_>KqBnWO(OV!z!` zEp~(o))nk52NPMb}X62Q=!Y#k)skUbBEJFbRr&M|&s_9#U&dLeM5bWSSdHrSoYqagYR zLQL^(XVZ#>_G60$x6UE8il@8->ncBe98hQMg_14vG5rTVZYzMhKzEe=s;m$*(4As? z%t55jShxV)i)e3^{j>aBJ|wReVos=Xuk}B5H_gK~zeBmM44Zhi7*Wlu1V@bZ(rlYT z;_EE*&LvR3$4d305HZJ@tk6 zXWbF;ozAYeo(!VGZeu(=Y`jeZse7~_(kJ#(eU5)~I7un~K%vXnE{vPg-!&3N#TBRzLbslJguLW&lKn*FJk^-097)^OD|$f z?AG*KZ0P5%_AS5uVXI9AgN)3d_=t+^eG$X5(yP`d2JY)uak0Dy@7QD?(^Atri;;4G zxNEN1QA9Fq7OHJHH5Sc3L@NJt2E9(NX7g6TPB%r7G_{)EemGJ;hMV$i8(6itxXE0c`eUy&EcgV81qvKvTJy7 z(|?I1j}kr$ox5vYkMg{C1y*KeGx89#=MdOU-^#C7RGh!0I!7nRV{qS^A1qS43D#9e zS)Aa|n<`K>KH|FvPENyf#Z`|wAryNWa94}OZBbNddnM_ZVH2QEy-?v#n(5^8wtdL` zRNGCtZ?eaUWBe1R`-G37^}3nnK@;~Q$uDXa!+WyQ4gGR4{UG`;sroYeo8ABHoUBnr zCCA#<*eQv8!P3(=$qh;}r<>OY;pk zhXySM+V<>FW?}wG2+TAP4t>ilK>e246qr?~M$7nC@yCL1qr4EN(0aQy70TAWAD2X_ zgRz<9)99|SvOb}!kY1W9rwuFZ;4x@XJMi{twC{R|07o`tLO4dVQkSFbbs!FJR-BH? zh1&Y(*|642)}IgfcepW)|1efJPd{-|GTU16>?~s)*|saWbPX8HK&I2;f7Oz{SCI^< zB(Q$Zk>jMRucDjm6KwFyY~d%0D4QXwCRSt&MLR5PRbpi!;CPDfPuyyH9sRP0UsQ`r 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

    + +
    +
    +
    +

    + +

    +
    + +
    +
    +
    diff --git a/scripts/inc.writeGlobalConfig.sh b/scripts/inc.writeGlobalConfig.sh index 1f98bc54c..88909e0ee 100755 --- a/scripts/inc.writeGlobalConfig.sh +++ b/scripts/inc.writeGlobalConfig.sh @@ -64,6 +64,19 @@ fi # 2. then|or read value from file PLAYLISTSFOLDERPATH=`cat $PATHDATA/../settings/Playlists_Folders_Path` +############################################## +# General RFID player control SWIPE OR PLACE +# General decision on how the player operates +# SWIPENOTPLACE = Swiping starts the player +# PLACENOTSWIPE = Placing the card starts player, removal stops it +# 1. create a default if file does not exist +if [ ! -f $PATHDATA/../settings/Swipe_or_Place ]; then + echo "SWIPENOTPLACE" > $PATHDATA/../settings/Swipe_or_Place + chmod 777 $PATHDATA/../settings/Swipe_or_Place +fi +# 2. then|or read value from file +SWIPEORPLACE=`cat $PATHDATA/../settings/Swipe_or_Place` + ############################################## # Second swipe # What happens when the same card is swiped a second time? @@ -273,6 +286,7 @@ CMDSEEKBACK=`grep 'CMDSEEKBACK' $PATHDATA/../settings/rfid_trigger_play.conf|tai # AUDIOFOLDERSPATH # PLAYLISTSFOLDERPATH +# SWIPEORPLACE # SECONDSWIPE # SECONDSWIPEPAUSE # SECONDSWIPEPAUSECONTROLS @@ -305,6 +319,7 @@ CMDSEEKBACK=`grep 'CMDSEEKBACK' $PATHDATA/../settings/rfid_trigger_play.conf|tai rm "${PATHDATA}/../settings/global.conf" echo "AUDIOFOLDERSPATH=\"${AUDIOFOLDERSPATH}\"" >> "${PATHDATA}/../settings/global.conf" echo "PLAYLISTSFOLDERPATH=\"${PLAYLISTSFOLDERPATH}\"" >> "${PATHDATA}/../settings/global.conf" +echo "SWIPEORPLACE=\"${SWIPEORPLACE}\"" >> "${PATHDATA}/../settings/global.conf" echo "SECONDSWIPE=\"${SECONDSWIPE}\"" >> "${PATHDATA}/../settings/global.conf" echo "SECONDSWIPEPAUSE=\"${SECONDSWIPEPAUSE}\"" >> "${PATHDATA}/../settings/global.conf" echo "SECONDSWIPEPAUSECONTROLS=\"${SECONDSWIPEPAUSECONTROLS}\"" >> "${PATHDATA}/../settings/global.conf" From ce8e9ffc900cf66a5207c17145e2805796955c59 Mon Sep 17 00:00:00 2001 From: jeripeierSBB Date: Fri, 1 Jan 2021 14:18:17 +0100 Subject: [PATCH 037/206] fix: let function_calls.py work with python 3.5 (#1253) --- components/gpio_control/function_calls.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/components/gpio_control/function_calls.py b/components/gpio_control/function_calls.py index c4918b590..b87f96b8b 100644 --- a/components/gpio_control/function_calls.py +++ b/components/gpio_control/function_calls.py @@ -6,7 +6,9 @@ logger = logging.getLogger(__name__) -playout_control = os.path.abspath(os.path.join(pathlib.Path(__file__).parent.absolute(), "../../scripts/playout_controls.sh")) +playout_control_relative_path = "../../scripts/playout_controls.sh" +function_calls_absolute_path = str(pathlib.Path(__file__).parent.absolute()) +playout_control = os.path.abspath(os.path.join(function_calls_absolute_path, playout_control_relative_path)) def functionCallShutdown(*args): function_call("{command} -c=shutdown".format(command=playout_control), shell=True) From f91097c9992cc3d619c1dd73d93b07e1081e50bd Mon Sep 17 00:00:00 2001 From: Florian Bachmann <834350+baflo@users.noreply.github.com> Date: Sat, 2 Jan 2021 09:55:39 +0100 Subject: [PATCH 038/206] Shortcuts volume commands of playout control (#1235) * Shortcuts volume commands of playout control * Moves debug control out of shorcutted block * Fixes indentation --- scripts/playout_controls.sh | 165 +++++++++++++++++++----------------- 1 file changed, 86 insertions(+), 79 deletions(-) diff --git a/scripts/playout_controls.sh b/scripts/playout_controls.sh index 2c3224e58..3e8fc9592 100755 --- a/scripts/playout_controls.sh +++ b/scripts/playout_controls.sh @@ -104,89 +104,96 @@ VOLFILE=${PATHDATA}/../settings/Audio_Volume_Level if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo "VAR COMMAND: ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo "VAR VALUE: ${VALUE}" >> ${PATHDATA}/../logs/debug.log; fi +# Regex that declares commands for which the following code can be shortcut +# and we can immediately jump to the switch-case statement. Increases execution +# speed of these commands. +shortcutCommands="^(setvolume|volumedown|volumeup|mute)$" + +# Run the code from this block only, if the current command is not in "shortcutCommands" +if [[ ! "$COMMAND" =~ $shortcutCommands ]] +then + ENABLE_CHAPTERS_FOR_EXTENSIONS="mp4,m4a,m4b,m4r" + ENABLE_CHAPTERS_MIN_DURATION="600" + + function dbg { + if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then + echo "$1" >> ${PATHDATA}/../logs/debug.log; + fi + } + + function sec_to_ms() { + SECONDSPART="$(cut -d '.' -f 1 <<< "$1")" + MILLISECONDSPART="$(cut -d '.' -f 2 <<< "$1")" + MILLISECONDSPART_NORMALIZED="$(echo "$MILLISECONDSPART" | cut -c1-3 | sed 's/^0*//')" + + if [[ "" == "$SECONDSPART" ]]; then + SECONDSPART="0" + fi + + if [[ "" == "$MILLISECONDSPART_NORMALIZED" ]]; then + MILLISECONDSPART_NORMALIZED="0" + fi + echo "$((${SECONDSPART} * 1000 + ${MILLISECONDSPART_NORMALIZED}))" + } + + AUDIO_FOLDERS_PATH=$(cat "${PATHDATA}/../settings/Audio_Folders_Path") + + CURRENT_SONG_INFO=$(echo -e "currentsong\nclose" | nc -w 1 localhost 6600) + CURRENT_SONG_FILE=$(echo "$CURRENT_SONG_INFO" | grep -o -P '(?<=file: ).*') + CURRENT_SONG_FILE_ABS="${AUDIO_FOLDERS_PATH}/${CURRENT_SONG_FILE}" + dbg "current file: $CURRENT_SONG_FILE_ABS" + + CURRENT_SONG_DIR="$(dirname -- "$CURRENT_SONG_FILE_ABS")" + CURRENT_SONG_BASENAME="$(basename -- "${CURRENT_SONG_FILE_ABS}")" + CURRENT_SONG_FILE_EXT="${CURRENT_SONG_BASENAME##*.}" + CURRENT_SONG_ELAPSED=$(echo -e "status\nclose" | nc -w 1 localhost 6600 | grep -o -P '(?<=elapsed: ).*') + CURRENT_SONG_DURATION=$(echo -e "status\nclose" | nc -w 1 localhost 6600 | grep -o -P '(?<=duration: ).*') + + CHAPTERS_FILE="${CURRENT_SONG_DIR}/${CURRENT_SONG_BASENAME%.*}.chapters.json" + dbg "chapters file: $CHAPTERS_FILE" + + if [ "$(grep -wo "$CURRENT_SONG_FILE_EXT" <<< "$ENABLE_CHAPTERS_FOR_EXTENSIONS")" == "$CURRENT_SONG_FILE_EXT" ]; then + CHAPTER_SUPPORT_FOR_EXTENSION="1" + else + CHAPTER_SUPPORT_FOR_EXTENSION="0" + fi + dbg "chapters for extension enabled: $CHAPTER_SUPPORT_FOR_EXTENSION" + + + if [ "$(printf "${CURRENT_SONG_DURATION}\n${ENABLE_CHAPTERS_MIN_DURATION}\n" | sort -g | head -1)" == "${ENABLE_CHAPTERS_MIN_DURATION}" ]; then + CHAPTER_SUPPORT_FOR_DURATION="1" + else + CHAPTER_SUPPORT_FOR_DURATION="0" + fi + dbg "chapters for duration enabled: $CHAPTER_SUPPORT_FOR_DURATION" + + if [ "${CHAPTER_SUPPORT_FOR_EXTENSION}${CHAPTER_SUPPORT_FOR_DURATION}" == "11" ]; then + if ! [ -f "${CHAPTERS_FILE}" ]; then + CHAPTERS_COUNT="0" + dbg "chaptes file does not exist - export triggered" + ffprobe -i "${CURRENT_SONG_FILE_ABS}" -print_format json -show_chapters -loglevel error > "${CHAPTERS_FILE}" & + else + CHAPTERS_COUNT="$(grep '"id":' "${CHAPTERS_FILE}" | wc -l )" + dbg "chapters file does exist, chapter count: $CHAPTERS_COUNT" + fi -ENABLE_CHAPTERS_FOR_EXTENSIONS="mp4,m4a,m4b,m4r" -ENABLE_CHAPTERS_MIN_DURATION="600" - -function dbg { - if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then - echo "$1" >> ${PATHDATA}/../logs/debug.log; - fi -} - -function sec_to_ms() { - SECONDSPART="$(cut -d '.' -f 1 <<< "$1")" - MILLISECONDSPART="$(cut -d '.' -f 2 <<< "$1")" - MILLISECONDSPART_NORMALIZED="$(echo "$MILLISECONDSPART" | cut -c1-3 | sed 's/^0*//')" - - if [[ "" == "$SECONDSPART" ]]; then - SECONDSPART="0" - fi - - if [[ "" == "$MILLISECONDSPART_NORMALIZED" ]]; then - MILLISECONDSPART_NORMALIZED="0" - fi - echo "$((${SECONDSPART} * 1000 + ${MILLISECONDSPART_NORMALIZED}))" -} - -AUDIO_FOLDERS_PATH=$(cat "${PATHDATA}/../settings/Audio_Folders_Path") - -CURRENT_SONG_INFO=$(echo -e "currentsong\nclose" | nc -w 1 localhost 6600) -CURRENT_SONG_FILE=$(echo "$CURRENT_SONG_INFO" | grep -o -P '(?<=file: ).*') -CURRENT_SONG_FILE_ABS="${AUDIO_FOLDERS_PATH}/${CURRENT_SONG_FILE}" -dbg "current file: $CURRENT_SONG_FILE_ABS" - -CURRENT_SONG_DIR="$(dirname -- "$CURRENT_SONG_FILE_ABS")" -CURRENT_SONG_BASENAME="$(basename -- "${CURRENT_SONG_FILE_ABS}")" -CURRENT_SONG_FILE_EXT="${CURRENT_SONG_BASENAME##*.}" -CURRENT_SONG_ELAPSED=$(echo -e "status\nclose" | nc -w 1 localhost 6600 | grep -o -P '(?<=elapsed: ).*') -CURRENT_SONG_DURATION=$(echo -e "status\nclose" | nc -w 1 localhost 6600 | grep -o -P '(?<=duration: ).*') - -CHAPTERS_FILE="${CURRENT_SONG_DIR}/${CURRENT_SONG_BASENAME%.*}.chapters.json" -dbg "chapters file: $CHAPTERS_FILE" - -if [ "$(grep -wo "$CURRENT_SONG_FILE_EXT" <<< "$ENABLE_CHAPTERS_FOR_EXTENSIONS")" == "$CURRENT_SONG_FILE_EXT" ]; then - CHAPTER_SUPPORT_FOR_EXTENSION="1" -else - CHAPTER_SUPPORT_FOR_EXTENSION="0" -fi -dbg "chapters for extension enabled: $CHAPTER_SUPPORT_FOR_EXTENSION" + CHAPTER_START_TIMES="$( ( echo -e $CURRENT_SONG_ELAPSED & grep 'start_time' "$CHAPTERS_FILE" | cut -d '"' -f 4 | sed 's/000$//') | sort -V)" + ELAPSED_MATCH_CHAPTER_COUNT=$(grep "$CURRENT_SONG_ELAPSED" <<< "$CHAPTER_START_TIMES" | wc -l) + # elapsed and chapter start exactly match -> skip one line + if [ "$ELAPSED_MATCH_CHAPTER_COUNT" == "2" ]; then + PREV_CHAPTER_START=$(grep "$CURRENT_SONG_ELAPSED" -B 1 <<< "$CHAPTER_START_TIMES" | head -n1) + CURRENT_CHAPTER_START="$CURRENT_SONG_ELAPSED" + else + PREV_CHAPTER_START=$(grep "$CURRENT_SONG_ELAPSED" -B 2 <<< "$CHAPTER_START_TIMES" | head -n1) + CURRENT_CHAPTER_START=$(grep "$CURRENT_SONG_ELAPSED" -B 1 <<< "$CHAPTER_START_TIMES" | head -n1) + fi -if [ "$(printf "${CURRENT_SONG_DURATION}\n${ENABLE_CHAPTERS_MIN_DURATION}\n" | sort -g | head -1)" == "${ENABLE_CHAPTERS_MIN_DURATION}" ]; then - CHAPTER_SUPPORT_FOR_DURATION="1" -else - CHAPTER_SUPPORT_FOR_DURATION="0" -fi -dbg "chapters for duration enabled: $CHAPTER_SUPPORT_FOR_DURATION" - -if [ "${CHAPTER_SUPPORT_FOR_EXTENSION}${CHAPTER_SUPPORT_FOR_DURATION}" == "11" ]; then - if ! [ -f "${CHAPTERS_FILE}" ]; then - CHAPTERS_COUNT="0" - dbg "chaptes file does not exist - export triggered" - ffprobe -i "${CURRENT_SONG_FILE_ABS}" -print_format json -show_chapters -loglevel error > "${CHAPTERS_FILE}" & - else - CHAPTERS_COUNT="$(grep '"id":' "${CHAPTERS_FILE}" | wc -l )" - dbg "chapters file does exist, chapter count: $CHAPTERS_COUNT" - fi - - - CHAPTER_START_TIMES="$( ( echo -e $CURRENT_SONG_ELAPSED & grep 'start_time' "$CHAPTERS_FILE" | cut -d '"' -f 4 | sed 's/000$//') | sort -V)" - ELAPSED_MATCH_CHAPTER_COUNT=$(grep "$CURRENT_SONG_ELAPSED" <<< "$CHAPTER_START_TIMES" | wc -l) - - # elapsed and chapter start exactly match -> skip one line - if [ "$ELAPSED_MATCH_CHAPTER_COUNT" == "2" ]; then - PREV_CHAPTER_START=$(grep "$CURRENT_SONG_ELAPSED" -B 1 <<< "$CHAPTER_START_TIMES" | head -n1) - CURRENT_CHAPTER_START="$CURRENT_SONG_ELAPSED" - else - PREV_CHAPTER_START=$(grep "$CURRENT_SONG_ELAPSED" -B 2 <<< "$CHAPTER_START_TIMES" | head -n1) - CURRENT_CHAPTER_START=$(grep "$CURRENT_SONG_ELAPSED" -B 1 <<< "$CHAPTER_START_TIMES" | head -n1) - fi - - NEXT_CHAPTER_START=$(grep "$CURRENT_SONG_ELAPSED" -A 1 <<< "$CHAPTER_START_TIMES" | tail -n1) -fi + NEXT_CHAPTER_START=$(grep "$CURRENT_SONG_ELAPSED" -A 1 <<< "$CHAPTER_START_TIMES" | tail -n1) + fi -# SHUFFLE_STATUS=$(echo -e status\\nclose | nc -w 1 localhost 6600 | grep -o -P '(?<=random: ).*') + # SHUFFLE_STATUS=$(echo -e status\\nclose | nc -w 1 localhost 6600 | grep -o -P '(?<=random: ).*') +fi # END COMMANDS SHORTCUT case $COMMAND in shutdown) From 7523383ecc90bd06877785ebb36f263800a68cf8 Mon Sep 17 00:00:00 2001 From: s-martin Date: Sat, 2 Jan 2021 10:05:30 +0100 Subject: [PATCH 039/206] Ensure ALSA is installed (#1255) * Ensure ALSA is installed * Fixed typo * Added alsa to tests also --- scripts/installscripts/buster-install-default.sh | 2 +- scripts/installscripts/tests/test_installation.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/installscripts/buster-install-default.sh b/scripts/installscripts/buster-install-default.sh index b4b4f553f..07aaabde3 100755 --- a/scripts/installscripts/buster-install-default.sh +++ b/scripts/installscripts/buster-install-default.sh @@ -781,7 +781,7 @@ install_main() { ${apt_get} ${allow_downgrades} install raspberrypi-kernel-headers fi - ${apt_get} ${allow_downgrades} install samba samba-common-bin gcc lighttpd php7.3-common php7.3-cgi php7.3 at mpd mpc mpg123 git ffmpeg resolvconf spi-tools netcat + ${apt_get} ${allow_downgrades} install samba samba-common-bin gcc lighttpd php7.3-common php7.3-cgi php7.3 at mpd mpc mpg123 git ffmpeg resolvconf spi-tools netcat alsa-tools # restore backup of /etc/resolv.conf in case installation of resolvconf cleared it sudo cp /etc/resolv.conf.orig /etc/resolv.conf diff --git a/scripts/installscripts/tests/test_installation.sh b/scripts/installscripts/tests/test_installation.sh index 473cd6cf3..2b48b21e2 100755 --- a/scripts/installscripts/tests/test_installation.sh +++ b/scripts/installscripts/tests/test_installation.sh @@ -155,7 +155,7 @@ verify_apt_packages(){ local packages="libspotify-dev samba samba-common-bin gcc lighttpd php7.3-common php7.3-cgi php7.3 at mpd mpc mpg123 git ffmpeg resolvconf spi-tools python3 python3-dev python3-pip python3-mutagen python3-gpiozero -python3-spidev netcat" +python3-spidev netcat alsa-tools" # TODO apt-transport-https checking only on RPi is currently a workaround local packages_raspberrypi="apt-transport-https raspberrypi-kernel-headers" local packages_spotify="mopidy mopidy-mpd mopidy-local mopidy-spotify libspotify12 From ab02337fbaaba907655a22e07ad8ad8d0dca8ca5 Mon Sep 17 00:00:00 2001 From: s-martin Date: Sat, 2 Jan 2021 10:32:14 +0100 Subject: [PATCH 040/206] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e0defd681..fdafd81f5 100755 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ A contactless jukebox for the Raspberry Pi, playing audio files, playlists, podc ## Important updates / news -* **Discussions forums** we use Github's Discussions feature for a more forum style. Please ask questions there, bugs and enhancements should still be in issues; see here https://github.com/MiczFlor/RPi-Jukebox-RFID/discussions +* **Discussions forums** we use Github's Discussions feature for a more forum style. Please ask general questions in [Discussions](https://github.com/MiczFlor/RPi-Jukebox-RFID/discussions), bugs and enhancements should still be in [Issues](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues). * **Gitter Community** we got ourselves a gitter community; chat us up at https://gitter.im/phoniebox From 291122b73fb03f8793ada627019b411afeaa1fef Mon Sep 17 00:00:00 2001 From: ChrisSoc Date: Mon, 4 Jan 2021 20:09:28 +0100 Subject: [PATCH 041/206] Preparing new file structure --- .../{bt-headphones => bluetooth-sink-switch}/bt-sink-switch.py | 0 .../install-bt-sink-switch.sh | 0 .../{bt-headphones => control/bluetooth-buttons}/bt-buttons.py | 0 .../bluetooth-buttons}/install-bt-buttons.sh | 0 .../sampleconfigs}/phoniebox-bt-buttons.service.sample | 0 5 files changed, 0 insertions(+), 0 deletions(-) rename components/{bt-headphones => bluetooth-sink-switch}/bt-sink-switch.py (100%) rename components/{bt-headphones => bluetooth-sink-switch}/install-bt-sink-switch.sh (100%) rename components/{bt-headphones => control/bluetooth-buttons}/bt-buttons.py (100%) rename components/{bt-headphones => control/bluetooth-buttons}/install-bt-buttons.sh (100%) rename {components/bt-headphones => misc/sampleconfigs}/phoniebox-bt-buttons.service.sample (100%) diff --git a/components/bt-headphones/bt-sink-switch.py b/components/bluetooth-sink-switch/bt-sink-switch.py similarity index 100% rename from components/bt-headphones/bt-sink-switch.py rename to components/bluetooth-sink-switch/bt-sink-switch.py diff --git a/components/bt-headphones/install-bt-sink-switch.sh b/components/bluetooth-sink-switch/install-bt-sink-switch.sh similarity index 100% rename from components/bt-headphones/install-bt-sink-switch.sh rename to components/bluetooth-sink-switch/install-bt-sink-switch.sh diff --git a/components/bt-headphones/bt-buttons.py b/components/control/bluetooth-buttons/bt-buttons.py similarity index 100% rename from components/bt-headphones/bt-buttons.py rename to components/control/bluetooth-buttons/bt-buttons.py diff --git a/components/bt-headphones/install-bt-buttons.sh b/components/control/bluetooth-buttons/install-bt-buttons.sh similarity index 100% rename from components/bt-headphones/install-bt-buttons.sh rename to components/control/bluetooth-buttons/install-bt-buttons.sh diff --git a/components/bt-headphones/phoniebox-bt-buttons.service.sample b/misc/sampleconfigs/phoniebox-bt-buttons.service.sample similarity index 100% rename from components/bt-headphones/phoniebox-bt-buttons.service.sample rename to misc/sampleconfigs/phoniebox-bt-buttons.service.sample From cc011d98fe6f96ab6ae80032b23c824ba7fc24ed Mon Sep 17 00:00:00 2001 From: ChrisSoc Date: Mon, 4 Jan 2021 21:32:10 +0100 Subject: [PATCH 042/206] Increase functional robustness and adapt file locations --- .../bluetooth-sink-switch/bt-sink-switch.py | 132 ++++++--- .../install-bt-sink-switch.sh | 25 +- .../bt-buttons-register-device.py | 46 +++ .../control/bluetooth-buttons/bt-buttons.py | 280 ++++++++++++------ .../bluetooth-buttons/install-bt-buttons.sh | 27 +- htdocs/settings.php | 4 +- .../phoniebox-bt-buttons.service.sample | 6 +- scripts/playout_controls.sh | 2 +- scripts/startup-scripts.sh | 14 +- 9 files changed, 372 insertions(+), 164 deletions(-) create mode 100755 components/control/bluetooth-buttons/bt-buttons-register-device.py diff --git a/components/bluetooth-sink-switch/bt-sink-switch.py b/components/bluetooth-sink-switch/bt-sink-switch.py index cf0e58c6a..495b725d0 100755 --- a/components/bluetooth-sink-switch/bt-sink-switch.py +++ b/components/bluetooth-sink-switch/bt-sink-switch.py @@ -1,29 +1,55 @@ #!/usr/bin/env python3 -# -*- coding: utf-8 -*- """ -Created on Tue Dec 8 17:39:01 2020 - -Provides btSwitch (see below) as function and callable script +Provides bt_switch (see below) as function and callable script If called as script, configure led_pin according to your set-up -@author: chris +Usage: +$ bt-sink-switch cmd [debug] + cmd = toggle|speakers|headphones : select audio target + debug : enable debug logging """ import sys import re import subprocess +import logging # If called as script, this variable will set GPIO number of the LED to reflect sink status # Uses BCM GPIO numbering, i.e. 'led_pin = 6' means GPIO6 # Set 'led_pin=None' to disable LED support (and no GPIO pin is blocked in this case) -led_pin = None +# led_pin = None +led_pin = 6 + +# Create logger +logger = logging.getLogger('bt-sink-switch.py') +logger.setLevel(logging.DEBUG) +# Create console handler and set default level +logconsole = logging.StreamHandler() +logconsole.setFormatter(logging.Formatter('%(asctime)s - %(name)s - %(levelname)s: %(message)s', datefmt='%d.%m.%Y %H:%M:%S')) +logconsole.setLevel(logging.INFO) +logger.addHandler(logconsole) + -def btUsage(sname): +def bt_usage(sname): + """Print usage, if module is called as script""" print("Usage") - print(" ./" + sname + "[ toggle | speakers | headphones]") - -def btSwitch(cmd, led_pin=None): + print(" ./" + sname + " toggle | speakers | headphones [debug]") + + +def bt_check_mpc_err() -> None: + """Error check on mpd output stream and attempt to recover previous state""" + logger.debug("bt_check_mpc_err()") + mpcproc = subprocess.run("mpc status", shell=True, check=False, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + logger.debug(mpcproc.stdout) + # grep for this expression: 'ERROR: Failed to open audio output' + mpcerr = re.search(b"ERROR:.*output", mpcproc.stdout) + if mpcerr is not None: + mpcplay = subprocess.run("mpc play", shell=True, check=False, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + logger.debug(mpcplay) + + +def bt_switch(cmd, led_pin=None): """ Set/Toggle between regular speakers and headphone output. If no bluetooth device is connected, always defaults to mpc output 1 @@ -68,72 +94,94 @@ def btSwitch(cmd, led_pin=None): Parameters ---------- - cmd : string - toggle | speakers | headphones - - led_pin : integer - GPIO pin number of LED to reflect output status. If None, LED support is disabled (and no GPIO pin is blocked) - """ + :param cmd: string is "toggle" | "speakers" | "headphones" + :param led_pin: integer with GPIO pin number of LED to reflect output status. If None, LED support is disabled (and no GPIO pin is blocked) + """ # Check for valid command if cmd != "toggle" and cmd != "speakers" and cmd != "headphones": - print("Error: Invalid command. Doing nothing.") + logger.error("Invalid command. Doing nothing.") return - + # Rudimentary check if LED pin request is valid GPIO pin number if led_pin is not None: if led_pin < 2 or led_pin > 27: led_pin = None - print("- ERROR: Invalid led_pin. Ignoring led_pin = " + str(led_pin), file=sys.stderr) - + logger.error("Invalid led_pin. Ignoring led_pin = " + str(led_pin)) + if led_pin is not None: # Set-up GPIO LED pin if not already configured. If it already exists, sanity check direction of pin before use try: with open("/sys/class/gpio/gpio" + str(led_pin) + "/direction") as f: if f.readline(3) != "out": - print("- ERROR: LED pin already in use with direction 'in'. Ignoring led_pin = " + str(led_pin), file=sys.stderr) + logger.error("LED pin already in use with direction 'in'. Ignoring led_pin = " + str(led_pin)) led_pin = None - except: + except FileNotFoundError: # GPIO direction file does not exist -> pin is not configured. Set it up (sleep is necessary!) - subprocess.run("echo " + str(led_pin) + " > /sys/class/gpio/export; \ + proc = subprocess.run("echo " + str(led_pin) + " > /sys/class/gpio/export; \ sleep 0.1; \ - echo out > /sys/class/gpio/gpio" + str(led_pin) + "/direction", shell=True, check=False) - + echo out > /sys/class/gpio/gpio" + str(led_pin) + "/direction", shell=True, check=False, + stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + logger.debug(proc.stdout) + # Figure out if output 1 (speakers) is enabled - isSpeakerOn_console = subprocess.run("mpc outputs", shell=True, check=False, capture_output=True) + isSpeakerOn_console = subprocess.run("mpc outputs", shell=True, check=False, stdout=subprocess.PIPE, + stderr=subprocess.STDOUT) + logger.debug(isSpeakerOn_console.stdout) isSpeakerOn = re.search(b"1.*enabled", isSpeakerOn_console.stdout) # Figure out if a bluetooth device is connected (any device will do). Assume here that only speakers/headsets will be connected # -> No need for user to adapt MAC address # -> will actually support multiple speakers/headsets paired to the phoniebox # Alternative: Check for specific bluetooth device only with "bluetoothctl info MACADDRESS" - isBtConnected_console = subprocess.run("bluetoothctl info", shell=True, check=False, capture_output=True) - isBtConnected = re.search(b"Connected:\s+yes", isBtConnected_console.stdout) - - if ((cmd == "toggle" and isSpeakerOn) or (cmd == "headphones")): + isBtConnected_console = subprocess.run("bluetoothctl info", shell=True, check=False, stdout=subprocess.PIPE, + stderr=subprocess.STDOUT) + logger.debug(isBtConnected_console.stdout) + isBtConnected = re.search(b"Connected:\s+yes", isBtConnected_console.stdout) + + if (cmd == "toggle" and isSpeakerOn) or (cmd == "headphones"): # Only switch to BT headphones if they are actually connected if isBtConnected: print("Switched audio sink to \"Output 2\"") - subprocess.run("mpc enable only 2", shell=True, check=False, capture_output=True); + # With mpc enable only 2, output 1 gets disabled before output 2 gets enabled causing a stream output fail + # This order avoids the issue + proc = subprocess.run("mpc enable 2; sleep 0.1; mpc disable 1", shell=True, check=False, + stdout=subprocess.PIPE, stderr=subprocess.STDOUT); + logger.debug(proc.stdout) + # Yet, in some cases, a stream error still occurs: check and recover + bt_check_mpc_err() if led_pin is not None: - subprocess.run("echo 1 > /sys/class/gpio/gpio" + str(led_pin) + "/value", shell=True, check=False) + proc = subprocess.run("echo 1 > /sys/class/gpio/gpio" + str(led_pin) + "/value", shell=True, + check=False, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + logger.debug(b'LED on: ' + proc.stdout) return - else: + else: print("No bluetooth device connected. Defaulting to \"Output 1\".") if led_pin: sleeptime = 0.25 - for i in range(0,3): - subprocess.run("echo 1 > /sys/class/gpio/gpio" + str(led_pin) + "/value; sleep " + str(sleeptime) + "; echo 0 > /sys/class/gpio/gpio" + str(led_pin) + "/value; sleep " + str(sleeptime), shell=True, check=False) + for i in range(0, 3): + subprocess.run("echo 1 > /sys/class/gpio/gpio" + str(led_pin) + "/value; sleep " + str( + sleeptime) + "; echo 0 > /sys/class/gpio/gpio" + str(led_pin) + "/value; sleep " + str( + sleeptime), shell=True, check=False, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) # Default: Switch to Speakers print("Switched audio sink to \"Output 1\"") - subprocess.run("mpc enable only 1", shell=True, check=False, capture_output=True); + # mpc only 1 always enables 1 first, avoiding any intermediate state with no valid output stream + proc = subprocess.run("mpc enable only 1", shell=True, check=False, stdout=subprocess.PIPE, + stderr=subprocess.STDOUT); + logger.debug(proc.stdout) + # Yet, in some cases, a stream error still occurs: check and recover + bt_check_mpc_err() if led_pin: - subprocess.run("echo 0 > /sys/class/gpio/gpio" + str(led_pin) + "/value", shell=True, check=False) + proc = subprocess.run("echo 0 > /sys/class/gpio/gpio" + str(led_pin) + "/value", shell=True, check=False, + stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + logger.debug(b'LED off: ' + proc.stdout) if __name__ == "__main__": - if len(sys.argv) == 2: - btSwitch(sys.argv[1], led_pin) - else: - btUsage(sys.argv[0]) - + if len(sys.argv) == 3: + logconsole.setLevel(logging.DEBUG) + + if 2 <= len(sys.argv) <= 3: + bt_switch(sys.argv[1], led_pin) + else: + bt_usage(sys.argv[0]) diff --git a/components/bluetooth-sink-switch/install-bt-sink-switch.sh b/components/bluetooth-sink-switch/install-bt-sink-switch.sh index 036b0240b..e18f3b67c 100755 --- a/components/bluetooth-sink-switch/install-bt-sink-switch.sh +++ b/components/bluetooth-sink-switch/install-bt-sink-switch.sh @@ -25,7 +25,7 @@ USER=`whoami` SCRPATH=`pwd` # Ensure script is executable for everyone -sudo chmod ugo+x $FILE +sudo chmod ugo+rx $FILE # Make sure required packages are installed echo -e "\nChecking bluetooth packages" @@ -36,22 +36,17 @@ echo -e "\nSetting up user rights" sudo usermod -G bluetooth -a www-data sudo usermod -G bluetooth -a ${USER} -# Default to speaker sink after boot -STARTUP=../../scripts/startup-scripts.sh -STARTEXISTS=0 -if [ -f ${STARTUP} ]; then - # Check if script is already registed with startup-scripts.sh - STARTEXISTS=`grep -c ${FILE} ${STARTUP}` -fi -if [ "${STARTEXISTS}" = 0 ]; then - echo -e "\nRegistering start-up script" - echo -e "\n#Default audio sink to speakers irrespective of setting at shutdown" >> $STARTUP - echo -e "${SCRPATH}/bt-sink-switch.py speakers\n" >> $STARTUP -fi +# Add www-data to allow gpio control (for LED support) +sudo usermod -G gpio -a www-data # Let global controls know this feature is enabled -CONFFILE=../../settings/BtHeadphoneIntegration -echo "ON" > ${CONFFILE} +echo -e "\nLet global controls know this feature is enabled" +CONFFILE=../../settings/bluetooth-sink-switch +echo "enabled" > ${CONFFILE} +chmod ugo+rw ${CONFFILE} + +# Restart web service to take notice of new user rights +sudo systemctl restart lighttpd.service # Final notes echo -e "\n\n\nIMPORTANT NOTE:\nPlease modify ${FILE} around line 20 for\n led_pin=None\nto configure LED pin-out.\n Do nothing to leave it disabled." diff --git a/components/control/bluetooth-buttons/bt-buttons-register-device.py b/components/control/bluetooth-buttons/bt-buttons-register-device.py new file mode 100755 index 000000000..73c82244a --- /dev/null +++ b/components/control/bluetooth-buttons/bt-buttons-register-device.py @@ -0,0 +1,46 @@ +#!/usr/bin/env python3 +""" +Presents available input devices to user for selection of bluetooth device +""" + +import evdev as ev +import os.path + +# Filename for storing the device name, relative to this script's location +filename_device_selection = '../../../settings/bluetooth-input-device-name.txt' + + +def bt_register_device(filename) -> str: + """Presents available input devices to user for selection of bluetooth device + + Selected device name is stored in 'filename' + + :param filename: Filename for storing the device name, relative to this script's location + :return str: Selected device name + """ + sq = input("Ensure bluetooth devices is turned on and connected. Ready? [Y/n] ") + if sq != "Y" and sq != "y" and sq != "": + print("Exiting ...") + return '' + + all_devices = [ev.InputDevice(path) for path in ev.list_devices()] + if len(all_devices) == 0: + print("#" * 60) + print("# NO INPUT DEVICES FOUND!") + print("#" * 60) + print("Exiting ...") + return '' + + for idx in range(len(all_devices)): + print(f"{str(idx)}: {all_devices[idx].name}") + devid = int(input("Device number: ")) + + filename_abs = os.path.dirname(os.path.realpath(__file__)) + '/' + filename + with open(filename_abs, 'w') as f: + f.write(all_devices[devid].name) + + return all_devices[devid].name + + +if __name__ == '__main__': + bt_register_device(filename_device_selection) diff --git a/components/control/bluetooth-buttons/bt-buttons.py b/components/control/bluetooth-buttons/bt-buttons.py index 1bbf40112..d079ae510 100755 --- a/components/control/bluetooth-buttons/bt-buttons.py +++ b/components/control/bluetooth-buttons/bt-buttons.py @@ -1,104 +1,194 @@ #!/usr/bin/env python3 +""" +Enable Bluetooth Headphone/Speaker Buttons for Music Control -from evdev import InputDevice, categorize, ecodes -from subprocess import check_call +Script will listen to headphone button press events and call appropriate Phoniebox control function +If no headset is connected, it will endlessly check headset connection status every 2 seconds. + +Should be run as service. For debug can be run directly from console with additional debug output: + $ ./bt-buttons.py debug + +- Run install-bt-buttons.sh to configure user rights, service etc (will also run bt-buttons-register-device.py) +- Run bt-buttons-register-device.py with headphones connected to select bluetooth input device + +This script has been tested with the following headsets: PowerLocus Buddy, Sennheiser Momentum M2 AEBT +""" +import evdev as ev +import logging +import subprocess import time +import sys +import os.path + + +# Filename with stored device name, relative to this script's location +filename_device_selection = '../../../settings/bluetooth-input-device-name.txt' +# Filename to read bt-sink-switch / mpd support from +# See components/bluetooth-audio-toggle for more information +filename_mpd_switch_feature = '../../../settings/bluetooth-sink-switch' + + +# Button key codes +bt_keycode_play = 200 +bt_keycode_pause = 201 +bt_keycode_next = 163 +bt_keycode_prev = 165 + + +# Create logger +logger = logging.getLogger('bt-buttons.py') +logger.setLevel(logging.DEBUG) +# Create console handler and set level to debug +logconsole = logging.StreamHandler() +logconsole.setFormatter(logging.Formatter('%(asctime)s - %(name)s - %(levelname)s: %(message)s', datefmt='%d.%m.%Y %H:%M:%S')) +logconsole.setLevel(logging.DEBUG) +logger.addHandler(logconsole) -# Enable Bluetooth Headphone Buttons for Music Control -# Script will listen to headphone button press events and call approriate phonibox control function -# If no headset is connected, it will endlessly check headset connection status every 3 seconds. - - -# Step 1: Find out which event the bluetooth headset is connected to. -# It will be an input event device: /dev/input/eventX -# Make sure it is connected first and you can playback music :-) Follow the excellent instructions in the wiki -# -# Option 1) cat /proc/bus/input/devices -# In my case the bluetooth headset is listed under its MAC address -# Option 2) Disconnect headset, show >ls /dev/input -# Connect headset , show >ls /dev/input, analyze the difference -# -# Step 2: Test the event -# > cat /dev/input/event1 -# Press some buttons on the headset. Not all buttons will be forwarded, e.g. vol up/down may also be handled only in the headset. -# Try also long/short press -# The output will look wired. Don't worry - the important thing is that you are seeing something on the console -# -# Step 3: Figure out the key mappings -# In this script adapt the EVTDEV constant to fit your input event device -# Call this script directly from command the line (make sure it does not run as a service, if you already used the install script: >sudo systemctl stop phoniebox-bt-buttons) -# >./bt-buttons.py -# Press a button on the headset. The script will output a log like this -# -# key event at 1600886330.107993, 201 (KEY_PAUSECD), up -# -# The "201" is the keycode, you are looking for. Go through all the buttons. Also try short/long press. On my headphones, they result in different keycodes -# -# Step 4: Adjust this script with keycodes (and behavior) -# If you are only looking for the play/pause/next/prev, simply adapt the keycodes below -# If you have more buttons than I have, you may extend the if-else clause towards the end of the script. -# To add new ctrl functions, check out playout_controls.sh for available commands -# -# This script has been tested with the following headset: PowerLocus Buddy -# -# Note: -# (a) If the event device does not exist, this script will not throw an error. (You will see no output if things dont work!) -# But continue checking if that event will appear at some time, i.e. which will happen if the headset gets connected. -# So if nothing happens, make sure you have the right event device listed here. -# (b) This script assumes a constant /dev/input/eventX to headset mapping, which is not globally given. -# But in a stable raspberry pi setup it will be constant, if no input devices are added/removed (especially in any order) -# -# Possible future feature enhancements -# Use cat /proc/bus/input/devices first to find correct eventX to headset mapping -# -# If you want this script to run automatically as service after booting do this: -# The easy way: -# run the install script -# The hard way: -# Adjust directory paths in phoniebox-bt-buttons.service.sample -# sudo cp phoniebox-bt-buttons.service.sample /etc/systemd/system/phoniebox-bt-buttons.service -# sudo chown root:root /etc/systemd/system/phoniebox-bt-buttons.service -# sudo chmod 644 /etc/systemd/system/phoniebox-bt-buttons.service -# sudo systemctl enable phoniebox-bt-buttons.service -# -# Troubleshooting -# If buttons fail to work after reboot, take a look into the boot messages to analyze the service messages -# >journalctl -b -u phoniebox-bt-buttons.service -# Check with >bluetoothctl info, if the headset is connected, play some music to be sure. Check /dev/input/eventX exists and check >cat /proc/bus/input/devices -# Then go back to starting the script in the console and take a look at the messages (stop the service first) - -BTNPLAY = 200 -BTNPAUSE = 201 -BTNNEXT = 163 -BTNPREV = 165 - -EVTDEV='/dev/input/event0' - -def btkeyhandler(): - # Try to open the event device - dev = InputDevice(EVTDEV) - print(dev) + +def bt_on_disconnect(mpd_support=0) -> None: + """Executed on Bluetooth device disconnect + + Default: Switch output device to speakers + Disconnecting the Bluetooth device during playback causes an error with mpd + as it suddenly has no more output stream. Error state is checked and previous state recovery is attempted to + provide smooth transistion to speakers automatically by bt-sink-switch.py + :param mpd_support: Indicates if bluetooth sink switch feature using mpd is enabled + """ + logger.info("on disconnect") + if mpd_support: + pctproc = subprocess.run(f"{os.path.dirname(os.path.realpath(__file__))}/../../../scripts/playout_controls.sh -c=bluetoothtoggle -v=speakers", shell=True, check=False, + stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + logger.debug(pctproc.stdout) + + +def bt_on_connect(mpd_support=0) -> None: + """Executed on Bluetooth device connect + + Default: Switch output device to Bluetooth device + Note: During bootup, if bluetooth device gets connected before the service for this script is started, this function + will still be executed + :param mpd_support: Indicates if bluetooth sink switch feature using mpd is enabled + """ + logger.info("on connect") + if mpd_support: + pctproc = subprocess.run(f"{os.path.dirname(os.path.realpath(__file__))}/../../../scripts/playout_controls.sh -c=bluetoothtoggle -v=headphones", shell=True, check=False, + stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + logger.debug(pctproc.stdout) + + +def bt_get_device_name(filename) -> str: + """Gets the bluetooth device name from config file""" + logger.debug(f"bt_get_device_name looking for '{filename}'") + try: + with open(filename) as f: + devname: str = f.readline().strip() + except Exception as e: + logger.critical("#" * 60) + logger.critical(f"Error opening file '{filename}'. Please run registerBluetoothInput.py first!") + logger.critical(f"Exception: {e.__class__.__name__}") + logger.critical("#" * 60) + raise e + logger.debug(f"bt_get_device_name() -> {devname}") + return devname + + +def bt_get_mpd_support(filename) -> int: + """Checks if bluetooth switch feature is enabled""" + logger.debug(f"bt_get_mpd_support looking for '{filename}'") + try: + with open(filename) as f: + mpdsupport = f.readline().strip().lower() + except PermissionError: + mpdsupport = '' + except FileNotFoundError: + mpdsupport = '' + logger.debug(f"file read out '{mpdsupport}'") + if mpdsupport == 'enabled': + logger.debug("bt_get_mpd_support result is ON") + return 1 + logger.debug("bt_get_mpd_support result is OFF") + return 0 + + +def bt_open_device(name) -> ev.InputDevice: + """Tries to open bluetooth device, raises error if not available to be handled up-level""" + all_devices = [ev.InputDevice(path) for path in ev.list_devices()] + for dev in all_devices: + if dev.name == name: + logger.debug(f"bt_open_device({name}): Device '{name}' search success") + break + else: + # No device found, don't log to prevent log file spamming + # logger.error(f"bt_open_device({name}): Device '{name}' not found") + raise FileNotFoundError + return dev + + +def bt_key_handler(name, mpd_support=0) -> None: + """Actual key handler, once bluetooth device is connected""" + # Try to open the event device, will exit with exception on fail + dev = bt_open_device(name) + logger.debug(dev) + bt_on_connect(mpd_support) + path = os.path.dirname(os.path.realpath(__file__)) # Infinite loop reading the events. Will fail, if event device gets disconnected for event in dev.read_loop(): - if event.type == ecodes.EV_KEY: + if event.type == ev.ecodes.EV_KEY: # Report the button event - print(categorize(event)) + logger.debug(ev.categorize(event)) # Only act on button press, not button release if event.value == 1: - if event.code == BTNPLAY: - check_call("../../scripts/playout_controls.sh -c=playerpause", shell=True) - elif event.code == BTNPAUSE: - check_call("../../scripts/playout_controls.sh -c=playerpause", shell=True) - elif event.code == BTNNEXT: - check_call("../../scripts/playout_controls.sh -c=playernext", shell=True) - elif event.code == BTNPREV: - check_call("../../scripts/playout_controls.sh -c=playerprev", shell=True) - -while True: - try: - btkeyhandler() - break - except FileNotFoundError: - # Sleeping in long intervalls when headset is not connected - time.sleep(3) - + if event.code == bt_keycode_play: + proc = subprocess.run(f"{path}/../../../scripts/playout_controls.sh -c=playerpause", shell=True, check=False, + stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + elif event.code == bt_keycode_pause: + proc = subprocess.run(f"{path}/../../../scripts/playout_controls.sh -c=playerpause", shell=True, check=False, + stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + elif event.code == bt_keycode_next: + proc = subprocess.run(f"{path}/../../../scripts/playout_controls.sh -c=playernext", shell=True, check=False, + stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + elif event.code == bt_keycode_prev: + proc = subprocess.run(f"{path}/../../../scripts/playout_controls.sh -c=playerprev", shell=True, check=False, + stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + logger.debug(proc.stdout) + if proc.returncode != 0: + logger.error("#" * 60) + logger.error(f"In subprocess execution (retcode = {str(proc.returncode())})") + logger.error(proc.stdout) + logger.error("#" * 60) + + +def bt_loop(filename_device_selection, filename_mpd_switch_feature, sleeptime=2) -> None: + """Main loop for watching bluetooth device to connect, then call bt_key_handler + + Constantly checks for bluetooth device to connect by calling bt_key_handler() + On bluetooth device connect bt_on_connect will be executed + On bluetooth device disconnect bt_on_disconnect will be executed + + :param filename_mpd_switch_feature: Filename with stored device name, relative to this script's location + :param filename_device_selection: Filename with bluetooth sink switch configuration, relative to this script's location + :param sleeptime: Time to sleep between bluetooth device connection checks + :return: + """ + path = os.path.dirname(os.path.realpath(__file__)) + filename = path + '/' + filename_device_selection + name = bt_get_device_name(filename) + filename = path + '/' + filename_mpd_switch_feature + mpd_support = bt_get_mpd_support(filename) + logger.debug('Waiting for first connect of Bluetooth device') + while True: + try: + bt_key_handler(name, mpd_support) + except FileNotFoundError: + # This error occurs, if opening the bluetooth input device fails + time.sleep(sleeptime) + except OSError: + # This error occurs, when the already opened bluetooth device suddenly gets disconnected + bt_on_disconnect(mpd_support) + time.sleep(sleeptime) + + +if __name__ == '__main__': + if len(sys.argv) == 2: + logconsole.setLevel(logging.DEBUG) + bt_loop(filename_device_selection, filename_mpd_switch_feature, sleeptime=2) diff --git a/components/control/bluetooth-buttons/install-bt-buttons.sh b/components/control/bluetooth-buttons/install-bt-buttons.sh index 21eaf96b5..9c98fa2a7 100755 --- a/components/control/bluetooth-buttons/install-bt-buttons.sh +++ b/components/control/bluetooth-buttons/install-bt-buttons.sh @@ -1,7 +1,9 @@ #!/bin/bash -# Check that script is called from source directory FILE=bt-buttons.py +REGFILE=bt-buttons-register-device.py + +# Check that script is called from source directory if [ ! -f "$FILE" ]; then echo -e "Error: Install script must be started from source directoy of bt-headphones!" exit -1 @@ -10,10 +12,14 @@ fi USER=`whoami` SCRPATH=`pwd` +chmod ugo+rx ${FILE} +chmod ugo+rx ${REGFILE} + # Configuring service file echo -e "\nConfiguring service" -sed "s@WorkingDirectory.*@WorkingDirectory=${SCRPATH}@g" phoniebox-bt-buttons.service.sample > phoniebox-bt-buttons.service.configured -sed -i "s@ExecStart.*@ExecStart=${SCRPATH}/${FILE} > /dev/null@g" phoniebox-bt-buttons.service.configured +SERVICESAMPLE=../../../misc/sampleconfigs/phoniebox-bt-buttons.service.sample +sed "s@WorkingDirectory.*@WorkingDirectory=${SCRPATH}@g" ${SERVICESAMPLE} > phoniebox-bt-buttons.service.configured +sed -i "s@ExecStart.*@ExecStart=${SCRPATH}/${FILE}@g" phoniebox-bt-buttons.service.configured # Install service and enable it SSRC=phoniebox-bt-buttons.service.configured @@ -23,8 +29,19 @@ sudo mv -f ${SSRC} ${SDST} sudo chown root:root ${SDST} sudo chmod 644 ${SDST} sudo systemctl enable phoniebox-bt-buttons.service + + +# Call the register-device script +# Do this last, so that user can re-run abortive device registration without having to run the installer again +echo -e "\n\n*******************************************************************" +echo -e "Will try to register bluetooth input device. If this fails, you can re-start the device registration by calling \n $ ./${REGFILE}" +echo -e "Don't forget to reboot or restart the phoniebox-bt-buttons.service afterwards!" +echo -e "*******************************************************************\n\n" +./${REGFILE} + +# Start the service for immediate use sudo systemctl start phoniebox-bt-buttons.service # Final notes -echo -e "\n\nIMPORTANT NOTE:\nThis feature requires a certain amount of customization to each headset. Check out $FILE for details." -echo -e "If experimenting with the script make sure the service is stopped:\n sudo systemctl stop phoniebox-bt-buttons.service\n\n" +echo -e "\n\nIMPORTANT NOTE:\nThis feature MAY require a certain amount of customization to some headsets. Check out the README.md for details." +echo -e "\n\nEverything is set up now and should work now. In case of doubt, reboot!\n\n" diff --git a/htdocs/settings.php b/htdocs/settings.php index d6358f733..ab5e1f3ea 100755 --- a/htdocs/settings.php +++ b/htdocs/settings.php @@ -128,9 +128,9 @@ /dev/null +WorkingDirectory=/home/pi/RPi-Jukebox-RFID/components/control/bluetooth-buttons +ExecStart=/home/pi/RPi-Jukebox-RFID/components/control/bluetooth-buttons/bt-buttons.py [Install] WantedBy=multi-user.target diff --git a/scripts/playout_controls.sh b/scripts/playout_controls.sh index 59e6a7bd5..a55697cb4 100755 --- a/scripts/playout_controls.sh +++ b/scripts/playout_controls.sh @@ -997,7 +997,7 @@ case $COMMAND in ;; bluetoothtoggle) if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi - $PATHDATA/../components/bt-headphones/bt-sink-switch.py $VALUE + $PATHDATA/../components/bluetooth-sink-switch/bt-sink-switch.py $VALUE ;; *) echo Unknown COMMAND $COMMAND VALUE $VALUE diff --git a/scripts/startup-scripts.sh b/scripts/startup-scripts.sh index 503c165cf..a32f17be7 100755 --- a/scripts/startup-scripts.sh +++ b/scripts/startup-scripts.sh @@ -41,7 +41,7 @@ while [ "$STATUS" != "ACTIVE" ]; do STATUS=$(echo -e status\\nclose | nc -w 1 lo # play startup sound mpgvolume=$((32768*${AUDIOVOLSTARTUP}/100)) echo "${mpgvolume} is the mpg123 startup volume" -/usr/bin/mpg123 -f -${mpgvolume} /home/pi/RPi-Jukebox-RFID/shared/startupsound.mp3 +#/usr/bin/mpg123 -f -${mpgvolume} /home/pi/RPi-Jukebox-RFID/shared/startupsound.mp3 ####################### # re-scan music library @@ -52,3 +52,15 @@ mpc rescan if [ "${READWLANIPYN}" == "ON" ]; then /home/pi/RPi-Jukebox-RFID/scripts/playout_controls.sh -c=readwifiipoverspeaker fi + +####################### +# Default audio sink to speakers (instead of bluetooth device) irrespective of setting at shutdown +if [ -f $PATHDATA/../settings/bluetooth-sink-switch ]; then + BTSINKSWITCH=`cat $PATHDATA/../settings/bluetooth-sink-switch` + if [ "${BTSINKSWITCH}" == "enabled" ]; then + $PATHDATA/../components/bluetooth-sink-switch/bt-sink-switch.py speakers + fi +fi + + + From 8101e9dacb10626d061ecffa93f806b93e056c11 Mon Sep 17 00:00:00 2001 From: ChrisSoc Date: Mon, 4 Jan 2021 22:11:31 +0100 Subject: [PATCH 043/206] Add Readme --- .../control/bluetooth-buttons/README.md | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 components/control/bluetooth-buttons/README.md diff --git a/components/control/bluetooth-buttons/README.md b/components/control/bluetooth-buttons/README.md new file mode 100644 index 000000000..28c141fd9 --- /dev/null +++ b/components/control/bluetooth-buttons/README.md @@ -0,0 +1,82 @@ +## Contol Phoniebox via Buttons from Bluetooth Headset + +Many bluetooth headsets or bluetooth speaker sets have buttons for controlling the music stream. **Let's make use of them!** +This component provides support for controlling your Phoniebox through these buttons on your bluetooth headset (or speaker set). + +### Installation + +1. Make sure your bluetooth headset is connected to the Phoniebox. Follow the instructions in the [Wiki](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Bluetooth). +2. Execute `$ ./install-bt-buttons.sh. It will ask you to identify your headset and set up appropriate user rights, and registers the script as a service. It should work immediatly. In case of doubt, reboot. + - If later changing the headset, re-run `$ ./register-device.py`. Reboot or restart the service with `sudo systemctl restart phoniebox-bt-buttons.service ` + +### Supported Buttons + +Out-of-the box support is included for the following buttons + +- Play/Pause +- Previous Track +- Next Track + +Key codes are standarized and so it should also work with your headphones. If you want to add more keys or assign a different behaviour see [Troubleshooting](#troubleshooting) + +*Note:* Volume up/down is inherently supported by the bluetooth protocol. There is no need to handle these by this script. + +### On Connect / On Disconnect + +If the feature [bluetooth-sink-switch](../../bluetooth-sink-switch) is enabled, the script automatically switches the audio stream to headphones / regular speakers on bluetooth connect / disconnect respectivly. Playback state (play/pause) is retained. + +*Note:* On-connect actions may take up to 4 seconds - please be patient (bluetooth connection is only checked every two seconds, bluetooth stream needs to be buffered, etc...) + +You can **customize** the behaviour by editing the functions + +- `bt_on_connect(mpd_support=0)` +- `bt_on_disconnect(mpd_support=0)` + +where `mpd_support` indicates wether the bt-sink-switch-feature is enabled. + +### Troubleshooting + +This feature has been tested with PowerLocus Buddy and Sennheiser Momentum M2 AEBT headphones. + +#### Preparation + +- Stop the service `$ sudo systemctl stop phoniebox-bt-buttons.service` +- Start the script in a command line with debug option `$ ./bt-buttons.py debug` + +#### Check that correct bluetooth device is found + +- Run the [preparatory steps](#preparation) +- Check headset is connected and listed as input event device with `$ cat /proc/bus/input/devices`. Note the device name. +- In the script's debug output you should see something like this. Here the MAC address is the device name +~~~ +30.12.2020 21:44:41 - bt-buttons.py - DEBUG: bt_get_device_name() -> C4:FB:20:63:A7:F2 +30.12.2020 21:45:05 - bt-buttons.py - DEBUG: bt_open_device(C4:FB:20:63:A7:F2): Device 'C4:FB:20:63:A7:F2' search success +30.12.2020 21:45:05 - bt-buttons.py - DEBUG: device /dev/input/event1, name "C4:FB:20:63:A7:F2", phys "" +~~~ + +- If you see discrepancies, re-run `$ ./register-device.py`(see above) + +#### Add key codes / change actions +- Run the [preparatory steps](#preparation) +- Press the buttons on the headset and check for these debug outputs. Note down the keycode. The **163** is the keycode, you are looking for. Go through all the buttons. Also try short/long press. On my headphones, they result in different keycodes +``` +30.12.2020 21:45:59 - bt-buttons.py - DEBUG: key event at 1609361159.529679, 163 (KEY_NEXTSONG), down +``` +- Go into the source code and adjust these lines for desired behaviour +~~~python + if event.code == bt_keycode_play: + proc = subprocess.run(f"{path}/../../../scripts/playout_controls.sh -c=playerpause", shell=True, check=False, + stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + elif event.code == bt_keycode_pause: + proc = subprocess.run(f"{path}/../../../scripts/playout_controls.sh -c=playerpause", shell=True, check=False, + stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + +~~~ + +#### Still having trouble? +Check the basics: test the event input. Make sure the headphones are connected beforehand. Replace event*X* with the event number obtained from `$ cat /proc/bus/input/devices`. + +```$ cat /dev/input/eventX``` + +Press some buttons on the headset. Not all buttons will be forwarded, e.g. vol up/down may also be handled only in the headset. + Try also long/short press. The output will look wired. Don't worry - the important thing is that you are seeing something on the console. Now go back to [Troubleshooting](#troubleshooting). \ No newline at end of file From 7e38d76763521ca640d1ede26b88de0f26bc0265 Mon Sep 17 00:00:00 2001 From: Schneelocke Date: Thu, 3 Dec 2020 23:29:25 +0100 Subject: [PATCH 044/206] Improve performance in player.php by avoiding system calls --- htdocs/api/common.php | 14 ++++++++++++++ htdocs/api/player.php | 33 +++++++++++++++++++++++---------- 2 files changed, 37 insertions(+), 10 deletions(-) diff --git a/htdocs/api/common.php b/htdocs/api/common.php index 7955989c7..3089b5472 100755 --- a/htdocs/api/common.php +++ b/htdocs/api/common.php @@ -36,7 +36,21 @@ function execSuccessfully($command) { echo "Execution failed\nCommand: {$command}\nOutput: {$formattedOutput}\nRC: .${rc}"; http_response_code(500); exit(); + } + return $output; +} + +function execMPDCommand($command) { + $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); + $stream = socket_connect($socket,"localhost" ,6600); + socket_write($socket, $command, strlen($command)); + socket_shutdown ($socket,1); + $output = array(); + while ($out = socket_read($socket, 2048)) { + $output = array_merge($output,explode("\n", $out)); } + socket_close($socket); return $output; } + ?> diff --git a/htdocs/api/player.php b/htdocs/api/player.php index a67fb8417..98f049a83 100755 --- a/htdocs/api/player.php +++ b/htdocs/api/player.php @@ -12,6 +12,8 @@ * DEBUG_WebApp_API="TRUE" */ $debugLoggingConf = parse_ini_file("../../settings/debugLogging.conf"); +$globalConf = parse_ini_file("../../settings/global.conf"); +$globalConf['ENABLE_CHAPTERS_FOR_EXTENSIONS'] = "mp4,m4a,m4b,m4r"; if ($debugLoggingConf['DEBUG_WebApp_API'] == "TRUE") { file_put_contents("../../logs/debug.log", "\n# WebApp API # " . __FILE__, FILE_APPEND | LOCK_EX); @@ -51,8 +53,11 @@ function handlePut() { function handleGet() { global $debugLoggingConf; - $statusCommand = "echo 'status\ncurrentsong\nclose' | nc -w 1 localhost 6600"; - $commandResponseList = execSuccessfully($statusCommand); + global $globalConf; + //$statusCommand = "echo 'status\ncurrentsong\nclose' | nc -w 1 localhost 6600"; + //$commandResponseList = execSuccessfully($statusCommand); + $statusCommand = "status\ncurrentsong\nclose"; + $commandResponseList = execMPDCommand($statusCommand); $responseList = array(); forEach ($commandResponseList as $commandResponse) { preg_match("/(?P.+?): (?P.*)/", $commandResponse, $match); @@ -60,16 +65,24 @@ function handleGet() { $responseList[strtolower($match['key'])] = $match['value']; } } + // get volume separately from mpd, because we might use amixer to control volume - $command = "playout_controls.sh -c=getvolume"; - $output = execScript($command); - $responseList['volume'] = implode('\n', $output); - - $command = "playout_controls.sh -c=getchapters"; - $output = execScript($command); - $jsonChapters = trim(implode("\n", $output)); - $chapters = @json_decode($jsonChapters, true); + if ($globalConf['VOLUMEMANAGER'] != "mpd"){ + $command = "playout_controls.sh -c=getvolume"; + $output = execScript($command); + $responseList['volume'] = implode('\n', $output); + } + // get chapter info if file extension indicates supports + $fileExtension = pathinfo ( $responseList['file'], PATHINFO_EXTENSION); + if (in_array($fileExtension, explode(',', $globalConf['ENABLE_CHAPTERS_FOR_EXTENSIONS']))) { + $command = "playout_controls.sh -c=getchapters"; + $output = execScript($command); + $jsonChapters = trim(implode("\n", $output)); + $chapters = @json_decode($jsonChapters, true); + } + + $currentChapterIndex = null; $mappedChapters = array_filter(array_map(function($chapter) use($responseList, &$currentChapterIndex) { static $i = 1; From 804b8a36ba0b97de9be7c13c9c85d21089637684 Mon Sep 17 00:00:00 2001 From: Schneelocke Date: Thu, 3 Dec 2020 23:51:56 +0100 Subject: [PATCH 045/206] removed old code --- htdocs/api/player.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/htdocs/api/player.php b/htdocs/api/player.php index 98f049a83..3c4d6ff66 100755 --- a/htdocs/api/player.php +++ b/htdocs/api/player.php @@ -53,9 +53,7 @@ function handlePut() { function handleGet() { global $debugLoggingConf; - global $globalConf; - //$statusCommand = "echo 'status\ncurrentsong\nclose' | nc -w 1 localhost 6600"; - //$commandResponseList = execSuccessfully($statusCommand); + global $globalConf; $statusCommand = "status\ncurrentsong\nclose"; $commandResponseList = execMPDCommand($statusCommand); $responseList = array(); From f6b9afa59c45cb4868b0292af85c36af3053f0e2 Mon Sep 17 00:00:00 2001 From: Schneelocke Date: Tue, 8 Dec 2020 22:12:05 +0100 Subject: [PATCH 046/206] Added chapter exts and minduration to global conf --- htdocs/api/player.php | 3 +-- scripts/inc.writeGlobalConfig.sh | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/htdocs/api/player.php b/htdocs/api/player.php index 3c4d6ff66..9d2d92f16 100755 --- a/htdocs/api/player.php +++ b/htdocs/api/player.php @@ -13,7 +13,6 @@ */ $debugLoggingConf = parse_ini_file("../../settings/debugLogging.conf"); $globalConf = parse_ini_file("../../settings/global.conf"); -$globalConf['ENABLE_CHAPTERS_FOR_EXTENSIONS'] = "mp4,m4a,m4b,m4r"; if ($debugLoggingConf['DEBUG_WebApp_API'] == "TRUE") { file_put_contents("../../logs/debug.log", "\n# WebApp API # " . __FILE__, FILE_APPEND | LOCK_EX); @@ -73,7 +72,7 @@ function handleGet() { // get chapter info if file extension indicates supports $fileExtension = pathinfo ( $responseList['file'], PATHINFO_EXTENSION); - if (in_array($fileExtension, explode(',', $globalConf['ENABLE_CHAPTERS_FOR_EXTENSIONS']))) { + if (in_array($fileExtension, explode(',', $globalConf['CHAPTEREXTENSIONS']))) { $command = "playout_controls.sh -c=getchapters"; $output = execScript($command); $jsonChapters = trim(implode("\n", $output)); diff --git a/scripts/inc.writeGlobalConfig.sh b/scripts/inc.writeGlobalConfig.sh index 88909e0ee..85aa4c224 100755 --- a/scripts/inc.writeGlobalConfig.sh +++ b/scripts/inc.writeGlobalConfig.sh @@ -273,6 +273,28 @@ fi # 2. then|or read value from file VERSION=`cat $PATHDATA/../settings/version` +############################################## +# CHAPTEREXTENSIONS +# Only files with the extensions listed will be scanned for chapters +# 1. create a default if file does not exist +if [ ! -f $PATHDATA/../settings/CHAPTEREXTENSIONS ]; then + echo "mp4,m4a,m4b,m4r" > $PATHDATA/../settings/CHAPTEREXTENSIONS + chmod 777 $PATHDATA/../settings/CHAPTEREXTENSIONS +fi +# 2. then|or read value from file +CHAPTEREXTENSIONS=`cat $PATHDATA/../settings/CHAPTEREXTENSIONS` + +############################################## +# CHAPTERMINDURATION +# Only files with play length bigger than minimum will be scanned for chapters +# 1. create a default if file does not exist +if [ ! -f $PATHDATA/../settings/CHAPTERMINDURATION ]; then + echo "600" > $PATHDATA/../settings/CHAPTERMINDURATION + chmod 777 $PATHDATA/../settings/CHAPTERMINDURATION +fi +# 2. then|or read value from file +CHAPTERMINDURATION=`cat $PATHDATA/../settings/CHAPTERMINDURATION` + ############################################## # read control card ids # 1. read all values from file @@ -306,6 +328,8 @@ CMDSEEKBACK=`grep 'CMDSEEKBACK' $PATHDATA/../settings/rfid_trigger_play.conf|tai # EDITION # LANG # VERSION +# CHAPTEREXTENSIONS +# CHAPTERMINDURATION # CMDVOLUP # CMDVOLDOWN # CMDNEXT @@ -337,6 +361,8 @@ echo "READWLANIPYN=\"${READWLANIPYN}\"" >> "${PATHDATA}/../settings/global.conf" echo "EDITION=\"${EDITION}\"" >> "${PATHDATA}/../settings/global.conf" echo "LANG=\"${LANG}\"" >> "${PATHDATA}/../settings/global.conf" echo "VERSION=\"${VERSION}\"" >> "${PATHDATA}/../settings/global.conf" +echo "CHAPTEREXTENSIONS=\"${CHAPTEREXTENSIONS}\"" >> "${PATHDATA}/../settings/global.conf" +echo "CHAPTERMINDURATION=\"${CHAPTERMINDURATION}\"" >> "${PATHDATA}/../settings/global.conf" echo "CMDVOLUP=\"${CMDVOLUP}\"" >> "${PATHDATA}/../settings/global.conf" echo "CMDVOLDOWN=\"${CMDVOLDOWN}\"" >> "${PATHDATA}/../settings/global.conf" echo "CMDNEXT=\"${CMDNEXT}\"" >> "${PATHDATA}/../settings/global.conf" From 397a581eef05f94bb5cf66d9a3479a666c17cbaf Mon Sep 17 00:00:00 2001 From: Schneelocke Date: Tue, 8 Dec 2020 22:36:08 +0100 Subject: [PATCH 047/206] Removed the old variables from .sh script --- scripts/playout_controls.sh | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/scripts/playout_controls.sh b/scripts/playout_controls.sh index 3e8fc9592..6302d4388 100755 --- a/scripts/playout_controls.sh +++ b/scripts/playout_controls.sh @@ -112,8 +112,6 @@ shortcutCommands="^(setvolume|volumedown|volumeup|mute)$" # Run the code from this block only, if the current command is not in "shortcutCommands" if [[ ! "$COMMAND" =~ $shortcutCommands ]] then - ENABLE_CHAPTERS_FOR_EXTENSIONS="mp4,m4a,m4b,m4r" - ENABLE_CHAPTERS_MIN_DURATION="600" function dbg { if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then @@ -152,7 +150,7 @@ then CHAPTERS_FILE="${CURRENT_SONG_DIR}/${CURRENT_SONG_BASENAME%.*}.chapters.json" dbg "chapters file: $CHAPTERS_FILE" - if [ "$(grep -wo "$CURRENT_SONG_FILE_EXT" <<< "$ENABLE_CHAPTERS_FOR_EXTENSIONS")" == "$CURRENT_SONG_FILE_EXT" ]; then + if [ "$(grep -wo "$CURRENT_SONG_FILE_EXT" <<< "$CHAPTEREXTENSIONS")" == "$CURRENT_SONG_FILE_EXT" ]; then CHAPTER_SUPPORT_FOR_EXTENSION="1" else CHAPTER_SUPPORT_FOR_EXTENSION="0" @@ -160,7 +158,7 @@ then dbg "chapters for extension enabled: $CHAPTER_SUPPORT_FOR_EXTENSION" - if [ "$(printf "${CURRENT_SONG_DURATION}\n${ENABLE_CHAPTERS_MIN_DURATION}\n" | sort -g | head -1)" == "${ENABLE_CHAPTERS_MIN_DURATION}" ]; then + if [ "$(printf "${CURRENT_SONG_DURATION}\n${CHAPTERMINDURATION}\n" | sort -g | head -1)" == "${CHAPTERMINDURATION}" ]; then CHAPTER_SUPPORT_FOR_DURATION="1" else CHAPTER_SUPPORT_FOR_DURATION="0" From f71d1c7da1e8acf1f9ca304445692d37060cfdb2 Mon Sep 17 00:00:00 2001 From: Schneelocke Date: Sun, 13 Dec 2020 21:53:38 +0100 Subject: [PATCH 048/206] Fixed Socket Read for long content --- htdocs/api/common.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/htdocs/api/common.php b/htdocs/api/common.php index 3089b5472..f6855561c 100755 --- a/htdocs/api/common.php +++ b/htdocs/api/common.php @@ -47,9 +47,10 @@ function execMPDCommand($command) { socket_shutdown ($socket,1); $output = array(); while ($out = socket_read($socket, 2048)) { - $output = array_merge($output,explode("\n", $out)); + $outputTemp .= $out; } - socket_close($socket); + $output = array_merge($output,explode("\n", $outputTemp)); + socket_close($socket); return $output; } From 378cb278f3532cfcd86c30806c1e89bc5c3b28d8 Mon Sep 17 00:00:00 2001 From: Schneelocke Date: Mon, 4 Jan 2021 23:59:19 +0100 Subject: [PATCH 049/206] Improved Error-Handling with folders that have wrong permission. --- htdocs/func.php | 38 +++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/htdocs/func.php b/htdocs/func.php index ff829c25b..88ac8cb6a 100755 --- a/htdocs/func.php +++ b/htdocs/func.php @@ -251,20 +251,28 @@ function dir_list_recursively($rootdir = "") { * The dir path will end without '/'. */ - $iter = new RecursiveIteratorIterator( - new RecursiveDirectoryIterator($rootdir, RecursiveDirectoryIterator::SKIP_DOTS + RecursiveDirectoryIterator::FOLLOW_SYMLINKS), - RecursiveIteratorIterator::SELF_FIRST, - RecursiveIteratorIterator::CATCH_GET_CHILD // Ignore "Permission denied" - ); - - $paths = array($rootdir); - foreach ($iter as $path => $dir) { - if ($dir->isDir()) { - $paths[] = $path; - } - } - - return $paths; + try{ + $iter = new RecursiveIteratorIterator( + new RecursiveDirectoryIterator($rootdir, RecursiveDirectoryIterator::SKIP_DOTS + RecursiveDirectoryIterator::FOLLOW_SYMLINKS), + RecursiveIteratorIterator::SELF_FIRST, + RecursiveIteratorIterator::CATCH_GET_CHILD // Ignore "Permission denied" + ); + } + catch (UnexpectedValueException $e) { + global $debug; + if($debug == "true") { + file_put_contents("../logs/debug.log", "\n # Directory ".$rootdir." is a directory we can not recurse into. Please check permissions. " , FILE_APPEND | LOCK_EX); + } + } + + $paths = array($rootdir); + foreach ($iter as $path => $dir) { + if ($dir->isDir()) { + $paths[] = $path; + } + } + + return $paths; } function index_folders_print($item, $key) @@ -513,7 +521,7 @@ function getSubDirectories( $path = '.', $level = 0, $showfiles = 0 ){ // Open the directory to the handle $dh $dh = @opendir($path); - while( false !== ( $file = readdir( $dh ) ) ){ + while( false !== $dh && false !== ( $file = readdir( $dh ) ) ){ // Loop through the directory if( !in_array( $file, $ignore ) ){ From fed57e794f78707c4eb91b865fe5762f4168be14 Mon Sep 17 00:00:00 2001 From: manajoe Date: Tue, 5 Jan 2021 21:17:50 +0100 Subject: [PATCH 050/206] shutdownreducingvolume webUI --- htdocs/inc.header.php | 2 + htdocs/inc.setShutdownReduceVolume.php | 79 ++++++++++++++++++++++++++ 2 files changed, 81 insertions(+) create mode 100644 htdocs/inc.setShutdownReduceVolume.php diff --git a/htdocs/inc.header.php b/htdocs/inc.header.php index 8d4a0b3b9..0ecdacb55 100755 --- a/htdocs/inc.header.php +++ b/htdocs/inc.header.php @@ -202,6 +202,7 @@ function fileGetContentOrDefault($filename, $defaultValue) 'scan', 'idletime', 'shutdownafter', + 'shutdownwithreducingvolume', 'stopplayoutafter', 'enableresume', 'disableresume', @@ -303,6 +304,7 @@ function fileGetContentOrDefault($filename, $defaultValue) 'volumedown' => "/usr/bin/sudo ".$conf['scripts_abs']."/playout_controls.sh -c=volumedown", // volume down 'idletime' => "/usr/bin/sudo ".$conf['scripts_abs']."/playout_controls.sh -c=setidletime -v=%s", // set idletime 'shutdownafter' => "/usr/bin/sudo ".$conf['scripts_abs']."/playout_controls.sh -c=shutdownafter -v=%s", // set shutdownafter time (sleeptimer) + 'shutdownwithreducingvolume' => "/usr/bin/sudo ".$conf['scripts_abs']."/playout_controls.sh -c=shutdownwithreducingvolume -v=%s", // set time to shutdown with reducing volume 'stopplayoutafter' => "/usr/bin/sudo ".$conf['scripts_abs']."/playout_controls.sh -c=playerstopafter -v=%s",// set playerstopafter time (auto stop timer) 'playpos' => "/usr/bin/sudo ".$conf['scripts_abs']."/playout_controls.sh -c=playerplay -v=%s", // play from playlist position, 'DebugLogClear' => "sudo rm ../logs/debug.log; sudo touch ../logs/debug.log; sudo chmod 777 ../logs/debug.log", diff --git a/htdocs/inc.setShutdownReduceVolume.php b/htdocs/inc.setShutdownReduceVolume.php new file mode 100644 index 000000000..36d03ba4a --- /dev/null +++ b/htdocs/inc.setShutdownReduceVolume.php @@ -0,0 +1,79 @@ + + + + strtotime($shut_reduce_volume_value)) { + $unixtime = $unixtime - 86400; + } + $remainingshut_reduce_volume_ = (strtotime($shut_reduce_volume_value)-$unixtime)/60; + if($remainingshut_reduce_volume_ > 60) { + $remainingshut_reduce_volume_ = 60; + } + $remainingshut_reduce_volume_select = round($remainingshut_reduce_volume_); + } + else { + $remainingshut_reduce_volume_select = 0; + } + //$remainingshut_reduce_volume_select = 10; // debug + ?> +
    +
    +
    +

    +
    '> +
    + + + '/> + +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    + From 494873466dd6224cb48ce5cda354436053cb7158 Mon Sep 17 00:00:00 2001 From: manajoe Date: Tue, 5 Jan 2021 21:19:49 +0100 Subject: [PATCH 051/206] Updated settings.php --- htdocs/settings.php | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/settings.php b/htdocs/settings.php index 13a0b9224..ea2e16675 100755 --- a/htdocs/settings.php +++ b/htdocs/settings.php @@ -156,6 +156,7 @@
    From 1541af1ec9bb6e38d08f785e198a61cd149112c7 Mon Sep 17 00:00:00 2001 From: manajoe Date: Tue, 5 Jan 2021 21:25:49 +0100 Subject: [PATCH 052/206] configured lang.php-files --- htdocs/inc.setShutdownReduceVolume.php | 2 +- htdocs/lang/lang-de-DE.php | 1 + htdocs/lang/lang-en-UK.php | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/htdocs/inc.setShutdownReduceVolume.php b/htdocs/inc.setShutdownReduceVolume.php index 36d03ba4a..2b0d182ff 100644 --- a/htdocs/inc.setShutdownReduceVolume.php +++ b/htdocs/inc.setShutdownReduceVolume.php @@ -38,7 +38,7 @@
    -

    +

    '>
    + + + + + = 5) { + print " + "; + $i = $i - 5; + }; + print "\n"; + ?> + + + '/> + +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    + diff --git a/htdocs/inc.setStartupVolume.php b/htdocs/inc.setStartupVolume.php index 502b03630..0fb92f054 100755 --- a/htdocs/inc.setStartupVolume.php +++ b/htdocs/inc.setStartupVolume.php @@ -3,8 +3,6 @@ --> diff --git a/htdocs/lang/lang-de-DE.php b/htdocs/lang/lang-de-DE.php index 218a62336..7487c4db7 100644 --- a/htdocs/lang/lang-de-DE.php +++ b/htdocs/lang/lang-de-DE.php @@ -210,6 +210,7 @@ $lang['settingsVolChangePercent'] = "Lautst. Änderung"; $lang['settingsMaxVol'] = "Max. Lautstärke"; $lang['settingsStartupVol'] = "Start-Lautstärke"; +$lang['settingsBootVol'] = "Lautst. nach Boot"; $lang['settingsWifiRestart'] = "Die Änderungen an der WiFi-Verbindung erfordern einen Neustart, um wirksam zu werden"; $lang['settingsWifiSsidPlaceholder'] = "z.B. PhonieHomie"; $lang['settingsWifiSsidHelp'] = "Der Name, unter dem dein WiFi als 'verfügbares Netzwerk' angezeigt wird"; diff --git a/htdocs/lang/lang-en-UK.php b/htdocs/lang/lang-en-UK.php index a3579ade8..9610adaa2 100755 --- a/htdocs/lang/lang-en-UK.php +++ b/htdocs/lang/lang-en-UK.php @@ -217,6 +217,7 @@ $lang['settingsVolChangePercent'] = "Vol. Change %"; $lang['settingsMaxVol'] = "Maximum Volume"; $lang['settingsStartupVol'] = "Startup Volume"; +$lang['settingsBootVol'] = "Volume after reboot"; $lang['settingsWifiRestart'] = "The changes applied to your WiFi connection require a restart to take effect."; $lang['settingsWifiSsidPlaceholder'] = "e.g.: PhonieHomie"; $lang['settingsWifiSsidHelp'] = "The name under which your WiFi shows up as 'available network'"; diff --git a/htdocs/settings.php b/htdocs/settings.php index 3980142c6..09e2ae280 100755 --- a/htdocs/settings.php +++ b/htdocs/settings.php @@ -135,6 +135,7 @@ include("inc.setMaxVolume.php"); include("inc.setVolumeStep.php"); include("inc.setStartupVolume.php"); +include("inc.setBootVolume.php"); ?>
    diff --git a/scripts/inc.writeGlobalConfig.sh b/scripts/inc.writeGlobalConfig.sh index a903f3c98..856c54fb4 100755 --- a/scripts/inc.writeGlobalConfig.sh +++ b/scripts/inc.writeGlobalConfig.sh @@ -173,12 +173,22 @@ AUDIOVOLMINLIMIT=`cat $PATHDATA/../settings/Min_Volume_Limit` # Startup_Volume # 1. create a default if file does not exist if [ ! -f $PATHDATA/../settings/Startup_Volume ]; then - echo "30" > $PATHDATA/../settings/Startup_Volume + echo "0" > $PATHDATA/../settings/Startup_Volume chmod 777 $PATHDATA/../settings/Startup_Volume fi # 2. then|or read value from file AUDIOVOLSTARTUP=`cat $PATHDATA/../settings/Startup_Volume` +############################################## +# Volume_Boot - after reboot +# 1. create a default if file does not exist +if [ ! -f $PATHDATA/../settings/Volume_Boot ]; then + echo "30" > $PATHDATA/../settings/Volume_Boot + chmod 777 $PATHDATA/../settings/Volume_Boot +fi +# 2. then|or read value from file +AUDIOVOLBOOT=`cat $PATHDATA/../settings/Volume_Boot` + ############################################## # Change_Volume_Idle # Change volume during idle (or only change it during Play and in the WebApp) @@ -329,6 +339,7 @@ CMDSEEKBACK=`grep 'CMDSEEKBACK' $PATHDATA/../settings/rfid_trigger_play.conf|tai # AUDIOVOLMAXLIMIT # AUDIOVOLMINLIMIT # AUDIOVOLSTARTUP +# AUDIOVOLBOOT # VOLCHANGEIDLE # IDLETIMESHUTDOWN # POWEROFFCMD @@ -365,6 +376,7 @@ echo "AUDIOVOLCHANGESTEP=\"${AUDIOVOLCHANGESTEP}\"" >> "${PATHDATA}/../settings/ echo "AUDIOVOLMAXLIMIT=\"${AUDIOVOLMAXLIMIT}\"" >> "${PATHDATA}/../settings/global.conf" echo "AUDIOVOLMINLIMIT=\"${AUDIOVOLMINLIMIT}\"" >> "${PATHDATA}/../settings/global.conf" echo "AUDIOVOLSTARTUP=\"${AUDIOVOLSTARTUP}\"" >> "${PATHDATA}/../settings/global.conf" +echo "AUDIOVOLBOOT=\"${AUDIOVOLBOOT}\"" >> "${PATHDATA}/../settings/global.conf" echo "VOLCHANGEIDLE=\"${VOLCHANGEIDLE}\"" >> "${PATHDATA}/../settings/global.conf" echo "IDLETIMESHUTDOWN=\"${IDLETIMESHUTDOWN}\"" >> "${PATHDATA}/../settings/global.conf" echo "POWEROFFCMD=\"${POWEROFFCMD}\"" >> "${PATHDATA}/../settings/global.conf" diff --git a/scripts/playout_controls.sh b/scripts/playout_controls.sh index cccd64df2..b4b4878d0 100755 --- a/scripts/playout_controls.sh +++ b/scripts/playout_controls.sh @@ -31,6 +31,9 @@ NOW=`date +%Y-%m-%d.%H:%M:%S` # setstartupvolume # getstartupvolume # setvolumetostartup +# setbootvolume +# getbootvolume +# setvolumetobootvolume # volumeup # volumedown # getchapters @@ -593,6 +596,39 @@ case $COMMAND in echo -e setvol ${AUDIOVOLSTARTUP}\\nclose | nc -w 1 localhost 6600 fi + fi + ;; + setbootvolume) + if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi + # if value is greater than wanted maxvolume, set value to maxvolume + if [ ${VALUE} -gt $AUDIOVOLMAXLIMIT ]; + then + VALUE=$AUDIOVOLMAXLIMIT; + fi + # write new value to file + echo "$VALUE" > ${PATHDATA}/../settings/Volume_Boot + # create global config file because individual setting got changed + . ${PATHDATA}/inc.writeGlobalConfig.sh + ;; + getbootvolume) + if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi + echo ${AUDIOVOLBOOT} + ;; + setvolumetobootvolume) + if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi + # check if startup-volume is disabled + if [ "${AUDIOVOLBOOT}" == 0 ]; then + exit 1 + else + # set volume level in percent + if [ "${VOLUMEMANAGER}" == "amixer" ]; then + # volume handling alternative with amixer not mpd (2020-06-12 related to ticket #973) + amixer sset \'$AUDIOIFACENAME\' ${AUDIOVOLBOOT}% + else + # manage volume with mpd + echo -e setvol ${AUDIOVOLBOOT}\\nclose | nc -w 1 localhost 6600 + fi + fi ;; playerstop) diff --git a/scripts/startup-scripts.sh b/scripts/startup-scripts.sh index 748167006..94b1c6a66 100755 --- a/scripts/startup-scripts.sh +++ b/scripts/startup-scripts.sh @@ -34,12 +34,21 @@ STATUS=0 while [ "$STATUS" != "ACTIVE" ]; do STATUS=$(echo -e status\\nclose | nc -w 1 localhost 6600 | grep 'OK MPD'| sed 's/^.*$/ACTIVE/'); done #################################### -# check if and set volume on startup +# Set volume levels on boot +# Both can be set in the Web UI under settings +# Confusion explained: +# 1. Set the volume to the global boot level. +# Sometimes the Pi sets volume to 0. +# The first command makes sure there is *some* level, not 0. +# 2. Then set the volume to the startup volume. +# If the kids crank up the volume at night, +# after a reboot, the box will be back to this level. +/home/pi/RPi-Jukebox-RFID/scripts/playout_controls.sh -c=setvolumetobootvolume /home/pi/RPi-Jukebox-RFID/scripts/playout_controls.sh -c=setvolumetostartup #################### # play startup sound -mpgvolume=$((32768*${AUDIOVOLSTARTUP}/100)) +mpgvolume=$((32768*${AUDIOVOLBOOT}/100)) echo "${mpgvolume} is the mpg123 startup volume" /usr/bin/mpg123 -f -${mpgvolume} /home/pi/RPi-Jukebox-RFID/shared/startupsound.mp3 From 7647c394aaaed9cac9c287312b82d798b7adee5d Mon Sep 17 00:00:00 2001 From: s-martin Date: Tue, 10 Aug 2021 22:28:22 +0200 Subject: [PATCH 130/206] Prepare Readme for 2.3 --- README.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 57f3a8f63..484fcdd90 100755 --- a/README.md +++ b/README.md @@ -22,20 +22,21 @@ The year 2020 also has a clear *:star: community hero :star:*: @s-martin has bee * **Gitter Community** we got ourselves a gitter community; chat us up at https://gitter.im/phoniebox -* **Phoniebox [2.2](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/4?closed=1) released (2020-11-23)** +* **Phoniebox [2.3](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/6?closed=1) released (2021-08-11)** -The [2.2](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/4?closed=1) release was pushed through the doors with many contributors (some of which in alphabetical order): @andreasbrett @BerniPi @juhrmann @Luegengladiator @MarkusProchaska @MarlonKrug @patrickweigelt @princemaxwell @RalfAlbers @s-martin @themorlan @veloxidSchweiz @xn--nding-jua. [List of all contributors](https://github.com/MiczFlor/RPi-Jukebox-RFID/graphs/contributors) +The [2.3](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/6?closed=1) release was pushed through the doors with many contributors: [List of all contributors](https://github.com/MiczFlor/RPi-Jukebox-RFID/graphs/contributors) -## What's new in version 2.2? +## What's new in version 2.3? +* Lots of fixed bugs and minor improvements... + +**What's still hot?** * :fire: **Fixed location of gpio_settings.ini** for [GPIO control](components/gpio_control/README.md) * Added support for files with embedded chapters metada (like m4a) enhancement * Added customizable poweroff command bash enhancement * Finally fixed resume function... * Lots of fixed bugs and minor improvements... * Status LED, Rotary Button, Volume Up/Down, custom music directory for +Spotify, Startup sound volume - -**What's still hot?** * The constantly improved **one-line install script** handles both **Classic** and **+Spotify** when [setting up your Phoniebox](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/INSTALL-stretch#one-line-install-command) * integrated improved [GPIO control](components/gpio_control/README.md) * integrated selection of RFID readers and uses [multiple readers](https://github.com/MiczFlor/RPi-Jukebox-RFID/pull/1012#issue-434052529) simultaneously From e59e526f20ffe50007d42021bd3f26d5474811a6 Mon Sep 17 00:00:00 2001 From: t0b3 Date: Wed, 11 Aug 2021 10:19:46 +0200 Subject: [PATCH 131/206] facilitate transition to bullseye (#1469) * facilitate transition to bullseye in order to easily support the debian upgrade path (replace `buster` with `bullseye` in `/etc/apt/sources.list` and `/etc/apt/sources.list.d/*`) this change helps transition from `php7.3` on buster to `php7.4` on bullseye and use python3 for python which is valid on bullseye * Update buster-install-default.sh * Update buster-install-default.sh --- scripts/installscripts/buster-install-default.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/installscripts/buster-install-default.sh b/scripts/installscripts/buster-install-default.sh index a195cd8ee..abb1c050c 100755 --- a/scripts/installscripts/buster-install-default.sh +++ b/scripts/installscripts/buster-install-default.sh @@ -793,7 +793,7 @@ install_main() { ${apt_get} ${allow_downgrades} install raspberrypi-kernel-headers fi - ${apt_get} ${allow_downgrades} install samba samba-common-bin gcc lighttpd php7.3-common php7.3-cgi php7.3 at mpd mpc mpg123 git ffmpeg resolvconf spi-tools netcat alsa-utils lsof + ${apt_get} ${allow_downgrades} install samba samba-common-bin gcc lighttpd php-common php-cgi php at mpd mpc mpg123 git ffmpeg resolvconf spi-tools netcat alsa-utils lsof # restore backup of /etc/resolv.conf in case installation of resolvconf cleared it sudo cp /etc/resolv.conf.orig /etc/resolv.conf @@ -801,8 +801,8 @@ install_main() { # prepare python3 ${apt_get} ${allow_downgrades} install python3 python3-dev python3-pip python3-mutagen python3-gpiozero python3-spidev - # use python3.7 as default - sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.7 1 + # use python3 as default + sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 1 # Get github code cd "${HOME_DIR}" || exit From 2a99a25f7f9f34bbd94afbca1699357d464ea62d Mon Sep 17 00:00:00 2001 From: TRO Date: Wed, 11 Aug 2021 22:47:29 +0200 Subject: [PATCH 132/206] small changes: head -n and file prefix (#1423) * replace head -1 by head -n 1 since this notation is depricated * replace head -1 by head -n 1 since this notation is depricated * playout_controls: my mopidy version need "file://" prefix --- scripts/playout_controls.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/playout_controls.sh b/scripts/playout_controls.sh index b4b4878d0..e67989329 100755 --- a/scripts/playout_controls.sh +++ b/scripts/playout_controls.sh @@ -167,7 +167,7 @@ then dbg "chapters for extension enabled: $CHAPTER_SUPPORT_FOR_EXTENSION" - if [ "$(printf "${CURRENT_SONG_DURATION}\n${CHAPTERMINDURATION}\n" | sort -g | head -1)" == "${CHAPTERMINDURATION}" ]; then + if [ "$(printf "${CURRENT_SONG_DURATION}\n${CHAPTERMINDURATION}\n" | sort -g | head -n1)" == "${CHAPTERMINDURATION}" ]; then CHAPTER_SUPPORT_FOR_DURATION="1" else CHAPTER_SUPPORT_FOR_DURATION="0" @@ -948,7 +948,7 @@ case $COMMAND in ;; playlistappend) if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND} value:${VALUE}" >> ${PATHDATA}/../logs/debug.log; fi - mpc add "${VALUE}" + mpc add file://"${VALUE}" # Unmute if muted if [ -f $VOLFILE ]; then # $VOLFILE DOES exist == audio off @@ -969,7 +969,7 @@ case $COMMAND in playsinglefile) if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND} value:${VALUE}" >> ${PATHDATA}/../logs/debug.log; fi mpc clear - mpc add "${VALUE}" + mpc add file://"${VALUE}" mpc repeat off mpc single on # Unmute if muted @@ -1086,7 +1086,7 @@ case $COMMAND in # delete $VOLFILE rm -f $VOLFILE fi - aplay `ls $AUDIOFOLDERSPATH/Recordings/*.wav -1t|head -1` + aplay `ls $AUDIOFOLDERSPATH/Recordings/*.wav -1t|head -n1` ;; readwifiipoverspeaker) # will read out the IP address over the Pi's speaker. From 8667bf57f4aef9757937d6a2ed2f6f55de25577b Mon Sep 17 00:00:00 2001 From: s-martin Date: Wed, 11 Aug 2021 22:55:25 +0200 Subject: [PATCH 133/206] Update README.md --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 484fcdd90..226a7807e 100755 --- a/README.md +++ b/README.md @@ -22,12 +22,16 @@ The year 2020 also has a clear *:star: community hero :star:*: @s-martin has bee * **Gitter Community** we got ourselves a gitter community; chat us up at https://gitter.im/phoniebox -* **Phoniebox [2.3](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/6?closed=1) released (2021-08-11)** +* **Phoniebox [2.3](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/6?closed=1) released (2021-08-12)** The [2.3](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/6?closed=1) release was pushed through the doors with many contributors: [List of all contributors](https://github.com/MiczFlor/RPi-Jukebox-RFID/graphs/contributors) ## What's new in version 2.3? +* Holding buttons feature fixed #1406 +* Bluetooth buttons and headphones toggle #1262 +* fixed stop on removal for RC522 #1122 +* USB Encoder buttons support for anyone who dors not want to solder... * Lots of fixed bugs and minor improvements... **What's still hot?** From 7123f730669ebaab7df116846382238a77f1ce68 Mon Sep 17 00:00:00 2001 From: s-martin Date: Wed, 11 Aug 2021 22:57:49 +0200 Subject: [PATCH 134/206] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 226a7807e..7ecfa3946 100755 --- a/README.md +++ b/README.md @@ -32,6 +32,7 @@ The [2.3](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/6?closed=1) rel * Bluetooth buttons and headphones toggle #1262 * fixed stop on removal for RC522 #1122 * USB Encoder buttons support for anyone who dors not want to solder... +* Removed support for Raspian Stretch * Lots of fixed bugs and minor improvements... **What's still hot?** From de1b3d7b22d30c7bee018a87977bd70ebbb13935 Mon Sep 17 00:00:00 2001 From: s-martin Date: Wed, 11 Aug 2021 23:10:08 +0200 Subject: [PATCH 135/206] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 7ecfa3946..70ea8adf6 100755 --- a/README.md +++ b/README.md @@ -28,10 +28,14 @@ The [2.3](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/6?closed=1) rel ## What's new in version 2.3? +* Improved [installation guide](docs/INSTALL_COMPLETE_GUIDE.md) * Holding buttons feature fixed #1406 * Bluetooth buttons and headphones toggle #1262 * fixed stop on removal for RC522 #1122 * USB Encoder buttons support for anyone who dors not want to solder... +* Improved robustness and better documentation for [GPIO control](components/gpio_control/README.md) +* Auto convert wrong Spotify URLs to a format Mopidy understands +* Support for PC/SC-readers * Removed support for Raspian Stretch * Lots of fixed bugs and minor improvements... From 10ae48e72aaeba4bdf1996fd9a53e1640ab2a2ce Mon Sep 17 00:00:00 2001 From: s-martin Date: Wed, 11 Aug 2021 23:10:33 +0200 Subject: [PATCH 136/206] Update version-number --- settings/version-number | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings/version-number b/settings/version-number index be1c36e58..bb576dbde 100755 --- a/settings/version-number +++ b/settings/version-number @@ -1 +1 @@ -2.3rc1 +2.3 From bb0361e41a48b5a36e564d0e92f1e2d551b1b879 Mon Sep 17 00:00:00 2001 From: s-martin Date: Wed, 11 Aug 2021 23:33:59 +0200 Subject: [PATCH 137/206] Release 2.3 (#1476) (#1477) From 5a35ee86dd58a7af29842cf48988c2eccf9b9731 Mon Sep 17 00:00:00 2001 From: robinjoerke Date: Fri, 27 Aug 2021 08:50:42 +0200 Subject: [PATCH 138/206] Fix Link in README.md Fixes the installaion guide link in the README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 70ea8adf6..4b2d8d02d 100755 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ The [2.3](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/6?closed=1) rel ## What's new in version 2.3? -* Improved [installation guide](docs/INSTALL_COMPLETE_GUIDE.md) +* Improved [installation guide](docs/INSTALL-COMPLETE-GUIDE.md) * Holding buttons feature fixed #1406 * Bluetooth buttons and headphones toggle #1262 * fixed stop on removal for RC522 #1122 From 4e4d1077296f911485cd48aa2a32297dea8733e1 Mon Sep 17 00:00:00 2001 From: Andreas Brett Date: Sun, 29 Aug 2021 18:36:32 +0200 Subject: [PATCH 139/206] send mqtt data on swiped card event actively watch for changes to Latest_RFID file and send out MQTT data --- .../MQTT-protocol/daemon_mqtt_client.py | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py b/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py index 4ccb639fa..6c676db68 100644 --- a/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py +++ b/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py @@ -2,12 +2,13 @@ import paho.mqtt.client as mqtt import os, subprocess, re, ssl, time, datetime - +import inotify.adapters +from threading import * # ---------------------------------------------------------- # Prerequisites # ---------------------------------------------------------- -# pip3 install paho-mqtt +# pip3 install paho-mqtt inotify # ---------------------------------------------------------- @@ -43,6 +44,21 @@ arAvailableAttributes = ['volume', 'mute', 'repeat', 'random', 'state', 'file', 'artist', 'albumartist', 'title', 'album', 'track', 'elapsed', 'duration', 'trackdate', 'last_card', 'maxvolume', 'volstep', 'idletime', 'rfid', 'gpio', 'remaining_stopafter', 'remaining_shutdownafter', 'remaining_idle', 'throttling', 'temperature'] +def watchForNewCard(): + i = inotify.adapters.Inotify() + i.add_watch(path + "/../settings/Latest_RFID") + + # wait for inotify events + for event in i.event_gen(yield_nones=False): + if event is not None: + # fetch event attributes + (e_header, e_type_names, e_path, e_filename) = event + + # file was closed and written => a new card was swiped + if "IN_CLOSE_WRITE" in e_type_names: + processGet("all") + + def on_connect(client, userdata, flags, rc): if rc == 0: print("Connection established.") @@ -386,6 +402,11 @@ def fetchData(): print("Subscribing to " + mqttBaseTopic + "/get/#") client.subscribe(mqttBaseTopic + "/get/#") +# register thread for watchForNewCard +tWatchForNewCard = Thread(target=watchForNewCard) +tWatchForNewCard.setDaemon(True) +tWatchForNewCard.start() + # start endless loop client.loop_start() while True: From d662bb2ae8fedcd2900f84f37963ff777652929d Mon Sep 17 00:00:00 2001 From: Andreas Brett Date: Sun, 29 Aug 2021 18:38:00 +0200 Subject: [PATCH 140/206] Update README.md --- components/smart-home-automation/MQTT-protocol/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/smart-home-automation/MQTT-protocol/README.md b/components/smart-home-automation/MQTT-protocol/README.md index a71a595ec..3e765fb3d 100644 --- a/components/smart-home-automation/MQTT-protocol/README.md +++ b/components/smart-home-automation/MQTT-protocol/README.md @@ -114,7 +114,7 @@ Sending empty payload to `phoniebox/cmd/help` will be responded by a list of all Install missing python packages for MQTT: ~~~ -sudo pip3 install paho-mqtt +sudo pip3 install paho-mqtt inotify ~~~ All relevant files can be found in the folder: From 292b518918d5fa54733af5948815a2c1f17deb0c Mon Sep 17 00:00:00 2001 From: Andreas Brett Date: Mon, 30 Aug 2021 22:30:15 +0200 Subject: [PATCH 141/206] Update daemon_mqtt_client.py --- .../MQTT-protocol/daemon_mqtt_client.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py b/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py index 6c676db68..ec9769e5d 100644 --- a/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py +++ b/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py @@ -56,6 +56,14 @@ def watchForNewCard(): # file was closed and written => a new card was swiped if "IN_CLOSE_WRITE" in e_type_names: + # fetch card ID + cardid = readfile(path + "/../settings/Latest_RFID") + + # publish event "card_swiped" + client.publish(mqttBaseTopic + "/event/card_swiped", payload=cardid) + print(" --> Publishing event card_swiped = " + cardid) + + # process all attributes processGet("all") From fc207a8792120bb24e921a3b2c94e34bb0e0ed3e Mon Sep 17 00:00:00 2001 From: Andreas Brett Date: Tue, 31 Aug 2021 20:19:25 +0200 Subject: [PATCH 142/206] Update README.md --- .../smart-home-automation/MQTT-protocol/README.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/components/smart-home-automation/MQTT-protocol/README.md b/components/smart-home-automation/MQTT-protocol/README.md index 3e765fb3d..643aaf313 100644 --- a/components/smart-home-automation/MQTT-protocol/README.md +++ b/components/smart-home-automation/MQTT-protocol/README.md @@ -34,8 +34,16 @@ Phoniebox' MQTT client will do the following things: 2. at shutdown send state info to - `phoniebox/state` (offline) 3. periodically send *all* attributes to `phoniebox/attribute/$attributeName` (this interval can be defined through `refreshIntervalPlaying` and `refreshIntervalIdle` in the `SETTINGS` section) -4. listen for attribute requests on `phoniebox/get/$attribute` -5. listen for commands on `phoniebox/cmd/$command` (if a command needs a parameter it has to be provided via payload) +4. send specific events to `phoniebox/event/$eventName` right away +5. listen for attribute requests on `phoniebox/get/$attribute` +6. listen for commands on `phoniebox/cmd/$command` (if a command needs a parameter it has to be provided via payload) + +## Topic: phoniebox/event/$event +This is a read-only topic. The following events trigger immediate messages through this topic: + +- card_swiped + +Use these topics to get notified of time-critical events right away rather than having to wait for the periodic send of all attributes or requesting an attribute through the get topic. Currently the only event triggering a message is the "card_swiped" event with the obvious use-case of letting your smart home react upon swiped cards. These cards needn't be configured in Phoniebox as the MQTT daemon will just relay any swiped card to the MQTT server. So it's possible to have a "dim lights" card that will not trigger any Phoniebox action but is picked up by your smart home to dim the lights. ## Topic: phoniebox/get/$attribute MQTT clients can (additionally to the periodic updates) request an attribute of Phoniebox. Sending an empty payload to `phoniebox/get/volume` will trigger Phoniebox' MQTT client to fetch the current volume from MPD and send the result to `phoniebox/attribute/volume`. From 6fa00a2b12ea528c2d6aa6551f6af6b975e9444f Mon Sep 17 00:00:00 2001 From: Andreas Brett Date: Thu, 2 Sep 2021 23:50:17 +0200 Subject: [PATCH 143/206] Create requirements.txt --- .../smart-home-automation/MQTT-protocol/requirements.txt | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 components/smart-home-automation/MQTT-protocol/requirements.txt diff --git a/components/smart-home-automation/MQTT-protocol/requirements.txt b/components/smart-home-automation/MQTT-protocol/requirements.txt new file mode 100644 index 000000000..b474338b6 --- /dev/null +++ b/components/smart-home-automation/MQTT-protocol/requirements.txt @@ -0,0 +1,5 @@ +# MQTT daemon related requirements +# you need to install these with `sudo python3 -m pip install --upgrade --force-reinstall -q -r requirements.txt` + +paho-mqtt +inotify From af61c28eb50192dc2ccde6b3e2469c67baf1de10 Mon Sep 17 00:00:00 2001 From: Andreas Brett Date: Thu, 2 Sep 2021 23:55:01 +0200 Subject: [PATCH 144/206] Update README.md --- components/smart-home-automation/MQTT-protocol/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/smart-home-automation/MQTT-protocol/README.md b/components/smart-home-automation/MQTT-protocol/README.md index 643aaf313..b4fae442b 100644 --- a/components/smart-home-automation/MQTT-protocol/README.md +++ b/components/smart-home-automation/MQTT-protocol/README.md @@ -122,7 +122,7 @@ Sending empty payload to `phoniebox/cmd/help` will be responded by a list of all Install missing python packages for MQTT: ~~~ -sudo pip3 install paho-mqtt inotify +sudo python3 -m pip install --upgrade --force-reinstall -q -r requirements.txt ~~~ All relevant files can be found in the folder: From a29f7385505e7aafbbdd614b5a2773ba1c914e04 Mon Sep 17 00:00:00 2001 From: Philipp Date: Mon, 6 Sep 2021 08:29:13 +0200 Subject: [PATCH 145/206] quickfix idle-watchdog with amixer https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/1497 --- scripts/idle-watchdog.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/idle-watchdog.sh b/scripts/idle-watchdog.sh index c4e721474..2183ebf0b 100755 --- a/scripts/idle-watchdog.sh +++ b/scripts/idle-watchdog.sh @@ -34,7 +34,8 @@ do fi # If box is playing and volume is greater 0, remove idle shutdown. Skip this if "at"-queue is already empty - if [ "$(echo "$PLAYERSTATUS" | grep -c "\[playing\]")" == "1" ] && [ $VOLPERCENT -ne "0" ] && [ -n "$(sudo atq -q i)" ]; + # If volume is controlled by amixer, VOLPERCENT is empty. Ignore that. + if [ "$(echo "$PLAYERSTATUS" | grep -c "\[playing\]")" == "1" ] && [[ -z $VOLPERCENT || $VOLPERCENT -ne "0" ]] && [ -n "$(sudo atq -q i)" ]; then for i in `sudo atq -q i | awk '{print $1}'`;do sudo atrm $i;done fi From 48b2c07da57154768193676b6fbc6a4f4d432ad6 Mon Sep 17 00:00:00 2001 From: T0bi79 <51325380+T0bi79@users.noreply.github.com> Date: Thu, 9 Sep 2021 19:50:17 +0200 Subject: [PATCH 146/206] Update gpio_settings.ini.sample --- misc/sampleconfigs/gpio_settings.ini.sample | 77 ++++++++++++++------- 1 file changed, 53 insertions(+), 24 deletions(-) diff --git a/misc/sampleconfigs/gpio_settings.ini.sample b/misc/sampleconfigs/gpio_settings.ini.sample index 92839ebd9..b05004c7a 100644 --- a/misc/sampleconfigs/gpio_settings.ini.sample +++ b/misc/sampleconfigs/gpio_settings.ini.sample @@ -1,16 +1,18 @@ [DEFAULT] enabled: True +antibouncehack: False + [VolumeControl] enabled: True Type: TwoButtonControl ;or RotaryEncoder -PinUp: 5 -PinDown: 6 -pull_up: True +Pin1: 5 +Pin2: 6 +pull_up_down: pull_up hold_time: 0.3 -hold_repeat: True +hold_mode: Repeat timeBase: 0.1 ;only for RotaryEncoder -functionCallDown: functionCallVolD -functionCallUp: functionCallVolU +functionCall1: functionCallVolU +functionCall2: functionCallVolD functionCallTwoButtons: functionCallVol0 ;only for TwoButtonControl [PrevNextControl] @@ -21,72 +23,99 @@ Pin2: 23 functionCall1: functionCallPlayerPrev functionCall2: functionCallPlayerNext functionCallTwoButtons: None -pull_up: True +pull_up_down: pull_up hold_time: 0.3 -hold_repeat: False +hold_mode: None [PlayPause] enabled: True Type: Button Pin: 27 -pull_up: True -hold_time: 0.3 +pull_up_down: pull_up functionCall: functionCallPlayerPause [Shutdown] enabled: False Type: Button Pin: 3 -pull_up: True +pull_up_down: pull_up +hold_mode: Postpone hold_time: 2 functionCall: functionCallShutdown +[PauseShutdown] +enabled: False +Type: Button +Pin: 3 +pull_up_down: pull_up +hold_time: 2.0 +hold_mode: SecondFunc +functionCall: functionCallPlayerPause +functionCall2: functionCallShutdown + [Volume0] enabled: False Type: Button Pin: 17 -pull_up: True -hold_time: 0.3 +pull_up_down: pull_up functionCall: functionCallVol0 [VolumeUp] enabled: False Type: Button Pin: 16 -pull_up: True +pull_up_down: pull_up hold_time: 0.3 -hold_repeat: True +hold_mode: Repeat functionCall: functionCallVolU [VolumeDown] enabled: False Type: Button Pin: 19 -pull_up: True +pull_up_down: pull_up hold_time: 0.3 -hold_repeat: True +hold_mode: Repeat functionCall: functionCallVolD [NextSong] enabled: False Type: Button Pin: 26 -pull_up: True -hold_time: 0.3 +pull_up_down: pull_up functionCall: functionCallPlayerNext [PrevSong] enabled: False Type: Button Pin: 20 -pull_up: True -hold_time: 0.3 +pull_up_down: pull_up functionCall: functionCallPlayerPrev +[FastForward] +enabled: false +Type: Button +Pin: 7 +pull_up_down: pull_up +functionCall: functionCallPlayerSeekFwd + +[Rewind] +enabled: false +Type: Button +Pin: 8 +pull_up_down: pull_up +functionCall: functionCallPlayerSeekBack + [Halt] enabled: False Type: Button -Pin: 21 -pull_up: True -hold_time: 0.3 +Pin: 25 +pull_up_down: pull_up functionCall: functionCallPlayerPauseForce + +[RFIDDevice] +enabled: True +Type: Button +Pin: 21 +pull_up_down: pull_up +functionCall: functionCallPlayerStop From 4c02d597e1c3c1e2fa917af09e95d9f399bad034 Mon Sep 17 00:00:00 2001 From: T0bi79 <51325380+T0bi79@users.noreply.github.com> Date: Thu, 9 Sep 2021 20:10:23 +0200 Subject: [PATCH 147/206] Update gpio_settings.ini.sample --- misc/sampleconfigs/gpio_settings.ini.sample | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/misc/sampleconfigs/gpio_settings.ini.sample b/misc/sampleconfigs/gpio_settings.ini.sample index b05004c7a..e14444991 100644 --- a/misc/sampleconfigs/gpio_settings.ini.sample +++ b/misc/sampleconfigs/gpio_settings.ini.sample @@ -3,7 +3,7 @@ enabled: True antibouncehack: False [VolumeControl] -enabled: True +enabled: False Type: TwoButtonControl ;or RotaryEncoder Pin1: 5 Pin2: 6 @@ -16,7 +16,7 @@ functionCall2: functionCallVolD functionCallTwoButtons: functionCallVol0 ;only for TwoButtonControl [PrevNextControl] -enabled: True +enabled: False Type: TwoButtonControl Pin1: 22 Pin2: 23 @@ -28,7 +28,7 @@ hold_time: 0.3 hold_mode: None [PlayPause] -enabled: True +enabled: False Type: Button Pin: 27 pull_up_down: pull_up @@ -93,14 +93,14 @@ pull_up_down: pull_up functionCall: functionCallPlayerPrev [FastForward] -enabled: false +enabled: False Type: Button Pin: 7 pull_up_down: pull_up functionCall: functionCallPlayerSeekFwd [Rewind] -enabled: false +enabled: False Type: Button Pin: 8 pull_up_down: pull_up @@ -114,7 +114,7 @@ pull_up_down: pull_up functionCall: functionCallPlayerPauseForce [RFIDDevice] -enabled: True +enabled: False Type: Button Pin: 21 pull_up_down: pull_up From f838a876b1bebea9379941d5a306c76d16b26ce8 Mon Sep 17 00:00:00 2001 From: tobiasb Date: Sat, 18 Sep 2021 20:02:06 +0200 Subject: [PATCH 148/206] Added sustainability notes in README --- README.md | 11 +++++++++++ scripts/installscripts/buster-install-default.sh | 4 ++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a88318124..52c48d263 100755 --- a/README.md +++ b/README.md @@ -96,6 +96,17 @@ The **web app** runs on any device and is mobile optimised. It provides: **See more innovation, upcycling and creativity in the [Phoniebox Gallery](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/GALLERY) or visit and share the project's homepage at [phoniebox.de](http://phoniebox.de/). There is also an [english Phoniebox page](http://phoniebox.de/index.php?l=en).** +## Sustainability + +You might be surprised how easy and affordable you can get a RaspberryPi or an "appropriate" housing for your Phoniebox **second hand**. Think about the planet before you buy a new one. +Creating a Phoniebox may be sustainable for the following reasons: + +* You **buy things second hand** or **do upcycling on unused objects** and reduce newly produced products +* You built your Phoniebox yourself, so **maintaining and repairing is not a problem** (Additionally **a great community helps** you) +* Since the Phoniebox uses Linux as a base system it's **very unlikely that you run out of system and security updates** - so it can run and run and run... +* **RFID cards or tags can be reused - no need to buy new plastic elements** for changing the music or story linked to a card +* **Build it together with your kids** to show them that building things on their own is possible and in cooperation with others makes life easier and fun at the same time + ## Installation * Installation instructions for Raspbian (https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/INSTALL-stretch). diff --git a/scripts/installscripts/buster-install-default.sh b/scripts/installscripts/buster-install-default.sh index b116d9fa9..9220c4212 100755 --- a/scripts/installscripts/buster-install-default.sh +++ b/scripts/installscripts/buster-install-default.sh @@ -5,7 +5,7 @@ # The absolute path to the folder which contains this script PATHDATA="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -GIT_BRANCH=${GIT_BRANCH:-develop} +GIT_BRANCH=${GIT_BRANCH:-master} clear echo "##################################################### @@ -528,7 +528,7 @@ cd /home/pi/ || exit # Must be changed to the correct branch!!! # Change to master when merging develop with master!!! -git clone https://github.com/topas-rec/RPi-Jukebox-RFID.git --branch "${GIT_BRANCH}" +git clone https://github.com/MiczFlor/RPi-Jukebox-RFID.git --branch "${GIT_BRANCH}" # check, which branch was cloned git status From f26dec3a9afb6ae403f6f16286860c446b891c56 Mon Sep 17 00:00:00 2001 From: lenlennart <53861396+lenlennart@users.noreply.github.com> Date: Wed, 22 Sep 2021 12:26:24 +0200 Subject: [PATCH 149/206] adjust playerpauseforce adjust playerpauseforce to only pauses when currently playing see bug #1520 --- scripts/playout_controls.sh | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/scripts/playout_controls.sh b/scripts/playout_controls.sh index e67989329..0bc6a3a67 100755 --- a/scripts/playout_controls.sh +++ b/scripts/playout_controls.sh @@ -744,7 +744,13 @@ case $COMMAND in then /bin/sleep $VALUE fi - mpc pause + PLAYSTATE=$(echo -e "status\nclose" | nc -w 1 localhost 6600 | grep -o -P '(?<=state: ).*') + # Only pause when currently playing + # Otherwise mpc might go from "stopped" back to "pause", causing inconsitency as there is nothing to "resume" + if [ "$PLAYSTATE" == "play" ] + then + mpc pause + fi ;; playerplay) # play / resume current track From eefec5626efcf7bcc43f061d720358c354cc3f5d Mon Sep 17 00:00:00 2001 From: Groovylein Date: Mon, 4 Oct 2021 20:53:29 +0200 Subject: [PATCH 150/206] Removed hard coded homedir from install script --- .../installscripts/buster-install-default.sh | 59 +++++++++++++++---- 1 file changed, 47 insertions(+), 12 deletions(-) diff --git a/scripts/installscripts/buster-install-default.sh b/scripts/installscripts/buster-install-default.sh index abb1c050c..97fbc5b45 100755 --- a/scripts/installscripts/buster-install-default.sh +++ b/scripts/installscripts/buster-install-default.sh @@ -4,7 +4,7 @@ # # NOTE: Running automated install (without interaction): # Each install creates a file called PhonieboxInstall.conf -# in the folder /home/pi/ +# in you $HOME directory # You can install the Phoniebox using such a config file # which means you don't need to run the interactive install: # @@ -12,7 +12,7 @@ # https://github.com/MiczFlor/RPi-Jukebox-RFID/tree/develop/scripts/installscripts # (note: currently only works for buster and newer OS) # 2. make the file executable: chmod +x -# 3. place the PhonieboxInstall.conf in the folder /home/pi/ +# 3. place the PhonieboxInstall.conf in the folder $HOME # 4. run the installscript with option -a like this: # buster-install-default.sh -a @@ -28,7 +28,7 @@ DATETIME=$(date +"%Y%m%d_%H%M%S") SCRIPTNAME="$(basename $0)" JOB="${SCRIPTNAME}" -HOME_DIR="/home/pi" +HOME_DIR=$(echo $HOME) JUKEBOX_HOME_DIR="${HOME_DIR}/RPi-Jukebox-RFID" LOGDIR="${HOME_DIR}"/phoniebox_logs @@ -104,9 +104,9 @@ will guide you through the configuration. If you want to run the AUTOMATED INSTALL (non-interactive) from an existing configuration file, do the following: 1. exit this install script (press n) -2. place your PhonieboxInstall.conf in the folder /home/pi/ +2. place your PhonieboxInstall.conf in the folder ${HOME_DIR} 3. run the installscript with option -a. For example like this: - ./home/pi/buster-install-default.sh -a + .${HOME_DIR}/buster-install-default.sh -a " read -rp "Continue interactive installation? [Y/n] " response case "$response" in @@ -545,7 +545,7 @@ config_audio_folder() { ##################################################### # Folder path for audio files - # default: /home/pi/RPi-Jukebox-RFID/shared/audiofolders + # default: $HOME/RPi-Jukebox-RFID/shared/audiofolders clear @@ -683,7 +683,10 @@ samba_config() { sudo chmod 644 "${smb_conf}" # for $DIRaudioFolders using | as alternate regex delimiter because of the folder path slash sudo sed -i 's|%DIRaudioFolders%|'"$DIRaudioFolders"'|' "${smb_conf}" + # Replace homedir; double quotes for variable expansion + sudo sed -i "s%/home/pi%${HOME_DIR}%g" "${smb_conf}" # Samba: create user 'pi' with password 'raspberry' + # ToDo: use current user with a default password (echo "raspberry"; echo "raspberry") | sudo smbpasswd -s -a pi } @@ -699,6 +702,8 @@ web_server_config() { sudo cp "${jukebox_dir}"/misc/sampleconfigs/lighttpd.conf.buster-default.sample "${lighthttpd_conf}" sudo chown root:root "${lighthttpd_conf}" sudo chmod 644 "${lighthttpd_conf}" + # double quotes for variable expansion + sudo sed -i "s%/home/pi%${HOME_DIR}%g" "${lighthttpd_conf}" # Web server PHP7 fastcgi conf # -rw-r--r-- 1 root root 398 Apr 30 09:35 /etc/lighttpd/conf-available/15-fastcgi-php.conf @@ -870,6 +875,8 @@ install_main() { # create config file for web app from sample sudo cp "${jukebox_dir}"/htdocs/config.php.sample "${jukebox_dir}"/htdocs/config.php + # double quotes for variable expansion + sudo sed -i "s%/home/pi%${HOME_DIR}%g" "${jukebox_dir}"/htdocs/config.php # Starting web server and php7 sudo lighttpd-enable-mod fastcgi @@ -901,12 +908,30 @@ install_main() { sudo rm "${systemd_dir}"/phoniebox-gpio-buttons.service echo "### Done with erasing old daemons. Stop ignoring errors!" # 2. install new ones - this is version > 1.1.8-beta - sudo cp "${jukebox_dir}"/misc/sampleconfigs/phoniebox-rfid-reader.service.stretch-default.sample "${systemd_dir}"/phoniebox-rfid-reader.service + RFID_READER_SERVICE="${systemd_dir}/phoniebox-rfid-reader.service" + sudo cp "${jukebox_dir}"/misc/sampleconfigs/phoniebox-rfid-reader.service.stretch-default.sample "${RFID_READER_SERVICE}" + # Replace homedir; double quotes for variable expansion + sudo sed -i "s%/home/pi%${HOME_DIR}%g" "${RFID_READER_SERVICE}" + #startup sound now part of phoniebox-startup-scripts #sudo cp "${jukebox_dir}"/misc/sampleconfigs/phoniebox-startup-sound.service.stretch-default.sample "${systemd_dir}"/phoniebox-startup-sound.service - sudo cp "${jukebox_dir}"/misc/sampleconfigs/phoniebox-startup-scripts.service.stretch-default.sample "${systemd_dir}"/phoniebox-startup-scripts.service - sudo cp "${jukebox_dir}"/misc/sampleconfigs/phoniebox-idle-watchdog.service.sample "${systemd_dir}"/phoniebox-idle-watchdog.service - [[ "${GPIOconfig}" == "YES" ]] && sudo cp "${jukebox_dir}"/misc/sampleconfigs/phoniebox-gpio-control.service.sample "${systemd_dir}"/phoniebox-gpio-control.service + STARTUP_SCRIPT_SERVICE="${systemd_dir}/phoniebox-startup-scripts.service" + sudo cp "${jukebox_dir}"/misc/sampleconfigs/phoniebox-startup-scripts.service.stretch-default.sample "${STARTUP_SCRIPT_SERVICE}" + # Replace homedir; double quotes for variable expansion + sudo sed -i "s%/home/pi%${HOME_DIR}%g" "${STARTUP_SCRIPT_SERVICE}" + + IDLE_WATCHDOG_SERVICE="${systemd_dir}/phoniebox-idle-watchdog.service" + sudo cp "${jukebox_dir}"/misc/sampleconfigs/phoniebox-idle-watchdog.service.sample "${IDLE_WATCHDOG_SERVICE}" + # Replace homedir; double quotes for variable expansion + sudo sed -i "s%/home/pi%${HOME_DIR}%g" "${IDLE_WATCHDOG_SERVICE}" + + if [[ "${GPIOconfig}" == "YES" ]]; then + GPIO_CONTROL_SERVICE="${systemd_dir}/phoniebox-gpio-control.service" + sudo cp "${jukebox_dir}"/misc/sampleconfigs/phoniebox-gpio-control.service.sample "${GPIO_CONTROL_SERVICE}" + # Replace homedir; double quotes for variable expansion + sudo sed -i "s%/home/pi%${HOME_DIR}%g" "${GPIO_CONTROL_SERVICE}" + fi + sudo chown root:root "${systemd_dir}"/phoniebox-*.service sudo chmod 644 "${systemd_dir}"/phoniebox-*.service # enable the services needed @@ -940,12 +965,17 @@ install_main() { sudo sed -i 's/%spotify_client_secret%/'"$SPOTIclientsecret"'/' "${etc_mopidy_conf}" # for $DIRaudioFolders using | as alternate regex delimiter because of the folder path slash sudo sed -i 's|%DIRaudioFolders%|'"$DIRaudioFolders"'|' "${etc_mopidy_conf}" + # Replace homedir; double quotes for variable expansion + sudo sed -i "s%/home/pi%${HOME_DIR}%g" "${etc_mopidy_conf}" + sed -i 's/%spotify_username%/'"$SPOTIuser"'/' "${mopidy_conf}" sed -i 's/%spotify_password%/'"$SPOTIpass"'/' "${mopidy_conf}" sed -i 's/%spotify_client_id%/'"$SPOTIclientid"'/' "${mopidy_conf}" sed -i 's/%spotify_client_secret%/'"$SPOTIclientsecret"'/' "${mopidy_conf}" # for $DIRaudioFolders using | as alternate regex delimiter because of the folder path slash sudo sed -i 's|%DIRaudioFolders%|'"$DIRaudioFolders"'|' "${mopidy_conf}" + # Replace homedir; double quotes for variable expansion + sudo sed -i "s%/home/pi%${HOME_DIR}%g" "${mopidy_conf}" fi # GPIO-Control @@ -968,6 +998,8 @@ install_main() { sudo sed -i 's/%AUDIOiFace%/'"$AUDIOiFace"'/' "${mpd_conf}" # for $DIRaudioFolders using | as alternate regex delimiter because of the folder path slash sudo sed -i 's|%DIRaudioFolders%|'"$DIRaudioFolders"'|' "${mpd_conf}" + # Replace homedir; double quotes for variable expansion + sudo sed -i "s%/home/pi%${HOME_DIR}%g" "${mpd_conf}" sudo chown mpd:audio "${mpd_conf}" sudo chmod 640 "${mpd_conf}" fi @@ -1087,7 +1119,10 @@ existing_assets() { # make buttons_usb_encoder.py ready to be use from phoniebox-buttons-usb-encoder service sudo chmod +x "${jukebox_dir}"/components/controls/buttons_usb_encoder/buttons_usb_encoder.py # make sure service is still enabled by registering again - sudo cp -v "${jukebox_dir}"/components/controls/buttons_usb_encoder/phoniebox-buttons-usb-encoder.service.sample /etc/systemd/system/phoniebox-buttons-usb-encoder.service + USB_BUTTONS_SERVICE="/etc/systemd/system/phoniebox-buttons-usb-encoder.service" + sudo cp -v "${jukebox_dir}"/components/controls/buttons_usb_encoder/phoniebox-buttons-usb-encoder.service.sample "${USB_BUTTONS_SERVICE}" + # Replace homedir; double quotes for variable expansion + sudo sed -i "s%/home/pi%${HOME_DIR}%g" "${USB_BUTTONS_SERVICE}" sudo systemctl start phoniebox-buttons-usb-encoder.service sudo systemctl enable phoniebox-buttons-usb-encoder.service fi @@ -1274,7 +1309,7 @@ main() { else echo "Skipping USB device setup..." echo "For manual registration of a USB card reader type:" - echo "python3 /home/pi/RPi-Jukebox-RFID/scripts/RegisterDevice.py" + echo "python3 ${HOME_DIR}/RPi-Jukebox-RFID/scripts/RegisterDevice.py" echo " " echo "Reboot is required to activate all settings!" fi From aace91441bd2db502c042bde66fb5959784b40d2 Mon Sep 17 00:00:00 2001 From: Groovylein Date: Mon, 4 Oct 2021 21:11:25 +0200 Subject: [PATCH 151/206] Enhanced automated tests --- .github/workflows/dockerimage.yml | 6 + ...ckerfile.buster.test_install_altuser.amd64 | 33 ++ .../tests/run_installation_tests2_altuser.sh | 34 ++ .../tests/run_installation_tests3_altuser.sh | 32 ++ .../tests/run_installation_tests_altuser.sh | 32 ++ .../tests/test_installation_altuser.sh | 349 ++++++++++++++++++ 6 files changed, 486 insertions(+) create mode 100644 ci/Dockerfile.buster.test_install_altuser.amd64 create mode 100644 scripts/installscripts/tests/run_installation_tests2_altuser.sh create mode 100644 scripts/installscripts/tests/run_installation_tests3_altuser.sh create mode 100644 scripts/installscripts/tests/run_installation_tests_altuser.sh create mode 100755 scripts/installscripts/tests/test_installation_altuser.sh diff --git a/.github/workflows/dockerimage.yml b/.github/workflows/dockerimage.yml index 20b0a4ba3..9ce6317a5 100644 --- a/.github/workflows/dockerimage.yml +++ b/.github/workflows/dockerimage.yml @@ -19,3 +19,9 @@ jobs: docker run --rm -i rpi-jukebox-rfid-buster:latest /code/scripts/installscripts/tests/run_installation_tests.sh docker run --rm -i rpi-jukebox-rfid-buster:latest /code/scripts/installscripts/tests/run_installation_tests2.sh docker run --rm -i rpi-jukebox-rfid-buster:latest /code/scripts/installscripts/tests/run_installation_tests3.sh + - name: Build Docker image and run tests for alternate user hans + run: | + docker build . --file ./ci/Dockerfile.buster.test_install_altuser.amd64 --tag rpi-jukebox-rfid-buster-altuser:latest + docker run --rm -i rpi-jukebox-rfid-buster-altuser:latest /code/scripts/installscripts/tests/run_installation_tests_altuser.sh + docker run --rm -i rpi-jukebox-rfid-buster-altuser:latest /code/scripts/installscripts/tests/run_installation_tests2_altuser.sh + docker run --rm -i rpi-jukebox-rfid-buster-altuser:latest /code/scripts/installscripts/tests/run_installation_tests3_altuser.sh diff --git a/ci/Dockerfile.buster.test_install_altuser.amd64 b/ci/Dockerfile.buster.test_install_altuser.amd64 new file mode 100644 index 000000000..316c2ba68 --- /dev/null +++ b/ci/Dockerfile.buster.test_install_altuser.amd64 @@ -0,0 +1,33 @@ +FROM debian:buster + +COPY . /code +WORKDIR /code + +RUN groupadd --gid 1000 wurst ;\ + useradd -u 1000 -g 1000 -G sudo -d /home/hans -m -s /bin/bash -p '$1$iV7TOwOe$6ojkJQXyEA9bHd/SqNLNj0' hans ;\ + chown -R 1000:1000 /code /home/hans ;\ + chmod +x /code/scripts/installscripts/buster-install-default.sh ;\ + chmod +x /code/scripts/installscripts/tests/run_installation_tests.sh ;\ + chmod +x /code/scripts/installscripts/tests/run_installation_tests2.sh ;\ + chmod +x /code/scripts/installscripts/tests/run_installation_tests3.sh + +RUN export DEBIAN_FRONTEND=noninteractive ;\ + apt-get update ;\ + apt-get -y install curl gnupg sudo nano systemd apt-utils;\ + echo 'deb http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi' > /etc/apt/sources.list.d/raspi.list ;\ + echo 'deb http://archive.raspberrypi.org/debian/ buster main' >> /etc/apt/sources.list.d/raspi.list ;\ + curl http://raspbian.raspberrypi.org/raspbian.public.key | apt-key add - ;\ + curl http://archive.raspberrypi.org/debian/raspberrypi.gpg.key | apt-key add - ;\ + echo 'hans ALL=(ALL) NOPASSWD: ALL' > /etc/sudoers.d/hans ;\ + apt-get clean ;\ + rm -rf /var/cache/apt/* /var/lib/apt/lists/* + +RUN export DEBIAN_FRONTEND=noninteractive ;\ + apt-get update ;\ + apt-get -y dist-upgrade --auto-remove --purge ;\ + apt-get -y install wget build-essential git iw locales wpasupplicant;\ + apt-get clean ;\ + touch /boot/cmdlinetxt ;\ + rm -rf /var/cache/apt/* /var/lib/apt/lists/* + +USER hans diff --git a/scripts/installscripts/tests/run_installation_tests2_altuser.sh b/scripts/installscripts/tests/run_installation_tests2_altuser.sh new file mode 100644 index 000000000..03bce2af7 --- /dev/null +++ b/scripts/installscripts/tests/run_installation_tests2_altuser.sh @@ -0,0 +1,34 @@ +#!/usr/bin/env bash + +# Install Phoniebox and test it +# Used e.g. for tests on Docker + +# Objective: Test installation with script using a RC522 reader + +# Print current path +echo $PWD + +# Preparations +# Skip interactive Samba WINS config dialog +echo "samba-common samba-common/dhcp boolean false" | sudo debconf-set-selections +# No interactive frontend +export DEBIAN_FRONTEND=noninteractive + +# Run installation (in interactive mode) +# y confirm interactive +# n dont configure wifi +# y PCM as iface +# n no spotify +# y configure mpd +# y audio default location +# y use gpio +# y RFID registration +# 2 use RC522 reader +# yes, reader is connected +# n No reboot + +# TODO check, how this behaves on branches other than develop +GIT_BRANCH=develop bash ./scripts/installscripts/buster-install-default.sh <<< $'y\nn\n\ny\n\nn\n\ny\n\ny\n\ny\n\ny\ny\n2\ny\nn\n' + +# Test installation +./scripts/installscripts/tests/test_installation_altuser.sh diff --git a/scripts/installscripts/tests/run_installation_tests3_altuser.sh b/scripts/installscripts/tests/run_installation_tests3_altuser.sh new file mode 100644 index 000000000..2db9b991f --- /dev/null +++ b/scripts/installscripts/tests/run_installation_tests3_altuser.sh @@ -0,0 +1,32 @@ +#!/usr/bin/env bash + +# Install Phoniebox and test it +# Used e.g. for tests on Docker + +# Objective: Test installation with script using a configuration with mopidy + +# Print current path +echo $PWD + +# Preparations +# Skip interactive Samba WINS config dialog +echo "samba-common samba-common/dhcp boolean false" | sudo debconf-set-selections +# No interactive frontend +export DEBIAN_FRONTEND=noninteractive + +# Run installation (in interactive mode) +# y confirm interactive +# n dont configure wifi +# y Headphone as iface +# y spotify with myuser, mypassword, myclient_id, myclient_secret +# y configure mpd +# y audio default location +# y config gpio +# n no RFID registration +# n No reboot + +# TODO check, how this behaves on branches other than develop +GIT_BRANCH=develop bash ./scripts/installscripts/buster-install-default.sh <<< $'y\nn\n\ny\n\ny\nmyuser\nmypassword\nmyclient_id\nmyclient_secret\n\ny\n\ny\n\ny\n\ny\nn\nn\n' + +# Test installation +./scripts/installscripts/tests/test_installation_altuser.sh diff --git a/scripts/installscripts/tests/run_installation_tests_altuser.sh b/scripts/installscripts/tests/run_installation_tests_altuser.sh new file mode 100644 index 000000000..d06aac742 --- /dev/null +++ b/scripts/installscripts/tests/run_installation_tests_altuser.sh @@ -0,0 +1,32 @@ +#!/usr/bin/env bash + +# Install Phoniebox and test it +# Used e.g. for tests on Docker + +# Objective: Test installation with script using a simple configuration + +# Print current path +echo $PWD + +# Preparations +# Skip interactive Samba WINS config dialog +echo "samba-common samba-common/dhcp boolean false" | sudo debconf-set-selections +# No interactive frontend +export DEBIAN_FRONTEND=noninteractive + +# Run installation (in interactive mode) +# y confirm interactive +# n dont configure wifi +# y Headphone as iface +# n no spotify +# y configure mpd +# y audio default location +# y config gpio +# n no RFID registration +# n No reboot + +# TODO check, how this behaves on branches other than develop +GIT_BRANCH=develop bash ./scripts/installscripts/buster-install-default.sh <<< $'y\nn\n\ny\n\nn\n\ny\n\ny\n\ny\n\ny\nn\nn\n' + +# Test installation +./scripts/installscripts/tests/test_installation_altuser.sh diff --git a/scripts/installscripts/tests/test_installation_altuser.sh b/scripts/installscripts/tests/test_installation_altuser.sh new file mode 100755 index 000000000..de61a2f0b --- /dev/null +++ b/scripts/installscripts/tests/test_installation_altuser.sh @@ -0,0 +1,349 @@ +#!/usr/bin/env bash + +# Test to verify that the installation script works as expected. +# This script needs to be adapted, if new packages, etc are added to the install script + +# The absolute path to the folder which contains this script +PATHDATA="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +HOME_DIR="/home/hans" + +tests=0 +failed_tests=0 + +# Tool functions + +check_chmod_chown() { + local mod_expected=$1 + local user_expected=$2 + local group_expected=$3 + local dir=$4 + local files=$5 + + for file in ${files}; + do + mod_actual=$(stat --format '%a' "${dir}/${file}") + user_actual=$(stat -c '%U' "${dir}/${file}") + group_actual=$(stat -c '%G' "${dir}/${file}") + test ! "${mod_expected}" -eq "${mod_actual}" && echo " ERROR: ${file} actual mod (${mod_actual}) differs from expected (${mod_expected})!" + test ! "${user_expected}" == "${user_actual}" && echo " ERROR: ${file} actual owner (${user_actual}) differs from expected (${user_expected})!" + test ! "${group_expected}" == "${group_actual}" && echo " ERROR: ${file} actual group (${group_actual}) differs from expected (${group_expected})!" + done +} + +check_file_contains_string() { + local string="$1" + local file="$2" + + # sudo is required for checking /etc/mopidy/mopidy.conf + if [[ ! $(sudo grep -iw "${string}" "${file}") ]]; then + echo " ERROR: '${string}' not found in ${file}" + ((failed_tests++)) + fi + ((tests++)) +} + +check_service_state() { + local service="$1" + local desired_state="$2" + + local actual_state=$(systemctl show -p ActiveState --value "${service}") + if [[ ! "${actual_state}" == "${desired_state}" ]]; then + echo " ERROR: service ${service} is not ${desired_state} (state: ${actual_state})." + ((failed_tests++)) + fi + ((tests++)) +} + +check_service_enablement() { + local service="$1" + local desired_enablement="$2" + + local actual_enablement=$(systemctl is-enabled "${service}") + if [[ ! "${actual_enablement}" == "${desired_enablement}" ]]; then + echo " ERROR: service ${service} is not ${desired_enablement} (state: ${actual_enablement})." + ((failed_tests++)) + fi + ((tests++)) +} + +check_variable() { + local variable=${1} + # check if variable exist and if it's empty + test -z "${!variable+x}" && echo "ERROR: \$${variable} is missing!" && fail=true && return + test "${!variable}" == "" && echo "ERROR: \$${variable} is empty!" && fail=true +} + +# Verify functions + +verify_conf_file() { + local install_conf="${HOME_DIR}/PhonieboxInstall.conf" + printf "\nTESTING PhonieboxInstall.conf file...\n\n" + # check that PhonieboxInstall.conf exists and is not empty + + # check if config file exists + if [[ -f "${install_conf}" ]]; then + # Source config file + source "${install_conf}" + cat "${install_conf}" + echo "" + else + echo "ERROR: ${install_conf} does not exist!" + exit 1 + fi + + fail=false + if [[ -z "${WIFIconfig+x}" ]]; then + echo " ERROR: \$WIFIconfig is missing or not set!" && fail=true + else + echo "\$WIFIconfig is set to '$WIFIconfig'" + if [[ "$WIFIconfig" == "YES" ]]; then + check_variable "WIFIcountryCode" + check_variable "WIFIssid" + check_variable "WIFIpass" + check_variable "WIFIip" + check_variable "WIFIipRouter" + fi + fi + check_variable "EXISTINGuse" + check_variable "AUDIOiFace" + + if [[ -z "${SPOTinstall+x}" ]]; then + echo " ERROR: \$SPOTinstall is missing or not set!" && fail=true + else + echo "\$SPOTinstall is set to '$SPOTinstall'" + if [ "$SPOTinstall" == "YES" ]; then + check_variable "SPOTIuser" + check_variable "SPOTIpass" + check_variable "SPOTIclientid" + check_variable "SPOTIclientsecret" + fi + fi + check_variable "MPDconfig" + check_variable "DIRaudioFolders" + + if [ "${fail}" == "true" ]; then + exit 1 + fi + + echo "" +} + +verify_wifi_settings() { + local dhcpcd_conf="/etc/dhcpcd.conf" + local wpa_supplicant_conf="/etc/wpa_supplicant/wpa_supplicant.conf" + printf "\nTESTING WiFi settings...\n" + + # check conf files + check_file_contains_string "static ip_address=${WIFIip}/24" "${dhcpcd_conf}" + check_file_contains_string "static routers=${WIFIipRouter}" "${dhcpcd_conf}" + check_file_contains_string "static domain_name_servers=8.8.8.8 ${WIFIipRouter}" "${dhcpcd_conf}" + + check_file_contains_string "country=${WIFIcountryCode}" "${wpa_supplicant_conf}" + check_file_contains_string "ssid=\"${WIFIssid}\"" "${wpa_supplicant_conf}" + check_file_contains_string "psk=\"${WIFIpass}\"" "${wpa_supplicant_conf}" + + # check owner and permissions + check_chmod_chown 664 root netdev "/etc" "dhcpcd.conf" + check_chmod_chown 664 root netdev "/etc/wpa_supplicant" "wpa_supplicant.conf" + + # check that dhcpcd service is enabled and started + check_service_state dhcpcd active + check_service_enablement dhcpcd enabled +} + +verify_apt_packages(){ + local packages="libspotify-dev samba +samba-common-bin gcc lighttpd php7.3-common php7.3-cgi php7.3 at mpd mpc mpg123 git ffmpeg +resolvconf spi-tools python3 python3-dev python3-pip python3-mutagen python3-gpiozero +python3-spidev netcat alsa-utils" + # TODO apt-transport-https checking only on RPi is currently a workaround + local packages_raspberrypi="apt-transport-https raspberrypi-kernel-headers" + local packages_spotify="mopidy mopidy-mpd mopidy-local mopidy-spotify libspotify12 +python3-cffi python3-ply python3-pycparser python3-spotify" + + printf "\nTESTING installed packages...\n\n" + + # also check for spotify packages if it has been installed + if [[ "${SPOTinstall}" == "YES" ]]; then + packages="${packages} ${packages_spotify}" + fi + + # check for raspberry pi packages only on raspberry pi's but not on test docker containers running on x86_64 machines + if [[ $(uname -m) =~ ^armv.+$ ]]; then + packages="${packages} ${packages_raspberrypi}" + fi + + for package in ${packages} + do + if [[ $(apt -qq list "${package}" 2>/dev/null | grep 'installed') ]]; then + echo " ${package} is installed" + else + echo " ERROR: ${package} is not installed" + ((failed_tests++)) + fi + ((tests++)) + done +} + +verify_pip_packages() { + local modules="evdev spi-py youtube_dl pyserial RPi.GPIO" + local modules_spotify="Mopidy-Iris" + local modules_pn532="py532lib" + local modules_rc522="pi-rc522" + local deviceName="${JUKEBOX_HOME_DIR}"/scripts/deviceName.txt + + printf "\nTESTING installed pip modules...\n\n" + + # also check for spotify pip modules if it has been installed + if [[ "${SPOTinstall}" == "YES" ]]; then + modules="${modules} ${modules_spotify}" + fi + + if [[ -f "${deviceName}" ]]; then + # RC522 reader is used + if grep -Fxq "${deviceName}" MFRC522 + then + modules="${modules} ${modules_rc522}" + fi + + # PN532 reader is used + if grep -Fxq "${deviceName}" PN532 + then + modules="${modules} ${modules_pn532}" + fi + fi + + for module in ${modules} + do + if [[ $(pip3 show "${module}") ]]; then + echo " ${module} is installed" + else + echo " ERROR: pip module ${module} is not installed" + ((failed_tests++)) + fi + ((tests++)) + done +} + +verify_samba_config() { + printf "\nTESTING samba config...\n\n" + check_chmod_chown 644 root root "/etc/samba" "smb.conf" + + check_file_contains_string "path=${DIRaudioFolders}" "/etc/samba/smb.conf" +} + +verify_webserver_config() { + printf "\nTESTING webserver config...\n\n" + check_chmod_chown 644 root root "/etc/lighttpd" "lighttpd.conf" + check_chmod_chown 644 root root "/etc/lighttpd/conf-available" "15-fastcgi-php.conf" + check_chmod_chown 644 root root "/etc/php/7.3/cgi" "php.ini" + check_chmod_chown 440 root root "/etc" "sudoers" + + # Bonus TODO: check that fastcgi and fastcgi-php mods are enabled +} + +verify_systemd_services() { + printf "\nTESTING systemd services...\n\n" + # check that services exist + check_chmod_chown 644 root root "/etc/systemd/system" "phoniebox-rfid-reader.service phoniebox-startup-scripts.service phoniebox-gpio-control.service phoniebox-idle-watchdog.service" + + # check that phoniebox services are enabled + check_service_enablement phoniebox-idle-watchdog enabled + check_service_enablement phoniebox-rfid-reader enabled + check_service_enablement phoniebox-startup-scripts enabled + check_service_enablement phoniebox-gpio-control enabled +} + +verify_spotify_config() { + local etc_mopidy_conf="/etc/mopidy/mopidy.conf" + local mopidy_conf="${HOME_DIR}/.config/mopidy/mopidy.conf" + + printf "\nTESTING spotify config...\n\n" + + check_file_contains_string "username = ${SPOTIuser}" "${etc_mopidy_conf}" + check_file_contains_string "password = ${SPOTIpass}" "${etc_mopidy_conf}" + check_file_contains_string "client_id = ${SPOTIclientid}" "${etc_mopidy_conf}" + check_file_contains_string "client_secret = ${SPOTIclientsecret}" "${etc_mopidy_conf}" + check_file_contains_string "media_dir = ${DIRaudioFolders}" "${etc_mopidy_conf}" + + check_file_contains_string "username = ${SPOTIuser}" "${mopidy_conf}" + check_file_contains_string "password = ${SPOTIpass}" "${mopidy_conf}" + check_file_contains_string "client_id = ${SPOTIclientid}" "${mopidy_conf}" + check_file_contains_string "client_secret = ${SPOTIclientsecret}" "${mopidy_conf}" + check_file_contains_string "media_dir = ${DIRaudioFolders}" "${mopidy_conf}" + + # check that mopidy service is enabled + check_service_enablement mopidy enabled + # check that mpd service is disabled + check_service_enablement mpd disabled +} + +verify_mpd_config() { + local mpd_conf="/etc/mpd.conf" + + printf "\nTESTING mpd config...\n\n" + + check_file_contains_string "^[[:blank:]]\+mixer_control[[:blank:]]\+\"${AUDIOiFace}\"" "${mpd_conf}" + check_file_contains_string "^music_directory[[:blank:]]\+\"${DIRaudioFolders}\"" "${mpd_conf}" + + check_chmod_chown 640 mpd audio "/etc" "mpd.conf" + + # check that mpd service is enabled, when Spotify support is not installed + if [[ "${SPOTinstall}" == "NO" ]]; then + check_service_enablement mpd enabled + fi +} + +verify_folder_access() { + local jukebox_dir="${HOME_DIR}/RPi-Jukebox-RFID" + printf "\nTESTING folder access...\n\n" + + # check owner and permissions + check_chmod_chown 775 hans www-data "${jukebox_dir}" "playlists shared htdocs settings" + # ${DIRaudioFolders} => "testing" "audiofolders" + check_chmod_chown 775 hans www-data "${DIRaudioFolders}/.." "audiofolders" + + #find .sh and .py scripts that are NOT executable + local count=$(find . -maxdepth 1 -type f \( -name "*.sh" -o -name "*.py" \) ! -executable | wc -l) + if [[ "${count}" -gt 0 ]]; then + echo " ERROR: found ${count} '*.sh' and/or '*.py' files that are NOT executable:" + find . -maxdepth 1 -type f \( -name "*.sh" -o -name "*.py" \) ! -executable + ((failed_tests++)) + fi + ((tests++)) +} + +main() { + printf "\nTesting installation:\n" + verify_conf_file + if [[ "$WIFIconfig" == "YES" ]]; then + verify_wifi_settings + fi + verify_apt_packages + verify_pip_packages + verify_samba_config + verify_webserver_config + verify_systemd_services + if [[ "${SPOTinstall}" == "YES" ]]; then + verify_spotify_config + fi + verify_mpd_config + verify_folder_access +} + +start=$(date +%s) +main +end=$(date +%s) + +runtime=$((end-start)) +((h=${runtime}/3600)) +((m=($runtime%3600)/60)) +((s=$runtime%60)) + +if [[ "${failed_tests}" -gt 0 ]]; then + echo "${failed_tests} Test(s) failed (of ${tests} tests) (in ${h}h ${m}m ${s}s)." + exit 1 +else + echo "${tests} tests done in ${h}h ${m}m ${s}s." +fi + From f941bdb9b3c69d22232216e4f593283e80df7220 Mon Sep 17 00:00:00 2001 From: Groovylein Date: Mon, 4 Oct 2021 21:24:31 +0200 Subject: [PATCH 152/206] Fixing permissions in docker image altuser --- ci/Dockerfile.buster.test_install_altuser.amd64 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ci/Dockerfile.buster.test_install_altuser.amd64 b/ci/Dockerfile.buster.test_install_altuser.amd64 index 316c2ba68..9def1fcbf 100644 --- a/ci/Dockerfile.buster.test_install_altuser.amd64 +++ b/ci/Dockerfile.buster.test_install_altuser.amd64 @@ -7,9 +7,9 @@ RUN groupadd --gid 1000 wurst ;\ useradd -u 1000 -g 1000 -G sudo -d /home/hans -m -s /bin/bash -p '$1$iV7TOwOe$6ojkJQXyEA9bHd/SqNLNj0' hans ;\ chown -R 1000:1000 /code /home/hans ;\ chmod +x /code/scripts/installscripts/buster-install-default.sh ;\ - chmod +x /code/scripts/installscripts/tests/run_installation_tests.sh ;\ - chmod +x /code/scripts/installscripts/tests/run_installation_tests2.sh ;\ - chmod +x /code/scripts/installscripts/tests/run_installation_tests3.sh + chmod +x /code/scripts/installscripts/tests/run_installation_tests_altuser.sh ;\ + chmod +x /code/scripts/installscripts/tests/run_installation_tests2_altuser.sh ;\ + chmod +x /code/scripts/installscripts/tests/run_installation_tests3_altuser.sh RUN export DEBIAN_FRONTEND=noninteractive ;\ apt-get update ;\ From e4dc8d302547d003ade8efa3b32149a66922b07f Mon Sep 17 00:00:00 2001 From: pabera <1260686+pabera@users.noreply.github.com> Date: Fri, 8 Oct 2021 09:02:02 +0200 Subject: [PATCH 153/206] Update future3.md --- .github/ISSUE_TEMPLATE/future3.md | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/future3.md b/.github/ISSUE_TEMPLATE/future3.md index a2a2d7c32..ab5d6bf00 100644 --- a/.github/ISSUE_TEMPLATE/future3.md +++ b/.github/ISSUE_TEMPLATE/future3.md @@ -1,8 +1,19 @@ --- -name: Future3 Development Issue -about: For developing issues on Future3 (Version 3 pre-development) -title: "ISSUE SUMMARY on Future3" +name: future3 Bug Report +about: Use this template to report bugs for the upcoming version 3 +title: "ISSUE SUMMARY on future3" labels: future3, bug, needs triage --- -## Issue in Future3 +### Describe your problem + +Core, Web application ... + +#### What's your hardware set up? + +RPi version, RFID Reader, Audio devices etc. + +#### If possible, try to attach logs from ... (paths from RPi) + + * `~/RPi-Jukebox-RFID/shared/logs` -> General Jukebox logs + * `~/INSTALL-XXXXXXXXX.log` -> The logfile being generated when installing the Jukebox code From 2248fa3edf5822179fbb064b4d13581568f4e9e6 Mon Sep 17 00:00:00 2001 From: pabera <1260686+pabera@users.noreply.github.com> Date: Fri, 8 Oct 2021 20:34:51 +0200 Subject: [PATCH 154/206] Announce future3 Aplha 1 on develop branch Readme (#1547) * Announce future3 Aplha 1 * Update version naming --- README.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/README.md b/README.md index 70ea8adf6..0c1bd83f8 100755 --- a/README.md +++ b/README.md @@ -8,6 +8,31 @@ A contactless jukebox for the Raspberry Pi, playing audio files, playlists, podcasts, web streams and spotify triggered by RFID cards. All plug and play via USB, no soldering iron needed. Update: if you must, it now also features a howto for adding GPIO buttons controls. +--- + + +## 🔥 Version 3 is coming ... + +Over the last few months, a few Phoniebox fans started to think about a potential future of the Jukebox code. Version 2 is mature +and works well but doesn't scale enough for future development. It's the mix of Shell, Python and PHP. The goal was to tidy up the codebase, focus on a single programming language for the core (Python), establish a solid plugin system and build a responsive web client. [Read on here if you want to learn about more reasons](https://rpi-jukebox-rfid.readthedocs.io/en/latest/). + +### ☝️ Looking for early adopters, testers and contributors + +We would like to invite you to try out this new version called `future3`. Let us know what you think about the new architecture, the new web application and help us find bugs (or fix them proactively). + +Just a handful of features from version 2.x have been ported to version 3 so far. Specifically GPIO support is currently missing but it's in active development and soon to arrive. + +If you like to try it out or contribute, check out the following references. If you post issues or pull requests on Github, make sure you label them with `[future3]`. + +* 🚀 **[Install Jukebox Version 3 Alpha](https://rpi-jukebox-rfid.readthedocs.io/en/latest/install.html)** +* 🐛 [Report a bug](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/new?assignees=&labels=future3%2C+bug%2C+needs+triage&template=future3.md&title=ISSUE+SUMMARY+on+future3) +* ☑️ [Feature Status](https://rpi-jukebox-rfid.readthedocs.io/en/latest/featurelist.html) +* 📖 [Documentation](https://rpi-jukebox-rfid.readthedocs.io/en/latest/) +* 👩‍💻 [Development](https://rpi-jukebox-rfid.readthedocs.io/en/latest/development_environment.html) +* 🦄 Code: [Release Branch](https://github.com/MiczFlor/RPi-Jukebox-RFID/tree/future3/main), [Development Branch](https://github.com/MiczFlor/RPi-Jukebox-RFID/tree/future3/develop) + +--- + ## The Phoniebox Calendar 2021 is here!!! Another bunch of wonderful designs! 2021 is the third Phoniebox calendar. If you are interested, you can see the [2019 and 2020 calendars in the docs folder](https://github.com/MiczFlor/RPi-Jukebox-RFID/tree/develop/docs). Download [the printable PDF of 2021 here](https://mi.cz/static/2021-Phoniebox-Calendar.pdf). @@ -20,6 +45,7 @@ The year 2020 also has a clear *:star: community hero :star:*: @s-martin has bee * **Discussions forums** we use Github's Discussions feature for a more forum style. Please ask general questions in [Discussions](https://github.com/MiczFlor/RPi-Jukebox-RFID/discussions), bugs and enhancements should still be in [Issues](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues). +* **Phoniebox [future3 Alpha 1](https://rpi-jukebox-rfid.readthedocs.io/en/latest/) released (2021-10)** * **Gitter Community** we got ourselves a gitter community; chat us up at https://gitter.im/phoniebox * **Phoniebox [2.3](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/6?closed=1) released (2021-08-12)** From bae35c5aba8d493d87945be5f96b0bf650cf0179 Mon Sep 17 00:00:00 2001 From: ChisSoc <75833833+ChisSoc@users.noreply.github.com> Date: Tue, 12 Oct 2021 23:24:12 +0200 Subject: [PATCH 155/206] Increase server-side github flow checks for future3 branches --- .github/workflows/pythonpackage_future3.yml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/pythonpackage_future3.yml b/.github/workflows/pythonpackage_future3.yml index 61ab6f312..a2671b1dc 100644 --- a/.github/workflows/pythonpackage_future3.yml +++ b/.github/workflows/pythonpackage_future3.yml @@ -40,7 +40,10 @@ jobs: - name: Lint with flake8 run: | pip install flake8 - # stop the build if there are Python syntax errors or undefined names - flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics --filename=*.py,*.py.* - # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide - flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics --filename=*.py,*.py.* + # Stop the build if linting fails + ./run_flake8.sh + - name: Build the docs + run: | + # Stop the build if documentation cannot be built + # Treat all warnings as errors + cd docs/sphinx && sphinx-build -W -a -b html . _build From f85411a7b5c4b3baf446a92dcef05083bf9e51ca Mon Sep 17 00:00:00 2001 From: ChisSoc <75833833+ChisSoc@users.noreply.github.com> Date: Tue, 12 Oct 2021 23:40:45 +0200 Subject: [PATCH 156/206] Fix workflow file --- .github/workflows/pythonpackage_future3.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pythonpackage_future3.yml b/.github/workflows/pythonpackage_future3.yml index a2671b1dc..3dca29880 100644 --- a/.github/workflows/pythonpackage_future3.yml +++ b/.github/workflows/pythonpackage_future3.yml @@ -41,9 +41,10 @@ jobs: run: | pip install flake8 # Stop the build if linting fails - ./run_flake8.sh + run_flake8.sh - name: Build the docs + working-directory: ./docs/sphinx run: | # Stop the build if documentation cannot be built # Treat all warnings as errors - cd docs/sphinx && sphinx-build -W -a -b html . _build + sphinx-build -W -a -b html . _build From 04d8a57b966c9c426cd130a507610cc97f4f140d Mon Sep 17 00:00:00 2001 From: ChisSoc <75833833+ChisSoc@users.noreply.github.com> Date: Wed, 13 Oct 2021 00:18:06 +0200 Subject: [PATCH 157/206] Indentation fix --- .github/workflows/pythonpackage_future3.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pythonpackage_future3.yml b/.github/workflows/pythonpackage_future3.yml index 3dca29880..09eb2c87c 100644 --- a/.github/workflows/pythonpackage_future3.yml +++ b/.github/workflows/pythonpackage_future3.yml @@ -7,12 +7,14 @@ on: paths: - '**.py' - '**.py.*' + - 'docs/sphinx/**' pull_request: branches: - 'future3/**' paths: - '**.py' - '**.py.*' + - 'docs/sphinx/**' jobs: build: @@ -41,8 +43,8 @@ jobs: run: | pip install flake8 # Stop the build if linting fails - run_flake8.sh - - name: Build the docs + ./run_flake8.sh + - name: Build the docs working-directory: ./docs/sphinx run: | # Stop the build if documentation cannot be built From 385f4fb6e3cafb7c3b514eef578eb701489e0904 Mon Sep 17 00:00:00 2001 From: ChisSoc <75833833+ChisSoc@users.noreply.github.com> Date: Wed, 13 Oct 2021 00:36:15 +0200 Subject: [PATCH 158/206] Dependency fix --- .github/workflows/pythonpackage_future3.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/pythonpackage_future3.yml b/.github/workflows/pythonpackage_future3.yml index 09eb2c87c..12eb1bcff 100644 --- a/.github/workflows/pythonpackage_future3.yml +++ b/.github/workflows/pythonpackage_future3.yml @@ -49,4 +49,5 @@ jobs: run: | # Stop the build if documentation cannot be built # Treat all warnings as errors + pip install pyzmq sphinx-build -W -a -b html . _build From cb020cd1e0dbade1108dc18e55536e05af74e518 Mon Sep 17 00:00:00 2001 From: ChisSoc <75833833+ChisSoc@users.noreply.github.com> Date: Wed, 13 Oct 2021 19:30:26 +0200 Subject: [PATCH 159/206] Add dependencies in future3 python + doc workflow --- .github/workflows/pythonpackage_future3.yml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/.github/workflows/pythonpackage_future3.yml b/.github/workflows/pythonpackage_future3.yml index 12eb1bcff..1d67c012f 100644 --- a/.github/workflows/pythonpackage_future3.yml +++ b/.github/workflows/pythonpackage_future3.yml @@ -1,4 +1,4 @@ -name: Python Checks and Tests +name: Python + Docs Checks and Tests on: push: @@ -23,7 +23,7 @@ jobs: strategy: max-parallel: 4 matrix: - python-version: [3.6, 3.7, 3.8] + python-version: [3.7, 3.8] steps: - uses: actions/checkout@v1 @@ -39,6 +39,12 @@ jobs: pip install wheel pip install spidev pip install -r requirements.txt + # For operation of the Jukebox, ZMQ must be compiled from sources due to Websocket support + # When just building the docs, the regular ZMQ package is sufficient + pip install -r docs/sphinx/requirements_pyzmq.txt + pip install -r docs/sphinx/requirements.txt + # Also install all optional dependencies + pip install -r pip install -r src/jukebox/components/rfid/fake_gui_reader/requirements.txt - name: Lint with flake8 run: | pip install flake8 @@ -49,5 +55,4 @@ jobs: run: | # Stop the build if documentation cannot be built # Treat all warnings as errors - pip install pyzmq - sphinx-build -W -a -b html . _build + sphinx-build -W --keep-going -T -a -E -b html . _build From 98c0f96c27270f47a5023a26b7cd105ba2446f54 Mon Sep 17 00:00:00 2001 From: ChisSoc <75833833+ChisSoc@users.noreply.github.com> Date: Wed, 13 Oct 2021 19:31:39 +0200 Subject: [PATCH 160/206] Syntax fix in future3 python + doc workflow --- .github/workflows/pythonpackage_future3.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pythonpackage_future3.yml b/.github/workflows/pythonpackage_future3.yml index 1d67c012f..968fa26af 100644 --- a/.github/workflows/pythonpackage_future3.yml +++ b/.github/workflows/pythonpackage_future3.yml @@ -44,7 +44,7 @@ jobs: pip install -r docs/sphinx/requirements_pyzmq.txt pip install -r docs/sphinx/requirements.txt # Also install all optional dependencies - pip install -r pip install -r src/jukebox/components/rfid/fake_gui_reader/requirements.txt + pip install -r src/jukebox/components/rfid/fake_gui_reader/requirements.txt - name: Lint with flake8 run: | pip install flake8 From fe34629e3ca03a5297c21a6e8de12a2b378e845a Mon Sep 17 00:00:00 2001 From: ChisSoc <75833833+ChisSoc@users.noreply.github.com> Date: Wed, 13 Oct 2021 19:39:20 +0200 Subject: [PATCH 161/206] Path fix in future3 python + doc workflow --- .github/workflows/pythonpackage_future3.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pythonpackage_future3.yml b/.github/workflows/pythonpackage_future3.yml index 968fa26af..c53756ca7 100644 --- a/.github/workflows/pythonpackage_future3.yml +++ b/.github/workflows/pythonpackage_future3.yml @@ -44,7 +44,7 @@ jobs: pip install -r docs/sphinx/requirements_pyzmq.txt pip install -r docs/sphinx/requirements.txt # Also install all optional dependencies - pip install -r src/jukebox/components/rfid/fake_gui_reader/requirements.txt + pip install -r src/jukebox/components/rfid/fake_reader_gui/requirements.txt - name: Lint with flake8 run: | pip install flake8 From e0979087acf052e25b0f06593a57002a4386884e Mon Sep 17 00:00:00 2001 From: pabera <1260686+pabera@users.noreply.github.com> Date: Sat, 16 Oct 2021 00:05:06 +0200 Subject: [PATCH 162/206] Update readme: future3 is under active development and not stable yet --- README.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 0c1bd83f8..12aa311be 100755 --- a/README.md +++ b/README.md @@ -18,11 +18,13 @@ and works well but doesn't scale enough for future development. It's the mix of ### ☝️ Looking for early adopters, testers and contributors -We would like to invite you to try out this new version called `future3`. Let us know what you think about the new architecture, the new web application and help us find bugs (or fix them proactively). +👩‍💻 For Braveheats only! If you want to test or help develop this new version called `future3`, let us know what you think about the new architecture, the new web application and help us find bugs (or fix them proactively). -Just a handful of features from version 2.x have been ported to version 3 so far. Specifically GPIO support is currently missing but it's in active development and soon to arrive. +But please be aware, Version 3 is still under heavy development and cannot be considered stable! Just a handful of features from version 2.x have been ported to version 3 so far. Specifically GPIO support is currently missing but it's in active development and soon to arrive. To install and run this version you will need some understanding of programming. -If you like to try it out or contribute, check out the following references. If you post issues or pull requests on Github, make sure you label them with `[future3]`. +⚠️ If you build a Jukebox and depend on a stable environment, please choose Version 2.x. + +If you seek the adventure, your support will be more then welcome. Before contributing, check out the following references. * 🚀 **[Install Jukebox Version 3 Alpha](https://rpi-jukebox-rfid.readthedocs.io/en/latest/install.html)** * 🐛 [Report a bug](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/new?assignees=&labels=future3%2C+bug%2C+needs+triage&template=future3.md&title=ISSUE+SUMMARY+on+future3) From cda4e6efe7e5f9379c6a133376d62439ef3e92f0 Mon Sep 17 00:00:00 2001 From: pabera <1260686+pabera@users.noreply.github.com> Date: Thu, 28 Oct 2021 23:34:42 +0200 Subject: [PATCH 163/206] [future3] Announce Alpha 2 Release --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index 12aa311be..999b807bc 100755 --- a/README.md +++ b/README.md @@ -13,6 +13,14 @@ A contactless jukebox for the Raspberry Pi, playing audio files, playlists, podc ## 🔥 Version 3 is coming ... +#### Newest release: future3 Alpha 2 -> 28. October 2021 + +* Better Installation Script +* More stable backend +* Prepared playlist support +* Refactored Card commands +* Album & Folder view in web application + Over the last few months, a few Phoniebox fans started to think about a potential future of the Jukebox code. Version 2 is mature and works well but doesn't scale enough for future development. It's the mix of Shell, Python and PHP. The goal was to tidy up the codebase, focus on a single programming language for the core (Python), establish a solid plugin system and build a responsive web client. [Read on here if you want to learn about more reasons](https://rpi-jukebox-rfid.readthedocs.io/en/latest/). From e355d8478fd707550bcc0e93a531a22b8b133c3e Mon Sep 17 00:00:00 2001 From: Micz Flor Date: Fri, 29 Oct 2021 13:09:05 +0200 Subject: [PATCH 164/206] Update README.md The current README takes a long time to read until you understand that you should not use Version 3 in production yet. Which is why I added this link at the top - and left the version 3 part unchanged. Because it is the future and deserves presence, contributors, applause, testers and looooove --- README.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 999b807bc..ca73094fe 100755 --- a/README.md +++ b/README.md @@ -10,10 +10,14 @@ A contactless jukebox for the Raspberry Pi, playing audio files, playlists, podc --- +## Install latest Phoniebox version + +If you are looking for the latest stable version, use the [install script for Raspberry Pi OS Stretch](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/INSTALL-stretch). +If you dare to go where only few have gone before, become an alpha-tester, bug reporter, contributor for the exciting, totally re-written, up and coming, yet feature incomplete and unstable version 3 of the Phoniebox code base: ## 🔥 Version 3 is coming ... -#### Newest release: future3 Alpha 2 -> 28. October 2021 +#### Newest release: V3.0.0 Alpha 2 -> 28. October 2021 * Better Installation Script * More stable backend @@ -26,7 +30,7 @@ and works well but doesn't scale enough for future development. It's the mix of ### ☝️ Looking for early adopters, testers and contributors -👩‍💻 For Braveheats only! If you want to test or help develop this new version called `future3`, let us know what you think about the new architecture, the new web application and help us find bugs (or fix them proactively). +👩‍💻 For Bravehearts only! If you want to test or help develop this new version called `future3`, let us know what you think about the new architecture, the new web application and help us find bugs (or fix them proactively). But please be aware, Version 3 is still under heavy development and cannot be considered stable! Just a handful of features from version 2.x have been ported to version 3 so far. Specifically GPIO support is currently missing but it's in active development and soon to arrive. To install and run this version you will need some understanding of programming. From 21f612a61977d4fc4f8e08f5a8b4f0a4cdb4eb7a Mon Sep 17 00:00:00 2001 From: Andreas Brett Date: Sun, 31 Oct 2021 13:04:43 +0100 Subject: [PATCH 165/206] move config settings to a dict For more intuitive management of configuration settings, these reside in a global dict now. dict allows to comment out unused settings (like e.g. mqttCA, mqttCert, mqttKey) rather than having to set them to "". --- .../MQTT-protocol/README.md | 8 +- .../MQTT-protocol/daemon_mqtt_client.py | 95 ++++++++++--------- 2 files changed, 54 insertions(+), 49 deletions(-) diff --git a/components/smart-home-automation/MQTT-protocol/README.md b/components/smart-home-automation/MQTT-protocol/README.md index b4fae442b..aa76da5bd 100644 --- a/components/smart-home-automation/MQTT-protocol/README.md +++ b/components/smart-home-automation/MQTT-protocol/README.md @@ -9,7 +9,7 @@ This module will integrate Phoniebox into a Smart Home environment and make it r * disable wifi in the evening when Phoniebox is used as a sleeping device * shutdown at night when it's finally bedtime * lower the volume in the mornings (to keep you asleep) -* control Phoniebox via Voice Assistants like [Snips](https://snips.ai) (which also uses MQTT!), Google Home, Amazon Echo,... +* control Phoniebox via Voice Assistants like [Rhasspy](https://github.com/rhasspy/rhasspy) (which also uses MQTT!), Google Home, Amazon Echo,... * let Phoniebox play an informational note to your kids that the weather outside is great and they should consider going outside (if your Smart Home has weather-based sensors) * run statistics on when and how your kid uses Phoniebox * arrange terms with your kid how long the Phoniebox can be used (e.g. max. 2h per day) @@ -145,16 +145,18 @@ sudo cp /home/pi/RPi-Jukebox-RFID/components/smart-home-automation/MQTT-protocol sudo cp /home/pi/RPi-Jukebox-RFID/components/smart-home-automation/MQTT-protocol/phoniebox-mqtt-client.service.stretch-default.sample /etc/systemd/system/phoniebox-mqtt-client.service ~~~ -Now edit the file `/home/pi/RPi-Jukebox-RFID/scripts/daemon_mqtt_client.py` to match your requirements. -Now continue and activate the service. +Now edit the `SETTINGS` section in `/home/pi/RPi-Jukebox-RFID/scripts/daemon_mqtt_client.py` to match your environment (MQTT connection details etc.). Now continue and activate the service. ~~~ # Now systemd has to be notified that there's a new service file: sudo systemctl daemon-reload + # Now enable the service file, to start it on reboot: sudo systemctl enable phoniebox-mqtt-client + # And now you can reboot to have your daemon running or start it manually: sudo systemctl start phoniebox-mqtt-client + # To see if the reader process is running use the following command: sudo systemctl status phoniebox-mqtt-client ~~~ diff --git a/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py b/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py index ec9769e5d..b8de2a464 100644 --- a/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py +++ b/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py @@ -14,19 +14,22 @@ # ---------------------------------------------------------- # SETTINGS # ---------------------------------------------------------- -DEBUG = False -mqttBaseTopic = "phoniebox" # MQTT base topic -mqttClientId = "phoniebox" # MQTT client ID -mqttHostname = "openHAB" # MQTT server hostname -mqttPort = 8883 # MQTT server port (typically 1883 for unencrypted, 8883 for encrypted) -mqttUsername = "" # username for user/pass based authentication -mqttPassword = "" # password for user/pass based authentication -mqttCA = "/home/pi/MQTT/mqtt-ca.crt" # path to server certificate for certificate-based authentication -mqttCert = "/home/pi/MQTT/mqtt-client-phoniebox.crt" # path to client certificate for certificate-based authentication -mqttKey = "/home/pi/MQTT/mqtt-client-phoniebox.key" # path to client keyfile for certificate-based authentication -mqttConnectionTimeout = 60 # in seconds; timeout for MQTT connection -refreshIntervalPlaying = 5 # in seconds; how often should the status be sent to MQTT (while playing) -refreshIntervalIdle = 30 # in seconds; how often should the status be sent to MQTT (when NOT playing) +config = { + "DEBUG": False, + "mqttBaseTopic": "phoniebox", # MQTT base topic + "mqttClientId": "phoniebox", # MQTT client ID + "mqttHostname": "openHAB", # MQTT server hostname + "mqttPort": 8883, # MQTT server port (typically 1883 for unencrypted, 8883 for encrypted) + "mqttUsername": "", # username for user/pass based authentication + "mqttPassword": "", # password for user/pass based authentication + "mqttCA": "/home/pi/MQTT/mqtt-ca.crt", # path to server certificate for certificate-based authentication + "mqttCert": "/home/pi/MQTT/mqtt-client-phoniebox.crt", # path to client certificate for certificate-based authentication + "mqttKey": "/home/pi/MQTT/mqtt-client-phoniebox.key", # path to client keyfile for certificate-based authentication + "mqttConnectionTimeout": 60, # in seconds; timeout for MQTT connection + "refreshIntervalPlaying": 5, # in seconds; how often should the status be sent to MQTT (while playing) + "refreshIntervalIdle": 30, # in seconds; how often should the status be sent to MQTT (when NOT playing) +} + # ---------------------------------------------------------- # DO NOT CHANGE BELOW @@ -36,7 +39,7 @@ path = os.path.dirname(os.path.realpath(__file__)) # internal refresh interval -refreshInterval = refreshIntervalPlaying +refreshInterval = config.get("refreshIntervalPlaying") # list of available commands and attributes arAvailableCommands = ['volumeup', 'volumedown', 'mute', 'playerplay', 'playerpause', 'playernext', 'playerprev', 'playerstop', 'playerrewind', 'playershuffle', 'playerreplay', 'scan', 'shutdown', 'shutdownsilent', 'reboot', 'disablewifi'] @@ -60,7 +63,7 @@ def watchForNewCard(): cardid = readfile(path + "/../settings/Latest_RFID") # publish event "card_swiped" - client.publish(mqttBaseTopic + "/event/card_swiped", payload=cardid) + client.publish(config.get("mqttBaseTopic") + "/event/card_swiped", payload=cardid) print(" --> Publishing event card_swiped = " + cardid) # process all attributes @@ -79,11 +82,11 @@ def on_connect(client, userdata, flags, rc): disk_total, disk_avail = disk_stats() # publish general server info - client.publish(mqttBaseTopic + "/state", payload="online", qos=1, retain=True) - client.publish(mqttBaseTopic + "/version", payload=version, qos=1, retain=True) - client.publish(mqttBaseTopic + "/edition", payload=edition, qos=1, retain=True) - client.publish(mqttBaseTopic + "/disk_total", payload=disk_total, qos=1, retain=True) - client.publish(mqttBaseTopic + "/disk_avail", payload=disk_avail, qos=1, retain=True) + client.publish(config.get("mqttBaseTopic") + "/state", payload="online", qos=1, retain=True) + client.publish(config.get("mqttBaseTopic") + "/version", payload=version, qos=1, retain=True) + client.publish(config.get("mqttBaseTopic") + "/edition", payload=edition, qos=1, retain=True) + client.publish(config.get("mqttBaseTopic") + "/disk_total", payload=disk_total, qos=1, retain=True) + client.publish(config.get("mqttBaseTopic") + "/disk_avail", payload=disk_avail, qos=1, retain=True) else: print("Connection could NOT be established. Return-Code:", rc) @@ -104,7 +107,7 @@ def on_message(client, userdata, message): print(" - topic =", message.topic) print(" - value =", message.payload.decode("utf-8")) - regex_extract = re.search(mqttBaseTopic + '\/(.*)\/(.*)', message.topic) + regex_extract = re.search(config.get("mqttBaseTopic") + '\/(.*)\/(.*)', message.topic) message_topic = regex_extract.group(1).lower() message_subtopic = regex_extract.group(2).lower() message_payload = message.payload.decode("utf-8") @@ -121,8 +124,8 @@ def processCmd(command, parameter): if command == "help": availableCommands = ", ".join(arAvailableCommands) availableCommandsWithParam = ", ".join(arAvailableCommandsWithParam) - client.publish(mqttBaseTopic + "/available_commands", payload=availableCommands) - client.publish(mqttBaseTopic + "/available_commands_with_params", payload=availableCommandsWithParam) + client.publish(config.get("mqttBaseTopic") + "/available_commands", payload=availableCommands) + client.publish(config.get("mqttBaseTopic") + "/available_commands_with_params", payload=availableCommandsWithParam) print(" --> Publishing response available_commands =", availableCommands) print(" --> Publishing response available_commands_with_params =", availableCommandsWithParam) @@ -173,7 +176,7 @@ def processCmd(command, parameter): return # this was a known command => refresh all attributes as they might have changed - client.publish(mqttBaseTopic + "/get/all", payload="") + client.publish(config.get("mqttBaseTopic") + "/get/all", payload="") def processGet(attribute): @@ -182,18 +185,18 @@ def processGet(attribute): # respond with all attributes if attribute == "all": for attribute in mpd_status: - client.publish(mqttBaseTopic + "/attribute/" + attribute, payload=mpd_status[attribute]) + client.publish(config.get("mqttBaseTopic") + "/attribute/" + attribute, payload=mpd_status[attribute]) print(" --> Publishing response " + attribute + " = " + mpd_status[attribute]) # list all possible attributes elif attribute == "help": availableAttributes = ", ".join(arAvailableAttributes) - client.publish(mqttBaseTopic + "/available_attributes", payload=availableAttributes) + client.publish(config.get("mqttBaseTopic") + "/available_attributes", payload=availableAttributes) print(" --> Publishing response", availableAttributes) # all the other known attributes elif attribute in mpd_status: - client.publish(mqttBaseTopic + "/attribute/" + attribute, payload=mpd_status[attribute]) + client.publish(config.get("mqttBaseTopic") + "/attribute/" + attribute, payload=mpd_status[attribute]) print(" --> Publishing response " + attribute + " = " + mpd_status[attribute]) # we don't know this attribute @@ -368,47 +371,47 @@ def fetchData(): # modify refresh rate depending on play state if result["state"] == "play": - refreshInterval = refreshIntervalPlaying + refreshInterval = config.get("refreshIntervalPlaying") else: - refreshInterval = refreshIntervalIdle + refreshInterval = config.get("refreshIntervalIdle") return result # create client instance -client = mqtt.Client(mqttClientId) +client = mqtt.Client(config.get("mqttClientId")) # configure authentication -if mqttUsername != "" and mqttPassword != "": - client.username_pw_set(username=mqttUsername, password=mqttPassword) +if config.get("mqttUsername") and config.get("mqttPassword"): + client.username_pw_set(username=config.get("mqttUsername"), password=config.get("mqttPassword")) -if mqttCert != "" and mqttKey != "": - if mqttCA != "": - client.tls_set(ca_certs=mqttCA, certfile=mqttCert, keyfile=mqttKey) +if config.get("mqttCert") and config.get("mqttKey"): + if config.get("mqttCA"): + client.tls_set(ca_certs=config.get("mqttCA"), certfile=config.get("mqttCert"), keyfile=config.get("mqttKey")) else: - client.tls_set(certfile=mqttCert, keyfile=mqttKey) -elif mqttCA != "": - client.tls_set(ca_certs=mqttCA) + client.tls_set(certfile=config.get("mqttCert"), keyfile=config.get("mqttKey")) +elif config.get("mqttCA"): + client.tls_set(ca_certs=config.get("mqttCA")) # attach event handlers client.on_connect = on_connect client.on_disconnect = on_disconnect client.on_message = on_message -if DEBUG is True: +if config.get("DEBUG") is True: client.on_log = on_log # define last will -client.will_set(mqttBaseTopic + "/state", payload="offline", qos=1, retain=True) +client.will_set(config.get("mqttBaseTopic") + "/state", payload="offline", qos=1, retain=True) # connect to MQTT server -print("Connecting to " + mqttHostname + " on port " + str(mqttPort)) -client.connect(mqttHostname, mqttPort, mqttConnectionTimeout) +print("Connecting to " + config.get("mqttHostname") + " on port " + str(config.get("mqttPort"))) +client.connect(config.get("mqttHostname"), config.get("mqttPort"), config.get("mqttConnectionTimeout")) # subscribe to topics -print("Subscribing to " + mqttBaseTopic + "/cmd/#") -client.subscribe(mqttBaseTopic + "/cmd/#") -print("Subscribing to " + mqttBaseTopic + "/get/#") -client.subscribe(mqttBaseTopic + "/get/#") +print("Subscribing to " + config.get("mqttBaseTopic") + "/cmd/#") +client.subscribe(config.get("mqttBaseTopic") + "/cmd/#") +print("Subscribing to " + config.get("mqttBaseTopic") + "/get/#") +client.subscribe(config.get("mqttBaseTopic") + "/get/#") # register thread for watchForNewCard tWatchForNewCard = Thread(target=watchForNewCard) From 6479163a49d218474bb4c2ad5eecfa191fa42254 Mon Sep 17 00:00:00 2001 From: Andreas Brett Date: Mon, 1 Nov 2021 08:04:31 +0100 Subject: [PATCH 166/206] add "shutdownvolumereduction" --- .../MQTT-protocol/daemon_mqtt_client.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py b/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py index b8de2a464..9999db065 100644 --- a/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py +++ b/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py @@ -43,8 +43,8 @@ # list of available commands and attributes arAvailableCommands = ['volumeup', 'volumedown', 'mute', 'playerplay', 'playerpause', 'playernext', 'playerprev', 'playerstop', 'playerrewind', 'playershuffle', 'playerreplay', 'scan', 'shutdown', 'shutdownsilent', 'reboot', 'disablewifi'] -arAvailableCommandsWithParam = ['setvolume', 'setvolstep', 'setmaxvolume', 'setidletime', 'playerseek', 'shutdownafter', 'playerstopafter', 'playerrepeat', 'rfid', 'gpio', 'swipecard', 'playfolder', 'playfolderrecursive'] -arAvailableAttributes = ['volume', 'mute', 'repeat', 'random', 'state', 'file', 'artist', 'albumartist', 'title', 'album', 'track', 'elapsed', 'duration', 'trackdate', 'last_card', 'maxvolume', 'volstep', 'idletime', 'rfid', 'gpio', 'remaining_stopafter', 'remaining_shutdownafter', 'remaining_idle', 'throttling', 'temperature'] +arAvailableCommandsWithParam = ['setvolume', 'setvolstep', 'setmaxvolume', 'setidletime', 'playerseek', 'shutdownafter', 'shutdownvolumereduction', 'playerstopafter', 'playerrepeat', 'rfid', 'gpio', 'swipecard', 'playfolder', 'playfolderrecursive'] +arAvailableAttributes = ['volume', 'mute', 'repeat', 'random', 'state', 'file', 'artist', 'albumartist', 'title', 'album', 'track', 'elapsed', 'duration', 'trackdate', 'last_card', 'maxvolume', 'volstep', 'idletime', 'rfid', 'gpio', 'remaining_stopafter', 'remaining_shutdownafter', 'remaining_shutdownvolumereduction', 'remaining_idle', 'throttling', 'temperature'] def watchForNewCard(): @@ -363,6 +363,7 @@ def fetchData(): # fetch linux jobs result["remaining_stopafter"] = str(linux_job_remaining("s")) result["remaining_shutdownafter"] = str(linux_job_remaining("t")) + result["remaining_shutdownvolumereduction"] = str(linux_job_remaining("q")) result["remaining_idle"] = str(linux_job_remaining("i")) # fetch OS information From e6323fe4cec31ed1f85fd8a29a5c14227975bb24 Mon Sep 17 00:00:00 2001 From: Micz Flor Date: Sat, 25 Dec 2021 23:02:09 +0100 Subject: [PATCH 167/206] calendar 2022 --- README.md | 18 ++++++++---------- docs/2022-Phoniebox-Calendar.jpg | Bin 0 -> 640271 bytes 2 files changed, 8 insertions(+), 10 deletions(-) create mode 100644 docs/2022-Phoniebox-Calendar.jpg diff --git a/README.md b/README.md index ca73094fe..0e6312402 100755 --- a/README.md +++ b/README.md @@ -8,12 +8,18 @@ A contactless jukebox for the Raspberry Pi, playing audio files, playlists, podcasts, web streams and spotify triggered by RFID cards. All plug and play via USB, no soldering iron needed. Update: if you must, it now also features a howto for adding GPIO buttons controls. +## The Phoniebox Calendar 2022 is here!!! + +Another bunch of wonderful designs! 2022 is the fourth Phoniebox calendar. If you are interested, you can see the [2019, 2020 and 2021 calendars in the docs folder](https://github.com/MiczFlor/RPi-Jukebox-RFID/tree/develop/docs). Download [the printable PDF of 2022 here](https://mi.cz/static/2021-Phoniebox-Calendar.pdf). + +![The 2022 Phoniebox Calendar](docs/2022-Phoniebox-Calendar.jpg "The 2022 Phoniebox Calendar") + --- ## Install latest Phoniebox version -If you are looking for the latest stable version, use the [install script for Raspberry Pi OS Stretch](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/INSTALL-stretch). -If you dare to go where only few have gone before, become an alpha-tester, bug reporter, contributor for the exciting, totally re-written, up and coming, yet feature incomplete and unstable version 3 of the Phoniebox code base: +If you are looking for **the latest stable version**, use the [install script for Raspberry Pi OS Stretch](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/INSTALL-stretch). +If you dare to go where only few have gone before, **become an alpha-tester, bug reporter, contributor** for the exciting, totally re-written, up and coming, yet feature incomplete and unstable version 3 of the Phoniebox code base: ## 🔥 Version 3 is coming ... @@ -47,14 +53,6 @@ If you seek the adventure, your support will be more then welcome. Before contri --- -## The Phoniebox Calendar 2021 is here!!! - -Another bunch of wonderful designs! 2021 is the third Phoniebox calendar. If you are interested, you can see the [2019 and 2020 calendars in the docs folder](https://github.com/MiczFlor/RPi-Jukebox-RFID/tree/develop/docs). Download [the printable PDF of 2021 here](https://mi.cz/static/2021-Phoniebox-Calendar.pdf). - -![The 2021 Phoniebox Calendar](docs/2021-Phoniebox-Calendar.jpg "The 2021 Phoniebox Calendar") - -The year 2020 also has a clear *:star: community hero :star:*: @s-martin has been doing outstanding work for the Phoniebox community:sparkles:. Thanks to you and may 2021 be a wonderful year for you. - ## Important updates / news * **Discussions forums** we use Github's Discussions feature for a more forum style. Please ask general questions in [Discussions](https://github.com/MiczFlor/RPi-Jukebox-RFID/discussions), bugs and enhancements should still be in [Issues](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues). diff --git a/docs/2022-Phoniebox-Calendar.jpg b/docs/2022-Phoniebox-Calendar.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a7541ed35c66401d5d9c65e43f68225c38e00101 GIT binary patch literal 640271 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�eqi>t@DAbMyI}P(2VTK~x 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ÖIqq}v(e>ap<$6u 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

    $Ln_@(k6 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 z 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 Yq(XqIiqu+JrYb=MmZ8P}0RC0~*>od>od5s; literal 0 HcmV?d00001 From e3efad8a325415b9356f55c4fe3e5572aa3f7252 Mon Sep 17 00:00:00 2001 From: Micz Flor Date: Sun, 26 Dec 2021 18:12:28 +0100 Subject: [PATCH 168/206] calendar 2022 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0e6312402..7537e3d71 100755 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ A contactless jukebox for the Raspberry Pi, playing audio files, playlists, podc ## The Phoniebox Calendar 2022 is here!!! -Another bunch of wonderful designs! 2022 is the fourth Phoniebox calendar. If you are interested, you can see the [2019, 2020 and 2021 calendars in the docs folder](https://github.com/MiczFlor/RPi-Jukebox-RFID/tree/develop/docs). Download [the printable PDF of 2022 here](https://mi.cz/static/2021-Phoniebox-Calendar.pdf). +Another bunch of wonderful designs! 2022 is the fourth Phoniebox calendar. If you are interested, you can see the [2019, 2020 and 2021 calendars in the docs folder](https://github.com/MiczFlor/RPi-Jukebox-RFID/tree/develop/docs). Download [the printable PDF of 2022 here](https://mi.cz/static/2022-Phoniebox-Calendar.pdf). ![The 2022 Phoniebox Calendar](docs/2022-Phoniebox-Calendar.jpg "The 2022 Phoniebox Calendar") From 159a0fb6dad47d3790ed23f1fa5853c3df728799 Mon Sep 17 00:00:00 2001 From: u230412 Date: Thu, 30 Dec 2021 10:39:56 +0100 Subject: [PATCH 169/206] #1309, #1451, #1691 Add user-agent to avoid 400-bad-requests from open.spotify.com. --- htdocs/inc.viewFolderTree.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/htdocs/inc.viewFolderTree.php b/htdocs/inc.viewFolderTree.php index b40e26657..d46ace944 100755 --- a/htdocs/inc.viewFolderTree.php +++ b/htdocs/inc.viewFolderTree.php @@ -116,18 +116,19 @@ // this is a new and easier way for loading spotify informations! $uri = file_get_contents($subfolder."/spotify.txt"); $url = "https://open.spotify.com/oembed/?url=".trim($uri)."&format=json"; + $headers = stream_context_create(array('http'=>array('method'=>'GET', 'header'=>'user-agent:Phoniebox'))); if (!file_exists($coverfile)) { - $str = file_get_contents($url); + $str = file_get_contents($url, false, $headers); $json = json_decode($str, true); $cover = $json['thumbnail_url']; - $coverdl = file_get_contents($cover); + $coverdl = file_get_contents($cover, false, $headers); file_put_contents($coverfile, $coverdl); } if (!file_exists($titlefile)) { - $str = file_get_contents($url); + $str = file_get_contents($url, false, $headers); $json = json_decode($str, true); $title = $json['title']; From fc9faec8a3d74c95d7508f4dacd7fb4142dfe328 Mon Sep 17 00:00:00 2001 From: pabera <1260686+pabera@users.noreply.github.com> Date: Mon, 7 Feb 2022 21:58:46 +0100 Subject: [PATCH 170/206] Readme update for future3 3.2 Beta release --- README.md | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 7537e3d71..d5ceb3a02 100755 --- a/README.md +++ b/README.md @@ -23,28 +23,29 @@ If you dare to go where only few have gone before, **become an alpha-tester, bug ## 🔥 Version 3 is coming ... -#### Newest release: V3.0.0 Alpha 2 -> 28. October 2021 +#### Newest release: V3.2.0 Beta -> 7. Feb 2022 -* Better Installation Script -* More stable backend -* Prepared playlist support -* Refactored Card commands -* Album & Folder view in web application +* New GPIO backend based on GPIOZero including more sophisticated controls for inputs and outputs +* Bluetooth Headset support with device buttons +* Equalizer + Mono down mixer +* Localization support for Webapp, current languages supported are English and German (help us translate!) +* Timer support in Webapp and via RFID cards +* Additional system information in Webapp like Battery status, CPU temperature or IP address +* Preperation for Text-to-Speech + Read My IP as a first example +* Bugfixes for Install Script Over the last few months, a few Phoniebox fans started to think about a potential future of the Jukebox code. Version 2 is mature and works well but doesn't scale enough for future development. It's the mix of Shell, Python and PHP. The goal was to tidy up the codebase, focus on a single programming language for the core (Python), establish a solid plugin system and build a responsive web client. [Read on here if you want to learn about more reasons](https://rpi-jukebox-rfid.readthedocs.io/en/latest/). -### ☝️ Looking for early adopters, testers and contributors +### 👋 Looking for adopters, testers and contributors -👩‍💻 For Bravehearts only! If you want to test or help develop this new version called `future3`, let us know what you think about the new architecture, the new web application and help us find bugs (or fix them proactively). +If you want to test or help develop this new version called `future3`, let us know what you think about the new architecture, the new web application and help us find bugs (or fix them proactively). -But please be aware, Version 3 is still under heavy development and cannot be considered stable! Just a handful of features from version 2.x have been ported to version 3 so far. Specifically GPIO support is currently missing but it's in active development and soon to arrive. To install and run this version you will need some understanding of programming. - -⚠️ If you build a Jukebox and depend on a stable environment, please choose Version 2.x. +While Version 3 is still under development, it is becoming a lot more stable! Although only some of the features from version 2.x have been ported to version 3 so far. If you seek the adventure, your support will be more then welcome. Before contributing, check out the following references. -* 🚀 **[Install Jukebox Version 3 Alpha](https://rpi-jukebox-rfid.readthedocs.io/en/latest/install.html)** +* 🚀 **[Install Jukebox Version 3 Beta](https://rpi-jukebox-rfid.readthedocs.io/en/latest/install.html)** * 🐛 [Report a bug](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/new?assignees=&labels=future3%2C+bug%2C+needs+triage&template=future3.md&title=ISSUE+SUMMARY+on+future3) * ☑️ [Feature Status](https://rpi-jukebox-rfid.readthedocs.io/en/latest/featurelist.html) * 📖 [Documentation](https://rpi-jukebox-rfid.readthedocs.io/en/latest/) @@ -57,7 +58,7 @@ If you seek the adventure, your support will be more then welcome. Before contri * **Discussions forums** we use Github's Discussions feature for a more forum style. Please ask general questions in [Discussions](https://github.com/MiczFlor/RPi-Jukebox-RFID/discussions), bugs and enhancements should still be in [Issues](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues). -* **Phoniebox [future3 Alpha 1](https://rpi-jukebox-rfid.readthedocs.io/en/latest/) released (2021-10)** +* **Phoniebox [future3 Beta](https://rpi-jukebox-rfid.readthedocs.io/en/latest/) released (2022-02)** * **Gitter Community** we got ourselves a gitter community; chat us up at https://gitter.im/phoniebox * **Phoniebox [2.3](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/6?closed=1) released (2021-08-12)** From 07e9c7c77fe84394b34e8138ceb859558e78edbe Mon Sep 17 00:00:00 2001 From: Stephan Kessler Date: Wed, 23 Feb 2022 09:23:31 +0100 Subject: [PATCH 171/206] Fixed issue with reading podcasts xml including line breaks in the enclosure tag --- scripts/playlist_recursive_by_folder.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/scripts/playlist_recursive_by_folder.php b/scripts/playlist_recursive_by_folder.php index 8d62de3ad..fd5b4b72e 100755 --- a/scripts/playlist_recursive_by_folder.php +++ b/scripts/playlist_recursive_by_folder.php @@ -117,7 +117,13 @@ $podcast = trim(file_get_contents($folder."/podcast.txt")); //wget -q -O - "http://www.kakadu.de/podcast-kakadu.2730.de.podcast.xml" | sed -n 's/.*enclosure.*url="\([^"]*\)".*/\1/p' //wget -q -O - "https://www1.wdr.de/mediathek/audio/hoerspiel-speicher/wdr_hoerspielspeicher150.podcast" | sed -n 's/.*enclosure.*url="\([^"]*\)".*/\1/p' - $exec = 'wget -q -O - \''.$podcast.'\' | sed -n \'s/.*enclosure.*url="\([^"]*\)".*/\1/p\''; + // includes fix if enclosure tags are divided in multiple lines + // 1. "wget" the URL + // 2. remove all the line breaks + // 3. add breaks at the end of every tag that, + // 4. sed (which works line by line) has the proper environment + $exec = 'wget -q -O - \''.$podcast.'\' | tr \'\n\' \' \' | sed -e \'s/\/>/\/>\n&/g\' | sed -n \'s/.*enclosure.*url="\([^"]*\)".*/\1/p\''; + /* * get all the playlist enclosure URLs in a multiline string */ From 1da523408bf161018abc11764b3bbd21751b7c69 Mon Sep 17 00:00:00 2001 From: Stephan Kessler Date: Wed, 23 Feb 2022 09:51:10 +0100 Subject: [PATCH 172/206] Fixed Comment --- scripts/playlist_recursive_by_folder.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/scripts/playlist_recursive_by_folder.php b/scripts/playlist_recursive_by_folder.php index fd5b4b72e..e8784ab46 100755 --- a/scripts/playlist_recursive_by_folder.php +++ b/scripts/playlist_recursive_by_folder.php @@ -115,8 +115,9 @@ * Read podcast URL and extract audio links from enclosure tag */ $podcast = trim(file_get_contents($folder."/podcast.txt")); - //wget -q -O - "http://www.kakadu.de/podcast-kakadu.2730.de.podcast.xml" | sed -n 's/.*enclosure.*url="\([^"]*\)".*/\1/p' - //wget -q -O - "https://www1.wdr.de/mediathek/audio/hoerspiel-speicher/wdr_hoerspielspeicher150.podcast" | sed -n 's/.*enclosure.*url="\([^"]*\)".*/\1/p' + //wget -q -O - "http://www.kakadu.de/podcast-kakadu.2730.de.podcast.xml" | tr '\n' ' ' | sed -e 's/\/>/\/>\n&/g' | sed -n 's/.*enclosure.*url="\([^"]*\)".*/\1/p' + //wget -q -O - "https://www1.wdr.de/mediathek/audio/hoerspiel-speicher/wdr_hoerspielspeicher150.podcast" | tr '\n' ' ' | sed -e 's/\/>/\/>\n&/g' | sed -n 's/.*enclosure.*url="\([^"]*\)".*/\1/p' + //wget -q -O - "https://www.swr.de/~podcast/swr2/leben-und-gesellschaft/podcast-sprechen-wir-ueber-mord-100.xml" | tr '\n' ' ' | sed -e 's/\/>/\/>\n&/g' | sed -n 's/.*enclosure.*url="\([^"]*\)".*/\1/p' // includes fix if enclosure tags are divided in multiple lines // 1. "wget" the URL // 2. remove all the line breaks From e01d3d9db12e8e8a43321a7d47aed919b0344178 Mon Sep 17 00:00:00 2001 From: Charles Vestal Date: Sun, 27 Feb 2022 14:08:51 +0100 Subject: [PATCH 173/206] Update broken 2.3 installation guide link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d5ceb3a02..f136621c7 100755 --- a/README.md +++ b/README.md @@ -67,7 +67,7 @@ The [2.3](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/6?closed=1) rel ## What's new in version 2.3? -* Improved [installation guide](docs/INSTALL_COMPLETE_GUIDE.md) +* Improved [installation guide](https://github.com/MiczFlor/RPi-Jukebox-RFID/blob/develop/docs/INSTALL-COMPLETE-GUIDE.md) * Holding buttons feature fixed #1406 * Bluetooth buttons and headphones toggle #1262 * fixed stop on removal for RC522 #1122 From 820a5f42fa48d5d2b396bfe0aa2522bf4d276d97 Mon Sep 17 00:00:00 2001 From: Andreas Brett Date: Sun, 27 Feb 2022 20:36:53 +0100 Subject: [PATCH 174/206] fix after merge with dev --- .../MQTT-protocol/daemon_mqtt_client.py | 412 +++++++++++++----- 1 file changed, 303 insertions(+), 109 deletions(-) diff --git a/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py b/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py index 0fcc31ee5..60c8ca38d 100644 --- a/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py +++ b/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py @@ -1,10 +1,16 @@ #!/usr/bin/env python3 -import paho.mqtt.client as mqtt -import os, subprocess, re, ssl, time, datetime -import inotify.adapters +import datetime +import os +import re +import ssl +import subprocess +import time from threading import * +import inotify.adapters +import paho.mqtt.client as mqtt + # ---------------------------------------------------------- # Prerequisites # ---------------------------------------------------------- @@ -16,18 +22,18 @@ # ---------------------------------------------------------- config = { "DEBUG": False, - "mqttBaseTopic": "phoniebox", # MQTT base topic - "mqttClientId": "phoniebox", # MQTT client ID - "mqttHostname": "openHAB", # MQTT server hostname - "mqttPort": 8883, # MQTT server port (typically 1883 for unencrypted, 8883 for encrypted) - "mqttUsername": "", # username for user/pass based authentication - "mqttPassword": "", # password for user/pass based authentication - "mqttCA": "/home/pi/MQTT/mqtt-ca.crt", # path to server certificate for certificate-based authentication - "mqttCert": "/home/pi/MQTT/mqtt-client-phoniebox.crt", # path to client certificate for certificate-based authentication - "mqttKey": "/home/pi/MQTT/mqtt-client-phoniebox.key", # path to client keyfile for certificate-based authentication - "mqttConnectionTimeout": 60, # in seconds; timeout for MQTT connection - "refreshIntervalPlaying": 5, # in seconds; how often should the status be sent to MQTT (while playing) - "refreshIntervalIdle": 30, # in seconds; how often should the status be sent to MQTT (when NOT playing) + "mqttBaseTopic": "phoniebox", # MQTT base topic + "mqttClientId": "phoniebox", # MQTT client ID + "mqttHostname": "openHAB", # MQTT server hostname + "mqttPort": 8883, # MQTT server port (typically 1883 for unencrypted, 8883 for encrypted) + "mqttUsername": "", # username for user/pass based authentication + "mqttPassword": "", # password for user/pass based authentication + "mqttCA": "/home/pi/MQTT/mqtt-ca.crt", # path to server certificate for certificate-based authentication + "mqttCert": "/home/pi/MQTT/mqtt-client-phoniebox.crt", # path to client certificate for certificate-based authentication + "mqttKey": "/home/pi/MQTT/mqtt-client-phoniebox.key", # path to client keyfile for certificate-based authentication + "mqttConnectionTimeout": 60, # in seconds; timeout for MQTT connection + "refreshIntervalPlaying": 5, # in seconds; how often should the status be sent to MQTT (while playing) + "refreshIntervalIdle": 30, # in seconds; how often should the status be sent to MQTT (when NOT playing) } @@ -42,9 +48,68 @@ refreshInterval = config.get("refreshIntervalPlaying") # list of available commands and attributes -arAvailableCommands = ['volumeup', 'volumedown', 'mute', 'playerplay', 'playerpause', 'playernext', 'playerprev', 'playerstop', 'playerrewind', 'playershuffle', 'playerreplay', 'scan', 'shutdown', 'shutdownsilent', 'reboot', 'disablewifi'] -arAvailableCommandsWithParam = ['setvolume', 'setvolstep', 'setmaxvolume', 'setidletime', 'playerseek', 'shutdownafter', 'shutdownvolumereduction', 'playerstopafter', 'playerrepeat', 'rfid', 'gpio', 'swipecard', 'playfolder', 'playfolderrecursive'] -arAvailableAttributes = ['volume', 'mute', 'repeat', 'random', 'state', 'file', 'artist', 'albumartist', 'title', 'album', 'track', 'elapsed', 'duration', 'trackdate', 'last_card', 'maxvolume', 'volstep', 'idletime', 'rfid', 'gpio', 'remaining_stopafter', 'remaining_shutdownafter', 'remaining_shutdownvolumereduction', 'remaining_idle', 'throttling', 'temperature'] +arAvailableCommands = [ + "volumeup", + "volumedown", + "mute", + "playerplay", + "playerpause", + "playernext", + "playerprev", + "playerstop", + "playerrewind", + "playershuffle", + "playerreplay", + "scan", + "shutdown", + "shutdownsilent", + "reboot", + "disablewifi", +] +arAvailableCommandsWithParam = [ + "setvolume", + "setvolstep", + "setmaxvolume", + "setidletime", + "playerseek", + "shutdownafter", + "shutdownvolumereduction", + "playerstopafter", + "playerrepeat", + "rfid", + "gpio", + "swipecard", + "playfolder", + "playfolderrecursive", +] +arAvailableAttributes = [ + "volume", + "mute", + "repeat", + "random", + "state", + "file", + "artist", + "albumartist", + "title", + "album", + "track", + "elapsed", + "duration", + "trackdate", + "last_card", + "maxvolume", + "volstep", + "idletime", + "rfid", + "gpio", + "remaining_stopafter", + "remaining_shutdownafter", + "remaining_shutdownvolumereduction", + "remaining_idle", + "throttling", + "temperature", +] def watchForNewCard(): @@ -63,7 +128,9 @@ def watchForNewCard(): cardid = readfile(path + "/../settings/Latest_RFID") # publish event "card_swiped" - client.publish(config.get("mqttBaseTopic") + "/event/card_swiped", payload=cardid) + client.publish( + config.get("mqttBaseTopic") + "/event/card_swiped", payload=cardid + ) print(" --> Publishing event card_swiped = " + cardid) # process all attributes @@ -86,7 +153,9 @@ def watchForNewCard(): cardid = readfile(path + "/../settings/Latest_RFID") # publish event "card_swiped" - client.publish(mqttBaseTopic + "/event/card_swiped", payload=cardid) + client.publish( + config.get("mqttBaseTopic") + "/event/card_swiped", payload=cardid + ) print(" --> Publishing event card_swiped = " + cardid) # process all attributes @@ -105,11 +174,33 @@ def on_connect(client, userdata, flags, rc): disk_total, disk_avail = disk_stats() # publish general server info - client.publish(config.get("mqttBaseTopic") + "/state", payload="online", qos=1, retain=True) - client.publish(config.get("mqttBaseTopic") + "/version", payload=version, qos=1, retain=True) - client.publish(config.get("mqttBaseTopic") + "/edition", payload=edition, qos=1, retain=True) - client.publish(config.get("mqttBaseTopic") + "/disk_total", payload=disk_total, qos=1, retain=True) - client.publish(config.get("mqttBaseTopic") + "/disk_avail", payload=disk_avail, qos=1, retain=True) + client.publish( + config.get("mqttBaseTopic") + "/state", payload="online", qos=1, retain=True + ) + client.publish( + config.get("mqttBaseTopic") + "/version", + payload=version, + qos=1, + retain=True, + ) + client.publish( + config.get("mqttBaseTopic") + "/edition", + payload=edition, + qos=1, + retain=True, + ) + client.publish( + config.get("mqttBaseTopic") + "/disk_total", + payload=disk_total, + qos=1, + retain=True, + ) + client.publish( + config.get("mqttBaseTopic") + "/disk_avail", + payload=disk_avail, + qos=1, + retain=True, + ) else: print("Connection could NOT be established. Return-Code:", rc) @@ -130,7 +221,9 @@ def on_message(client, userdata, message): print(" - topic =", message.topic) print(" - value =", message.payload.decode("utf-8")) - regex_extract = re.search(config.get("mqttBaseTopic") + '\/(.*)\/(.*)', message.topic) + regex_extract = re.search( + config.get("mqttBaseTopic") + "\/(.*)\/(.*)", message.topic + ) message_topic = regex_extract.group(1).lower() message_subtopic = regex_extract.group(2).lower() message_payload = message.payload.decode("utf-8") @@ -147,16 +240,28 @@ def processCmd(command, parameter): if command == "help": availableCommands = ", ".join(arAvailableCommands) availableCommandsWithParam = ", ".join(arAvailableCommandsWithParam) - client.publish(config.get("mqttBaseTopic") + "/available_commands", payload=availableCommands) - client.publish(config.get("mqttBaseTopic") + "/available_commands_with_params", payload=availableCommandsWithParam) + client.publish( + config.get("mqttBaseTopic") + "/available_commands", + payload=availableCommands, + ) + client.publish( + config.get("mqttBaseTopic") + "/available_commands_with_params", + payload=availableCommandsWithParam, + ) print(" --> Publishing response available_commands =", availableCommands) - print(" --> Publishing response available_commands_with_params =", availableCommandsWithParam) + print( + " --> Publishing response available_commands_with_params =", + availableCommandsWithParam, + ) # toggle RFID reader daemon elif command == "rfid": parameter = parameter.lower() if parameter == "start" or parameter == "stop": - subprocess.call(["sudo /bin/systemctl " + parameter + " phoniebox-rfid-reader.service"], shell=True) + subprocess.call( + ["sudo /bin/systemctl " + parameter + " phoniebox-rfid-reader.service"], + shell=True, + ) else: print(" --> Expecting parameter start or stop") @@ -164,7 +269,14 @@ def processCmd(command, parameter): elif command == "gpio": parameter = parameter.lower() if parameter == "start" or parameter == "stop": - subprocess.call(["sudo /bin/systemctl " + parameter + " phoniebox-gpio-control.service"], shell=True) + subprocess.call( + [ + "sudo /bin/systemctl " + + parameter + + " phoniebox-gpio-control.service" + ], + shell=True, + ) else: print(" --> Expecting parameter start or stop") @@ -176,12 +288,17 @@ def processCmd(command, parameter): # play folder elif command == "playfolder": print(" --> Playing folder", parameter) - subprocess.call([path + "/rfid_trigger_play.sh -d='" + parameter + "'"], shell=True) + subprocess.call( + [path + "/rfid_trigger_play.sh -d='" + parameter + "'"], shell=True + ) # play folder (recursive) elif command == "playfolderrecursive": print(" --> Playing folder " + parameter + " (recursive)") - subprocess.call([path + "/rfid_trigger_play.sh -d='" + parameter + "' -v=recursive"], shell=True) + subprocess.call( + [path + "/rfid_trigger_play.sh -d='" + parameter + "' -v=recursive"], + shell=True, + ) # all the other known commands w/o param elif command in arAvailableCommands: @@ -190,8 +307,17 @@ def processCmd(command, parameter): # all the other known commands /w param elif command in arAvailableCommandsWithParam: - print(" --> Sending command " + command + " and value " + parameter + " to playout_controls.sh") - subprocess.call([path + "/playout_controls.sh -c=" + command + " -v=" + parameter], shell=True) + print( + " --> Sending command " + + command + + " and value " + + parameter + + " to playout_controls.sh" + ) + subprocess.call( + [path + "/playout_controls.sh -c=" + command + " -v=" + parameter], + shell=True, + ) # we don't know this command else: @@ -208,18 +334,29 @@ def processGet(attribute): # respond with all attributes if attribute == "all": for attribute in mpd_status: - client.publish(config.get("mqttBaseTopic") + "/attribute/" + attribute, payload=mpd_status[attribute]) - print(" --> Publishing response " + attribute + " = " + mpd_status[attribute]) + client.publish( + config.get("mqttBaseTopic") + "/attribute/" + attribute, + payload=mpd_status[attribute], + ) + print( + " --> Publishing response " + attribute + " = " + mpd_status[attribute] + ) # list all possible attributes elif attribute == "help": availableAttributes = ", ".join(arAvailableAttributes) - client.publish(config.get("mqttBaseTopic") + "/available_attributes", payload=availableAttributes) + client.publish( + config.get("mqttBaseTopic") + "/available_attributes", + payload=availableAttributes, + ) print(" --> Publishing response", availableAttributes) # all the other known attributes elif attribute in mpd_status: - client.publish(config.get("mqttBaseTopic") + "/attribute/" + attribute, payload=mpd_status[attribute]) + client.publish( + config.get("mqttBaseTopic") + "/attribute/" + attribute, + payload=mpd_status[attribute], + ) print(" --> Publishing response " + attribute + " = " + mpd_status[attribute]) # we don't know this attribute @@ -228,10 +365,10 @@ def processGet(attribute): def disk_stats(): - statvfs = os.statvfs('/home/pi') - size_total = statvfs.f_frsize * statvfs.f_blocks # total + statvfs = os.statvfs("/home/pi") + size_total = statvfs.f_frsize * statvfs.f_blocks # total # size_avail = statvfs.f_frsize * statvfs.f_bfree # actual free - size_avail = statvfs.f_frsize * statvfs.f_bavail # free for non-root + size_avail = statvfs.f_frsize * statvfs.f_bavail # free for non-root return round(size_total / 1073741824, 1), round(size_avail / 1073741824, 1) @@ -244,22 +381,28 @@ def readfile(filepath): def isServiceRunning(svc): - cmd = ['/bin/systemctl', 'status', svc] - status = subprocess.run(cmd, stdout=subprocess.PIPE).stdout.decode('utf-8').rstrip() - if re.search('\n.*Active:.*running.*\n', status): + cmd = ["/bin/systemctl", "status", svc] + status = subprocess.run(cmd, stdout=subprocess.PIPE).stdout.decode("utf-8").rstrip() + if re.search("\n.*Active:.*running.*\n", status): return "true" else: return "false" def linux_job_remaining(job_name): - cmd = ['sudo', 'atq', '-q', job_name] - dtQueue = subprocess.run(cmd, stdout=subprocess.PIPE).stdout.decode('utf-8').rstrip() - - regex = re.search('(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)', dtQueue) + cmd = ["sudo", "atq", "-q", job_name] + dtQueue = ( + subprocess.run(cmd, stdout=subprocess.PIPE).stdout.decode("utf-8").rstrip() + ) + + regex = re.search( + "(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)", dtQueue + ) if regex: dtNow = datetime.datetime.now() - dtQueue = datetime.datetime.strptime(dtNow.strftime("%d.%m.%Y") + " " + regex.group(5), "%d.%m.%Y %H:%M:%S") + dtQueue = datetime.datetime.strptime( + dtNow.strftime("%d.%m.%Y") + " " + regex.group(5), "%d.%m.%Y %H:%M:%S" + ) # subtract 1 day if queued for the next day if dtNow > dtQueue: @@ -271,42 +414,52 @@ def linux_job_remaining(job_name): def getOsThrottling(): - codes = { - 0: "under-voltage detected", - 1: "arm frequency capped", - 2: "currently throttled", - 3: "soft temperature limit active", - 16: "under-voltage has occurred", - 17: "arm frequency capped has occurred", - 18: "throttling has occurred", - 19: "soft temperature limit has occurred" - } - - p = subprocess.Popen(['vcgencmd', 'get_throttled'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True) - throttling, err = p.communicate() - codeHex = throttling.rstrip().split("0x")[1] - - # code is zero => no issue - if codeHex == "0": - return "OK" - - # analyse returned code - result = [] - codeBinary = "" - for fourbits in codeHex: - codeBinary = codeBinary + bin(int(fourbits, 16))[2:].zfill(4) - codeBinary = codeBinary[::-1] - for bitNumber in range(len(codeBinary)): - if codeBinary[bitNumber] == "1": - result.append(codes[bitNumber]) - return "WARNING: " + ", ".join(result) + codes = { + 0: "under-voltage detected", + 1: "arm frequency capped", + 2: "currently throttled", + 3: "soft temperature limit active", + 16: "under-voltage has occurred", + 17: "arm frequency capped has occurred", + 18: "throttling has occurred", + 19: "soft temperature limit has occurred", + } + + p = subprocess.Popen( + ["vcgencmd", "get_throttled"], + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + universal_newlines=True, + ) + throttling, err = p.communicate() + codeHex = throttling.rstrip().split("0x")[1] + + # code is zero => no issue + if codeHex == "0": + return "OK" + + # analyse returned code + result = [] + codeBinary = "" + for fourbits in codeHex: + codeBinary = codeBinary + bin(int(fourbits, 16))[2:].zfill(4) + codeBinary = codeBinary[::-1] + for bitNumber in range(len(codeBinary)): + if codeBinary[bitNumber] == "1": + result.append(codes[bitNumber]) + return "WARNING: " + ", ".join(result) def getOsTemperature(): - p = subprocess.Popen(['vcgencmd', 'measure_temp'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True) - temperature, err = p.communicate() - temperature = temperature.rstrip().split("=")[1] - return temperature + p = subprocess.Popen( + ["vcgencmd", "measure_temp"], + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + universal_newlines=True, + ) + temperature, err = p.communicate() + temperature = temperature.rstrip().split("=")[1] + return temperature def normalizeTrueFalse(s): @@ -331,15 +484,17 @@ def fetchData(): result = {} # fetch status from MPD - cmd = ['nc', '-w', '1', 'localhost', '6600'] - input = 'status\ncurrentsong\nclose'.encode('utf-8') - status = subprocess.run(cmd, stdout=subprocess.PIPE, input=input).stdout.decode('utf-8') + cmd = ["nc", "-w", "1", "localhost", "6600"] + input = "status\ncurrentsong\nclose".encode("utf-8") + status = subprocess.run(cmd, stdout=subprocess.PIPE, input=input).stdout.decode( + "utf-8" + ) # interpret status - result["state"] = regex('\nstate: (.*)\n', status).lower() - result["volume"] = regex('\nvolume: (.*)\n', status) - result["repeat"] = normalizeTrueFalse(regex('\nrepeat: (.*)\n', status)) - result["random"] = normalizeTrueFalse(regex('\nrandom: (.*)\n', status)) + result["state"] = regex("\nstate: (.*)\n", status).lower() + result["volume"] = regex("\nvolume: (.*)\n", status) + result["repeat"] = normalizeTrueFalse(regex("\nrepeat: (.*)\n", status)) + result["random"] = normalizeTrueFalse(regex("\nrandom: (.*)\n", status)) # interpret mute state based on volume if result["volume"] == "0": @@ -350,31 +505,53 @@ def fetchData(): # interpret metadata when in play/pause mode if result["state"] != "stop": - result["file"] = regex('\nfile: (.*)\n', status) - result["artist"] = regex('\nArtist: (.*)\n', status) - result["albumartist"] = regex('\nAlbumArtist: (.*)\n', status) - result["title"] = regex('\nTitle: (.*)\n', status) - result["album"] = regex('\nAlbum: (.*)\n', status) - result["track"] = regex('\nTrack: (.*)\n', status, "0") - result["trackdate"] = regex('\nDate: (.*)\n', status) + result["file"] = regex("\nfile: (.*)\n", status) + result["artist"] = regex("\nArtist: (.*)\n", status) + result["albumartist"] = regex("\nAlbumArtist: (.*)\n", status) + result["title"] = regex("\nTitle: (.*)\n", status) + result["album"] = regex("\nAlbum: (.*)\n", status) + result["track"] = regex("\nTrack: (.*)\n", status, "0") + result["trackdate"] = regex("\nDate: (.*)\n", status) if result["title"] == "-": result["title"] = result["file"] - elapsed = int(float(regex('\nelapsed: (.*)\n', status, "0"))) + elapsed = int(float(regex("\nelapsed: (.*)\n", status, "0"))) hours, remainder = divmod(elapsed, 3600) minutes, seconds = divmod(remainder, 60) - result["elapsed"] = '{:02}:{:02}:{:02}'.format(int(hours), int(minutes), int(seconds)) + result["elapsed"] = "{:02}:{:02}:{:02}".format( + int(hours), int(minutes), int(seconds) + ) - duration = int(float(regex('\nduration: (.*)\n', status, "0"))) + duration = int(float(regex("\nduration: (.*)\n", status, "0"))) hours, remainder = divmod(duration, 3600) minutes, seconds = divmod(remainder, 60) - result["duration"] = '{:02}:{:02}:{:02}'.format(int(hours), int(minutes), int(seconds)) + result["duration"] = "{:02}:{:02}:{:02}".format( + int(hours), int(minutes), int(seconds) + ) # fetch some more data from global.conf (via playout_controls.sh) - result["maxvolume"] = subprocess.run([path + "/playout_controls.sh", "-c=getmaxvolume"], stdout=subprocess.PIPE).stdout.decode('utf-8').rstrip() - result["volstep"] = subprocess.run([path + "/playout_controls.sh", "-c=getvolstep"], stdout=subprocess.PIPE).stdout.decode('utf-8').rstrip() - result["idletime"] = subprocess.run([path + "/playout_controls.sh", "-c=getidletime"], stdout=subprocess.PIPE).stdout.decode('utf-8').rstrip() + result["maxvolume"] = ( + subprocess.run( + [path + "/playout_controls.sh", "-c=getmaxvolume"], stdout=subprocess.PIPE + ) + .stdout.decode("utf-8") + .rstrip() + ) + result["volstep"] = ( + subprocess.run( + [path + "/playout_controls.sh", "-c=getvolstep"], stdout=subprocess.PIPE + ) + .stdout.decode("utf-8") + .rstrip() + ) + result["idletime"] = ( + subprocess.run( + [path + "/playout_controls.sh", "-c=getidletime"], stdout=subprocess.PIPE + ) + .stdout.decode("utf-8") + .rstrip() + ) # fetch last card result["last_card"] = readfile(path + "/../settings/Latest_RFID") @@ -407,11 +584,17 @@ def fetchData(): # configure authentication if config.get("mqttUsername") and config.get("mqttPassword"): - client.username_pw_set(username=config.get("mqttUsername"), password=config.get("mqttPassword")) + client.username_pw_set( + username=config.get("mqttUsername"), password=config.get("mqttPassword") + ) if config.get("mqttCert") and config.get("mqttKey"): if config.get("mqttCA"): - client.tls_set(ca_certs=config.get("mqttCA"), certfile=config.get("mqttCert"), keyfile=config.get("mqttKey")) + client.tls_set( + ca_certs=config.get("mqttCA"), + certfile=config.get("mqttCert"), + keyfile=config.get("mqttKey"), + ) else: client.tls_set(certfile=config.get("mqttCert"), keyfile=config.get("mqttKey")) elif config.get("mqttCA"): @@ -425,11 +608,22 @@ def fetchData(): client.on_log = on_log # define last will -client.will_set(config.get("mqttBaseTopic") + "/state", payload="offline", qos=1, retain=True) +client.will_set( + config.get("mqttBaseTopic") + "/state", payload="offline", qos=1, retain=True +) # connect to MQTT server -print("Connecting to " + config.get("mqttHostname") + " on port " + str(config.get("mqttPort"))) -client.connect(config.get("mqttHostname"), config.get("mqttPort"), config.get("mqttConnectionTimeout")) +print( + "Connecting to " + + config.get("mqttHostname") + + " on port " + + str(config.get("mqttPort")) +) +client.connect( + config.get("mqttHostname"), + config.get("mqttPort"), + config.get("mqttConnectionTimeout"), +) # subscribe to topics print("Subscribing to " + config.get("mqttBaseTopic") + "/cmd/#") From 6a3d02ab8bb13a363821dafd98a879a99a73bd97 Mon Sep 17 00:00:00 2001 From: Peter Grauvogel Date: Wed, 23 Mar 2022 20:41:02 +0100 Subject: [PATCH 175/206] fix(install): updates the URL and adds missing key (#1789) --- scripts/installscripts/buster-install-default.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/installscripts/buster-install-default.sh b/scripts/installscripts/buster-install-default.sh index 97fbc5b45..1d9760fe6 100755 --- a/scripts/installscripts/buster-install-default.sh +++ b/scripts/installscripts/buster-install-default.sh @@ -786,7 +786,8 @@ install_main() { # Install required packages ${apt_get} ${allow_downgrades} install apt-transport-https - wget -q -O - https://apt.mopidy.com/mopidy.gpg | sudo apt-key add - + sudo mkdir -p /usr/local/share/keyrings + sudo wget -q -O /usr/local/share/keyrings/mopidy-archive-keyring.gpg https://apt.mopidy.com/mopidy.gpg sudo wget -q -O /etc/apt/sources.list.d/mopidy.list https://apt.mopidy.com/buster.list ${apt_get} update From 41dee23c981bf1f41a1319538382a5ef2e64faa9 Mon Sep 17 00:00:00 2001 From: climbit Date: Wed, 23 Mar 2022 21:11:18 +0100 Subject: [PATCH 176/206] Split the line read from the deviceName.txt at ';'. (#1702) The code snippet was copied over from Reader.py.experimental.Multi. --- scripts/Reader.py.experimental | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/Reader.py.experimental b/scripts/Reader.py.experimental index 57e187edd..da73b3b5b 100755 --- a/scripts/Reader.py.experimental +++ b/scripts/Reader.py.experimental @@ -187,7 +187,7 @@ class Reader(object): sys.exit('Please run RegisterDevice.py first') else: with open(path + '/deviceName.txt', 'r') as f: - device_name = f.read() + device_name = f.read().rstrip().split(';',1)[0] if device_name == 'MFRC522': self.reader = Mfrc522Reader() From 04f7bb1819a4ebd7f3ef72ad5dda8b4765952b4a Mon Sep 17 00:00:00 2001 From: Christian Erhardt Date: Wed, 23 Mar 2022 21:12:12 +0100 Subject: [PATCH 177/206] Update README.md (#1626) Fixed wrong path for 2.3 installation guide Co-authored-by: Micz Flor From 6fb40b7c5f8e73a381969a485d82037e1bc91872 Mon Sep 17 00:00:00 2001 From: lenlennart <53861396+lenlennart@users.noreply.github.com> Date: Wed, 23 Mar 2022 21:12:39 +0100 Subject: [PATCH 178/206] GPIO-Documentation in /docs is deprecated (#1525) Article in the wiki has been updated, this one is deprecated -> maybe remove entirely? --- docs/GPIO-BUTTONS.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/GPIO-BUTTONS.md b/docs/GPIO-BUTTONS.md index 87a8f7c75..813d83dcc 100644 --- a/docs/GPIO-BUTTONS.md +++ b/docs/GPIO-BUTTONS.md @@ -1,4 +1,5 @@ - +Deprecated, please see [wiki](/wiki) for the latest version +--------------------------------------------- # Control Jukebox with buttons / GPIO (Other docs: [Installation](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/INSTALL-stretch) | From 7adacfc9b1e7247709871f679c2cf427dd4b96c1 Mon Sep 17 00:00:00 2001 From: s-martin Date: Thu, 24 Mar 2022 22:30:32 +0100 Subject: [PATCH 179/206] Fix git protocol for pip (#1791) * Fix #1721 * Fix also spi installation --- components/rfid-reader/RC522/requirements.txt | 2 +- requirements.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/components/rfid-reader/RC522/requirements.txt b/components/rfid-reader/RC522/requirements.txt index 775bee697..6643d6123 100644 --- a/components/rfid-reader/RC522/requirements.txt +++ b/components/rfid-reader/RC522/requirements.txt @@ -2,4 +2,4 @@ # You need to install these with `sudo python3 -m pip install --upgrade --force-reinstall -q -r requirements.txt` # pi-rc522 use latest version from Github -git+git://github.com/ondryaso/pi-rc522.git#egg=pi-rc522 +git+https://github.com/ondryaso/pi-rc522.git#egg=pi-rc522 diff --git a/requirements.txt b/requirements.txt index 205d89ab2..21e820309 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,7 +5,7 @@ # related libraries. evdev -git+git://github.com/lthiery/SPI-Py.git#egg=spi-py +git+https://github.com/lthiery/SPI-Py.git#egg=spi-py youtube_dl pyserial RPi.GPIO From cef2cd18e59180ffd50fc53f29f0c75c21457075 Mon Sep 17 00:00:00 2001 From: guidjome <35805514+guidjome@users.noreply.github.com> Date: Fri, 25 Mar 2022 22:31:48 +0100 Subject: [PATCH 180/206] Add french language to our favorite jukebox (#1793) --- htdocs/lang/lang-fr-FR.php | 315 +++++++++++++++++++++++++++++++++++++ 1 file changed, 315 insertions(+) create mode 100755 htdocs/lang/lang-fr-FR.php diff --git a/htdocs/lang/lang-fr-FR.php b/htdocs/lang/lang-fr-FR.php new file mode 100755 index 000000000..73780f2d2 --- /dev/null +++ b/htdocs/lang/lang-fr-FR.php @@ -0,0 +1,315 @@ +(Requires Javascript in the browser to be enabled.)"; +$lang['cardEditMessageDefault'] = "Les cartes utilisées par le systeme sont listées ici accueil."; +$lang['cardRegisterMessageSwipeNew'] = "Passer une autre carte si vous souhaitez en enregistrer une autre."; +$lang['cardEditMessageInputNew'] = "Type another card ID pick one from the list on the home page."; +$lang['cardRegisterErrorTooMuch'] = "

    This is too much! Please select only one audiofolder. Make up your mind.

    "; +$lang['cardRegisterErrorStreamAndAudio'] = "

    This is too much! Either specify a stream or select an audio folder or system command. Make up your mind.

    "; +$lang['cardRegisterErrorStreamOrAudio'] = "

    Seems you haven't selected anything! Add an URL and stream type, select a folder or a system command. Or 'Cancel' to go back to the home page.

    "; +$lang['cardRegisterErrorExistingAndNew'] = "

    This is too much! Either choose an existing folder or create a new one.

    "; +$lang['cardRegisterErrorExistingFolder'] = "

    A folder named with the same name already exists! Chose a different one.

    "; +$lang['cardRegisterErrorSuggestFolder'] = "A folder name for the stream needs to be created. Below in the form I made a suggestion."; +$lang['cardRegisterErrorConvertSpotifyURL'] = "URL Spotify incorrecte, elle a été convertie au bon format"; +$lang['cardRegisterStream2Card'] = "Le stream est lié à la carte."; +$lang['cardRegisterFolder2Card'] = "Le dossier audio est désormais lié à une carte."; +$lang['cardRegisterDownloadingYT'] = "

    Piste YouTube en cours de téléchargement. Cela peut prendre plusieurs minutes. Log dans le fichier \"youtube-dl.log\".

    "; +$lang['cardRegisterSwipeUpdates'] = "Mise à jour automatique lors du passage d'une carte."; +$lang['cardRegisterManualLinks'] = "

    Vous pouvez lier manuellement une carte à un dossier. Explication dans la documentation connection à phoniebox et enregistrer une carte.

    "; +$lang['cardRegisterTriggerSuccess'] = "La carte est désormais lié à une commande :"; + +/* +* Card edit form +*/ +$lang['cardFormFolderLegend'] = "Lier la carte RFID à:"; +$lang['cardFormFolderLabel'] = "Lier une carte à un dossier"; +$lang['cardFormFolderSelectDefault'] = "Aucun (faites défiler pour choisir un dossier)"; +$lang['cardFormFolderHelp'] = "Containing local files or add YouTube content (specify below)."; +$lang['cardFormNewFolderLabel'] = "... ou liez un nouveau dossier"; +$lang['cardFormNewFolderHelp'] = "Always use a new folder for streams (see below) and optionally for YouTube."; +$lang['cardFormNewFolderPlaceholder'] = "ex 'Nom de l'artiste/Album'"; +$lang['cardFormTriggerLegend'] = "Trigger system command"; +$lang['cardFormTriggerLabel'] = "... or link to a system command"; +$lang['cardFormTriggerHelp'] = "Select system commands (like 'pause', 'volume up', 'shutdown') from the list of available commands. If a RFID card is already linked to a function, the ID is shown in the pulldown menu."; +$lang['cardFormTriggerSelectDefault'] = "Select command to link"; + +$lang['cardFormStreamLegend'] = "Link Stream"; +$lang['cardFormStreamLabel'] = "Stream URL (always requires new folder above)"; +$lang['cardFormStreamPlaceholderClassic'] = "http(...).mp3 / .m3u / .ogg / .rss / .xml / ..."; +$lang['cardFormStreamPlaceholderPlusSpotify'] = "spotify:album/artist/playlist/track:### / Stream/Podcast like http....mp3 .xml .rss .ogg"; +$lang['cardFormStreamHelp'] = "Add the URL for spotify, podcast, web radio, stream or other online media"; +$lang['cardFormStreamTypeSelectDefault'] = "Select type"; +$lang['cardFormStreamTypeHelp'] = "Select the type you are adding"; + +$lang['cardFormYTLegend'] = "Download YouTube"; +$lang['cardFormYTLabel'] = "YouTube URL (single clip or playlist)"; +$lang['cardFormYTPlaceholder'] = "e.g. https://www.youtube.com/watch?v=7GI0VdPehQI"; +$lang['cardFormYTSelectDefault'] = "Pull down to select a folder or create a new one below"; +$lang['cardFormYTHelp'] = "Full YouTube-URL of clip or playlist. Will be downloaded in the folder specified above or the new one if specified."; +$lang['cardFormRemoveCard'] = "Remove Card ID"; + +// Export Card IDs as .csv file +$lang['cardExportAnchorLink'] = "Export all RFID links (audio playout and commands)"; +$lang['cardExportButtonLink'] = "Create .csv file of available RFID links"; + +// Import Card IDs as .csv file +$lang['cardImportAnchorLink'] = "Import RFID links from .csv file"; +$lang['cardImportFileLabel'] = "Select .csv file to create RFID links"; +$lang['cardImportFileSuccessUpload'] = "Successful upload of file: "; +$lang['cardImportFileErrorUpload'] = "

    There was an error uploading the file, please try again!

    "; +$lang['cardImportFileErrorFiletype'] = "

    Wrong file type! The file must be a .csv file.

    "; +$lang['cardImportFormOverwriteLabel'] = "Select import action"; +$lang['cardImportFormOverwriteHelp'] = "Specify what to do with the uploaded RFID links."; +$lang['cardImportFormOverwriteAll'] = "Overwrite both: audio AND commands"; +$lang['cardImportFormOverwriteAudio'] = "Overwrite ONLY audio triggers"; +$lang['cardImportFormOverwriteCommands'] = "Overwrite ONLY system commands"; +$lang['cardImportFileOverwriteMessageCommands'] = "

    System commands were overwritten with uploaded RFID IDs.

    "; +$lang['cardImportFileOverwriteMessageAudio'] = "

    Links to audio playlists etc. were overwritten with uploaded RFID IDs.

    "; +$lang['cardImportFormDeleteLabel'] = "Delete or keep other RFID links?"; +$lang['cardImportFormDeleteNone'] = "Keep all existing: audio AND commands"; +$lang['cardImportFormDeleteAll'] = "Delete both: audio AND commands"; +$lang['cardImportFormDeleteAudio'] = "Delete ONLY audio triggers"; +$lang['cardImportFormDeleteCommands'] = "Delete ONLY system commands"; +$lang['cardImportFormDeleteHelp'] = "Which of the existing RFID links should be kept, which deleted?."; +$lang['cardImportFileDeleteMessageCommands'] = "

    System commands deleted.

    "; +$lang['cardImportFileDeleteMessageAudio'] = "

    Audio links deleted.

    "; + +/* +* Track edit form +*/ +$lang['trackEditTitle'] = "Gestion des pistes"; +$lang['trackEditInformation'] = "Information sur la piste"; +$lang['trackEditMove'] = "Déplacer une piste"; +$lang['trackEditMoveSelectLabel'] = "Selectionner un dossier"; +$lang['trackEditMoveSelectDefault'] = "Ne pas déplacer le fichier"; +$lang['trackEditDelete'] = "Supprimer la piste"; +$lang['trackEditDeleteLabel'] = "Etes vous sûr de vouloir supprimer ?"; +$lang['trackEditDeleteHelp'] = "Aucun retour arrière pour la suppression d'une piste. Etes vous sûr ?"; +$lang['trackEditDeleteNo'] = "Non, ne pas supprimer cette piste"; +$lang['trackEditDeleteYes'] = "Oui, supprimer cette piste"; + +/* +* Settings +*/ +$lang['settingsPlayoutBehaviourCard'] = "Paramètrage du lecteur RFID"; +$lang['settingsPlayoutBehaviourCardLabel'] = "Passer ou poser la carte ?"; +$lang['settingsPlayoutBehaviourCardSwipe'] = "Passer une carte lance le lecteur."; +$lang['settingsPlayoutBehaviourCardPlace'] = "Poser la carte pour lancer la lecture, l'enlever pour stopper."; +$lang['settingsPlayoutBehaviourCardHelp'] = "Si vous choisissez 'poser la carte', Cela affecte le deuxième passage."; + +$lang['settingsVolChangePercent'] = "Changement du volume %"; +$lang['settingsMaxVol'] = "Volume maximum"; +$lang['settingsStartupVol'] = "Volume au démarrage"; +$lang['settingsBootVol'] = "Volume après reboot"; +$lang['settingsWifiRestart'] = "Les changements sur la configuration Wifi nécessitent un redémarrage."; +$lang['settingsWifiSsidPlaceholder'] = "ex: PhonieHomie"; +$lang['settingsWifiSsidHelp'] = "Le nom de votre réseau Wifi 'mon super réseau'"; +$lang['settingsWifiPassHelp'] = "Mot de passe Wifi (8 caractères minimum)"; +$lang['settingsWifiPrioHelp'] = "Priorité du Wifi (0-100). Si plusieurs Wifi sont détéctés la box se connectera à celui qui a la priorité la plus haute."; +$lang['settingsSecondSwipe'] = "Deuxième passage de carte"; +$lang['settingsSecondSwipeInfo'] = "Que se passe t'il lors du deuuxième passage d'une même carte ? Lecture / Pause ?"; +$lang['settingsSecondSwipeRestart'] = "Reprendre la playlist au début"; +$lang['settingsSecondSwipeSkipnext'] = "Piste suivante"; +$lang['settingsSecondSwipePause'] = "Pause / Lecture"; +$lang['settingsSecondSwipePlay'] = "Reprendre"; +$lang['settingsSecondSwipeNoAudioPlay'] = "Ignorer les déclenchements automatiques, uniquement pour les commandes systeme"; +$lang['settingsSecondSwipePauseInfo'] = "Ignorer le scan des nouvelle carte pour :"; +$lang['second'] = "seconde"; +$lang['seconds'] = "secondes"; +$lang['settingsSecondSwipePauseControlsInfo'] = "Certain type de carte (ex augmentation et diminution du volume, piste suivante et précedente, reculer / avancer) ne devraient pas avoir de délai :"; +$lang['settingsSecondSwipePauseControlsOn'] = "Utiliser la carte immédiatement"; +$lang['settingsSecondSwipePauseControlsOff'] = "Utiliser la carte après un délai (secondes)"; +$lang['settingsWebInterface'] = "Interface web"; +$lang['settingsCoverInfo'] = "Voulez vous afficher les couvertures de vos playlist et titres ?"; +$lang['settingsShowCoverON'] = "Afficher la couverture"; +$lang['settingsShowCoverOFF'] = "Ne pas afficher la couverture"; +$lang['settingsMessageLangfileNewItems'] = "Il y a des nouveautés pour le fichier de langue lang-fr-FR.php. Envoyer vos modiffications sur Github :)"; +$lang['settingsWlanSendNav'] = "Envoyer l'IP par mail"; +$lang['settingsWlanSendInfo'] = "Envoyer l'IP par mail après reboot ? (pratique si vous êtes en IP dynamique et qe vous souhaitez vous connecter)"; +$lang['settingsWlanSendQuest'] = "Envoyer l'IP par mail ?"; +$lang['settingsWlanSendEmail'] = "email"; +$lang['settingsWlanSendON'] = "Oui, envoyer par mail"; +$lang['settingsWlanSendOFF'] = "Non, ne pas envoyer par mail"; + +$lang['settingsVolumeManager'] = "Sélectionner le gestionnaire de volume"; + +$lang['settingsWlanReadNav'] = "Lecture de l'IP"; +$lang['settingsWlanReadInfo'] = "Récupérer l'IP (wifi) après chaque reboot ? (pratique si vous êtes en IP dynamique et qe vous souhaitez vous connecter)"; +$lang['settingsWlanReadQuest'] = "Lire mon IP réseau ?"; +$lang['settingsWlanReadON'] = "Oui, lire mon IP."; +$lang['settingsWlanReadOFF'] = "Non, ne pas lire mon IP."; + +/* +* System info +*/ +$lang['infoOsDistrib'] = "Distribtion Linux"; +$lang['infoOsCodename'] = "Version de l'OS"; +$lang['infoOsTemperature'] = "Température"; +$lang['infoOsThrottle'] = "Throttling"; +$lang['infoStorageUsed'] = "Utilisation disque"; +$lang['infoMopidyStatus'] = "Etat du serveur Mopidy"; +$lang['infoMPDStatus'] = "Etat du serveur MPD"; +$lang['infoDebugLogTail'] = "Fichier debug: Les 40 dernières lignes"; +$lang['infoDebugLogClear'] = "Effacer le contenu du fichier debug.log"; +$lang['infoDebugLogSettings'] = "Paramètres de debug"; +$lang['infoAudioActive'] = "Périphériques audio activés"; +$lang['infoBluetoothStatus'] = "Etat du Bluetooth"; + +/* +* Folder Management and File Upload +*/ +$lang['manageFilesFoldersTitle'] = "Dossier & Fichier"; +$lang['manageFilesFoldersUploadFilesLabel'] = "Sélection du fichier depuis votre PC"; +$lang['manageFilesFoldersUploadLegend'] = "Uploader un fichier"; +$lang['manageFilesFoldersUploadLabel'] = "Sélectionner un dossier ou en créer un nouveau"; +$lang['manageFilesFoldersUploadFolderHelp'] = "Si vous selectionnez un dossier ET que vous en créez un, le nouveau dossier sera inclus dans celui selectionné."; +$lang['manageFilesFoldersNewFolderTitle'] = "Créer un nouveau dossier"; +$lang['manageFilesFoldersNewFolderPositionLegend'] = "Position du dossier"; +$lang['manageFilesFoldersNewFolderPositionDefault'] = "Le nouveau dossier peut être à la racine ou inclus dans un dossier existant"; +$lang['manageFilesFoldersErrorNewFolderName'] = "

    Nom du dossier invalide.

    "; +$lang['manageFilesFoldersErrorNewFolder'] = "

    Aucun dossier selectionné ou aucun dossier valide renseigné.

    "; +$lang['manageFilesFoldersErrorNoNewFolder'] = "

    Aucun dossier selectionné ou aucun dossier valide renseigné.

    "; +$lang['manageFilesFoldersErrorNewFolderExists'] = "

    Le dossier existe deja.

    "; +$lang['manageFilesFoldersErrorNewFolderNotParent'] = "

    Le dossier parent est absent.

    "; +$lang['manageFilesFoldersSuccessNewFolder'] = "Création du nouveau dossier ok: "; +$lang['manageFilesFoldersSelectDefault'] = "Faites défiler pour choisir un dossier existant ou créez en un nouveau"; + +$lang['manageFilesFoldersRenewDB'] = "Renouvellement de la base"; +$lang['manageFilesFoldersLocalScan'] = "Scanner la bibliothèque"; +$lang['manageFilesFoldersRenewDBinfo'] = "Il est conseillé de scanner votre librairie après chaque ajout de fichier ou modification de dossier. Seules les nouvelles musiques ou les modifications seront scannées. Modipy sera stoppé lors du scan et relancé automatiquement à la fin du scan."; + +/* +* File search +*/ +$lang['searchTitle'] = "Recherche de fichiers audio"; +$lang['searchExample'] = "ex Stromae"; +$lang['searchSend'] = "Rechercher"; +$lang['searchResult'] = "Resultats:"; + +/* +* Filter +*/ +$lang['filterall'] = "Tout afficher"; +$lang['filterfile'] = "Fichiers"; +$lang['filterlivestream'] = "Livestream"; +$lang['filterpodcast'] = "Podcast"; +$lang['filterspotify'] = "Spotify"; +$lang['filteryoutube'] = "YouTube"; +?> From 5a6b99c0deab84ca3bd67849c1b01b3b6234f70c Mon Sep 17 00:00:00 2001 From: Peter Grauvogel Date: Sun, 27 Mar 2022 13:58:46 +0200 Subject: [PATCH 181/206] fix(install): mopidy for spotify install (#1792) * fix(install): mopidy for spotify install * applying mopidy install fix here as well --- .../installscripts/buster-install-default-with-autohotspot.sh | 2 +- scripts/installscripts/buster-install-default.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/installscripts/buster-install-default-with-autohotspot.sh b/scripts/installscripts/buster-install-default-with-autohotspot.sh index 30f4de60a..db75c6ca3 100755 --- a/scripts/installscripts/buster-install-default-with-autohotspot.sh +++ b/scripts/installscripts/buster-install-default-with-autohotspot.sh @@ -828,7 +828,7 @@ install_main() { # keep major verson 3 of mopidy echo -e "Package: mopidy\nPin: version 3.*\nPin-Priority: 1001" | sudo tee /etc/apt/preferences.d/mopidy - wget -q -O - https://apt.mopidy.com/mopidy.gpg | sudo apt-key add - + sudo wget -q -O /usr/local/share/keyrings/mopidy-archive-keyring.gpg https://apt.mopidy.com/mopidy.gpg sudo wget -q -O /etc/apt/sources.list.d/mopidy.list https://apt.mopidy.com/buster.list ${apt_get} update ${apt_get} upgrade diff --git a/scripts/installscripts/buster-install-default.sh b/scripts/installscripts/buster-install-default.sh index 1d9760fe6..34d49a342 100755 --- a/scripts/installscripts/buster-install-default.sh +++ b/scripts/installscripts/buster-install-default.sh @@ -834,7 +834,7 @@ install_main() { # keep major verson 3 of mopidy echo -e "Package: mopidy\nPin: version 3.*\nPin-Priority: 1001" | sudo tee /etc/apt/preferences.d/mopidy - wget -q -O - https://apt.mopidy.com/mopidy.gpg | sudo apt-key add - + sudo wget -q -O /usr/local/share/keyrings/mopidy-archive-keyring.gpg https://apt.mopidy.com/mopidy.gpg sudo wget -q -O /etc/apt/sources.list.d/mopidy.list https://apt.mopidy.com/buster.list ${apt_get} update ${apt_get} upgrade From c0586f6edb63d98bb43cb1707b2df1d0665cb70d Mon Sep 17 00:00:00 2001 From: s-martin Date: Thu, 19 May 2022 20:27:56 +0200 Subject: [PATCH 182/206] Create dependabot.yml --- .github/dependabot.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 000000000..6d3773dd0 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,16 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates + +version: 2 +updates: + - package-ecosystem: "pip" + directory: "/" + schedule: + interval: "daily" + + - package-ecosystem: "composer" + directory: "/" + schedule: + interval: "daily" From f71bf4a55a86338a3eff44fcffc400cd6b6293e6 Mon Sep 17 00:00:00 2001 From: s-martin Date: Thu, 19 May 2022 20:36:42 +0200 Subject: [PATCH 183/206] Update dependabot.yml --- .github/dependabot.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 6d3773dd0..de5e8ce51 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -8,9 +8,14 @@ updates: - package-ecosystem: "pip" directory: "/" schedule: - interval: "daily" + interval: "monthly" - package-ecosystem: "composer" directory: "/" schedule: - interval: "daily" + interval: "monthly" + + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "monthly" From 3673065e2866318603582883b5ecd8bc8b71cb5f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 19 May 2022 20:53:33 +0200 Subject: [PATCH 184/206] Bump actions/setup-python from 1 to 3 (#1821) Bumps [actions/setup-python](https://github.com/actions/setup-python) from 1 to 3. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v1...v3) --- updated-dependencies: - dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/pythonpackage.yml | 2 +- .github/workflows/pythonpackage_future3.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pythonpackage.yml b/.github/workflows/pythonpackage.yml index 262748e99..55ddc42c5 100644 --- a/.github/workflows/pythonpackage.yml +++ b/.github/workflows/pythonpackage.yml @@ -17,7 +17,7 @@ jobs: steps: - uses: actions/checkout@v1 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v1 + uses: actions/setup-python@v3 with: python-version: ${{ matrix.python-version }} - name: Install dependencies diff --git a/.github/workflows/pythonpackage_future3.yml b/.github/workflows/pythonpackage_future3.yml index c53756ca7..2d1b574e9 100644 --- a/.github/workflows/pythonpackage_future3.yml +++ b/.github/workflows/pythonpackage_future3.yml @@ -28,7 +28,7 @@ jobs: steps: - uses: actions/checkout@v1 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v1 + uses: actions/setup-python@v3 with: python-version: ${{ matrix.python-version }} - name: Install dependencies From 8c8a13c553eeb9386f2bf91b4fdc27c5de0d0488 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 19 May 2022 20:53:55 +0200 Subject: [PATCH 185/206] Bump actions/checkout from 2 to 3 (#1822) Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v2...v3) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/codeql-analysis.yml | 2 +- .github/workflows/dockerimage.yml | 2 +- .github/workflows/pythonpackage.yml | 2 +- .github/workflows/pythonpackage_future3.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index df6b2837a..8e49a6673 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -35,7 +35,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL diff --git a/.github/workflows/dockerimage.yml b/.github/workflows/dockerimage.yml index 9ce6317a5..ce0e8f766 100644 --- a/.github/workflows/dockerimage.yml +++ b/.github/workflows/dockerimage.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Build Docker image and run tests run: | docker build . --file ./ci/Dockerfile.buster.test_install.amd64 --tag rpi-jukebox-rfid-buster:latest diff --git a/.github/workflows/pythonpackage.yml b/.github/workflows/pythonpackage.yml index 55ddc42c5..68baad933 100644 --- a/.github/workflows/pythonpackage.yml +++ b/.github/workflows/pythonpackage.yml @@ -15,7 +15,7 @@ jobs: python-version: [3.6, 3.7, 3.8] steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v3 with: diff --git a/.github/workflows/pythonpackage_future3.yml b/.github/workflows/pythonpackage_future3.yml index 2d1b574e9..de9a849f4 100644 --- a/.github/workflows/pythonpackage_future3.yml +++ b/.github/workflows/pythonpackage_future3.yml @@ -26,7 +26,7 @@ jobs: python-version: [3.7, 3.8] steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v3 with: From 81a01ffa78654d47355f07dff779e0a43be79c1a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 19 May 2022 20:55:05 +0200 Subject: [PATCH 186/206] Bump github/codeql-action from 1 to 2 (#1820) Bumps [github/codeql-action](https://github.com/github/codeql-action) from 1 to 2. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/v1...v2) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/codeql-analysis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 8e49a6673..1a365a93c 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -39,7 +39,7 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@v1 + uses: github/codeql-action/init@v2 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -50,7 +50,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@v1 + uses: github/codeql-action/autobuild@v2 # ℹ️ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl @@ -64,4 +64,4 @@ jobs: # make release - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v1 + uses: github/codeql-action/analyze@v2 From 7a5d3f885b6e737724116ef9b510bf47bea030a8 Mon Sep 17 00:00:00 2001 From: David K Date: Sun, 29 May 2022 19:26:46 +0000 Subject: [PATCH 187/206] fix reported duration attribute via mqtt (#1787) * fix reportet duration via mqtt this adjusts the regex to get the duration attribute from the status object. * feat: use for duration the fallback time attribute In some cases mpd does not report the duration of a track in the mpd status response but usually a rounded value in the time attribute. So lets use this as fallback value. --- .../MQTT-protocol/daemon_mqtt_client.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py b/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py index 60c8ca38d..f13a14581 100644 --- a/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py +++ b/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py @@ -476,6 +476,19 @@ def regex(needle, hay, exception="-"): else: return exception +def getDuration(status): + """ Find the duration of the track in the output from mpd status""" + + # try to get the duration value + duration = regex("\nduration: (.*)\n", status) + + if duration == "-": + # if the duration attribute is missing try to get the time + # this attribute value is split into two parts by ":" + # first is the elapsed time and the second part is the duration + duration = regex("\ntime: .*:(.*)\n", status, "0") + + return int(float(duration)) def fetchData(): # use global refreshInterval as this function is run as a thread through the paho-mqtt loop @@ -523,7 +536,7 @@ def fetchData(): int(hours), int(minutes), int(seconds) ) - duration = int(float(regex("\nduration: (.*)\n", status, "0"))) + duration = getDuration(status) hours, remainder = divmod(duration, 3600) minutes, seconds = divmod(remainder, 60) result["duration"] = "{:02}:{:02}:{:02}".format( From a63bc8f2930b644a54c7b2e22d04055d4709bfd0 Mon Sep 17 00:00:00 2001 From: Micz Flor Date: Tue, 31 May 2022 21:12:38 +0200 Subject: [PATCH 188/206] Update README.md --- README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/README.md b/README.md index 8d646243c..c18ac3108 100755 --- a/README.md +++ b/README.md @@ -8,6 +8,19 @@ A contactless jukebox for the Raspberry Pi, playing audio files, playlists, podcasts, web streams and spotify triggered by RFID cards. All plug and play via USB, no soldering iron needed. Update: if you must, it now also features a howto for adding GPIO buttons controls. +**IMPORTANT NOTICE REGARDING SPOTIFY INTEGRATION** + +>Spotify has [disabled access to libspotify on May 16, 2022](https://developer.spotify.com/community/news/2022/04/12/libspotify-sunset/). +This means Phoniebox can not communicate with Spotify via libspotify anymore. +The problem is not our code but the cut off by Spotify. + +We want Phoniebox users to be able to connect their box to their Spotify accounts and play their content. +The possibilities Spotify offers are -- at first glance -- not supporting an integration with Phoniebox. +Third party projects like [librespot-java](https://github.com/librespot-org/librespot-java) enter a grey zone regarding violation of Spotify's *Terms of Services* -- and even state that they (quote) "If you're brave enough to put at risk this entire project, just don't publish it". +This leaves us in a pickle and we are happy to hear from developer talent in the Phoniebox community on how to move forward regarding Phoniebox. +We are also curious to learn about alternative services we can connect with and which you would like to see supported -- or have developed support for already. + + ## The Phoniebox Calendar 2022 is here!!! Another bunch of wonderful designs! 2022 is the fourth Phoniebox calendar. If you are interested, you can see the [2019, 2020 and 2021 calendars in the docs folder](https://github.com/MiczFlor/RPi-Jukebox-RFID/tree/develop/docs). Download [the printable PDF of 2022 here](https://mi.cz/static/2022-Phoniebox-Calendar.pdf). From b09284910c0269e182aa00f4077dfd18932c74a8 Mon Sep 17 00:00:00 2001 From: Micz Flor Date: Wed, 1 Jun 2022 08:45:21 +0200 Subject: [PATCH 189/206] Update README.md --- README.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index c18ac3108..80db2e444 100755 --- a/README.md +++ b/README.md @@ -11,14 +11,16 @@ A contactless jukebox for the Raspberry Pi, playing audio files, playlists, podc **IMPORTANT NOTICE REGARDING SPOTIFY INTEGRATION** >Spotify has [disabled access to libspotify on May 16, 2022](https://developer.spotify.com/community/news/2022/04/12/libspotify-sunset/). -This means Phoniebox can not communicate with Spotify via libspotify anymore. +This means Phoniebox can not communicate with Spotify via libspotify (and mopidy-spotify) anymore. The problem is not our code but the cut off by Spotify. We want Phoniebox users to be able to connect their box to their Spotify accounts and play their content. The possibilities Spotify offers are -- at first glance -- not supporting an integration with Phoniebox. -Third party projects like [librespot-java](https://github.com/librespot-org/librespot-java) enter a grey zone regarding violation of Spotify's *Terms of Services* -- and even state that they (quote) "If you're brave enough to put at risk this entire project, just don't publish it". +Third party projects like [librespot-java](https://github.com/librespot-org/librespot-java) enter a grey zone regarding violation of Spotify's *Terms of Services* (ToS). For a potential Spotify re-integration, we are committed to a Spotify ToS compliant way of doing so (both in Version 2 and Version 3). This means looking into the (relatively new) Spotify Playback API, which is going to take an unknown amount of time. + This leaves us in a pickle and we are happy to hear from developer talent in the Phoniebox community on how to move forward regarding Phoniebox. -We are also curious to learn about alternative services we can connect with and which you would like to see supported -- or have developed support for already. +We are also curious to learn about alternative services we can connect with and which you would like to see supported -- or have developed support for already: +https://github.com/MiczFlor/RPi-Jukebox-RFID/discussions/1835 ## The Phoniebox Calendar 2022 is here!!! From 43c30193baa1f5430824f0727687941f86ac61ee Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 2 Jul 2022 22:21:28 +0200 Subject: [PATCH 190/206] Bump actions/setup-python from 3 to 4 (#1856) Bumps [actions/setup-python](https://github.com/actions/setup-python) from 3 to 4. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/pythonpackage.yml | 2 +- .github/workflows/pythonpackage_future3.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pythonpackage.yml b/.github/workflows/pythonpackage.yml index 68baad933..d4109874f 100644 --- a/.github/workflows/pythonpackage.yml +++ b/.github/workflows/pythonpackage.yml @@ -17,7 +17,7 @@ jobs: steps: - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v3 + uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Install dependencies diff --git a/.github/workflows/pythonpackage_future3.yml b/.github/workflows/pythonpackage_future3.yml index de9a849f4..cf5005fd2 100644 --- a/.github/workflows/pythonpackage_future3.yml +++ b/.github/workflows/pythonpackage_future3.yml @@ -28,7 +28,7 @@ jobs: steps: - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v3 + uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Install dependencies From 9d9f6909cac584f749ab5d9850f1bb1d2f29a1ab Mon Sep 17 00:00:00 2001 From: notapirate Date: Sat, 2 Jul 2022 22:23:33 +0200 Subject: [PATCH 191/206] flexible php version in variable php_ini (#1849) Follow-up for commit "facilitate transition to bullseye". Bug: Since bullseye uses php7.4, php.ini will not be replaced by the sample Solution: Read folder name in /etc/php and use it in variable php_ini, keeping compatibility with buster --- scripts/installscripts/buster-install-default.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/installscripts/buster-install-default.sh b/scripts/installscripts/buster-install-default.sh index 34d49a342..1488d38e0 100755 --- a/scripts/installscripts/buster-install-default.sh +++ b/scripts/installscripts/buster-install-default.sh @@ -693,7 +693,7 @@ samba_config() { web_server_config() { local lighthttpd_conf="/etc/lighttpd/lighttpd.conf" local fastcgi_php_conf="/etc/lighttpd/conf-available/15-fastcgi-php.conf" - local php_ini="/etc/php/7.3/cgi/php.ini" + local php_ini="/etc/php/$(ls -1 /etc/php)/cgi/php.ini" local sudoers="/etc/sudoers" echo "Configuring web server..." From 40f7019f83962c5bf7a5a1683e2a6733353cd206 Mon Sep 17 00:00:00 2001 From: s-martin Date: Sat, 20 Aug 2022 14:03:01 +0200 Subject: [PATCH 192/206] Run CI also on PRs (#1845) * Update dockerimage.yml * Update pythonpackage.yml --- .github/workflows/dockerimage.yml | 3 +++ .github/workflows/pythonpackage.yml | 3 +++ 2 files changed, 6 insertions(+) diff --git a/.github/workflows/dockerimage.yml b/.github/workflows/dockerimage.yml index ce0e8f766..6cdce896a 100644 --- a/.github/workflows/dockerimage.yml +++ b/.github/workflows/dockerimage.yml @@ -4,6 +4,9 @@ on: push: branches-ignore: - 'future3/**' + pull_request: + # The branches below must be a subset of the branches above + branches: [ develop ] jobs: diff --git a/.github/workflows/pythonpackage.yml b/.github/workflows/pythonpackage.yml index d4109874f..b61b46aff 100644 --- a/.github/workflows/pythonpackage.yml +++ b/.github/workflows/pythonpackage.yml @@ -4,6 +4,9 @@ on: push: branches-ignore: - 'future3/**' + pull_request: + # The branches below must be a subset of the branches above + branches: [ develop ] jobs: build: From 9e578c32118d59cbe70e01d81c6bea56f6c76d3d Mon Sep 17 00:00:00 2001 From: s-martin Date: Mon, 22 Aug 2022 12:16:51 +0200 Subject: [PATCH 193/206] Linting markdown and Python (#1830) * fix flake8 warnings * fix markdownlint --- CONTRIBUTING.md | 13 ++-- README.md | 76 ++++++++++--------- .../buttons_usb_encoder.py | 1 + .../map_buttons_usb_encoder.py | 3 + 4 files changed, 50 insertions(+), 43 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index aa562fdfc..fe4f5ca6d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -33,7 +33,7 @@ Inside the root folder or the repo, these folders are important: * `components` * contains sub- und subsubfolders for additional features, services, hardware * **subfolders** are for categories (e.g. displays, soundcards) and are plural, even if there is only one - * **subsubfolders** are specific hardware, services, features, protocols, etc. + * **subsubfolders** are specific hardware, services, features, protocols, etc. # How to contribute @@ -62,7 +62,6 @@ git pull The preferred way of code contributions are [pull requests (follow this link for a small howto)](https://www.digitalocean.com/community/tutorials/how-to-create-a-pull-request-on-github). And ideally pull requests using the "running code" on the `develop` branch of your Phoniebox. Alternatively, feel free to post tweaks, suggestions and snippets in the ["issues" section](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues). - ## Making Changes * Create a topic branch from where you want to base your work. @@ -91,9 +90,10 @@ The preferred way of code contributions are [pull requests (follow this link for Update: This time without the need to create an extra random.txt file.and uptodate with the master branch. ~~~ + ## Making Trivial Changes -For changes of a trivial nature, it is not always necessary to create a new issue. +For changes of a trivial nature, it is not always necessary to create a new issue. In this case, it is appropriate to start the first line of a commit with one of `(docs)`, `(maint)`, or `(packaging)` instead of a ticket number. @@ -121,15 +121,16 @@ to detect in advance. If the code change results in a test failure, we will make our best effort to correct the error. If a fix cannot be determined and committed within 24 hours of its discovery, the commit(s) responsible _may_ be reverted, at the -discretion of the committer and Phonie maintainers. -The original contributor will be notified of the revert. +discretion of the committer and Phonie maintainers. +The original contributor will be notified of the revert. ### Summary * Changes resulting in test failures will be reverted if they cannot be resolved within one business day. -## Guidelines ## +## Guidelines + * Currently Phoniebox runs on Raspian **Buster** . Therefore all Python code should work with **Python 3.7**. * For GPIO all code should work with **RPi.GPIO**. gpiozero is currently not intended to use. diff --git a/README.md b/README.md index 80db2e444..f32353cbc 100755 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ +# Phoniebox: the RPi-Jukebox-RFID + ![GitHub last commit (branch)](https://img.shields.io/github/last-commit/MiczFlor/RPi-Jukebox-RFID/develop) -![Python Tests](https://github.com/MiczFlor/RPi-Jukebox-RFID/workflows/Python%20package/badge.svg) ![Install Script Tests](https://github.com/MiczFlor/RPi-Jukebox-RFID/workflows/Docker%20Test%20Installation/badge.svg) +![Python Tests](https://github.com/MiczFlor/RPi-Jukebox-RFID/workflows/Python%20package/badge.svg) ![Install Script Tests](https://github.com/MiczFlor/RPi-Jukebox-RFID/workflows/Docker%20Test%20Installation/badge.svg) [![Gitter chat](https://badges.gitter.im/phoniebox/gitter.png)](https://gitter.im/phoniebox) -# Phoniebox: the RPi-Jukebox-RFID - A contactless jukebox for the Raspberry Pi, playing audio files, playlists, podcasts, web streams and spotify triggered by RFID cards. All plug and play via USB, no soldering iron needed. Update: if you must, it now also features a howto for adding GPIO buttons controls. **IMPORTANT NOTICE REGARDING SPOTIFY INTEGRATION** @@ -25,7 +25,7 @@ https://github.com/MiczFlor/RPi-Jukebox-RFID/discussions/1835 ## The Phoniebox Calendar 2022 is here!!! -Another bunch of wonderful designs! 2022 is the fourth Phoniebox calendar. If you are interested, you can see the [2019, 2020 and 2021 calendars in the docs folder](https://github.com/MiczFlor/RPi-Jukebox-RFID/tree/develop/docs). Download [the printable PDF of 2022 here](https://mi.cz/static/2022-Phoniebox-Calendar.pdf). +Another bunch of wonderful designs! 2022 is the fourth Phoniebox calendar. If you are interested, you can see the [2019, 2020 and 2021 calendars in the docs folder](https://github.com/MiczFlor/RPi-Jukebox-RFID/tree/develop/docs). Download [the printable PDF of 2022 here](https://mi.cz/static/2022-Phoniebox-Calendar.pdf). ![The 2022 Phoniebox Calendar](docs/2022-Phoniebox-Calendar.jpg "The 2022 Phoniebox Calendar") @@ -33,12 +33,12 @@ Another bunch of wonderful designs! 2022 is the fourth Phoniebox calendar. If yo ## Install latest Phoniebox version -If you are looking for **the latest stable version**, use the [install script for Raspberry Pi OS Stretch](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/INSTALL-stretch). +If you are looking for **the latest stable version**, use the [install script for Raspberry Pi OS](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/INSTALL-stretch). If you dare to go where only few have gone before, **become an alpha-tester, bug reporter, contributor** for the exciting, totally re-written, up and coming, yet feature incomplete and unstable version 3 of the Phoniebox code base: ## 🔥 Version 3 is coming ... -#### Newest release: V3.2.0 Beta -> 7. Feb 2022 +### Newest release: V3.2.0 Beta -> 7. Feb 2022 * New GPIO backend based on GPIOZero including more sophisticated controls for inputs and outputs * Bluetooth Headset support with device buttons @@ -74,7 +74,7 @@ If you seek the adventure, your support will be more then welcome. Before contri * **Discussions forums** we use Github's Discussions feature for a more forum style. Please ask general questions in [Discussions](https://github.com/MiczFlor/RPi-Jukebox-RFID/discussions), bugs and enhancements should still be in [Issues](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues). * **Phoniebox [future3 Beta](https://rpi-jukebox-rfid.readthedocs.io/en/latest/) released (2022-02)** -* **Gitter Community** we got ourselves a gitter community; chat us up at https://gitter.im/phoniebox +* **Gitter Community** we got ourselves a gitter community; chat us up at * **Phoniebox [2.3](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/6?closed=1) released (2021-08-12)** @@ -94,19 +94,20 @@ The [2.3](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/6?closed=1) rel * Lots of fixed bugs and minor improvements... **What's still hot?** + * :fire: **Fixed location of gpio_settings.ini** for [GPIO control](components/gpio_control/README.md) * Added support for files with embedded chapters metada (like m4a) enhancement * Added customizable poweroff command bash enhancement * Finally fixed resume function... * Lots of fixed bugs and minor improvements... - * Status LED, Rotary Button, Volume Up/Down, custom music directory for +Spotify, Startup sound volume + * Status LED, Rotary Button, Volume Up/Down, custom music directory for +Spotify, Startup sound volume * The constantly improved **one-line install script** handles both **Classic** and **+Spotify** when [setting up your Phoniebox](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/INSTALL-stretch#one-line-install-command) - * integrated improved [GPIO control](components/gpio_control/README.md) - * integrated selection of RFID readers and uses [multiple readers](https://github.com/MiczFlor/RPi-Jukebox-RFID/pull/1012#issue-434052529) simultaneously - * features *non-interactive* installs based on a config file + * integrated improved [GPIO control](components/gpio_control/README.md) + * integrated selection of RFID readers and uses [multiple readers](https://github.com/MiczFlor/RPi-Jukebox-RFID/pull/1012#issue-434052529) simultaneously + * features *non-interactive* installs based on a config file * **[WiFi management](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/MANUAL#wifi-settings)** - * RFID cards to **toggle Wifi** (or switch it on/off) - * Read out the Wifi IP address (if you are connecting to a new network and don't know where to point your browser) + * RFID cards to **toggle Wifi** (or switch it on/off) + * Read out the Wifi IP address (if you are connecting to a new network and don't know where to point your browser) * **Hotspot** Phoniebox: [ad-hoc hotspot](https://github.com/MiczFlor/RPi-Jukebox-RFID/pull/967) if no known network found (IP: 10.0.0.5 SSID: phoniebox Password: PlayItLoud) * **Touchscreen** LCD display Player (file: `index-lcd.php`in web app) * Integrate your [Phoniebox in your Smart Home](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Smart-Home-remote-control-with-MQTT). @@ -122,13 +123,13 @@ The [2.3](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/6?closed=1) rel * Support for **[Spotify](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Spotify-FAQ)** and **[Google Play Music](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Enable-Google-Play-Music-GMusic)** integration. * **Podcasts!** More for myself than anybody else, I guess, I added the [podcast feature for Phoniebox](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/MANUAL#podcasts) (2018-05-09) * [Buttons](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Using-GPIO-hardware-buttons) and [knobs / dials](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Audio-RotaryKnobVolume) to control your **Phoniebox via GPIO**. - + ### Quick install - + [One line install script](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/INSTALL-stretch#one-line-install-command) for Raspbian `buster` available. * **MUST READ for users of [Phoniebox +Spotify Edition](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Spotify-FAQ)** -* This install script combines the two versions *Classic* and *+ Spotify*. +* This install script combines the two versions *Classic* and *+ Spotify*. * *Phoniebox Classic* supports local audio, web radio, podcasts, YouTube (download and convert), GPIO and/or RFID Documentation can be found in the [GitHub wiki for Phoniebox](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki). Please try to add content in the wiki regarding special hardware, software tweaks and the like. @@ -149,7 +150,7 @@ The PDF is about 6MB and will print well on A2 paper size, but it should also lo If you like your Phoniebox, consider to [buy me a coffee](https://www.buymeacoffee.com/MiczFlor) -or donate via [PayPal](https://www.paypal.com) to micz.flor@web.de using the *friends* option. +or donate via [PayPal](https://www.paypal.com) to micz.flor@web.de using the *friends* option. --- @@ -163,7 +164,7 @@ or donate via [PayPal](https://www.paypal.com) to micz.flor@web.de using the *fr | --- | --- | --- | |
    Installation und Hardware
    |
    Web App and Audio / Spotify
    |
    The finished Phoniebox in action
    | -A new video screencast about +A new video screencast about **What makes this Phoniebox easy to install and use:** @@ -190,13 +191,13 @@ The **web app** runs on any device and is mobile optimised. It provides: | | | | | | | | --- | --- | --- | --- | --- | --- | -| ![Caption](docs/img/gallery/Steph-20171215_h90-01.jpg "Caption") | ![Caption](docs/img/gallery/Elsa-20171210_h90-01.jpg "Caption") | ![Caption](docs/img/gallery/Geliras-20171228-Jukebox-01-h90.jpg "Caption") | ![Caption](docs/img/gallery/UlliH-20171210_h90-01.jpg "Caption") | ![Caption](docs/img/gallery/KingKahn-20180101-Jukebox-01-h90.jpg "Caption") | ![Caption](docs/img/gallery/hailogugo-20171222-h90-01.jpg "Caption") | +| ![Caption](docs/img/gallery/Steph-20171215_h90-01.jpg "Caption") | ![Caption](docs/img/gallery/Elsa-20171210_h90-01.jpg "Caption") | ![Caption](docs/img/gallery/Geliras-20171228-Jukebox-01-h90.jpg "Caption") | ![Caption](docs/img/gallery/UlliH-20171210_h90-01.jpg "Caption") | ![Caption](docs/img/gallery/KingKahn-20180101-Jukebox-01-h90.jpg "Caption") | ![Caption](docs/img/gallery/hailogugo-20171222-h90-01.jpg "Caption") | **See more innovation, upcycling and creativity in the [Phoniebox Gallery](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/GALLERY) or visit and share the project's homepage at [phoniebox.de](http://phoniebox.de/). There is also an [english Phoniebox page](http://phoniebox.de/index.php?l=en).** ## Sustainability -You might be surprised how easy and affordable you can get a RaspberryPi or an "appropriate" housing for your Phoniebox **second hand**. Think about the planet before you buy a new one. +You might be surprised how easy and affordable you can get a RaspberryPi or an "appropriate" housing for your Phoniebox **second hand**. Think about the planet before you buy a new one. Creating a Phoniebox may be sustainable for the following reasons: * You **buy things second hand** or **do upcycling on unused objects** and reduce newly produced products @@ -207,7 +208,7 @@ Creating a Phoniebox may be sustainable for the following reasons: ## Installation -* Installation instructions for Raspbian (https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/INSTALL-stretch). +* Installation instructions for Raspbian (). * You can also use the [headless installation over ssh](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/INSTALL-stretch#ssh-install) straight from a fresh SD card. * For a quick install procedure, take a look at the [bash one line install script for stretch and buster](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/INSTALL-stretch#one-line-install-command). This should get you started quickly. * If you choose the step by step installation, you need to walk through the configuration steps for [Stretch](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/CONFIGURE-stretch). @@ -236,16 +237,17 @@ Read the [CONTRIBUTING.md](CONTRIBUTING.md) file for [more infos on how to contr ## Reporting bugs -To make maintenance easier for everyone, please run the following script -and post the results when reporting a bug. +To make maintenance easier for everyone, please run the following script and post the results when reporting a bug. (Note: the results contain some personal information like IP or SSID. You might want to erase some of it before sharing with the bug report.) -~~~ + +~~~bash /home/pi/RPi-Jukebox-RFID/scripts/helperscripts/Analytics_AfterInstallScript.sh ~~~ + Just copy this line and paste it into your terminal on the pi. -If you find something that doesn't work. And you tried and tried again, but it still doesn't work, please report your issue in the ["issues" section](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues). Make sure to include information about the system and hardware you are using, like: +If you find something that doesn't work. And you tried and tried again, but it still doesn't work, please report your issue in the ["issues" section](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues). Make sure to include information about the system and hardware you are using, like: *Raspberry ZERO, OS Jessie, Card reader lists as (insert here) when running scripts/RegisterDevice.py, installed Phoniebox version 0.9.3 (or: using latest master branch).* @@ -302,12 +304,12 @@ Here is a list of equipment needed. You can find a lot second hand online (save ### RFID Reader and cards / fobs * RFID Card Reader (USB): [Neuftech USB RFID Reader ID](https://amzn.to/2RrqScm) using 125 kHz - make sure to buy compatible cards, RFID stickers or key fobs working with the same frequency as the reader. **Important notice:** the hardware of the reader that I had linked here for a long times seems to have changed and suddenly created problems with the Phoniebox installation. The reader listed now has worked and was recommended by two Phoniebox makers (2018 Oct 4). I can not guarantee that this will not change and invite you to give [RFID Reader feedback in this thread](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/231). - * RFID cards: [125 KHz EM4100](https://amzn.to/37pjy9q) make sure the frequency matches the RFID card reader !!! - * RFID fobs / key rings: [EM4100 RFID-Transponder-Schlüsselring, 125 KHz](https://amzn.to/3hsuvLO) make sure the frequency matches the RFID card reader !!! + * RFID cards: [125 KHz EM4100](https://amzn.to/37pjy9q) make sure the frequency matches the RFID card reader !!! + * RFID fobs / key rings: [EM4100 RFID-Transponder-Schlüsselring, 125 KHz](https://amzn.to/3hsuvLO) make sure the frequency matches the RFID card reader !!! + +* RFID Kit RC522: [RC522 Reader, Chip, Card for Raspberry Pi 13.56MHz] () + * RFID sticker / tags: [MIFARE RFID NFC Tags](https://amzn.to/30GfLDg) untested by me personally, but reported to work with work with RC522 and PN532 card readers. -* RFID Kit RC522: [RC522 Reader, Chip, Card for Raspberry Pi 13.56MHz] (https://amzn.to/2C7YZCZ) - * RFID sticker / tags: [MIFARE RFID NFC Tags](https://amzn.to/30GfLDg) untested by me personally, but reported to work with work with RC522 and PN532 card readers. - ### Speakers / amps * [USB Stereo Speaker Set (6 Watt, 3,5mm jack, USB-powered) black](http://amzn.to/2kXrard) | This USB powered speaker set sounds good for its size, is good value for money and keeps this RPi project clean and without the need of a soldering iron :) @@ -318,17 +320,17 @@ Here is a list of equipment needed. You can find a lot second hand online (save * [USB Interface for Arcade buttons](https://amzn.to/3nRAtIS) if you insist on not soldering hardware. (23rd Nov 2020: GPIO control script not yet part of the repo) * Arcade Buttons / Sensors (one of these might suit you) - * [Arcade Buttons / Schalter in various colours](https://amzn.to/2QMxe9r) if you want buttons for the GPIO control. - * [Arcade Buttons wit LED and custom icons](https://amzn.to/2MWQ6hq) as used by [@splitti](https://splittscheid.de/selfmade-phoniebox/#3C). - * [Set: Arcade Buttons / Tasten / Schalter ](https://amzn.to/2T81JTZ) GPIO Extension Board Starter Kit including cables and breadboard. - * [Touch Sensor / Kapazitive Touch Tasten ](https://amzn.to/2Vc4ntx) these are not buttons to press but to touch as GPIO controls. + * [Arcade Buttons / Schalter in various colours](https://amzn.to/2QMxe9r) if you want buttons for the GPIO control. + * [Arcade Buttons wit LED and custom icons](https://amzn.to/2MWQ6hq) as used by [@splitti](https://splittscheid.de/selfmade-phoniebox/#3C). + * [Set: Arcade Buttons / Tasten / Schalter](https://amzn.to/2T81JTZ) GPIO Extension Board Starter Kit including cables and breadboard. + * [Touch Sensor / Kapazitive Touch Tasten](https://amzn.to/2Vc4ntx) these are not buttons to press but to touch as GPIO controls. ### Special hardware -These are links to additional items, which will add an individual flavour to your Phoniebox setup. Consult the issue threads to see if your idea has been realised already. +These are links to additional items, which will add an individual flavour to your Phoniebox setup. Consult the issue threads to see if your idea has been realised already. -* [Ground Loop Isolator / Entstörfilter Audio](https://amzn.to/2Kseo0L) this seems to [get rid off crackles in the audio out (a typical RPi problem)](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/341) +* [Ground Loop Isolator / Entstörfilter Audio](https://amzn.to/2Kseo0L) this seems to [get rid off crackles in the audio out (a typical RPi problem)](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/341) * [Mechanical audio switch](https://amzn.to/35oOSCS) if you want to connect differen audio devices, this is the easiest way (in connection with the *Ground Loop Isolator* you will get good results) -* [Rotary Encoder / Drehregler / Dial](https://amzn.to/2J34guF) for volume control. Read here for more information on how to [integrate the rotary dial](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/267) +* [Rotary Encoder / Drehregler / Dial](https://amzn.to/2J34guF) for volume control. Read here for more information on how to [integrate the rotary dial](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/267) * [HiFiBerry DAC+ Soundcard](https://amzn.to/2J36cU9) Read here for more information on how to [HifiBerry Soundcard integration](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/MANUAL#hifiberry-dac-soundcard-details) * [HDMI zu HDMI + Optisches SPDIF mit 3,5-mm-Stereo-HDMI Audio-Extractor | HDMI zu SPDIF Konverter](https://amzn.to/2N8KP8C) If you plan to use video, this might be the better solution than a USB soundcard or the hifiberry. If takes up some space, but will work with the HDMI audio out and split the signal to deliver audio through 3.5mm jack. diff --git a/components/controls/buttons_usb_encoder/buttons_usb_encoder.py b/components/controls/buttons_usb_encoder/buttons_usb_encoder.py index 3935395e8..e5b56acfb 100644 --- a/components/controls/buttons_usb_encoder/buttons_usb_encoder.py +++ b/components/controls/buttons_usb_encoder/buttons_usb_encoder.py @@ -9,6 +9,7 @@ from io_buttons_usb_encoder import button_map, current_device from components.gpio_control.function_calls import phoniebox_function_calls +sys.path.append(".") logger = logging.getLogger(__name__) diff --git a/components/controls/buttons_usb_encoder/map_buttons_usb_encoder.py b/components/controls/buttons_usb_encoder/map_buttons_usb_encoder.py index 5dafca7eb..40b094135 100644 --- a/components/controls/buttons_usb_encoder/map_buttons_usb_encoder.py +++ b/components/controls/buttons_usb_encoder/map_buttons_usb_encoder.py @@ -8,6 +8,9 @@ from io_buttons_usb_encoder import current_device, write_button_map import components.gpio_control.function_calls +sys.path.append(".") + + try: functions = list( filter(lambda function_name: function_name.startswith("functionCall"), From 23798def6050758075b9f57c3ee33638712f4912 Mon Sep 17 00:00:00 2001 From: s-martin Date: Wed, 26 Oct 2022 23:33:55 +0200 Subject: [PATCH 194/206] Fix code scanning alert (#1802) Fixes https://github.com/MiczFlor/RPi-Jukebox-RFID/security/code-scanning/1 --- htdocs/_assets/bootstrap-3/js/collapse.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/_assets/bootstrap-3/js/collapse.js b/htdocs/_assets/bootstrap-3/js/collapse.js index 12038693d..386aa7af3 100755 --- a/htdocs/_assets/bootstrap-3/js/collapse.js +++ b/htdocs/_assets/bootstrap-3/js/collapse.js @@ -160,7 +160,7 @@ var target = $trigger.attr('data-target') || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7 - return $(target) + return $.find(target) } From 7c00de192fbfcb44278312951780190031159438 Mon Sep 17 00:00:00 2001 From: s-martin Date: Wed, 26 Oct 2022 23:35:09 +0200 Subject: [PATCH 195/206] Update version to 2.4 --- settings/version-number | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings/version-number b/settings/version-number index bb576dbde..6b4950e3d 100755 --- a/settings/version-number +++ b/settings/version-number @@ -1 +1 @@ -2.3 +2.4 From 0307407e86e9a349c0b98f9bccd36d994b96a03e Mon Sep 17 00:00:00 2001 From: Feras Al-Kassar Date: Wed, 26 Oct 2022 14:38:56 -0700 Subject: [PATCH 196/206] Fix Command Injection and XSS vulnerabilities in trackEdit.php (#1862) Signed-off-by: AL-KASSAR --- htdocs/trackEdit.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/trackEdit.php b/htdocs/trackEdit.php index 19784f6d6..19be521cd 100755 --- a/htdocs/trackEdit.php +++ b/htdocs/trackEdit.php @@ -247,7 +247,7 @@ * read metadata */ $fileName = Files::buildPath($post['folder'], $post['filename']); -$exec = "mid3v2 -l '" .$fileName ."'" ; +$exec = "mid3v2 -l '" .escapeshellarg($fileName) ."'" ; $res = shell_exec($exec); $lines = explode(PHP_EOL, $res); foreach($lines as $line) { From ff565cb08760f49cc6877165231c762524cab58d Mon Sep 17 00:00:00 2001 From: David K Date: Wed, 26 Oct 2022 23:48:01 +0200 Subject: [PATCH 197/206] feature: add repeat mode attribute to mqtt (#1807) * feat: add repeat mode to mqtt attributes * refactor: removes duplicated function * docs: adds repeat_mode attribute to README * refactor: extract method outside of main function * chore: remove more duplicated code --- .../MQTT-protocol/README.md | 1 + .../MQTT-protocol/daemon_mqtt_client.py | 50 ++++++++----------- 2 files changed, 21 insertions(+), 30 deletions(-) diff --git a/components/smart-home-automation/MQTT-protocol/README.md b/components/smart-home-automation/MQTT-protocol/README.md index aa76da5bd..c1093a0fd 100644 --- a/components/smart-home-automation/MQTT-protocol/README.md +++ b/components/smart-home-automation/MQTT-protocol/README.md @@ -52,6 +52,7 @@ MQTT clients can (additionally to the periodic updates) request an attribute of - volume - mute - repeat +- repeat_mode [off / single / playlist] - random - state - file diff --git a/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py b/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py index f13a14581..b99b89eab 100644 --- a/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py +++ b/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py @@ -86,6 +86,7 @@ "volume", "mute", "repeat", + "repeat_mode", "random", "state", "file", @@ -112,31 +113,6 @@ ] -def watchForNewCard(): - i = inotify.adapters.Inotify() - i.add_watch(path + "/../settings/Latest_RFID") - - # wait for inotify events - for event in i.event_gen(yield_nones=False): - if event is not None: - # fetch event attributes - (e_header, e_type_names, e_path, e_filename) = event - - # file was closed and written => a new card was swiped - if "IN_CLOSE_WRITE" in e_type_names: - # fetch card ID - cardid = readfile(path + "/../settings/Latest_RFID") - - # publish event "card_swiped" - client.publish( - config.get("mqttBaseTopic") + "/event/card_swiped", payload=cardid - ) - print(" --> Publishing event card_swiped = " + cardid) - - # process all attributes - processGet("all") - - def watchForNewCard(): i = inotify.adapters.Inotify() i.add_watch(path + "/../settings/Latest_RFID") @@ -490,6 +466,24 @@ def getDuration(status): return int(float(duration)) +REPEAT_MODE_OFF = "off" +REPEAT_MODE_SINGLE = "single" +REPEAT_MODE_PLAYLIST = "playlist" + + +def get_repeat_mode(repeat, status): + """ Returns the repeat mode that is selected in mpd """ + + if repeat == "false": + return REPEAT_MODE_OFF + + single = regex("\nsingle: (.*)\n", status) + if single == "0": + return REPEAT_MODE_PLAYLIST + + return REPEAT_MODE_SINGLE + + def fetchData(): # use global refreshInterval as this function is run as a thread through the paho-mqtt loop global refreshInterval @@ -507,6 +501,7 @@ def fetchData(): result["state"] = regex("\nstate: (.*)\n", status).lower() result["volume"] = regex("\nvolume: (.*)\n", status) result["repeat"] = normalizeTrueFalse(regex("\nrepeat: (.*)\n", status)) + result["repeat_mode"] = get_repeat_mode(result["repeat"], status) result["random"] = normalizeTrueFalse(regex("\nrandom: (.*)\n", status)) # interpret mute state based on volume @@ -649,11 +644,6 @@ def fetchData(): tWatchForNewCard.setDaemon(True) tWatchForNewCard.start() -# register thread for watchForNewCard -tWatchForNewCard = Thread(target=watchForNewCard) -tWatchForNewCard.setDaemon(True) -tWatchForNewCard.start() - # start endless loop client.loop_start() while True: From ddc652adba9c0154eb1f7fddd94ee5c8032bec37 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 26 Oct 2022 23:50:14 +0200 Subject: [PATCH 198/206] Bump php-mock/php-mock-phpunit from 2.5.0 to 2.6.1 (#1891) Bumps [php-mock/php-mock-phpunit](https://github.com/php-mock/php-mock-phpunit) from 2.5.0 to 2.6.1. - [Release notes](https://github.com/php-mock/php-mock-phpunit/releases) - [Commits](https://github.com/php-mock/php-mock-phpunit/compare/2.5.0...2.6.1) --- updated-dependencies: - dependency-name: php-mock/php-mock-phpunit dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- composer.lock | 1227 ++++++++++++++++++------------------------------- 1 file changed, 438 insertions(+), 789 deletions(-) diff --git a/composer.lock b/composer.lock index 6ea7069b9..f4eb95386 100644 --- a/composer.lock +++ b/composer.lock @@ -4,156 +4,37 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "ff4fb5fbea0b5d58eceb058fe5439afb", + "content-hash": "859b300285a679de774d435ff8c5c002", "packages": [], "packages-dev": [ - { - "name": "badoo/soft-mocks", - "version": "2.0.6", - "source": { - "type": "git", - "url": "https://github.com/badoo/soft-mocks.git", - "reference": "1cc854697c5e2569282f9db1d29cd0766d889989" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/badoo/soft-mocks/zipball/1cc854697c5e2569282f9db1d29cd0766d889989", - "reference": "1cc854697c5e2569282f9db1d29cd0766d889989", - "shasum": "" - }, - "require": { - "nikic/php-parser": "3.0.6", - "php": ">=5.5" - }, - "require-dev": { - "phpunit/phpunit": "^6.5.5", - "vaimo/composer-patches": "3.23.1" - }, - "type": "library", - "extra": { - "patches": { - "phpunit/phpunit": [ - { - "label": "phpunit run file", - "source": "patches/phpunit4.x/phpunit_phpunit.patch", - "version": "^4.8.0", - "level": "1" - }, - { - "label": "phpunit run file", - "source": "patches/phpunit5.x/phpunit_phpunit.patch", - "version": "^5.7.0", - "level": "1" - }, - { - "label": "phpunit run file", - "source": "patches/phpunit6.x/phpunit_phpunit.patch", - "version": "^6.5.0", - "level": "1" - }, - { - "label": "Add ability to set custom filename rewrite callbacks #1", - "source": "patches/phpunit4.x/phpunit_add_ability_to_set_custom_filename_rewrite_callbacks_1.patch", - "version": "^4.8.0", - "level": "1" - }, - { - "label": "Add ability to set custom filename rewrite callbacks #1", - "source": "patches/phpunit5.x/phpunit_add_ability_to_set_custom_filename_rewrite_callbacks_1.patch", - "version": "^5.7.0", - "level": "1" - }, - { - "label": "Add ability to set custom filename rewrite callbacks #1", - "source": "patches/phpunit6.x/phpunit_add_ability_to_set_custom_filename_rewrite_callbacks_1.patch", - "version": "^6.5.0", - "level": "1" - }, - { - "label": "Add ability to set custom filename rewrite callbacks #2", - "source": "patches/phpunit4.x/phpunit_add_ability_to_set_custom_filename_rewrite_callbacks_2.patch", - "version": "^4.8.0", - "level": "1" - }, - { - "label": "Add ability to set custom filename rewrite callbacks #2", - "source": "patches/phpunit5.x/phpunit_add_ability_to_set_custom_filename_rewrite_callbacks_2.patch", - "version": "^5.7.0", - "level": "1" - }, - { - "label": "Add ability to set custom filename rewrite callbacks #2", - "source": "patches/phpunit6.x/phpunit_add_ability_to_set_custom_filename_rewrite_callbacks_2.patch", - "version": "^6.5.0", - "level": "1" - } - ], - "phpunit/php-code-coverage": [ - { - "label": "Add ability to set custom filename rewrite callbacks", - "source": "patches/phpunit4.x/php-code-coverage_add_ability_to_set_custom_filename_rewrite_callbacks.patch", - "version": "^2.1.0", - "level": "1" - }, - { - "label": "Add ability to set custom filename rewrite callbacks", - "source": "patches/phpunit5.x/php-code-coverage_add_ability_to_set_custom_filename_rewrite_callbacks.patch", - "version": "^4.0.4", - "level": "1" - }, - { - "label": "Add ability to set custom filename rewrite callbacks", - "source": "patches/phpunit6.x/php-code-coverage_add_ability_to_set_custom_filename_rewrite_callbacks.patch", - "version": "^5.3.0", - "level": "1" - } - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Badoo Development" - } - ], - "description": "The idea behind \"Soft Mocks\" - as opposed to \"hardcore\" mocks that work on the level of the PHP interpreter (runkit and uopz) - is to rewrite class code on the spot so that it can be inserted in any place. It works by rewriting code on the fly during file inclusion instead of using extensions like runkit or uopz.", - "time": "2019-05-29T13:16:17+00:00" - }, { "name": "doctrine/instantiator", - "version": "1.3.0", + "version": "1.4.1", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "ae466f726242e637cebdd526a7d991b9433bacf1" + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/ae466f726242e637cebdd526a7d991b9433bacf1", - "reference": "ae466f726242e637cebdd526a7d991b9433bacf1", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/10dcfce151b967d20fde1b34ae6640712c3891bc", + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc", "shasum": "" }, "require": { - "php": "^7.1" + "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^6.0", + "doctrine/coding-standard": "^9", "ext-pdo": "*", "ext-phar": "*", - "phpbench/phpbench": "^0.13", - "phpstan/phpstan-phpunit": "^0.11", - "phpstan/phpstan-shim": "^0.11", - "phpunit/phpunit": "^7.0" + "phpbench/phpbench": "^0.16 || ^1", + "phpstan/phpstan": "^1.4", + "phpstan/phpstan-phpunit": "^1", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.22" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, "autoload": { "psr-4": { "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" @@ -167,7 +48,7 @@ { "name": "Marco Pivetta", "email": "ocramius@gmail.com", - "homepage": "http://ocramius.github.com/" + "homepage": "https://ocramius.github.io/" } ], "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", @@ -176,154 +57,60 @@ "constructor", "instantiate" ], - "time": "2019-10-21T16:45:58+00:00" - }, - { - "name": "hamcrest/hamcrest-php", - "version": "v2.0.0", - "source": { - "type": "git", - "url": "https://github.com/hamcrest/hamcrest-php.git", - "reference": "776503d3a8e85d4f9a1148614f95b7a608b046ad" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/776503d3a8e85d4f9a1148614f95b7a608b046ad", - "reference": "776503d3a8e85d4f9a1148614f95b7a608b046ad", - "shasum": "" - }, - "require": { - "php": "^5.3|^7.0" - }, - "replace": { - "cordoval/hamcrest-php": "*", - "davedevelopment/hamcrest-php": "*", - "kodova/hamcrest-php": "*" - }, - "require-dev": { - "phpunit/php-file-iterator": "1.3.3", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "^1.0" + "support": { + "issues": "https://github.com/doctrine/instantiator/issues", + "source": "https://github.com/doctrine/instantiator/tree/1.4.1" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "hamcrest" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD" - ], - "description": "This is the PHP port of Hamcrest Matchers", - "keywords": [ - "test" - ], - "time": "2016-01-20T08:20:44+00:00" - }, - { - "name": "mockery/mockery", - "version": "1.2.4", - "source": { - "type": "git", - "url": "https://github.com/mockery/mockery.git", - "reference": "b3453f75fd23d9fd41685f2148f4abeacabc6405" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/mockery/mockery/zipball/b3453f75fd23d9fd41685f2148f4abeacabc6405", - "reference": "b3453f75fd23d9fd41685f2148f4abeacabc6405", - "shasum": "" - }, - "require": { - "hamcrest/hamcrest-php": "~2.0", - "lib-pcre": ">=7.0", - "php": ">=5.6.0" - }, - "require-dev": { - "phpunit/phpunit": "~5.7.10|~6.5|~7.0|~8.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, - "autoload": { - "psr-0": { - "Mockery": "library/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, { - "name": "Pádraic Brady", - "email": "padraic.brady@gmail.com", - "homepage": "http://blog.astrumfutura.com" + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" }, { - "name": "Dave Marshall", - "email": "dave.marshall@atstsolutions.co.uk", - "homepage": "http://davedevelopment.co.uk" + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", + "type": "tidelift" } ], - "description": "Mockery is a simple yet flexible PHP mock object framework", - "homepage": "https://github.com/mockery/mockery", - "keywords": [ - "BDD", - "TDD", - "library", - "mock", - "mock objects", - "mockery", - "stub", - "test", - "test double", - "testing" - ], - "time": "2019-09-30T08:30:27+00:00" + "time": "2022-03-03T08:28:38+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.9.3", + "version": "1.11.0", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "007c053ae6f31bba39dfa19a7726f56e9763bbea" + "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/007c053ae6f31bba39dfa19a7726f56e9763bbea", - "reference": "007c053ae6f31bba39dfa19a7726f56e9763bbea", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/14daed4296fae74d9e3201d2c4925d1acb7aa614", + "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614", "shasum": "" }, "require": { - "php": "^7.1" + "php": "^7.1 || ^8.0" }, - "replace": { - "myclabs/deep-copy": "self.version" + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3,<3.2.2" }, "require-dev": { - "doctrine/collections": "^1.0", - "doctrine/common": "^2.6", - "phpunit/phpunit": "^7.1" + "doctrine/collections": "^1.6.8", + "doctrine/common": "^2.13.3 || ^3.2.2", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" }, "type": "library", "autoload": { - "psr-4": { - "DeepCopy\\": "src/DeepCopy/" - }, "files": [ "src/DeepCopy/deep_copy.php" - ] + ], + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -337,83 +124,43 @@ "object", "object graph" ], - "time": "2019-08-09T12:45:53+00:00" - }, - { - "name": "nikic/php-parser", - "version": "v3.0.6", - "source": { - "type": "git", - "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "0808939f81c1347a3c8a82a5925385a08074b0f1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/0808939f81c1347a3c8a82a5925385a08074b0f1", - "reference": "0808939f81c1347a3c8a82a5925385a08074b0f1", - "shasum": "" + "support": { + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.11.0" }, - "require": { - "ext-tokenizer": "*", - "php": ">=5.5" - }, - "require-dev": { - "phpunit/phpunit": "~4.0|~5.0" - }, - "bin": [ - "bin/php-parse" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "psr-4": { - "PhpParser\\": "lib/PhpParser" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ + "funding": [ { - "name": "Nikita Popov" + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" } ], - "description": "A PHP parser written in PHP", - "keywords": [ - "parser", - "php" - ], - "time": "2017-06-28T20:53:48+00:00" + "time": "2022-03-03T13:19:32+00:00" }, { "name": "phar-io/manifest", - "version": "1.0.3", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/phar-io/manifest.git", - "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4" + "reference": "97803eca37d319dfa7826cc2437fc020857acb53" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", - "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53", "shasum": "" }, "require": { "ext-dom": "*", "ext-phar": "*", - "phar-io/version": "^2.0", - "php": "^5.6 || ^7.0" + "ext-xmlwriter": "*", + "phar-io/version": "^3.0.1", + "php": "^7.2 || ^8.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { @@ -443,24 +190,28 @@ } ], "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", - "time": "2018-07-08T19:23:20+00:00" + "support": { + "issues": "https://github.com/phar-io/manifest/issues", + "source": "https://github.com/phar-io/manifest/tree/2.0.3" + }, + "time": "2021-07-20T11:28:43+00:00" }, { "name": "phar-io/version", - "version": "2.0.1", + "version": "3.2.1", "source": { "type": "git", "url": "https://github.com/phar-io/version.git", - "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6" + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6", - "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6", + "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": "^7.2 || ^8.0" }, "type": "library", "autoload": { @@ -490,37 +241,45 @@ } ], "description": "Library for handling version information and constraints", - "time": "2018-07-08T19:19:57+00:00" + "support": { + "issues": "https://github.com/phar-io/version/issues", + "source": "https://github.com/phar-io/version/tree/3.2.1" + }, + "time": "2022-02-21T01:04:05+00:00" }, { "name": "php-mock/php-mock", - "version": "2.1.2", + "version": "2.3.1", "source": { "type": "git", "url": "https://github.com/php-mock/php-mock.git", - "reference": "35379d7b382b787215617f124662d9ead72c15e3" + "reference": "9a55bd8ba40e6da2e97a866121d2c69dedd4952b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-mock/php-mock/zipball/35379d7b382b787215617f124662d9ead72c15e3", - "reference": "35379d7b382b787215617f124662d9ead72c15e3", + "url": "https://api.github.com/repos/php-mock/php-mock/zipball/9a55bd8ba40e6da2e97a866121d2c69dedd4952b", + "reference": "9a55bd8ba40e6da2e97a866121d2c69dedd4952b", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0", - "phpunit/php-text-template": "^1" + "php": "^5.6 || ^7.0 || ^8.0", + "phpunit/php-text-template": "^1 || ^2" }, "replace": { "malkusch/php-mock": "*" }, "require-dev": { - "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5 || ^8.0" + "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5 || ^8.0 || ^9.0", + "squizlabs/php_codesniffer": "^3.5" }, "suggest": { "php-mock/php-mock-phpunit": "Allows integration into PHPUnit testcase with the trait PHPMock." }, "type": "library", "autoload": { + "files": [ + "autoload.php" + ], "psr-4": { "phpmock\\": [ "classes/", @@ -551,29 +310,39 @@ "test", "test double" ], - "time": "2019-06-05T20:10:01+00:00" + "support": { + "issues": "https://github.com/php-mock/php-mock/issues", + "source": "https://github.com/php-mock/php-mock/tree/2.3.1" + }, + "funding": [ + { + "url": "https://github.com/michalbundyra", + "type": "github" + } + ], + "time": "2022-02-07T18:57:52+00:00" }, { "name": "php-mock/php-mock-integration", - "version": "2.0.0", + "version": "2.1.0", "source": { "type": "git", "url": "https://github.com/php-mock/php-mock-integration.git", - "reference": "5a0d7d7755f823bc2a230cfa45058b40f9013bc4" + "reference": "003d585841e435958a02e9b986953907b8b7609b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-mock/php-mock-integration/zipball/5a0d7d7755f823bc2a230cfa45058b40f9013bc4", - "reference": "5a0d7d7755f823bc2a230cfa45058b40f9013bc4", + "url": "https://api.github.com/repos/php-mock/php-mock-integration/zipball/003d585841e435958a02e9b986953907b8b7609b", + "reference": "003d585841e435958a02e9b986953907b8b7609b", "shasum": "" }, "require": { "php": ">=5.6", - "php-mock/php-mock": "^2", - "phpunit/php-text-template": "^1" + "php-mock/php-mock": "^2.2", + "phpunit/php-text-template": "^1 || ^2" }, "require-dev": { - "phpunit/phpunit": "^4|^5" + "phpunit/phpunit": "^5.7.27 || ^6 || ^7 || ^8 || ^9" }, "type": "library", "autoload": { @@ -604,26 +373,33 @@ "test", "test double" ], - "time": "2017-02-17T21:31:34+00:00" + "support": { + "issues": "https://github.com/php-mock/php-mock-integration/issues", + "source": "https://github.com/php-mock/php-mock-integration/tree/2.1.0" + }, + "time": "2020-02-08T14:40:25+00:00" }, { "name": "php-mock/php-mock-phpunit", - "version": "2.5.0", + "version": "2.6.1", "source": { "type": "git", "url": "https://github.com/php-mock/php-mock-phpunit.git", - "reference": "7df4bd123ce196bbba19f142c4906c20be8ec546" + "reference": "b9ba2db21e7e1c7deba98bc86dcfc6425fb4647d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-mock/php-mock-phpunit/zipball/7df4bd123ce196bbba19f142c4906c20be8ec546", - "reference": "7df4bd123ce196bbba19f142c4906c20be8ec546", + "url": "https://api.github.com/repos/php-mock/php-mock-phpunit/zipball/b9ba2db21e7e1c7deba98bc86dcfc6425fb4647d", + "reference": "b9ba2db21e7e1c7deba98bc86dcfc6425fb4647d", "shasum": "" }, "require": { "php": ">=7", - "php-mock/php-mock-integration": "^2", - "phpunit/phpunit": "^6 || ^7 || ^8" + "php-mock/php-mock-integration": "^2.1", + "phpunit/phpunit": "^6 || ^7 || ^8 || ^9" + }, + "require-dev": { + "phpspec/prophecy": "^1.10.3" }, "type": "library", "autoload": { @@ -658,242 +434,39 @@ "test", "test double" ], - "time": "2019-10-05T21:44:04+00:00" - }, - { - "name": "phpdocumentor/reflection-common", - "version": "2.0.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/63a995caa1ca9e5590304cd845c15ad6d482a62a", - "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "require-dev": { - "phpunit/phpunit": "~6" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" - } - ], - "description": "Common reflection classes used by phpdocumentor to reflect the code structure", - "homepage": "http://www.phpdoc.org", - "keywords": [ - "FQSEN", - "phpDocumentor", - "phpdoc", - "reflection", - "static analysis" - ], - "time": "2018-08-07T13:53:10+00:00" - }, - { - "name": "phpdocumentor/reflection-docblock", - "version": "4.3.2", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "b83ff7cfcfee7827e1e78b637a5904fe6a96698e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/b83ff7cfcfee7827e1e78b637a5904fe6a96698e", - "reference": "b83ff7cfcfee7827e1e78b637a5904fe6a96698e", - "shasum": "" - }, - "require": { - "php": "^7.0", - "phpdocumentor/reflection-common": "^1.0.0 || ^2.0.0", - "phpdocumentor/type-resolver": "~0.4 || ^1.0.0", - "webmozart/assert": "^1.0" - }, - "require-dev": { - "doctrine/instantiator": "^1.0.5", - "mockery/mockery": "^1.0", - "phpunit/phpunit": "^6.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.x-dev" - } + "support": { + "issues": "https://github.com/php-mock/php-mock-phpunit/issues", + "source": "https://github.com/php-mock/php-mock-phpunit/tree/2.6.1" }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ + "funding": [ { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" + "url": "https://github.com/michalbundyra", + "type": "github" } ], - "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "time": "2019-09-12T14:27:41+00:00" - }, - { - "name": "phpdocumentor/type-resolver", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/2e32a6d48972b2c1976ed5d8967145b6cec4a4a9", - "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9", - "shasum": "" - }, - "require": { - "php": "^7.1", - "phpdocumentor/reflection-common": "^2.0" - }, - "require-dev": { - "ext-tokenizer": "^7.1", - "mockery/mockery": "~1", - "phpunit/phpunit": "^7.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - } - ], - "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", - "time": "2019-08-22T18:11:29+00:00" - }, - { - "name": "phpspec/prophecy", - "version": "1.9.0", - "source": { - "type": "git", - "url": "https://github.com/phpspec/prophecy.git", - "reference": "f6811d96d97bdf400077a0cc100ae56aa32b9203" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/f6811d96d97bdf400077a0cc100ae56aa32b9203", - "reference": "f6811d96d97bdf400077a0cc100ae56aa32b9203", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.0.2", - "php": "^5.3|^7.0", - "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0", - "sebastian/comparator": "^1.1|^2.0|^3.0", - "sebastian/recursion-context": "^1.0|^2.0|^3.0" - }, - "require-dev": { - "phpspec/phpspec": "^2.5|^3.2", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.8.x-dev" - } - }, - "autoload": { - "psr-4": { - "Prophecy\\": "src/Prophecy" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - }, - { - "name": "Marcello Duarte", - "email": "marcello.duarte@gmail.com" - } - ], - "description": "Highly opinionated mocking framework for PHP 5.3+", - "homepage": "https://github.com/phpspec/prophecy", - "keywords": [ - "Double", - "Dummy", - "fake", - "mock", - "spy", - "stub" - ], - "time": "2019-10-03T11:07:50+00:00" + "time": "2022-09-07T20:40:07+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "7.0.8", + "version": "7.0.15", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "aa0d179a13284c7420fc281fc32750e6cc7c9e2f" + "reference": "819f92bba8b001d4363065928088de22f25a3a48" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/aa0d179a13284c7420fc281fc32750e6cc7c9e2f", - "reference": "aa0d179a13284c7420fc281fc32750e6cc7c9e2f", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/819f92bba8b001d4363065928088de22f25a3a48", + "reference": "819f92bba8b001d4363065928088de22f25a3a48", "shasum": "" }, "require": { "ext-dom": "*", "ext-xmlwriter": "*", - "php": "^7.2", + "php": ">=7.2", "phpunit/php-file-iterator": "^2.0.2", "phpunit/php-text-template": "^1.2.1", - "phpunit/php-token-stream": "^3.1.1", + "phpunit/php-token-stream": "^3.1.3 || ^4.0", "sebastian/code-unit-reverse-lookup": "^1.0.1", "sebastian/environment": "^4.2.2", "sebastian/version": "^2.0.1", @@ -934,27 +507,37 @@ "testing", "xunit" ], - "time": "2019-09-17T06:24:36+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/7.0.15" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2021-07-26T12:20:09+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "2.0.2", + "version": "2.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "050bedf145a257b1ff02746c31894800e5122946" + "reference": "42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/050bedf145a257b1ff02746c31894800e5122946", - "reference": "050bedf145a257b1ff02746c31894800e5122946", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5", + "reference": "42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7.1" }, "require-dev": { - "phpunit/phpunit": "^7.1" + "phpunit/phpunit": "^8.5" }, "type": "library", "extra": { @@ -984,7 +567,17 @@ "filesystem", "iterator" ], - "time": "2018-09-13T20:33:42+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/2.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2021-12-02T12:42:26+00:00" }, { "name": "phpunit/php-text-template", @@ -1025,27 +618,31 @@ "keywords": [ "template" ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/1.2.1" + }, "time": "2015-06-21T13:50:34+00:00" }, { "name": "phpunit/php-timer", - "version": "2.1.2", + "version": "2.1.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "1038454804406b0b5f5f520358e78c1c2f71501e" + "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/1038454804406b0b5f5f520358e78c1c2f71501e", - "reference": "1038454804406b0b5f5f520358e78c1c2f71501e", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/2454ae1765516d20c4ffe103d85a58a9a3bd5662", + "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7.1" }, "require-dev": { - "phpunit/phpunit": "^7.0" + "phpunit/phpunit": "^8.5" }, "type": "library", "extra": { @@ -1074,33 +671,43 @@ "keywords": [ "timer" ], - "time": "2019-06-07T04:22:29+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "source": "https://github.com/sebastianbergmann/php-timer/tree/2.1.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T08:20:02+00:00" }, { "name": "phpunit/php-token-stream", - "version": "3.1.1", + "version": "4.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff" + "reference": "a853a0e183b9db7eed023d7933a858fa1c8d25a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/995192df77f63a59e47f025390d2d1fdf8f425ff", - "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/a853a0e183b9db7eed023d7933a858fa1c8d25a3", + "reference": "a853a0e183b9db7eed023d7933a858fa1c8d25a3", "shasum": "" }, "require": { "ext-tokenizer": "*", - "php": "^7.1" + "php": "^7.3 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^7.0" + "phpunit/phpunit": "^9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -1123,52 +730,59 @@ "keywords": [ "tokenizer" ], - "time": "2019-09-17T06:23:10+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/php-token-stream/issues", + "source": "https://github.com/sebastianbergmann/php-token-stream/tree/master" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "abandoned": true, + "time": "2020-08-04T08:28:15+00:00" }, { "name": "phpunit/phpunit", - "version": "8.4.3", + "version": "8.5.30", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "67f9e35bffc0dd52d55d565ddbe4230454fd6a4e" + "reference": "4fd448df9affda65a5faa58f8b93087d415216ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/67f9e35bffc0dd52d55d565ddbe4230454fd6a4e", - "reference": "67f9e35bffc0dd52d55d565ddbe4230454fd6a4e", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/4fd448df9affda65a5faa58f8b93087d415216ce", + "reference": "4fd448df9affda65a5faa58f8b93087d415216ce", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.2.0", + "doctrine/instantiator": "^1.3.1", "ext-dom": "*", "ext-json": "*", "ext-libxml": "*", "ext-mbstring": "*", "ext-xml": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.9.1", - "phar-io/manifest": "^1.0.3", - "phar-io/version": "^2.0.1", - "php": "^7.2", - "phpspec/prophecy": "^1.8.1", - "phpunit/php-code-coverage": "^7.0.7", - "phpunit/php-file-iterator": "^2.0.2", + "myclabs/deep-copy": "^1.10.0", + "phar-io/manifest": "^2.0.3", + "phar-io/version": "^3.0.2", + "php": ">=7.2", + "phpunit/php-code-coverage": "^7.0.12", + "phpunit/php-file-iterator": "^2.0.4", "phpunit/php-text-template": "^1.2.1", "phpunit/php-timer": "^2.1.2", - "sebastian/comparator": "^3.0.2", + "sebastian/comparator": "^3.0.5", "sebastian/diff": "^3.0.2", - "sebastian/environment": "^4.2.2", - "sebastian/exporter": "^3.1.1", + "sebastian/environment": "^4.2.3", + "sebastian/exporter": "^3.1.5", "sebastian/global-state": "^3.0.0", "sebastian/object-enumerator": "^3.0.3", "sebastian/resource-operations": "^2.0.1", "sebastian/type": "^1.1.3", "sebastian/version": "^2.0.1" }, - "require-dev": { - "ext-pdo": "*" - }, "suggest": { "ext-soap": "*", "ext-xdebug": "*", @@ -1180,7 +794,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "8.4-dev" + "dev-master": "8.5-dev" } }, "autoload": { @@ -1206,27 +820,45 @@ "testing", "xunit" ], - "time": "2019-11-06T09:42:23+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "source": "https://github.com/sebastianbergmann/phpunit/tree/8.5.30" + }, + "funding": [ + { + "url": "https://phpunit.de/sponsors.html", + "type": "custom" + }, + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", + "type": "tidelift" + } + ], + "time": "2022-09-25T03:43:00+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", - "version": "1.0.1", + "version": "1.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" + "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/1de8cd5c010cb153fcd68b8d0f64606f523f7619", + "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": ">=5.6" }, "require-dev": { - "phpunit/phpunit": "^5.7 || ^6.0" + "phpunit/phpunit": "^8.5" }, "type": "library", "extra": { @@ -1251,29 +883,39 @@ ], "description": "Looks up which function or method a line of code belongs to", "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "time": "2017-03-04T06:30:41+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/1.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T08:15:22+00:00" }, { "name": "sebastian/comparator", - "version": "3.0.2", + "version": "3.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da" + "reference": "1dc7ceb4a24aede938c7af2a9ed1de09609ca770" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/5de4fc177adf9bce8df98d8d141a7559d7ccf6da", - "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1dc7ceb4a24aede938c7af2a9ed1de09609ca770", + "reference": "1dc7ceb4a24aede938c7af2a9ed1de09609ca770", "shasum": "" }, "require": { - "php": "^7.1", + "php": ">=7.1", "sebastian/diff": "^3.0", "sebastian/exporter": "^3.1" }, "require-dev": { - "phpunit/phpunit": "^7.1" + "phpunit/phpunit": "^8.5" }, "type": "library", "extra": { @@ -1291,6 +933,10 @@ "BSD-3-Clause" ], "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, { "name": "Jeff Welch", "email": "whatthejeff@gmail.com" @@ -1302,10 +948,6 @@ { "name": "Bernhard Schussek", "email": "bschussek@2bepublished.at" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" } ], "description": "Provides the functionality to compare PHP values for equality", @@ -1315,24 +957,34 @@ "compare", "equality" ], - "time": "2018-07-12T15:12:46+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "source": "https://github.com/sebastianbergmann/comparator/tree/3.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-14T12:31:48+00:00" }, { "name": "sebastian/diff", - "version": "3.0.2", + "version": "3.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29" + "reference": "14f72dd46eaf2f2293cbe79c93cc0bc43161a211" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/720fcc7e9b5cf384ea68d9d930d480907a0c1a29", - "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/14f72dd46eaf2f2293cbe79c93cc0bc43161a211", + "reference": "14f72dd46eaf2f2293cbe79c93cc0bc43161a211", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7.1" }, "require-dev": { "phpunit/phpunit": "^7.5 || ^8.0", @@ -1354,13 +1006,13 @@ "BSD-3-Clause" ], "authors": [ - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - }, { "name": "Sebastian Bergmann", "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" } ], "description": "Diff implementation", @@ -1371,24 +1023,34 @@ "unidiff", "unified diff" ], - "time": "2019-02-04T06:01:07+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "source": "https://github.com/sebastianbergmann/diff/tree/3.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:59:04+00:00" }, { "name": "sebastian/environment", - "version": "4.2.2", + "version": "4.2.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "f2a2c8e1c97c11ace607a7a667d73d47c19fe404" + "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/f2a2c8e1c97c11ace607a7a667d73d47c19fe404", - "reference": "f2a2c8e1c97c11ace607a7a667d73d47c19fe404", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/d47bbbad83711771f167c72d4e3f25f7fcc1f8b0", + "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7.1" }, "require-dev": { "phpunit/phpunit": "^7.5" @@ -1424,29 +1086,39 @@ "environment", "hhvm" ], - "time": "2019-05-05T09:05:15+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/environment/issues", + "source": "https://github.com/sebastianbergmann/environment/tree/4.2.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:53:42+00:00" }, { "name": "sebastian/exporter", - "version": "3.1.2", + "version": "3.1.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e" + "reference": "73a9676f2833b9a7c36968f9d882589cd75511e6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/68609e1261d215ea5b21b7987539cbfbe156ec3e", - "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/73a9676f2833b9a7c36968f9d882589cd75511e6", + "reference": "73a9676f2833b9a7c36968f9d882589cd75511e6", "shasum": "" }, "require": { - "php": "^7.0", + "php": ">=7.0", "sebastian/recursion-context": "^3.0" }, "require-dev": { "ext-mbstring": "*", - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^8.5" }, "type": "library", "extra": { @@ -1491,24 +1163,34 @@ "export", "exporter" ], - "time": "2019-09-14T09:02:43+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/exporter/issues", + "source": "https://github.com/sebastianbergmann/exporter/tree/3.1.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-14T06:00:17+00:00" }, { "name": "sebastian/global-state", - "version": "3.0.0", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4" + "reference": "de036ec91d55d2a9e0db2ba975b512cdb1c23921" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4", - "reference": "edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/de036ec91d55d2a9e0db2ba975b512cdb1c23921", + "reference": "de036ec91d55d2a9e0db2ba975b512cdb1c23921", "shasum": "" }, "require": { - "php": "^7.2", + "php": ">=7.2", "sebastian/object-reflector": "^1.1.1", "sebastian/recursion-context": "^3.0" }, @@ -1545,24 +1227,34 @@ "keywords": [ "global state" ], - "time": "2019-02-01T05:30:01+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "source": "https://github.com/sebastianbergmann/global-state/tree/3.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-02-10T06:55:38+00:00" }, { "name": "sebastian/object-enumerator", - "version": "3.0.3", + "version": "3.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" + "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2", + "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2", "shasum": "" }, "require": { - "php": "^7.0", + "php": ">=7.0", "sebastian/object-reflector": "^1.1.1", "sebastian/recursion-context": "^3.0" }, @@ -1592,24 +1284,34 @@ ], "description": "Traverses array structures and object graphs to enumerate all referenced objects", "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "time": "2017-08-03T12:35:26+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/3.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:40:27+00:00" }, { "name": "sebastian/object-reflector", - "version": "1.1.1", + "version": "1.1.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "773f97c67f28de00d397be301821b06708fca0be" + "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", - "reference": "773f97c67f28de00d397be301821b06708fca0be", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", + "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", "shasum": "" }, "require": { - "php": "^7.0" + "php": ">=7.0" }, "require-dev": { "phpunit/phpunit": "^6.0" @@ -1637,24 +1339,34 @@ ], "description": "Allows reflection of object attributes, including inherited and non-public ones", "homepage": "https://github.com/sebastianbergmann/object-reflector/", - "time": "2017-03-29T09:07:27+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/object-reflector/issues", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/1.1.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:37:18+00:00" }, { "name": "sebastian/recursion-context", - "version": "3.0.0", + "version": "3.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" + "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/367dcba38d6e1977be014dc4b22f47a484dac7fb", + "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb", "shasum": "" }, "require": { - "php": "^7.0" + "php": ">=7.0" }, "require-dev": { "phpunit/phpunit": "^6.0" @@ -1675,14 +1387,14 @@ "BSD-3-Clause" ], "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, { "name": "Sebastian Bergmann", "email": "sebastian@phpunit.de" }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, { "name": "Adam Harvey", "email": "aharvey@php.net" @@ -1690,24 +1402,34 @@ ], "description": "Provides functionality to recursively process PHP variables", "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "time": "2017-03-03T06:23:57+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/3.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:34:24+00:00" }, { "name": "sebastian/resource-operations", - "version": "2.0.1", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9" + "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/4d7a795d35b889bf80a0cc04e08d77cedfa917a9", - "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/31d35ca87926450c44eae7e2611d45a7a65ea8b3", + "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7.1" }, "type": "library", "extra": { @@ -1732,24 +1454,34 @@ ], "description": "Provides a list of PHP built-in functions that operate on resources", "homepage": "https://www.github.com/sebastianbergmann/resource-operations", - "time": "2018-10-04T04:07:39+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/resource-operations/issues", + "source": "https://github.com/sebastianbergmann/resource-operations/tree/2.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:30:19+00:00" }, { "name": "sebastian/type", - "version": "1.1.3", + "version": "1.1.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "3aaaa15fa71d27650d62a948be022fe3b48541a3" + "reference": "0150cfbc4495ed2df3872fb31b26781e4e077eb4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/3aaaa15fa71d27650d62a948be022fe3b48541a3", - "reference": "3aaaa15fa71d27650d62a948be022fe3b48541a3", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/0150cfbc4495ed2df3872fb31b26781e4e077eb4", + "reference": "0150cfbc4495ed2df3872fb31b26781e4e077eb4", "shasum": "" }, "require": { - "php": "^7.2" + "php": ">=7.2" }, "require-dev": { "phpunit/phpunit": "^8.2" @@ -1778,7 +1510,17 @@ ], "description": "Collection of value objects that represent the types of the PHP type system", "homepage": "https://github.com/sebastianbergmann/type", - "time": "2019-07-02T08:10:15+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/type/issues", + "source": "https://github.com/sebastianbergmann/type/tree/1.1.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:25:11+00:00" }, { "name": "sebastian/version", @@ -1821,85 +1563,31 @@ ], "description": "Library that helps with managing the version number of Git-hosted PHP projects", "homepage": "https://github.com/sebastianbergmann/version", - "time": "2016-10-03T07:35:21+00:00" - }, - { - "name": "symfony/polyfill-ctype", - "version": "v1.12.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "550ebaac289296ce228a706d0867afc34687e3f4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/550ebaac289296ce228a706d0867afc34687e3f4", - "reference": "550ebaac289296ce228a706d0867afc34687e3f4", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" + "support": { + "issues": "https://github.com/sebastianbergmann/version/issues", + "source": "https://github.com/sebastianbergmann/version/tree/master" }, - "suggest": { - "ext-ctype": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.12-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for ctype functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "ctype", - "polyfill", - "portable" - ], - "time": "2019-08-06T08:03:45+00:00" + "time": "2016-10-03T07:35:21+00:00" }, { "name": "theseer/tokenizer", - "version": "1.1.3", + "version": "1.2.1", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9" + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/11336f6f84e16a720dae9d8e6ed5019efa85a0f9", - "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", "shasum": "" }, "require": { "ext-dom": "*", "ext-tokenizer": "*", "ext-xmlwriter": "*", - "php": "^7.0" + "php": "^7.2 || ^8.0" }, "type": "library", "autoload": { @@ -1919,57 +1607,17 @@ } ], "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", - "time": "2019-06-13T22:48:21+00:00" - }, - { - "name": "webmozart/assert", - "version": "1.5.0", - "source": { - "type": "git", - "url": "https://github.com/webmozart/assert.git", - "reference": "88e6d84706d09a236046d686bbea96f07b3a34f4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/88e6d84706d09a236046d686bbea96f07b3a34f4", - "reference": "88e6d84706d09a236046d686bbea96f07b3a34f4", - "shasum": "" - }, - "require": { - "php": "^5.3.3 || ^7.0", - "symfony/polyfill-ctype": "^1.8" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.36 || ^7.5.13" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3-dev" - } + "support": { + "issues": "https://github.com/theseer/tokenizer/issues", + "source": "https://github.com/theseer/tokenizer/tree/1.2.1" }, - "autoload": { - "psr-4": { - "Webmozart\\Assert\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ + "funding": [ { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" + "url": "https://github.com/theseer", + "type": "github" } ], - "description": "Assertions to validate method input/output with nice error messages.", - "keywords": [ - "assert", - "check", - "validate" - ], - "time": "2019-08-24T08:43:50+00:00" + "time": "2021-07-28T10:34:58+00:00" } ], "aliases": [], @@ -1978,5 +1626,6 @@ "prefer-stable": false, "prefer-lowest": false, "platform": [], - "platform-dev": [] + "platform-dev": [], + "plugin-api-version": "2.3.0" } From aae371e10cf2c96746134517e5b4d4fa72294a34 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 27 Oct 2022 19:56:40 +0200 Subject: [PATCH 199/206] Bump phpunit/phpunit from 8.5.30 to 9.5.25 (#1899) Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 8.5.30 to 9.5.25. - [Release notes](https://github.com/sebastianbergmann/phpunit/releases) - [Changelog](https://github.com/sebastianbergmann/phpunit/blob/main/ChangeLog-8.5.md) - [Commits](https://github.com/sebastianbergmann/phpunit/compare/8.5.30...9.5.25) --- updated-dependencies: - dependency-name: phpunit/phpunit dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- composer.json | 2 +- composer.lock | 741 +++++++++++++++++++++++++++++++++++--------------- 2 files changed, 530 insertions(+), 213 deletions(-) diff --git a/composer.json b/composer.json index 87c8028a3..1fe5789bf 100644 --- a/composer.json +++ b/composer.json @@ -1,6 +1,6 @@ { "require-dev": { - "phpunit/phpunit": "^8", + "phpunit/phpunit": "^9", "php-mock/php-mock-phpunit": "^2.5" } } diff --git a/composer.lock b/composer.lock index f4eb95386..fcdacad0e 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "859b300285a679de774d435ff8c5c002", + "content-hash": "6d659550344086ef6e414765a7a1a227", "packages": [], "packages-dev": [ { @@ -136,6 +136,62 @@ ], "time": "2022-03-03T13:19:32+00:00" }, + { + "name": "nikic/php-parser", + "version": "v4.15.1", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "0ef6c55a3f47f89d7a374e6f835197a0b5fcf900" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/0ef6c55a3f47f89d7a374e6f835197a0b5fcf900", + "reference": "0ef6c55a3f47f89d7a374e6f835197a0b5fcf900", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=7.0" + }, + "require-dev": { + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.9-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.1" + }, + "time": "2022-09-04T07:30:47+00:00" + }, { "name": "phar-io/manifest", "version": "2.0.3", @@ -448,40 +504,44 @@ }, { "name": "phpunit/php-code-coverage", - "version": "7.0.15", + "version": "9.2.17", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "819f92bba8b001d4363065928088de22f25a3a48" + "reference": "aa94dc41e8661fe90c7316849907cba3007b10d8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/819f92bba8b001d4363065928088de22f25a3a48", - "reference": "819f92bba8b001d4363065928088de22f25a3a48", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/aa94dc41e8661fe90c7316849907cba3007b10d8", + "reference": "aa94dc41e8661fe90c7316849907cba3007b10d8", "shasum": "" }, "require": { "ext-dom": "*", + "ext-libxml": "*", "ext-xmlwriter": "*", - "php": ">=7.2", - "phpunit/php-file-iterator": "^2.0.2", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-token-stream": "^3.1.3 || ^4.0", - "sebastian/code-unit-reverse-lookup": "^1.0.1", - "sebastian/environment": "^4.2.2", - "sebastian/version": "^2.0.1", - "theseer/tokenizer": "^1.1.3" + "nikic/php-parser": "^4.14", + "php": ">=7.3", + "phpunit/php-file-iterator": "^3.0.3", + "phpunit/php-text-template": "^2.0.2", + "sebastian/code-unit-reverse-lookup": "^2.0.2", + "sebastian/complexity": "^2.0", + "sebastian/environment": "^5.1.2", + "sebastian/lines-of-code": "^1.0.3", + "sebastian/version": "^3.0.1", + "theseer/tokenizer": "^1.2.0" }, "require-dev": { - "phpunit/phpunit": "^8.2.2" + "phpunit/phpunit": "^9.3" }, "suggest": { - "ext-xdebug": "^2.7.2" + "ext-pcov": "*", + "ext-xdebug": "*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "7.0-dev" + "dev-master": "9.2-dev" } }, "autoload": { @@ -509,7 +569,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/7.0.15" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.17" }, "funding": [ { @@ -517,32 +577,32 @@ "type": "github" } ], - "time": "2021-07-26T12:20:09+00:00" + "time": "2022-08-30T12:24:04+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "2.0.5", + "version": "3.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5" + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5", - "reference": "42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^8.5" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -569,7 +629,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/2.0.5" + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" }, "funding": [ { @@ -577,26 +637,38 @@ "type": "github" } ], - "time": "2021-12-02T12:42:26+00:00" + "time": "2021-12-02T12:48:52+00:00" }, { - "name": "phpunit/php-text-template", - "version": "1.2.1", + "name": "phpunit/php-invoker", + "version": "3.1.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" + "url": "https://github.com/sebastianbergmann/php-invoker.git", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.3" + }, + "require-dev": { + "ext-pcntl": "*", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-pcntl": "*" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, "autoload": { "classmap": [ "src/" @@ -613,41 +685,47 @@ "role": "lead" } ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "description": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", "keywords": [ - "template" + "process" ], "support": { - "issues": "https://github.com/sebastianbergmann/php-text-template/issues", - "source": "https://github.com/sebastianbergmann/php-text-template/tree/1.2.1" + "issues": "https://github.com/sebastianbergmann/php-invoker/issues", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" }, - "time": "2015-06-21T13:50:34+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:58:55+00:00" }, { - "name": "phpunit/php-timer", - "version": "2.1.3", + "name": "phpunit/php-text-template", + "version": "2.0.4", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662" + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/2454ae1765516d20c4ffe103d85a58a9a3bd5662", - "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^8.5" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.1-dev" + "dev-master": "2.0-dev" } }, "autoload": { @@ -666,14 +744,14 @@ "role": "lead" } ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", "keywords": [ - "timer" + "template" ], "support": { - "issues": "https://github.com/sebastianbergmann/php-timer/issues", - "source": "https://github.com/sebastianbergmann/php-timer/tree/2.1.3" + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" }, "funding": [ { @@ -681,33 +759,32 @@ "type": "github" } ], - "time": "2020-11-30T08:20:02+00:00" + "time": "2020-10-26T05:33:50+00:00" }, { - "name": "phpunit/php-token-stream", - "version": "4.0.4", + "name": "phpunit/php-timer", + "version": "5.0.3", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "a853a0e183b9db7eed023d7933a858fa1c8d25a3" + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/a853a0e183b9db7eed023d7933a858fa1c8d25a3", - "reference": "a853a0e183b9db7eed023d7933a858fa1c8d25a3", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", "shasum": "" }, "require": { - "ext-tokenizer": "*", - "php": "^7.3 || ^8.0" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^9.0" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-master": "5.0-dev" } }, "autoload": { @@ -722,17 +799,18 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Wrapper around PHP's tokenizer extension.", - "homepage": "https://github.com/sebastianbergmann/php-token-stream/", + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", "keywords": [ - "tokenizer" + "timer" ], "support": { - "issues": "https://github.com/sebastianbergmann/php-token-stream/issues", - "source": "https://github.com/sebastianbergmann/php-token-stream/tree/master" + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" }, "funding": [ { @@ -740,21 +818,20 @@ "type": "github" } ], - "abandoned": true, - "time": "2020-08-04T08:28:15+00:00" + "time": "2020-10-26T13:16:10+00:00" }, { "name": "phpunit/phpunit", - "version": "8.5.30", + "version": "9.5.25", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "4fd448df9affda65a5faa58f8b93087d415216ce" + "reference": "3e6f90ca7e3d02025b1d147bd8d4a89fd4ca8a1d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/4fd448df9affda65a5faa58f8b93087d415216ce", - "reference": "4fd448df9affda65a5faa58f8b93087d415216ce", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3e6f90ca7e3d02025b1d147bd8d4a89fd4ca8a1d", + "reference": "3e6f90ca7e3d02025b1d147bd8d4a89fd4ca8a1d", "shasum": "" }, "require": { @@ -765,28 +842,30 @@ "ext-mbstring": "*", "ext-xml": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.10.0", + "myclabs/deep-copy": "^1.10.1", "phar-io/manifest": "^2.0.3", "phar-io/version": "^3.0.2", - "php": ">=7.2", - "phpunit/php-code-coverage": "^7.0.12", - "phpunit/php-file-iterator": "^2.0.4", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-timer": "^2.1.2", - "sebastian/comparator": "^3.0.5", - "sebastian/diff": "^3.0.2", - "sebastian/environment": "^4.2.3", - "sebastian/exporter": "^3.1.5", - "sebastian/global-state": "^3.0.0", - "sebastian/object-enumerator": "^3.0.3", - "sebastian/resource-operations": "^2.0.1", - "sebastian/type": "^1.1.3", - "sebastian/version": "^2.0.1" + "php": ">=7.3", + "phpunit/php-code-coverage": "^9.2.13", + "phpunit/php-file-iterator": "^3.0.5", + "phpunit/php-invoker": "^3.1.1", + "phpunit/php-text-template": "^2.0.3", + "phpunit/php-timer": "^5.0.2", + "sebastian/cli-parser": "^1.0.1", + "sebastian/code-unit": "^1.0.6", + "sebastian/comparator": "^4.0.8", + "sebastian/diff": "^4.0.3", + "sebastian/environment": "^5.1.3", + "sebastian/exporter": "^4.0.5", + "sebastian/global-state": "^5.0.1", + "sebastian/object-enumerator": "^4.0.3", + "sebastian/resource-operations": "^3.0.3", + "sebastian/type": "^3.2", + "sebastian/version": "^3.0.2" }, "suggest": { "ext-soap": "*", - "ext-xdebug": "*", - "phpunit/php-invoker": "^2.0.0" + "ext-xdebug": "*" }, "bin": [ "phpunit" @@ -794,10 +873,13 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "8.5-dev" + "dev-master": "9.5-dev" } }, "autoload": { + "files": [ + "src/Framework/Assert/Functions.php" + ], "classmap": [ "src/" ] @@ -822,7 +904,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/8.5.30" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.25" }, "funding": [ { @@ -838,32 +920,144 @@ "type": "tidelift" } ], - "time": "2022-09-25T03:43:00+00:00" + "time": "2022-09-25T03:44:45+00:00" + }, + { + "name": "sebastian/cli-parser", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/cli-parser.git", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for parsing CLI options", + "homepage": "https://github.com/sebastianbergmann/cli-parser", + "support": { + "issues": "https://github.com/sebastianbergmann/cli-parser/issues", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:08:49+00:00" + }, + { + "name": "sebastian/code-unit", + "version": "1.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit.git", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the PHP code units", + "homepage": "https://github.com/sebastianbergmann/code-unit", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit/issues", + "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:08:54+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", - "version": "1.0.2", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619" + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/1de8cd5c010cb153fcd68b8d0f64606f523f7619", - "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", "shasum": "" }, "require": { - "php": ">=5.6" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^8.5" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "2.0-dev" } }, "autoload": { @@ -885,7 +1079,7 @@ "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", "support": { "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", - "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/1.0.2" + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" }, "funding": [ { @@ -893,34 +1087,34 @@ "type": "github" } ], - "time": "2020-11-30T08:15:22+00:00" + "time": "2020-09-28T05:30:19+00:00" }, { "name": "sebastian/comparator", - "version": "3.0.5", + "version": "4.0.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "1dc7ceb4a24aede938c7af2a9ed1de09609ca770" + "reference": "fa0f136dd2334583309d32b62544682ee972b51a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1dc7ceb4a24aede938c7af2a9ed1de09609ca770", - "reference": "1dc7ceb4a24aede938c7af2a9ed1de09609ca770", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", + "reference": "fa0f136dd2334583309d32b62544682ee972b51a", "shasum": "" }, "require": { - "php": ">=7.1", - "sebastian/diff": "^3.0", - "sebastian/exporter": "^3.1" + "php": ">=7.3", + "sebastian/diff": "^4.0", + "sebastian/exporter": "^4.0" }, "require-dev": { - "phpunit/phpunit": "^8.5" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -959,7 +1153,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/3.0.5" + "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" }, "funding": [ { @@ -967,33 +1161,90 @@ "type": "github" } ], - "time": "2022-09-14T12:31:48+00:00" + "time": "2022-09-14T12:41:17+00:00" + }, + { + "name": "sebastian/complexity", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/complexity.git", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.7", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for calculating the complexity of PHP code units", + "homepage": "https://github.com/sebastianbergmann/complexity", + "support": { + "issues": "https://github.com/sebastianbergmann/complexity/issues", + "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T15:52:27+00:00" }, { "name": "sebastian/diff", - "version": "3.0.3", + "version": "4.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "14f72dd46eaf2f2293cbe79c93cc0bc43161a211" + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/14f72dd46eaf2f2293cbe79c93cc0bc43161a211", - "reference": "14f72dd46eaf2f2293cbe79c93cc0bc43161a211", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^7.5 || ^8.0", - "symfony/process": "^2 || ^3.3 || ^4" + "phpunit/phpunit": "^9.3", + "symfony/process": "^4.2 || ^5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -1025,7 +1276,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/3.0.3" + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4" }, "funding": [ { @@ -1033,27 +1284,27 @@ "type": "github" } ], - "time": "2020-11-30T07:59:04+00:00" + "time": "2020-10-26T13:10:38+00:00" }, { "name": "sebastian/environment", - "version": "4.2.4", + "version": "5.1.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0" + "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/d47bbbad83711771f167c72d4e3f25f7fcc1f8b0", - "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/1b5dff7bb151a4db11d49d90e5408e4e938270f7", + "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^7.5" + "phpunit/phpunit": "^9.3" }, "suggest": { "ext-posix": "*" @@ -1061,7 +1312,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.2-dev" + "dev-master": "5.1-dev" } }, "autoload": { @@ -1088,7 +1339,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", - "source": "https://github.com/sebastianbergmann/environment/tree/4.2.4" + "source": "https://github.com/sebastianbergmann/environment/tree/5.1.4" }, "funding": [ { @@ -1096,34 +1347,34 @@ "type": "github" } ], - "time": "2020-11-30T07:53:42+00:00" + "time": "2022-04-03T09:37:03+00:00" }, { "name": "sebastian/exporter", - "version": "3.1.5", + "version": "4.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "73a9676f2833b9a7c36968f9d882589cd75511e6" + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/73a9676f2833b9a7c36968f9d882589cd75511e6", - "reference": "73a9676f2833b9a7c36968f9d882589cd75511e6", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", "shasum": "" }, "require": { - "php": ">=7.0", - "sebastian/recursion-context": "^3.0" + "php": ">=7.3", + "sebastian/recursion-context": "^4.0" }, "require-dev": { "ext-mbstring": "*", - "phpunit/phpunit": "^8.5" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1.x-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -1158,14 +1409,14 @@ } ], "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "http://www.github.com/sebastianbergmann/exporter", + "homepage": "https://www.github.com/sebastianbergmann/exporter", "keywords": [ "export", "exporter" ], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/3.1.5" + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5" }, "funding": [ { @@ -1173,30 +1424,30 @@ "type": "github" } ], - "time": "2022-09-14T06:00:17+00:00" + "time": "2022-09-14T06:03:37+00:00" }, { "name": "sebastian/global-state", - "version": "3.0.2", + "version": "5.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "de036ec91d55d2a9e0db2ba975b512cdb1c23921" + "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/de036ec91d55d2a9e0db2ba975b512cdb1c23921", - "reference": "de036ec91d55d2a9e0db2ba975b512cdb1c23921", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2", + "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2", "shasum": "" }, "require": { - "php": ">=7.2", - "sebastian/object-reflector": "^1.1.1", - "sebastian/recursion-context": "^3.0" + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" }, "require-dev": { "ext-dom": "*", - "phpunit/phpunit": "^8.0" + "phpunit/phpunit": "^9.3" }, "suggest": { "ext-uopz": "*" @@ -1204,7 +1455,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "5.0-dev" } }, "autoload": { @@ -1229,7 +1480,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/3.0.2" + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.5" }, "funding": [ { @@ -1237,34 +1488,91 @@ "type": "github" } ], - "time": "2022-02-10T06:55:38+00:00" + "time": "2022-02-14T08:28:10+00:00" + }, + { + "name": "sebastian/lines-of-code", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/lines-of-code.git", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.6", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for counting the lines of code in PHP source code", + "homepage": "https://github.com/sebastianbergmann/lines-of-code", + "support": { + "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-28T06:42:11+00:00" }, { "name": "sebastian/object-enumerator", - "version": "3.0.4", + "version": "4.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2" + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2", - "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", "shasum": "" }, "require": { - "php": ">=7.0", - "sebastian/object-reflector": "^1.1.1", - "sebastian/recursion-context": "^3.0" + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0.x-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -1286,7 +1594,7 @@ "homepage": "https://github.com/sebastianbergmann/object-enumerator/", "support": { "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", - "source": "https://github.com/sebastianbergmann/object-enumerator/tree/3.0.4" + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" }, "funding": [ { @@ -1294,32 +1602,32 @@ "type": "github" } ], - "time": "2020-11-30T07:40:27+00:00" + "time": "2020-10-26T13:12:34+00:00" }, { "name": "sebastian/object-reflector", - "version": "1.1.2", + "version": "2.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d" + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", - "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", "shasum": "" }, "require": { - "php": ">=7.0" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-master": "2.0-dev" } }, "autoload": { @@ -1341,7 +1649,7 @@ "homepage": "https://github.com/sebastianbergmann/object-reflector/", "support": { "issues": "https://github.com/sebastianbergmann/object-reflector/issues", - "source": "https://github.com/sebastianbergmann/object-reflector/tree/1.1.2" + "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" }, "funding": [ { @@ -1349,32 +1657,32 @@ "type": "github" } ], - "time": "2020-11-30T07:37:18+00:00" + "time": "2020-10-26T13:14:26+00:00" }, { "name": "sebastian/recursion-context", - "version": "3.0.1", + "version": "4.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb" + "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/367dcba38d6e1977be014dc4b22f47a484dac7fb", - "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172", + "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172", "shasum": "" }, "require": { - "php": ">=7.0" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0.x-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -1404,7 +1712,7 @@ "homepage": "http://www.github.com/sebastianbergmann/recursion-context", "support": { "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/3.0.1" + "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.4" }, "funding": [ { @@ -1412,29 +1720,32 @@ "type": "github" } ], - "time": "2020-11-30T07:34:24+00:00" + "time": "2020-10-26T13:17:30+00:00" }, { "name": "sebastian/resource-operations", - "version": "2.0.2", + "version": "3.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3" + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/31d35ca87926450c44eae7e2611d45a7a65ea8b3", - "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -1456,7 +1767,7 @@ "homepage": "https://www.github.com/sebastianbergmann/resource-operations", "support": { "issues": "https://github.com/sebastianbergmann/resource-operations/issues", - "source": "https://github.com/sebastianbergmann/resource-operations/tree/2.0.2" + "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" }, "funding": [ { @@ -1464,32 +1775,32 @@ "type": "github" } ], - "time": "2020-11-30T07:30:19+00:00" + "time": "2020-09-28T06:45:17+00:00" }, { "name": "sebastian/type", - "version": "1.1.4", + "version": "3.2.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "0150cfbc4495ed2df3872fb31b26781e4e077eb4" + "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/0150cfbc4495ed2df3872fb31b26781e4e077eb4", - "reference": "0150cfbc4495ed2df3872fb31b26781e4e077eb4", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e", + "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e", "shasum": "" }, "require": { - "php": ">=7.2" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^8.2" + "phpunit/phpunit": "^9.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-master": "3.2-dev" } }, "autoload": { @@ -1512,7 +1823,7 @@ "homepage": "https://github.com/sebastianbergmann/type", "support": { "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/1.1.4" + "source": "https://github.com/sebastianbergmann/type/tree/3.2.0" }, "funding": [ { @@ -1520,29 +1831,29 @@ "type": "github" } ], - "time": "2020-11-30T07:25:11+00:00" + "time": "2022-09-12T14:47:03+00:00" }, { "name": "sebastian/version", - "version": "2.0.1", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/version.git", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" + "reference": "c6c1022351a901512170118436c764e473f6de8c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", + "reference": "c6c1022351a901512170118436c764e473f6de8c", "shasum": "" }, "require": { - "php": ">=5.6" + "php": ">=7.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -1565,9 +1876,15 @@ "homepage": "https://github.com/sebastianbergmann/version", "support": { "issues": "https://github.com/sebastianbergmann/version/issues", - "source": "https://github.com/sebastianbergmann/version/tree/master" + "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" }, - "time": "2016-10-03T07:35:21+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:39:44+00:00" }, { "name": "theseer/tokenizer", From eba47fbc3653fab028cd99f518fe994fa06f2447 Mon Sep 17 00:00:00 2001 From: s-martin Date: Fri, 28 Oct 2022 22:39:18 +0200 Subject: [PATCH 200/206] Fix missing ps package --- scripts/installscripts/buster-install-default.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/installscripts/buster-install-default.sh b/scripts/installscripts/buster-install-default.sh index 1488d38e0..f010c8b17 100755 --- a/scripts/installscripts/buster-install-default.sh +++ b/scripts/installscripts/buster-install-default.sh @@ -799,7 +799,7 @@ install_main() { ${apt_get} ${allow_downgrades} install raspberrypi-kernel-headers fi - ${apt_get} ${allow_downgrades} install samba samba-common-bin gcc lighttpd php-common php-cgi php at mpd mpc mpg123 git ffmpeg resolvconf spi-tools netcat alsa-utils lsof + ${apt_get} ${allow_downgrades} install samba samba-common-bin gcc lighttpd php-common php-cgi php at mpd mpc mpg123 git ffmpeg resolvconf spi-tools netcat alsa-utils lsof procps # restore backup of /etc/resolv.conf in case installation of resolvconf cleared it sudo cp /etc/resolv.conf.orig /etc/resolv.conf From dbf8ef8cb38d22246a782ae020cfd045a3b9adaf Mon Sep 17 00:00:00 2001 From: s-martin Date: Fri, 28 Oct 2022 22:44:41 +0200 Subject: [PATCH 201/206] Fix badges --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f32353cbc..f70cde6f4 100755 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ![GitHub last commit (branch)](https://img.shields.io/github/last-commit/MiczFlor/RPi-Jukebox-RFID/develop) -![Python Tests](https://github.com/MiczFlor/RPi-Jukebox-RFID/workflows/Python%20package/badge.svg) ![Install Script Tests](https://github.com/MiczFlor/RPi-Jukebox-RFID/workflows/Docker%20Test%20Installation/badge.svg) +[![Python Checks and Tests](https://github.com/MiczFlor/RPi-Jukebox-RFID/actions/workflows/pythonpackage.yml/badge.svg)](https://github.com/MiczFlor/RPi-Jukebox-RFID/actions/workflows/pythonpackage.yml) [![Test Install Scripts on Docker](https://github.com/MiczFlor/RPi-Jukebox-RFID/actions/workflows/dockerimage.yml/badge.svg)](https://github.com/MiczFlor/RPi-Jukebox-RFID/actions/workflows/dockerimage.yml) [![CodeQL](https://github.com/MiczFlor/RPi-Jukebox-RFID/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/MiczFlor/RPi-Jukebox-RFID/actions/workflows/codeql-analysis.yml) [![Gitter chat](https://badges.gitter.im/phoniebox/gitter.png)](https://gitter.im/phoniebox) From ab998c6e0861fa436810ff684ec75a052a252cd2 Mon Sep 17 00:00:00 2001 From: s-martin Date: Mon, 31 Oct 2022 23:14:59 +0100 Subject: [PATCH 202/206] fix markdown warnings (#1902) * fix flake8 warnings * fix markdownlint * fix markdown lint warnings --- CONTRIBUTING.md | 38 ++--- README.md | 3 +- ci/README.md | 13 +- components/audio/PirateAudioHAT/README.md | 14 +- components/bluetooth-sink-switch/README.md | 52 +++--- .../buttons-bluetooth-headphone/README.md | 24 ++- components/displays/HD44780-i2c/README.md | 123 +++++++------- .../dot-matrix-module-MAX7219/README.md | 48 +++--- components/gpio_control/README.md | 84 ++++++---- components/rfid-reader/PN532/README.md | 2 - .../MQTT-protocol/README.md | 155 +++++++++--------- docs/FIRMWARE_UPDATE.md | 23 ++- docs/GPIO-BUTTONS.md | 18 +- docs/INSTALL-COMPLETE-GUIDE.md | 90 ++++++---- docs/UPGRADE.md | 24 ++- docs/WLAN-ACCESS-POINT.md | 87 +++++++--- 16 files changed, 465 insertions(+), 333 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index fe4f5ca6d..eb1212ad1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -8,32 +8,32 @@ # Naming conventions * **Files & folder names** - * all **lower case** - * separate words with **dashes** `-` (less keystrokes, better autocomplete recognition, in HTML links dashes can not be confused) not camel/PascalCaps or underscores - * be **descriptive** in your wording (e.g. `raspberry`, not `juicy-red-thing`) - * move **from general to specific** (e.g. `food-fruit-raspberry`, not `raspberry-food-fruit`) - * unique and clear product IDs (e.g. MAX7219) - * the product ID should be written as is (no lowercase) - * the product ID should come last in a descriptive name (e.g. dot-matrix-module-MAX7219) - * be consistent and look at existing examples before you invent something new + * all **lower case** + * separate words with **dashes** `-` (less keystrokes, better autocomplete recognition, in HTML links dashes can not be confused) not camel/PascalCaps or underscores + * be **descriptive** in your wording (e.g. `raspberry`, not `juicy-red-thing`) + * move **from general to specific** (e.g. `food-fruit-raspberry`, not `raspberry-food-fruit`) + * unique and clear product IDs (e.g. MAX7219) + * the product ID should be written as is (no lowercase) + * the product ID should come last in a descriptive name (e.g. dot-matrix-module-MAX7219) + * be consistent and look at existing examples before you invent something new * **`README.md`** - * written in capital letters, so it's easier to spot - * every new folder of a component deserves a `README.md` file + * written in capital letters, so it's easier to spot + * every new folder of a component deserves a `README.md` file # Structure of files and folders Inside the root folder or the repo, these folders are important: * `scripts` - * this folder should contain **only actively used scripts** (controlling playout, rfid tiggers, etc.) - * some possible services and features might live in the *components* directory (see below) - * if one or more scripts are needed for the activation of a component (like daemons), they should be copied to the `scripts` directory during installation / activation - * WHY? By copying, changes will NOT affect the github repo and make it easier for users to modify their components + * this folder should contain **only actively used scripts** (controlling playout, rfid tiggers, etc.) + * some possible services and features might live in the *components* directory (see below) + * if one or more scripts are needed for the activation of a component (like daemons), they should be copied to the `scripts` directory during installation / activation + * WHY? By copying, changes will NOT affect the github repo and make it easier for users to modify their components * `components` - * contains sub- und subsubfolders for additional features, services, hardware - * **subfolders** are for categories (e.g. displays, soundcards) and are plural, even if there is only one - * **subsubfolders** are specific hardware, services, features, protocols, etc. + * contains sub- und subsubfolders for additional features, services, hardware + * **subfolders** are for categories (e.g. displays, soundcards) and are plural, even if there is only one + * **subsubfolders** are specific hardware, services, features, protocols, etc. # How to contribute @@ -52,7 +52,7 @@ Development is done on the git branch `develop`. How to move to that branch, see * Use the online line install script to get the box installed. * By default this will get you to the `master` branch. You will move to the `develop` branch, do this: -~~~ +~~~bash cd /home/pi/RPi-Jukebox-RFID git checkout develop git fetch origin @@ -120,7 +120,7 @@ to detect in advance. If the code change results in a test failure, we will make our best effort to correct the error. If a fix cannot be determined and committed within 24 hours -of its discovery, the commit(s) responsible _may_ be reverted, at the +of its discovery, the commit(s) responsible *may* be reverted, at the discretion of the committer and Phonie maintainers. The original contributor will be notified of the revert. diff --git a/README.md b/README.md index f70cde6f4..2bb532e68 100755 --- a/README.md +++ b/README.md @@ -20,8 +20,7 @@ Third party projects like [librespot-java](https://github.com/librespot-org/libr This leaves us in a pickle and we are happy to hear from developer talent in the Phoniebox community on how to move forward regarding Phoniebox. We are also curious to learn about alternative services we can connect with and which you would like to see supported -- or have developed support for already: -https://github.com/MiczFlor/RPi-Jukebox-RFID/discussions/1835 - + ## The Phoniebox Calendar 2022 is here!!! diff --git a/ci/README.md b/ci/README.md index 2cabfd10b..9bb4e874f 100644 --- a/ci/README.md +++ b/ci/README.md @@ -11,7 +11,7 @@ This is a work in progress so expect things to fail or being flaky. * Flash its sd card with **raspbian buster lite** * use raspi-config to resize the filesystem to the whole sd card (menu: 7 -> A1) * install some tools and reboot: -``` +```bash sudo apt-get update sudo apt-get -y dist-upgrade sudo apt-get -y install docker.io git @@ -20,25 +20,25 @@ This is a work in progress so expect things to fail or being flaky. ``` * login to your RPi * clone this repo and cd into its local clone: -``` +```bash git clone https://github.com/MiczFlor/RPi-Jukebox-RFID.git cd /home/pi/RPi-Jukebox-RFID/ ``` * build the docker image: * **on normal PCs:** - ``` + ```bash docker build -t rpi-jukebox-rfid-stretch:latest -f ci/Dockerfile.stretch.amd64 . docker build -t rpi-jukebox-rfid-buster:latest -f ci/Dockerfile.buster.amd64 . ``` * **on a raspberry pi:** - ``` + ```bash docker build -t rpi-jukebox-rfid-stretch:latest -f ci/Dockerfile.stretch.armv7 . docker build -t rpi-jukebox-rfid-buster:latest -f ci/Dockerfile.buster.armv7 . ``` * get something to drink or eat * run the freshly built docker image and start testing. For example: - ``` + ```bash docker run --rm -ti rpi-jukebox-rfid-buster:latest /bin/bash cd /home/pi/ cp /code/scripts/installscripts/buster-install-default.sh /home/pi/ @@ -48,14 +48,13 @@ This is a work in progress so expect things to fail or being flaky. NOTE: Get familiar with docker and its flags - `--rm` for example will remove the container after you log out of it and all changes will be lost. - ### mount hosts code as volume The created image now contains all the code in the directory `/code` - if you do not want to rebuild the image after each code-change you can 'mount' the RPi's code version into the container: -``` +```bash git clone https://github.com/MiczFlor/RPi-Jukebox-RFID.git cd /home/pi/RPi-Jukebox-RFID/ docker build -t rpi-jukebox-rfid-buster:latest -f ci/Dockerfile . diff --git a/components/audio/PirateAudioHAT/README.md b/components/audio/PirateAudioHAT/README.md index 191105984..adebac7ef 100644 --- a/components/audio/PirateAudioHAT/README.md +++ b/components/audio/PirateAudioHAT/README.md @@ -24,7 +24,8 @@ NOTE: changes to the installation should find their way into the script `setup_p `gpio=25=op,dh` `dtoverlay=hifiberry-dac` 5. Add settings to /etc/asound.conf (create it, if it does not exist yet) - ``` + + ```bash pcm.hifiberry { type softvol slave.pcm "plughw:CARD=sndrpihifiberry,DEV=0" @@ -40,8 +41,10 @@ NOTE: changes to the installation should find their way into the script `setup_p card 1 } ``` + 6. Add the following section to /etc/mpd.conf - ``` + + ```bash audio_output { enabled "yes" type "alsa" @@ -53,6 +56,7 @@ NOTE: changes to the installation should find their way into the script `setup_p dop "no" } ``` + 7. Set mixer_control name in /etc/mpd.conf `mixer_control "Master"` 8. Enable SPI @@ -62,7 +66,8 @@ NOTE: changes to the installation should find their way into the script `setup_p 10. Install Mopidy plugins `sudo pip3 install Mopidy-PiDi pidi-display-pil pidi-display-st7789 mopidy-raspberry-gpio` 11. Add the following sections to /etc/mopidy/mopidy.conf: - ``` + + ```bash [raspberry-gpio] enabled = true bcm5 = play_pause,active_low,150 @@ -74,6 +79,7 @@ NOTE: changes to the installation should find their way into the script `setup_p enabled = true display = st7789 ``` + 12. Enable access for modipy user `sudo usermod -a -G spi,i2c,gpio,video mopidy` -13. Reboot Raspberry Pi \ No newline at end of file +13. Reboot Raspberry Pi diff --git a/components/bluetooth-sink-switch/README.md b/components/bluetooth-sink-switch/README.md index 532f40565..16fabde10 100644 --- a/components/bluetooth-sink-switch/README.md +++ b/components/bluetooth-sink-switch/README.md @@ -1,4 +1,4 @@ -## Neatly switch between soundcard and bluetooth audio output +# Neatly switch between soundcard and bluetooth audio output **Wouldn't it be nice to have regular speakers and Bluetooth headphones on your Phoniebox and choose the desired output on a spur of the moment?** @@ -24,14 +24,15 @@ This looks lengthy, but I the major deal is setting up your audio output devices #### Step 1) Setting up asound.conf -You need to set up both audio sinks and make sure they work. This is pretty much a prerequisite for everything that follows. +You need to set up both audio sinks and make sure they work. This is pretty much a prerequisite for everything that follows. Follow the instructions for your soundcard. Configure `/etc/asound.conf`correctly. And make sure it works! Then follow the instructions on the [Wiki on how to connect the bluetooth device](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Bluetooth). We diverge where we set up two audio sinks instead of one: Just **add** the `pcm.btspeaker` section described in the wiki to `/etc/asound.conf` (choose a name to your liking). Do **not** touch the mpd.conf yet! The new entry should end up looking like this: -~~~ + +~~~bash pcm.btheadphone { type plug slave.pcm { @@ -51,7 +52,8 @@ pcm.btheadphone { In case of doubt, reboot. Test the new audio device (mine is called `pcm.btheadphone`). Also test the soundcard (here `pcm.hifiberry` for the regular speakers). -~~~sh + +~~~bash $ aplay -D btheadphone /usr/share/sounds/alsa/Front_Center.wav $ aplay -D hifiberry /usr/share/sounds/alsa/Front_Center.wav ~~~ @@ -60,7 +62,7 @@ $ aplay -D hifiberry /usr/share/sounds/alsa/Front_Center.wav You need to set up two audio_output sections. **The order is important**: the first entry must relate to the soundcard setup, the second entry must relate to the bluetooth setup. Give meaningful names, as they will show up in the Web Interface. -~~~ +~~~bash # The first entry should match your soundcard. If you have a working setup, there is most likly no need to change it! # As an exanple, here is my configuration for my HifiBerry MiniAmp. audio_output { @@ -84,7 +86,7 @@ audio_output { } ~~~ -Restarting the mpd.service or else reboot. +Restarting the mpd.service or else reboot. Check the setup: @@ -105,7 +107,6 @@ $ cd components/bluetooth-sink-switch $ ./install-bt-sink-switch.sh ~~~ - #### Step 4) Fine-tuning **Status LED** @@ -114,7 +115,7 @@ An optional status LED will be turned on if the audio sink is set to bluetooth. **Important note**: Correct capitalization of [BluetoothToggleLed] is important! -~~~ +~~~bash [BluetoothToggleLed] enabled: True led_pin: 13 @@ -124,7 +125,7 @@ led_pin: 13 If you want to toggle from a GPIO button (e.g. on GPIO5), add these lines to your `RPi-Jukebox-RFID/settings/gpio_settings.ini`. Create it, if it does not exist. -~~~ +~~~bash [BluetoothToggle] enabled: True Type: Button @@ -138,7 +139,7 @@ functionCall: functionCallBluetoothToggle If you want to toggle by RFID card swipe, set the card id in `rfid_trigger_play.conf`, e.g.: -~~~ +~~~bash ### Toggle between speakers and bluetooth headphones CMDBLUETOOTHTOGGLE="1364237231134" ~~~ @@ -149,9 +150,9 @@ Speakers and Headphones can have very different maximum volume levels. This some The solution is adding a `softvol` component to the /etc/asound.conf. You may already have one set up, if your soundcard does not have a hardware volume control. Then it is easy! The `softvol` copmonent adds a systemwide ALSA-based volume control for a hardware soundcard. You will need to give it a name, that does **not** exist! Check with `$ amixer scontrols` first, which names are already taken. Here, I have choosen *Master*. This will work even if your soundcard has a hardware volume control. -The `softvol` component has a feature called *max_db* to limit the maximum volume, which we are going to utilize here. With that we are limiting the maximum volume of the speakers systemwide and independent of MPD or other Phoniebox settings. +The `softvol` component has a feature called *max_db* to limit the maximum volume, which we are going to utilize here. With that we are limiting the maximum volume of the speakers systemwide and independent of MPD or other Phoniebox settings. -~~~ +~~~bash # Add the sofvol section pcm.hifiberry { type softvol @@ -184,26 +185,31 @@ ctl.!default { - Change the mixer control to the new iFace name: `mixer_control "Master"` - Ensure that it is there is no entry mixer_type or that it is `mixer_type "hardware"` -See example [mpd.conf](#step-2-setting-up-mpdconf) above! +See example [mpd.conf](#step-2-setting-up-mpdconf) above! + +Also change the Phoniebox setting with -Also change the Phoniebox setting with ~~~sh $ echo "Master" > RPi-Jukebox-RFID/settings/Audio_iFace_Name ~~~ + and reboot! Test the setup with running speaker test in one console -~~~ + +~~~bash $ speaker-test -D hifiberry ~~~ + and changing the default volume control in another console -~~~ + +~~~bash $ alsamixer ~~~ If you are experimenting with a softvol and want to get rid of it again - that is not an easy task. Most promising approach is to insert the SD-Card into a different Linux machine delete the file `/var/lib/alsa/asound.state`. This must be done from a different computer, as this file gets written during shutdown. More infos about the softvol may be found [here](https://alsa.opensrc.org/Softvol) -## Troubleshooting +## Troubleshooting Troubleshooting comes in three major sub-tasks: @@ -213,24 +219,24 @@ Troubleshooting comes in three major sub-tasks: ## Some background -https://alsa.opensrc.org/Softvol + -https://alsa.opensrc.org/How_to_use_softvol_to_control_the_master_volume + -https://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html + ## Example config For reference, this is my /etc/asound.conf in full (it also sets up an equalizer). The corresponding [mpd.conf](#step-2-setting-up-mpdconf) excerpt is the one given above. -~~~ +~~~bash pcm.btheadphone { type plug slave.pcm { type bluealsa service "org.bluealsa" - device "00:1B:66:A1:56:8D" - profile "a2dp" + device "00:1B:66:A1:56:8D" + profile "a2dp" delay -20000 } hint { diff --git a/components/controls/buttons-bluetooth-headphone/README.md b/components/controls/buttons-bluetooth-headphone/README.md index 28c141fd9..8d9397df0 100644 --- a/components/controls/buttons-bluetooth-headphone/README.md +++ b/components/controls/buttons-bluetooth-headphone/README.md @@ -1,13 +1,13 @@ -## Contol Phoniebox via Buttons from Bluetooth Headset +## Control Phoniebox via Buttons from Bluetooth Headset -Many bluetooth headsets or bluetooth speaker sets have buttons for controlling the music stream. **Let's make use of them!** +Many bluetooth headsets or bluetooth speaker sets have buttons for controlling the music stream. **Let's make use of them!** This component provides support for controlling your Phoniebox through these buttons on your bluetooth headset (or speaker set). ### Installation 1. Make sure your bluetooth headset is connected to the Phoniebox. Follow the instructions in the [Wiki](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Bluetooth). 2. Execute `$ ./install-bt-buttons.sh. It will ask you to identify your headset and set up appropriate user rights, and registers the script as a service. It should work immediatly. In case of doubt, reboot. - - If later changing the headset, re-run `$ ./register-device.py`. Reboot or restart the service with `sudo systemctl restart phoniebox-bt-buttons.service ` + - If later changing the headset, re-run `$ ./register-device.py`. Reboot or restart the service with `sudo systemctl restart phoniebox-bt-buttons.service` ### Supported Buttons @@ -27,7 +27,7 @@ If the feature [bluetooth-sink-switch](../../bluetooth-sink-switch) is enabled, *Note:* On-connect actions may take up to 4 seconds - please be patient (bluetooth connection is only checked every two seconds, bluetooth stream needs to be buffered, etc...) -You can **customize** the behaviour by editing the functions +You can **customize** the behaviour by editing the functions - `bt_on_connect(mpd_support=0)` - `bt_on_disconnect(mpd_support=0)` @@ -48,7 +48,8 @@ This feature has been tested with PowerLocus Buddy and Sennheiser Momentum M2 AE - Run the [preparatory steps](#preparation) - Check headset is connected and listed as input event device with `$ cat /proc/bus/input/devices`. Note the device name. - In the script's debug output you should see something like this. Here the MAC address is the device name -~~~ + +~~~bash 30.12.2020 21:44:41 - bt-buttons.py - DEBUG: bt_get_device_name() -> C4:FB:20:63:A7:F2 30.12.2020 21:45:05 - bt-buttons.py - DEBUG: bt_open_device(C4:FB:20:63:A7:F2): Device 'C4:FB:20:63:A7:F2' search success 30.12.2020 21:45:05 - bt-buttons.py - DEBUG: device /dev/input/event1, name "C4:FB:20:63:A7:F2", phys "" @@ -57,12 +58,16 @@ This feature has been tested with PowerLocus Buddy and Sennheiser Momentum M2 AE - If you see discrepancies, re-run `$ ./register-device.py`(see above) #### Add key codes / change actions + - Run the [preparatory steps](#preparation) - Press the buttons on the headset and check for these debug outputs. Note down the keycode. The **163** is the keycode, you are looking for. Go through all the buttons. Also try short/long press. On my headphones, they result in different keycodes -``` + +~~~bash 30.12.2020 21:45:59 - bt-buttons.py - DEBUG: key event at 1609361159.529679, 163 (KEY_NEXTSONG), down -``` +~~~ + - Go into the source code and adjust these lines for desired behaviour + ~~~python if event.code == bt_keycode_play: proc = subprocess.run(f"{path}/../../../scripts/playout_controls.sh -c=playerpause", shell=True, check=False, @@ -74,9 +79,10 @@ This feature has been tested with PowerLocus Buddy and Sennheiser Momentum M2 AE ~~~ #### Still having trouble? -Check the basics: test the event input. Make sure the headphones are connected beforehand. Replace event*X* with the event number obtained from `$ cat /proc/bus/input/devices`. + +Check the basics: test the event input. Make sure the headphones are connected beforehand. Replace event*X* with the event number obtained from `$ cat /proc/bus/input/devices`. ```$ cat /dev/input/eventX``` Press some buttons on the headset. Not all buttons will be forwarded, e.g. vol up/down may also be handled only in the headset. - Try also long/short press. The output will look wired. Don't worry - the important thing is that you are seeing something on the console. Now go back to [Troubleshooting](#troubleshooting). \ No newline at end of file +Try also long/short press. The output will look wired. Don't worry - the important thing is that you are seeing something on the console. Now go back to [Troubleshooting](#troubleshooting). diff --git a/components/displays/HD44780-i2c/README.md b/components/displays/HD44780-i2c/README.md index 2c61903c9..17b6a719a 100755 --- a/components/displays/HD44780-i2c/README.md +++ b/components/displays/HD44780-i2c/README.md @@ -4,89 +4,90 @@ *([Permission to use this code for the Phoniebox project](https://github.com/MiczFlor/RPi-Jukebox-RFID/pull/859#discussion_r408667007) on April 15th 2020 by author [Denis Pleic](https://github.com/DenisFromHR). Original [code on https://gist.github.com/DenisFromHR/cc863375a6e19dce359d](https://gist.github.com/DenisFromHR/cc863375a6e19dce359d))* The following files allow using LCD displays based on HD44780 connected via i2c bus for this project. The following displays have been used for testing: - -- 2x16 display -- 4x20 display (recommended as more information can be displayed) - -Various informations such as artist, album, track_number, track_title, track_time and many more can be displayed see main script for more display options. - -The required files are: - -- components/displays/HD44780-i2c/i2c_lcd.py -- components/displays/HD44780-i2c/i2c_lcd_driver.py -- components/displays/HD44780-i2c/i2c-lcd.service.default.sample -- components/displays/HD44780-i2c/README.md - - -The first file is the main LCD script that makes use of I2C_LCD_driver.py. - -The second file is the library needed to drive the LCD via i2c, originates from DenisFromHR (Denis Pleic) see http://www.circuitbasics.com/raspberry-pi-i2c-lcd-set-up-and-programming - -The third is used as sample service file that runs the i2c_lcd.py main script at boot-up if the service is properly installed (install description can be found below.). - -The fourth file is this file which describes the features, usage and installation of the code. - -### Installation - + +- 2x16 display +- 4x20 display (recommended as more information can be displayed) + +Various informations such as artist, album, track_number, track_title, track_time and many more can be displayed see main script for more display options. + +The required files are: + +- components/displays/HD44780-i2c/i2c_lcd.py +- components/displays/HD44780-i2c/i2c_lcd_driver.py +- components/displays/HD44780-i2c/i2c-lcd.service.default.sample +- components/displays/HD44780-i2c/README.md + +The first file is the main LCD script that makes use of I2C_LCD_driver.py. + +The second file is the library needed to drive the LCD via i2c, originates from DenisFromHR (Denis Pleic) see + +The third is used as sample service file that runs the i2c_lcd.py main script at boot-up if the service is properly installed (install description can be found below.). + +The fourth file is this file which describes the features, usage and installation of the code. + +### Installation + * You need to install additional python libraries. Run the following two command in the command line: - -`sudo apt-get install i2c-tools python-smbus python3-numpy python-mpdclient python-mpd` -`pip install smbus numpy python-mpd2` +`sudo apt-get install i2c-tools python-smbus python3-numpy python-mpdclient python-mpd` + +`pip install smbus numpy python-mpd2` + +* You need to know which I2C bus your Raspberry Pi has available on GPIOs: -* You need to know which I2C bus your Raspberry Pi has available on GPIOs: +`ls /dev/i2c-*` -`ls /dev/i2c-*` +It'll output "/dev/i2c-x", where x is your bus number. Note this bus number as you will need it in step 6. -It'll output "/dev/i2c-x", where x is your bus number. Note this bus number as you will need it in step 6. -* Now detect the adapter by using the i2cdetect command, inserting your bus number: +* Now detect the adapter by using the i2cdetect command, inserting your bus number: -`sudo i2cdetect -y bus_number` +`sudo i2cdetect -y bus_number` -The I2C address of my LCD is 27. Take note of this number, it will be need in step 6. +The I2C address of my LCD is 27. Take note of this number, it will be need in step 6. -* if i2cdetect is not found install i2c-tools +* if i2cdetect is not found install i2c-tools -`sudo apt-get update` +`sudo apt-get update` -`sudo apt-get install i2c-tools` +`sudo apt-get install i2c-tools` -* Next we need to install SMBUS, which gives the Python library we’re going to use access to the I2C bus on the Pi. At the command prompt, enter +* Next we need to install SMBUS, which gives the Python library we’re going to use access to the I2C bus on the Pi. At the command prompt, enter -`sudo apt-get install python-smbus` +`sudo apt-get install python-smbus` -* Modify "i2c_lcd_driver.py" line 19 which reads "I2CBUS = 1" and adapt it to your bus number (see step 2.) Furthermore modify line 22 which reads "ADDRESS = 0x27" and adapt it to your I2C address (see step 3.) +* Modify "i2c_lcd_driver.py" line 19 which reads "I2CBUS = 1" and adapt it to your bus number (see step 2.) Furthermore modify line 22 which reads "ADDRESS = 0x27" and adapt it to your I2C address (see step 3.) * Modify "i2c_lcd.py" to adapt it yo your specific display e.g. 2x16 or 4x20 (default). The lines 15-19 look like the following: - + +```bash +################# CHANGE YOUR SETTINGS HERE!!! ########################################### +## Display settings ## +n_cols = 20 # EDIT!!! <-- number of cols your display has ## +n_rows = 4 # EDIT!!! <-- number of rows your display has ## +val_delay = 0.4 # EDIT!!! <-- speed of the scolling text ## ``` -################# CHANGE YOUR SETTINGS HERE!!! ########################################### -## Display settings ## -n_cols = 20 # EDIT!!! <-- number of cols your display has ## -n_rows = 4 # EDIT!!! <-- number of rows your display has ## -val_delay = 0.4 # EDIT!!! <-- speed of the scolling text ## -``` -Check if "n_cols" and "n_rows" need to be changed and modify them if necessary. The "val_delay" constant leave for the time being. Lower values will speed up things but will make the text less visible/readable. - -* next install and start "i2c-lcd.service" -`sudo cp /home/pi/RPi-Jukebox-RFID/components/displays/HD44780-i2c/i2c-lcd.service.default.sample /etc/systemd/system/i2c-lcd.service` +Check if "n_cols" and "n_rows" need to be changed and modify them if necessary. The "val_delay" constant leave for the time being. Lower values will speed up things but will make the text less visible/readable. + +* next install and start "i2c-lcd.service" -* register service by running, it will thereby start on the next boot-up +`sudo cp /home/pi/RPi-Jukebox-RFID/components/displays/HD44780-i2c/i2c-lcd.service.default.sample /etc/systemd/system/i2c-lcd.service` -`sudo systemctl enable i2c-lcd` +* register service by running, it will thereby start on the next boot-up -* Reboot and enjoy! +`sudo systemctl enable i2c-lcd` + +* Reboot and enjoy! --- -For test purposes you can use the following command to start and stop the service without rebooting -to start the service instantly run +For test purposes you can use the following command to start and stop the service without rebooting +to start the service instantly run + +`sudo systemctl start i2c-lcd` -`sudo systemctl start i2c-lcd` +to stop the service instantly run -to stop the service instantly run +`sudo systemctl stop i2c-lcd` -`sudo systemctl stop i2c-lcd` - -Best regards, -Simon \ No newline at end of file +Best regards, +Simon diff --git a/components/displays/dot-matrix-module-MAX7219/README.md b/components/displays/dot-matrix-module-MAX7219/README.md index c52bf2bad..766addcf6 100644 --- a/components/displays/dot-matrix-module-MAX7219/README.md +++ b/components/displays/dot-matrix-module-MAX7219/README.md @@ -1,26 +1,26 @@ -# MAX7219 Dot Matrix Display - -## Items needed - -* [NodeMCU ESP8266, CPU/WLAN](https://amzn.to/2urDAky) -* [MAX7219 dot matrix module microcontroller module 4 in one display](https://amzn.to/2Sa5Scx) - -## Configuration - -In the [display.ino](display.ino#L48-L50) there is following configuration part: - - const char* ssid = "foo"; - const char* password = "foo"; - const char* host = "192.168.42.42"; - -`ssid` is your local WiFi network. -`password` is the password for your WiFi network. +# MAX7219 Dot Matrix Display + +## Items needed + +* [NodeMCU ESP8266, CPU/WLAN](https://amzn.to/2urDAky) +* [MAX7219 dot matrix module microcontroller module 4 in one display](https://amzn.to/2Sa5Scx) + +## Configuration + +In the [display.ino](display.ino#L48-L50) there is following configuration part: + + const char* ssid = "foo"; + const char* password = "foo"; + const char* host = "192.168.42.42"; + +`ssid` is your local WiFi network. +`password` is the password for your WiFi network. `host` is the **static** IP of your Phoniebox. - -For flashing the ESP, you can use the [Arduino IDE](https://en.wikipedia.org/wiki/Arduino_IDE). But there are a few more other possibilities to do this. - -## Pics - -![still](still.jpg) -![ticker](ticker.gif) + +For flashing the ESP, you can use the [Arduino IDE](https://en.wikipedia.org/wiki/Arduino_IDE). But there are a few more other possibilities to do this. + +## Pics + +![still](still.jpg) +![ticker](ticker.gif) diff --git a/components/gpio_control/README.md b/components/gpio_control/README.md index 9e4477cbe..0c92ca6f5 100644 --- a/components/gpio_control/README.md +++ b/components/gpio_control/README.md @@ -4,21 +4,24 @@ This service enables the control of different GPIO input & output devices for co It uses to a configuration file to configure the active devices. ## How to create and run the service? + * The service can be activated during installation with the installscript. * If the service was not activated during installation, you can alternatively use `sudo install.sh` in this folder (`components/gpio_control`). ## How to edit configuration files? -The configuration file is located here: `~/RPi-Jukebox-RFID/settings/gpio_settings.ini` + +The configuration file is located here: `~/RPi-Jukebox-RFID/settings/gpio_settings.ini` Editing the configuration file and restarting the service with `sudo systemctl restart phoniebox-gpio-control` will activate the new settings. -In the following the different devices are described. +In the following the different devices are described. Each device can have actions which correspond to function calls. Up to now the following input devices are implemented: -* **Button**: - A simple button with optional long-press actions like hold and repeat functionality or delayed action. + +* **Button**: + A simple button with optional long-press actions like hold and repeat functionality or delayed action. Its main parameters are: `Pin` (use GPIO number here) and `functionCall`. For additional options, see [extended documentation below](#doc_button). -* **ShutdownButton**: +* **ShutdownButton**: A specialized implementation for a shutdown button with integrated (but optional) LED support. It initializes a shutdown if the button is pressed more than `time_pressed` seconds and a (optional) LED on GPIO `led_pin` is flashing until that time is reached. For additional information, see [extended documentation below](#doc_sdbutton). * **RotaryEncoder**: @@ -36,28 +39,33 @@ Each section needs to be activated by setting `enabled: True`. Many example files are located in `~/RPi-Jukebox-RFID/components/gpio_control/example_configs/`. # Extended documentation + This section provides some extended documentation and guideline. Especially some exemplary configurations are introduced showing how these controls can be set up in the configuration file `~/RPi-Jukebox-RFID/settings/gpio_settings.ini`. -## Button +## Button + At the most basic level, a button can be created using an `ini` entry like this: -``` + +```bash [PlayPause] enabled: True Type: Button Pin: 27 functionCall: functionCallPlayerPause ``` + * **enabled**: This needs to be `True` for the button to work. * **Pin**: GPIO number * **functionCall**: The function that you want to be called on a button press. See [function documentation below](#doc_funcs). However, a button has more parameters than these. In the following comprehensive list you can also find the default values which are used automatically if you leave out these settings: + * **hold_mode**: Specifies what shall happen if the button is held pressed for longer than `hold_time`: - * `None` (Default): Nothing special will happen. - * `Repeat`: The configured `functionCall` is repeated after each `hold_time` interval. - * `Postpone`: The function will not be called before `hold_time`, i.e. the button needs to be pressed this long to activate the function - * `SecondFunc`: Holding the button for at least `hold_time` will additionally execute the function `functionCall2`. - * `SecondFuncRepeat`: Like SecondFunc, but `functionCall2` is repeated after each `hold_time` interval. + * `None` (Default): Nothing special will happen. + * `Repeat`: The configured `functionCall` is repeated after each `hold_time` interval. + * `Postpone`: The function will not be called before `hold_time`, i.e. the button needs to be pressed this long to activate the function + * `SecondFunc`: Holding the button for at least `hold_time` will additionally execute the function `functionCall2`. + * `SecondFuncRepeat`: Like SecondFunc, but `functionCall2` is repeated after each `hold_time` interval. In every `hold_mode` except `Postpone`, the main action `functionCall` gets executed instantly. @@ -78,9 +86,11 @@ However, a button has more parameters than these. In the following comprehensive Note: If you prefer, you may also use `Type: SimpleButton` instead of `Type: Button` - this makes no difference. -## ShutdownButton +## ShutdownButton + An extended ShutdownButton can be created using an `ini` entry like these: -``` + +```bash [Shutdown_without_LED] enabled: True Type: ShutdownButton @@ -92,11 +102,13 @@ Type: ShutdownButton Pin: 3 led_pin: 17 ``` + * **enabled**: This needs to be `True` for the extended shutdown button to work. * **Pin**: GPIO number of the button * **led_pin**: GPIO number of the LED (Default is `None`). Note that you should not attach LEDs to GPIO ports without a matching resistor in line. Again, there are more parameters than these. In the following comprehensive list you can also find the default values which are used automatically if you leave out these settings: + * **hold_time**: This parameter controls how many seconds (default: `3.0`) the button has to be hold until shutdown will be initiated. * **iteration_time**: This parameter determines the flashing speed of the LED indicator. Default value is `0.2` seconds. * **functionCall**: While the default action is `functionCallShutdown`, you might use this button type even with other functions than system shutdown (again, see [function documentation below](#doc_funcs) for a list of available functions). @@ -105,7 +117,7 @@ Furthermore, the following settings can be used as described for the [regular bu Note that using a ShutdownButton without a LED can also be implemented with a normal button like this: -``` +```bash [Shutdown] enabled: True Type: Button @@ -115,10 +127,11 @@ hold_time: 3.0 functionCall: functionCallShutdown ``` -## TwoButtonControl +## TwoButtonControl + A TwoButtonControl can be created using an `ini` entry like this: -``` +```bash [PrevNextStop] enabled: True Type: TwoButtonControl @@ -128,10 +141,12 @@ functionCall1: functionCallPlayerNext functionCall2: functionCallPlayerPrev functionCallTwoButtons: functionCallPlayerStop ``` + In this example, you can navigate to the previous or, respectively next track by pushing the respective button. If you push both buttons simultaneously, the player stops. It is possible to combine the TwoButtonControl with the Repeat mode, e.g. to increment the volume further while the button keeps getting held: -``` + +```bash [VolumeControl] enabled: True Type: TwoButtonControl @@ -143,14 +158,16 @@ functionCall1: functionCallVolU functionCall2: functionCallVolD functionCallTwoButtons: functionCallVol0 ``` + In this example, the volume will be in-/decreased step-wise using intervals of 0.3 seconds while the respective button is held. If both buttons are pushed simultaneously, the player is muted (volume 0). In this example, Pin1 is used for increasing the volume, while Pin2 decreases it. Furthermore, the following settings can be used as described for the [regular buttons](#doc_button): **pull_up_down**, **edge**, **bouncetime**, **antibouncehack** +## RotaryEncoder -## RotaryEncoder A RotaryEncoder can be created using an `ini` entry like this: -``` + +```bash [VolumeControl] enabled: True Type: RotaryEncoder @@ -164,25 +181,30 @@ functionCall2: functionCallVolD Pin1 and FunctionCall1 correspond to rotary direction "up", while Pin2 and FunctionCall2 correspond to "down". Note that the old configuration entries PinUp/PinDown and functionCallUp/functionCallDown are deprecated and might stop working in future. -## StatusLED +## StatusLED + A StatusLED can be created using an `ini` entry like this: -``` + +```bash [StatusLED] enabled: True Type: StatusLED Pin: 14 ``` + * **Pin**: GPIO number of the LED (mandatory option). Note that you should not attach LEDs to GPIO ports without a matching resistor in line. Note: If you prefer, you may also use `Type: MPDStatusLED` instead of `Type: StatusLED` - this makes no difference. ## Further examples + By tapping the potential of the features presented above, you can create buttons like this: ### Play random tracks or folders + If you have buttons to navigate to the next/previous track it might be a good idea to define that holding these buttons for a certain time (e.g. 2 seconds) will activate a random (surpise!) track or even folder/card. This might look like this -``` +```bash [NextOrRand] enabled: True Type: Button @@ -205,8 +227,10 @@ functionCall2: functionCallPlayerRandomFolder ``` ### Short and long jumps + If you are using two buttons to jump backwards or forwards within the current track, you can use the repeated hold action to allow larger jumps: -``` + +```bash [SkipForward] enabled: True Type: Button @@ -217,12 +241,14 @@ hold_mode: SecondFuncRepeat functionCall: functionCallPlayerSeekFwd functionCall2: functionCallPlayerSeekFarFwd ``` + In this example, a short press initiates a short jump forward by 10 seconds (functionCallPlayerSeekFwd) while holding the button will cause further, longer jumps. In this case it will cause a jump of 1 minute forward (functionCallPlayerSeekFarFwd) every 5 seconds. If you wish, you can adjust these values in `components/gpio_control/function_calls.py`. For jumping backwards, this can be done equivalently (see [function list below](#doc_funcs)). +## Functions -## Functions The available functions are defined/implemented in `components/gpio_control/function_calls.py`: + * **functionCallShutdown**: System shutdown * **functionCallVolU**: Volume up * **functionCallVolD**: Volume down @@ -244,10 +270,11 @@ The available functions are defined/implemented in `components/gpio_control/func * **functionCallPlayerRandomCard**: Activate a random card * **functionCallPlayerRandomFolder**: Play a random folder -## Troubleshooting +## Troubleshooting + If you encounter bouncing effects with your buttons like unrequested/double actions after releasing a button, you can try to set `antibouncehack` to True: -``` +```bash [NextSong] enabled: True Type: Button @@ -258,8 +285,7 @@ antibouncehack: True Instead of adding this to each button, you can also define it as default for all elements, by inserting the statement into the `Default` section which can be found at the beginning of the `~/RPi-Jukebox-RFID/settings/gpio_settings.ini` file: - -``` +```bash [DEFAULT] enabled: True antibouncehack: True diff --git a/components/rfid-reader/PN532/README.md b/components/rfid-reader/PN532/README.md index ab8a2fead..6cf747c29 100644 --- a/components/rfid-reader/PN532/README.md +++ b/components/rfid-reader/PN532/README.md @@ -8,7 +8,6 @@ Similar shields/breakout boards, based on the same chip might work, but have not It has been tested with the I2C interface. Using SPI might work as well, but it has not been tested. - 1. Connect the PN532 RFID reader to the GPIO pins | PN532 | Raspberry Pi | Raspi Pins | @@ -33,7 +32,6 @@ It has been tested with the I2C interface. Using SPI might work as well, but it - check `sudo i2cdetect -y 1` - output should look like this: - 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- diff --git a/components/smart-home-automation/MQTT-protocol/README.md b/components/smart-home-automation/MQTT-protocol/README.md index c1093a0fd..da00394b7 100644 --- a/components/smart-home-automation/MQTT-protocol/README.md +++ b/components/smart-home-automation/MQTT-protocol/README.md @@ -6,16 +6,17 @@ This module will integrate Phoniebox into a Smart Home environment and make it r # Use Cases * let your Smart Home control Phoniebox based on time schedules - * disable wifi in the evening when Phoniebox is used as a sleeping device - * shutdown at night when it's finally bedtime - * lower the volume in the mornings (to keep you asleep) + * disable wifi in the evening when Phoniebox is used as a sleeping device + * shutdown at night when it's finally bedtime + * lower the volume in the mornings (to keep you asleep) * control Phoniebox via Voice Assistants like [Rhasspy](https://github.com/rhasspy/rhasspy) (which also uses MQTT!), Google Home, Amazon Echo,... * let Phoniebox play an informational note to your kids that the weather outside is great and they should consider going outside (if your Smart Home has weather-based sensors) * run statistics on when and how your kid uses Phoniebox - * arrange terms with your kid how long the Phoniebox can be used (e.g. max. 2h per day) - * monitor if your kid complies with those terms or enforce them if need be + * arrange terms with your kid how long the Phoniebox can be used (e.g. max. 2h per day) + * monitor if your kid complies with those terms or enforce them if need be # How it works + Phoniebox' MQTT client connects to the MQTT server that is defined in the `SETTINGS` section of the script itself. It is able to connect by authenticating... 1) with username and password @@ -26,121 +27,129 @@ Please check your MQTT server configuration regarding which authentication metho Phoniebox' MQTT client will do the following things: 1. at startup send state and version info about Phoniebox to - - `phoniebox/version` (e.g. 1.2-rc1) - - `phoniebox/edition` (e.g. classic) - - `phoniebox/state` (online) - - `phoniebox/disk_total` (disk size in Gigabytes) - - `phoniebox/disk_avail` (available disk size in Gigabytes) + * `phoniebox/version` (e.g. 1.2-rc1) + * `phoniebox/edition` (e.g. classic) + * `phoniebox/state` (online) + * `phoniebox/disk_total` (disk size in Gigabytes) + * `phoniebox/disk_avail` (available disk size in Gigabytes) 2. at shutdown send state info to - - `phoniebox/state` (offline) + * `phoniebox/state` (offline) 3. periodically send *all* attributes to `phoniebox/attribute/$attributeName` (this interval can be defined through `refreshIntervalPlaying` and `refreshIntervalIdle` in the `SETTINGS` section) 4. send specific events to `phoniebox/event/$eventName` right away 5. listen for attribute requests on `phoniebox/get/$attribute` 6. listen for commands on `phoniebox/cmd/$command` (if a command needs a parameter it has to be provided via payload) ## Topic: phoniebox/event/$event + This is a read-only topic. The following events trigger immediate messages through this topic: -- card_swiped +* card_swiped Use these topics to get notified of time-critical events right away rather than having to wait for the periodic send of all attributes or requesting an attribute through the get topic. Currently the only event triggering a message is the "card_swiped" event with the obvious use-case of letting your smart home react upon swiped cards. These cards needn't be configured in Phoniebox as the MQTT daemon will just relay any swiped card to the MQTT server. So it's possible to have a "dim lights" card that will not trigger any Phoniebox action but is picked up by your smart home to dim the lights. ## Topic: phoniebox/get/$attribute -MQTT clients can (additionally to the periodic updates) request an attribute of Phoniebox. Sending an empty payload to `phoniebox/get/volume` will trigger Phoniebox' MQTT client to fetch the current volume from MPD and send the result to `phoniebox/attribute/volume`. + +MQTT clients can (additionally to the periodic updates) request an attribute of Phoniebox. Sending an empty payload to `phoniebox/get/volume` will trigger Phoniebox' MQTT client to fetch the current volume from MPD and send the result to `phoniebox/attribute/volume`. ### Possible attributes -- volume -- mute -- repeat -- repeat_mode [off / single / playlist] -- random -- state -- file -- artist -- albumartist -- title -- album -- track -- elapsed -- duration -- trackdate -- last_card -- maxvolume -- volstep -- idletime -- rfid (status of rfid service [true/false]) -- gpio (status of gpio service [true/false]) -- remaining_stopafter [minutes left until "stop" is triggered] -- remaining_shutdownafter [minutes left until shutdown] -- remaining_idle [minutes left for the idle shutdown timer] -- throttling -- temperature + +* volume +* mute +* repeat +* repeat_mode [off / single / playlist] +* random +* state +* file +* artist +* albumartist +* title +* album +* track +* elapsed +* duration +* trackdate +* last_card +* maxvolume +* volstep +* idletime +* rfid (status of rfid service [true/false]) +* gpio (status of gpio service [true/false]) +* remaining_stopafter [minutes left until "stop" is triggered] +* remaining_shutdownafter [minutes left until shutdown] +* remaining_idle [minutes left for the idle shutdown timer] +* throttling +* temperature ### Help + Sending empty payload to `phoniebox/get/help` will be responded by a list of all possible attributes to `phoniebox/available_attributes` ## Topic: phoniebox/cmd/$command + MQTT clients can send commands to Phoniebox. Sending an empty payload to `phoniebox/cmd/volumeup` will trigger Phoniebox' MQTT client to execute that command. If the command needs a parameter it has to be provided in the payload (e.g. for `setmaxvolume` a payload with the maximum volume is required). ### Possible commands -- volumeup -- volumedown -- mute -- playerplay -- playerpause -- playernext -- playerprev -- playerstop -- playerrewind -- playershuffle -- playerreplay -- scan -- shutdown -- shutdownsilent -- reboot -- disablewifi + +* volumeup +* volumedown +* mute +* playerplay +* playerpause +* playernext +* playerprev +* playerstop +* playerrewind +* playershuffle +* playerreplay +* scan +* shutdown +* shutdownsilent +* reboot +* disablewifi ### Possible commands (that require a parameter!) -- setvolume [0-100] -- setvolstep [0-100] -- setmaxvolume [0-100] -- setidletime [in minutes] -- playerseek [e.g. +20 for 20sec ahead or -12 for 12sec back] -- shutdownafter [in minutes; 0 = remove timer] -- playerstopafter [in minutes] -- playerrepeat [off / single / playlist] -- rfid [start / stop] -- gpio [start / stop] -- swipecard [card ID] -- playfolder [folder name (not path)] -- playfolderrecursive [folder name (not path)] + +* setvolume [0-100] +* setvolstep [0-100] +* setmaxvolume [0-100] +* setidletime [in minutes] +* playerseek [e.g. +20 for 20sec ahead or -12 for 12sec back] +* shutdownafter [in minutes; 0 = remove timer] +* playerstopafter [in minutes] +* playerrepeat [off / single / playlist] +* rfid [start / stop] +* gpio [start / stop] +* swipecard [card ID] +* playfolder [folder name (not path)] +* playfolderrecursive [folder name (not path)] ### Help + Sending empty payload to `phoniebox/cmd/help` will be responded by a list of all possible commands to `phoniebox/available_commands` and `phoniebox/available_commands_with_params` # Installation Install missing python packages for MQTT: -~~~ +~~~bash sudo python3 -m pip install --upgrade --force-reinstall -q -r requirements.txt ~~~ All relevant files can be found in the folder: -~~~ +~~~bash components/smart-home-automation/MQTT-protocol/ ~~~ ## Auto-Starting the daemon at bootup * The daemon is run by executing the script `daemon_mqtt_client.py` which will run in an endless loop. -* There's a sample service file (`phoniebox-mqtt-client.service.stretch-default.sample`) that can be used to register the daemon to be run at bootup. +* There's a sample service file (`phoniebox-mqtt-client.service.stretch-default.sample`) that can be used to register the daemon to be run at bootup. * It is currently not integrated into the one-line-install script so please run the following commands to do it manually. First step: copy files to destination locations: -~~~ +~~~bash # First copy the daemon script and service config file to the correct directory: sudo cp /home/pi/RPi-Jukebox-RFID/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py /home/pi/RPi-Jukebox-RFID/scripts/ sudo cp /home/pi/RPi-Jukebox-RFID/components/smart-home-automation/MQTT-protocol/phoniebox-mqtt-client.service.stretch-default.sample /etc/systemd/system/phoniebox-mqtt-client.service @@ -148,7 +157,7 @@ sudo cp /home/pi/RPi-Jukebox-RFID/components/smart-home-automation/MQTT-protocol Now edit the `SETTINGS` section in `/home/pi/RPi-Jukebox-RFID/scripts/daemon_mqtt_client.py` to match your environment (MQTT connection details etc.). Now continue and activate the service. -~~~ +~~~bash # Now systemd has to be notified that there's a new service file: sudo systemctl daemon-reload diff --git a/docs/FIRMWARE_UPDATE.md b/docs/FIRMWARE_UPDATE.md index ac88c3fae..d3ad0f879 100644 --- a/docs/FIRMWARE_UPDATE.md +++ b/docs/FIRMWARE_UPDATE.md @@ -3,26 +3,37 @@ **This has not been tested yet**: The analogue audio out quality of the RPi3 is horrible. Learn more about the [impact of the firmware update in the raspberry forum](https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=167934). In the same forum you can find information on the [firmaware update effect on the analogue audio out](https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=136445). If you were to try to update the firmware, now would be the right moment. I tried the firmware update successfully, but haven't yet built a Phoniebox on top of it. So if you are new to the RPi, skip the following lines and go to the next chapter, configuring your keyboard. Open a terminal window and update the firmware typing: -~~~~ + +~~~~bash sudo rpi-update ~~~~ + Then reboot the machine: -~~~~ + +~~~~bash sudo reboot ~~~~ + Now open the terminal window again. The howto suggests to switch off the HDMI audio out: -~~~~ + +~~~~bash amixer cset numid=3 1 ~~~~ + Open the config file with: -~~~~ + +~~~~bash sudo nano /boot/config.txt ~~~~ + and add the following line: -~~~~ + +~~~~bash audio_pwm_mode=2 ~~~~ + Better safe than sorry, reboot the machine once more: -~~~~ + +~~~~bash sudo reboot ~~~~ diff --git a/docs/GPIO-BUTTONS.md b/docs/GPIO-BUTTONS.md index 813d83dcc..134cb8df2 100644 --- a/docs/GPIO-BUTTONS.md +++ b/docs/GPIO-BUTTONS.md @@ -1,5 +1,7 @@ Deprecated, please see [wiki](/wiki) for the latest version + --------------------------------------------- + # Control Jukebox with buttons / GPIO (Other docs: [Installation](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/INSTALL-stretch) | @@ -9,7 +11,7 @@ Deprecated, please see [wiki](/wiki) for the latest version **Add buttons to your jukebox to control volume, skip tracks and more.** Before we start: -One of the plus points about this projects, at least in my mind, +One of the plus points about this projects, at least in my mind, was the fact that you don't need a soldering iron to build it. Everything is USB, plug and play, thank you, boot and go. @@ -22,7 +24,7 @@ confirmation that this works :) Enough said, here we go. ---- +--------------------------------------------- ## Pin numbering on the RPi @@ -73,22 +75,22 @@ There are a number of different ways to connect a button. The easiest one is wel We need to run [GPIO Zero](https://gpiozero.readthedocs.io/en/stable/), a simple interface to GPIO devices with Raspberry Pi. GPIO Zero is installed by default in Raspbian Jessie. To install see the [installing](https://gpiozero.readthedocs.io/en/stable/installing.html) chapter on their site. Better safe than sorry, so lets install the packages on our machine: -~~~ -$ sudo apt-get install python3-gpiozero python-gpiozero +~~~bash +sudo apt-get install python3-gpiozero python-gpiozero ~~~ **Note**: No harm done to install both, python3 and python2. This needs trimming later on. Make a copy of the [python script for the GPIO buttons](../misc/sampleconfigs/gpio-buttons.py.sample) into the scripts folder. This way you are free to make changes to the script without changing your github repo. -~~~ -$ sudo cp /home/pi/RPi-Jukebox-RFID/misc/sampleconfigs/gpio-buttons.py.sample /home/pi/RPi-Jukebox-RFID/scripts/gpio-buttons.py +~~~bash +sudo cp /home/pi/RPi-Jukebox-RFID/misc/sampleconfigs/gpio-buttons.py.sample /home/pi/RPi-Jukebox-RFID/scripts/gpio-buttons.py ~~~ And change the copy to be executable -~~~ -$ sudo chmod +x /home/pi/RPi-Jukebox-RFID/scripts/gpio-buttons.py +~~~bash +sudo chmod +x /home/pi/RPi-Jukebox-RFID/scripts/gpio-buttons.py ~~~ **Note**: work in progress: the [python script for the GPIO buttons](../misc/sampleconfigs/gpio-buttons.py.sample) will be explained when I get to it. diff --git a/docs/INSTALL-COMPLETE-GUIDE.md b/docs/INSTALL-COMPLETE-GUIDE.md index c7dd7c829..696d2d813 100644 --- a/docs/INSTALL-COMPLETE-GUIDE.md +++ b/docs/INSTALL-COMPLETE-GUIDE.md @@ -1,14 +1,15 @@ # How to set up a Phoniebox from scratch -1. [What you need](#1-what-you-need) -1. [Install Raspberry Pi OS](#2-install-raspberry-pi-os) -1. [Initial Boot](#3-initial-boot) -1. [Prepare hardware](#4-prepare-hardware) -1. [Audio](#5-audio) - * [a) On-board headphone](#5a-on-board-headphone) - * [b) USB sound card](#5b-usb-sound-card) -1. [Install Phoniebox software](#6-install-phoniebox-software) -1. [Verify Phoniebox setup](#7-verify-phoniebox-setup) +- [How to set up a Phoniebox from scratch](#how-to-set-up-a-phoniebox-from-scratch) + - [1. What you need](#1-what-you-need) + - [2. Install Raspberry Pi OS](#2-install-raspberry-pi-os) + - [3. Initial Boot](#3-initial-boot) + - [4. Prepare hardware](#4-prepare-hardware) + - [5. Audio](#5-audio) + - [5a. On-board headphone](#5a-on-board-headphone) + - [5b. USB sound card](#5b-usb-sound-card) + - [6. Install Phoniebox software](#6-install-phoniebox-software) + - [7. Verify Phoniebox setup](#7-verify-phoniebox-setup) --- @@ -18,26 +19,26 @@ All parts marked with a star (*) are optional but improve the overall experience 1. [Micro SD Card](https://amzn.to/3do7KJr) (e.g. 32 GB) 1. Raspberry Pi - * [Model 3 B+](https://amzn.to/2NGL7Fa) - recommended - * [Model 4 B](https://amzn.to/2M0xtfJ) - could be a little overhead - * (Model 1, 2, 3 and Zero are possible, but they are slower...) + - [Model 3 B+](https://amzn.to/2NGL7Fa) - recommended + - [Model 4 B](https://amzn.to/2M0xtfJ) - could be a little overhead + - (Model 1, 2, 3 and Zero are possible, but they are slower...) 1. [USB RFID Reader](https://amzn.to/3s47Iun) 1. [RFID Chips](https://amzn.to/3k78F2j) or [RFID Cards](https://amzn.to/3dplljG) 1. [Speakers with 3.5mm jack](https://amzn.to/3dnhmnV) To improve the sound, we recommend: -* [Ground Loop Isolator](https://amzn.to/37nyZjK) * +- [Ground Loop Isolator](https://amzn.to/37nyZjK) * Alternatively you can use an external sound card, but sometimes that doesn't seem to improve much: -* [USB Sound Card](https://amzn.to/3djaKqC) * - [Alternative](https://amzn.to/3u8guth) +- [USB Sound Card](https://amzn.to/3djaKqC) * - [Alternative](https://amzn.to/3u8guth) --- ## 2. Install Raspberry Pi OS -Before you can install the Phoniebox software, you need to prepare your Raspberry Pi and install +Before you can install the Phoniebox software, you need to prepare your Raspberry Pi and install 1. Connect your Micro SD card (through a card reader) to your computer 1. [Download](https://www.raspberrypi.org/software/) the [Raspberry Pi Imager](https://www.raspberrypi.org/blog/raspberry-pi-imager-imaging-utility/) and open it @@ -56,20 +57,27 @@ You will need a terminal, like PuTTY for Windows or the Terminal for Mac to proc 1. Insert your card again if it has been ejected automatically 1. Navigate to your SC card e.g., `cd /Volumes/boot` for Mac or `D:` for Windows 1. Enable SSH by adding a simple file - ``` + + ```bash $ touch ssh ``` + 1. Set up your Wifi connection - * Mac - ``` + - Mac + + ```bash $ nano wpa_supplicant.conf ``` - * Windows - ``` + + - Windows + + ```bash D:\> notepad wpa_supplicant.conf ``` + 1. Insert the following content, update your country, Wifi credentials and save the file. - ``` + + ```bash country=DE ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 @@ -79,27 +87,36 @@ You will need a terminal, like PuTTY for Windows or the Terminal for Mac to proc psk="network-password" } ``` + 1. Eject your SD card and insert it into your Raspberry Pi 1. Start your Raspberry Pi by attaching a power supply 1. Login into your Raspberry Pi, username is `pi` and password is `raspberry`. If `raspberrypi.local` does not work, find out your Raspberry Pi's IP address from your router. - ``` + + ```bash $ ssh pi@raspberrypi.local ``` + 1. Update the Pi's software. This may take a bit - ``` + + ```bash $ sudo apt update && sudo apt full-upgrade ``` + 1. Reboot with `sudo reboot` 1. Login again with SSH and open the Raspberry Pi config - ``` + + ```bash $ sudo raspi-config ``` + 1. Update the following settings - ``` + + ```bash 1 System Options S5 Boot / Auto Login -> B2 Console Autologin S6 Network at Boot -> Yes ``` + 1. Close the settings panel with `` 1. Shutdown your Raspberry Pi with `sudo shutdown` @@ -112,7 +129,8 @@ You will need a terminal, like PuTTY for Windows or the Terminal for Mac to proc 1. Plug in the 3.5" speakers with the Ground Loop Isolator in between. If you have chosen the example speakers from above, you can power them either through the Raspberry Pi or through an external power source. 1. Boot your Raspberry Pi 1. Open a terminal in your second computer and login via SSH using the `pi` user and default password `raspberry`. If you see a question about authentication and fingerprint, type `yes` and hit `enter` - ``` + + ```bash ssh pi@raspberrypi.local ``` @@ -128,22 +146,28 @@ Also see [Troubleshooting: headphone audio unavailable after unplugging HDMI](ht ### 5b. USB sound card 1. Open the Raspberry Pi config - ``` + + ```bash $ sudo raspi-config ``` 1. Update the following settings - ``` + + ```bash 1 System Options S2 Audio -> 1 USB Audio ``` + 1. Close the settings panel with `` 1. Make your soundcard the primary sound device. To update the sound card priority order, edit the following file: - ``` + + ```bash $ sudo nano /usr/share/alsa/alsa.conf ``` + 1. Find the following variables and change their value from `0` to `1` - ``` + + ```bash defaults.ctl.card 0 defaults.pcm.card 0 @@ -152,9 +176,11 @@ Also see [Troubleshooting: headphone audio unavailable after unplugging HDMI](ht defaults.ctl.card 1 defaults.pcm.card 1 ``` + 1. Reboot 1. Test your audio! Check if you hear white noise in stereo when running the following command from your connected speakers. If not, refer to this [resource](https://learn.adafruit.com/usb-audio-cards-with-a-raspberry-pi/instructions) to troubleshoot. - ``` + + ```bash speaker-test -c2 ``` @@ -166,7 +192,7 @@ If you want to install the **Spotify+ version**, [read this first](https://githu Run the following command in your SSH terminal and follow the instructions -``` +```bash cd; rm buster-install-*; wget https://raw.githubusercontent.com/MiczFlor/RPi-Jukebox-RFID/master/scripts/installscripts/buster-install-default.sh; chmod +x buster-install-default.sh; ./buster-install-default.sh ``` diff --git a/docs/UPGRADE.md b/docs/UPGRADE.md index 69d00aa90..f7e173255 100755 --- a/docs/UPGRADE.md +++ b/docs/UPGRADE.md @@ -25,7 +25,7 @@ We introduce Phoniebox Editions. To distinguish them, we call them "Phoniebox Cl **Please use our [spotify thread](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/18) to post improvements regarding this feature.** -~~~ +~~~bash cd /home/pi/RPi-Jukebox-RFID git checkout master git fetch origin @@ -110,7 +110,7 @@ Not much has changed in the core of this version. There is the new feature: Inte Upgrading is therefore fairly simple. The following will overwrite any local changes to your code but NOT to your configruation files and systemd services, GPIO and the like. Only core code: -~~~ +~~~bash cd /home/pi/RPi-Jukebox-RFID git checkout master git fetch origin @@ -120,12 +120,12 @@ git pull # Upgrade from Version 1.1.1 to 1.1.6 -A few important bug fixes. And a new design. +A few important bug fixes. And a new design. And the option to decide what the 'second swipe' of a card does (see settings in the web app). The following should get you all you need, without running the install script if you -only want to upgrade. +only want to upgrade. -~~~ +~~~bash cd /home/pi/RPi-Jukebox-RFID git checkout master git fetch origin @@ -146,7 +146,8 @@ sudo systemctl enable rfid-reader # Upgrade from Version 1.0.0 to 1.1.1 This upgrade brings the web app UI for file management, recursive folder management, wifi switch off and more. The latest [one-line Phoniebox install script](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/CONFIGURE-stretch#oneLineInstall) contains all the necessary steps, but will treat your upgrade like a new install. Manual upgrade: -~~~ + +~~~bash cd cd /home/pi/RPi-Jukebox-RFID git fetch @@ -168,6 +169,7 @@ sudo service php7.0-fpm restart As of version 1.0 there is a much simpler install procedure: copy and paste one line into your terminal and hit *enter*. Find out more about the [one-line Phoniebox install script](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/CONFIGURE-stretch#oneLineInstall). # Upgrade from 0.9.5 to 0.9.7 + * Adding a *Settings* page in the web app to control features like 'idle shutdown' and 'max volume' and toggle systemd services * Documentation / troubleshooting / tricks: how to install via ssh, improve on board audio quality and the like * Adding auto shutdown when idle for longer than x minutes (see [manual](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/MANUAL#settings) for details) @@ -175,7 +177,8 @@ As of version 1.0 there is a much simpler install procedure: copy and paste one * Fixing bug: settings volume for stereo audio iFace * Fixing bug: bash code compatible with all shells * Web app enhancements (audio level, display 'playing now') -~~~ + +~~~bash # services to launch after boot using systmed sudo cp /home/pi/RPi-Jukebox-RFID/misc/sampleconfigs/phoniebox-idle-watchdog.service.sample /etc/systemd/system/phoniebox-idle-watchdog.service sudo chown root:root /etc/systemd/system/phoniebox-idle-watchdog.service @@ -188,11 +191,12 @@ sudo systemctl start phoniebox-idle-watchdog.service ~~~ # Upgrade from 0.9.4 to 0.9.5 + * Configuration of RFID card control in extra file `settings/rfid_trigger_play.conf` * Playout control config now uses `settings` folder to store iFace value (e.g. PCM) and percentage of relative volume change * both bash scripts `scripts/rfid_trigger_play.sh` and `scripts/playout_controls.sh` are not created from `.sample` versions anymore, because the config has been moved to external files. -~~~ +~~~bash # make backups of the current scripts mv /home/pi/RPi-Jukebox-RFID/scripts/rfid_trigger_play.sh /home/pi/RPi-Jukebox-RFID/scripts/rfid_trigger_play.sh.backup.0.9.4 mv /home/pi/RPi-Jukebox-RFID/scripts/playout_controls.sh /home/pi/RPi-Jukebox-RFID/scripts/playout_controls.sh.backup.0.9.4 @@ -210,9 +214,11 @@ sudo chmod 775 /home/pi/RPi-Jukebox-RFID/settings/rfid_trigger_play.conf ~~~ # Upgrade to 0.9.4 + * The following script refers to the OS version 'Stretch' in some places but this should also work for 'Jessie'. * OS 'Stretch' and 'Jessie' require different `lighttpd.conf` parameters. Samples can be found in `misc/sampleconfigs` -~~~ + +~~~bash # make backups of the current scripts cp /home/pi/RPi-Jukebox-RFID/scripts/rfid_trigger_play.sh /home/pi/RPi-Jukebox-RFID/scripts/rfid_trigger_play.sh.backup.0.9.3 cp /home/pi/RPi-Jukebox-RFID/scripts/playout_controls.sh /home/pi/RPi-Jukebox-RFID/scripts/playout_controls.sh.backup.0.9.3 diff --git a/docs/WLAN-ACCESS-POINT.md b/docs/WLAN-ACCESS-POINT.md index 32049c809..8558f6f42 100644 --- a/docs/WLAN-ACCESS-POINT.md +++ b/docs/WLAN-ACCESS-POINT.md @@ -14,21 +14,26 @@ supports this mode. RPi3 does. Install two packages we need later. Later meaning: when we might not have Internet anymore. Because the wlan0 interface will be set to a static IP to create the access point. -``` + +```bash sudo apt-get update sudo apt-get install dnsmasq hostapd ``` + ## Configure the network Using jessie, dhcpd is activated by default. This dhcp daemon is assigning IP addresses to devices which want to connect to the Phoniebox. Set the IP address for the wlan card by opening: -``` + +```bash sudo nano /etc/network/interfaces ``` + Replace the existing content with the following lines: -``` + +```bash # Localhost auto lo iface lo inet loopback @@ -43,16 +48,21 @@ iface wlan0 inet static address 192.168.1.1 netmask 255.255.255.0 ``` + Now, the wlan is set to the IP address `192.168.1.1`. We add one line to the dhcpd config file: -``` + +```bash sudo nano /etc/dhcpcd.conf ``` + Append the line: -``` + +```bash denyinterfaces wlan0 ``` + Now we reboot and afterwards you should be connected to your RPi directly, not via ssh. Because if your RPi relied on a WiFi connection to the Internet, this will be cut off. Remember: we need the wlan0 interface to hook up other devices to a WiFi network the @@ -62,7 +72,7 @@ Let's check if all interfaces are up and running. We only really need the wlan0 but if eth0 is also up and is connected to the Internet, your Phoniebox will be online and all devices connected to it. Type in the command line: -``` +```bash ip a ``` @@ -73,17 +83,19 @@ monitor. Reboot. -``` +```bash sudo reboot ``` ## dhcp server configuration -``` +```bash sudo nano /etc/dnsmasq.conf ``` + The following lines are the minimal configuration required. -``` + +```bash # interface which is active interface=wlan0 @@ -99,31 +111,42 @@ dhcp-option=option:dns-server,192.168.1.1 Check the configuration before you start the dhcp server and cache. -``` + +```bash dnsmasq --test -C /etc/dnsmasq.conf ``` + This should return 'OK'. Now start `dnsmasq`: -``` + +```bash sudo systemctl restart dnsmasq ``` + Check if it is up and running: -``` + +```bash sudo systemctl status dnsmasq ``` + Now install dnsmasq to start after boot: -``` + +```bash sudo systemctl enable dnsmasq ``` ## configure hostapd + To assign ssid and password, we need to configure `hostapd`. -``` + +```bash sudo nano /etc/hostapd/hostapd.conf ``` + Replace the content of this file (if it already exists) with the following content. -``` + +```bash # interface and driver interface=wlan0 #driver=nl80211 @@ -144,24 +167,31 @@ wpa_key_mgmt=WPA-PSK rsn_pairwise=CCMP wpa_passphrase=Pl4yM3N0w ``` + The network will be listed as `Phoniebox` and the password to connect to the network is `Pl4yM3N0w` (as in 'play me now' with a number four and a number three and a zero). If you want a different ssid and/or password, edit the lines above. This file contains a password in raw text, so make sure only root can read it. -``` + +```bash sudo chmod 600 /etc/hostapd/hostapd.conf ``` -Check if this setup is correct. Open + +Check if this setup is correct. Open the wlan host in debug mode and read through the results. -``` + +```bash sudo hostapd -dd /etc/hostapd/hostapd.conf ``` + Scroll up to see if you can find these two lines anywhere: -``` + +```bash wlan0: interface state COUNTRY_UPDATE->ENABLED wlan0: AP-ENABLED ``` + If yes, you can also try to hook up a device with the network already. See if you can find `Phoniebox` as a WiFi network. @@ -169,26 +199,33 @@ See if you can find `Phoniebox` as a WiFi network. If that works, all is well. Stop the `hostapd` daemon with `Ctrl&C`. Before we can start `hostapd` on boot, we have to add a few lines -in the config file to specify +in the config file to specify the location of the config file. -``` + +```bash sudo nano /etc/default/hostapd ``` + Add these lines: -``` + +```bash RUN_DAEMON=yes DAEMON_CONF="/etc/hostapd/hostapd.conf" ``` + And start `hostapd` with the following commands: -``` + +```bash sudo systemctl start hostapd sudo systemctl enable hostapd ``` + Check if the daemon is up and running: -``` + +```bash sudo systemctl status hostapd ``` + This concludes what we need to connect to the Phoniebox directly via WiFi. If you plan to connect the `eth0` via a cable with the Internet, you need to learn about firewall configurations. Google how to do this (I hope to replace this last paragraph with a nicer explanation and a link later, when I find the time. Apologies.) - From fcad65883a5c3c1e238a963e06755fc81b4f7658 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Nov 2022 22:07:59 +0100 Subject: [PATCH 203/206] Bump phpunit/phpunit from 9.5.25 to 9.5.26 (#1905) Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.5.25 to 9.5.26. - [Release notes](https://github.com/sebastianbergmann/phpunit/releases) - [Changelog](https://github.com/sebastianbergmann/phpunit/blob/main/ChangeLog-9.5.md) - [Commits](https://github.com/sebastianbergmann/phpunit/compare/9.5.25...9.5.26) --- updated-dependencies: - dependency-name: phpunit/phpunit dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- composer.lock | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/composer.lock b/composer.lock index fcdacad0e..fbcfe6e49 100644 --- a/composer.lock +++ b/composer.lock @@ -504,16 +504,16 @@ }, { "name": "phpunit/php-code-coverage", - "version": "9.2.17", + "version": "9.2.18", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "aa94dc41e8661fe90c7316849907cba3007b10d8" + "reference": "12fddc491826940cf9b7e88ad9664cf51f0f6d0a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/aa94dc41e8661fe90c7316849907cba3007b10d8", - "reference": "aa94dc41e8661fe90c7316849907cba3007b10d8", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/12fddc491826940cf9b7e88ad9664cf51f0f6d0a", + "reference": "12fddc491826940cf9b7e88ad9664cf51f0f6d0a", "shasum": "" }, "require": { @@ -569,7 +569,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.17" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.18" }, "funding": [ { @@ -577,7 +577,7 @@ "type": "github" } ], - "time": "2022-08-30T12:24:04+00:00" + "time": "2022-10-27T13:35:33+00:00" }, { "name": "phpunit/php-file-iterator", @@ -822,16 +822,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.5.25", + "version": "9.5.26", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "3e6f90ca7e3d02025b1d147bd8d4a89fd4ca8a1d" + "reference": "851867efcbb6a1b992ec515c71cdcf20d895e9d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3e6f90ca7e3d02025b1d147bd8d4a89fd4ca8a1d", - "reference": "3e6f90ca7e3d02025b1d147bd8d4a89fd4ca8a1d", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/851867efcbb6a1b992ec515c71cdcf20d895e9d2", + "reference": "851867efcbb6a1b992ec515c71cdcf20d895e9d2", "shasum": "" }, "require": { @@ -904,7 +904,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.25" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.26" }, "funding": [ { @@ -920,7 +920,7 @@ "type": "tidelift" } ], - "time": "2022-09-25T03:44:45+00:00" + "time": "2022-10-28T06:00:21+00:00" }, { "name": "sebastian/cli-parser", From afeea5ed68f9222f2ffa5de8fa996e2c912423ec Mon Sep 17 00:00:00 2001 From: s-martin Date: Sun, 18 Dec 2022 22:17:04 +0100 Subject: [PATCH 204/206] Update README.md for 2.4 (#1904) * fix flake8 warnings * fix markdownlint * fix markdown lint warnings * merge recent updates in install script buster-install-default-with-autohotspot.sh * fix flake8 warnings * prepare README.md for 2.4 release and little cleanup --- README.md | 44 ++++------ scripts/Reader.py.experimental | 2 +- scripts/Reader.py.experimental.Multi | 1 + scripts/Reader.py.pcsc | 5 +- scripts/helperscripts/cli-player.py | 1 - scripts/helperscripts/organizeFiles.py | 2 +- ...buster-install-default-with-autohotspot.sh | 86 +++++++++++-------- 7 files changed, 72 insertions(+), 69 deletions(-) diff --git a/README.md b/README.md index 2bb532e68..785afb260 100755 --- a/README.md +++ b/README.md @@ -14,11 +14,11 @@ A contactless jukebox for the Raspberry Pi, playing audio files, playlists, podc This means Phoniebox can not communicate with Spotify via libspotify (and mopidy-spotify) anymore. The problem is not our code but the cut off by Spotify. -We want Phoniebox users to be able to connect their box to their Spotify accounts and play their content. +>We want Phoniebox users to be able to connect their box to their Spotify accounts and play their content. The possibilities Spotify offers are -- at first glance -- not supporting an integration with Phoniebox. Third party projects like [librespot-java](https://github.com/librespot-org/librespot-java) enter a grey zone regarding violation of Spotify's *Terms of Services* (ToS). For a potential Spotify re-integration, we are committed to a Spotify ToS compliant way of doing so (both in Version 2 and Version 3). This means looking into the (relatively new) Spotify Playback API, which is going to take an unknown amount of time. -This leaves us in a pickle and we are happy to hear from developer talent in the Phoniebox community on how to move forward regarding Phoniebox. +>This leaves us in a pickle and we are happy to hear from developer talent in the Phoniebox community on how to move forward regarding Phoniebox. We are also curious to learn about alternative services we can connect with and which you would like to see supported -- or have developed support for already: @@ -28,6 +28,8 @@ Another bunch of wonderful designs! 2022 is the fourth Phoniebox calendar. If yo ![The 2022 Phoniebox Calendar](docs/2022-Phoniebox-Calendar.jpg "The 2022 Phoniebox Calendar") +If you want to be featured on next years calendar, please make sure to add your Phoniebox pics to the [design thread here on github](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/639). + --- ## Install latest Phoniebox version @@ -75,31 +77,25 @@ If you seek the adventure, your support will be more then welcome. Before contri * **Phoniebox [future3 Beta](https://rpi-jukebox-rfid.readthedocs.io/en/latest/) released (2022-02)** * **Gitter Community** we got ourselves a gitter community; chat us up at -* **Phoniebox [2.3](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/6?closed=1) released (2021-08-12)** +* **Phoniebox [2.4](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/7?closed=1) released (2022-11-xx)** -The [2.3](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/6?closed=1) release was pushed through the doors with many contributors: [List of all contributors](https://github.com/MiczFlor/RPi-Jukebox-RFID/graphs/contributors) +The [2.4](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/7?closed=1) release was pushed through the doors with many contributors: [List of all contributors](https://github.com/MiczFlor/RPi-Jukebox-RFID/graphs/contributors) -## What's new in version 2.3? +## What's new in version 2.4? + +* 🔥 Finally fixed the annoying `evdev` bug during installation (fixes e.g. #1721, #1653, #1618, #1501 and MANY more) +* Flexible PHP version in install script (makes sure Raspian Bullseye can be used) #1849 +* Publish "card swiped" event via MQTT #1496 +* Right now Spotify integration **still doesn't work** - please follow the discussion at -* Improved [installation guide](docs/INSTALL-COMPLETE-GUIDE.md) -* Holding buttons feature fixed #1406 -* Bluetooth buttons and headphones toggle #1262 -* fixed stop on removal for RC522 #1122 -* USB Encoder buttons support for anyone who dors not want to solder... -* Improved robustness and better documentation for [GPIO control](components/gpio_control/README.md) -* Auto convert wrong Spotify URLs to a format Mopidy understands -* Support for PC/SC-readers -* Removed support for Raspian Stretch * Lots of fixed bugs and minor improvements... **What's still hot?** -* :fire: **Fixed location of gpio_settings.ini** for [GPIO control](components/gpio_control/README.md) +* [GPIO control](components/gpio_control/README.md) * Added support for files with embedded chapters metada (like m4a) enhancement * Added customizable poweroff command bash enhancement -* Finally fixed resume function... -* Lots of fixed bugs and minor improvements... - * Status LED, Rotary Button, Volume Up/Down, custom music directory for +Spotify, Startup sound volume +* Support for PC/SC-readers * The constantly improved **one-line install script** handles both **Classic** and **+Spotify** when [setting up your Phoniebox](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/INSTALL-stretch#one-line-install-command) * integrated improved [GPIO control](components/gpio_control/README.md) * integrated selection of RFID readers and uses [multiple readers](https://github.com/MiczFlor/RPi-Jukebox-RFID/pull/1012#issue-434052529) simultaneously @@ -108,7 +104,7 @@ The [2.3](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/6?closed=1) rel * RFID cards to **toggle Wifi** (or switch it on/off) * Read out the Wifi IP address (if you are connecting to a new network and don't know where to point your browser) * **Hotspot** Phoniebox: [ad-hoc hotspot](https://github.com/MiczFlor/RPi-Jukebox-RFID/pull/967) if no known network found (IP: 10.0.0.5 SSID: phoniebox Password: PlayItLoud) -* **Touchscreen** LCD display Player (file: `index-lcd.php`in web app) +* **Touchscreen** LCD display Player (file: `index-lcd.php` in web app) * Integrate your [Phoniebox in your Smart Home](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Smart-Home-remote-control-with-MQTT). * Smoother [Web App running on ajax](https://github.com/MiczFlor/RPi-Jukebox-RFID/pull/623). * New [search form for local files](https://github.com/MiczFlor/RPi-Jukebox-RFID/pull/710) @@ -133,16 +129,6 @@ The [2.3](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/6?closed=1) rel Documentation can be found in the [GitHub wiki for Phoniebox](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki). Please try to add content in the wiki regarding special hardware, software tweaks and the like. -## The 2020 Phoniebox Calendar is out! - -Celebrating all the great designs of 2019, I put together a calendar for 2020, see picture above. If you want to be featured on next years calendar, please make sure to add your Phoniebox pics to the [design thread here on github](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/639). - -The PDF is about 6MB and will print well on A2 paper size, but it should also look good on larger poster sizes. Thanks to all the contributors, designers and makers. Have a good start into 2020 and keep up the good work! -![The 2020 Phoniebox Calendar](docs/2020-Phoniebox-Calendar.jpg "The 2020 Phoniebox Calendar") - -* [Download the 2020 Phoniebox Calendar PDF here](https://drive.google.com/file/d/1krb8G8Td1Vrf3sYWl44nZyuoJ0DIC5vX/view?usp=sharing) -* In case you missed it, [download the 2019 Phoniebox Calendar PDF here](https://drive.google.com/file/d/1NKlertLP0nIKOsHrcqu5pxe6NZU3SfS9/view?usp=sharing) - --- diff --git a/scripts/Reader.py.experimental b/scripts/Reader.py.experimental index da73b3b5b..b34479565 100755 --- a/scripts/Reader.py.experimental +++ b/scripts/Reader.py.experimental @@ -187,7 +187,7 @@ class Reader(object): sys.exit('Please run RegisterDevice.py first') else: with open(path + '/deviceName.txt', 'r') as f: - device_name = f.read().rstrip().split(';',1)[0] + device_name = f.read().rstrip().split(';', 1)[0] if device_name == 'MFRC522': self.reader = Mfrc522Reader() diff --git a/scripts/Reader.py.experimental.Multi b/scripts/Reader.py.experimental.Multi index 326a5bd86..a4626eb5f 100644 --- a/scripts/Reader.py.experimental.Multi +++ b/scripts/Reader.py.experimental.Multi @@ -27,6 +27,7 @@ except ImportError: logger = logging.getLogger(__name__) + class EDevices(Enum): MFRC522 = 0 RDM6300 = 1 diff --git a/scripts/Reader.py.pcsc b/scripts/Reader.py.pcsc index 795b03206..dac10de7c 100755 --- a/scripts/Reader.py.pcsc +++ b/scripts/Reader.py.pcsc @@ -9,6 +9,7 @@ from smartcard.scard import * from smartcard.util import toHexString from smartcard.util import * + class Reader: reader = None @@ -53,8 +54,7 @@ class Reader: SCARD_SHARE_SHARED, SCARD_PROTOCOL_T0 | SCARD_PROTOCOL_T1) - hresult, response = SCardTransmit(hcard,dwActiveProtocol,[0xFF,0xCA,0x00,0x00,0x00]) - + hresult, response = SCardTransmit(hcard, dwActiveProtocol, [0xFF, 0xCA, 0x00, 0x00, 0x00]) finally: hresult = SCardReleaseContext(hcontext) @@ -67,4 +67,3 @@ class Reader: except error as e: print(e) - diff --git a/scripts/helperscripts/cli-player.py b/scripts/helperscripts/cli-player.py index 56252a1d6..8f73b2c30 100755 --- a/scripts/helperscripts/cli-player.py +++ b/scripts/helperscripts/cli-player.py @@ -40,4 +40,3 @@ subprocess.check_output([scriptsDir + '/rfid_trigger_play.sh', '--dir=' + selectedFolder], shell=False) print("bye.") - diff --git a/scripts/helperscripts/organizeFiles.py b/scripts/helperscripts/organizeFiles.py index 90e559c5c..596ee4839 100755 --- a/scripts/helperscripts/organizeFiles.py +++ b/scripts/helperscripts/organizeFiles.py @@ -76,6 +76,7 @@ def fixBrokenShortcuts(shortcutsDir, shortcuts, audioFolders): if d not in audioFolders and d != cardid: _deleteBrokenSymlink(shortcutsDir=shortcutsDir, cardid=cardid, d=d) + def _writeFolderConf(audioDir, d, content): with open(os.path.join(audioDir, d, "folder.conf"), "w") as f: f.write(content) @@ -221,4 +222,3 @@ def findDuplicateShortcuts(shortcuts): if args.fixFoldersWithoutFolderConf: audioFolders2 = readFolders(audioDir=audioDir) fixFoldersWithoutFolderConf(audioDir=audioDir, audioFolders=audioFolders2) - diff --git a/scripts/installscripts/buster-install-default-with-autohotspot.sh b/scripts/installscripts/buster-install-default-with-autohotspot.sh index db75c6ca3..2517681fe 100755 --- a/scripts/installscripts/buster-install-default-with-autohotspot.sh +++ b/scripts/installscripts/buster-install-default-with-autohotspot.sh @@ -4,7 +4,7 @@ # # NOTE: Running automated install (without interaction): # Each install creates a file called PhonieboxInstall.conf -# in the folder /home/pi/ +# in you $HOME directory # You can install the Phoniebox using such a config file # which means you don't need to run the interactive install: # @@ -12,7 +12,7 @@ # https://github.com/MiczFlor/RPi-Jukebox-RFID/tree/develop/scripts/installscripts # (note: currently only works for buster and newer OS) # 2. make the file executable: chmod +x -# 3. place the PhonieboxInstall.conf in the folder /home/pi/ +# 3. place the PhonieboxInstall.conf in the folder $HOME # 4. run the installscript with option -a like this: # buster-install-default.sh -a @@ -28,7 +28,7 @@ DATETIME=$(date +"%Y%m%d_%H%M%S") SCRIPTNAME="$(basename $0)" JOB="${SCRIPTNAME}" -HOME_DIR="/home/pi" +HOME_DIR=$(echo $HOME) JUKEBOX_HOME_DIR="${HOME_DIR}/RPi-Jukebox-RFID" LOGDIR="${HOME_DIR}"/phoniebox_logs @@ -104,9 +104,9 @@ will guide you through the configuration. If you want to run the AUTOMATED INSTALL (non-interactive) from an existing configuration file, do the following: 1. exit this install script (press n) -2. place your PhonieboxInstall.conf in the folder /home/pi/ +2. place your PhonieboxInstall.conf in the folder ${HOME_DIR} 3. run the installscript with option -a. For example like this: - ./home/pi/buster-install-default.sh -a + .${HOME_DIR}/buster-install-default.sh -a " read -rp "Continue interactive installation? [Y/n] " response case "$response" in @@ -241,7 +241,7 @@ check_existing() { echo "Everything else will remain in a folder called 'BACKUP'. " - ### + ### # See if we find the PhonieboxInstall.conf file # We need to do this first, because if we re-use the .conf file, we need to append # the variables regarding the found content to the also found configuration file. @@ -545,7 +545,7 @@ config_audio_folder() { ##################################################### # Folder path for audio files - # default: /home/pi/RPi-Jukebox-RFID/shared/audiofolders + # default: $HOME/RPi-Jukebox-RFID/shared/audiofolders clear @@ -683,14 +683,17 @@ samba_config() { sudo chmod 644 "${smb_conf}" # for $DIRaudioFolders using | as alternate regex delimiter because of the folder path slash sudo sed -i 's|%DIRaudioFolders%|'"$DIRaudioFolders"'|' "${smb_conf}" + # Replace homedir; double quotes for variable expansion + sudo sed -i "s%/home/pi%${HOME_DIR}%g" "${smb_conf}" # Samba: create user 'pi' with password 'raspberry' + # ToDo: use current user with a default password (echo "raspberry"; echo "raspberry") | sudo smbpasswd -s -a pi } web_server_config() { local lighthttpd_conf="/etc/lighttpd/lighttpd.conf" local fastcgi_php_conf="/etc/lighttpd/conf-available/15-fastcgi-php.conf" - local php_ini="/etc/php/7.3/cgi/php.ini" + local php_ini="/etc/php/$(ls -1 /etc/php)/cgi/php.ini" local sudoers="/etc/sudoers" echo "Configuring web server..." @@ -699,6 +702,8 @@ web_server_config() { sudo cp "${jukebox_dir}"/misc/sampleconfigs/lighttpd.conf.buster-default.sample "${lighthttpd_conf}" sudo chown root:root "${lighthttpd_conf}" sudo chmod 644 "${lighthttpd_conf}" + # double quotes for variable expansion + sudo sed -i "s%/home/pi%${HOME_DIR}%g" "${lighthttpd_conf}" # Web server PHP7 fastcgi conf # -rw-r--r-- 1 root root 398 Apr 30 09:35 /etc/lighttpd/conf-available/15-fastcgi-php.conf @@ -793,7 +798,7 @@ install_main() { ${apt_get} ${allow_downgrades} install raspberrypi-kernel-headers fi - ${apt_get} ${allow_downgrades} install samba samba-common-bin gcc lighttpd php7.3-common php7.3-cgi php7.3 at mpd mpc mpg123 git ffmpeg resolvconf spi-tools netcat alsa-tools lsof + ${apt_get} ${allow_downgrades} install samba samba-common-bin gcc lighttpd php-common php-cgi php at mpd mpc mpg123 git ffmpeg resolvconf spi-tools netcat alsa-utils lsof procps # restore backup of /etc/resolv.conf in case installation of resolvconf cleared it sudo cp /etc/resolv.conf.orig /etc/resolv.conf @@ -839,14 +844,6 @@ install_main() { sudo python3 -m pip install --upgrade --force-reinstall -q -r "${jukebox_dir}"/requirements-spotify.txt fi - local raw_github="https://raw.githubusercontent.com/MiczFlor/RPi-Jukebox-RFID" - # I comment the following lines out for now. I think they come from splitti when he applied a hotfix in Feb 2020? - # Back then the master install script needed develop branch files. I think this is from that time...? - #sudo rm "${jukebox_dir}"/misc/sampleconfigs/phoniebox-rfid-reader.service.stretch-default.sample - #wget -P "${jukebox_dir}"/misc/sampleconfigs/ "${raw_github}"/develop/misc/sampleconfigs/phoniebox-rfid-reader.service.stretch-default.sample - #sudo rm "${jukebox_dir}"/scripts/RegisterDevice.py - #wget -P "${jukebox_dir}"/scripts/ "${raw_github}"/develop/scripts/RegisterDevice.py - # Install more required packages echo "Installing additional Python packages..." sudo python3 -m pip install --upgrade --force-reinstall -q -r "${jukebox_dir}"/requirements.txt @@ -878,16 +875,14 @@ install_main() { # create config file for web app from sample sudo cp "${jukebox_dir}"/htdocs/config.php.sample "${jukebox_dir}"/htdocs/config.php + # double quotes for variable expansion + sudo sed -i "s%/home/pi%${HOME_DIR}%g" "${jukebox_dir}"/htdocs/config.php # Starting web server and php7 sudo lighttpd-enable-mod fastcgi sudo lighttpd-enable-mod fastcgi-php sudo service lighttpd force-reload - # create copy of GPIO script - sudo cp "${jukebox_dir}"/misc/sampleconfigs/gpio-buttons.py.sample "${jukebox_dir}"/scripts/gpio-buttons.py - sudo chmod +x "${jukebox_dir}"/scripts/gpio-buttons.py - # make sure bash scripts have the right settings sudo chown pi:www-data "${jukebox_dir}"/scripts/*.sh sudo chmod +x "${jukebox_dir}"/scripts/*.sh @@ -913,13 +908,30 @@ install_main() { sudo rm "${systemd_dir}"/phoniebox-gpio-buttons.service echo "### Done with erasing old daemons. Stop ignoring errors!" # 2. install new ones - this is version > 1.1.8-beta - sudo cp "${jukebox_dir}"/misc/sampleconfigs/phoniebox-rfid-reader.service.stretch-default.sample "${systemd_dir}"/phoniebox-rfid-reader.service + RFID_READER_SERVICE="${systemd_dir}/phoniebox-rfid-reader.service" + sudo cp "${jukebox_dir}"/misc/sampleconfigs/phoniebox-rfid-reader.service.stretch-default.sample "${RFID_READER_SERVICE}" + # Replace homedir; double quotes for variable expansion + sudo sed -i "s%/home/pi%${HOME_DIR}%g" "${RFID_READER_SERVICE}" + #startup sound now part of phoniebox-startup-scripts #sudo cp "${jukebox_dir}"/misc/sampleconfigs/phoniebox-startup-sound.service.stretch-default.sample "${systemd_dir}"/phoniebox-startup-sound.service - sudo cp "${jukebox_dir}"/misc/sampleconfigs/phoniebox-startup-scripts.service.stretch-default.sample "${systemd_dir}"/phoniebox-startup-scripts.service - sudo cp "${jukebox_dir}"/misc/sampleconfigs/phoniebox-gpio-buttons.service.stretch-default.sample "${systemd_dir}"/phoniebox-gpio-buttons.service - sudo cp "${jukebox_dir}"/misc/sampleconfigs/phoniebox-idle-watchdog.service.sample "${systemd_dir}"/phoniebox-idle-watchdog.service - [[ "${GPIOconfig}" == "YES" ]] && sudo cp "${jukebox_dir}"/misc/sampleconfigs/phoniebox-gpio-control.service.sample "${systemd_dir}"/phoniebox-gpio-control.service + STARTUP_SCRIPT_SERVICE="${systemd_dir}/phoniebox-startup-scripts.service" + sudo cp "${jukebox_dir}"/misc/sampleconfigs/phoniebox-startup-scripts.service.stretch-default.sample "${STARTUP_SCRIPT_SERVICE}" + # Replace homedir; double quotes for variable expansion + sudo sed -i "s%/home/pi%${HOME_DIR}%g" "${STARTUP_SCRIPT_SERVICE}" + + IDLE_WATCHDOG_SERVICE="${systemd_dir}/phoniebox-idle-watchdog.service" + sudo cp "${jukebox_dir}"/misc/sampleconfigs/phoniebox-idle-watchdog.service.sample "${IDLE_WATCHDOG_SERVICE}" + # Replace homedir; double quotes for variable expansion + sudo sed -i "s%/home/pi%${HOME_DIR}%g" "${IDLE_WATCHDOG_SERVICE}" + + if [[ "${GPIOconfig}" == "YES" ]]; then + GPIO_CONTROL_SERVICE="${systemd_dir}/phoniebox-gpio-control.service" + sudo cp "${jukebox_dir}"/misc/sampleconfigs/phoniebox-gpio-control.service.sample "${GPIO_CONTROL_SERVICE}" + # Replace homedir; double quotes for variable expansion + sudo sed -i "s%/home/pi%${HOME_DIR}%g" "${GPIO_CONTROL_SERVICE}" + fi + sudo chown root:root "${systemd_dir}"/phoniebox-*.service sudo chmod 644 "${systemd_dir}"/phoniebox-*.service # enable the services needed @@ -928,9 +940,6 @@ install_main() { #startup sound is part of phoniebox-startup-scripts now #sudo systemctl enable phoniebox-startup-sound sudo systemctl enable phoniebox-startup-scripts - sudo systemctl enable phoniebox-gpio-buttons - sudo systemctl enable phoniebox-rotary-encoder.service - # copy mp3s for startup and shutdown sound to the right folder cp "${jukebox_dir}"/misc/sampleconfigs/startupsound.mp3.sample "${jukebox_dir}"/shared/startupsound.mp3 cp "${jukebox_dir}"/misc/sampleconfigs/shutdownsound.mp3.sample "${jukebox_dir}"/shared/shutdownsound.mp3 @@ -956,21 +965,25 @@ install_main() { sudo sed -i 's/%spotify_client_secret%/'"$SPOTIclientsecret"'/' "${etc_mopidy_conf}" # for $DIRaudioFolders using | as alternate regex delimiter because of the folder path slash sudo sed -i 's|%DIRaudioFolders%|'"$DIRaudioFolders"'|' "${etc_mopidy_conf}" + # Replace homedir; double quotes for variable expansion + sudo sed -i "s%/home/pi%${HOME_DIR}%g" "${etc_mopidy_conf}" + sed -i 's/%spotify_username%/'"$SPOTIuser"'/' "${mopidy_conf}" sed -i 's/%spotify_password%/'"$SPOTIpass"'/' "${mopidy_conf}" sed -i 's/%spotify_client_id%/'"$SPOTIclientid"'/' "${mopidy_conf}" sed -i 's/%spotify_client_secret%/'"$SPOTIclientsecret"'/' "${mopidy_conf}" # for $DIRaudioFolders using | as alternate regex delimiter because of the folder path slash sudo sed -i 's|%DIRaudioFolders%|'"$DIRaudioFolders"'|' "${mopidy_conf}" + # Replace homedir; double quotes for variable expansion + sudo sed -i "s%/home/pi%${HOME_DIR}%g" "${mopidy_conf}" fi # GPIO-Control if [[ "${GPIOconfig}" == "YES" ]]; then sudo python3 -m pip install --upgrade --force-reinstall -q -r "${jukebox_dir}"/requirements-GPIO.txt sudo systemctl enable phoniebox-gpio-control.service - if [[ ! -f ~/.config/phoniebox/gpio_settings.ini ]]; then - mkdir -p ~/.config/phoniebox - cp "${jukebox_dir}"/components/gpio_control/example_configs/gpio_settings.ini ~/.config/phoniebox/gpio_settings.ini + if [[ ! -f "${jukebox_dir}"/settings/gpio_settings.ini ]]; then + cp "${jukebox_dir}"/misc/sampleconfigs/gpio_settings.ini.sample "${jukebox_dir}"/settings/gpio_settings.ini fi fi @@ -985,6 +998,8 @@ install_main() { sudo sed -i 's/%AUDIOiFace%/'"$AUDIOiFace"'/' "${mpd_conf}" # for $DIRaudioFolders using | as alternate regex delimiter because of the folder path slash sudo sed -i 's|%DIRaudioFolders%|'"$DIRaudioFolders"'|' "${mpd_conf}" + # Replace homedir; double quotes for variable expansion + sudo sed -i "s%/home/pi%${HOME_DIR}%g" "${mpd_conf}" sudo chown mpd:audio "${mpd_conf}" sudo chmod 640 "${mpd_conf}" fi @@ -1104,7 +1119,10 @@ existing_assets() { # make buttons_usb_encoder.py ready to be use from phoniebox-buttons-usb-encoder service sudo chmod +x "${jukebox_dir}"/components/controls/buttons_usb_encoder/buttons_usb_encoder.py # make sure service is still enabled by registering again - sudo cp -v "${jukebox_dir}"/components/controls/buttons_usb_encoder/phoniebox-buttons-usb-encoder.service.sample /etc/systemd/system/phoniebox-buttons-usb-encoder.service + USB_BUTTONS_SERVICE="/etc/systemd/system/phoniebox-buttons-usb-encoder.service" + sudo cp -v "${jukebox_dir}"/components/controls/buttons_usb_encoder/phoniebox-buttons-usb-encoder.service.sample "${USB_BUTTONS_SERVICE}" + # Replace homedir; double quotes for variable expansion + sudo sed -i "s%/home/pi%${HOME_DIR}%g" "${USB_BUTTONS_SERVICE}" sudo systemctl start phoniebox-buttons-usb-encoder.service sudo systemctl enable phoniebox-buttons-usb-encoder.service fi @@ -1402,7 +1420,7 @@ main() { else echo "Skipping USB device setup..." echo "For manual registration of a USB card reader type:" - echo "python3 /home/pi/RPi-Jukebox-RFID/scripts/RegisterDevice.py" + echo "python3 ${HOME_DIR}/RPi-Jukebox-RFID/scripts/RegisterDevice.py" echo " " echo "Reboot is required to activate all settings!" fi From cafab5c8a7ea4c3acafad60eb11d57919f69fd26 Mon Sep 17 00:00:00 2001 From: s-martin Date: Sun, 18 Dec 2022 22:22:13 +0100 Subject: [PATCH 205/206] update buster-install-default-with-autohotspot.sh to recent changes (#1903) * fix flake8 warnings * fix markdownlint * fix markdown lint warnings * merge recent updates in install script buster-install-default-with-autohotspot.sh * fix flake8 warnings * dont use pytest-pythonpath anymore (obsolete) * revert last commit From 0dd0a427312cc814b0856ab1ad65a16e3eba9878 Mon Sep 17 00:00:00 2001 From: s-martin Date: Sun, 18 Dec 2022 22:27:49 +0100 Subject: [PATCH 206/206] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 785afb260..b1b0ab5f3 100755 --- a/README.md +++ b/README.md @@ -77,7 +77,7 @@ If you seek the adventure, your support will be more then welcome. Before contri * **Phoniebox [future3 Beta](https://rpi-jukebox-rfid.readthedocs.io/en/latest/) released (2022-02)** * **Gitter Community** we got ourselves a gitter community; chat us up at -* **Phoniebox [2.4](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/7?closed=1) released (2022-11-xx)** +* **Phoniebox [2.4](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/7?closed=1) released (2022-12-18)** The [2.4](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/7?closed=1) release was pushed through the doors with many contributors: [List of all contributors](https://github.com/MiczFlor/RPi-Jukebox-RFID/graphs/contributors)