Qbittorrent endpoints #3

Merged
rishighan merged 13 commits from qbittorrent-endpoints into main 2024-03-31 01:38:18 +00:00
Showing only changes of commit daca4e6393 - Show all commits

View File

@@ -1,15 +1,12 @@
"use strict";
import { Context, Service, ServiceBroker, ServiceSchema, Errors } from "moleculer";
import { qBittorrentClient } from "@robertklep/qbittorrent";
import parseTorrent from "parse-torrent";
import { readFileSync, writeFileSync } from "fs"; import { readFileSync, writeFileSync } from "fs";
import { qBittorrentClient } from "@robertklep/qbittorrent";
import type { Context, ServiceBroker, ServiceSchema } from "moleculer";
import { Errors, Service } from "moleculer";
import parseTorrent from "parse-torrent";
export default class QBittorrentService extends Service { export default class QBittorrentService extends Service {
// @ts-ignore // @ts-ignore
public constructor( constructor(public broker: ServiceBroker, schema: ServiceSchema<{}> = { name: "qbittorrent" }) {
public broker: ServiceBroker,
schema: ServiceSchema<{}> = { name: "qbittorrent" },
) {
super(broker); super(broker);
this.parseServiceSchema({ this.parseServiceSchema({
name: "qbittorrent", name: "qbittorrent",
@@ -93,8 +90,16 @@ export default class QBittorrentService extends Service {
}, },
getTorrents: { getTorrents: {
rest: "POST /getTorrents", rest: "POST /getTorrents",
handler: async (ctx: Context<{}>) => { handler: async (ctx: Context<{}>) => await this.meta.torrents.info(),
return await this.meta.torrents.info(); },
getTorrentDetails: {
rest: "POST /getTorrentDetails",
handler: async (ctx: Context<{ infoHashes: [string] }>) => {
const infoHashes = Object.values(ctx.params);
const torrentDetails = infoHashes.map(async (infoHash) => {
return await this.meta.torrents.properties(infoHash);
});
return Promise.all(torrentDetails);
}, },
}, },
}, },