umbot
Version:
Universal bot(vk, telegram, viber) or skills for Yandex.Alisa, Маруся and sber
159 lines (158 loc) • 5.3 kB
JavaScript
;
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;