diff --git a/dcc/ls.py b/dcc/ls.py index b7fb0ce..597a31a 100644 --- a/dcc/ls.py +++ b/dcc/ls.py @@ -6,6 +6,7 @@ class List(dcc.config.ListerBase): def get_parser(self, prog_name): parser = super().get_parser(prog_name) parser.add_argument("target") + parser.add_argument("--wad") return parser def take_action(self, parsed_args): @@ -23,33 +24,21 @@ class List(dcc.config.ListerBase): os.scandir(self.iwads) if x.is_file() ) ) + case "demos": + return ( + ("demos",), sorted( + (x.name,) for x in + os.scandir(self.demos.joinpath(parsed_args.wad)) + if x.name.endswith(".lmp") + ) + ) + case "videos": + return ( + ("videos",), sorted( + (x.name,) for x in + os.scandir(self.fabricate.joinpath(parsed_args.wad)) + if x.name.endswith(".mp4") + ) + ) case _: raise Exception(f"unknown target {parsed_args.target}") - - -class WadList(dcc.config.ListerBase): - def get_parser(self, prog_name): - parser = super().get_parser(prog_name) - parser.add_argument("wad") - return parser - - def _get_results(self, name, base, wad, ext): - return ( - (name,), sorted( - (x.name,) for x in - os.scandir(base.joinpath(wad)) - if x.name.endswith(ext) - ) - ) - - -class ListDemos(WadList): - def take_action(self, parsed_args): - return self._get_results("demos", self.demos, parsed_args.wad, ".lmp") - - -class ListVideos(WadList): - def take_action(self, parsed_args): - return self._get_results( - "videos", self.fabricate, parsed_args.wad, ".mp4" - ) diff --git a/dcc/main.py b/dcc/main.py index 7fb436b..de01819 100644 --- a/dcc/main.py +++ b/dcc/main.py @@ -33,8 +33,6 @@ class DCC(App): "fabricate": dcc.fabricate.Fabricate, "fetch": dcc.fetch.Fetch, "ls": dcc.ls.List, - "ls demos": dcc.ls.ListDemos, - "ls videos": dcc.ls.ListVideos, "pb": dcc.pb.PB, "play": dcc.play.Play, "put": dcc.put.Put,