From 63dc62cf617109d51995489455186fba6f402228 Mon Sep 17 00:00:00 2001 From: Kuba <132459354+KubaPro010@users.noreply.github.com> Date: Sat, 11 Oct 2025 18:05:38 +0200 Subject: [PATCH] some changes --- modules/jingle.py | 21 ++++++++++++++++----- modules/shuffler.py | 6 +++++- radioPlayer.py | 5 ++--- 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/modules/jingle.py b/modules/jingle.py index c8ec914..ea00ada 100644 --- a/modules/jingle.py +++ b/modules/jingle.py @@ -1,24 +1,35 @@ -import random +""" +Jingle genarator module -JINGIEL_FILE = "/home/user/Jingiel.mp3" +Takes an file argument to initialize, which is the absolute path to the jingle file + +Reacts to the 'no_jingle' argument, for global usage it does not add jingles to the playlist, and for file usage it does not add the jingle after the file +""" + +import random, log95 + +logger = log95.log95("JINGLE-GEN") class PlaylistModifierModule: def modify(self, global_args: dict, playlist: list[tuple[str, bool, bool, bool, dict]]): return playlist class Module(PlaylistModifierModule): + def __init__(self, file: str) -> None: + logger.info("Generating jingles with the following random state:", repr(random.getstate())) + self.file = file def modify(self, global_args: dict, playlist: list[tuple[str, bool, bool, bool, dict]]): if int(global_args.get("no_jingle", 0)): return playlist out: list[tuple[str, bool, bool, bool, dict]] = [] last_jingiel = True for (track, _, _, _, args) in playlist: - if not last_jingiel and random.choice([False, True, False, False]) and JINGIEL_FILE and int(args.get("no_jingle", 0)) == 0: + if not last_jingiel and random.choice([False, True, False, False]) and self.file and int(args.get("no_jingle", 0)) == 0: out.append((track, True, False, True, args)) - out.append((JINGIEL_FILE, False, False, False, args)) + out.append((self.file, False, False, False, args)) last_jingiel = True else: out.append((track, True, True, True, args)) last_jingiel = False del last_jingiel -playlistmod = (Module(), 1) \ No newline at end of file +playlistmod = (Module("/home/user/Jingiel.mp3"), 1) \ No newline at end of file diff --git a/modules/shuffler.py b/modules/shuffler.py index f3fdd89..97cac87 100644 --- a/modules/shuffler.py +++ b/modules/shuffler.py @@ -1,10 +1,14 @@ -import random +import random, log95 + +logger = log95.log95("SHUFFLER") class PlaylistModifierModule: def modify(self, global_args: dict, playlist: list[tuple[str, bool, bool, bool, dict]]): return playlist class Module(PlaylistModifierModule): + def __init__(self) -> None: + logger.info("Shuffling with the following random state:", repr(random.getstate())) def modify(self, global_args: dict, playlist: list[tuple[str, bool, bool, bool, dict]]): if int(global_args.get("no_shuffle", 0)) == 0: random.shuffle(playlist) diff --git a/radioPlayer.py b/radioPlayer.py index 84d6ec0..7b6654f 100644 --- a/radioPlayer.py +++ b/radioPlayer.py @@ -103,8 +103,7 @@ class ProcessManager: return pr def anything_playing(self) -> bool: with self.lock: - for process in self.processes: - if process.process.poll() is not None: self.processes.remove(process) + self.processes = [p for p in self.processes if p.process.poll() is None] return bool(self.processes) def stop_all(self, timeout: float | None = None) -> None: with self.lock: @@ -228,7 +227,7 @@ def play_playlist(playlist_path, custom_playlist: bool=False): for (lns, args) in parsed: lns: list[str] args: dict[str, str] - for line in lns: playlist.append((line, True, True, True, args)) + for line in lns: playlist.append((line, True, True, True, args)) # simple entry, just to convert to a format taken by the modules for module in playlist_modifier_modules: playlist = module.modify(global_args, playlist)