From afa78e463439f54ff047496598a1030d12080c8b Mon Sep 17 00:00:00 2001 From: Chubby Granny Chaser Date: Sat, 12 Apr 2025 18:16:16 +0100 Subject: [PATCH] feat: removing aria2 --- .gitignore | 1 - electron-builder.yml | 1 - requirements.txt | 1 - scripts/postinstall.cjs | 76 -------------------------------------- src/main/index.ts | 2 - src/main/main.ts | 3 -- src/main/services/aria2.ts | 33 ----------------- 7 files changed, 117 deletions(-) delete mode 100644 src/main/services/aria2.ts diff --git a/.gitignore b/.gitignore index 3cdb18c9..0df3955a 100644 --- a/.gitignore +++ b/.gitignore @@ -9,7 +9,6 @@ out .vite ludusavi/ hydra-python-rpc/ -aria2/ .python-version # Sentry Config File diff --git a/electron-builder.yml b/electron-builder.yml index e86dd2fb..74f5b6fa 100644 --- a/electron-builder.yml +++ b/electron-builder.yml @@ -3,7 +3,6 @@ productName: Hydra directories: buildResources: build extraResources: - - aria2 - ludusavi - hydra-python-rpc - seeds diff --git a/requirements.txt b/requirements.txt index ffdfb59b..bad56c4b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,4 +5,3 @@ pywin32; sys_platform == 'win32' psutil Pillow flask -aria2p diff --git a/scripts/postinstall.cjs b/scripts/postinstall.cjs index fc3f69dd..25d27c0a 100644 --- a/scripts/postinstall.cjs +++ b/scripts/postinstall.cjs @@ -2,7 +2,6 @@ const { default: axios } = require("axios"); const util = require("node:util"); const fs = require("node:fs"); const path = require("node:path"); -const { spawnSync } = require("node:child_process"); const exec = util.promisify(require("node:child_process").exec); @@ -47,79 +46,4 @@ const downloadLudusavi = async () => { }); }; -const downloadAria2WindowsAndLinux = async () => { - const file = - process.platform === "win32" - ? "aria2-1.37.0-win-64bit-build1.zip" - : "aria2-1.37.0-1-x86_64.pkg.tar.zst"; - - const downloadUrl = - process.platform === "win32" - ? `https://github.com/aria2/aria2/releases/download/release-1.37.0/${file}` - : "https://archlinux.org/packages/extra/x86_64/aria2/download/"; - - console.log(`Downloading ${file}...`); - - const response = await axios.get(downloadUrl, { responseType: "stream" }); - - const stream = response.data.pipe(fs.createWriteStream(file)); - - stream.on("finish", async () => { - console.log(`Downloaded ${file}, extracting...`); - - if (process.platform === "win32") { - await exec(`npx extract-zip ${file}`); - console.log("Extracted. Renaming folder..."); - - fs.mkdirSync("aria2"); - fs.copyFileSync( - path.join(file.replace(".zip", ""), "aria2c.exe"), - "aria2/aria2c.exe" - ); - fs.rmSync(file.replace(".zip", ""), { recursive: true }); - } else { - await exec(`tar --zstd -xvf ${file} usr/bin/aria2c`); - console.log("Extracted. Copying binary file..."); - fs.mkdirSync("aria2"); - fs.copyFileSync("usr/bin/aria2c", "aria2/aria2c"); - fs.rmSync("usr", { recursive: true }); - } - - console.log(`Extracted ${file}, removing compressed downloaded file...`); - fs.rmSync(file); - }); -}; - -const copyAria2Macos = async () => { - console.log("Checking if aria2 is installed..."); - - const isAria2Installed = spawnSync("which", ["aria2c"]).status; - - if (isAria2Installed != 0) { - console.log("Please install aria2"); - console.log("brew install aria2"); - return; - } - - console.log("Copying aria2 binary..."); - fs.mkdirSync("aria2"); - await exec(`cp $(which aria2c) aria2/aria2c`); -}; - -const copyAria2 = () => { - const aria2Path = - process.platform === "win32" ? "aria2/aria2c.exe" : "aria2/aria2c"; - - if (fs.existsSync(aria2Path)) { - console.log("Aria2 already exists, skipping download..."); - return; - } - if (process.platform == "darwin") { - copyAria2Macos(); - } else { - downloadAria2WindowsAndLinux(); - } -}; - -copyAria2(); downloadLudusavi(); diff --git a/src/main/index.ts b/src/main/index.ts index 01818b3d..7d9ad0a2 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -8,7 +8,6 @@ import { electronApp, optimizer } from "@electron-toolkit/utils"; import { logger, WindowManager } from "@main/services"; import resources from "@locales"; import { PythonRPC } from "./services/python-rpc"; -import { Aria2 } from "./services/aria2"; import { db, levelKeys } from "./level"; import { loadState } from "./main"; @@ -143,7 +142,6 @@ app.on("window-all-closed", () => { app.on("before-quit", () => { /* Disconnects libtorrent */ PythonRPC.kill(); - Aria2.kill(); }); app.on("activate", () => { diff --git a/src/main/main.ts b/src/main/main.ts index 93986ac2..b9a37b00 100644 --- a/src/main/main.ts +++ b/src/main/main.ts @@ -2,7 +2,6 @@ import { DownloadManager, Ludusavi, startMainLoop } from "./services"; import { RealDebridClient } from "./services/download/real-debrid"; import { HydraApi } from "./services/hydra-api"; import { uploadGamesBatch } from "./services/library-sync"; -import { Aria2 } from "./services/aria2"; import { downloadsSublevel } from "./level/sublevels/downloads"; import { sortBy } from "lodash-es"; import { Downloader } from "@shared"; @@ -21,8 +20,6 @@ export const loadState = async () => { await import("./events"); - Aria2.spawn(); - if (userPreferences?.realDebridApiToken) { RealDebridClient.authorize(userPreferences.realDebridApiToken); } diff --git a/src/main/services/aria2.ts b/src/main/services/aria2.ts deleted file mode 100644 index a927a1bd..00000000 --- a/src/main/services/aria2.ts +++ /dev/null @@ -1,33 +0,0 @@ -import path from "node:path"; -import cp from "node:child_process"; -import { app } from "electron"; - -export class Aria2 { - private static process: cp.ChildProcess | null = null; - private static readonly binaryPath = app.isPackaged - ? path.join(process.resourcesPath, "aria2", "aria2c") - : path.join(__dirname, "..", "..", "aria2", "aria2c"); - - public static spawn() { - this.process = cp.spawn( - this.binaryPath, - [ - "--enable-rpc", - "--rpc-listen-all", - "--file-allocation=none", - "--allow-overwrite=true", - "-s", - "16", - "-x", - "16", - "-k", - "1M", - ], - { stdio: "inherit", windowsHide: true } - ); - } - - public static kill() { - this.process?.kill(); - } -}