fix: check for allowed regexes during filtering

This commit is contained in:
Viren070
2025-08-13 20:39:24 +01:00
parent 0d7c8d92b1
commit 7b0b98f135
3 changed files with 20 additions and 4 deletions
+5 -1
View File
@@ -86,7 +86,11 @@ class StreamFilterer {
};
const start = Date.now();
const isRegexAllowed = FeatureControl.isRegexAllowed(this.userData);
const isRegexAllowed = FeatureControl.isRegexAllowed(this.userData, [
...(this.userData.excludedRegexPatterns ?? []),
...(this.userData.requiredRegexPatterns ?? []),
...(this.userData.includedRegexPatterns ?? []),
]);
let requestedMetadata: TMDBMetadataResponse | undefined;
if (this.userData.titleMatching?.enabled && TYPES.includes(type as any)) {
+6 -2
View File
@@ -19,8 +19,12 @@ class StreamPrecomputer {
public async precompute(streams: ParsedStream[]) {
const preferredRegexPatterns =
FeatureControl.isRegexAllowed(this.userData) &&
this.userData.preferredRegexPatterns
FeatureControl.isRegexAllowed(
this.userData,
this.userData.preferredRegexPatterns?.map(
(pattern) => pattern.pattern
) ?? []
) && this.userData.preferredRegexPatterns
? await Promise.all(
this.userData.preferredRegexPatterns.map(async (pattern) => {
return {
+9 -1
View File
@@ -66,7 +66,15 @@ export class FeatureControl {
return this._allowedRegexPatterns;
}
public static isRegexAllowed(userData: UserData) {
public static isRegexAllowed(userData: UserData, regexes?: string[]) {
if (regexes && regexes.length > 0) {
const areAllRegexesAllowed = regexes.every((regex) =>
this.allowedRegexPatterns.patterns.includes(regex)
);
if (areAllRegexesAllowed) {
return true;
}
}
switch (this.regexFilterAccess) {
case 'trusted':
return userData.trusted ?? false;