Add new "opds skip chapters metadata feed" setting

This commit is contained in:
schroda
2026-06-30 15:38:59 +02:00
parent aa6ededa10
commit 3812a84514
6 changed files with 34 additions and 0 deletions

View File

@@ -586,6 +586,17 @@ export const ServerSettings = () => {
onChange={(e) => updateSetting('opdsShowOnlyDownloadedChapters', e.target.checked)}
/>
</ListItem>
<ListItem>
<ListItemText
primary={t`Skip chapter metadata feed`}
secondary={t`When enabled, download and streaming links are provided directly in the chapter list. KoSync strategies are applied, but PROMPT conflicts are ignored (treating local progress as priority)`}
/>
<Switch
edge="end"
checked={serverSettings.opdsSkipChapterMetadataFeed}
onChange={(e) => updateSetting('opdsSkipChapterMetadataFeed', e.target.checked)}
/>
</ListItem>
<SelectSetting<SortOrder>
settingName={t`Chapter sort order`}
dialogDescription={t`Choose the order in which chapters are displayed.`}

View File

@@ -3348,6 +3348,10 @@ msgstr "Simple Login"
msgid "Single page"
msgstr "Single page"
#: src/features/settings/screens/ServerSettings.tsx
msgid "Skip chapter metadata feed"
msgstr "Skip chapter metadata feed"
#: src/features/reader/settings/behaviour/ReaderBehaviourSettings.tsx
msgid "Skip duplicate chapters"
msgstr "Skip duplicate chapters"
@@ -4046,6 +4050,10 @@ msgstr "WebView"
msgid "Weekly"
msgstr "Weekly"
#: src/features/settings/screens/ServerSettings.tsx
msgid "When enabled, download and streaming links are provided directly in the chapter list. KoSync strategies are applied, but PROMPT conflicts are ignored (treating local progress as priority)"
msgstr "When enabled, download and streaming links are provided directly in the chapter list. KoSync strategies are applied, but PROMPT conflicts are ignored (treating local progress as priority)"
#: src/features/settings/Settings.constants.ts
msgid "When you enable this, you may need to refresh this tab for the login page to appear."
msgstr "When you enable this, you may need to refresh this tab for the login page to appear."

View File

@@ -1139,6 +1139,7 @@ export type PartialSettingsTypeKeySpecifier = (
| 'opdsMarkAsReadOnDownload'
| 'opdsShowOnlyDownloadedChapters'
| 'opdsShowOnlyUnreadChapters'
| 'opdsSkipChapterMetadataFeed'
| 'opdsUseBinaryFileSizes'
| 'port'
| 'serveConversions'
@@ -1237,6 +1238,7 @@ export type PartialSettingsTypeFieldPolicy = {
opdsMarkAsReadOnDownload?: FieldPolicy<any> | FieldReadFunction<any>;
opdsShowOnlyDownloadedChapters?: FieldPolicy<any> | FieldReadFunction<any>;
opdsShowOnlyUnreadChapters?: FieldPolicy<any> | FieldReadFunction<any>;
opdsSkipChapterMetadataFeed?: FieldPolicy<any> | FieldReadFunction<any>;
opdsUseBinaryFileSizes?: FieldPolicy<any> | FieldReadFunction<any>;
port?: FieldPolicy<any> | FieldReadFunction<any>;
serveConversions?: FieldPolicy<any> | FieldReadFunction<any>;
@@ -1546,6 +1548,7 @@ export type SettingsKeySpecifier = (
| 'opdsMarkAsReadOnDownload'
| 'opdsShowOnlyDownloadedChapters'
| 'opdsShowOnlyUnreadChapters'
| 'opdsSkipChapterMetadataFeed'
| 'opdsUseBinaryFileSizes'
| 'port'
| 'serveConversions'
@@ -1644,6 +1647,7 @@ export type SettingsFieldPolicy = {
opdsMarkAsReadOnDownload?: FieldPolicy<any> | FieldReadFunction<any>;
opdsShowOnlyDownloadedChapters?: FieldPolicy<any> | FieldReadFunction<any>;
opdsShowOnlyUnreadChapters?: FieldPolicy<any> | FieldReadFunction<any>;
opdsSkipChapterMetadataFeed?: FieldPolicy<any> | FieldReadFunction<any>;
opdsUseBinaryFileSizes?: FieldPolicy<any> | FieldReadFunction<any>;
port?: FieldPolicy<any> | FieldReadFunction<any>;
serveConversions?: FieldPolicy<any> | FieldReadFunction<any>;
@@ -1793,6 +1797,7 @@ export type SettingsTypeKeySpecifier = (
| 'opdsMarkAsReadOnDownload'
| 'opdsShowOnlyDownloadedChapters'
| 'opdsShowOnlyUnreadChapters'
| 'opdsSkipChapterMetadataFeed'
| 'opdsUseBinaryFileSizes'
| 'port'
| 'serveConversions'
@@ -1891,6 +1896,7 @@ export type SettingsTypeFieldPolicy = {
opdsMarkAsReadOnDownload?: FieldPolicy<any> | FieldReadFunction<any>;
opdsShowOnlyDownloadedChapters?: FieldPolicy<any> | FieldReadFunction<any>;
opdsShowOnlyUnreadChapters?: FieldPolicy<any> | FieldReadFunction<any>;
opdsSkipChapterMetadataFeed?: FieldPolicy<any> | FieldReadFunction<any>;
opdsUseBinaryFileSizes?: FieldPolicy<any> | FieldReadFunction<any>;
port?: FieldPolicy<any> | FieldReadFunction<any>;
serveConversions?: FieldPolicy<any> | FieldReadFunction<any>;

View File

@@ -1858,6 +1858,7 @@ export type PartialSettingsType = Settings & {
opdsMarkAsReadOnDownload?: Maybe<Scalars['Boolean']['output']>;
opdsShowOnlyDownloadedChapters?: Maybe<Scalars['Boolean']['output']>;
opdsShowOnlyUnreadChapters?: Maybe<Scalars['Boolean']['output']>;
opdsSkipChapterMetadataFeed?: Maybe<Scalars['Boolean']['output']>;
opdsUseBinaryFileSizes?: Maybe<Scalars['Boolean']['output']>;
port?: Maybe<Scalars['Int']['output']>;
serveConversions?: Maybe<Array<SettingsDownloadConversionType>>;
@@ -1946,6 +1947,7 @@ export type PartialSettingsTypeInput = {
opdsMarkAsReadOnDownload?: InputMaybe<Scalars['Boolean']['input']>;
opdsShowOnlyDownloadedChapters?: InputMaybe<Scalars['Boolean']['input']>;
opdsShowOnlyUnreadChapters?: InputMaybe<Scalars['Boolean']['input']>;
opdsSkipChapterMetadataFeed?: InputMaybe<Scalars['Boolean']['input']>;
opdsUseBinaryFileSizes?: InputMaybe<Scalars['Boolean']['input']>;
port?: InputMaybe<Scalars['Int']['input']>;
serveConversions?: InputMaybe<Array<SettingsDownloadConversionTypeInput>>;
@@ -2465,6 +2467,7 @@ export type Settings = {
opdsMarkAsReadOnDownload?: Maybe<Scalars['Boolean']['output']>;
opdsShowOnlyDownloadedChapters?: Maybe<Scalars['Boolean']['output']>;
opdsShowOnlyUnreadChapters?: Maybe<Scalars['Boolean']['output']>;
opdsSkipChapterMetadataFeed?: Maybe<Scalars['Boolean']['output']>;
opdsUseBinaryFileSizes?: Maybe<Scalars['Boolean']['output']>;
port?: Maybe<Scalars['Int']['output']>;
serveConversions?: Maybe<Array<SettingsDownloadConversion>>;
@@ -2618,6 +2621,7 @@ export type SettingsType = Settings & {
opdsMarkAsReadOnDownload: Scalars['Boolean']['output'];
opdsShowOnlyDownloadedChapters: Scalars['Boolean']['output'];
opdsShowOnlyUnreadChapters: Scalars['Boolean']['output'];
opdsSkipChapterMetadataFeed: Scalars['Boolean']['output'];
opdsUseBinaryFileSizes: Scalars['Boolean']['output'];
port: Scalars['Int']['output'];
serveConversions: Array<SettingsDownloadConversionType>;

View File

@@ -2652,6 +2652,7 @@ export type ServerSettingsFragment = {
opdsShowOnlyDownloadedChapters: boolean;
opdsChapterSortOrder: Types.SortOrder;
opdsCbzMimetype: Types.CbzMediaType;
opdsSkipChapterMetadataFeed: boolean;
koreaderSyncChecksumMethod: Types.KoreaderSyncChecksumMethod;
koreaderSyncStrategyBackward: Types.KoreaderSyncConflictStrategy;
koreaderSyncStrategyForward: Types.KoreaderSyncConflictStrategy;
@@ -2765,6 +2766,7 @@ export type ResetServerSettingsMutation = {
opdsShowOnlyDownloadedChapters: boolean;
opdsChapterSortOrder: Types.SortOrder;
opdsCbzMimetype: Types.CbzMediaType;
opdsSkipChapterMetadataFeed: boolean;
koreaderSyncChecksumMethod: Types.KoreaderSyncChecksumMethod;
koreaderSyncStrategyBackward: Types.KoreaderSyncConflictStrategy;
koreaderSyncStrategyForward: Types.KoreaderSyncConflictStrategy;
@@ -2888,6 +2890,7 @@ export type UpdateServerSettingsMutation = {
opdsShowOnlyDownloadedChapters: boolean;
opdsChapterSortOrder: Types.SortOrder;
opdsCbzMimetype: Types.CbzMediaType;
opdsSkipChapterMetadataFeed: boolean;
koreaderSyncChecksumMethod: Types.KoreaderSyncChecksumMethod;
koreaderSyncStrategyBackward: Types.KoreaderSyncConflictStrategy;
koreaderSyncStrategyForward: Types.KoreaderSyncConflictStrategy;
@@ -3007,6 +3010,7 @@ export type GetServerSettingsQuery = {
opdsShowOnlyDownloadedChapters: boolean;
opdsChapterSortOrder: Types.SortOrder;
opdsCbzMimetype: Types.CbzMediaType;
opdsSkipChapterMetadataFeed: boolean;
koreaderSyncChecksumMethod: Types.KoreaderSyncChecksumMethod;
koreaderSyncStrategyBackward: Types.KoreaderSyncConflictStrategy;
koreaderSyncStrategyForward: Types.KoreaderSyncConflictStrategy;

View File

@@ -122,6 +122,7 @@ export const SERVER_SETTINGS = gql`
opdsShowOnlyDownloadedChapters
opdsChapterSortOrder
opdsCbzMimetype
opdsSkipChapterMetadataFeed
# KOReader sync
koreaderSyncChecksumMethod