You've already forked RadioPlayer
mirror of
https://github.com/radio95-rnt/RadioPlayer.git
synced 2026-02-26 21:53:54 +01:00
fix
This commit is contained in:
@@ -166,14 +166,14 @@ def draw_interface(audio_files: list, playlists: dict, selected_idx: int, curren
|
|||||||
"""Draw the TUI interface with day-of-week sections"""
|
"""Draw the TUI interface with day-of-week sections"""
|
||||||
clear_screen()
|
clear_screen()
|
||||||
term_width, term_height = terminal_size_cache.getElement("width", False), terminal_size_cache.getElement("height", False)
|
term_width, term_height = terminal_size_cache.getElement("width", False), terminal_size_cache.getElement("height", False)
|
||||||
if term_width or term_height == 0:
|
if term_width is None or term_height is None:
|
||||||
term_width, term_height = get_terminal_size()
|
term_width, term_height = get_terminal_size()
|
||||||
terminal_size_cache.saveElement("width", term_width, 30, False, True)
|
terminal_size_cache.saveElement("width", term_width, 30, False, True)
|
||||||
terminal_size_cache.saveElement("height", term_height, 30, False, True)
|
terminal_size_cache.saveElement("height", term_height, 30, False, True)
|
||||||
days = get_days_of_week()
|
days = get_days_of_week()
|
||||||
current_day = days[current_day_idx]
|
current_day = days[current_day_idx]
|
||||||
|
|
||||||
available_lines = term_height - 5
|
available_lines = term_height - 5
|
||||||
start_idx = max(0, min(scroll_offset, len(audio_files) - available_lines))
|
start_idx = max(0, min(scroll_offset, len(audio_files) - available_lines))
|
||||||
end_idx = min(start_idx + available_lines, len(audio_files))
|
end_idx = min(start_idx + available_lines, len(audio_files))
|
||||||
|
|
||||||
@@ -193,7 +193,7 @@ def draw_interface(audio_files: list, playlists: dict, selected_idx: int, curren
|
|||||||
print(" ", end="")
|
print(" ", end="")
|
||||||
|
|
||||||
position_info = f" {current_day.capitalize()} | File {selected_idx + 1}/{len(audio_files)} "
|
position_info = f" {current_day.capitalize()} | File {selected_idx + 1}/{len(audio_files)} "
|
||||||
padding = term_width - len(position_info) - 2
|
padding = term_width - len(position_info) - 2
|
||||||
print(position_info.center(padding), end="")
|
print(position_info.center(padding), end="")
|
||||||
|
|
||||||
if end_idx < len(audio_files):
|
if end_idx < len(audio_files):
|
||||||
@@ -204,7 +204,7 @@ def draw_interface(audio_files: list, playlists: dict, selected_idx: int, curren
|
|||||||
if message:
|
if message:
|
||||||
print(f"\033[1;32m{message}\033[0m")
|
print(f"\033[1;32m{message}\033[0m")
|
||||||
else:
|
else:
|
||||||
print()
|
print()
|
||||||
|
|
||||||
for idx in range(start_idx, end_idx):
|
for idx in range(start_idx, end_idx):
|
||||||
file = audio_files[idx]
|
file = audio_files[idx]
|
||||||
@@ -220,11 +220,11 @@ def draw_interface(audio_files: list, playlists: dict, selected_idx: int, curren
|
|||||||
l_color = "\033[1;32m" if in_late_night else "\033[1;30m"
|
l_color = "\033[1;32m" if in_late_night else "\033[1;30m"
|
||||||
|
|
||||||
if idx == selected_idx:
|
if idx == selected_idx:
|
||||||
row_highlight = "\033[1;44m"
|
row_highlight = "\033[1;44m"
|
||||||
else:
|
else:
|
||||||
row_highlight = ""
|
row_highlight = ""
|
||||||
|
|
||||||
max_filename_length = term_width - 15
|
max_filename_length = term_width - 15
|
||||||
if len(file) > max_filename_length:
|
if len(file) > max_filename_length:
|
||||||
file = file[:max_filename_length-3] + "..."
|
file = file[:max_filename_length-3] + "..."
|
||||||
|
|
||||||
@@ -240,11 +240,11 @@ def main():
|
|||||||
days_of_week = get_days_of_week()
|
days_of_week = get_days_of_week()
|
||||||
playlists = load_playlists(days_of_week)
|
playlists = load_playlists(days_of_week)
|
||||||
|
|
||||||
selected_idx = 0
|
selected_idx = 0
|
||||||
current_day_idx = 0
|
current_day_idx = 0
|
||||||
scroll_offset = 0
|
scroll_offset = 0
|
||||||
flash_message = None
|
flash_message = None
|
||||||
message_timer = 0
|
message_timer = 0
|
||||||
|
|
||||||
def signal_handler(sig, frame):
|
def signal_handler(sig, frame):
|
||||||
clear_screen()
|
clear_screen()
|
||||||
@@ -254,10 +254,9 @@ def main():
|
|||||||
|
|
||||||
terminal_size_cache = libcache.Cache()
|
terminal_size_cache = libcache.Cache()
|
||||||
|
|
||||||
# Main loop
|
|
||||||
while True:
|
while True:
|
||||||
term_width, term_height = terminal_size_cache.getElement("width", False), terminal_size_cache.getElement("height", False)
|
term_width, term_height = terminal_size_cache.getElement("width", False), terminal_size_cache.getElement("height", False)
|
||||||
if term_width or term_height == 0:
|
if term_width is None or term_height is None:
|
||||||
term_width, term_height = get_terminal_size()
|
term_width, term_height = get_terminal_size()
|
||||||
terminal_size_cache.saveElement("width", term_width, 30, False, True)
|
terminal_size_cache.saveElement("width", term_width, 30, False, True)
|
||||||
terminal_size_cache.saveElement("height", term_height, 30, False, True)
|
terminal_size_cache.saveElement("height", term_height, 30, False, True)
|
||||||
@@ -278,36 +277,36 @@ def main():
|
|||||||
|
|
||||||
key = get_char()
|
key = get_char()
|
||||||
|
|
||||||
if key == 'q':
|
if key == 'q':
|
||||||
clear_screen()
|
clear_screen()
|
||||||
break
|
break
|
||||||
elif key == '\x1b':
|
elif key == '\x1b':
|
||||||
next_key = get_char()
|
next_key = get_char()
|
||||||
if next_key == '[':
|
if next_key == '[':
|
||||||
arrow_key = get_char()
|
arrow_key = get_char()
|
||||||
if arrow_key == 'A':
|
if arrow_key == 'A':
|
||||||
selected_idx = max(0, selected_idx - 1)
|
selected_idx = max(0, selected_idx - 1)
|
||||||
elif arrow_key == 'B':
|
elif arrow_key == 'B':
|
||||||
selected_idx = min(len(audio_files) - 1, selected_idx + 1)
|
selected_idx = min(len(audio_files) - 1, selected_idx + 1)
|
||||||
elif arrow_key == 'C':
|
elif arrow_key == 'C':
|
||||||
current_day_idx = (current_day_idx + 1) % len(days_of_week)
|
current_day_idx = (current_day_idx + 1) % len(days_of_week)
|
||||||
elif arrow_key == 'D':
|
elif arrow_key == 'D':
|
||||||
current_day_idx = (current_day_idx - 1) % len(days_of_week)
|
current_day_idx = (current_day_idx - 1) % len(days_of_week)
|
||||||
elif arrow_key == '5':
|
elif arrow_key == '5':
|
||||||
try:
|
try:
|
||||||
next_key = get_char()
|
next_key = get_char()
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
selected_idx = max(0, selected_idx - visible_lines)
|
selected_idx = max(0, selected_idx - visible_lines)
|
||||||
elif arrow_key == '6':
|
elif arrow_key == '6':
|
||||||
try:
|
try:
|
||||||
next_key = get_char()
|
next_key = get_char()
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
selected_idx = min(len(audio_files) - 1, selected_idx + visible_lines)
|
selected_idx = min(len(audio_files) - 1, selected_idx + visible_lines)
|
||||||
elif key == ' ':
|
elif key == ' ':
|
||||||
selected_idx = min(len(audio_files) - 1, selected_idx + visible_lines)
|
selected_idx = min(len(audio_files) - 1, selected_idx + visible_lines)
|
||||||
elif key.lower() == 'm':
|
elif key.lower() == 'm':
|
||||||
current_day = days_of_week[current_day_idx]
|
current_day = days_of_week[current_day_idx]
|
||||||
file = audio_files[selected_idx]
|
file = audio_files[selected_idx]
|
||||||
is_in_playlist = file in playlists[current_day]['morning']
|
is_in_playlist = file in playlists[current_day]['morning']
|
||||||
@@ -318,7 +317,7 @@ def main():
|
|||||||
playlists[current_day]['morning'].add(file)
|
playlists[current_day]['morning'].add(file)
|
||||||
|
|
||||||
update_playlist_file(current_day, 'morning', file, not is_in_playlist)
|
update_playlist_file(current_day, 'morning', file, not is_in_playlist)
|
||||||
elif key.lower() == 'd':
|
elif key.lower() == 'd':
|
||||||
current_day = days_of_week[current_day_idx]
|
current_day = days_of_week[current_day_idx]
|
||||||
file = audio_files[selected_idx]
|
file = audio_files[selected_idx]
|
||||||
is_in_playlist = file in playlists[current_day]['day']
|
is_in_playlist = file in playlists[current_day]['day']
|
||||||
@@ -330,7 +329,7 @@ def main():
|
|||||||
|
|
||||||
update_playlist_file(current_day, 'day', file, not is_in_playlist)
|
update_playlist_file(current_day, 'day', file, not is_in_playlist)
|
||||||
|
|
||||||
elif key.lower() == 'n':
|
elif key.lower() == 'n':
|
||||||
current_day = days_of_week[current_day_idx]
|
current_day = days_of_week[current_day_idx]
|
||||||
file = audio_files[selected_idx]
|
file = audio_files[selected_idx]
|
||||||
is_in_playlist = file in playlists[current_day]['night']
|
is_in_playlist = file in playlists[current_day]['night']
|
||||||
@@ -354,13 +353,13 @@ def main():
|
|||||||
|
|
||||||
update_playlist_file(current_day, 'late_night', file, not is_in_playlist)
|
update_playlist_file(current_day, 'late_night', file, not is_in_playlist)
|
||||||
|
|
||||||
elif key.lower() == 'c':
|
elif key.lower() == 'c':
|
||||||
current_day = days_of_week[current_day_idx]
|
current_day = days_of_week[current_day_idx]
|
||||||
playlists = copy_day_to_all(playlists, current_day, days_of_week)
|
playlists = copy_day_to_all(playlists, current_day, days_of_week)
|
||||||
flash_message = f"Playlists from {current_day} copied to all other days!"
|
flash_message = f"Playlists from {current_day} copied to all other days!"
|
||||||
message_timer = 0
|
message_timer = 0
|
||||||
|
|
||||||
elif key.lower() == 'f':
|
elif key.lower() == 'f':
|
||||||
current_day = days_of_week[current_day_idx]
|
current_day = days_of_week[current_day_idx]
|
||||||
current_file = audio_files[selected_idx]
|
current_file = audio_files[selected_idx]
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user