refactor to browserless submenu

This commit is contained in:
BroodjeAap 2023-01-31 21:25:17 +00:00
parent f81b49d92a
commit 088cf1e66e
5 changed files with 276 additions and 138 deletions

View file

@ -127,14 +127,6 @@ func getFilterResult(filters []Filter, filter *Filter, watch *Watch, web *Web, d
{ {
getFilterResultURLs(filter, web.urlCache, debug) getFilterResultURLs(filter, web.urlCache, debug)
} }
case filter.Type == "bgurl":
{
getFilterResultBrowserlessURL(filter, web.urlCache, debug)
}
case filter.Type == "bgurls":
{
getFilterResultBrowserlessURLs(filter, web.urlCache, debug)
}
case filter.Type == "xpath": case filter.Type == "xpath":
{ {
getFilterResultXPath(filter) getFilterResultXPath(filter)
@ -241,6 +233,19 @@ func getFilterResult(filters []Filter, filter *Filter, watch *Watch, web *Web, d
} }
} }
} }
case filter.Type == "brow":
{
switch filter.Var1 {
case "gurl":
{
getFilterResultBrowserlessURL(filter, web.urlCache, debug)
}
case "gurls":
{
getFilterResultBrowserlessURLs(filter, web.urlCache, debug)
}
}
}
case filter.Type == "echo": case filter.Type == "echo":
{ {
getFilterResultEcho(filter) getFilterResultEcho(filter)
@ -317,7 +322,11 @@ func getURLContent(filter *Filter, fetchURL string) (string, error) {
} }
func getFilterResultBrowserlessURL(filter *Filter, urlCache map[string]string, debug bool) { func getFilterResultBrowserlessURL(filter *Filter, urlCache map[string]string, debug bool) {
fetchURL := filter.Var1 if filter.Var2 == nil {
filter.log("filter.Var2 == nil")
return
}
fetchURL := *filter.Var2
val, exists := urlCache["b"+fetchURL] val, exists := urlCache["b"+fetchURL]
if debug && exists { if debug && exists {
filter.Results = append(filter.Results, val) filter.Results = append(filter.Results, val)

View file

@ -114,65 +114,6 @@ function onTypeChange(node) {
var3Div.appendChild(var3Input); var3Div.appendChild(var3Input);
break; break;
} }
case "bgurl": {
var var1Input = document.createElement("input");
var1Input.name = "var1";
var1Input.id = "var1Input";
var1Input.value = var1Value;
var1Input.classList.add("form-control");
var1Label.innerHTML = "URL";
var1Input.placeholder = "https://shopping.website.com";
var1Div.appendChild(var1Input);
var var2Input = document.createElement("input");
var2Input.name = "var2";
var2Input.id = "var2Input";
var2Input.value = var2Value;
var2Input.classList.add("form-control");
var2Input.disabled = true;
var2Input.placeholder = "";
var2Label.innerHTML = "-";
var2Div.appendChild(var2Input);
var var3Input = document.createElement("input");
var3Input.name = "var3";
var3Input.id = "var3Input";
var3Input.value = var3Value;
var3Input.classList.add("form-control");
var3Input.disabled = true;
var3Input.placeholder = "";
var3Label.innerHTML = "-";
var3Div.appendChild(var3Input);
break;
}
case "bgurls": {
var var1Input = document.createElement("input");
var1Input.name = "var1";
var1Input.id = "var1Input";
var1Input.value = var1Value;
var1Input.classList.add("form-control");
var1Label.innerHTML = "-";
var1Input.placeholder = "From parents";
var1Input.disabled = true;
var1Div.appendChild(var1Input);
var var2Input = document.createElement("input");
var2Input.name = "var2";
var2Input.id = "var2Input";
var2Input.value = var2Value;
var2Input.classList.add("form-control");
var2Input.disabled = true;
var2Input.placeholder = "";
var2Label.innerHTML = "-";
var2Div.appendChild(var2Input);
var var3Input = document.createElement("input");
var3Input.name = "var3";
var3Input.id = "var3Input";
var3Input.value = var3Value;
var3Input.classList.add("form-control");
var3Input.disabled = true;
var3Input.placeholder = "";
var3Label.innerHTML = "-";
var3Div.appendChild(var3Input);
break;
}
case "xpath": { case "xpath": {
var var1Input = document.createElement("input"); var var1Input = document.createElement("input");
var1Input.name = "var1"; var1Input.name = "var1";
@ -500,7 +441,6 @@ function onTypeChange(node) {
break; break;
} }
case "unique": { case "unique": {
console.log("TEST");
var var1Input = document.createElement("input"); var var1Input = document.createElement("input");
var1Input.name = "var1"; var1Input.name = "var1";
var1Input.id = "var1Input"; var1Input.id = "var1Input";
@ -672,6 +612,79 @@ function onTypeChange(node) {
var3Div.appendChild(var3Input); var3Div.appendChild(var3Input);
break; break;
} }
case "brow": {
var browserlessSelect = document.createElement("select");
browserlessSelect.name = "var1";
browserlessSelect.id = "var1Input";
browserlessSelect.classList.add("form-control");
var1Label.innerHTML = "Function";
var gurlOption = document.createElement("option");
gurlOption.value = "gurl";
gurlOption.innerHTML = "Get URL";
browserlessSelect.appendChild(gurlOption);
var gurlsOption = document.createElement("option");
gurlsOption.value = "gurls";
gurlsOption.innerHTML = "Get URLs";
browserlessSelect.appendChild(gurlsOption);
var startOption = document.createElement("option");
startOption.value = "start";
startOption.innerHTML = "Start Session";
browserlessSelect.appendChild(startOption);
var endOption = document.createElement("option");
endOption.value = "end";
endOption.innerHTML = "End Session";
browserlessSelect.appendChild(endOption);
var gotoOption = document.createElement("option");
gotoOption.value = "go";
gotoOption.innerHTML = "Goto URL";
browserlessSelect.appendChild(gotoOption);
var cssOption = document.createElement("option");
cssOption.value = "css";
cssOption.innerHTML = "Click CSS Element";
browserlessSelect.appendChild(cssOption);
var xpathOption = document.createElement("option");
xpathOption.value = "xpath";
xpathOption.innerHTML = "Click XPath Element";
browserlessSelect.appendChild(xpathOption);
var authOption = document.createElement("option");
authOption.value = "auth";
authOption.innerHTML = "Authenticate";
browserlessSelect.appendChild(authOption);
var selectOption = document.createElement("option");
selectOption.value = "select";
selectOption.innerHTML = "Set Dropdown";
browserlessSelect.appendChild(selectOption);
var inputOption = document.createElement("option");
inputOption.value = "input";
inputOption.innerHTML = "Set Input";
browserlessSelect.appendChild(inputOption);
var keyOption = document.createElement("option");
keyOption.value = "key";
keyOption.innerHTML = "Press Key";
browserlessSelect.appendChild(keyOption);
var waitOption = document.createElement("option");
waitOption.value = "wait";
waitOption.innerHTML = "Wait";
browserlessSelect.appendChild(waitOption);
var lineOption = document.createElement("option");
lineOption.value = "line";
lineOption.innerHTML = "Raw Line";
browserlessSelect.appendChild(lineOption);
var rawOption = document.createElement("option");
rawOption.value = "raw";
rawOption.innerHTML = "Raw Function";
browserlessSelect.appendChild(rawOption);
var1Div.appendChild(browserlessSelect);
if (var1Value == "") {
browserlessSelect.value = "gurl";
}
else {
browserlessSelect.value = var1Value;
}
browserlessSelect.onchange = function () { onBrowserlessChange(); };
onBrowserlessChange(node);
break;
}
case "lua": { case "lua": {
var var1Input_1 = document.createElement("textarea"); var var1Input_1 = document.createElement("textarea");
var1Input_1.name = "var1"; var1Input_1.name = "var1";
@ -807,6 +820,7 @@ function onConditionChange(node) {
var var1Value = ""; var var1Value = "";
var var2Value = ""; var var2Value = "";
var var3Value = ""; var var3Value = "";
console.log(node, var1Input.value);
if (node != null) { if (node != null) {
// @ts-ignore // @ts-ignore
var1Value = node.meta.var1; var1Value = node.meta.var1;
@ -877,6 +891,51 @@ function onConditionChange(node) {
} }
} }
} }
function onBrowserlessChange(node) {
if (node === void 0) { node = null; }
var var1Input = document.getElementById("var1Input");
var var1Label = document.getElementById("var1Label");
var var1Div = document.getElementById("var1Div");
var var2Input = document.getElementById("var2Input");
var var2Label = document.getElementById("var2Label");
var var2Div = document.getElementById("var2Div");
var2Div.innerHTML = "";
var var3Input = document.getElementById("var3Input");
var var3Label = document.getElementById("var3Label");
var var3Div = document.getElementById("var3Div");
var var1Value = "";
var var2Value = "";
var var3Value = "";
console.log(node, var1Input.value);
if (node != null) {
// @ts-ignore
var1Value = node.meta.var1;
var1Input.value = var1Value;
// @ts-ignore
var2Value = node.meta.var2;
// @ts-ignore
var3Value = node.meta.var3;
}
else {
var1Value = var1Input.value;
}
var1Label.innerHTML = "Function";
switch (var1Value) {
case "gurl": {
var var2Input_3 = document.createElement("input");
var2Input_3.name = "var2";
var2Input_3.id = "var2Input";
var2Input_3.value = var2Value;
var2Input_3.classList.add("form-control");
var2Label.innerHTML = "URL";
var2Div.appendChild(var2Input_3);
break;
}
case "gurls": {
break;
}
}
}
function onSubmitNewFilter() { function onSubmitNewFilter() {
var nameInput = document.getElementById("nameInput"); var nameInput = document.getElementById("nameInput");
var name = nameInput.value; var name = nameInput.value;

View file

@ -90,69 +90,6 @@ function onTypeChange(node: DiagramNode | null = null){
var3Div.appendChild(var3Input); var3Div.appendChild(var3Input);
break; break;
} }
case "bgurl": {
let var1Input = document.createElement("input");
var1Input.name = "var1";
var1Input.id = "var1Input";
var1Input.value = var1Value;
var1Input.classList.add("form-control");
var1Label.innerHTML = "URL";
var1Input.placeholder = "https://shopping.website.com";
var1Div.appendChild(var1Input);
let var2Input = document.createElement("input");
var2Input.name = "var2";
var2Input.id = "var2Input";
var2Input.value = var2Value;
var2Input.classList.add("form-control");
var2Input.disabled = true;
var2Input.placeholder = ""
var2Label.innerHTML = "-";
var2Div.appendChild(var2Input);
let var3Input = document.createElement("input");
var3Input.name = "var3";
var3Input.id = "var3Input";
var3Input.value = var3Value;
var3Input.classList.add("form-control");
var3Input.disabled = true;
var3Input.placeholder = ""
var3Label.innerHTML = "-";
var3Div.appendChild(var3Input);
break;
}
case "bgurls": {
let var1Input = document.createElement("input");
var1Input.name = "var1";
var1Input.id = "var1Input";
var1Input.value = var1Value;
var1Input.classList.add("form-control")
var1Label.innerHTML = "-";
var1Input.placeholder = "From parents";
var1Input.disabled = true;
var1Div.appendChild(var1Input);
let var2Input = document.createElement("input");
var2Input.name = "var2";
var2Input.id = "var2Input";
var2Input.value = var2Value;
var2Input.classList.add("form-control")
var2Input.disabled = true;
var2Input.placeholder = ""
var2Label.innerHTML = "-";
var2Div.appendChild(var2Input);
let var3Input = document.createElement("input");
var3Input.name = "var3";
var3Input.id = "var3Input";
var3Input.value = var3Value;
var3Input.classList.add("form-control");
var3Input.disabled = true;
var3Input.placeholder = ""
var3Label.innerHTML = "-";
var3Div.appendChild(var3Input);
break;
}
case "xpath": { case "xpath": {
let var1Input = document.createElement("input"); let var1Input = document.createElement("input");
var1Input.name = "var1"; var1Input.name = "var1";
@ -493,7 +430,6 @@ function onTypeChange(node: DiagramNode | null = null){
break; break;
} }
case "unique": { case "unique": {
console.log("TEST");
let var1Input = document.createElement("input"); let var1Input = document.createElement("input");
var1Input.name = "var1"; var1Input.name = "var1";
var1Input.id = "var1Input"; var1Input.id = "var1Input";
@ -661,6 +597,94 @@ function onTypeChange(node: DiagramNode | null = null){
var3Div.appendChild(var3Input); var3Div.appendChild(var3Input);
break; break;
} }
case "brow":{
let browserlessSelect = document.createElement("select");
browserlessSelect.name = "var1";
browserlessSelect.id = "var1Input";
browserlessSelect.classList.add("form-control");
var1Label.innerHTML = "Function";
let gurlOption = document.createElement("option");
gurlOption.value = "gurl"
gurlOption.innerHTML = "Get URL";
browserlessSelect.appendChild(gurlOption);
let gurlsOption = document.createElement("option");
gurlsOption.value = "gurls"
gurlsOption.innerHTML = "Get URLs";
browserlessSelect.appendChild(gurlsOption);
let startOption = document.createElement("option");
startOption.value = "start"
startOption.innerHTML = "Start Session";
browserlessSelect.appendChild(startOption);
let endOption = document.createElement("option");
endOption.value = "end"
endOption.innerHTML = "End Session";
browserlessSelect.appendChild(endOption);
let gotoOption = document.createElement("option");
gotoOption.value = "go"
gotoOption.innerHTML = "Goto URL";
browserlessSelect.appendChild(gotoOption);
let cssOption = document.createElement("option");
cssOption.value = "css"
cssOption.innerHTML = "Click CSS Element";
browserlessSelect.appendChild(cssOption);
let xpathOption = document.createElement("option");
xpathOption.value = "xpath"
xpathOption.innerHTML = "Click XPath Element";
browserlessSelect.appendChild(xpathOption);
let authOption = document.createElement("option");
authOption.value = "auth"
authOption.innerHTML = "Authenticate";
browserlessSelect.appendChild(authOption);
let selectOption = document.createElement("option");
selectOption.value = "select"
selectOption.innerHTML = "Set Dropdown";
browserlessSelect.appendChild(selectOption);
let inputOption = document.createElement("option");
inputOption.value = "input"
inputOption.innerHTML = "Set Input";
browserlessSelect.appendChild(inputOption);
let keyOption = document.createElement("option");
keyOption.value = "key"
keyOption.innerHTML = "Press Key";
browserlessSelect.appendChild(keyOption);
let waitOption = document.createElement("option");
waitOption.value = "wait"
waitOption.innerHTML = "Wait";
browserlessSelect.appendChild(waitOption);
let lineOption = document.createElement("option");
lineOption.value = "line"
lineOption.innerHTML = "Raw Line";
browserlessSelect.appendChild(lineOption);
let rawOption = document.createElement("option");
rawOption.value = "raw"
rawOption.innerHTML = "Raw Function";
browserlessSelect.appendChild(rawOption);
var1Div.appendChild(browserlessSelect);
if (var1Value == ""){
browserlessSelect.value = "gurl";
} else {
browserlessSelect.value = var1Value;
}
browserlessSelect.onchange = function() {onBrowserlessChange()}
onBrowserlessChange(node)
break
}
case "lua":{ case "lua":{
let var1Input = document.createElement("textarea"); let var1Input = document.createElement("textarea");
var1Input.name = "var1"; var1Input.name = "var1";
@ -912,7 +936,6 @@ function onMathChange(node: DiagramNode | null = null){
var2Input.type = "text"; var2Input.type = "text";
var2Input.value = ""; var2Input.value = "";
var2Label.innerHTML = "-"; var2Label.innerHTML = "-";
} }
} }
@ -931,6 +954,7 @@ function onConditionChange(node: DiagramNode | null = null){
let var1Value = ""; let var1Value = "";
let var2Value = ""; let var2Value = "";
let var3Value = ""; let var3Value = "";
console.log(node, var1Input.value)
if (node != null){ if (node != null){
// @ts-ignore // @ts-ignore
var1Value = node.meta.var1; var1Value = node.meta.var1;
@ -994,6 +1018,53 @@ function onConditionChange(node: DiagramNode | null = null){
} }
} }
function onBrowserlessChange(node: DiagramNode | null = null){
let var1Input = document.getElementById("var1Input") as HTMLSelectElement;
let var1Label = document.getElementById("var1Label") as HTMLLabelElement;
let var1Div = document.getElementById("var1Div") as HTMLDivElement;
let var2Input = document.getElementById("var2Input") as HTMLInputElement;
let var2Label = document.getElementById("var2Label") as HTMLLabelElement;
let var2Div = document.getElementById("var2Div") as HTMLDivElement;
var2Div.innerHTML = "";
let var3Input = document.getElementById("var3Input") as HTMLInputElement;
let var3Label = document.getElementById("var3Label") as HTMLLabelElement;
let var3Div = document.getElementById("var3Div") as HTMLDivElement;
let var1Value = "";
let var2Value = "";
let var3Value = "";
console.log(node, var1Input.value)
if (node != null){
// @ts-ignore
var1Value = node.meta.var1;
var1Input.value = var1Value;
// @ts-ignore
var2Value = node.meta.var2;
// @ts-ignore
var3Value = node.meta.var3;
} else {
var1Value = var1Input.value;
}
var1Label.innerHTML = "Function";
switch(var1Value) {
case "gurl": {
let var2Input = document.createElement("input");
var2Input.name = "var2";
var2Input.id = "var2Input";
var2Input.value = var2Value;
var2Input.classList.add("form-control")
var2Label.innerHTML = "URL";
var2Div.appendChild(var2Input)
break;
}
case "gurls": {
break;
}
}
}
function onSubmitNewFilter(){ function onSubmitNewFilter(){
let nameInput = document.getElementById("nameInput") as HTMLInputElement; let nameInput = document.getElementById("nameInput") as HTMLInputElement;
let name = nameInput.value; let name = nameInput.value;

View file

@ -77,8 +77,6 @@ GoWatch Edit {{ .Watch.Name }}
<select id="typeInput" class="form-control" name="type"> <select id="typeInput" class="form-control" name="type">
<option value="gurl">Get URL</option> <option value="gurl">Get URL</option>
<option value="gurls">Get URLs</option> <option value="gurls">Get URLs</option>
<option value="bgurl">Browserless Get URL</option>
<option value="bgurls">Browserless Get URLs</option>
<option value="xpath" selected="true">XPath</option> <option value="xpath" selected="true">XPath</option>
<option value="css">CSS</option> <option value="css">CSS</option>
<option value="json">JSON</option> <option value="json">JSON</option>
@ -92,6 +90,7 @@ GoWatch Edit {{ .Watch.Name }}
<option value="condition">Condition</option> <option value="condition">Condition</option>
<option value="notify">Notify</option> <option value="notify">Notify</option>
<option value="cron">Schedule</option> <option value="cron">Schedule</option>
<option value="brow">Browserless</option>
<option value="lua">Lua</option> <option value="lua">Lua</option>
</select> </select>
</div> </div>

View file

@ -6,8 +6,8 @@
- edit.ts - edit.ts
- diagram.ts - diagram.ts
- browserless function filters - browserless function filters
- get url - ~~get url~~
- get urls - ~~get urls~~
- session - session
- start - start
- end - end