@@ -31,6 +31,7 @@ export type TorrentFile = Record<TorrentFileFieldsType, any>;
3131export interface Torrent extends TorrentBase {
3232 cachedError : string ,
3333 cachedTrackerStatus : string ,
34+ cachedTrackerDlCount : number ,
3435 cachedMainTracker : string ,
3536 cachedPeersTotal : number ,
3637 cachedSeedsTotal : number ,
@@ -82,6 +83,12 @@ function getTrackerStatus(torrent: TorrentBase): string {
8283 return getTrackerAnnounceState ( trackers [ 0 ] ) ;
8384}
8485
86+ function getTrackerDlCount ( torrent : TorrentBase ) : number {
87+ const trackers = torrent . trackerStats as TrackerStats [ ] ;
88+ if ( torrent . status === Status . stopped || trackers . length === 0 ) return - 1 ;
89+ return trackers . map ( ( t ) => t . downloadCount as number ) . reduce ( ( total , current ) => total + current , 0 ) as number ;
90+ }
91+
8592const portRe = / : \d + $ / ;
8693const httpRe = / ^ h t t p s ? : \/ \/ / ;
8794
@@ -121,6 +128,7 @@ export async function processTorrent(t: TorrentBase, lookupIps: boolean, ignored
121128 downloadDir : ( t . downloadDir as string ) . replaceAll ( "\\" , "/" ) ,
122129 cachedError : getTorrentError ( t ) ,
123130 cachedTrackerStatus : getTrackerStatus ( t ) ,
131+ cachedTrackerDlCount : getTrackerDlCount ( t ) ,
124132 cachedMainTracker : getTorrentMainTracker ( t , ignoredPrefixesRe ) ,
125133 cachedSeedsTotal : getSeedsTotal ( t ) ,
126134 cachedPeersTotal : getPeersTotal ( t ) ,
0 commit comments