From 6c6a3151caf324122c8e0fdd74e66f431570c177 Mon Sep 17 00:00:00 2001 From: ChaotiCryptidz Date: Thu, 10 Feb 2022 12:03:23 +0000 Subject: [PATCH] add by folder --- musicutil/commands/genhtml_command.py | 35 +++++++++++++++++++++------ 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/musicutil/commands/genhtml_command.py b/musicutil/commands/genhtml_command.py index f90a63c..2941865 100644 --- a/musicutil/commands/genhtml_command.py +++ b/musicutil/commands/genhtml_command.py @@ -9,6 +9,7 @@ class GenHTMLArgs(): dest: str title: str description: str + by_folder: bool def add_genhtml_command(subparsers): genhtml_parser = subparsers.add_parser('genhtml') @@ -28,6 +29,9 @@ def add_genhtml_command(subparsers): 'description', type=str, help='description') + genhtml_parser.add_argument( + '--by-folder', + action='store_true') def get_genhtml_args(args) -> GenHTMLArgs: command_args = GenHTMLArgs() @@ -35,15 +39,18 @@ def get_genhtml_args(args) -> GenHTMLArgs: command_args.dest = args.dest command_args.title = args.title command_args.description = args.description + command_args.by_folder = args.by_folder return command_args -def make_table_for_files(files: list[File]) -> str: +def make_table_for_files(files: list[File], by_folder: bool = False) -> str: html_content = "" - html_content += """ + path_head = "Path" if not by_folder else "" + + html_content += f""" - + {path_head} @@ -52,15 +59,18 @@ def make_table_for_files(files: list[File]) -> str: """ isOdd = True + print(files) for file in files: tdClass = "pure-table-odd" if isOdd else "pure-table-even" data_path = escape_html(file.path_from_src) data_title = escape_html(file.tags.title) data_artist = escape_html(file.tags.artist) data_extension = escape_html(file.extension) + path_data = f"" if not by_folder else "" + html_content += f""" - + {path_data} @@ -71,8 +81,7 @@ def make_table_for_files(files: list[File]) -> str:
PathTitle Artist Format
{data_path}
{data_path}{data_title} {data_artist} {data_extension}
""" - - + return html_content class GenHTMLCommand(): def __init__(self, args: GenHTMLArgs): @@ -105,7 +114,19 @@ class GenHTMLCommand(): """ - html_content += make_table_for_files(files) + if self.args.by_folder: + files_per_folder: dict[str, list[File]] = {} + for file in files: + if not file.path_from_src in files_per_folder.keys(): + files_per_folder[file.path_from_src] = [] + files_per_folder[file.path_from_src].append(file) + for folder in files_per_folder.keys(): + folder_name = folder + folder_files = files_per_folder[folder_name] + html_content += f"

{folder_name}

" + html_content += make_table_for_files(folder_files, True) + else: + html_content += make_table_for_files(files) html_content += """