UNPKG

@putdotio/api-client

Version:

JavaScript SDK for interacting with the put.io API.

108 lines (107 loc) 3.55 kB
import { ISODateString } from '../../utils/types'; import { IFile } from '../../resources/Files/types'; export declare type NewTransferParams = { url: string; save_parent_id?: IFile['id']; callback_url?: string; }; export declare type NewTransferError = { url: NewTransferParams['url']; status_code: number; error_type: string; }; declare type TransferType = 'URL' | 'TORRENT' | 'PLAYLIST' | 'LIVE_STREAM' | 'N/A'; declare type TransferStatus = 'WAITING' | 'PREPARING_DOWNLOAD' | 'IN_QUEUE' | 'DOWNLOADING' | 'WAITING_FOR_COMPLETE_QUEUE' | 'WAITING_FOR_DOWNLOADER' | 'COMPLETING' | 'STOPPING' | 'SEEDING' | 'COMPLETED' | 'ERROR'; declare type TransferLink = { url: string; label: string; }; declare type BaseTransfer = { availability: null | number; created_at: ISODateString; current_ratio: null | number; down_speed: number; downloaded: number; error_message: null | string; estimated_time: null | number; file_id: null | number; finished_at: null | ISODateString; id: number; is_private: boolean; name: string; save_parent_id: number; seconds_seeding: null | number; size: number; source: string; started_at: null | ISODateString; status: TransferStatus; type: TransferType; subscription_id: null | number; uploaded: number; up_speed: number; callback_url: null | string; client_ip: null | string; completion_percent: number; percent_done: number; created_torrent: boolean; download_id: number; hash: null | string; links: TransferLink[]; peers_connected: number; peers_getting_from_us: number; peers_sending_to_us: number; simulated: boolean; torrent_link: null | string; tracker: null | string; tracker_message: null | string; updated_at?: ISODateString; userfile_exists?: boolean; }; declare type FinishedTransfer = BaseTransfer & { finished_at: ISODateString; file_id: number; }; declare type CompletedTransfer = FinishedTransfer & { status: 'COMPLETED'; }; declare type FailedTransfer = BaseTransfer & { status: 'ERROR'; error_message: string; }; declare type PreparingSeedingTorrentTransfer = FinishedTransfer & { type: 'TORRENT'; status: 'PREPARING_SEED'; }; declare type SeedingTorrentTransfer = FinishedTransfer & { type: 'TORRENT'; status: 'SEEDING'; seconds_seeding: number; current_ratio: number; }; declare type CompletedTorrentTransfer = SeedingTorrentTransfer & { status: 'COMPLETED'; }; export declare type TorrentTransfer = (BaseTransfer | FailedTransfer | SeedingTorrentTransfer | PreparingSeedingTorrentTransfer | CompletedTorrentTransfer) & { type: 'TORRENT'; torrent_link: string; }; export declare type URLTransfer = (BaseTransfer | FailedTransfer | CompletedTransfer) & { type: 'URL'; }; export declare type PlaylistTransfer = (BaseTransfer | FailedTransfer | CompletedTransfer) & { type: 'PLAYLIST'; downloaded_items: number; total_items: number; recorded_seconds: number; }; export declare type LiveStreamTransfer = (BaseTransfer | FailedTransfer | CompletedTransfer) & { type: 'LIVE_STREAM'; recorded_seconds: number; }; export declare type Transfer = TorrentTransfer | URLTransfer | PlaylistTransfer | LiveStreamTransfer; export interface ITransfersResponse { transfers: Transfer[]; total: number; cursor: string; } export {};