pystations/radiomenu.py
Greg Gauthier 0d48269790
All checks were successful
Pylint / build (3.12) (push) Successful in 7s
massive refactoring, and pylint cleanup
2024-07-22 21:28:45 +01:00

33 lines
1.0 KiB
Python

import subprocess
from python_console_menu import AbstractMenu, MenuItem
from config import player, options, maxitems
class RadioMenu(AbstractMenu):
def __init__(self, station_list=None):
super().__init__("Radio Player Menu")
if station_list is None:
station_list = []
for i, station in enumerate(station_list, start=1):
self.add_menu_item(
MenuItem(
i,
(
f"{station['name'][:30]:<30} "
f"{station['codec'][:5]:<5} "
f"{station['bitrate'][:5]:<5} "
f"{station['url']}"
),
lambda url=station["url"]: subprocess.run(
[player(), options(), url],
capture_output=True, text=True, check=True
).stdout
)
)
def initialise(self):
self.add_menu_item(MenuItem(maxitems(), "Exit menu").set_as_exit_option())