2021-03-14 07:30:29 +00:00
|
|
|
import subprocess
|
|
|
|
|
2024-07-22 20:28:45 +00:00
|
|
|
from python_console_menu import AbstractMenu, MenuItem
|
|
|
|
|
2021-03-16 08:13:48 +00:00
|
|
|
from config import player, options, maxitems
|
2021-03-15 20:46:15 +00:00
|
|
|
|
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 = []
|
|
|
|
|
2024-07-22 20:28:45 +00:00
|
|
|
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
|
|
|
)
|
2024-07-22 20:28:45 +00:00
|
|
|
)
|
2021-03-14 07:30:29 +00:00
|
|
|
|
|
|
|
def initialise(self):
|
2021-03-16 08:13:48 +00:00
|
|
|
self.add_menu_item(MenuItem(maxitems(), "Exit menu").set_as_exit_option())
|