UNPKG

7.4 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../src/PortalPlugin.js"],"names":["PortalPlugin","providers","getActiveRules","runCron","action","actions","rules","config","event","ctx","bot","activeRules","Bluebird","map","rule","log","debug","module","actionModule","runAction","routes","extra","route","actionRoutes","call","Array","isArray","push","crons","group","groupMessages","a","on","onEvent","BaseBotPlugin"],"mappings":"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","sourcesContent":["// import createKeyboard from '@lskjs/bots-base/utils/createKeyboard';\nimport BaseBotPlugin from '@lskjs/bots-plugin';\nimport Bluebird from 'bluebird';\nimport forEach from 'lodash/forEach';\n// import get from 'lodash/get';\nimport isEmpty from 'lodash/isEmpty';\n\nimport actions from './actions';\nimport extra from './extra';\nimport { getActiveRules, groupMessages, runCron } from './utils';\n\nexport default class PortalPlugin extends BaseBotPlugin {\n providers = ['telegram', 'discord'];\n getActiveRules = getActiveRules;\n runCron = runCron;\n // TODO: add i18\n // _i18 = {\n // t: (key, params = {}) => {\n // const { count = '', name = '' } = params;\n // const table = {\n // bot: {\n // likesPlugin: {\n // like: `❤️ ${count}`,\n // disslike: `💔 ${count}`,\n // },\n // portalPlugin: {\n // rules: {\n // answer: `Ответить ${name}`,\n // },\n // delay: `Братишка, не флуди`,\n // },\n // },\n // };\n // return get(table, key, key);\n // },\n // };\n getModules() {\n return {\n action: [\n import('./ActionModule'),\n {\n actions,\n },\n ],\n };\n }\n async init() {\n await super.init();\n this.rules = this.config.rules;\n }\n // TODO: Удалить только ПОСЛЕ переписывания extensions\n // createExtraKeyboard({ bot, ctx = {}, then }) {\n // const buttons = [];\n\n // Object.keys(extensions).forEach((key) => {\n // const { getButtons } = extensions[key];\n // if (!then[key] || !getButtons) return;\n // const extensionButtons = getButtons.call(this, { bot, ctx });\n // if (!Array.isArray(extensionButtons)) return;\n // buttons.push(extensionButtons);\n // });\n\n // return createKeyboard({\n // type: 'inline',\n // buttons,\n // });\n // }\n\n // async addMetaToMessage({ bot, ctx, then }) {\n // const BotsTelegramMessageModel = await this.botsModule.module('models.BotsTelegramMessageModel');\n // const message = bot.getMessage(ctx);\n // const meta = {};\n // Object.keys(extensions).forEach((key) => {\n // meta[key] = !!then[key];\n // });\n // return BotsTelegramMessageModel.findOneAndUpdate(message, { meta });\n // }\n\n // async runAction(props) {\n // return runAction.call(this, props);\n // }\n\n async onEvent({ event, ctx, bot }) {\n const activeRules = await this.getActiveRules({ ctx, bot });\n if (isEmpty(activeRules)) return null;\n return Bluebird.map(activeRules, async (rule) => {\n const { action } = rule;\n if (!action) return null;\n this.log.debug('rule:', rule);\n const actionModule = await this.module('action');\n return actionModule.runAction(action, { event, ctx, bot, ...rule });\n });\n\n // let delay = false;\n // await Bluebird.map(activeRules, async (rule) => {\n // let { then: thens } = rule;\n // if (!thens) return null;\n // if (!Array.isArray(thens)) thens = [thens];\n // if (isEmpty(thens)) return {};\n // return Bluebird.map(thens, async (then) => {\n // this.addMetaToMessage({ bot, ctx, then });\n // let chats = await canonizeChatIds.call(this, then.to);\n // const { action } = extensions.delay;\n // const isDelayed = await action.call(this, { bot, ctx, then, chats });\n\n // if (isDelayed.delay) delay = true;\n // chats = isDelayed.targetChats;\n\n // return this.getActions({ chats, ctx, bot, then });\n // });\n // });\n // if (delay) await ctx.reply(this._i18.t('bot.portalPlugin.delay'));\n }\n\n getRoutes() {\n const routes = [];\n forEach(extra, ({ routes: route }) => {\n const actionRoutes = route && route.call(this);\n if (!Array.isArray(actionRoutes)) return;\n routes.push(...actionRoutes);\n });\n return routes;\n }\n\n runBot(bot) {\n this.crons = this.runCron({ bot });\n const group = this.config.group ? groupMessages : (a) => a;\n\n bot.on(\n 'message',\n group((ctx) => this.onEvent({ ctx, bot, event: 'message' })),\n );\n bot.on(\n 'channel_post',\n group((ctx) => this.onEvent({ ctx, bot, event: 'channel_post' })),\n );\n }\n}\n"],"file":"PortalPlugin.js"}
\No newline at end of file