Browse Source

loopbot, other bot changes

push-params
Evan Feenstra 5 years ago
parent
commit
072f5069cf
  1. 5
      api/bots/index.ts
  2. 91
      api/bots/loop.ts
  3. 17
      api/bots/mother.ts
  4. 1
      api/network/interfaces.ts
  5. 6
      dist/api/bots/index.js
  6. 2
      dist/api/bots/index.js.map
  7. 100
      dist/api/bots/loop.js
  8. 1
      dist/api/bots/loop.js.map
  9. 17
      dist/api/bots/mother.js
  10. 2
      dist/api/bots/mother.js.map
  11. 29
      package-lock.json
  12. 3
      package.json

5
api/bots/index.ts

@ -3,6 +3,7 @@ import * as SphinxBot from 'sphinx-bot'
import * as MotherBot from './mother'
import * as WelcomeBot from './welcome'
import * as BitcoinBot from './btc'
import * as LoopBot from './loop'
import {Msg} from '../network/interfaces'
import * as path from 'path'
import { models } from '../models'
@ -20,6 +21,7 @@ async function init(){
builtInBots.forEach(b=>{
if(b.botPrefix==='/welcome') WelcomeBot.init()
if(b.botPrefix==='/btc') BitcoinBot.init()
if(b.botPrefix==='/loopout') LoopBot.init()
})
}
@ -31,9 +33,10 @@ function builtinBotEmit(msg:Msg){
},
reply:function(){},
content: msg.message.content,
amount: msg.message.amount,
type: msg.type,
member: {
id:'_',
id: msg.sender.pub_key,
nickname: msg.sender.alias,
roles:[]
}

91
api/bots/loop.ts

@ -0,0 +1,91 @@
import * as Sphinx from 'sphinx-bot'
import { finalAction } from '../controllers/actions'
import fetch from 'node-fetch'
import validate from 'bitcoin-address-validation';
const msg_types = Sphinx.MSG_TYPE
let initted = false
const url = 'http://localhost:8081'
export function init() {
if(initted) return
initted = true
const client = new Sphinx.Client()
client.login('_', finalAction)
client.on(msg_types.MESSAGE, async (message: Sphinx.Message) => {
const arr = message.content.split(' ')
if (arr.length < 2) return
if (arr[0]!=='/loopout') return
if (arr.length===3) { // loop
const addy = arr[1]
if(!validate(addy)) {
const embed = new Sphinx.MessageEmbed()
.setAuthor('LoopBot')
.setDescription('Invalid BTC address')
message.channel.send({ embed })
return
}
const amt = arr[2]
if(!validateAmount(amt)) {
const embed = new Sphinx.MessageEmbed()
.setAuthor('LoopBot')
.setDescription('Invalid amount')
message.channel.send({ embed })
return
}
try {
const r = await fetch(url+'/v1/loop/out',{
method: 'POST',
body: JSON.stringify({
amt: amt,
dest: addy,
}),
headers: { 'Content-Type': 'application/json' },
})
if (!r.ok) return
// const j = await r.json()
const embed = new Sphinx.MessageEmbed()
.setAuthor('LoopBot')
.setTitle('Loop Initialized!')
message.channel.send({ embed })
} catch(e){
console.log('Loop bot error',e)
}
}
const cmd = arr[1]
switch (cmd) {
case 'help':
const embed = new Sphinx.MessageEmbed()
.setAuthor('LoopBot')
.setTitle('LoopBot Commands:')
.addFields([
{ name: 'Send to your on-chain address', value: '/loopout {ADDRESS} {AMOUNT}' },
{ name: 'Help', value: '/loopout help' }
])
.setThumbnail(botSVG)
message.channel.send({ embed })
return
default:
const embed2 = new Sphinx.MessageEmbed()
.setAuthor('LoopBot')
.setDescription('Command not recognized')
message.channel.send({ embed:embed2 })
return
}
})
}
const botSVG = `<svg viewBox="64 64 896 896" height="12" width="12" fill="white">
<path d="M300 328a60 60 0 10120 0 60 60 0 10-120 0zM852 64H172c-17.7 0-32 14.3-32 32v660c0 17.7 14.3 32 32 32h680c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-32 660H204V128h616v596zM604 328a60 60 0 10120 0 60 60 0 10-120 0zm250.2 556H169.8c-16.5 0-29.8 14.3-29.8 32v36c0 4.4 3.3 8 7.4 8h729.1c4.1 0 7.4-3.6 7.4-8v-36c.1-17.7-13.2-32-29.7-32zM664 508H360c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h304c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z" />
</svg>`
function validateAmount(amtString:string){
const amt = parseInt(amtString)
const ok = amt>0
return ok
}

