This repository has been archived on 2022-12-29. You can view files and clone it, but cannot push or open issues or pull requests.
zeropod/plugin/music/__init__.py

31 lines
1.2 KiB
Python
Raw Normal View History

2022-12-28 10:14:33 -06:00
from os import path, listdir
from menu import Menu, MenuItem, MenuType
from cinput import ControlInput
from graphics import Graphics
from .player import MusicPlayer
def execute(cinput: ControlInput, graphics: Graphics, directory: str):
2022-12-28 10:51:41 -06:00
is_resume = directory != "music"
2022-12-28 10:14:33 -06:00
current_dir = path.join("/home/rudism", directory)
2022-12-28 10:51:41 -06:00
top_menu = create_directory_menu(current_dir, "music", is_resume)
2022-12-28 10:32:07 -06:00
menu = Menu(top_menu.data["sub_menu"], cinput, graphics)
2022-12-28 10:14:33 -06:00
MusicPlayer(cinput, graphics, menu).run()
2022-12-28 10:51:41 -06:00
def create_directory_menu(directory: str, dirname: str, is_resume: bool):
2022-12-28 10:14:33 -06:00
sub_menu = list()
2022-12-28 10:51:41 -06:00
for fname in sorted(listdir(directory), key=str.casefold):
2022-12-28 10:14:33 -06:00
new_path = path.join(directory, fname)
if path.isdir(new_path):
2022-12-28 10:51:41 -06:00
sub_menu.append(create_directory_menu(new_path, fname, is_resume))
2022-12-28 10:14:33 -06:00
if len(sub_menu) > 0:
return MenuItem(dirname, MenuType.SUB_MENU, {"sub_menu": sub_menu})
else:
2022-12-28 10:40:20 -06:00
if dirname.startswith("_"):
2022-12-28 10:51:41 -06:00
return MenuItem(dirname.lstrip("_"), MenuType.CMD, {
"dir": directory,
"mode": "random"})
2022-12-28 10:40:20 -06:00
else:
2022-12-28 10:51:41 -06:00
return MenuItem(dirname, MenuType.CMD, {
"dir": directory,
"mode": "resume" if is_resume else "album"})