feat: add filter_case_sensitive url parameter (#3910)

This commit is contained in:
pnlng
2020-02-09 02:51:58 -08:00
committed by GitHub
parent 9fc6e1586f
commit 4671720f4c
4 changed files with 125 additions and 6 deletions

View File

@@ -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;
});
}