Improvement: Novel Updates: Fixed and Expanded Upon the Existing Filter (#1541)

* novel_updates: fix filter

* novel_updates: fix filter

* novel_updates: rename filter
This commit is contained in:
Batorian
2025-03-01 05:34:58 +01:00
committed by GitHub
parent 5e102d4f09
commit 744ab437f5
+68 -61
View File
@@ -6,7 +6,7 @@ import { Plugin } from '@typings/plugin';
class NovelUpdates implements Plugin.PluginBase {
id = 'novelupdates';
name = 'Novel Updates';
version = '0.7.14';
version = '0.7.15';
icon = 'src/en/novelupdates/icon.png';
customCSS = 'src/en/novelupdates/customCSS.css';
site = 'https://www.novelupdates.com/';
@@ -43,24 +43,49 @@ class NovelUpdates implements Plugin.PluginBase {
}: Plugin.PopularNovelsOptions<typeof this.filters>,
): Promise<Plugin.NovelItem[]> {
let link = `${this.site}`;
if (
filters?.language.value.length ||
filters?.novelType.value.length ||
filters?.genres.value.include?.length ||
filters?.genres.value.exclude?.length ||
filters?.reading_lists.value.length ||
filters?.storyStatus.value !== ''
if (showLatestNovels) {
link += 'series-finder/?sf=1&sort=sdate&order=desc';
} else if (
filters?.sort.value === 'popmonth' ||
filters?.sort.value === 'popular'
) {
link += 'series-ranking/?rank=' + filters.sort.value;
} else if (
filters?.sort.value !== 'popmonth' &&
filters?.sort.value !== 'popular'
) {
link += 'series-finder/?sf=1';
if (filters?.language.value.length) {
link += '&org=' + filters.language.value.join(',');
if (
filters?.genres.value.include?.length ||
filters?.genres.value.exclude?.length
) {
link += '&mgi=' + filters.genre_operator.value;
}
if (filters?.novelType.value.length) {
link += '&nt=' + filters.novelType.value.join(',');
}
if (filters?.reading_lists.value.length) {
link += '&hd=' + filters?.reading_lists.value.join(',');
link += '&mRLi=' + filters?.reading_list_operator.value;
}
link += '&sort=' + filters?.sort.value;
link += '&order=' + filters?.order.value;
}
if (
(!showLatestNovels && filters?.language.value.length) ||
filters?.genres.value.include?.length ||
filters?.genres.value.exclude?.length ||
filters?.storyStatus.value !== ''
) {
if (filters?.language.value.length) {
link += '&org=' + filters.language.value.join(',');
}
if (filters?.genres.value.include?.length) {
link += '&gi=' + filters.genres.value.include.join(',');
}
@@ -69,29 +94,9 @@ class NovelUpdates implements Plugin.PluginBase {
link += '&ge=' + filters.genres.value.exclude.join(',');
}
if (
filters?.genres.value.include?.length ||
filters?.genres.value.exclude?.length
) {
link += '&mgi=' + filters.genre_operator.value;
}
if (filters?.reading_lists.value.length) {
link += '&hd=' + filters?.reading_lists.value.join(',');
link += '&mRLi=' + filters?.reading_list_operator.value;
}
if (filters?.storyStatus.value.length) {
link += '&ss=' + filters.storyStatus.value;
}
link += '&sort=' + filters?.sort.value;
link += '&order=' + filters?.order.value;
} else if (showLatestNovels) {
link += 'latest-series/?st=1';
} else {
link += 'series-ranking/?rank=week';
}
link += '&pg=' + page;
@@ -1011,8 +1016,10 @@ class NovelUpdates implements Plugin.PluginBase {
filters = {
sort: {
label: 'Sort Results By',
value: 'sdate',
value: 'popmonth',
options: [
{ label: 'Popular (Month)', value: 'popmonth' },
{ label: 'Popular (All)', value: 'popular' },
{ label: 'Last Updated', value: 'sdate' },
{ label: 'Rating', value: 'srate' },
{ label: 'Rank', value: 'srank' },
@@ -1025,7 +1032,7 @@ class NovelUpdates implements Plugin.PluginBase {
type: FilterTypes.Picker,
},
order: {
label: 'Order',
label: 'Order (Not for Popular)',
value: 'desc',
options: [
{ label: 'Descending', value: 'desc' },
@@ -1044,34 +1051,8 @@ class NovelUpdates implements Plugin.PluginBase {
],
type: FilterTypes.Picker,
},
language: {
label: 'Language',
value: [],
options: [
{ label: 'Chinese', value: '495' },
{ label: 'Filipino', value: '9181' },
{ label: 'Indonesian', value: '9179' },
{ label: 'Japanese', value: '496' },
{ label: 'Khmer', value: '18657' },
{ label: 'Korean', value: '497' },
{ label: 'Malaysian', value: '9183' },
{ label: 'Thai', value: '9954' },
{ label: 'Vietnamese', value: '9177' },
],
type: FilterTypes.CheckboxGroup,
},
novelType: {
label: 'Novel Type',
value: [],
options: [
{ label: 'Light Novel', value: '2443' },
{ label: 'Published Novel', value: '26874' },
{ label: 'Web Novel', value: '2444' },
],
type: FilterTypes.CheckboxGroup,
},
genre_operator: {
label: 'Genre (And/Or)',
label: 'Genre (And/Or) (Not for Popular)',
value: 'and',
options: [
{ label: 'And', value: 'and' },
@@ -1124,8 +1105,34 @@ class NovelUpdates implements Plugin.PluginBase {
{ label: 'Yuri', value: '922' },
],
},
language: {
label: 'Language',
value: [],
options: [
{ label: 'Chinese', value: '495' },
{ label: 'Filipino', value: '9181' },
{ label: 'Indonesian', value: '9179' },
{ label: 'Japanese', value: '496' },
{ label: 'Khmer', value: '18657' },
{ label: 'Korean', value: '497' },
{ label: 'Malaysian', value: '9183' },
{ label: 'Thai', value: '9954' },
{ label: 'Vietnamese', value: '9177' },
],
type: FilterTypes.CheckboxGroup,
},
novelType: {
label: 'Novel Type (Not for Popular)',
value: [],
options: [
{ label: 'Light Novel', value: '2443' },
{ label: 'Published Novel', value: '26874' },
{ label: 'Web Novel', value: '2444' },
],
type: FilterTypes.CheckboxGroup,
},
reading_list_operator: {
label: 'Reading List (Include/Exclude)',
label: 'Reading List (Include/Exclude) (Not for Popular)',
value: 'include',
options: [
{ label: 'Include', value: 'include' },
@@ -1134,7 +1141,7 @@ class NovelUpdates implements Plugin.PluginBase {
type: FilterTypes.Picker,
},
reading_lists: {
label: 'Reading Lists',
label: 'Reading Lists (Not for Popular)',
value: [],
options: [{ label: 'All Reading Lists', value: '-1' }],
type: FilterTypes.CheckboxGroup,