mirror of
https://github.com/hydralauncher/hydra.git
synced 2025-03-09 15:40:26 +00:00
feat: save torbox token
This commit is contained in:
parent
e3b9b16387
commit
d8e322e022
8 changed files with 27 additions and 19 deletions
|
@ -15,6 +15,12 @@ const getUserPreferences = async () =>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (userPreferences?.torBoxApiToken) {
|
||||||
|
userPreferences.torBoxApiToken = Crypto.decrypt(
|
||||||
|
userPreferences.torBoxApiToken
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
return userPreferences;
|
return userPreferences;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -30,6 +30,10 @@ const updateUserPreferences = async (
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (preferences.torBoxApiToken) {
|
||||||
|
preferences.torBoxApiToken = Crypto.encrypt(preferences.torBoxApiToken);
|
||||||
|
}
|
||||||
|
|
||||||
if (!preferences.downloadsPath) {
|
if (!preferences.downloadsPath) {
|
||||||
preferences.downloadsPath = null;
|
preferences.downloadsPath = null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,6 +20,7 @@ import {
|
||||||
} from "./level";
|
} from "./level";
|
||||||
import { Auth, User, type UserPreferences } from "@types";
|
import { Auth, User, type UserPreferences } from "@types";
|
||||||
import { knexClient } from "./knex-client";
|
import { knexClient } from "./knex-client";
|
||||||
|
import { TorBoxClient } from "./services/download/torbox";
|
||||||
|
|
||||||
export const loadState = async () => {
|
export const loadState = async () => {
|
||||||
const userPreferences = await migrateFromSqlite().then(async () => {
|
const userPreferences = await migrateFromSqlite().then(async () => {
|
||||||
|
@ -42,6 +43,10 @@ export const loadState = async () => {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (userPreferences?.torBoxApiToken) {
|
||||||
|
TorBoxClient.authorize(Crypto.decrypt(userPreferences.torBoxApiToken));
|
||||||
|
}
|
||||||
|
|
||||||
Ludusavi.addManifestToLudusaviConfig();
|
Ludusavi.addManifestToLudusaviConfig();
|
||||||
|
|
||||||
HydraApi.setupApi().then(() => {
|
HydraApi.setupApi().then(() => {
|
||||||
|
|
|
@ -31,6 +31,7 @@ import {
|
||||||
} from "@primer/octicons-react";
|
} from "@primer/octicons-react";
|
||||||
|
|
||||||
import torBoxLogo from "@renderer/assets/icons/torbox.webp";
|
import torBoxLogo from "@renderer/assets/icons/torbox.webp";
|
||||||
|
import { SPACING_UNIT, vars } from "@renderer/theme.css";
|
||||||
|
|
||||||
export interface DownloadGroupProps {
|
export interface DownloadGroupProps {
|
||||||
library: LibraryGame[];
|
library: LibraryGame[];
|
||||||
|
@ -237,12 +238,16 @@ export function DownloadGroup({
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const isResumeDisabled =
|
||||||
|
(download?.downloader === Downloader.RealDebrid &&
|
||||||
|
!userPreferences?.realDebridApiToken) ||
|
||||||
|
(download?.downloader === Downloader.TorBox &&
|
||||||
|
!userPreferences?.torBoxApiToken);
|
||||||
|
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
label: t("resume"),
|
label: t("resume"),
|
||||||
disabled:
|
disabled: isResumeDisabled,
|
||||||
download?.downloader === Downloader.RealDebrid &&
|
|
||||||
!userPreferences?.realDebridApiToken,
|
|
||||||
onClick: () => {
|
onClick: () => {
|
||||||
resumeDownload(game.shop, game.objectId);
|
resumeDownload(game.shop, game.objectId);
|
||||||
},
|
},
|
||||||
|
|
|
@ -88,6 +88,8 @@ export function DownloadSettingsModal({
|
||||||
const filteredDownloaders = downloaders.filter((downloader) => {
|
const filteredDownloaders = downloaders.filter((downloader) => {
|
||||||
if (downloader === Downloader.RealDebrid)
|
if (downloader === Downloader.RealDebrid)
|
||||||
return userPreferences?.realDebridApiToken;
|
return userPreferences?.realDebridApiToken;
|
||||||
|
if (downloader === Downloader.TorBox)
|
||||||
|
return userPreferences?.torBoxApiToken;
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -71,6 +71,7 @@ export function SettingsDebrid() {
|
||||||
|
|
||||||
updateUserPreferences({
|
updateUserPreferences({
|
||||||
realDebridApiToken: form.useRealDebrid ? form.realDebridApiToken : null,
|
realDebridApiToken: form.useRealDebrid ? form.realDebridApiToken : null,
|
||||||
|
torBoxApiToken: form.useTorBox ? form.torBoxApiToken : null,
|
||||||
});
|
});
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
showErrorToast(t("real_debrid_invalid_token"));
|
showErrorToast(t("real_debrid_invalid_token"));
|
||||||
|
|
|
@ -55,22 +55,6 @@ export interface GameRunning {
|
||||||
sessionDurationInMillis: number;
|
sessionDurationInMillis: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface UserPreferences {
|
|
||||||
downloadsPath: string | null;
|
|
||||||
language: string;
|
|
||||||
downloadNotificationsEnabled: boolean;
|
|
||||||
repackUpdatesNotificationsEnabled: boolean;
|
|
||||||
achievementNotificationsEnabled: boolean;
|
|
||||||
realDebridApiToken: string | null;
|
|
||||||
torBoxApiToken: string | null;
|
|
||||||
preferQuitInsteadOfHiding: boolean;
|
|
||||||
runAtStartup: boolean;
|
|
||||||
startMinimized: boolean;
|
|
||||||
disableNsfwAlert: boolean;
|
|
||||||
seedAfterDownloadComplete: boolean;
|
|
||||||
showHiddenAchievementsDescription: boolean;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface Steam250Game {
|
export interface Steam250Game {
|
||||||
title: string;
|
title: string;
|
||||||
objectId: string;
|
objectId: string;
|
||||||
|
|
|
@ -69,6 +69,7 @@ export interface UserPreferences {
|
||||||
downloadsPath?: string | null;
|
downloadsPath?: string | null;
|
||||||
language?: string;
|
language?: string;
|
||||||
realDebridApiToken?: string | null;
|
realDebridApiToken?: string | null;
|
||||||
|
torBoxApiToken?: string | null;
|
||||||
preferQuitInsteadOfHiding?: boolean;
|
preferQuitInsteadOfHiding?: boolean;
|
||||||
runAtStartup?: boolean;
|
runAtStartup?: boolean;
|
||||||
startMinimized?: boolean;
|
startMinimized?: boolean;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue