utorrent-block-xunlei
Version:
Xunlei Blocker of uTorrent
165 lines (164 loc) • 4.82 kB
TypeScript
import { inspect } from 'xshell';
export * from './resume-data';
export declare class Peer {
country: string;
ip: string;
reverse_dns: string;
utp: number;
port: number;
client: string;
flags: string;
/** 0 - 1000 */
progress: number;
download_speed: number;
upload_speed: number;
requests_out: number;
requests_in: number;
waited: Date;
uploaded: number;
downloaded: number;
hash_error: number;
/** 用户 */
peer_download_speed: number;
max_upload_speed: number;
max_download_speed: number;
queued: number;
inactive: number;
relevance: number;
torrent: Torrent;
should_block: boolean;
constructor(raw_data: (string | number)[], torrent: Torrent);
to_str(): string;
format_client(): string;
format_download_speed(): string;
format_upload_speed(): string;
format_downloaded(): string;
format_ipinfo(): string;
[inspect.custom](): string;
}
export declare enum Status {
STARTED = 1,
CHECKING = 2,
ERROR = 16,
PAUSED = 32,
QUEUED = 64
}
export declare class Torrent {
hash: string;
status: number;
name: string;
/** bytes */
size: number;
/** 0 - 1000 */
progress: number;
/** uTorrent 累计下载量 bytes */
downloaded: number;
/** uTorrent 累积上传量 bytes */
uploaded: number;
/** 需除以 1000 ? */
ratio: number;
/** bytes/second */
upload_speed: number;
/** bytes/second */
download_speed: number;
/** estimated time of arrival (seconds) */
time_remaining: number;
label: string;
peers_connected: number;
peers_in_swarm: number;
seeds_connected: number;
seeds_in_swarm: number;
availability: number;
/** -1 表示未在队列中 */
queue_position: number;
/** 剩余大小 */
remaining: number;
download_url: string;
rss_feed_url: string;
status_message: string;
stream_id: string;
date_added: Date;
date_completed: Date;
app_update_url: string;
save_path: string;
/** status 按位与 Status 相与并结合 progress 信息得到 */
state: ['下载' | '做种' | '暂停' | '停止' | '完成' | '检查' | '错误' | '排队', string];
utorrent: UTorrent;
peers: Peer[];
constructor(raw_data: (string | number)[], utorrent: UTorrent);
get_peers(): Promise<Peer[]>;
[inspect.custom](): string;
to_str(): string;
format_upload_speed(): string;
format_download_speed(): string;
format_state(): string;
format_time_remaining(): string;
}
export declare class UTorrent {
root_url: string;
username: string;
password: string;
fp_ipfilter: string;
/** 启动时 ipfilter 中已有的数据 */
static_ipfilter: string;
/** 检测 peers 并屏蔽的时间间隔 */
interval: number;
/** 间隔 interval 秒自动重置当前时间间隔内被动态屏蔽的 IP */
interval_reset: number;
state: 'INIT' | 'IDLE' | 'RUNNING';
state_resetting: 'INIT' | 'IDLE' | 'RUNNING';
print: {
/** ['下载'] */
torrents: '下载' | '做种' | '所有' | boolean;
/** [true] */
peers: boolean;
};
token: string;
blocked_ips: Set<string>;
torrents: Torrent[];
static launch(exe: string): Promise<void>;
private constructor();
static connect(options: {
root_url: string;
username: string;
password: string;
fp_ipfilter: string;
interval: number;
interval_reset: number;
/** print?: true */
print?: boolean | {
/** ['下载'] */
torrents: '下载' | '做种' | '所有' | boolean;
/** [true] */
peers: boolean;
};
}): Promise<UTorrent>;
/** get token */
get_token(): Promise<void>;
rpc({ api, params, method }?: {
api?: string;
params?: Record<string, any>;
method?: 'GET' | 'POST';
}): Promise<any>;
get_torrents(): Promise<Torrent[]>;
get_peers(torrents?: Torrent[]): Promise<Peer[]>;
print_peers(peers?: Peer[], { limit }?: {
limit?: number;
}): Promise<void>;
print_torrents({ torrents, filter }?: {
torrents?: Torrent[];
filter?: (torrent: Torrent) => boolean;
}): Promise<void>;
print_blockeds(): Promise<void>;
block_peers(torrents?: Torrent[]): Promise<Peer[]>;
reload_ipfilter(): Promise<any>;
reset_ipfilter(): Promise<void>;
reset_blocked_ips(): Promise<void>;
find_torrent(name_pattern: string | RegExp): Torrent;
start_blocking(): Promise<void>;
start_resetting_blocked_ips(): Promise<void>;
stop_blocking(): Promise<void>;
hide_display(): void;
show_display(): void;
}
export default UTorrent;