mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-10-03 22:37:03 +00:00
Merge pull request #26765 from Diasiare/master
[@types/deluge] Add typings for the deluge npm library
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
import deluge = require("deluge");
|
||||
import * as http from 'http';
|
||||
|
||||
const delugeInstance: deluge.Deluge = deluge("deluge-webui-api-url", "password");
|
||||
|
||||
delugeInstance.getHosts((error: string, result: deluge.Host[], response: http.ServerResponse) => {
|
||||
});
|
||||
|
||||
delugeInstance.connect("id", (error: string, result: boolean, response: http.ServerResponse) => {
|
||||
});
|
||||
|
||||
delugeInstance.add("magnet_link", "path", (error: string, result: boolean, response: http.ServerResponse) => {
|
||||
});
|
||||
|
||||
delugeInstance.getTorrentRecord((error: string, result: deluge.TorrentRecord, response: http.ServerResponse) => {
|
||||
});
|
||||
|
||||
delugeInstance.isConnected((error: string, result: boolean, response: http.ServerResponse) => {
|
||||
});
|
||||
|
||||
delugeInstance.setCookies({ "http://www.some-private-tracker.com/": "my_cookie1=xxx;my_cookie2=yyy;" },
|
||||
(error: string, result: boolean, response: http.ServerResponse) => {
|
||||
});
|
||||
Vendored
+122
@@ -0,0 +1,122 @@
|
||||
// Type definitions for deluge 1.7
|
||||
// Project: https://github.com/ginman86/deluge
|
||||
// Definitions by: Felix Plymouth <https://github.com/Diasiare>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
|
||||
/// <reference types="node"/>
|
||||
|
||||
import * as http from "http";
|
||||
|
||||
export = deluge;
|
||||
|
||||
declare function deluge(deluge_url: string, password: string): deluge.Deluge;
|
||||
|
||||
declare namespace deluge {
|
||||
interface Host {
|
||||
id: string;
|
||||
ip: string;
|
||||
port: number;
|
||||
status: string;
|
||||
}
|
||||
|
||||
interface DelugeStats {
|
||||
upload_protocol_rate: number;
|
||||
max_upload: number;
|
||||
download_protocol_rate: number;
|
||||
download_rate: number;
|
||||
has_incoming_connections: boolean;
|
||||
num_connections: number;
|
||||
max_download: number;
|
||||
upload_rate: number;
|
||||
dht_nodes: number;
|
||||
free_space: number;
|
||||
max_num_connections: number;
|
||||
}
|
||||
|
||||
interface Torrent {
|
||||
max_download_speed: number;
|
||||
upload_payload_rate: number;
|
||||
download_payload_rate: number;
|
||||
num_peers: number;
|
||||
ratio: number;
|
||||
total_peers: number;
|
||||
state: string;
|
||||
max_upload_speed: number;
|
||||
eta: number;
|
||||
save_path: string;
|
||||
progress: number;
|
||||
time_added: number;
|
||||
tracker_host: string;
|
||||
total_uploaded: number;
|
||||
total_done: number;
|
||||
total_wanted: number;
|
||||
total_seeds: number;
|
||||
seeds_peers_ratio: number;
|
||||
num_seeds: number;
|
||||
name: string;
|
||||
is_auto_managed: boolean;
|
||||
queue: number;
|
||||
distributed_copies: number;
|
||||
}
|
||||
|
||||
interface TorrentRecord {
|
||||
stats: DelugeStats;
|
||||
connected: boolean;
|
||||
torrents: {
|
||||
[key: string]: Torrent;
|
||||
};
|
||||
filters: {
|
||||
state: Array<[string, number]>;
|
||||
tracker_host: Array<[string, number]>;
|
||||
};
|
||||
}
|
||||
|
||||
interface DownloadOptions {
|
||||
file_priorities: any[];
|
||||
add_paused: boolean;
|
||||
compact_allocation: boolean;
|
||||
download_location: string;
|
||||
max_connections: number;
|
||||
max_download_speed: number;
|
||||
max_upload_slots: number;
|
||||
max_upload_speed: number;
|
||||
prioritize_first_last_pieces: boolean;
|
||||
}
|
||||
|
||||
interface Deluge {
|
||||
/**
|
||||
* Add the torrent to Deluge
|
||||
* @param magnet
|
||||
* @param dlPath
|
||||
* @param callback
|
||||
*/
|
||||
add(magnet: string, dlPath: string | DownloadOptions, callback: (error: string, result: boolean, response: http.ServerResponse) => void): void;
|
||||
/**
|
||||
* Connect the WebUI to the wanted daemon
|
||||
* @param hostID
|
||||
* @param callback
|
||||
*/
|
||||
connect(hostID: string, callback: (error: string, result: boolean, response: http.ServerResponse) => void): void;
|
||||
/**
|
||||
* Get the list of all the hosts that the WebUI can connect to
|
||||
* @param callback
|
||||
*/
|
||||
getHosts(callback: (error: string, result: Host[], response: http.ServerResponse) => void): void;
|
||||
/**
|
||||
* Get the list of all torrents and changing data that represents their status in the WebUI
|
||||
* @param callback
|
||||
*/
|
||||
getTorrentRecord(callback: (error: string, result: TorrentRecord, response: http.ServerResponse) => void): void;
|
||||
/**
|
||||
* Check if the WebUI is connected to a deamon. Return true or false as result of the callback.
|
||||
* @param callback
|
||||
*/
|
||||
isConnected(callback: (error: string, result: boolean, response: http.ServerResponse) => void): void;
|
||||
/**
|
||||
* Set cookies in COOKIE_JAR, cookies is an object with urls as keys, example:
|
||||
* {'http://example.org/': 'uid=1234;pass=xxxx;'}
|
||||
* @object cookies
|
||||
*/
|
||||
setCookies(cookies: { [key: string]: string }, callback: (error: string, result: boolean, response: http.ServerResponse) => void): void;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"lib": [
|
||||
"es6"
|
||||
],
|
||||
"noImplicitAny": true,
|
||||
"noImplicitThis": true,
|
||||
"strictNullChecks": true,
|
||||
"strictFunctionTypes" : true,
|
||||
"baseUrl": "../",
|
||||
"typeRoots": [
|
||||
"../"
|
||||
],
|
||||
"types": [],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true
|
||||
},
|
||||
"files": [
|
||||
"index.d.ts",
|
||||
"deluge-tests.ts"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
{ "extends": "dtslint/dt.json" }
|
||||
Reference in New Issue
Block a user