notify filter can pick what notifier to use
This commit is contained in:
parent
3a10812036
commit
6d4d5707b7
6 changed files with 87 additions and 34 deletions
23
main.go
23
main.go
|
@ -121,12 +121,18 @@ func (web *Web) initNotifiers() {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (web *Web) notify(notifierKey string, message string) {
|
func (web *Web) notify(notifierKey string, message string) {
|
||||||
notifier, exists := web.notifiers[notifierKey]
|
if notifierKey == "All" {
|
||||||
if !exists {
|
for _, notifier := range web.notifiers {
|
||||||
log.Println("Could not find notifier with key:", notifierKey)
|
notifier.Message(message)
|
||||||
return
|
}
|
||||||
|
} else {
|
||||||
|
notifier, exists := web.notifiers[notifierKey]
|
||||||
|
if !exists {
|
||||||
|
log.Println("Could not find notifier with key:", notifierKey)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
notifier.Message(message)
|
||||||
}
|
}
|
||||||
notifier.Message(message)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (web *Web) run() {
|
func (web *Web) run() {
|
||||||
|
@ -260,6 +266,12 @@ func (web *Web) watchEdit(c *gin.Context) {
|
||||||
var values []FilterOutput
|
var values []FilterOutput
|
||||||
web.db.Model(&FilterOutput{}).Where("watch_id = ?", watch.ID).Find(&values)
|
web.db.Model(&FilterOutput{}).Where("watch_id = ?", watch.ID).Find(&values)
|
||||||
|
|
||||||
|
notifiers := make([]string, 1)
|
||||||
|
notifiers = append(notifiers, "All")
|
||||||
|
for notifier := range web.notifiers {
|
||||||
|
notifiers = append(notifiers, notifier)
|
||||||
|
}
|
||||||
|
|
||||||
buildFilterTree(filters, connections)
|
buildFilterTree(filters, connections)
|
||||||
processFilters(filters, web, &watch, true)
|
processFilters(filters, web, &watch, true)
|
||||||
|
|
||||||
|
@ -268,6 +280,7 @@ func (web *Web) watchEdit(c *gin.Context) {
|
||||||
"Filters": filters,
|
"Filters": filters,
|
||||||
"Connections": connections,
|
"Connections": connections,
|
||||||
"Values": values,
|
"Values": values,
|
||||||
|
"Notifiers": notifiers,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -779,7 +779,11 @@ func notifyFilter(filters []Filter, filter *Filter, watch *Watch, web *Web, debu
|
||||||
if debug {
|
if debug {
|
||||||
log.Println(buffer.String())
|
log.Println(buffer.String())
|
||||||
} else {
|
} else {
|
||||||
web.notify("Telegram", buffer.String())
|
notifier := filter.Var2
|
||||||
|
if notifier == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
web.notify(*notifier, buffer.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,7 +30,7 @@ var __spread = (this && this.__spread) || function () {
|
||||||
return ar;
|
return ar;
|
||||||
};
|
};
|
||||||
function onTypeChange(node) {
|
function onTypeChange(node) {
|
||||||
var e_1, _a;
|
var e_1, _a, e_2, _b;
|
||||||
if (node === void 0) { node = null; }
|
if (node === void 0) { node = null; }
|
||||||
var select = document.getElementById("typeInput");
|
var select = document.getElementById("typeInput");
|
||||||
var type = select.value;
|
var type = select.value;
|
||||||
|
@ -472,14 +472,38 @@ function onTypeChange(node) {
|
||||||
var1Label.innerHTML = "Template";
|
var1Label.innerHTML = "Template";
|
||||||
var1Input.placeholder = "{{ .WatchName }} new lowest price: {{ .Price }}!";
|
var1Input.placeholder = "{{ .WatchName }} new lowest price: {{ .Price }}!";
|
||||||
var1Div.appendChild(var1Input);
|
var1Div.appendChild(var1Input);
|
||||||
var var2Input = document.createElement("input");
|
var var2Input = document.createElement("select");
|
||||||
var2Input.name = "var2";
|
var2Input.name = "var2";
|
||||||
var2Input.id = "var2Input";
|
var2Input.id = "var2Input";
|
||||||
var2Input.value = var2Value;
|
|
||||||
var2Input.classList.add("form-control");
|
var2Input.classList.add("form-control");
|
||||||
var2Input.disabled = true;
|
try {
|
||||||
var2Label.innerHTML = "-";
|
// @ts-ignore
|
||||||
|
for (var notifiers_1 = __values(notifiers), notifiers_1_1 = notifiers_1.next(); !notifiers_1_1.done; notifiers_1_1 = notifiers_1.next()) {
|
||||||
|
var notifier = notifiers_1_1.value;
|
||||||
|
if (notifier == "") {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
var option = document.createElement("option");
|
||||||
|
option.value = notifier;
|
||||||
|
option.innerHTML = notifier;
|
||||||
|
var2Input.appendChild(option);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
||||||
|
finally {
|
||||||
|
try {
|
||||||
|
if (notifiers_1_1 && !notifiers_1_1.done && (_a = notifiers_1["return"])) _a.call(notifiers_1);
|
||||||
|
}
|
||||||
|
finally { if (e_1) throw e_1.error; }
|
||||||
|
}
|
||||||
|
if (var2Value == "") {
|
||||||
|
var2Input.value = "All";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
var2Input.value = var2Value;
|
||||||
|
}
|
||||||
var2Div.appendChild(var2Input);
|
var2Div.appendChild(var2Input);
|
||||||
|
var2Label.innerHTML = "Notify";
|
||||||
var var3Input = document.createElement("input");
|
var var3Input = document.createElement("input");
|
||||||
var3Input.name = "var3";
|
var3Input.name = "var3";
|
||||||
var3Input.id = "var3Input";
|
var3Input.id = "var3Input";
|
||||||
|
@ -575,16 +599,16 @@ function onTypeChange(node) {
|
||||||
try {
|
try {
|
||||||
// add snippets
|
// add snippets
|
||||||
for (var luaSnippets_1 = __values(luaSnippets), luaSnippets_1_1 = luaSnippets_1.next(); !luaSnippets_1_1.done; luaSnippets_1_1 = luaSnippets_1.next()) {
|
for (var luaSnippets_1 = __values(luaSnippets), luaSnippets_1_1 = luaSnippets_1.next(); !luaSnippets_1_1.done; luaSnippets_1_1 = luaSnippets_1.next()) {
|
||||||
var _b = __read(luaSnippets_1_1.value, 2), name_1 = _b[0], snippet = _b[1];
|
var _c = __read(luaSnippets_1_1.value, 2), name_1 = _c[0], snippet = _c[1];
|
||||||
_loop_1(name_1, snippet);
|
_loop_1(name_1, snippet);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
||||||
finally {
|
finally {
|
||||||
try {
|
try {
|
||||||
if (luaSnippets_1_1 && !luaSnippets_1_1.done && (_a = luaSnippets_1["return"])) _a.call(luaSnippets_1);
|
if (luaSnippets_1_1 && !luaSnippets_1_1.done && (_b = luaSnippets_1["return"])) _b.call(luaSnippets_1);
|
||||||
}
|
}
|
||||||
finally { if (e_1) throw e_1.error; }
|
finally { if (e_2) throw e_2.error; }
|
||||||
}
|
}
|
||||||
var var2Input = document.createElement("input");
|
var var2Input = document.createElement("input");
|
||||||
var2Input.name = "var2";
|
var2Input.name = "var2";
|
||||||
|
@ -636,7 +660,7 @@ function onMathChange(node) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function onConditionChange(node) {
|
function onConditionChange(node) {
|
||||||
var e_2, _a;
|
var e_3, _a;
|
||||||
if (node === void 0) { node = null; }
|
if (node === void 0) { node = null; }
|
||||||
var var1Input = document.getElementById("var1Input");
|
var var1Input = document.getElementById("var1Input");
|
||||||
var var1Label = document.getElementById("var1Label");
|
var var1Label = document.getElementById("var1Label");
|
||||||
|
@ -705,12 +729,12 @@ function onConditionChange(node) {
|
||||||
filterSelect.appendChild(nodeOption);
|
filterSelect.appendChild(nodeOption);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
||||||
finally {
|
finally {
|
||||||
try {
|
try {
|
||||||
if (_c && !_c.done && (_a = _b["return"])) _a.call(_b);
|
if (_c && !_c.done && (_a = _b["return"])) _a.call(_b);
|
||||||
}
|
}
|
||||||
finally { if (e_2) throw e_2.error; }
|
finally { if (e_3) throw e_3.error; }
|
||||||
}
|
}
|
||||||
if (var2Value != "") {
|
if (var2Value != "") {
|
||||||
filterSelect.value = var2Value;
|
filterSelect.value = var2Value;
|
||||||
|
@ -737,7 +761,7 @@ function onSubmitNewFilter() {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
function editNode(node) {
|
function editNode(node) {
|
||||||
var e_3, _a, e_4, _b;
|
var e_4, _a, e_5, _b;
|
||||||
var addFilterButton = document.getElementById("filterButton");
|
var addFilterButton = document.getElementById("filterButton");
|
||||||
addFilterButton.click();
|
addFilterButton.click();
|
||||||
var name = node.label;
|
var name = node.label;
|
||||||
|
@ -783,12 +807,12 @@ function editNode(node) {
|
||||||
logBody.appendChild(row);
|
logBody.appendChild(row);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
||||||
finally {
|
finally {
|
||||||
try {
|
try {
|
||||||
if (_d && !_d.done && (_a = _c["return"])) _a.call(_c);
|
if (_d && !_d.done && (_a = _c["return"])) _a.call(_c);
|
||||||
}
|
}
|
||||||
finally { if (e_3) throw e_3.error; }
|
finally { if (e_4) throw e_4.error; }
|
||||||
}
|
}
|
||||||
var filterModalFooter = document.getElementById("filterResultsDiv");
|
var filterModalFooter = document.getElementById("filterResultsDiv");
|
||||||
filterModalFooter.innerHTML = "";
|
filterModalFooter.innerHTML = "";
|
||||||
|
@ -814,12 +838,12 @@ function editNode(node) {
|
||||||
filterModalFooter.appendChild(cardDiv);
|
filterModalFooter.appendChild(cardDiv);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
||||||
finally {
|
finally {
|
||||||
try {
|
try {
|
||||||
if (_f && !_f.done && (_b = _e["return"])) _b.call(_e);
|
if (_f && !_f.done && (_b = _e["return"])) _b.call(_e);
|
||||||
}
|
}
|
||||||
finally { if (e_4) throw e_4.error; }
|
finally { if (e_5) throw e_5.error; }
|
||||||
}
|
}
|
||||||
submitButton.onclick = function () { submitEditNode(node); };
|
submitButton.onclick = function () { submitEditNode(node); };
|
||||||
}
|
}
|
||||||
|
@ -857,7 +881,7 @@ function submitEditNode(node) {
|
||||||
saveWatchButton.classList.add("btn-danger");
|
saveWatchButton.classList.add("btn-danger");
|
||||||
}
|
}
|
||||||
function saveWatch() {
|
function saveWatch() {
|
||||||
var e_5, _a, e_6, _b;
|
var e_6, _a, e_7, _b;
|
||||||
var watchIdInput = document.getElementById("watch_id");
|
var watchIdInput = document.getElementById("watch_id");
|
||||||
var watchId = Number(watchIdInput.value);
|
var watchId = Number(watchIdInput.value);
|
||||||
var filters = new Array();
|
var filters = new Array();
|
||||||
|
@ -881,12 +905,12 @@ function saveWatch() {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
catch (e_6_1) { e_6 = { error: e_6_1 }; }
|
||||||
finally {
|
finally {
|
||||||
try {
|
try {
|
||||||
if (_d && !_d.done && (_a = _c["return"])) _a.call(_c);
|
if (_d && !_d.done && (_a = _c["return"])) _a.call(_c);
|
||||||
}
|
}
|
||||||
finally { if (e_5) throw e_5.error; }
|
finally { if (e_6) throw e_6.error; }
|
||||||
}
|
}
|
||||||
var filtersInput = document.getElementById("filtersInput");
|
var filtersInput = document.getElementById("filtersInput");
|
||||||
filtersInput.value = JSON.stringify(filters);
|
filtersInput.value = JSON.stringify(filters);
|
||||||
|
@ -903,12 +927,12 @@ function saveWatch() {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (e_6_1) { e_6 = { error: e_6_1 }; }
|
catch (e_7_1) { e_7 = { error: e_7_1 }; }
|
||||||
finally {
|
finally {
|
||||||
try {
|
try {
|
||||||
if (_f && !_f.done && (_b = _e["return"])) _b.call(_e);
|
if (_f && !_f.done && (_b = _e["return"])) _b.call(_e);
|
||||||
}
|
}
|
||||||
finally { if (e_6) throw e_6.error; }
|
finally { if (e_7) throw e_7.error; }
|
||||||
}
|
}
|
||||||
var connectionsInput = document.getElementById("connectionsInput");
|
var connectionsInput = document.getElementById("connectionsInput");
|
||||||
connectionsInput.value = JSON.stringify(connections);
|
connectionsInput.value = JSON.stringify(connections);
|
||||||
|
|
|
@ -466,14 +466,27 @@ function onTypeChange(node: DiagramNode | null = null){
|
||||||
var1Input.placeholder = "{{ .WatchName }} new lowest price: {{ .Price }}!";
|
var1Input.placeholder = "{{ .WatchName }} new lowest price: {{ .Price }}!";
|
||||||
var1Div.appendChild(var1Input);
|
var1Div.appendChild(var1Input);
|
||||||
|
|
||||||
let var2Input = document.createElement("input");
|
let var2Input = document.createElement("select");
|
||||||
var2Input.name = "var2";
|
var2Input.name = "var2";
|
||||||
var2Input.id = "var2Input";
|
var2Input.id = "var2Input";
|
||||||
var2Input.value = var2Value;
|
|
||||||
var2Input.classList.add("form-control")
|
var2Input.classList.add("form-control")
|
||||||
var2Input.disabled = true;
|
// @ts-ignore
|
||||||
var2Label.innerHTML = "-";
|
for (let notifier of notifiers){
|
||||||
|
if (notifier == ""){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
let option = document.createElement("option");
|
||||||
|
option.value = notifier;
|
||||||
|
option.innerHTML = notifier;
|
||||||
|
var2Input.appendChild(option);
|
||||||
|
}
|
||||||
|
if (var2Value == ""){
|
||||||
|
var2Input.value = "All"
|
||||||
|
} else {
|
||||||
|
var2Input.value = var2Value;
|
||||||
|
}
|
||||||
var2Div.appendChild(var2Input);
|
var2Div.appendChild(var2Input);
|
||||||
|
var2Label.innerHTML = "Notify";
|
||||||
|
|
||||||
let var3Input = document.createElement("input");
|
let var3Input = document.createElement("input");
|
||||||
var3Input.name = "var3";
|
var3Input.name = "var3";
|
||||||
|
|
|
@ -220,7 +220,7 @@ function canvasInit() {
|
||||||
}
|
}
|
||||||
document.addEventListener('DOMContentLoaded', canvasInit, false);
|
document.addEventListener('DOMContentLoaded', canvasInit, false);
|
||||||
|
|
||||||
|
var notifiers = {{ .Notifiers }};
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
{{ end }}
|
{{ end }}
|
1
todo.md
1
todo.md
|
@ -1,6 +1,5 @@
|
||||||
# Todo
|
# Todo
|
||||||
- make generic 'notifier' interface
|
- make generic 'notifier' interface
|
||||||
- notify filter var2 for specific notifier or 'all'
|
|
||||||
- telegram
|
- telegram
|
||||||
- discord
|
- discord
|
||||||
- matrix
|
- matrix
|
||||||
|
|
Loading…
Add table
Reference in a new issue