17
api/bots/mother.ts

@ -4,13 +4,14 @@ import { finalAction } from '../controllers/actions'
import * as path from 'path'
import * as WelcomeBot from './welcome'
import * as BitcoinBot from './btc'
import * as LoopBot from './loop'
import { models } from '../models'
const msg_types = Sphinx.MSG_TYPE
const constants = require(path.join(__dirname, '../../config/constants.json'))
const builtinBots = [
'welcome', 'btc'
'welcome', 'btc', 'loopout'
]
const builtInBotMsgTypes = {
@ -18,14 +19,12 @@ const builtInBotMsgTypes = {
constants.message_types.message,
constants.message_types.group_join
],
'btc':[
constants.message_types.message,
]
}
const builtInBotNames = {
welcome:'WelcomeBot',
btc:'BitcoinBot'
btc:'BitcoinBot',
loopout:'LoopBot',
}
export function init() {
@ -49,11 +48,14 @@ export function init() {
uuid: message.channel.id
}})
if(!chat) return
const msgTypes = builtInBotMsgTypes[botName] || [
constants.message_types.message
]
const chatBot = {
chatId: chat.id,
botPrefix: '/'+botName,
botType:constants.bot_types.builtin,
msgTypes:JSON.stringify(builtInBotMsgTypes[botName]),
msgTypes:JSON.stringify(msgTypes),
pricePerUse:0,
}
await models.ChatBot.create(chatBot)
@ -63,6 +65,9 @@ export function init() {
if(botName==='btc') {
BitcoinBot.init()
}
if(botName==='loopout') {
LoopBot.init()
}
const theName = builtInBotNames[botName] || 'Bot'
const embed = new Sphinx.MessageEmbed()
.setAuthor('MotherBot')

1
api/network/interfaces.ts

@ -3,6 +3,7 @@ export interface Msg {
type: number,
message: {
content: string,
amount: number,
},
chat: {
uuid: string

6
dist/api/bots/index.js

@ -14,6 +14,7 @@ const SphinxBot = require("sphinx-bot");
const MotherBot = require("./mother");
const WelcomeBot = require("./welcome");
const BitcoinBot = require("./btc");
const LoopBot = require("./loop");
const path = require("path");
const models_1 = require("../models");
const constants = require(path.join(__dirname, '../../config/constants.json'));
@ -30,6 +31,8 @@ function init() {
WelcomeBot.init();
if (b.botPrefix === '/btc')
BitcoinBot.init();
if (b.botPrefix === '/loopout')
LoopBot.init();
});
});
}
@ -42,9 +45,10 @@ function builtinBotEmit(msg) {
},
reply: function () { },
content: msg.message.content,
amount: msg.message.amount,
type: msg.type,
member: {
id: '_',
id: msg.sender.pub_key,
nickname: msg.sender.alias,
roles: []
}

2
dist/api/bots/index.js.map

