UNPKG

umbot

Version:

Universal bot(vk, telegram, viber) or skills for Yandex.Alisa, Маруся and sber

159 lines (158 loc) 5.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.mmApp = exports.HELP_INTENT_NAME = exports.WELCOME_INTENT_NAME = exports.T_USER_APP = exports.T_SMARTAPP = exports.T_MARUSIA = exports.T_VIBER = exports.T_TELEGRAM = exports.T_VK = exports.T_ALISA = void 0; const util_1 = require("./utils/standard/util"); const EnvConfig_1 = require("./utils/EnvConfig"); exports.T_ALISA = 'alisa'; exports.T_VK = 'vk'; exports.T_TELEGRAM = 'telegram'; exports.T_VIBER = 'viber'; exports.T_MARUSIA = 'marusia'; exports.T_SMARTAPP = 'smart_app'; exports.T_USER_APP = 'user_application'; exports.WELCOME_INTENT_NAME = 'welcome'; exports.HELP_INTENT_NAME = 'help'; class mmApp { static _envVars; static _isDevMode; static userDbController; static isSaveDb = false; static appType; static config = { error_log: '/../../logs', json: '/../../json', db: { host: '', user: '', pass: '', database: '', }, isLocalStorage: false, }; static params = { viber_token: null, viber_sender: null, viber_api_version: null, telegram_token: null, vk_api_version: null, vk_confirmation_token: null, vk_token: null, marusia_token: null, yandex_token: null, y_isAuthUser: false, app_id: null, user_id: null, welcome_text: 'Текст приветствия', help_text: 'Текст помощи', intents: [ { name: exports.WELCOME_INTENT_NAME, slots: ['привет', 'здравст'], }, { name: exports.HELP_INTENT_NAME, slots: ['помощ', 'что ты умеешь'], }, ], utm_text: null, }; static commands = {}; static setDevMode(isDevMode = false) { mmApp._isDevMode = isDevMode; } static get isDevMode() { return mmApp._isDevMode; } static arrayMerge(array1, array2) { if (array2) { return [...array1, ...array2]; } return array1; } static _setTokens() { const envVars = mmApp._getEnvVars(); if (envVars) { mmApp.params = { ...mmApp.params, viber_token: envVars.VIBER_TOKEN || mmApp.params.viber_token, telegram_token: envVars.TELEGRAM_TOKEN || mmApp.params.telegram_token, vk_token: envVars.VK_TOKEN || mmApp.params.vk_token, vk_confirmation_token: envVars.VK_CONFIRMATION_TOKEN || mmApp.params.vk_confirmation_token, marusia_token: envVars.MARUSIA_TOKEN || mmApp.params.marusia_token, yandex_token: envVars.YANDEX_TOKEN || mmApp.params.yandex_token, }; } } static _getEnvVars(envPath = mmApp.config?.env) { if (mmApp._envVars) { return mmApp._envVars; } if (envPath) { mmApp._envVars = (0, EnvConfig_1.loadEnvFile)(envPath); } return mmApp._envVars; } static setConfig(config) { this.config = { ...this.config, ...config }; if (config.env) { const envVars = mmApp._getEnvVars(config.env); if (envVars) { if (this.config.db || envVars.DB_HOST || envVars.DB_NAME) { mmApp.config.db = { ...mmApp.config.db, host: (envVars.DB_HOST || mmApp.config.db?.host), user: envVars.DB_USER || mmApp.config.db?.user, pass: envVars.DB_PASSWORD || mmApp.config.db?.pass, database: (envVars.DB_NAME || mmApp.config.db?.database), }; } this._setTokens(); } } } static setParams(params) { this.params = { ...this.params, ...params }; mmApp._setTokens(); } static addCommand(commandName, slots, cb, isPattern = false) { this.commands[commandName] = { slots, isPattern, cb, }; } static removeCommand(commandName) { if (this.commands[commandName]) { delete this.commands[commandName]; } } static setIsSaveDb(isSaveDb = false) { this.isSaveDb = isSaveDb; } static saveData(dir, data, mode) { if (!(0, util_1.isDir)(dir.path)) { (0, util_1.mkdir)(dir.path); } (0, util_1.fwrite)(`${dir.path}/${dir.fileName}`, data, mode); return true; } static saveJson(fileName, data) { const dir = { path: mmApp.config.json || __dirname + '/../../json', fileName: fileName.replace(/`/g, ''), }; return this.saveData(dir, JSON.stringify(data)); } static saveLog(fileName, errorText = '') { const dir = { path: mmApp.config.error_log || __dirname + '/../../logs', fileName, }; const msg = `[${Date()}]: ${errorText}\n`; if (mmApp._isDevMode) { console.warn(msg); } return this.saveData(dir, msg, 'a'); } } exports.mmApp = mmApp;