From 4584bb6b84122e7a1d98d24936bd521162926995 Mon Sep 17 00:00:00 2001 From: KubaPro010 Date: Sat, 20 Dec 2025 20:06:17 +0100 Subject: [PATCH] wtf --- modules/active_modifier.py | 5 +++-- modules/crossfade_init.py | 12 ++++++++++++ modules/jingle.py | 7 +++---- modules/play_sort.py | 2 +- 4 files changed, 19 insertions(+), 7 deletions(-) create mode 100644 modules/crossfade_init.py diff --git a/modules/active_modifier.py b/modules/active_modifier.py index 27f1695..258c231 100644 --- a/modules/active_modifier.py +++ b/modules/active_modifier.py @@ -2,6 +2,7 @@ from modules import BaseIMCModule, InterModuleCommunication from . import ActiveModifier, log95, Track, Path import os, glob, datetime from threading import Lock +from crossfade_init import DEFAULT_CROSSFADE from typing import TextIO _log_out: TextIO @@ -20,11 +21,11 @@ class Module(ActiveModifier): self.can_limit_tracks = False self.morning_start = self.day_end = 0 self.file_lock = Lock() - self.crossfade = 5 + self.crossfade = DEFAULT_CROSSFADE self.skip_next = False def on_new_playlist(self, playlist: list[Track], global_args: dict[str, str]): self.playlist = playlist - self.crossfade = float(global_args.get("crossfade", 5.0)) + self.crossfade = float(global_args.get("crossfade", DEFAULT_CROSSFADE)) if not self._imc: return self.limit_tracks, self.morning_start, self.day_end = self._imc.send(self, "advisor", None) # pyright: ignore[reportGeneralTypeIssues] diff --git a/modules/crossfade_init.py b/modules/crossfade_init.py new file mode 100644 index 0000000..6309093 --- /dev/null +++ b/modules/crossfade_init.py @@ -0,0 +1,12 @@ +from . import PlaylistModifierModule, Track +DEFAULT_CROSSFADE = 5.0 +class Module(PlaylistModifierModule): + def modify(self, global_args: dict, playlist: list[Track]) -> list[Track] | None: + out = [] + for track in playlist: + do_cross_fade = track.official + track_crossfade = float(track.args.get("crossfade", DEFAULT_CROSSFADE) if track.args else DEFAULT_CROSSFADE) or DEFAULT_CROSSFADE + if do_cross_fade and track_crossfade: + out.append(Track(track.path, track_crossfade, track_crossfade, do_cross_fade, track.args, focus_time_offset=-track_crossfade)) + else: out.append(track) + return out \ No newline at end of file diff --git a/modules/jingle.py b/modules/jingle.py index d06892e..0c24b3b 100644 --- a/modules/jingle.py +++ b/modules/jingle.py @@ -22,16 +22,15 @@ class Module(PlaylistModifierModule): if int(global_args.get("no_jingle", 0)) != 0 or not self.primary: return None out: list[Track] = [] last_jingiel = True - crossfade = float(global_args.get("crossfade", 5.0)) for track in playlist: if not last_jingiel and (random.randint(1,3) == 1) and (track.args is None or int(track.args.get("no_jingle", 0)) == 0): - out.append(Track(track.path, crossfade, 0, True, track.args, focus_time_offset=-crossfade)) + out.append(Track(track.path, 0, track.fade_in, True, track.args)) jingle = self.primary if self.secondary and (random.randint(1,3) == 1): jingle = random.choice(self.secondary) out.append(Track(jingle, 0, 0, False, {})) last_jingiel = True continue - out.append(Track(track.path, crossfade, crossfade, True, track.args,focus_time_offset=-crossfade)) + out.append(Track(track.path, track.fade_out, track.fade_in, True, track.args,focus_time_offset=-track.fade_out)) last_jingiel = False return out @@ -52,4 +51,4 @@ class Module2(PlayerModule): options = Path("/home/user/Jingiel.mp3"), [Path("/home/user/jing2.opus"), Path("Jing3.opus")] module = Module2(*options) -playlistmod = (Module(*options), 2) \ No newline at end of file +playlistmod = Module(*options) \ No newline at end of file diff --git a/modules/play_sort.py b/modules/play_sort.py index 7480874..076d020 100644 --- a/modules/play_sort.py +++ b/modules/play_sort.py @@ -76,4 +76,4 @@ class PopularitySorterModule(PlaylistModifierModule): return playlist # The radioPlayer will look for a 'playlistmod' variable to load the module. -playlistmod = (PopularitySorterModule(), 1) \ No newline at end of file +playlistmod = (PopularitySorterModule(), 2) \ No newline at end of file