radiostations/radiomenu.py

30 lines
1.0 KiB
Python

from python_console_menu import AbstractMenu, MenuItem
import subprocess
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 in range(len(station_list)):
if i < maxitems(): # The last item is the exit option, so not "<=".
self.add_menu_item(
MenuItem(
i,
station_list[i]["name"] + " " +
station_list[i]["codec"] + " " +
station_list[i]["bitrate"] + " " +
station_list[i]["url"],
lambda url=station_list[i]["url"]: subprocess.run([player(), options(), url])
)
)
else:
break
def initialise(self):
self.add_menu_item(MenuItem(maxitems(), "Exit menu").set_as_exit_option())