From e49c9c985a2d2d680cdb4fc8c242ff274dc9009e Mon Sep 17 00:00:00 2001 From: Rishi Ghan Date: Fri, 1 Sep 2023 11:23:42 -0500 Subject: [PATCH] =?UTF-8?q?=F0=9F=8C=8A=20Added=20connect=20endpoint?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 49 +++++++++++++++++++++++++++++++++ package.json | 19 +++++++------ services/qbittorrent.service.ts | 7 +++++ 3 files changed, 66 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index b665b57..cb2d742 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,7 @@ "name": "threetwo-acquisition-service", "version": "1.0.0", "dependencies": { + "@robertklep/qbittorrent": "^1.0.1", "ioredis": "^5.0.0", "moleculer": "^0.14.27", "moleculer-web": "^0.10.5" @@ -1322,6 +1323,14 @@ "node": ">= 8" } }, + "node_modules/@robertklep/qbittorrent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@robertklep/qbittorrent/-/qbittorrent-1.0.1.tgz", + "integrity": "sha512-XQDKXN8sVGAIoZa+ZeGA+2p1HlQ2QPkfOtq9CL6za1qYsX2aLakkFVB7n4+ifaQoMvtV7l3RWqa/0lKwoUGR2Q==", + "dependencies": { + "needle": "^3.0.0" + } + }, "node_modules/@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", @@ -5691,6 +5700,41 @@ "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", "dev": true }, + "node_modules/needle": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/needle/-/needle-3.2.0.tgz", + "integrity": "sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ==", + "dependencies": { + "debug": "^3.2.6", + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/needle/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/needle/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/next-tick": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", @@ -6571,6 +6615,11 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, "node_modules/semver": { "version": "7.5.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", diff --git a/package.json b/package.json index 1dcf26a..b86abcd 100644 --- a/package.json +++ b/package.json @@ -21,31 +21,32 @@ ], "author": "", "devDependencies": { + "@jest/globals": "^29.3.1", + "@types/jest": "^29.2.3", + "@types/node": "^18.11.9", "@typescript-eslint/eslint-plugin": "^5.44.0", "@typescript-eslint/parser": "^5.44.0", + "concurrently": "^7.6.0", + "cross-env": "^7.0.3", "eslint": "^8.28.0", "eslint-config-airbnb-base": "^15.0.0", "eslint-config-airbnb-typescript": "^17.0.0", "eslint-config-prettier": "^8.5.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-jest": "^27.1.6", - "prettier": "^2.8.0", - "@jest/globals": "^29.3.1", - "@types/jest": "^29.2.3", - "@types/node": "^18.11.9", - "concurrently": "^7.6.0", - "cross-env": "^7.0.3", "jest": "^29.3.1", "moleculer-repl": "^0.7.3", + "prettier": "^2.8.0", "ts-jest": "^29.0.3", "ts-node": "^10.9.1", "typescript": "^4.9.3" }, "dependencies": { - "moleculer-web": "^0.10.5", + "@robertklep/qbittorrent": "^1.0.1", "ioredis": "^5.0.0", - "moleculer": "^0.14.27" -}, + "moleculer": "^0.14.27", + "moleculer-web": "^0.10.5" + }, "engines": { "node": ">= 16.x.x" } diff --git a/services/qbittorrent.service.ts b/services/qbittorrent.service.ts index 72f7368..ccc6a56 100644 --- a/services/qbittorrent.service.ts +++ b/services/qbittorrent.service.ts @@ -1,5 +1,6 @@ "use strict"; import { Context, Service, ServiceBroker, ServiceSchema, Errors } from "moleculer"; +import { qBittorrentClient } from "@robertklep/qbittorrent"; export default class QBittorrentService extends Service { // @ts-ignore @@ -16,6 +17,12 @@ export default class QBittorrentService extends Service { connect: { rest: "POST /connect", handler: async (ctx: Context<{}>) => { + const client = new qBittorrentClient( + "http://127.0.0.1:8080", + "admin", + "adminadmin", + ); + console.log(client); return { foo: "bar" }; }, },