@ -1 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../api/bots/index.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,mDAAmD;AACnD,wCAAuC;AACvC,sCAAqC;AACrC,wCAAuC;AACvC,oCAAmC;AAEnC,6BAA4B;AAC5B,sCAAkC;AAElC,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,6BAA6B,CAAC,CAAC,CAAA;AAE9E,SAAe,IAAI;;QACf,SAAS,CAAC,IAAI,EAAE,CAAA;QAEhB,MAAM,WAAW,GAAG,MAAM,eAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAC,KAAK,EAAC;gBACpD,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,OAAO;aACvC,EAAC,CAAC,CAAA;QACH,IAAG,CAAC,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,CAAC;YAAE,OAAM;QAE/C,WAAW,CAAC,OAAO,CAAC,CAAC,CAAA,EAAE;YACnB,IAAG,CAAC,CAAC,SAAS,KAAG,UAAU;gBAAE,UAAU,CAAC,IAAI,EAAE,CAAA;YAC9C,IAAG,CAAC,CAAC,SAAS,KAAG,MAAM;gBAAE,UAAU,CAAC,IAAI,EAAE,CAAA;QAC9C,CAAC,CAAC,CAAA;IACN,CAAC;CAAA;AAyBO,oBAAI;AAvBZ,SAAS,cAAc,CAAC,GAAO;IAC3B,MAAM,CAAC,GAAsB;QACzB,OAAO,EAAC;YACJ,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI;YACjB,IAAI,EAAC,cAAW,CAAC;SACpB;QACD,KAAK,EAAC,cAAW,CAAC;QAClB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO;QAC5B,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,MAAM,EAAE;YACJ,EAAE,EAAC,GAAG;YACN,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK;YAC1B,KAAK,EAAC,EAAE;SACX;KACJ,CAAA;IACD,IAAG,GAAG,CAAC,MAAM,CAAC,IAAI,KAAG,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE;QAC7C,IAAG,CAAC,CAAC,MAAM;YAAE,CAAC,CAAC,MAAM,CAAC,KAAK,GAAC,CAAC;oBACzB,IAAI,EAAC,OAAO;iBACf,CAAC,CAAA;KACL;IACD,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;AACjC,CAAC;AAEY,wCAAc"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../api/bots/index.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,mDAAmD;AACnD,wCAAuC;AACvC,sCAAqC;AACrC,wCAAuC;AACvC,oCAAmC;AACnC,kCAAiC;AAEjC,6BAA4B;AAC5B,sCAAkC;AAElC,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,6BAA6B,CAAC,CAAC,CAAA;AAE9E,SAAe,IAAI;;QACf,SAAS,CAAC,IAAI,EAAE,CAAA;QAEhB,MAAM,WAAW,GAAG,MAAM,eAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAC,KAAK,EAAC;gBACpD,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,OAAO;aACvC,EAAC,CAAC,CAAA;QACH,IAAG,CAAC,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,CAAC;YAAE,OAAM;QAE/C,WAAW,CAAC,OAAO,CAAC,CAAC,CAAA,EAAE;YACnB,IAAG,CAAC,CAAC,SAAS,KAAG,UAAU;gBAAE,UAAU,CAAC,IAAI,EAAE,CAAA;YAC9C,IAAG,CAAC,CAAC,SAAS,KAAG,MAAM;gBAAE,UAAU,CAAC,IAAI,EAAE,CAAA;YAC1C,IAAG,CAAC,CAAC,SAAS,KAAG,UAAU;gBAAE,OAAO,CAAC,IAAI,EAAE,CAAA;QAC/C,CAAC,CAAC,CAAA;IACN,CAAC;CAAA;AA0BO,oBAAI;AAxBZ,SAAS,cAAc,CAAC,GAAO;IAC3B,MAAM,CAAC,GAAsB;QACzB,OAAO,EAAC;YACJ,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI;YACjB,IAAI,EAAC,cAAW,CAAC;SACpB;QACD,KAAK,EAAC,cAAW,CAAC;QAClB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO;QAC5B,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM;QAC1B,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,MAAM,EAAE;YACJ,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO;YACtB,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK;YAC1B,KAAK,EAAC,EAAE;SACX;KACJ,CAAA;IACD,IAAG,GAAG,CAAC,MAAM,CAAC,IAAI,KAAG,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE;QAC7C,IAAG,CAAC,CAAC,MAAM;YAAE,CAAC,CAAC,MAAM,CAAC,KAAK,GAAC,CAAC;oBACzB,IAAI,EAAC,OAAO;iBACf,CAAC,CAAA;KACL;IACD,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;AACjC,CAAC;AAEY,wCAAc"}

100
dist/api/bots/loop.js

