diff --git a/twitchdl/commands/clips.py b/twitchdl/commands/clips.py index eb012f3..4babfab 100644 --- a/twitchdl/commands/clips.py +++ b/twitchdl/commands/clips.py @@ -16,6 +16,15 @@ def clips(args): generator = twitch.channel_clips_generator(args.channel_name, args.period, limit) + if args.sort != "views-desc": + match args.sort: + case "views-asc": + generator = sorted(list(generator), key=lambda x: x['viewCount']) + case "date-desc": + generator = sorted(list(generator), key=lambda x: x['createdAt'], reverse=True) + case "date-asc": + generator = sorted(list(generator), key=lambda x: x['createdAt']) + if args.json: return print_json(list(generator)) diff --git a/twitchdl/console.py b/twitchdl/console.py index 92ee67b..6557181 100644 --- a/twitchdl/console.py +++ b/twitchdl/console.py @@ -87,7 +87,7 @@ def rate(value: str) -> int: "type": str, }), (["-l", "--limit"], { - "help": "Number of videos to fetch. Defaults to 40 in copmpact mode, 10 otherwise.", + "help": "Number of videos to fetch. Defaults to 40 in compact mode, 10 otherwise.", "type": pos_integer, }), (["-a", "--all"], { @@ -143,6 +143,12 @@ def rate(value: str) -> int: "action": "store_true", "default": False, }), + (["-s", "--sort"], { + "help": "Order in which to return clips. Defaults to `views-desc`.", + "type": str, + "choices": ["views-desc", "views-asc", "date-desc", "date-asc"], + "default": "views-desc", + }), (["-P", "--period"], { "help": "Period from which to return clips. Defaults to `all_time`.", "type": str,