Skip to content

Commit 01d8eda

Browse files
committed
torrents-info: more sort options
1 parent 3bfa891 commit 01d8eda

File tree

1 file changed

+39
-3
lines changed

1 file changed

+39
-3
lines changed

library/playback/torrents_info.py

Lines changed: 39 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from pathlib import Path
44

55
#!/usr/bin/python3
6-
from random import randint
6+
from random import randint, shuffle
77
from statistics import mean, median
88
from time import sleep
99

@@ -542,10 +542,46 @@ def shorten(s, width):
542542

543543
if args.sort == "priority":
544544
torrents = sorted(torrents, key=lambda t: t.priority, reverse=reverse_sort)
545+
elif args.sort == "progress":
546+
torrents = sorted(torrents, key=lambda t: t.progress, reverse=reverse_sort)
545547
elif args.sort == "ratio":
546548
torrents = sorted(torrents, key=lambda t: t.ratio, reverse=reverse_sort)
547549
elif args.sort == "remaining":
548550
torrents = sorted(torrents, key=lambda t: t.amount_left, reverse=reverse_sort)
551+
elif args.sort == "random":
552+
torrents = shuffle(torrents)
553+
elif args.sort == "seeders":
554+
torrents = sorted(torrents, key=lambda t: t.num_complete, reverse=reverse_sort)
555+
elif args.sort == "leechers":
556+
torrents = sorted(torrents, key=lambda t: t.num_incomplete, reverse=reverse_sort)
557+
elif args.sort == "time_active":
558+
torrents = sorted(torrents, key=lambda t: t.time_active, reverse=reverse_sort)
559+
elif args.sort == "time_added":
560+
torrents = sorted(torrents, key=lambda t: t.added_on, reverse=reverse_sort)
561+
elif args.sort == "time_stalled":
562+
torrents = sorted(torrents, key=lambda t: t.last_activity, reverse=reverse_sort)
563+
elif args.sort == "time_completed":
564+
torrents = sorted(torrents, key=lambda t: t.completion_on, reverse=reverse_sort)
565+
elif args.sort == "time_remaining":
566+
torrents = sorted(torrents, key=lambda t: (not t.state_enum.is_complete and t.eta and t.eta < 8640000, t.eta), reverse=reverse_sort)
567+
elif args.sort == "time_unseeded":
568+
torrents = sorted(torrents, key=lambda t: (t.num_complete == 0 and t.seen_complete > 0, t.seen_complete), reverse=reverse_sort)
569+
elif args.sort == "time_downloading":
570+
torrents = sorted(torrents, key=lambda t: t.downloading_time, reverse=reverse_sort)
571+
elif args.sort == "time_seeding":
572+
torrents = sorted(torrents, key=lambda t: t.seeding_time, reverse=reverse_sort)
573+
elif args.sort in ["downloaded_session", "download_session"]:
574+
torrents = sorted(torrents, key=lambda t: t.downloaded_session, reverse=reverse_sort)
575+
elif args.sort in ["uploaded_session", "upload_session"]:
576+
torrents = sorted(torrents, key=lambda t: t.uploaded_session, reverse=reverse_sort)
577+
elif args.sort in ["dl_speed", "dlspeed"]:
578+
torrents = sorted(torrents, key=lambda t: t.dlspeed, reverse=reverse_sort)
579+
elif args.sort in ["ul_speed", "ulspeed", "upspeed"]:
580+
torrents = sorted(torrents, key=lambda t: t.upspeed, reverse=reverse_sort)
581+
elif args.sort == "tracker":
582+
torrents = sorted(torrents, key=lambda t: t.tracker_domain(), reverse=reverse_sort)
583+
elif args.sort == "tracker_count":
584+
torrents = sorted(torrents, key=lambda t: t.tracker_count(), reverse=reverse_sort)
549585
elif args.sort in ["counts", "count"]:
550586
torrents = sorted(torrents, key=lambda t: len(torrent_files(t)), reverse=reverse_sort)
551587
elif args.sort in ["size", "total_size"]:
@@ -561,9 +597,9 @@ def shorten(s, width):
561597
),
562598
reverse=reverse_sort,
563599
)
564-
elif args.sort in ["download", "ingress"]:
600+
elif args.sort in ["downloaded", "download", "ingress"]:
565601
torrents = sorted(torrents, key=lambda t: (t.downloaded, t.downloaded_session), reverse=reverse_sort)
566-
elif args.sort in ["upload", "egress"]:
602+
elif args.sort in ["uploaded", "upload", "egress"]:
567603
torrents = sorted(torrents, key=lambda t: (t.uploaded, t.uploaded_session), reverse=reverse_sort)
568604
elif args.inactive:
569605
torrents = sorted(

0 commit comments

Comments
 (0)