mirror of
https://github.com/sakaljurgis/pvpn-transmission.git
synced 2026-07-09 04:57:40 +00:00
initial commit
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
// @ts-ignore
|
||||
import TransmissionClient from 'transmission';
|
||||
|
||||
type TransmissionOptions = {
|
||||
url?: string;
|
||||
host?: string;
|
||||
port?: number;
|
||||
ssl?: boolean;
|
||||
}
|
||||
|
||||
export class Transmission {
|
||||
client: any;
|
||||
|
||||
constructor(transmissionOptions: TransmissionOptions) {
|
||||
this.client = new TransmissionClient(transmissionOptions);
|
||||
}
|
||||
|
||||
async getPort(): Promise<number> {
|
||||
return new Promise((resolve, reject) => {
|
||||
this.client.session((err: any, arg: any) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
}
|
||||
resolve(arg['peer-port']);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
async setPort(port: number) {
|
||||
return new Promise<void>((resolve, reject) => {
|
||||
this.client.callServer({ "arguments": { "peer-port": port }, "method": "session-set" }, (err: any, arg: any) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
}
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
async testPortIfOpen(): Promise<boolean> {
|
||||
return new Promise((resolve, reject) => {
|
||||
this.client.callServer({ "method": "port-test" }, (err: any, arg: any) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
}
|
||||
resolve(arg['port-is-open']);
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user