pystations/radiomenu.py

33 lines
1.0 KiB
Python
Raw Permalink Normal View History

2021-03-14 07:30:29 +00:00
import subprocess
from python_console_menu import AbstractMenu, MenuItem
from config import player, options, maxitems
2021-03-14 07:30:29 +00:00
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
2021-03-14 07:30:29 +00:00
)
)
2021-03-14 07:30:29 +00:00
def initialise(self):
self.add_menu_item(MenuItem(maxitems(), "Exit menu").set_as_exit_option())