Feature/settings add new socks proxy settings (#617)
* Add new socks settings * [VersionMapping] Require server version "r1493" for preview
This commit is contained in:
@@ -27,9 +27,9 @@ import InfoIcon from '@mui/icons-material/Info';
|
|||||||
import { TranslationKey } from '@/typings.ts';
|
import { TranslationKey } from '@/typings.ts';
|
||||||
|
|
||||||
export type SelectSettingValueDisplayInfo = {
|
export type SelectSettingValueDisplayInfo = {
|
||||||
text: TranslationKey;
|
text: TranslationKey | string;
|
||||||
description?: TranslationKey;
|
description?: TranslationKey | string;
|
||||||
disclaimer?: TranslationKey;
|
disclaimer?: TranslationKey | string;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type SelectSettingValue<Value> = [Value: Value, DisplayInfo: SelectSettingValueDisplayInfo];
|
export type SelectSettingValue<Value> = [Value: Value, DisplayInfo: SelectSettingValueDisplayInfo];
|
||||||
@@ -85,7 +85,7 @@ export const SelectSetting = <SettingValue extends string | number>({
|
|||||||
<ListItemButton disabled={disabled} onClick={() => setIsDialogOpen(true)}>
|
<ListItemButton disabled={disabled} onClick={() => setIsDialogOpen(true)}>
|
||||||
<ListItemText
|
<ListItemText
|
||||||
primary={settingName}
|
primary={settingName}
|
||||||
secondary={valueDisplayText ? t(valueDisplayText) : t('global.label.loading')}
|
secondary={valueDisplayText ? t(valueDisplayText as TranslationKey) : t('global.label.loading')}
|
||||||
secondaryTypographyProps={{ style: { display: 'flex', flexDirection: 'column' } }}
|
secondaryTypographyProps={{ style: { display: 'flex', flexDirection: 'column' } }}
|
||||||
/>
|
/>
|
||||||
</ListItemButton>
|
</ListItemButton>
|
||||||
@@ -105,7 +105,7 @@ export const SelectSetting = <SettingValue extends string | number>({
|
|||||||
whiteSpace: 'pre-line',
|
whiteSpace: 'pre-line',
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{t(dialogValueDisplayInfo.description)}
|
{t(dialogValueDisplayInfo.description as TranslationKey)}
|
||||||
</Typography>
|
</Typography>
|
||||||
)}
|
)}
|
||||||
{dialogValueDisplayInfo.disclaimer && (
|
{dialogValueDisplayInfo.disclaimer && (
|
||||||
@@ -119,7 +119,7 @@ export const SelectSetting = <SettingValue extends string | number>({
|
|||||||
whiteSpace: 'pre-line',
|
whiteSpace: 'pre-line',
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{t(dialogValueDisplayInfo.disclaimer)}
|
{t(dialogValueDisplayInfo.disclaimer as TranslationKey)}
|
||||||
</Typography>
|
</Typography>
|
||||||
</Stack>
|
</Stack>
|
||||||
)}
|
)}
|
||||||
@@ -133,7 +133,7 @@ export const SelectSetting = <SettingValue extends string | number>({
|
|||||||
>
|
>
|
||||||
{values.map(([selectValue, { text: selectText }]) => (
|
{values.map(([selectValue, { text: selectText }]) => (
|
||||||
<MenuItem key={selectValue} value={selectValue}>
|
<MenuItem key={selectValue} value={selectValue}>
|
||||||
{t(selectText)}
|
{t(selectText as TranslationKey)}
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
))}
|
))}
|
||||||
</Select>
|
</Select>
|
||||||
|
|||||||
@@ -888,9 +888,12 @@
|
|||||||
},
|
},
|
||||||
"socks_proxy": {
|
"socks_proxy": {
|
||||||
"label": {
|
"label": {
|
||||||
"enable": "Use SOCKS5 proxy",
|
"enable": "Use SOCKS proxy",
|
||||||
"host": "SOCKS5 host",
|
"host": "SOCKS host",
|
||||||
"port": "SOCKS5 port"
|
"password": "SOCKS password",
|
||||||
|
"port": "SOCKS port",
|
||||||
|
"username": "SOCKS username",
|
||||||
|
"version": "SOCKS version"
|
||||||
},
|
},
|
||||||
"title": "SOCKS proxy"
|
"title": "SOCKS proxy"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -475,8 +475,11 @@ export const SERVER_SETTINGS = gql`
|
|||||||
|
|
||||||
# Socks proxy
|
# Socks proxy
|
||||||
socksProxyEnabled
|
socksProxyEnabled
|
||||||
|
socksProxyVersion
|
||||||
socksProxyHost
|
socksProxyHost
|
||||||
socksProxyPort
|
socksProxyPort
|
||||||
|
socksProxyUsername
|
||||||
|
socksProxyPassword
|
||||||
|
|
||||||
# webUI
|
# webUI
|
||||||
webUIFlavor
|
webUIFlavor
|
||||||
|
|||||||
@@ -512,7 +512,7 @@ export type PageInfoFieldPolicy = {
|
|||||||
hasPreviousPage?: FieldPolicy<any> | FieldReadFunction<any>,
|
hasPreviousPage?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
startCursor?: FieldPolicy<any> | FieldReadFunction<any>
|
startCursor?: FieldPolicy<any> | FieldReadFunction<any>
|
||||||
};
|
};
|
||||||
export type PartialSettingsTypeKeySpecifier = ('autoDownloadAheadLimit' | 'autoDownloadNewChapters' | 'autoDownloadNewChaptersLimit' | 'backupInterval' | 'backupPath' | 'backupTTL' | 'backupTime' | 'basicAuthEnabled' | 'basicAuthPassword' | 'basicAuthUsername' | 'debugLogsEnabled' | 'downloadAsCbz' | 'downloadsPath' | 'electronPath' | 'excludeCompleted' | 'excludeEntryWithUnreadChapters' | 'excludeNotStarted' | 'excludeUnreadChapters' | 'extensionRepos' | 'flareSolverrEnabled' | 'flareSolverrSessionName' | 'flareSolverrSessionTtl' | 'flareSolverrTimeout' | 'flareSolverrUrl' | 'globalUpdateInterval' | 'gqlDebugLogsEnabled' | 'initialOpenInBrowserEnabled' | 'ip' | 'localSourcePath' | 'maxSourcesInParallel' | 'port' | 'socksProxyEnabled' | 'socksProxyHost' | 'socksProxyPort' | 'systemTrayEnabled' | 'updateMangas' | 'webUIChannel' | 'webUIFlavor' | 'webUIInterface' | 'webUIUpdateCheckInterval' | PartialSettingsTypeKeySpecifier)[];
|
export type PartialSettingsTypeKeySpecifier = ('autoDownloadAheadLimit' | 'autoDownloadNewChapters' | 'autoDownloadNewChaptersLimit' | 'backupInterval' | 'backupPath' | 'backupTTL' | 'backupTime' | 'basicAuthEnabled' | 'basicAuthPassword' | 'basicAuthUsername' | 'debugLogsEnabled' | 'downloadAsCbz' | 'downloadsPath' | 'electronPath' | 'excludeCompleted' | 'excludeEntryWithUnreadChapters' | 'excludeNotStarted' | 'excludeUnreadChapters' | 'extensionRepos' | 'flareSolverrEnabled' | 'flareSolverrSessionName' | 'flareSolverrSessionTtl' | 'flareSolverrTimeout' | 'flareSolverrUrl' | 'globalUpdateInterval' | 'gqlDebugLogsEnabled' | 'initialOpenInBrowserEnabled' | 'ip' | 'localSourcePath' | 'maxSourcesInParallel' | 'port' | 'socksProxyEnabled' | 'socksProxyHost' | 'socksProxyPassword' | 'socksProxyPort' | 'socksProxyUsername' | 'socksProxyVersion' | 'systemTrayEnabled' | 'updateMangas' | 'webUIChannel' | 'webUIFlavor' | 'webUIInterface' | 'webUIUpdateCheckInterval' | PartialSettingsTypeKeySpecifier)[];
|
||||||
export type PartialSettingsTypeFieldPolicy = {
|
export type PartialSettingsTypeFieldPolicy = {
|
||||||
autoDownloadAheadLimit?: FieldPolicy<any> | FieldReadFunction<any>,
|
autoDownloadAheadLimit?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
autoDownloadNewChapters?: FieldPolicy<any> | FieldReadFunction<any>,
|
autoDownloadNewChapters?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
@@ -547,7 +547,10 @@ export type PartialSettingsTypeFieldPolicy = {
|
|||||||
port?: FieldPolicy<any> | FieldReadFunction<any>,
|
port?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
socksProxyEnabled?: FieldPolicy<any> | FieldReadFunction<any>,
|
socksProxyEnabled?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
socksProxyHost?: FieldPolicy<any> | FieldReadFunction<any>,
|
socksProxyHost?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
|
socksProxyPassword?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
socksProxyPort?: FieldPolicy<any> | FieldReadFunction<any>,
|
socksProxyPort?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
|
socksProxyUsername?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
|
socksProxyVersion?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
systemTrayEnabled?: FieldPolicy<any> | FieldReadFunction<any>,
|
systemTrayEnabled?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
updateMangas?: FieldPolicy<any> | FieldReadFunction<any>,
|
updateMangas?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
webUIChannel?: FieldPolicy<any> | FieldReadFunction<any>,
|
webUIChannel?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
@@ -646,7 +649,7 @@ export type SetSourceMetaPayloadFieldPolicy = {
|
|||||||
clientMutationId?: FieldPolicy<any> | FieldReadFunction<any>,
|
clientMutationId?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
meta?: FieldPolicy<any> | FieldReadFunction<any>
|
meta?: FieldPolicy<any> | FieldReadFunction<any>
|
||||||
};
|
};
|
||||||
export type SettingsKeySpecifier = ('autoDownloadAheadLimit' | 'autoDownloadNewChapters' | 'autoDownloadNewChaptersLimit' | 'backupInterval' | 'backupPath' | 'backupTTL' | 'backupTime' | 'basicAuthEnabled' | 'basicAuthPassword' | 'basicAuthUsername' | 'debugLogsEnabled' | 'downloadAsCbz' | 'downloadsPath' | 'electronPath' | 'excludeCompleted' | 'excludeEntryWithUnreadChapters' | 'excludeNotStarted' | 'excludeUnreadChapters' | 'extensionRepos' | 'flareSolverrEnabled' | 'flareSolverrSessionName' | 'flareSolverrSessionTtl' | 'flareSolverrTimeout' | 'flareSolverrUrl' | 'globalUpdateInterval' | 'gqlDebugLogsEnabled' | 'initialOpenInBrowserEnabled' | 'ip' | 'localSourcePath' | 'maxSourcesInParallel' | 'port' | 'socksProxyEnabled' | 'socksProxyHost' | 'socksProxyPort' | 'systemTrayEnabled' | 'updateMangas' | 'webUIChannel' | 'webUIFlavor' | 'webUIInterface' | 'webUIUpdateCheckInterval' | SettingsKeySpecifier)[];
|
export type SettingsKeySpecifier = ('autoDownloadAheadLimit' | 'autoDownloadNewChapters' | 'autoDownloadNewChaptersLimit' | 'backupInterval' | 'backupPath' | 'backupTTL' | 'backupTime' | 'basicAuthEnabled' | 'basicAuthPassword' | 'basicAuthUsername' | 'debugLogsEnabled' | 'downloadAsCbz' | 'downloadsPath' | 'electronPath' | 'excludeCompleted' | 'excludeEntryWithUnreadChapters' | 'excludeNotStarted' | 'excludeUnreadChapters' | 'extensionRepos' | 'flareSolverrEnabled' | 'flareSolverrSessionName' | 'flareSolverrSessionTtl' | 'flareSolverrTimeout' | 'flareSolverrUrl' | 'globalUpdateInterval' | 'gqlDebugLogsEnabled' | 'initialOpenInBrowserEnabled' | 'ip' | 'localSourcePath' | 'maxSourcesInParallel' | 'port' | 'socksProxyEnabled' | 'socksProxyHost' | 'socksProxyPassword' | 'socksProxyPort' | 'socksProxyUsername' | 'socksProxyVersion' | 'systemTrayEnabled' | 'updateMangas' | 'webUIChannel' | 'webUIFlavor' | 'webUIInterface' | 'webUIUpdateCheckInterval' | SettingsKeySpecifier)[];
|
||||||
export type SettingsFieldPolicy = {
|
export type SettingsFieldPolicy = {
|
||||||
autoDownloadAheadLimit?: FieldPolicy<any> | FieldReadFunction<any>,
|
autoDownloadAheadLimit?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
autoDownloadNewChapters?: FieldPolicy<any> | FieldReadFunction<any>,
|
autoDownloadNewChapters?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
@@ -681,7 +684,10 @@ export type SettingsFieldPolicy = {
|
|||||||
port?: FieldPolicy<any> | FieldReadFunction<any>,
|
port?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
socksProxyEnabled?: FieldPolicy<any> | FieldReadFunction<any>,
|
socksProxyEnabled?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
socksProxyHost?: FieldPolicy<any> | FieldReadFunction<any>,
|
socksProxyHost?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
|
socksProxyPassword?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
socksProxyPort?: FieldPolicy<any> | FieldReadFunction<any>,
|
socksProxyPort?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
|
socksProxyUsername?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
|
socksProxyVersion?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
systemTrayEnabled?: FieldPolicy<any> | FieldReadFunction<any>,
|
systemTrayEnabled?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
updateMangas?: FieldPolicy<any> | FieldReadFunction<any>,
|
updateMangas?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
webUIChannel?: FieldPolicy<any> | FieldReadFunction<any>,
|
webUIChannel?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
@@ -689,7 +695,7 @@ export type SettingsFieldPolicy = {
|
|||||||
webUIInterface?: FieldPolicy<any> | FieldReadFunction<any>,
|
webUIInterface?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
webUIUpdateCheckInterval?: FieldPolicy<any> | FieldReadFunction<any>
|
webUIUpdateCheckInterval?: FieldPolicy<any> | FieldReadFunction<any>
|
||||||
};
|
};
|
||||||
export type SettingsTypeKeySpecifier = ('autoDownloadAheadLimit' | 'autoDownloadNewChapters' | 'autoDownloadNewChaptersLimit' | 'backupInterval' | 'backupPath' | 'backupTTL' | 'backupTime' | 'basicAuthEnabled' | 'basicAuthPassword' | 'basicAuthUsername' | 'debugLogsEnabled' | 'downloadAsCbz' | 'downloadsPath' | 'electronPath' | 'excludeCompleted' | 'excludeEntryWithUnreadChapters' | 'excludeNotStarted' | 'excludeUnreadChapters' | 'extensionRepos' | 'flareSolverrEnabled' | 'flareSolverrSessionName' | 'flareSolverrSessionTtl' | 'flareSolverrTimeout' | 'flareSolverrUrl' | 'globalUpdateInterval' | 'gqlDebugLogsEnabled' | 'initialOpenInBrowserEnabled' | 'ip' | 'localSourcePath' | 'maxSourcesInParallel' | 'port' | 'socksProxyEnabled' | 'socksProxyHost' | 'socksProxyPort' | 'systemTrayEnabled' | 'updateMangas' | 'webUIChannel' | 'webUIFlavor' | 'webUIInterface' | 'webUIUpdateCheckInterval' | SettingsTypeKeySpecifier)[];
|
export type SettingsTypeKeySpecifier = ('autoDownloadAheadLimit' | 'autoDownloadNewChapters' | 'autoDownloadNewChaptersLimit' | 'backupInterval' | 'backupPath' | 'backupTTL' | 'backupTime' | 'basicAuthEnabled' | 'basicAuthPassword' | 'basicAuthUsername' | 'debugLogsEnabled' | 'downloadAsCbz' | 'downloadsPath' | 'electronPath' | 'excludeCompleted' | 'excludeEntryWithUnreadChapters' | 'excludeNotStarted' | 'excludeUnreadChapters' | 'extensionRepos' | 'flareSolverrEnabled' | 'flareSolverrSessionName' | 'flareSolverrSessionTtl' | 'flareSolverrTimeout' | 'flareSolverrUrl' | 'globalUpdateInterval' | 'gqlDebugLogsEnabled' | 'initialOpenInBrowserEnabled' | 'ip' | 'localSourcePath' | 'maxSourcesInParallel' | 'port' | 'socksProxyEnabled' | 'socksProxyHost' | 'socksProxyPassword' | 'socksProxyPort' | 'socksProxyUsername' | 'socksProxyVersion' | 'systemTrayEnabled' | 'updateMangas' | 'webUIChannel' | 'webUIFlavor' | 'webUIInterface' | 'webUIUpdateCheckInterval' | SettingsTypeKeySpecifier)[];
|
||||||
export type SettingsTypeFieldPolicy = {
|
export type SettingsTypeFieldPolicy = {
|
||||||
autoDownloadAheadLimit?: FieldPolicy<any> | FieldReadFunction<any>,
|
autoDownloadAheadLimit?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
autoDownloadNewChapters?: FieldPolicy<any> | FieldReadFunction<any>,
|
autoDownloadNewChapters?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
@@ -724,7 +730,10 @@ export type SettingsTypeFieldPolicy = {
|
|||||||
port?: FieldPolicy<any> | FieldReadFunction<any>,
|
port?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
socksProxyEnabled?: FieldPolicy<any> | FieldReadFunction<any>,
|
socksProxyEnabled?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
socksProxyHost?: FieldPolicy<any> | FieldReadFunction<any>,
|
socksProxyHost?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
|
socksProxyPassword?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
socksProxyPort?: FieldPolicy<any> | FieldReadFunction<any>,
|
socksProxyPort?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
|
socksProxyUsername?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
|
socksProxyVersion?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
systemTrayEnabled?: FieldPolicy<any> | FieldReadFunction<any>,
|
systemTrayEnabled?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
updateMangas?: FieldPolicy<any> | FieldReadFunction<any>,
|
updateMangas?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
webUIChannel?: FieldPolicy<any> | FieldReadFunction<any>,
|
webUIChannel?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
@@ -871,12 +880,13 @@ export type TrackerNodeListFieldPolicy = {
|
|||||||
pageInfo?: FieldPolicy<any> | FieldReadFunction<any>,
|
pageInfo?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
totalCount?: FieldPolicy<any> | FieldReadFunction<any>
|
totalCount?: FieldPolicy<any> | FieldReadFunction<any>
|
||||||
};
|
};
|
||||||
export type TrackerTypeKeySpecifier = ('authUrl' | 'icon' | 'id' | 'isLoggedIn' | 'name' | 'scores' | 'statuses' | 'trackRecords' | TrackerTypeKeySpecifier)[];
|
export type TrackerTypeKeySpecifier = ('authUrl' | 'icon' | 'id' | 'isLoggedIn' | 'isTokenExpired' | 'name' | 'scores' | 'statuses' | 'trackRecords' | TrackerTypeKeySpecifier)[];
|
||||||
export type TrackerTypeFieldPolicy = {
|
export type TrackerTypeFieldPolicy = {
|
||||||
authUrl?: FieldPolicy<any> | FieldReadFunction<any>,
|
authUrl?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
icon?: FieldPolicy<any> | FieldReadFunction<any>,
|
icon?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
id?: FieldPolicy<any> | FieldReadFunction<any>,
|
id?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
isLoggedIn?: FieldPolicy<any> | FieldReadFunction<any>,
|
isLoggedIn?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
|
isTokenExpired?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
name?: FieldPolicy<any> | FieldReadFunction<any>,
|
name?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
scores?: FieldPolicy<any> | FieldReadFunction<any>,
|
scores?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
statuses?: FieldPolicy<any> | FieldReadFunction<any>,
|
statuses?: FieldPolicy<any> | FieldReadFunction<any>,
|
||||||
|
|||||||
@@ -1395,7 +1395,10 @@ export type PartialSettingsType = Settings & {
|
|||||||
port?: Maybe<Scalars['Int']['output']>;
|
port?: Maybe<Scalars['Int']['output']>;
|
||||||
socksProxyEnabled?: Maybe<Scalars['Boolean']['output']>;
|
socksProxyEnabled?: Maybe<Scalars['Boolean']['output']>;
|
||||||
socksProxyHost?: Maybe<Scalars['String']['output']>;
|
socksProxyHost?: Maybe<Scalars['String']['output']>;
|
||||||
|
socksProxyPassword?: Maybe<Scalars['String']['output']>;
|
||||||
socksProxyPort?: Maybe<Scalars['String']['output']>;
|
socksProxyPort?: Maybe<Scalars['String']['output']>;
|
||||||
|
socksProxyUsername?: Maybe<Scalars['String']['output']>;
|
||||||
|
socksProxyVersion?: Maybe<Scalars['Int']['output']>;
|
||||||
systemTrayEnabled?: Maybe<Scalars['Boolean']['output']>;
|
systemTrayEnabled?: Maybe<Scalars['Boolean']['output']>;
|
||||||
updateMangas?: Maybe<Scalars['Boolean']['output']>;
|
updateMangas?: Maybe<Scalars['Boolean']['output']>;
|
||||||
webUIChannel?: Maybe<WebUiChannel>;
|
webUIChannel?: Maybe<WebUiChannel>;
|
||||||
@@ -1437,7 +1440,10 @@ export type PartialSettingsTypeInput = {
|
|||||||
port?: InputMaybe<Scalars['Int']['input']>;
|
port?: InputMaybe<Scalars['Int']['input']>;
|
||||||
socksProxyEnabled?: InputMaybe<Scalars['Boolean']['input']>;
|
socksProxyEnabled?: InputMaybe<Scalars['Boolean']['input']>;
|
||||||
socksProxyHost?: InputMaybe<Scalars['String']['input']>;
|
socksProxyHost?: InputMaybe<Scalars['String']['input']>;
|
||||||
|
socksProxyPassword?: InputMaybe<Scalars['String']['input']>;
|
||||||
socksProxyPort?: InputMaybe<Scalars['String']['input']>;
|
socksProxyPort?: InputMaybe<Scalars['String']['input']>;
|
||||||
|
socksProxyUsername?: InputMaybe<Scalars['String']['input']>;
|
||||||
|
socksProxyVersion?: InputMaybe<Scalars['Int']['input']>;
|
||||||
systemTrayEnabled?: InputMaybe<Scalars['Boolean']['input']>;
|
systemTrayEnabled?: InputMaybe<Scalars['Boolean']['input']>;
|
||||||
updateMangas?: InputMaybe<Scalars['Boolean']['input']>;
|
updateMangas?: InputMaybe<Scalars['Boolean']['input']>;
|
||||||
webUIChannel?: InputMaybe<WebUiChannel>;
|
webUIChannel?: InputMaybe<WebUiChannel>;
|
||||||
@@ -1795,7 +1801,10 @@ export type Settings = {
|
|||||||
port?: Maybe<Scalars['Int']['output']>;
|
port?: Maybe<Scalars['Int']['output']>;
|
||||||
socksProxyEnabled?: Maybe<Scalars['Boolean']['output']>;
|
socksProxyEnabled?: Maybe<Scalars['Boolean']['output']>;
|
||||||
socksProxyHost?: Maybe<Scalars['String']['output']>;
|
socksProxyHost?: Maybe<Scalars['String']['output']>;
|
||||||
|
socksProxyPassword?: Maybe<Scalars['String']['output']>;
|
||||||
socksProxyPort?: Maybe<Scalars['String']['output']>;
|
socksProxyPort?: Maybe<Scalars['String']['output']>;
|
||||||
|
socksProxyUsername?: Maybe<Scalars['String']['output']>;
|
||||||
|
socksProxyVersion?: Maybe<Scalars['Int']['output']>;
|
||||||
systemTrayEnabled?: Maybe<Scalars['Boolean']['output']>;
|
systemTrayEnabled?: Maybe<Scalars['Boolean']['output']>;
|
||||||
updateMangas?: Maybe<Scalars['Boolean']['output']>;
|
updateMangas?: Maybe<Scalars['Boolean']['output']>;
|
||||||
webUIChannel?: Maybe<WebUiChannel>;
|
webUIChannel?: Maybe<WebUiChannel>;
|
||||||
@@ -1840,7 +1849,10 @@ export type SettingsType = Settings & {
|
|||||||
port: Scalars['Int']['output'];
|
port: Scalars['Int']['output'];
|
||||||
socksProxyEnabled: Scalars['Boolean']['output'];
|
socksProxyEnabled: Scalars['Boolean']['output'];
|
||||||
socksProxyHost: Scalars['String']['output'];
|
socksProxyHost: Scalars['String']['output'];
|
||||||
|
socksProxyPassword: Scalars['String']['output'];
|
||||||
socksProxyPort: Scalars['String']['output'];
|
socksProxyPort: Scalars['String']['output'];
|
||||||
|
socksProxyUsername: Scalars['String']['output'];
|
||||||
|
socksProxyVersion: Scalars['Int']['output'];
|
||||||
systemTrayEnabled: Scalars['Boolean']['output'];
|
systemTrayEnabled: Scalars['Boolean']['output'];
|
||||||
updateMangas: Scalars['Boolean']['output'];
|
updateMangas: Scalars['Boolean']['output'];
|
||||||
webUIChannel: WebUiChannel;
|
webUIChannel: WebUiChannel;
|
||||||
@@ -2171,6 +2183,7 @@ export type TrackerType = {
|
|||||||
icon: Scalars['String']['output'];
|
icon: Scalars['String']['output'];
|
||||||
id: Scalars['Int']['output'];
|
id: Scalars['Int']['output'];
|
||||||
isLoggedIn: Scalars['Boolean']['output'];
|
isLoggedIn: Scalars['Boolean']['output'];
|
||||||
|
isTokenExpired: Scalars['Boolean']['output'];
|
||||||
name: Scalars['String']['output'];
|
name: Scalars['String']['output'];
|
||||||
scores: Array<Scalars['String']['output']>;
|
scores: Array<Scalars['String']['output']>;
|
||||||
statuses: Array<TrackStatusType>;
|
statuses: Array<TrackStatusType>;
|
||||||
@@ -2544,7 +2557,7 @@ export type WebuiUpdateInfoFragment = { __typename?: 'WebUIUpdateInfo', channel:
|
|||||||
|
|
||||||
export type WebuiUpdateStatusFragment = { __typename?: 'WebUIUpdateStatus', progress: number, state: UpdateState, info: { __typename?: 'WebUIUpdateInfo', channel: string, tag: string } };
|
export type WebuiUpdateStatusFragment = { __typename?: 'WebUIUpdateStatus', progress: number, state: UpdateState, info: { __typename?: 'WebUIUpdateInfo', channel: string, tag: string } };
|
||||||
|
|
||||||
export type ServerSettingsFragment = { __typename?: 'SettingsType', ip: string, port: number, socksProxyEnabled: boolean, socksProxyHost: string, socksProxyPort: string, webUIFlavor: WebUiFlavor, initialOpenInBrowserEnabled: boolean, webUIInterface: WebUiInterface, electronPath: string, webUIChannel: WebUiChannel, webUIUpdateCheckInterval: number, downloadAsCbz: boolean, downloadsPath: string, autoDownloadNewChapters: boolean, excludeEntryWithUnreadChapters: boolean, autoDownloadNewChaptersLimit: number, extensionRepos: Array<string>, maxSourcesInParallel: number, excludeUnreadChapters: boolean, excludeNotStarted: boolean, excludeCompleted: boolean, globalUpdateInterval: number, updateMangas: boolean, basicAuthEnabled: boolean, basicAuthUsername: string, basicAuthPassword: string, debugLogsEnabled: boolean, gqlDebugLogsEnabled: boolean, systemTrayEnabled: boolean, backupPath: string, backupTime: string, backupInterval: number, backupTTL: number, localSourcePath: string, flareSolverrEnabled: boolean, flareSolverrUrl: string, flareSolverrTimeout: number, flareSolverrSessionName: string, flareSolverrSessionTtl: number };
|
export type ServerSettingsFragment = { __typename?: 'SettingsType', ip: string, port: number, socksProxyEnabled: boolean, socksProxyVersion: number, socksProxyHost: string, socksProxyPort: string, socksProxyUsername: string, socksProxyPassword: string, webUIFlavor: WebUiFlavor, initialOpenInBrowserEnabled: boolean, webUIInterface: WebUiInterface, electronPath: string, webUIChannel: WebUiChannel, webUIUpdateCheckInterval: number, downloadAsCbz: boolean, downloadsPath: string, autoDownloadNewChapters: boolean, excludeEntryWithUnreadChapters: boolean, autoDownloadNewChaptersLimit: number, extensionRepos: Array<string>, maxSourcesInParallel: number, excludeUnreadChapters: boolean, excludeNotStarted: boolean, excludeCompleted: boolean, globalUpdateInterval: number, updateMangas: boolean, basicAuthEnabled: boolean, basicAuthUsername: string, basicAuthPassword: string, debugLogsEnabled: boolean, gqlDebugLogsEnabled: boolean, systemTrayEnabled: boolean, backupPath: string, backupTime: string, backupInterval: number, backupTTL: number, localSourcePath: string, flareSolverrEnabled: boolean, flareSolverrUrl: string, flareSolverrTimeout: number, flareSolverrSessionName: string, flareSolverrSessionTtl: number };
|
||||||
|
|
||||||
export type CreateBackupMutationVariables = Exact<{
|
export type CreateBackupMutationVariables = Exact<{
|
||||||
input: CreateBackupInput;
|
input: CreateBackupInput;
|
||||||
@@ -2863,14 +2876,14 @@ export type ResetServerSettingsMutationVariables = Exact<{
|
|||||||
}>;
|
}>;
|
||||||
|
|
||||||
|
|
||||||
export type ResetServerSettingsMutation = { __typename?: 'Mutation', resetSettings: { __typename?: 'ResetSettingsPayload', clientMutationId?: string | null, settings: { __typename?: 'SettingsType', ip: string, port: number, socksProxyEnabled: boolean, socksProxyHost: string, socksProxyPort: string, webUIFlavor: WebUiFlavor, initialOpenInBrowserEnabled: boolean, webUIInterface: WebUiInterface, electronPath: string, webUIChannel: WebUiChannel, webUIUpdateCheckInterval: number, downloadAsCbz: boolean, downloadsPath: string, autoDownloadNewChapters: boolean, excludeEntryWithUnreadChapters: boolean, autoDownloadNewChaptersLimit: number, extensionRepos: Array<string>, maxSourcesInParallel: number, excludeUnreadChapters: boolean, excludeNotStarted: boolean, excludeCompleted: boolean, globalUpdateInterval: number, updateMangas: boolean, basicAuthEnabled: boolean, basicAuthUsername: string, basicAuthPassword: string, debugLogsEnabled: boolean, gqlDebugLogsEnabled: boolean, systemTrayEnabled: boolean, backupPath: string, backupTime: string, backupInterval: number, backupTTL: number, localSourcePath: string, flareSolverrEnabled: boolean, flareSolverrUrl: string, flareSolverrTimeout: number, flareSolverrSessionName: string, flareSolverrSessionTtl: number } } };
|
export type ResetServerSettingsMutation = { __typename?: 'Mutation', resetSettings: { __typename?: 'ResetSettingsPayload', clientMutationId?: string | null, settings: { __typename?: 'SettingsType', ip: string, port: number, socksProxyEnabled: boolean, socksProxyVersion: number, socksProxyHost: string, socksProxyPort: string, socksProxyUsername: string, socksProxyPassword: string, webUIFlavor: WebUiFlavor, initialOpenInBrowserEnabled: boolean, webUIInterface: WebUiInterface, electronPath: string, webUIChannel: WebUiChannel, webUIUpdateCheckInterval: number, downloadAsCbz: boolean, downloadsPath: string, autoDownloadNewChapters: boolean, excludeEntryWithUnreadChapters: boolean, autoDownloadNewChaptersLimit: number, extensionRepos: Array<string>, maxSourcesInParallel: number, excludeUnreadChapters: boolean, excludeNotStarted: boolean, excludeCompleted: boolean, globalUpdateInterval: number, updateMangas: boolean, basicAuthEnabled: boolean, basicAuthUsername: string, basicAuthPassword: string, debugLogsEnabled: boolean, gqlDebugLogsEnabled: boolean, systemTrayEnabled: boolean, backupPath: string, backupTime: string, backupInterval: number, backupTTL: number, localSourcePath: string, flareSolverrEnabled: boolean, flareSolverrUrl: string, flareSolverrTimeout: number, flareSolverrSessionName: string, flareSolverrSessionTtl: number } } };
|
||||||
|
|
||||||
export type UpdateServerSettingsMutationVariables = Exact<{
|
export type UpdateServerSettingsMutationVariables = Exact<{
|
||||||
input: SetSettingsInput;
|
input: SetSettingsInput;
|
||||||
}>;
|
}>;
|
||||||
|
|
||||||
|
|
||||||
export type UpdateServerSettingsMutation = { __typename?: 'Mutation', setSettings: { __typename?: 'SetSettingsPayload', clientMutationId?: string | null, settings: { __typename?: 'SettingsType', ip: string, port: number, socksProxyEnabled: boolean, socksProxyHost: string, socksProxyPort: string, webUIFlavor: WebUiFlavor, initialOpenInBrowserEnabled: boolean, webUIInterface: WebUiInterface, electronPath: string, webUIChannel: WebUiChannel, webUIUpdateCheckInterval: number, downloadAsCbz: boolean, downloadsPath: string, autoDownloadNewChapters: boolean, excludeEntryWithUnreadChapters: boolean, autoDownloadNewChaptersLimit: number, extensionRepos: Array<string>, maxSourcesInParallel: number, excludeUnreadChapters: boolean, excludeNotStarted: boolean, excludeCompleted: boolean, globalUpdateInterval: number, updateMangas: boolean, basicAuthEnabled: boolean, basicAuthUsername: string, basicAuthPassword: string, debugLogsEnabled: boolean, gqlDebugLogsEnabled: boolean, systemTrayEnabled: boolean, backupPath: string, backupTime: string, backupInterval: number, backupTTL: number, localSourcePath: string, flareSolverrEnabled: boolean, flareSolverrUrl: string, flareSolverrTimeout: number, flareSolverrSessionName: string, flareSolverrSessionTtl: number } } };
|
export type UpdateServerSettingsMutation = { __typename?: 'Mutation', setSettings: { __typename?: 'SetSettingsPayload', clientMutationId?: string | null, settings: { __typename?: 'SettingsType', ip: string, port: number, socksProxyEnabled: boolean, socksProxyVersion: number, socksProxyHost: string, socksProxyPort: string, socksProxyUsername: string, socksProxyPassword: string, webUIFlavor: WebUiFlavor, initialOpenInBrowserEnabled: boolean, webUIInterface: WebUiInterface, electronPath: string, webUIChannel: WebUiChannel, webUIUpdateCheckInterval: number, downloadAsCbz: boolean, downloadsPath: string, autoDownloadNewChapters: boolean, excludeEntryWithUnreadChapters: boolean, autoDownloadNewChaptersLimit: number, extensionRepos: Array<string>, maxSourcesInParallel: number, excludeUnreadChapters: boolean, excludeNotStarted: boolean, excludeCompleted: boolean, globalUpdateInterval: number, updateMangas: boolean, basicAuthEnabled: boolean, basicAuthUsername: string, basicAuthPassword: string, debugLogsEnabled: boolean, gqlDebugLogsEnabled: boolean, systemTrayEnabled: boolean, backupPath: string, backupTime: string, backupInterval: number, backupTTL: number, localSourcePath: string, flareSolverrEnabled: boolean, flareSolverrUrl: string, flareSolverrTimeout: number, flareSolverrSessionName: string, flareSolverrSessionTtl: number } } };
|
||||||
|
|
||||||
export type GetSourceMangasFetchMutationVariables = Exact<{
|
export type GetSourceMangasFetchMutationVariables = Exact<{
|
||||||
input: FetchSourceMangaInput;
|
input: FetchSourceMangaInput;
|
||||||
@@ -3092,7 +3105,7 @@ export type GetWebuiUpdateStatusQuery = { __typename?: 'Query', getWebUIUpdateSt
|
|||||||
export type GetServerSettingsQueryVariables = Exact<{ [key: string]: never; }>;
|
export type GetServerSettingsQueryVariables = Exact<{ [key: string]: never; }>;
|
||||||
|
|
||||||
|
|
||||||
export type GetServerSettingsQuery = { __typename?: 'Query', settings: { __typename?: 'SettingsType', ip: string, port: number, socksProxyEnabled: boolean, socksProxyHost: string, socksProxyPort: string, webUIFlavor: WebUiFlavor, initialOpenInBrowserEnabled: boolean, webUIInterface: WebUiInterface, electronPath: string, webUIChannel: WebUiChannel, webUIUpdateCheckInterval: number, downloadAsCbz: boolean, downloadsPath: string, autoDownloadNewChapters: boolean, excludeEntryWithUnreadChapters: boolean, autoDownloadNewChaptersLimit: number, extensionRepos: Array<string>, maxSourcesInParallel: number, excludeUnreadChapters: boolean, excludeNotStarted: boolean, excludeCompleted: boolean, globalUpdateInterval: number, updateMangas: boolean, basicAuthEnabled: boolean, basicAuthUsername: string, basicAuthPassword: string, debugLogsEnabled: boolean, gqlDebugLogsEnabled: boolean, systemTrayEnabled: boolean, backupPath: string, backupTime: string, backupInterval: number, backupTTL: number, localSourcePath: string, flareSolverrEnabled: boolean, flareSolverrUrl: string, flareSolverrTimeout: number, flareSolverrSessionName: string, flareSolverrSessionTtl: number } };
|
export type GetServerSettingsQuery = { __typename?: 'Query', settings: { __typename?: 'SettingsType', ip: string, port: number, socksProxyEnabled: boolean, socksProxyVersion: number, socksProxyHost: string, socksProxyPort: string, socksProxyUsername: string, socksProxyPassword: string, webUIFlavor: WebUiFlavor, initialOpenInBrowserEnabled: boolean, webUIInterface: WebUiInterface, electronPath: string, webUIChannel: WebUiChannel, webUIUpdateCheckInterval: number, downloadAsCbz: boolean, downloadsPath: string, autoDownloadNewChapters: boolean, excludeEntryWithUnreadChapters: boolean, autoDownloadNewChaptersLimit: number, extensionRepos: Array<string>, maxSourcesInParallel: number, excludeUnreadChapters: boolean, excludeNotStarted: boolean, excludeCompleted: boolean, globalUpdateInterval: number, updateMangas: boolean, basicAuthEnabled: boolean, basicAuthUsername: string, basicAuthPassword: string, debugLogsEnabled: boolean, gqlDebugLogsEnabled: boolean, systemTrayEnabled: boolean, backupPath: string, backupTime: string, backupInterval: number, backupTTL: number, localSourcePath: string, flareSolverrEnabled: boolean, flareSolverrUrl: string, flareSolverrTimeout: number, flareSolverrSessionName: string, flareSolverrSessionTtl: number } };
|
||||||
|
|
||||||
export type GetSourceQueryVariables = Exact<{
|
export type GetSourceQueryVariables = Exact<{
|
||||||
id: Scalars['LongString']['input'];
|
id: Scalars['LongString']['input'];
|
||||||
|
|||||||
@@ -16,14 +16,18 @@ import { useLocalStorage } from '@/util/useLocalStorage.tsx';
|
|||||||
import { TextSetting } from '@/components/settings/text/TextSetting.tsx';
|
import { TextSetting } from '@/components/settings/text/TextSetting.tsx';
|
||||||
import { ServerSettings as GqlServerSettings } from '@/typings.ts';
|
import { ServerSettings as GqlServerSettings } from '@/typings.ts';
|
||||||
import { NumberSetting } from '@/components/settings/NumberSetting.tsx';
|
import { NumberSetting } from '@/components/settings/NumberSetting.tsx';
|
||||||
|
import { SelectSetting } from '@/components/settings/SelectSetting.tsx';
|
||||||
|
|
||||||
type ServerSettingsType = Pick<
|
type ServerSettingsType = Pick<
|
||||||
GqlServerSettings,
|
GqlServerSettings,
|
||||||
| 'ip'
|
| 'ip'
|
||||||
| 'port'
|
| 'port'
|
||||||
| 'socksProxyEnabled'
|
| 'socksProxyEnabled'
|
||||||
|
| 'socksProxyVersion'
|
||||||
| 'socksProxyHost'
|
| 'socksProxyHost'
|
||||||
| 'socksProxyPort'
|
| 'socksProxyPort'
|
||||||
|
| 'socksProxyUsername'
|
||||||
|
| 'socksProxyPassword'
|
||||||
| 'debugLogsEnabled'
|
| 'debugLogsEnabled'
|
||||||
| 'gqlDebugLogsEnabled'
|
| 'gqlDebugLogsEnabled'
|
||||||
| 'systemTrayEnabled'
|
| 'systemTrayEnabled'
|
||||||
@@ -41,8 +45,11 @@ const extractServerSettings = (settings: GqlServerSettings): ServerSettingsType
|
|||||||
ip: settings.ip,
|
ip: settings.ip,
|
||||||
port: settings.port,
|
port: settings.port,
|
||||||
socksProxyEnabled: settings.socksProxyEnabled,
|
socksProxyEnabled: settings.socksProxyEnabled,
|
||||||
|
socksProxyVersion: settings.socksProxyVersion,
|
||||||
socksProxyHost: settings.socksProxyHost,
|
socksProxyHost: settings.socksProxyHost,
|
||||||
socksProxyPort: settings.socksProxyPort,
|
socksProxyPort: settings.socksProxyPort,
|
||||||
|
socksProxyUsername: settings.socksProxyUsername,
|
||||||
|
socksProxyPassword: settings.socksProxyPassword,
|
||||||
debugLogsEnabled: settings.debugLogsEnabled,
|
debugLogsEnabled: settings.debugLogsEnabled,
|
||||||
gqlDebugLogsEnabled: settings.gqlDebugLogsEnabled,
|
gqlDebugLogsEnabled: settings.gqlDebugLogsEnabled,
|
||||||
systemTrayEnabled: settings.systemTrayEnabled,
|
systemTrayEnabled: settings.systemTrayEnabled,
|
||||||
@@ -144,6 +151,17 @@ export const ServerSettings = () => {
|
|||||||
onChange={(e) => updateSetting('socksProxyEnabled', e.target.checked)}
|
onChange={(e) => updateSetting('socksProxyEnabled', e.target.checked)}
|
||||||
/>
|
/>
|
||||||
</ListItem>
|
</ListItem>
|
||||||
|
<SelectSetting<number>
|
||||||
|
settingName={t('settings.server.socks_proxy.label.version')}
|
||||||
|
value={serverSettings?.socksProxyVersion}
|
||||||
|
defaultValue={5}
|
||||||
|
values={[
|
||||||
|
[4, { text: '4' }],
|
||||||
|
[5, { text: '5' }],
|
||||||
|
]}
|
||||||
|
handleChange={(socksProxyVersion) => updateSetting('socksProxyVersion', socksProxyVersion)}
|
||||||
|
disabled={!serverSettings?.socksProxyEnabled}
|
||||||
|
/>
|
||||||
<TextSetting
|
<TextSetting
|
||||||
settingName={t('settings.server.socks_proxy.label.host')}
|
settingName={t('settings.server.socks_proxy.label.host')}
|
||||||
value={serverSettings?.socksProxyHost}
|
value={serverSettings?.socksProxyHost}
|
||||||
@@ -156,6 +174,19 @@ export const ServerSettings = () => {
|
|||||||
handleChange={(proxyPort) => updateSetting('socksProxyPort', proxyPort)}
|
handleChange={(proxyPort) => updateSetting('socksProxyPort', proxyPort)}
|
||||||
disabled={!serverSettings?.socksProxyEnabled}
|
disabled={!serverSettings?.socksProxyEnabled}
|
||||||
/>
|
/>
|
||||||
|
<TextSetting
|
||||||
|
settingName={t('settings.server.socks_proxy.label.username')}
|
||||||
|
value={serverSettings?.socksProxyUsername}
|
||||||
|
handleChange={(proxyUsername) => updateSetting('socksProxyUsername', proxyUsername)}
|
||||||
|
disabled={!serverSettings?.socksProxyEnabled}
|
||||||
|
/>
|
||||||
|
<TextSetting
|
||||||
|
settingName={t('settings.server.socks_proxy.label.password')}
|
||||||
|
value={serverSettings?.socksProxyPassword}
|
||||||
|
handleChange={(proxyPassword) => updateSetting('socksProxyPassword', proxyPassword)}
|
||||||
|
disabled={!serverSettings?.socksProxyEnabled}
|
||||||
|
isPassword
|
||||||
|
/>
|
||||||
</List>
|
</List>
|
||||||
<List
|
<List
|
||||||
subheader={
|
subheader={
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"uiVersion": "PREVIEW",
|
"uiVersion": "PREVIEW",
|
||||||
"serverVersion": "r1487"
|
"serverVersion": "r1493"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
Reference in New Issue
Block a user