@ -0,0 +1,100 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const Sphinx = require("sphinx-bot");
const actions_1 = require("../controllers/actions");
const node_fetch_1 = require("node-fetch");
const bitcoin_address_validation_1 = require("bitcoin-address-validation");
const msg_types = Sphinx.MSG_TYPE;
let initted = false;
const url = 'http://localhost:8081';
function init() {
if (initted)
return;
initted = true;
const client = new Sphinx.Client();
client.login('_', actions_1.finalAction);
client.on(msg_types.MESSAGE, (message) => __awaiter(this, void 0, void 0, function* () {
const arr = message.content.split(' ');
if (arr.length < 2)
return;
if (arr[0] !== '/loopout')
return;
if (arr.length === 3) { // loop
const addy = arr[1];
if (!bitcoin_address_validation_1.default(addy)) {
const embed = new Sphinx.MessageEmbed()
.setAuthor('LoopBot')
.setDescription('Invalid BTC address');
message.channel.send({ embed });
return;
}
const amt = arr[2];
if (!validateAmount(amt)) {
const embed = new Sphinx.MessageEmbed()
.setAuthor('LoopBot')
.setDescription('Invalid amount');
message.channel.send({ embed });
return;
}
try {
const r = yield node_fetch_1.default(url + '/v1/loop/out', {
method: 'POST',
body: JSON.stringify({
amt: amt,
dest: addy,
}),
headers: { 'Content-Type': 'application/json' },
});
if (!r.ok)
return;
// const j = await r.json()
const embed = new Sphinx.MessageEmbed()
.setAuthor('LoopBot')
.setTitle('Loop Initialized!');
message.channel.send({ embed });
}
catch (e) {
console.log('Loop bot error', e);
}
}
const cmd = arr[1];
switch (cmd) {
case 'help':
const embed = new Sphinx.MessageEmbed()
.setAuthor('LoopBot')
.setTitle('LoopBot Commands:')
.addFields([
{ name: 'Send to your on-chain address', value: '/loopout {ADDRESS} {AMOUNT}' },
{ name: 'Help', value: '/loopout help' }
])
.setThumbnail(botSVG);
message.channel.send({ embed });
return;
default:
const embed2 = new Sphinx.MessageEmbed()
.setAuthor('LoopBot')
.setDescription('Command not recognized');
message.channel.send({ embed: embed2 });
return;
}
}));
}
exports.init = init;
const botSVG = `<svg viewBox="64 64 896 896" height="12" width="12" fill="white">
<path d="M300 328a60 60 0 10120 0 60 60 0 10-120 0zM852 64H172c-17.7 0-32 14.3-32 32v660c0 17.7 14.3 32 32 32h680c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-32 660H204V128h616v596zM604 328a60 60 0 10120 0 60 60 0 10-120 0zm250.2 556H169.8c-16.5 0-29.8 14.3-29.8 32v36c0 4.4 3.3 8 7.4 8h729.1c4.1 0 7.4-3.6 7.4-8v-36c.1-17.7-13.2-32-29.7-32zM664 508H360c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h304c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z" />
</svg>`;
function validateAmount(amtString) {
const amt = parseInt(amtString);
const ok = amt > 0;
return ok;
}
//# sourceMappingURL=loop.js.map

1
dist/api/bots/loop.js.map

@ -0,0 +1 @@
{"version":3,"file":"loop.js","sourceRoot":"","sources":["../../../api/bots/loop.ts"],"names":[],"mappings":"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"}

17
dist/api/bots/mother.js

