From 82b75aa4e5b6571847ecb66ba09d05a0c39d905e Mon Sep 17 00:00:00 2001 From: Smidy13 <77650800+Smidy13@users.noreply.github.com> Date: Sun, 9 May 2021 15:16:01 +1200 Subject: [PATCH 1/3] Dogecoin Icons and Configuration --- .../Icons-SVG-Sources/assets/dogecoin.svg | 89 ++++++++++++++++++ Projects/Superalgos/Icons/dogecoin.png | Bin 0 -> 18748 bytes .../Superalgos/Schemas/App-Schema/asset.json | 4 + 3 files changed, 93 insertions(+) create mode 100644 Projects/Superalgos/Icons-SVG-Sources/assets/dogecoin.svg create mode 100644 Projects/Superalgos/Icons/dogecoin.png diff --git a/Projects/Superalgos/Icons-SVG-Sources/assets/dogecoin.svg b/Projects/Superalgos/Icons-SVG-Sources/assets/dogecoin.svg new file mode 100644 index 000000000..433504e34 --- /dev/null +++ b/Projects/Superalgos/Icons-SVG-Sources/assets/dogecoin.svg @@ -0,0 +1,89 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + diff --git a/Projects/Superalgos/Icons/dogecoin.png b/Projects/Superalgos/Icons/dogecoin.png new file mode 100644 index 0000000000000000000000000000000000000000..0c3efe978f3761683789fab64e16dbd14206fcb3 GIT binary patch literal 18748 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 Date: Sun, 9 May 2021 15:39:24 +1200 Subject: [PATCH 2/3] Discord Bot Icons --- .../Icons-SVG-Sources/nodes/discord-bot.svg | 88 ++++++++++++++++++ Projects/Superalgos/Icons/discord-bot.png | Bin 16151 -> 16716 bytes 2 files changed, 88 insertions(+) create mode 100644 Projects/Superalgos/Icons-SVG-Sources/nodes/discord-bot.svg diff --git a/Projects/Superalgos/Icons-SVG-Sources/nodes/discord-bot.svg b/Projects/Superalgos/Icons-SVG-Sources/nodes/discord-bot.svg new file mode 100644 index 000000000..e4ee7ee40 --- /dev/null +++ b/Projects/Superalgos/Icons-SVG-Sources/nodes/discord-bot.svg @@ -0,0 +1,88 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + diff --git a/Projects/Superalgos/Icons/discord-bot.png b/Projects/Superalgos/Icons/discord-bot.png index 4f65fe25ddd58d14a00d017ce62e397afd5e4658..14bfad9d7f605ba7ef0186f4895e8f2fc20eab59 100644 GIT binary patch literal 16716 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 literal 16151 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 Date: Sun, 9 May 2021 22:59:53 +1200 Subject: [PATCH 3/3] Bug Fix: Defining Each Telegram and Discord Bot Array --- .../Schemas/App-Schema/announcement.json | 2 +- .../Schemas/App-Schema/discord-bot.json | 4 +- .../Schemas/App-Schema/social-bots.json | 4 +- .../Schemas/App-Schema/telegram-bot.json | 4 +- .../Trading-Bot/Announcements/SocialBots.js | 76 +++++++++++-------- .../LearningSessionFunctions.js | 2 +- .../TradingSessionFunctions.js | 4 +- 7 files changed, 55 insertions(+), 41 deletions(-) diff --git a/Projects/Superalgos/Schemas/App-Schema/announcement.json b/Projects/Superalgos/Schemas/App-Schema/announcement.json index 6f5599db1..aaba138aa 100644 --- a/Projects/Superalgos/Schemas/App-Schema/announcement.json +++ b/Projects/Superalgos/Schemas/App-Schema/announcement.json @@ -23,7 +23,7 @@ "action": "Add UI Object", "disableIfPropertyIsDefined": true, "propertyToCheckFor": "announcementCondition", - "label": "Add Condition", + "label": "Add Announcement Condition", "relatedUiObject": "Announcement Condition", "actionFunction": "payload.executeAction" }, diff --git a/Projects/Superalgos/Schemas/App-Schema/discord-bot.json b/Projects/Superalgos/Schemas/App-Schema/discord-bot.json index 615f623b3..7209448d2 100644 --- a/Projects/Superalgos/Schemas/App-Schema/discord-bot.json +++ b/Projects/Superalgos/Schemas/App-Schema/discord-bot.json @@ -32,10 +32,10 @@ "config": "{\n\"webhookURL\": \"Paste the webhook url obtained from Discord > Channel Settings > Integrations > Webhooks > New Webhook\"\n}" }, "addLeftIcons": true, - "level": 4, + "level": 3, "attachingRules": { "compatibleTypes": "->Social Bots->" }, "childrenNodesProperties": [], - "propertyNameAtParent": "bots" + "propertyNameAtParent": "discordBots" } diff --git a/Projects/Superalgos/Schemas/App-Schema/social-bots.json b/Projects/Superalgos/Schemas/App-Schema/social-bots.json index 48959349b..8b1011846 100644 --- a/Projects/Superalgos/Schemas/App-Schema/social-bots.json +++ b/Projects/Superalgos/Schemas/App-Schema/social-bots.json @@ -30,13 +30,13 @@ }, "childrenNodesProperties": [ { - "name": "bots", + "name": "telegramBots", "type": "array", "childType": "Telegram Bot", "autoAdd": true }, { - "name": "bots", + "name": "discordBots", "type": "array", "childType": "Discord Bot", "autoAdd": true diff --git a/Projects/Superalgos/Schemas/App-Schema/telegram-bot.json b/Projects/Superalgos/Schemas/App-Schema/telegram-bot.json index 740537748..6a9829a18 100644 --- a/Projects/Superalgos/Schemas/App-Schema/telegram-bot.json +++ b/Projects/Superalgos/Schemas/App-Schema/telegram-bot.json @@ -32,10 +32,10 @@ "config": "{ \n\"botToken\": \"Paste the bot token obtained from Telegram Bot Father\",\n\"chatId\": \"Type or paste the chat or group id -a number with no quotes- where announcements are going to be sent to\"\n}" }, "addLeftIcons": true, - "level": 4, + "level": 3, "attachingRules": { "compatibleTypes": "->Social Bots->" }, "childrenNodesProperties": [], - "propertyNameAtParent": "bots" + "propertyNameAtParent": "telegramBots" } \ No newline at end of file diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Announcements/SocialBots.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Announcements/SocialBots.js index 75b8b421b..28581db0d 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Announcements/SocialBots.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Announcements/SocialBots.js @@ -12,33 +12,39 @@ exports.newSuperalgosBotModulesSocialBots = function (processIndex) { function initialize() { if (TS.projects.superalgos.globals.processConstants.CONSTANTS_BY_PROCESS_INDEX_MAP.get(processIndex).SESSION_NODE.socialBots !== undefined) { - if (TS.projects.superalgos.globals.processConstants.CONSTANTS_BY_PROCESS_INDEX_MAP.get(processIndex).SESSION_NODE.socialBots.bots !== undefined) { - for (let i = 0; i < TS.projects.superalgos.globals.processConstants.CONSTANTS_BY_PROCESS_INDEX_MAP.get(processIndex).SESSION_NODE.socialBots.bots.length; i++) { - let socialBot = TS.projects.superalgos.globals.processConstants.CONSTANTS_BY_PROCESS_INDEX_MAP.get(processIndex).SESSION_NODE.socialBots.bots[i] - if (socialBot.type === "Telegram Bot") { - let config = socialBot.config - socialBot.botInstance = TS.projects.superalgos.botModules.telegramBot.newSuperalgosBotModulesTelegramBot(processIndex) - socialBot.botInstance.initialize(config.botToken, config.chatId) - } else if (socialBot.type === "Discord Bot"){ - let config = socialBot.config - socialBot.botInstance = TS.projects.superalgos.botModules.discordBot.newSuperalgosBotModulesDiscordBot(processIndex) - socialBot.botInstance.initialize(config.webhookURL) + for (let prop in TS.projects.superalgos.globals.processConstants.CONSTANTS_BY_PROCESS_INDEX_MAP.get(processIndex).SESSION_NODE.socialBots) { + if (prop.toLowerCase().includes("Bots".toLowerCase())) { + for (let i = 0; i < TS.projects.superalgos.globals.processConstants.CONSTANTS_BY_PROCESS_INDEX_MAP.get(processIndex).SESSION_NODE.socialBots[prop].length; i++) { + let socialBot = TS.projects.superalgos.globals.processConstants.CONSTANTS_BY_PROCESS_INDEX_MAP.get(processIndex).SESSION_NODE.socialBots[prop][i] + if (socialBot.type === "Telegram Bot") { + let config = socialBot.config + socialBot.botInstance = TS.projects.superalgos.botModules.telegramBot.newSuperalgosBotModulesTelegramBot(processIndex) + socialBot.botInstance.initialize(config.botToken, config.chatId) + } else if (socialBot.type === "Discord Bot") { + let config = socialBot.config + socialBot.botInstance = TS.projects.superalgos.botModules.discordBot.newSuperalgosBotModulesDiscordBot(processIndex) + socialBot.botInstance.initialize(config.webhookURL) + } } } } function announce(text) { - if (TS.projects.superalgos.globals.processConstants.CONSTANTS_BY_PROCESS_INDEX_MAP.get(processIndex).SESSION_NODE.socialBots.bots !== undefined) { - for (let i = 0; i < TS.projects.superalgos.globals.processConstants.CONSTANTS_BY_PROCESS_INDEX_MAP.get(processIndex).SESSION_NODE.socialBots.bots.length; i++) { - let socialBot = TS.projects.superalgos.globals.processConstants.CONSTANTS_BY_PROCESS_INDEX_MAP.get(processIndex).SESSION_NODE.socialBots.bots[i] - try { - if (socialBot.type === "Telegram Bot") { - socialBot.botInstance.telegramAPI.sendMessage(socialBot.botInstance.chatId, text).catch(err => TS.projects.superalgos.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[WARN] initialize -> initializeSocialBots -> announce -> Telegram API error -> err = " + err)) - } else if (socialBot.type === "Discord Bot") { - socialBot.botInstance.sendMessage(text).catch(err => TS.projects.superalgos.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[WARN] initialize -> initializeSocialBots -> announce -> Discord Bot error -> err = " + err)) + for (let prop in TS.projects.superalgos.globals.processConstants.CONSTANTS_BY_PROCESS_INDEX_MAP.get(processIndex).SESSION_NODE.socialBots) { + if (prop.toLowerCase().includes("Bots".toLowerCase())) { + if (TS.projects.superalgos.globals.processConstants.CONSTANTS_BY_PROCESS_INDEX_MAP.get(processIndex).SESSION_NODE.socialBots[prop] !== undefined) { + for (let i = 0; i < TS.projects.superalgos.globals.processConstants.CONSTANTS_BY_PROCESS_INDEX_MAP.get(processIndex).SESSION_NODE.socialBots[prop].length; i++) { + let socialBot = TS.projects.superalgos.globals.processConstants.CONSTANTS_BY_PROCESS_INDEX_MAP.get(processIndex).SESSION_NODE.socialBots[prop][i] + try { + if (socialBot.type === "Telegram Bot") { + socialBot.botInstance.telegramAPI.sendMessage(socialBot.botInstance.chatId, text).catch(err => TS.projects.superalgos.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[WARN] initialize -> initializeSocialBots -> announce -> Telegram API error -> err = " + err)) + } else if (socialBot.type === "Discord Bot") { + socialBot.botInstance.sendMessage(text).catch(err => TS.projects.superalgos.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[WARN] initialize -> initializeSocialBots -> announce -> Discord Bot error -> err = " + err)) + } + } catch (err) { + TS.projects.superalgos.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[WARN] initialize -> announce -> err = " + err.stack); + } } - } catch (err) { - TS.projects.superalgos.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[WARN] initialize -> announce -> err = " + err.stack); } } } @@ -50,11 +56,15 @@ exports.newSuperalgosBotModulesSocialBots = function (processIndex) { function finalize() { if (TS.projects.superalgos.globals.processConstants.CONSTANTS_BY_PROCESS_INDEX_MAP.get(processIndex).SESSION_NODE.socialBots === undefined) { return } - if (TS.projects.superalgos.globals.processConstants.CONSTANTS_BY_PROCESS_INDEX_MAP.get(processIndex).SESSION_NODE.socialBots.bots !== undefined) { - for (let i = 0; i < TS.projects.superalgos.globals.processConstants.CONSTANTS_BY_PROCESS_INDEX_MAP.get(processIndex).SESSION_NODE.socialBots.bots.length; i++) { - let socialBot = TS.projects.superalgos.globals.processConstants.CONSTANTS_BY_PROCESS_INDEX_MAP.get(processIndex).SESSION_NODE.socialBots.bots[i] - if (socialBot.type === "Telegram Bot" || socialBot.type === "Discord Bot") { - socialBot.botInstance.finalize() + for (let prop in TS.projects.superalgos.globals.processConstants.CONSTANTS_BY_PROCESS_INDEX_MAP.get(processIndex).SESSION_NODE.socialBots) { + if (prop.includes("Bots")) { + if (TS.projects.superalgos.globals.processConstants.CONSTANTS_BY_PROCESS_INDEX_MAP.get(processIndex).SESSION_NODE.socialBots[prop] !== undefined) { + for (let i = 0; i < TS.projects.superalgos.globals.processConstants.CONSTANTS_BY_PROCESS_INDEX_MAP.get(processIndex).SESSION_NODE.socialBots[prop].length; i++) { + let socialBot = TS.projects.superalgos.globals.processConstants.CONSTANTS_BY_PROCESS_INDEX_MAP.get(processIndex).SESSION_NODE.socialBots[prop][i] + if (socialBot.type === "Telegram Bot" || socialBot.type === "Discord Bot") { + socialBot.botInstance.finalize() + } + } } } } @@ -62,11 +72,15 @@ exports.newSuperalgosBotModulesSocialBots = function (processIndex) { function sendMessage(message) { if (TS.projects.superalgos.globals.processConstants.CONSTANTS_BY_PROCESS_INDEX_MAP.get(processIndex).SESSION_NODE.socialBots !== undefined) { - if (TS.projects.superalgos.globals.processConstants.CONSTANTS_BY_PROCESS_INDEX_MAP.get(processIndex).SESSION_NODE.socialBots.bots !== undefined) { - for (let i = 0; i < TS.projects.superalgos.globals.processConstants.CONSTANTS_BY_PROCESS_INDEX_MAP.get(processIndex).SESSION_NODE.socialBots.bots.length; i++) { - let socialBot = TS.projects.superalgos.globals.processConstants.CONSTANTS_BY_PROCESS_INDEX_MAP.get(processIndex).SESSION_NODE.socialBots.bots[i] - if (socialBot.type === "Telegram Bot" || socialBot.type === "Discord Bot") { - socialBot.botInstance.sendMessage(message) + for (let prop in TS.projects.superalgos.globals.processConstants.CONSTANTS_BY_PROCESS_INDEX_MAP.get(processIndex).SESSION_NODE.socialBots) { + if (prop.includes("Bots")) { + if (TS.projects.superalgos.globals.processConstants.CONSTANTS_BY_PROCESS_INDEX_MAP.get(processIndex).SESSION_NODE.socialBots[prop] !== undefined) { + for (let i = 0; i < TS.projects.superalgos.globals.processConstants.CONSTANTS_BY_PROCESS_INDEX_MAP.get(processIndex).SESSION_NODE.socialBots[prop].length; i++) { + let socialBot = TS.projects.superalgos.globals.processConstants.CONSTANTS_BY_PROCESS_INDEX_MAP.get(processIndex).SESSION_NODE.socialBots[prop][i] + if (socialBot.type === "Telegram Bot" || socialBot.type === "Discord Bot") { + socialBot.botInstance.sendMessage(message) + } + } } } } diff --git a/Projects/Superalgos/UI/Function-Libraries/LearningSessionFunctions.js b/Projects/Superalgos/UI/Function-Libraries/LearningSessionFunctions.js index aca2b80b5..fb3835fba 100644 --- a/Projects/Superalgos/UI/Function-Libraries/LearningSessionFunctions.js +++ b/Projects/Superalgos/UI/Function-Libraries/LearningSessionFunctions.js @@ -129,7 +129,7 @@ function newSuperalgosFunctionLibraryLearningSessionFunctions() { 'Back Learning Session->Live Learning Session->' + 'Learning Parameters->' + 'Learning Algorithm->Time Range->Time Frame->Heartbeats->User Defined Parameters->' + - 'Social Bots->Telegram Bot->' + 'Social Bots->Telegram Bot->Discord Bot->' let session = UI.projects.superalgos.functionLibraries.protocolNode.getProtocolNode(node, false, true, true, false, false, lightingPath) diff --git a/Projects/Superalgos/UI/Function-Libraries/TradingSessionFunctions.js b/Projects/Superalgos/UI/Function-Libraries/TradingSessionFunctions.js index b4e025336..3adc57019 100644 --- a/Projects/Superalgos/UI/Function-Libraries/TradingSessionFunctions.js +++ b/Projects/Superalgos/UI/Function-Libraries/TradingSessionFunctions.js @@ -153,8 +153,8 @@ function newSuperalgosFunctionLibraryTradingSessionFunctions() { 'Backtesting Session->Paper Trading Session->Forward Testing Session->Live Trading Session->' + 'Trading Parameters->' + 'Session Base Asset->Session Quoted Asset->Time Range->Time Frame->Slippage->Fee Structure->Snapshots->Heartbeats->User Defined Parameters->' + - 'Exchange Account Asset->Asset->' + - 'Social Bots->Telegram Bot->' + 'Social Bots->Telegram Bot->Discord Bot->' + + 'Exchange Account Asset->Asset->' let session = UI.projects.superalgos.functionLibraries.protocolNode.getProtocolNode(node, false, true, true, false, false, lightingPath)