transmission-rpc-client
Version:
Transmission client for V3. More info in Git Repo
175 lines (174 loc) • 4.64 kB
TypeScript
import { AbstractRequest } from '../AbstractRequest';
import { Argument, RpcResponse, WithIds } from '../CommonTypes';
export declare type Files = {
bytesCompleted: number;
length: number;
name: string;
};
export declare type FileStats = {
bytesCompleted: number;
wanted: boolean;
priority: number;
};
export declare type Labels = {
label: string;
};
export declare type Peers = {
address: string;
clientName: string;
clientIsChoked: boolean;
clientIsInterested: boolean;
flagStr: string;
isDownloadingFrom: boolean;
isEncrypted: boolean;
isIncoming: boolean;
isUploadingTo: boolean;
isUTP: boolean;
peerIsChoked: boolean;
peerIsInterested: boolean;
port: number;
progress: number;
rateToClient: number;
rateToPeer: number;
};
export declare type PeersFrom = {
fromCache: number;
fromDht: number;
fromIncoming: number;
fromLpd: number;
fromLtep: number;
fromPex: number;
fromTracker: number;
};
export declare enum TorrentStatus {
TorrentStopped = "Stopped",
QueuedToCheckFiles = "Queued to Check files",
CheckingFiles = "Checking files",
QueueToDownload = "Queued",
Downloading = "Downloading",
QueueToSeed = "Queued to Seed",
Seeding = "Seeding"
}
export declare type Trackers = {
announce: string;
id: number;
scrape: string;
tier: number;
};
export declare type TrackerStats = {
announce: string;
announceState: number;
downloadCount: number;
hasAnnounced: boolean;
hasScraped: boolean;
host: string;
id: number;
isBackup: boolean;
lastAnnouncePeerCount: number;
lastAnnounceResult: string;
lastAnnounceStartTime: number;
lastAnnounceSucceeded: boolean;
lastAnnounceTime: number;
lastAnnounceTimedOut: boolean;
lastScrapeResult: string;
lastScrapeStartTime: number;
lastScrapeSucceeded: boolean;
lastScrapeTime: number;
lastScrapeTimedOut: boolean;
leecherCount: number;
nextAnnounceTime: number;
nextScrapeTime: number;
scrape: string;
scrapeState: number;
seederCount: number;
tier: number;
};
export declare type WebSeeds = {
webseed: string;
};
export declare type Torrent = {
activityDate: number;
addedDate: number;
bandwidthPriority: number;
comment: string;
corruptEver: number;
creator: string;
dateCreated: number;
desiredAvailable: number;
doneDate: number;
downloadDir: string;
downloadedEver: number;
downloadLimit: number;
downloadLimited: boolean;
editDate: number;
error: number;
errorString: string;
eta: number;
etaIdle: number;
'file-count': number;
files: Files[];
fileStats: FileStats[];
hashString: string;
haveUnchecked: number;
haveValid: number;
honorsSessionLimits: boolean;
id: number;
isFinished: boolean;
isPrivate: boolean;
isStalled: boolean;
labels: Labels[];
leftUntilDone: number;
magnetLink: string;
manualAnnounceTime: number;
maxConnectedPeers: number;
metadataPercentComplete: number;
name: string;
peerLimit: number;
peers: Peers[];
peersConnected: number;
peersFrom: PeersFrom;
peersGettingFromUs: number;
peersSendingToUs: number;
percentDone: number;
pieces: string;
pieceCount: number;
pieceSize: number;
priorities: any[];
'primary-mime-type': string;
queuePosition: number;
rateDownload: number;
rateUpload: number;
recheckProgress: number;
secondsDownloading: number;
secondsSeeding: number;
seedIdleLimit: number;
seedIdleMode: number;
seedRatioLimit: number;
seedRatioMode: number;
sizeWhenDone: number;
startDate: number;
status: TorrentStatus;
trackers: Trackers[];
trackerStats: TrackerStats[];
totalSize: number;
torrentFile: string;
uploadedEver: number;
uploadLimit: number;
uploadLimited: boolean;
uploadRatio: number;
wanted: boolean[];
webseeds: WebSeeds[];
webseedsSendingToUs: number;
};
export declare type TorrentKey = keyof Torrent;
export declare type GetTorrentRequestArguments = {
fields: TorrentKey[];
} & WithIds & Argument;
export declare type GetTorrentResponseArguments = {
torrents: Torrent[];
} & Argument;
export declare class GetTorrentRequest extends AbstractRequest<GetTorrentRequestArguments> {
private constructor();
static of(args: GetTorrentRequestArguments, tag?: number): GetTorrentRequest;
}
export declare type GetTorrentResponse = {} & RpcResponse<GetTorrentResponseArguments>;