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())