mirror of
https://github.com/DIYgod/RSSHub.git
synced 2025-12-08 14:07:54 +08:00
feat: add filter_case_sensitive url parameter (#3910)
This commit is contained in:
@@ -121,6 +121,15 @@ module.exports = async (ctx, next) => {
|
||||
}
|
||||
|
||||
// filter
|
||||
const makeRegex = (string) => {
|
||||
// default: case_senstivie = true
|
||||
if (ctx.query.filter_case_sensitive === 'false') {
|
||||
return new RegExp(string, 'i');
|
||||
} else {
|
||||
return new RegExp(string);
|
||||
}
|
||||
};
|
||||
|
||||
if (ctx.query.filter || ctx.query.filter_title || ctx.query.filter_description || ctx.query.filter_author) {
|
||||
if (ctx.query.filter) {
|
||||
ctx.query.filter_title = ctx.query.filter;
|
||||
@@ -131,9 +140,9 @@ module.exports = async (ctx, next) => {
|
||||
const description = item.description || title;
|
||||
const author = item.author || '';
|
||||
let isFilter = true;
|
||||
ctx.query.filter_title && (isFilter = isFilter && !title.match(ctx.query.filter_title));
|
||||
ctx.query.filter_description && (isFilter = isFilter && !description.match(ctx.query.filter_description));
|
||||
ctx.query.filter_author && (isFilter = isFilter && !author.match(ctx.query.filter_author));
|
||||
ctx.query.filter_title && (isFilter = isFilter && !title.match(makeRegex(ctx.query.filter_title)));
|
||||
ctx.query.filter_description && (isFilter = isFilter && !description.match(makeRegex(ctx.query.filter_description)));
|
||||
ctx.query.filter_author && (isFilter = isFilter && !author.match(makeRegex(ctx.query.filter_author)));
|
||||
return !isFilter;
|
||||
});
|
||||
}
|
||||
@@ -148,9 +157,9 @@ module.exports = async (ctx, next) => {
|
||||
const description = item.description || title;
|
||||
const author = item.author || '';
|
||||
let isFilter = true;
|
||||
ctx.query.filterout_title && (isFilter = isFilter && !title.match(ctx.query.filterout_title));
|
||||
ctx.query.filterout_description && (isFilter = isFilter && !description.match(ctx.query.filterout_description));
|
||||
ctx.query.filterout_author && (isFilter = isFilter && !author.match(ctx.query.filterout_author));
|
||||
ctx.query.filterout_title && (isFilter = isFilter && !title.match(makeRegex(ctx.query.filterout_title)));
|
||||
ctx.query.filterout_description && (isFilter = isFilter && !description.match(makeRegex(ctx.query.filterout_description)));
|
||||
ctx.query.filterout_author && (isFilter = isFilter && !author.match(makeRegex(ctx.query.filterout_author)));
|
||||
return isFilter;
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user