235 lines
10 KiB
JavaScript
235 lines
10 KiB
JavaScript
function newFoundationsFunctionLibrarySocialBotsFunctions() {
|
|
let thisObject = {
|
|
sendTelegramTestMessage: sendTelegramTestMessage,
|
|
sendDiscordTestMessage: sendDiscordTestMessage,
|
|
sendSlackTestMessage: sendSlackTestMessage,
|
|
sendTwitterTestMessage: sendTwitterTestMessage
|
|
}
|
|
|
|
return thisObject
|
|
|
|
function sendTelegramTestMessage(node, callBackFunction) {
|
|
|
|
let botToken = UI.projects.foundations.utilities.nodeConfig.loadConfigProperty(node.payload, 'botToken')
|
|
let chatId = UI.projects.foundations.utilities.nodeConfig.loadConfigProperty(node.payload, 'chatId')
|
|
|
|
if (botToken === undefined) {
|
|
node.payload.uiObject.setErrorMessage('botToken parameter not defined.')
|
|
callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE)
|
|
return
|
|
}
|
|
|
|
if (chatId === undefined) {
|
|
node.payload.uiObject.setErrorMessage('chatId parameter not defined.')
|
|
callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE)
|
|
return
|
|
}
|
|
|
|
let params = {
|
|
text: "Test Message from Superalgos",
|
|
chat_id: chatId
|
|
}
|
|
|
|
httpRequestJSON(JSON.stringify(params),"https://api.telegram.org/bot" + botToken + "/sendMessage", onResponse)
|
|
|
|
function onResponse(err) {
|
|
if (err.result === GLOBAL.DEFAULT_OK_RESPONSE.result) {
|
|
node.payload.uiObject.setInfoMessage('Telegram message sent.')
|
|
callBackFunction(GLOBAL.DEFAULT_OK_RESPONSE)
|
|
} else {
|
|
node.payload.uiObject.setErrorMessage('Could not send Telegram message. Error Response: ' + err.message)
|
|
callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE)
|
|
}
|
|
}
|
|
|
|
function httpRequestJSON(pContentToSend, pPath, callBackFunction) {
|
|
let xmlHttpRequest = new XMLHttpRequest();
|
|
xmlHttpRequest.onreadystatechange = function () {
|
|
if (this.readyState === 4 && this.status === 200) {
|
|
callBackFunction(GLOBAL.DEFAULT_OK_RESPONSE, xmlHttpRequest.responseText);
|
|
return;
|
|
} else if (this.readyState === 4 && (this.status === 404 || this.status === 401 || this.status === 400)) {
|
|
callBackFunction({
|
|
result: "Fail",
|
|
message: JSON.parse(xmlHttpRequest.responseText).description,
|
|
code: JSON.parse(xmlHttpRequest.responseText).error_code
|
|
});
|
|
return;
|
|
}
|
|
};
|
|
|
|
if (pContentToSend === undefined) {
|
|
xmlHttpRequest.open("GET", pPath, true);
|
|
xmlHttpRequest.send();
|
|
} else {
|
|
try {
|
|
let blob = new Blob([pContentToSend], { type: 'application/json' });
|
|
xmlHttpRequest.open("POST", pPath, true);
|
|
xmlHttpRequest.send(blob);
|
|
} catch (err) {
|
|
if (ERROR_LOG === true) { console.log(spacePad(MODULE_NAME, 50) + " : " + "[ERROR] callServer -> err.message = " & err.message); }
|
|
callBackFunction({ result: "Fail", message: err.message })
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function sendDiscordTestMessage(node, callBackFunction) {
|
|
|
|
let webhookURL = UI.projects.foundations.utilities.nodeConfig.loadConfigProperty(node.payload, 'webhookURL')
|
|
|
|
if (webhookURL === undefined) {
|
|
node.payload.uiObject.setErrorMessage('webhookURL parameter not defined.')
|
|
callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE)
|
|
return
|
|
}
|
|
|
|
let message = "Test message from Superalgos!"
|
|
|
|
httpRequestJSON(JSON.stringify({content: message}), webhookURL, onResponse)
|
|
|
|
function onResponse(err) {
|
|
if (err.result === GLOBAL.DEFAULT_OK_RESPONSE.result) {
|
|
node.payload.uiObject.setInfoMessage('Discord message sent.')
|
|
callBackFunction(GLOBAL.DEFAULT_OK_RESPONSE)
|
|
} else {
|
|
node.payload.uiObject.setErrorMessage('Could not send Discord message. Error Response: ' + err.message)
|
|
callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE)
|
|
}
|
|
}
|
|
|
|
function httpRequestJSON(pContentToSend, pPath, callBackFunction) {
|
|
let xmlHttpRequest = new XMLHttpRequest();
|
|
xmlHttpRequest.onreadystatechange = function () {
|
|
if (this.readyState === 4 && this.status === 200) {
|
|
callBackFunction(GLOBAL.DEFAULT_OK_RESPONSE, xmlHttpRequest.responseText);
|
|
return;
|
|
} else if (this.readyState === 4 && (this.status === 404 || this.status === 401 || this.status === 400)) {
|
|
callBackFunction({
|
|
result: "Fail",
|
|
message: JSON.parse(xmlHttpRequest.responseText).description,
|
|
code: JSON.parse(xmlHttpRequest.responseText).error_code
|
|
});
|
|
return;
|
|
}
|
|
};
|
|
|
|
if (pContentToSend === undefined) {
|
|
xmlHttpRequest.open("GET", pPath, true);
|
|
xmlHttpRequest.send();
|
|
} else {
|
|
try {
|
|
let blob = new Blob([pContentToSend], { type: 'application/json' });
|
|
xmlHttpRequest.open("POST", pPath, true);
|
|
xmlHttpRequest.send(blob);
|
|
} catch (err) {
|
|
if (ERROR_LOG === true) { console.log(spacePad(MODULE_NAME, 50) + " : " + "[ERROR] callServer -> err.message = " & err.message); }
|
|
callBackFunction({ result: "Fail", message: err.message })
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function sendSlackTestMessage(node, callBackFunction) {
|
|
|
|
let webhookURL = UI.projects.foundations.utilities.nodeConfig.loadConfigProperty(node.payload, 'webhookURL')
|
|
|
|
if (webhookURL === undefined) {
|
|
node.payload.uiObject.setErrorMessage('webhookURL parameter not defined.')
|
|
callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE)
|
|
return
|
|
}
|
|
|
|
let message = "Test message from Superalgos!"
|
|
|
|
httpRequestJSON(JSON.stringify({text: message}), webhookURL, onResponse)
|
|
|
|
function onResponse(err) {
|
|
if (err.result === GLOBAL.DEFAULT_OK_RESPONSE.result) {
|
|
node.payload.uiObject.setInfoMessage('Slack message sent.')
|
|
callBackFunction(GLOBAL.DEFAULT_OK_RESPONSE)
|
|
} else {
|
|
node.payload.uiObject.setErrorMessage('Could not send Slack message. Error Response: ' + err.message)
|
|
callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE)
|
|
}
|
|
}
|
|
|
|
function httpRequestJSON(pContentToSend, pPath, callBackFunction) {
|
|
let xmlHttpRequest = new XMLHttpRequest();
|
|
xmlHttpRequest.onreadystatechange = function () {
|
|
if (this.readyState === 4 && this.status === 200) {
|
|
callBackFunction(GLOBAL.DEFAULT_OK_RESPONSE, xmlHttpRequest.responseText);
|
|
return;
|
|
} else if (this.readyState === 4 && (this.status === 404 || this.status === 401 || this.status === 400)) {
|
|
callBackFunction({
|
|
result: "Fail",
|
|
message: xmlHttpRequest.responseText
|
|
});
|
|
return;
|
|
}
|
|
};
|
|
|
|
if (pContentToSend === undefined) {
|
|
xmlHttpRequest.open("GET", pPath, true);
|
|
xmlHttpRequest.send();
|
|
} else {
|
|
try {
|
|
let blob = new Blob([pContentToSend]);
|
|
xmlHttpRequest.open("POST", pPath, true);
|
|
xmlHttpRequest.send(blob);
|
|
} catch (err) {
|
|
if (ERROR_LOG === true) { console.log(spacePad(MODULE_NAME, 50) + " : " + "[ERROR] callServer -> err.message = " & err.message); }
|
|
callBackFunction({ result: "Fail", message: err.message })
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function sendTwitterTestMessage(node, callBackFunction) {
|
|
let message = JSON.stringify({text: "Test message from Superalgos!"})
|
|
let url = "https://api.twitter.com/1.1/statuses/update.json"
|
|
|
|
httpRequestJSON(message, url, onResponse)
|
|
|
|
function onResponse(err) {
|
|
if (err.result === GLOBAL.DEFAULT_OK_RESPONSE.result) {
|
|
node.payload.uiObject.setInfoMessage('Twitter status update sent.')
|
|
callBackFunction(GLOBAL.DEFAULT_OK_RESPONSE)
|
|
} else {
|
|
node.payload.uiObject.setErrorMessage('Could not send Twitter status update. Error Response: ' + err.message)
|
|
callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE)
|
|
}
|
|
}
|
|
|
|
function httpRequestJSON(pContentToSend, pPath, callBackFunction) {
|
|
let xmlHttpRequest = new XMLHttpRequest();
|
|
xmlHttpRequest.onreadystatechange = function () {
|
|
if (this.readyState === 4 && this.status === 200) {
|
|
callBackFunction(GLOBAL.DEFAULT_OK_RESPONSE, xmlHttpRequest.responseText);
|
|
return;
|
|
} else if (this.readyState === 4 && (this.status === 404 || this.status === 401 || this.status === 400)) {
|
|
callBackFunction({
|
|
result: "Fail",
|
|
message: xmlHttpRequest.responseText
|
|
});
|
|
return;
|
|
}
|
|
};
|
|
|
|
if (pContentToSend === undefined) {
|
|
xmlHttpRequest.open("GET", pPath, true);
|
|
xmlHttpRequest.send();
|
|
} else {
|
|
try {
|
|
let blob = new Blob([pContentToSend]);
|
|
xmlHttpRequest.open("POST", pPath, true);
|
|
xmlHttpRequest.send(blob);
|
|
} catch (err) {
|
|
if (ERROR_LOG === true) { console.log(spacePad(MODULE_NAME, 50) + " : " + "[ERROR] callServer -> err.message = " & err.message); }
|
|
callBackFunction({ result: "Fail", message: err.message })
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|