Browse Source

hosted bots

push-params
Evan Feenstra 5 years ago
parent
commit
50951b3fe2
  1. 2
      api/bots/index.ts
  2. 4
      api/bots/mother.ts
  3. 33
      api/network/intercept.ts
  4. 3
      dist/api/bots/index.js
  5. 2
      dist/api/bots/index.js.map
  6. 4
      dist/api/bots/mother.js
  7. 2
      dist/api/bots/mother.js.map
  8. 35
      dist/api/network/intercept.js
  9. 2
      dist/api/network/intercept.js.map

2
api/bots/index.ts

@ -2,7 +2,6 @@
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'
@ -20,7 +19,6 @@ async function init(){
builtInBots.forEach(b=>{
if(b.botPrefix==='/welcome') WelcomeBot.init()
if(b.botPrefix==='/btc') BitcoinBot.init()
if(b.botPrefix==='/loopout') LoopBot.init()
})
}

4
api/bots/mother.ts

@ -3,7 +3,6 @@ import * as Sphinx from 'sphinx-bot'
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'
import fetch from 'node-fetch'
@ -75,9 +74,6 @@ export function init() {
if(botName==='welcome') {
WelcomeBot.init()
}
if(botName==='btc') {
BitcoinBot.init()
}
if(botName==='loopout') {
LoopBot.init()
}

33
api/network/intercept.ts

@ -2,6 +2,7 @@ import {Msg} from './interfaces'
import { models } from '../models'
import {builtinBotEmit} from '../bots'
import * as path from 'path'
import fetch from 'node-fetch'
const constants = require(path.join(__dirname,'../../config/constants.json'))
@ -44,13 +45,11 @@ export async function isBotMsg(msg:Msg, sentByMe:boolean): Promise<boolean> {
try {
const msgTypes = JSON.parse(botInTribe.msgTypes)
if(msgTypes.includes(msgType)){
builtinBotEmit(msg)
didEmit = true
didEmit = await emitMessageToBot(msg, botInTribe)
}
} catch(e){}
} else { // no message types defined, do all?
builtinBotEmit(msg)
didEmit = true
didEmit = await emitMessageToBot(msg, botInTribe)
}
}
})
@ -58,6 +57,32 @@ export async function isBotMsg(msg:Msg, sentByMe:boolean): Promise<boolean> {
return didEmit
}
async function emitMessageToBot(msg, botInTribe): Promise<boolean> {
console.log("EMIT MSG TO BOT",msg,botInTribe)
switch (botInTribe.type) {
case constants.bot_types.builtin:
builtinBotEmit(msg)
return true
case constants.bot_types.local:
return postToBotServer(msg, botInTribe)
default:
return false
}
}
async function postToBotServer(msg, botInTribe): Promise<boolean> {
if(!botInTribe.webhook || !botInTribe.secret) return false
const r = await fetch(botInTribe.webhook, {
method:'POST',
body:JSON.stringify(msg),
headers:{
'x-secret': botInTribe.secret
}
})
return r.ok
}
async function asyncForEach(array, callback) {
for (let index = 0; index < array.length; index++) {
await callback(array[index], index, array);

3
dist/api/bots/index.js

@ -13,7 +13,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
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");
@ -29,8 +28,6 @@ function init() {
builtInBots.forEach(b => {
if (b.botPrefix === '/welcome')
WelcomeBot.init();
if (b.botPrefix === '/btc')
BitcoinBot.init();
if (b.botPrefix === '/loopout')
LoopBot.init();
});

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;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"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../api/bots/index.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,mDAAmD;AACnD,wCAAuC;AACvC,sCAAqC;AACrC,wCAAuC;AACvC,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,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"}

4
dist/api/bots/mother.js

@ -14,7 +14,6 @@ const Sphinx = require("sphinx-bot");
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 node_fetch_1 = require("node-fetch");
@ -81,9 +80,6 @@ function init() {
if (botName === 'welcome') {
WelcomeBot.init();
}
if (botName === 'btc') {
BitcoinBot.init();
}
if (botName === 'loopout') {
LoopBot.init();
}

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

File diff suppressed because one or more lines are too long

35
dist/api/network/intercept.js

@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
const models_1 = require("../models");
const bots_1 = require("../bots");
const path = require("path");
const node_fetch_1 = require("node-fetch");
const constants = require(path.join(__dirname, '../../config/constants.json'));
/*
default show or not
@ -49,15 +50,13 @@ function isBotMsg(msg, sentByMe) {
try {
const msgTypes = JSON.parse(botInTribe.msgTypes);
if (msgTypes.includes(msgType)) {
bots_1.builtinBotEmit(msg);
didEmit = true;
didEmit = yield emitMessageToBot(msg, botInTribe);
}
}
catch (e) { }
}
else { // no message types defined, do all?
bots_1.builtinBotEmit(msg);
didEmit = true;
didEmit = yield emitMessageToBot(msg, botInTribe);
}
}
}));
@ -65,6 +64,34 @@ function isBotMsg(msg, sentByMe) {
});
}
exports.isBotMsg = isBotMsg;
function emitMessageToBot(msg, botInTribe) {
return __awaiter(this, void 0, void 0, function* () {
console.log("EMIT MSG TO BOT", msg, botInTribe);
switch (botInTribe.type) {
case constants.bot_types.builtin:
bots_1.builtinBotEmit(msg);
return true;
case constants.bot_types.local:
return postToBotServer(msg, botInTribe);
default:
return false;
}
});
}
function postToBotServer(msg, botInTribe) {
return __awaiter(this, void 0, void 0, function* () {
if (!botInTribe.webhook || !botInTribe.secret)
return false;
const r = yield node_fetch_1.default(botInTribe.webhook, {
method: 'POST',
body: JSON.stringify(msg),
headers: {
'x-secret': botInTribe.secret
}
});
return r.ok;
});
}
function asyncForEach(array, callback) {
return __awaiter(this, void 0, void 0, function* () {
for (let index = 0; index < array.length; index++) {

2
dist/api/network/intercept.js.map

@ -1 +1 @@
{"version":3,"file":"intercept.js","sourceRoot":"","sources":["../../../api/network/intercept.ts"],"names":[],"mappings":";;;;;;;;;;;AACA,sCAAkC;AAClC,kCAAsC;AACtC,6BAA4B;AAE5B,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAC,6BAA6B,CAAC,CAAC,CAAA;AAE7E;;;EAGE;AAEF,kDAAkD;AAClD,SAAsB,QAAQ,CAAC,GAAO,EAAE,QAAgB;;QACtD,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAA;QAC/B,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAA;QACxB,IAAG,OAAO,KAAG,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE;YAC5C,OAAO,KAAK,CAAA,CAAC,sCAAsC;SACpD;QACD,MAAM,IAAI,GAAG,MAAM,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAC,KAAK,EAAC;gBAC5C,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI;aACpB,EAAC,CAAC,CAAA;QACH,IAAG,CAAC,IAAI;YAAE,OAAO,KAAK,CAAA;QAEtB,IAAI,OAAO,GAAG,KAAK,CAAA;QAEnB,IAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;YAC1B,qBAAc,CAAC,GAAG,CAAC,CAAA;YACnB,OAAO,GAAG,IAAI,CAAA;SACf;QAED,OAAO,CAAC,GAAG,CAAC,UAAU,EAAC,OAAO,CAAC,CAAA;QAC/B,IAAG,OAAO;YAAE,OAAO,OAAO,CAAA;QAE1B,MAAM,WAAW,GAAG,MAAM,eAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAC,KAAK,EAAC;gBACtD,MAAM,EAAE,IAAI,CAAC,EAAE;aAChB,EAAC,CAAC,CAAA;QAEH,IAAG,CAAC,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,CAAC;YAAE,OAAO,KAAK,CAAA;QAErD,MAAM,YAAY,CAAC,WAAW,EAAE,CAAM,UAAU,EAAA,EAAE;YAChD,IAAG,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,SAAS,GAAG,CAAC,EAAE;gBACpD,IAAG,UAAU,CAAC,QAAQ,EAAC;oBACrB,IAAI;wBACF,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;wBAChD,IAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAC;4BAC5B,qBAAc,CAAC,GAAG,CAAC,CAAA;4BACnB,OAAO,GAAG,IAAI,CAAA;yBACf;qBACF;oBAAC,OAAM,CAAC,EAAC,GAAE;iBACb;qBAAM,EAAE,oCAAoC;oBAC3C,qBAAc,CAAC,GAAG,CAAC,CAAA;oBACnB,OAAO,GAAG,IAAI,CAAA;iBACf;aACF;QACH,CAAC,CAAA,CAAC,CAAA;QAEF,OAAO,OAAO,CAAA;IAChB,CAAC;CAAA;AA7CD,4BA6CC;AAED,SAAe,YAAY,CAAC,KAAK,EAAE,QAAQ;;QAC1C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACjD,MAAM,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;SAC5C;IACF,CAAC;CAAA"}
{"version":3,"file":"intercept.js","sourceRoot":"","sources":["../../../api/network/intercept.ts"],"names":[],"mappings":"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"}
Loading…
Cancel
Save