@fsvreddit/bot-bouncer-evaluation 0.7.45 → 0.7.46

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,6 +6,7 @@ export declare class EvaluateBadDisplayNameDefinedHandles extends UserEvaluatorB
6
6
  name: string;
7
7
  shortname: string;
8
8
  banContentThreshold: number;
9
+ private getHandles;
9
10
  private isBadDisplayName;
10
11
  gatherRegexes(): EvaluatorRegex[];
11
12
  private compiledRegexes;
@@ -11,6 +11,17 @@ class EvaluateBadDisplayNameDefinedHandles extends UserEvaluatorBase_js_1.UserEv
11
11
  this.shortname = "baddisplaynamedefinedhandles";
12
12
  this.banContentThreshold = 0;
13
13
  }
14
+ getHandles() {
15
+ const definedHandles = this.getModuleVariable("substitutions", "definedhandles", "");
16
+ if (!definedHandles) {
17
+ return [];
18
+ }
19
+ const parsed = (0, regjsparser_1.parse)(definedHandles, "u");
20
+ if (parsed.type !== "disjunction") {
21
+ return [];
22
+ }
23
+ return parsed.body.map(part => part.raw);
24
+ }
14
25
  isBadDisplayName(displayName) {
15
26
  if (!displayName) {
16
27
  return false;
@@ -25,15 +36,8 @@ class EvaluateBadDisplayNameDefinedHandles extends UserEvaluatorBase_js_1.UserEv
25
36
  gatherRegexes() {
26
37
  const prefix = this.getVariable("prefix", "");
27
38
  const suffix = this.getVariable("suffix", "");
28
- const definedHandles = this.getModuleVariable("substitutions", "definedhandles", "");
29
- if (!definedHandles) {
30
- return [];
31
- }
32
- const parsed = (0, regjsparser_1.parse)(definedHandles, "u");
33
- if (parsed.type !== "disjunction") {
34
- return [];
35
- }
36
- const regexes = parsed.body.map(part => `${prefix}${part.raw}${suffix}`);
39
+ const handles = this.getHandles();
40
+ const regexes = handles.map(handle => `${prefix}${handle}${suffix}`);
37
41
  return (0, lodash_1.uniq)(regexes.map(regex => ({
38
42
  evaluatorName: this.name,
39
43
  regex,
@@ -56,17 +60,16 @@ class EvaluateBadDisplayNameDefinedHandles extends UserEvaluatorBase_js_1.UserEv
56
60
  return results;
57
61
  }
58
62
  for (const regexVal of regexes) {
59
- let regex;
60
63
  try {
61
- regex = new RegExp(regexVal, "u");
64
+ new RegExp(regexVal, "u");
62
65
  }
63
66
  catch {
64
67
  results.push({ severity: "error", message: `Invalid regex in baddisplaynamedefinedhandles: ${regexVal}` });
65
68
  continue;
66
69
  }
67
- if (regex.test("")) {
68
- results.push({ severity: "error", message: `Display name defined handle regex is too greedy: ${regexVal}` });
69
- }
70
+ }
71
+ if (this.getHandles().some(handle => handle === "")) {
72
+ results.push({ severity: "error", message: `Empty handle found in baddisplaynamedefinedhandles` });
70
73
  }
71
74
  return results;
72
75
  }
@@ -44,17 +44,17 @@ class EvaluateBioTextDefinedHandles extends UserEvaluatorBase_js_1.UserEvaluator
44
44
  return results;
45
45
  }
46
46
  for (const regexVal of regexes) {
47
- let regex;
48
47
  try {
49
- regex = new RegExp(regexVal);
48
+ new RegExp(regexVal);
50
49
  }
51
50
  catch {
52
51
  results.push({ severity: "error", message: `Invalid regex in biotextdefinedhandles: ${regexVal}` });
53
52
  continue;
54
53
  }
55
- if (regex.test("")) {
56
- results.push({ severity: "error", message: `Bio Text Defined Handles regex is too greedy: ${regexVal}` });
57
- }
54
+ }
55
+ const handles = this.getHandles();
56
+ if (handles.some(handle => handle === "")) {
57
+ results.push({ severity: "error", message: `Empty handle found in biotextdefinedhandles` });
58
58
  }
59
59
  return results;
60
60
  }
@@ -6,6 +6,7 @@ export declare class EvaluatePostTitleDefinedHandles extends UserEvaluatorBase {
6
6
  name: string;
7
7
  shortname: string;
8
8
  banContentThreshold: number;
9
+ private getHandles;
9
10
  validateVariables(): ValidationIssue[];
10
11
  gatherRegexes(): EvaluatorRegex[];
11
12
  private compiledRegexes;
@@ -16,6 +16,17 @@ class EvaluatePostTitleDefinedHandles extends UserEvaluatorBase_js_1.UserEvaluat
16
16
  this.shortname = "posttitledefinedhandles";
17
17
  this.banContentThreshold = 1;
18
18
  }
19
+ getHandles() {
20
+ const definedHandles = this.getModuleVariable("substitutions", "definedhandles", "");
21
+ if (!definedHandles) {
22
+ return [];
23
+ }
24
+ const parsed = (0, regjsparser_1.parse)(definedHandles, "u");
25
+ if (parsed.type !== "disjunction") {
26
+ return [];
27
+ }
28
+ return parsed.body.map(part => part.raw);
29
+ }
19
30
  validateVariables() {
20
31
  const results = [];
21
32
  let regexes;
@@ -28,32 +39,25 @@ class EvaluatePostTitleDefinedHandles extends UserEvaluatorBase_js_1.UserEvaluat
28
39
  return results;
29
40
  }
30
41
  for (const regexVal of regexes) {
31
- let regex;
32
42
  try {
33
- regex = new RegExp(regexVal, "u");
43
+ new RegExp(regexVal, "u");
34
44
  }
35
45
  catch {
36
46
  results.push({ severity: "error", message: `Invalid regex in post title: ${regexVal}` });
37
47
  continue;
38
48
  }
39
- if (regex.test("")) {
40
- results.push({ severity: "error", message: `Post title regex is too greedy: ${regexVal}` });
41
- }
49
+ }
50
+ const handles = this.getHandles();
51
+ if (handles.some(handle => handle === "")) {
52
+ results.push({ severity: "error", message: `Empty handle found in posttitledefinedhandles` });
42
53
  }
43
54
  return results;
44
55
  }
45
56
  gatherRegexes() {
46
57
  const prefix = this.getVariable("prefix", "");
47
58
  const suffix = this.getVariable("suffix", "");
48
- const definedHandles = this.getModuleVariable("substitutions", "definedhandles", "");
49
- if (!definedHandles) {
50
- return [];
51
- }
52
- const parsed = (0, regjsparser_1.parse)(definedHandles, "u");
53
- if (parsed.type !== "disjunction") {
54
- return [];
55
- }
56
- const regexes = parsed.body.map(part => `${prefix}${part.raw}${suffix}`);
59
+ const handles = this.getHandles();
60
+ const regexes = handles.map(handle => `${prefix}${handle}${suffix}`);
57
61
  return (0, lodash_1.uniq)(regexes.map(regex => ({
58
62
  evaluatorName: this.name,
59
63
  regex,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fsvreddit/bot-bouncer-evaluation",
3
- "version": "0.7.45",
3
+ "version": "0.7.46",
4
4
  "description": "Evaluation code for Bot Bouncer, a Dev Platform app designed to hunt bots on Reddit",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {