diff --git a/api/builtin/loop.ts b/api/builtin/loop.ts
index 3fec928..b1a132c 100644
--- a/api/builtin/loop.ts
+++ b/api/builtin/loop.ts
@@ -40,18 +40,25 @@ export function init() {
message.channel.send({ embed })
return
}
+ if (message.amount!==parseInt(amt)){
+ const embed = new Sphinx.MessageEmbed()
+ .setAuthor('LoopBot')
+ .setDescription('Incorrect amount')
+ message.channel.send({ embed })
+ return
+ }
try {
- const j = await doRequest(baseurl + '/v1/loop/out/quote/'+amt)
+ const j = await doRequest(baseurl + '/v1/loop/out/quote/' + amt)
console.log("=> LOOP QUOTE RES", j)
- if(!(j&&j.swap_fee&&j.prepay_amt)){
+ if (!(j && j.swap_fee && j.prepay_amt)) {
return
}
const j2 = await doRequest(baseurl + '/v1/loop/out', {
- method:'POST',
+ method: 'POST',
body: JSON.stringify({
amt: amt,
dest: addy,
- outgoing_chan_set:[
+ outgoing_chan_set: [
'704899103684034561'
],
max_swap_fee: j.swap_fee,
@@ -59,14 +66,14 @@ export function init() {
}),
})
console.log("=> LOOP RESPONSE", j2)
- if(j2&&j2.error) {
+ if (j2 && j2.error) {
const embed = new Sphinx.MessageEmbed()
.setAuthor('LoopBot')
- .setDescription('Error: '+j2.error)
+ .setDescription('Error: ' + j2.error)
message.channel.send({ embed })
return
}
- if(!(j2&&j2.server_message)) {
+ if (!(j2 && j2.server_message)) {
return
}
const embed = new Sphinx.MessageEmbed()
@@ -121,9 +128,9 @@ const agent = new https.Agent({
})
const env = process.env.NODE_ENV || 'development';
-const config = require(path.join(__dirname,'../../config/app.json'))[env]
+const config = require(path.join(__dirname, '../../config/app.json'))[env]
-async function doRequest(theurl:string, params?:Object) {
+async function doRequest(theurl: string, params?: Object) {
const ps = params || {}
try {
var macaroonString = fs.readFileSync(config.macaroon_location);
diff --git a/api/builtin/mother.ts b/api/builtin/mother.ts
index 3837be0..b165564 100644
--- a/api/builtin/mother.ts
+++ b/api/builtin/mother.ts
@@ -18,15 +18,15 @@ const builtinBots = [
]
const builtInBotMsgTypes = {
- 'welcome':[
+ 'welcome': [
constants.message_types.message,
constants.message_types.group_join
],
}
const builtInBotNames = {
- welcome:'WelcomeBot',
- loopout:'LoopBot',
+ welcome: 'WelcomeBot',
+ loopout: 'LoopBot',
}
export function init() {
@@ -37,7 +37,7 @@ export function init() {
client.on(msg_types.MESSAGE, async (message: Sphinx.Message) => {
const arr = (message.content && message.content.split(' ')) || []
if (arr.length < 2) return
- if (arr[0]!=='/bot') return
+ if (arr[0] !== '/bot') return
const cmd = arr[1]
switch (cmd) {
@@ -45,15 +45,19 @@ export function init() {
if (arr.length < 3) return
const botName = arr[2]
- if(builtinBots.includes(botName)) {
+ if (builtinBots.includes(botName)) {
console.log("INSTALL", botName)
- const chat = await models.Chat.findOne({where:{
- uuid: message.channel.id
- }})
- if(!chat) return
- const existing = await models.ChatBot.findOne({where:{
- chatId: chat.id, botPrefix: '/'+botName,
- }})
+ const chat = await models.Chat.findOne({
+ where: {
+ uuid: message.channel.id
+ }
+ })
+ if (!chat) return
+ const existing = await models.ChatBot.findOne({
+ where: {
+ chatId: chat.id, botPrefix: '/' + botName,
+ }
+ })
if (existing) {
const embed = new Sphinx.MessageEmbed()
.setAuthor('MotherBot')
@@ -64,32 +68,34 @@ export function init() {
constants.message_types.message
]
const chatBot = {
- chatId: chat.id,
- botPrefix: '/'+botName,
- botType:constants.bot_types.builtin,
- msgTypes:JSON.stringify(msgTypes),
- pricePerUse:0,
+ chatId: chat.id,
+ botPrefix: '/' + botName,
+ botType: constants.bot_types.builtin,
+ msgTypes: JSON.stringify(msgTypes),
+ pricePerUse: 0,
}
await models.ChatBot.create(chatBot)
- if(botName==='welcome') {
+ if (botName === 'welcome') {
WelcomeBot.init()
}
- if(botName==='loopout') {
+ if (botName === 'loopout') {
LoopBot.init()
}
const theName = builtInBotNames[botName] || 'Bot'
const embed = new Sphinx.MessageEmbed()
.setAuthor('MotherBot')
- .setDescription(theName+' has been installed!')
+ .setDescription(theName + ' has been installed!')
message.channel.send({ embed })
} else {
const bot = await getBotByName(botName)
- if(bot && bot.uuid) {
+ if (bot && bot.uuid) {
console.log('=> FOUND BOT', bot.unique_name)
- const chat = await models.Chat.findOne({where:{
- uuid: message.channel.id
- }})
- if(!chat) return
+ const chat = await models.Chat.findOne({
+ where: {
+ uuid: message.channel.id
+ }
+ })
+ if (!chat) return
installBot(chat.dataValues, bot)
} else {
const embed = new Sphinx.MessageEmbed()
@@ -104,7 +110,7 @@ export function init() {
if (arr.length < 2) return
const query = arr[2]
const bots = await searchBots(query)
- if(bots.length===0) {
+ if (bots.length === 0) {
const embed = new Sphinx.MessageEmbed()
.setAuthor('MotherBot')
.setDescription('No bots found')
@@ -113,17 +119,17 @@ export function init() {
const embed3 = new Sphinx.MessageEmbed()
.setAuthor('MotherBot')
.setTitle('Bots:')
- .addFields(bots.map(b=> {
+ .addFields(bots.map(b => {
const maxLength = 35
- const value = b.description.length>maxLength ?
- b.description.substr(0,maxLength)+'...' :
+ const value = b.description.length > maxLength ?
+ b.description.substr(0, maxLength) + '...' :
b.description
- return ({name:b.unique_name, value})
+ return ({ name: b.unique_name, value })
}))
.setThumbnail(botSVG)
- message.channel.send({ embed:embed3 })
+ message.channel.send({ embed: embed3 })
return true
-
+
default:
const embed = new Sphinx.MessageEmbed()
.setAuthor('MotherBot')
@@ -143,24 +149,24 @@ const botSVG = `
`
-async function searchBots(q:string) {
+async function searchBots(q: string) {
try {
const r = await fetch(`https://${config.tribes_host}/search/bots/${q}`)
const j = await r.json()
return Array.isArray(j) ? j : []
- } catch(e) {
+ } catch (e) {
return []
}
}
-async function getBotByName(name:string) {
+async function getBotByName(name: string) {
try {
const r = await fetch(`https://${config.tribes_host}/bot/${name}`)
const j = await r.json()
- if(j&&j.uuid&&j.owner_pubkey) {
+ if (j && j.uuid && j.owner_pubkey) {
return j
}
return null
- } catch(e) {
+ } catch (e) {
return null
}
}
\ No newline at end of file
diff --git a/api/builtin/welcome.ts b/api/builtin/welcome.ts
index f5fefe4..ab50a50 100644
--- a/api/builtin/welcome.ts
+++ b/api/builtin/welcome.ts
@@ -9,7 +9,7 @@ const constants = require(path.join(__dirname, '../../config/constants.json'))
let initted = false
export function init() {
- if(initted) return
+ if (initted) return
initted = true
const client = new Sphinx.Client()
@@ -17,26 +17,28 @@ export function init() {
client.on(msg_types.MESSAGE, async (message: Sphinx.Message) => {
const arr = (message.content && message.content.split(' ')) || []
- console.log('message.type',message.type)
- const isGroupJoin = message.type===constants.message_types.group_join
+ console.log('message.type', message.type)
+ const isGroupJoin = message.type === constants.message_types.group_join
if (arr.length < 2 && !isGroupJoin) return
- if (arr[0]!=='/welcome' && !isGroupJoin) return
+ if (arr[0] !== '/welcome' && !isGroupJoin) return
const cmd = arr[1]
- if(isGroupJoin) {
- const chat = await models.Chat.findOne({where:{uuid:message.channel.id}})
- if(!chat) return
- const chatBot = await models.ChatBot.findOne({where:{
- chatId: chat.id, botPrefix:'/welcome', botType:constants.bot_types.builtin
- }})
+ if (isGroupJoin) {
+ const chat = await models.Chat.findOne({ where: { uuid: message.channel.id } })
+ if (!chat) return
+ const chatBot = await models.ChatBot.findOne({
+ where: {
+ chatId: chat.id, botPrefix: '/welcome', botType: constants.bot_types.builtin
+ }
+ })
let meta = 'Welcome to the tribe!'
- if(chatBot && chatBot.meta) {
+ if (chatBot && chatBot.meta) {
meta = chatBot.meta
}
const resEmbed = new Sphinx.MessageEmbed()
.setAuthor('WelcomeBot')
.setDescription(meta)
- message.channel.send({ embed:resEmbed })
+ message.channel.send({ embed: resEmbed })
return
}
@@ -45,20 +47,22 @@ export function init() {
case 'setmessage':
if (arr.length < 3) return
console.log("setmsg", arr[2])
- const chat = await models.Chat.findOne({where:{uuid:message.channel.id}})
- if(!chat) return
- const chatBot = await models.ChatBot.findOne({where:{
- chatId: chat.id, botPrefix:'/welcome', botType:constants.bot_types.builtin
- }})
- if(!chatBot) return
+ const chat = await models.Chat.findOne({ where: { uuid: message.channel.id } })
+ if (!chat) return
+ const chatBot = await models.ChatBot.findOne({
+ where: {
+ chatId: chat.id, botPrefix: '/welcome', botType: constants.bot_types.builtin
+ }
+ })
+ if (!chatBot) return
const meta = arr.slice(2, arr.length).join(' ');
- await chatBot.update({meta})
+ await chatBot.update({ meta })
const resEmbed = new Sphinx.MessageEmbed()
.setAuthor('WelcomeBot')
.setDescription('Your welcome message has been updated')
- message.channel.send({ embed:resEmbed })
+ message.channel.send({ embed: resEmbed })
return
-
+
default:
const embed = new Sphinx.MessageEmbed()
.setAuthor('WelcomeBot')
diff --git a/api/network/intercept.ts b/api/network/intercept.ts
index 1d401be..6672f68 100644
--- a/api/network/intercept.ts
+++ b/api/network/intercept.ts
@@ -1,11 +1,11 @@
-import {Msg} from './interfaces'
+import { Msg } from './interfaces'
import { models } from '../models'
-import {builtinBotEmit} from '../builtin'
-import {keysendBotCmd, postToBotServer} from '../controllers/bots'
+import { builtinBotEmit } from '../builtin'
+import { keysendBotCmd, postToBotServer } from '../controllers/bots'
import * as path from 'path'
import * as SphinxBot from 'sphinx-bot'
-const constants = require(path.join(__dirname,'../../config/constants.json'))
+const constants = require(path.join(__dirname, '../../config/constants.json'))
/*
default show or not
@@ -13,48 +13,52 @@ restrictions (be able to toggle, or dont show chat)
*/
// return bool whether to skip forwarding to tribe
-export async function isBotMsg(msg:Msg, sentByMe:boolean): Promise {
- const txt = msg.message&&msg.message.content
+export async function isBotMsg(msg: Msg, sentByMe: boolean): Promise {
+ const txt = msg.message && msg.message.content
const msgType = msg.type
- if(msgType===constants.message_types.bot_res) {
+ if (msgType === constants.message_types.bot_res) {
return false // bot res msg type not for processing
}
- const chat = await models.Chat.findOne({where:{
- uuid: msg.chat.uuid
- }})
- if(!chat) return false
+ const chat = await models.Chat.findOne({
+ where: {
+ uuid: msg.chat.uuid
+ }
+ })
+ if (!chat) return false
let didEmit = false
- if(txt && txt.startsWith('/bot ')) {
+ if (txt && txt.startsWith('/bot ')) {
builtinBotEmit(msg)
didEmit = true
}
- if(didEmit) return didEmit
+ if (didEmit) return didEmit
- const botsInTribe = await models.ChatBot.findAll({where:{
- chatId: chat.id
- }})
+ const botsInTribe = await models.ChatBot.findAll({
+ where: {
+ chatId: chat.id
+ }
+ })
// console.log('=> botsInTribe', botsInTribe)
- if(!(botsInTribe && botsInTribe.length)) return false
+ if (!(botsInTribe && botsInTribe.length)) return false
- await asyncForEach(botsInTribe, async botInTribe=>{
- if(botInTribe.msgTypes){
+ await asyncForEach(botsInTribe, async botInTribe => {
+ if (botInTribe.msgTypes) {
// console.log('=> botInTribe.msgTypes', botInTribe)
try {
const msgTypes = JSON.parse(botInTribe.msgTypes)
- if(msgTypes.includes(msgType)){
- const isMsgAndHasText = msgType===constants.message_types.message && txt && txt.startsWith(`${botInTribe.botPrefix} `)
- const isNotMsg = msgType!==constants.message_types.message
- if(isMsgAndHasText || isNotMsg) {
+ if (msgTypes.includes(msgType)) {
+ const isMsgAndHasText = msgType === constants.message_types.message && txt && txt.startsWith(`${botInTribe.botPrefix} `)
+ const isNotMsg = msgType !== constants.message_types.message
+ if (isMsgAndHasText || isNotMsg) {
didEmit = await emitMessageToBot(msg, botInTribe.dataValues)
}
}
- } catch(e){}
+ } catch (e) { }
} else { // no message types defined, do all?
- if(txt && txt.startsWith(`${botInTribe.botPrefix} `)) {
+ if (txt && txt.startsWith(`${botInTribe.botPrefix} `)) {
// console.log('=> botInTribe.msgTypes else', botInTribe.dataValues)
didEmit = await emitMessageToBot(msg, botInTribe.dataValues)
}
@@ -71,9 +75,11 @@ async function emitMessageToBot(msg, botInTribe): Promise {
builtinBotEmit(msg)
return true
case constants.bot_types.local:
- const bot = await models.Bot.findOne({where:{
- uuid: botInTribe.botUuid
- }})
+ const bot = await models.Bot.findOne({
+ where: {
+ uuid: botInTribe.botUuid
+ }
+ })
return postToBotServer(msg, bot, SphinxBot.MSG_TYPE.MESSAGE)
case constants.bot_types.remote:
return keysendBotCmd(msg, botInTribe)
@@ -83,7 +89,7 @@ async function emitMessageToBot(msg, botInTribe): Promise {
}
async function asyncForEach(array, callback) {
- for (let index = 0; index < array.length; index++) {
- await callback(array[index], index, array);
- }
+ for (let index = 0; index < array.length; index++) {
+ await callback(array[index], index, array);
+ }
}
\ No newline at end of file
diff --git a/dist/api/builtin/loop.js b/dist/api/builtin/loop.js
index e842711..1f0fd25 100644
--- a/dist/api/builtin/loop.js
+++ b/dist/api/builtin/loop.js
@@ -47,6 +47,13 @@ function init() {
message.channel.send({ embed });
return;
}
+ if (message.amount !== parseInt(amt)) {
+ const embed = new Sphinx.MessageEmbed()
+ .setAuthor('LoopBot')
+ .setDescription('Incorrect amount');
+ message.channel.send({ embed });
+ return;
+ }
try {
const j = yield doRequest(baseurl + '/v1/loop/out/quote/' + amt);
console.log("=> LOOP QUOTE RES", j);
diff --git a/dist/api/builtin/loop.js.map b/dist/api/builtin/loop.js.map
index 7d14af6..43e29a6 100644
--- a/dist/api/builtin/loop.js.map
+++ b/dist/api/builtin/loop.js.map
@@ -1 +1 @@
-{"version":3,"file":"loop.js","sourceRoot":"","sources":["../../../api/builtin/loop.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"loop.js","sourceRoot":"","sources":["../../../api/builtin/loop.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/api/network/intercept.js b/dist/api/network/intercept.js
index a0fb3d9..686fb2b 100644
--- a/dist/api/network/intercept.js
+++ b/dist/api/network/intercept.js
@@ -27,9 +27,11 @@ function isBotMsg(msg, sentByMe) {
if (msgType === constants.message_types.bot_res) {
return false; // bot res msg type not for processing
}
- const chat = yield models_1.models.Chat.findOne({ where: {
+ const chat = yield models_1.models.Chat.findOne({
+ where: {
uuid: msg.chat.uuid
- } });
+ }
+ });
if (!chat)
return false;
let didEmit = false;
@@ -39,9 +41,11 @@ function isBotMsg(msg, sentByMe) {
}
if (didEmit)
return didEmit;
- const botsInTribe = yield models_1.models.ChatBot.findAll({ where: {
+ const botsInTribe = yield models_1.models.ChatBot.findAll({
+ where: {
chatId: chat.id
- } });
+ }
+ });
// console.log('=> botsInTribe', botsInTribe)
if (!(botsInTribe && botsInTribe.length))
return false;
@@ -79,9 +83,11 @@ function emitMessageToBot(msg, botInTribe) {
builtin_1.builtinBotEmit(msg);
return true;
case constants.bot_types.local:
- const bot = yield models_1.models.Bot.findOne({ where: {
+ const bot = yield models_1.models.Bot.findOne({
+ where: {
uuid: botInTribe.botUuid
- } });
+ }
+ });
return bots_1.postToBotServer(msg, bot, SphinxBot.MSG_TYPE.MESSAGE);
case constants.bot_types.remote:
return bots_1.keysendBotCmd(msg, botInTribe);
diff --git a/dist/api/network/intercept.js.map b/dist/api/network/intercept.js.map
index 8f46f47..29c2cca 100644
--- a/dist/api/network/intercept.js.map
+++ b/dist/api/network/intercept.js.map
@@ -1 +1 @@
-{"version":3,"file":"intercept.js","sourceRoot":"","sources":["../../../api/network/intercept.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"intercept.js","sourceRoot":"","sources":["../../../api/network/intercept.ts"],"names":[],"mappings":"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"}
\ No newline at end of file