@ -15,24 +15,23 @@ const actions_1 = require("../controllers/actions");
const path = require("path");
const WelcomeBot = require("./welcome");
const BitcoinBot = require("./btc");
const LoopBot = require("./loop");
const models_1 = require("../models");
const msg_types = Sphinx.MSG_TYPE;
const constants = require(path.join(__dirname, '../../config/constants.json'));
const builtinBots = [
'welcome', 'btc'
'welcome', 'btc', 'loopout'
];
const builtInBotMsgTypes = {
'welcome': [
constants.message_types.message,
constants.message_types.group_join
],
'btc': [
constants.message_types.message,
]
};
const builtInBotNames = {
welcome: 'WelcomeBot',
btc: 'BitcoinBot'
btc: 'BitcoinBot',
loopout: 'LoopBot',
};
function init() {
const client = new Sphinx.Client();
@ -56,11 +55,14 @@ function init() {
} });
if (!chat)
return;
const msgTypes = builtInBotMsgTypes[botName] || [
constants.message_types.message
];
const chatBot = {
chatId: chat.id,
botPrefix: '/' + botName,
botType: constants.bot_types.builtin,
msgTypes: JSON.stringify(builtInBotMsgTypes[botName]),
msgTypes: JSON.stringify(msgTypes),
pricePerUse: 0,
};
yield models_1.models.ChatBot.create(chatBot);
@ -70,6 +72,9 @@ function init() {
if (botName === 'btc') {
BitcoinBot.init();
}
if (botName === 'loopout') {
LoopBot.init();
}
const theName = builtInBotNames[botName] || 'Bot';
const embed = new Sphinx.MessageEmbed()
.setAuthor('MotherBot')

2
dist/api/bots/mother.js.map

@ -1 +1 @@
{"version":3,"file":"mother.js","sourceRoot":"","sources":["../../../api/bots/mother.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"mother.js","sourceRoot":"","sources":["../../../api/bots/mother.ts"],"names":[],"mappings":"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"}

29
package-lock.json

@ -1927,6 +1927,14 @@
}
}
},
"base-x": {
"version": "3.0.8",
"resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz",
"integrity": "sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==",
"requires": {
"safe-buffer": "^5.0.1"
}
},
"base64-arraybuffer": {
"version": "0.1.5",
"resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz",
@ -1956,6 +1964,11 @@
"tweetnacl": "^0.14.3"
}
},
"bech32": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz",
"integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ=="
},
"better-assert": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz",
@ -1983,6 +1996,16 @@
"file-uri-to-path": "1.0.0"
}
},
"bitcoin-address-validation": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/bitcoin-address-validation/-/bitcoin-address-validation-1.0.2.tgz",
"integrity": "sha512-Eh2eLYPL3XtyAnleXBV1MANnqaG2nsrQnTaynpik+5kQFI8ro5ANkrbjYiirIfM+1mibh54UhV+hg8rEW51lYw==",
"requires": {
"base-x": "^3.0.6",
"bech32": "^1.1.3",
"sha.js": "^2.4.11"
}
},
"bl": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz",
@ -11212,9 +11235,9 @@
}
},
"sphinx-bot": {
"version": "0.1.28",
"resolved": "https://registry.npmjs.org/sphinx-bot/-/sphinx-bot-0.1.28.tgz",
"integrity": "sha512-UuCLiIQ5DBE33ffPTMtBeBjfP68+wX8yoRaKttPfPrQqxlMY+545EZlzMsmVE/MXcd9CrGHhRnb5TiNBKr+u6w==",
"version": "0.1.30",
"resolved": "https://registry.npmjs.org/sphinx-bot/-/sphinx-bot-0.1.30.tgz",
"integrity": "sha512-ZHh4KN8cL+NFbPbUe93ZuLAAAStn00tnnfw3xGCJZ0sJzBnK8ZKr+Rq/hWJhQvWfGwojx2ZSDq4SKqH08rBFfQ==",
"requires": {
"@types/node-fetch": "^2.5.7",
"eventemitter3": "^4.0.7",

3
package.json

@ -31,6 +31,7 @@
"async": "^2.6.2",
"async-lock": "^1.2.2",
"babel-loader": "^8.0.6",
"bitcoin-address-validation": "^1.0.2",
"bytebuffer": "^5.0.1",
"change-case": "^4.1.1",
"cookie-parser": "^1.4.4",
@ -78,7 +79,7 @@
"short-uuid": "^3.1.1",
"sjcl": "^1.0.8",
"socket.io": "^2.3.0",
"sphinx-bot": "^0.1.28",
"sphinx-bot": "^0.1.30",
"tail": "^2.0.3",
"ts-node": "^8.5.4",
"tsc": "^1.20150623.0",

Loading…
Cancel
Save