@@ -73,14 +73,6 @@ def torrents_info():
73
73
qbt_client .torrents_delete (delete_files = False , torrent_hashes = torrent_hashes )
74
74
return
75
75
76
- torrents_by_state = {}
77
- for torrent in all_torrents :
78
- torrents_by_state .setdefault (torrent .state , []).append (torrent )
79
-
80
- torrents_by_tracker = {}
81
- for torrent in all_torrents :
82
- torrents_by_tracker .setdefault (qbt_get_tracker (qbt_client , torrent ), []).append (torrent )
83
-
84
76
interesting_states = [
85
77
"stoppedUP" ,
86
78
"queuedUP" ,
@@ -95,17 +87,23 @@ def torrents_info():
95
87
"error" ,
96
88
]
97
89
98
- tbl = []
99
- for state in {* interesting_states } - {"uploading" , "downloading" }:
100
- torrents = torrents_by_state .get (state )
101
- if not torrents :
102
- continue
90
+ torrents_by_state = {}
91
+ for torrent in all_torrents :
92
+ torrents_by_state .setdefault (torrent .state , []).append (torrent )
93
+
94
+ if args .verbose >= consts .LOG_INFO :
95
+ torrents_by_tracker = {}
96
+ for torrent in all_torrents :
97
+ torrents_by_tracker .setdefault (qbt_get_tracker (qbt_client , torrent ), []).append (torrent )
98
+
99
+ tbl = []
100
+ for state in {* interesting_states } - {"uploading" , "downloading" }:
101
+ torrents = torrents_by_state .get (state )
102
+ if not torrents :
103
+ continue
103
104
104
- torrents = sorted (torrents , key = lambda t : (- t .seen_complete , t .time_active ))
105
+ torrents = sorted (torrents , key = lambda t : (- t .seen_complete , t .time_active ))
105
106
106
- if args .verbose >= 1 :
107
- printing .extended_view (torrents )
108
- else :
109
107
tbl .extend (
110
108
[
111
109
{
@@ -114,23 +112,27 @@ def torrents_info():
114
112
"seen_complete" : strings .relative_datetime (t .seen_complete ) if t .seen_complete > 0 else None ,
115
113
"last_activity" : strings .relative_datetime (t .last_activity ),
116
114
"time_active" : strings .duration (t .time_active ),
115
+ "num_seeds" : f"{ t .num_complete } ({ t .num_seeds } )" ,
116
+ # 'num_leechs': f"{t.num_incomplete} ({t.num_leechs})",
117
+ # 'comment': t.comment,
117
118
}
118
119
for t in torrents
119
120
]
120
121
)
121
- if tbl :
122
- printing .table (tbl )
123
- print ()
122
+ if tbl :
123
+ printing .table (tbl )
124
+ print ()
124
125
125
- tbl = []
126
- for state in interesting_states :
127
- torrents = torrents_by_state .get (state )
128
- if not torrents :
129
- continue
126
+ tbl = []
127
+ for state in [ "downloading" , "missingFiles" , "error" ] :
128
+ torrents = torrents_by_state .get (state )
129
+ if not torrents :
130
+ continue
130
131
131
- torrents = sorted (torrents , key = lambda t : (t .amount_left == t .total_size , t .eta , t .amount_left ), reverse = True )
132
+ torrents = sorted (
133
+ torrents , key = lambda t : (t .amount_left == t .total_size , t .eta , t .amount_left ), reverse = True
134
+ )
132
135
133
- if args .verbose == 0 :
134
136
tbl .extend (
135
137
[
136
138
{
@@ -139,43 +141,40 @@ def torrents_info():
139
141
"progress" : strings .safe_percent (t .progress ),
140
142
"eta" : strings .duration (t .eta ) if t .eta < 8640000 else None ,
141
143
"remaining" : strings .file_size (t .amount_left ),
142
- "num_seeds" : f"{ t .num_complete } ({ t .num_seeds } )" ,
143
- # 'num_leechs': f"{t.num_incomplete} ({t.num_leechs})",
144
- # 'comment': t.comment,
145
144
}
146
145
for t in torrents
147
146
]
148
147
)
149
- if tbl :
150
- printing .table (tbl )
151
- print ()
148
+ if tbl :
149
+ printing .table (tbl )
150
+ print ()
152
151
153
- trackers = []
154
- for tracker , torrents in torrents_by_tracker .items ():
155
- torrents = [t for t in torrents if args .verbose >= 1 or t .state not in ("stoppedDL" ,)]
156
- remaining = sum (t .amount_left for t in torrents )
157
- if remaining or args .verbose >= 1 :
158
- trackers .append (
152
+ trackers = []
153
+ for tracker , torrents in torrents_by_tracker .items ():
154
+ torrents = [t for t in torrents if args .verbose >= 2 or t .state not in ("stoppedDL" ,)]
155
+ remaining = sum (t .amount_left for t in torrents )
156
+ if remaining or args .verbose >= 2 :
157
+ trackers .append (
158
+ {
159
+ "tracker" : tracker ,
160
+ "count" : len (torrents ),
161
+ "size" : sum (t .total_size for t in torrents ),
162
+ "remaining" : remaining ,
163
+ "file_count" : sum (len (t .files ) for t in torrents ) if args .verbose >= 2 else None , # a bit slow
164
+ }
165
+ )
166
+ if trackers :
167
+ trackers = sorted (trackers , key = lambda d : (d ["remaining" ], d ["size" ]))
168
+ trackers = [
159
169
{
160
- "tracker" : tracker ,
161
- "count" : len (torrents ),
162
- "size" : sum (t .total_size for t in torrents ),
163
- "remaining" : remaining ,
164
- "file_count" : sum (len (t .files ) for t in torrents ) if args .verbose >= 1 else None , # a bit slow
170
+ ** d ,
171
+ "size" : strings .file_size (d ["size" ]),
172
+ "remaining" : strings .file_size (d ["remaining" ]) if d ["remaining" ] else None ,
165
173
}
166
- )
167
- if trackers :
168
- trackers = sorted (trackers , key = lambda d : (d ["remaining" ], d ["size" ]))
169
- trackers = [
170
- {
171
- ** d ,
172
- "size" : strings .file_size (d ["size" ]),
173
- "remaining" : strings .file_size (d ["remaining" ]) if d ["remaining" ] else None ,
174
- }
175
- for d in trackers
176
- ]
177
- printing .table (iterables .list_dict_filter_bool (trackers ))
178
- print ()
174
+ for d in trackers
175
+ ]
176
+ printing .table (iterables .list_dict_filter_bool (trackers ))
177
+ print ()
179
178
180
179
categories = []
181
180
for state , torrents in torrents_by_state .items ():
@@ -186,7 +185,7 @@ def torrents_info():
186
185
"count" : len (torrents ),
187
186
"size" : strings .file_size (sum (t .total_size for t in torrents )),
188
187
"remaining" : strings .file_size (remaining ) if remaining else None ,
189
- "file_count" : sum (len (t .files ) for t in torrents ) if args .verbose >= 1 else None , # a bit slow
188
+ "file_count" : sum (len (t .files ) for t in torrents ) if args .verbose >= 2 else None , # a bit slow
190
189
}
191
190
)
192
191
0 commit comments