From 320b9242d54e9e24027ca4d3994f3a245236ee31 Mon Sep 17 00:00:00 2001 From: jr-k Date: Mon, 19 Aug 2024 15:46:24 +0200 Subject: [PATCH] fix installation scripts --- lang/en.json | 4 ++-- lang/es.json | 4 ++-- lang/fr.json | 4 ++-- lang/it.json | 4 ++-- src/controller/PlaylistController.py | 3 ++- src/manager/PlaylistManager.py | 7 +++++- src/service/Sysinfo.py | 2 +- system/autostart-browser-x11.sh | 2 ++ system/install-player-rpi.sh | 32 +++++++++++++++++++++++++--- system/install-studio.sh | 2 +- 10 files changed, 49 insertions(+), 15 deletions(-) diff --git a/lang/en.json b/lang/en.json index cc39692..cc09c23 100644 --- a/lang/en.json +++ b/lang/en.json @@ -310,8 +310,8 @@ "enum_operating_system_redhat": "RedHat", "enum_operating_system_centos": "CentOS", "enum_operating_system_other": "Other", - "sysinfo_rpi_model": "Raspberry Pi Model", - "sysinfo_rpi_model_unknown": "Not a Raspberry Pi or model information not available", + "sysinfo_device_model": "Device model", + "sysinfo_device_model_unknown": "Unknown model", "sysinfo_storage_free_space": "Storage Free Space", "sysinfo_memory_usage": "Memory Usage", "sysinfo_os_version": "OS Version", diff --git a/lang/es.json b/lang/es.json index 16e2728..79a673a 100644 --- a/lang/es.json +++ b/lang/es.json @@ -311,8 +311,8 @@ "enum_operating_system_redhat": "RedHat", "enum_operating_system_centos": "CentOS", "enum_operating_system_other": "Otro", - "sysinfo_rpi_model": "Modelo de Raspberry Pi", - "sysinfo_rpi_model_unknown": "No es una Raspberry Pi o la información del modelo no está disponible", + "sysinfo_device_model": "Modelo del dispositivo", + "sysinfo_device_model_unknown": "Modelo desconocido", "sysinfo_storage_free_space": "Espacio de almacenamiento libre", "sysinfo_memory_usage": "Uso de memoria", "sysinfo_os_version": "Versión del SO", diff --git a/lang/fr.json b/lang/fr.json index 1c6aa2d..0c93797 100644 --- a/lang/fr.json +++ b/lang/fr.json @@ -312,8 +312,8 @@ "enum_operating_system_redhat": "RedHat", "enum_operating_system_centos": "CentOS", "enum_operating_system_other": "Autre", - "sysinfo_rpi_model": "Modèle du Raspberry Pi", - "sysinfo_rpi_model_unknown": "Le modèle n'est pas un Raspberry Pi", + "sysinfo_device_model": "Modèle de l'appareil", + "sysinfo_device_model_unknown": "Modèle inconnu", "sysinfo_storage_free_space": "Stockage Disponible", "sysinfo_memory_usage": "Utilisation Mémoire", "sysinfo_os_version": "Version SE", diff --git a/lang/it.json b/lang/it.json index 974504c..6ddafb5 100644 --- a/lang/it.json +++ b/lang/it.json @@ -311,8 +311,8 @@ "enum_operating_system_redhat": "RedHat", "enum_operating_system_centos": "CentOS", "enum_operating_system_other": "Altro", - "sysinfo_rpi_model": "Raspberry Pi Model", - "sysinfo_rpi_model_unknown": "Informazioni Raspberry Pi non disponibili", + "sysinfo_device_model": "Modello del dispositivo", + "sysinfo_device_model_unknown": "Modello sconosciuto", "sysinfo_storage_free_space": "Spazio libero", "sysinfo_memory_usage": "Memoria usata", "sysinfo_os_version": "OS Version", diff --git a/src/controller/PlaylistController.py b/src/controller/PlaylistController.py index 4b9a8dc..05bb06c 100644 --- a/src/controller/PlaylistController.py +++ b/src/controller/PlaylistController.py @@ -55,7 +55,8 @@ class PlaylistController(ObController): playlist = Playlist( name=request.form['name'], enabled=True, - time_sync=False + time_sync=False, + fallback=self._model_store.playlist().count_fallbacks() == 0 ) try: diff --git a/src/manager/PlaylistManager.py b/src/manager/PlaylistManager.py index 6458385..7188722 100644 --- a/src/manager/PlaylistManager.py +++ b/src/manager/PlaylistManager.py @@ -186,7 +186,7 @@ GROUP BY playlist_id; self.post_update(id) def check_and_set_fallback(self): - if len(self.get_by("fallback = 1")) == 0: + if self.count_fallbacks() == 0: self.set_fallback() def set_fallback(self, playlist_id: Optional[int] = 0) -> None: @@ -226,3 +226,8 @@ GROUP BY playlist_id; def to_dict(self, playlists: List[Playlist]) -> List[Dict]: return [playlist.to_dict() for playlist in playlists] + def count_all(self): + return len(self.get_all()) + + def count_fallbacks(self): + return len(self.get_by("fallback = 1")) diff --git a/src/service/Sysinfo.py b/src/service/Sysinfo.py index 09420df..aaedad0 100644 --- a/src/service/Sysinfo.py +++ b/src/service/Sysinfo.py @@ -118,7 +118,7 @@ def get_network_ipaddr(): def get_all_sysinfo(): rpi_model = get_rpi_model() infos = { - "sysinfo_rpi_model": rpi_model if rpi_model else 'sysinfo_rpi_model_unknown', + "sysinfo_device_model": rpi_model if rpi_model else 'sysinfo_device_model_unknown', "sysinfo_storage_free_space": get_free_space(), "sysinfo_memory_usage": "{}{}".format(get_memory_usage()['percent'], "%"), "sysinfo_os_version": get_os_version(), diff --git a/system/autostart-browser-x11.sh b/system/autostart-browser-x11.sh index b37ee62..af0a996 100755 --- a/system/autostart-browser-x11.sh +++ b/system/autostart-browser-x11.sh @@ -29,6 +29,8 @@ chromium-browser \ --noerrdialogs \ --kiosk \ --incognito \ + --user-data-dir=/home/pi/.config/chromium \ + --no-sandbox --window-position=0,0 \ --window-size=${WIDTH},${HEIGHT} \ --display=:0 \ diff --git a/system/install-player-rpi.sh b/system/install-player-rpi.sh index 2032acb..e1ad40a 100755 --- a/system/install-player-rpi.sh +++ b/system/install-player-rpi.sh @@ -52,14 +52,40 @@ fi # Installation # ============================================================ - echo "" echo "# Waiting 3 seconds before installation..." sleep 3 # Update and install necessary packages apt update -apt install -y xinit xserver-xorg chromium-browser unclutter pulseaudio + +# ------------------ +# Chromium package +# ------------------ +CHROMIUM="" + +# Attempt to install chromium-browser +if sudo apt-get install -y chromium-browser; then + CHROMIUM="chromium-browser" +fi + +if sudo apt-get install -y chromium; then + CHROMIUM="chromium" +fi + +if [ -z "$CHROMIUM" ]; then + echo "Error: Chromium could not be installed." >&2 + exit 1 +fi + +# ------------------ +# Remaining packages +# ------------------ +apt install -y xinit xserver-xorg x11-xserver-utils unclutter pulseaudio + +# ------------------ +# Configuration +# ------------------ # Add user to tty, video groups usermod -aG tty,video $OWNER @@ -82,7 +108,7 @@ systemctl set-default graphical.target # ============================================================ mkdir -p "$WORKING_DIR/obscreen/var/run" -curl https://raw.githubusercontent.com/jr-k/obscreen/master/system/autostart-browser-x11.sh | sed "s#/home/pi#$WORKING_DIR#g" | sed "s#=pi#=$OWNER#g" | sed "s#http://localhost:5000#$obscreen_studio_url#g" | tee "$WORKING_DIR/obscreen/var/run/play" +curl https://raw.githubusercontent.com/jr-k/obscreen/master/system/autostart-browser-x11.sh | sed "s#/home/pi#$WORKING_DIR#g" | sed "s#=pi#=$OWNER#g" | sed "s#chromium-browser#$CHROMIUM#g" | sed "s#http://localhost:5000#$obscreen_studio_url#g" | tee "$WORKING_DIR/obscreen/var/run/play" chmod +x "$WORKING_DIR/obscreen/var/run/play" chown -R $OWNER:$OWNER "$WORKING_DIR/obscreen" diff --git a/system/install-studio.sh b/system/install-studio.sh index 6d04fdf..32bb66e 100755 --- a/system/install-studio.sh +++ b/system/install-studio.sh @@ -19,7 +19,7 @@ sleep 3 # Install system dependencies apt-get update -apt-get install -y git python3-pip python3-venv libsqlite3-dev ntfs-3g ffmpeg +apt-get install -y git build-essential gcc python3-dev python3-pip python3-venv libsqlite3-dev ntfs-3g ffmpeg # Get files cd $WORKING_DIR