added flag

This commit is contained in:
n1073645 2019-12-03 11:51:05 +00:00
parent 34faeca7ba
commit 19aa4effaf
3 changed files with 47 additions and 9 deletions

View file

@ -264,16 +264,47 @@ class Magic {
if (_buffersEqual(output, new ArrayBuffer())) { if (_buffersEqual(output, new ArrayBuffer())) {
return; return;
} }
if (flag) {
switch (flag) {
case "Input":
const outputRegexes = OperationConfig[op.op].outputRegexes;
if (outputRegexes)
for (const pattern of outputRegexes)
if (!(new RegExp(pattern.match, pattern.flags).test(Utils.arrayBufferToStr(output)))) {
if (pattern.shouldMatch)
return;
} else {
if (!pattern.shouldMatch)
return;
}
break;
case "Output":
if(!(new RegExp(op.match, op.flags).test(Utils.arrayBufferToStr(output)))){
if (shouldMatch)
return;
} else {
if (!shouldMatch)
return;
}
break;
default:
console.log("This is borked");
}
/* if (flag) {
const outputRegexes = OperationConfig[op.op].outputRegexes; const outputRegexes = OperationConfig[op.op].outputRegexes;
if (outputRegexes) if (outputRegexes)
for (const pattern of outputRegexes) for (const pattern of outputRegexes)
if (!(new RegExp(pattern.match, pattern.flags).test(Utils.arrayBufferToStr(output)))) if (!(new RegExp(pattern.match, pattern.flags).test(Utils.arrayBufferToStr(output)))) {
return; if (pattern.shouldMatch)
return;
} else {
if (!pattern.shouldMatch)
return;
}
} else { } else {
if(!(new RegExp(op.match, op.flags).test(Utils.arrayBufferToStr(output)))) if(!(new RegExp(op.match, op.flags).test(Utils.arrayBufferToStr(output))))
return; return;
} } */
const magic = new Magic(output, this.opPatterns), const magic = new Magic(output, this.opPatterns),
speculativeResults = await magic.speculativeExecution( speculativeResults = await magic.speculativeExecution(
depth-1, extLang, intensive, [...recipeConfig, opConfig], op.useful, crib); depth-1, extLang, intensive, [...recipeConfig, opConfig], op.useful, crib);
@ -318,8 +349,8 @@ class Magic {
}); });
const prevOp = recipeConfig[recipeConfig.length - 1]; const prevOp = recipeConfig[recipeConfig.length - 1];
results = results.concat(await this.regexesTests(1, matchingOps, prevOp, depth, extLang, intensive, recipeConfig, crib)); results = results.concat(await this.regexesTests("Input", matchingOps, prevOp, depth, extLang, intensive, recipeConfig, crib));
results = results.concat(await this.regexesTests(0, this.opPatterns.getOutputRegexes(), prevOp, depth, extLang, intensive, recipeConfig, crib)); results = results.concat(await this.regexesTests("Output", this.opPatterns.getOutputRegexes(), prevOp, depth, extLang, intensive, recipeConfig, crib));
// console.log("haha", results); // console.log("haha", results);
if (intensive) { if (intensive) {

View file

@ -5,6 +5,7 @@
*/ */
import Operation from "../Operation.mjs"; import Operation from "../Operation.mjs";
import magicObject from "../lib/MagicObject.mjs";
/** /**
@ -25,7 +26,13 @@ class DefangIPAddresses extends Operation {
this.inputType = "string"; this.inputType = "string";
this.outputType = "string"; this.outputType = "string";
this.args = []; this.args = [];
this.checks = new magicObject([
{
match: "^\\s*(([0-9]{1,3}.){3}[0-9]{1,3}|([0-9a-f]{4}:){7}[0-9a-f]{4})\\s*$",
flags: "i",
args: [],
}
]);
} }
/** /**

View file

@ -32,14 +32,14 @@ class URLDecode extends Operation {
args: [], args: [],
} }
], ],
[ /*[
{ {
match: "^(?:(http(s)?|ftp):\\/\\/)?[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$", match: "^(?:(http(s)?|ftp):\\/\\/)?[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$",
flags: "i", flags: "i",
shouldMatch: true, shouldMatch: true,
args: [] args: []
} }
] ]*/
); );
} }