From 7d9fa984a61a357fa63eb2cbf79610bf0b9f02be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Geoffrey=20=E2=80=9CFrogeye=E2=80=9D=20Preud=27homme?= Date: Fri, 10 Dec 2021 23:13:29 +0100 Subject: [PATCH] rssVideos: Add list command Then you know which video you should watch next :) --- config/scripts/rssVideos | 36 ++++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/config/scripts/rssVideos b/config/scripts/rssVideos index b88439c..c36b861 100755 --- a/config/scripts/rssVideos +++ b/config/scripts/rssVideos @@ -41,6 +41,9 @@ def configure_logging(args: configargparse.Namespace) -> None: logger=log, ) +class RVCommand(enum.Enum): + download = "download" + list = "list" class RVElement: title: str @@ -302,6 +305,15 @@ def get_args() -> configargparse.Namespace: action="store_true", ) + parser.set_defaults(subcommand=RVCommand.download) + subparsers = parser.add_subparsers(title="subcommand") + + sc_download = subparsers.add_parser("download") + sc_download.set_defaults(subcommand=RVCommand.download) + + sc_list = subparsers.add_parser("list") + sc_list.set_defaults(subcommand=RVCommand.list) + args = parser.parse_args() args.videos = os.path.realpath(os.path.expanduser(args.videos)) @@ -315,14 +327,22 @@ def main() -> None: os.makedirs(args.videos, exist_ok=True) os.chdir(args.videos) - database = RVDatabase(args) - database.read_feed() - cache = RVDatabase.load() - if cache: - database.read_cache(cache) - database.clean() - database.act_all() - database.save() + if args.subcommand == RVCommand.download: + database = RVDatabase(args) + database.read_feed() + cache = RVDatabase.load() + if cache: + database.read_cache(cache) + database.clean() + database.act_all() + database.save() + + elif args.subcommand == RVCommand.list: + cache = RVDatabase.load() + if not cache: + raise FileNotFoundError("This command doesn't work without a cache yet.") + for element in cache.elements: + print(element) if __name__ == "__main__":