initial commit

This commit is contained in:
Jurgis Sakalauskas
2024-04-26 10:05:01 +03:00
commit 0a9651d7b8
15 changed files with 588 additions and 0 deletions
+50
View File
@@ -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']);
});
});
}
}