UNPKG

vk-chat-bot

Version:

Package for easy creation of chat bots for VK communities (uses Callback API).

3 lines (2 loc) 11.7 kB
"use strict";var __importDefault=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(exports,"__esModule",{value:!0});const chalk_1=__importDefault(require("chalk")),log_1=require("./log");class Stats{constructor(){this.rx=0,this.tx=0,this.eventCounters={message_new:0,message_reply:0,message_edit:0,message_typing_state:0,message_allow:0,message_deny:0,start:0,service_action:0,no_match:0,handler_error:0},this.previous="",log_1.log().i("Stats initialized").from("stat").now(),setInterval(()=>{this.print()},1e4)}sent(){this.tx+=1}event(t){this.rx+=1,this.eventCounters[t]+=1;["start","service_action","no_match","handler_error"].includes(t)&&(this.rx-=1)}getEventCount(t){return this.eventCounters[t].toString()}formatDuration(t){const e=t%60,n=(t-e)/60%60,s=t=>(t>9?"":"0")+t.toString();return`${s((t-e-60*n)/3600)}:${s(n)}:${s(e)}`}print(){const t=chalk_1.default.underline.green(this.rx.toString()),e=chalk_1.default.underline.cyan(this.tx.toString()),n=chalk_1.default.green(this.getEventCount("message_new")),s=chalk_1.default.green(this.getEventCount("message_allow")),a=chalk_1.default.red(this.getEventCount("message_deny")),r=chalk_1.default.green(this.getEventCount("message_edit")),i=chalk_1.default.cyan(this.getEventCount("message_reply")),o=chalk_1.default.green(this.getEventCount("message_typing_state")),l=chalk_1.default.green(this.getEventCount("start")),u=chalk_1.default.green(this.getEventCount("service_action")),_=chalk_1.default.bold.magenta(this.getEventCount("no_match")),h=chalk_1.default.bold.magenta(this.getEventCount("handler_error")),g=this.formatDuration(process.uptime());let c=`rx:${t} tx:${e} | allow/deny:${s}/${a} typing:${o} new:${n}(start:${l} action:${u}) edit:${r} | reply:${i} | no_match:${_} err:${h}`;c!==this.previous&&(this.previous=c,c=`[${g}] ${c}`,log_1.log().i(c).from("stat").now())}}exports.default=Stats; //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImV4dHJhL3N0YXRzLmpzIiwiZXh0cmEvc3RhdHMudHMiXSwibmFtZXMiOlsiX19pbXBvcnREZWZhdWx0IiwidGhpcyIsIm1vZCIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJjaGFsa18xIiwicmVxdWlyZSIsImxvZ18xIiwiU3RhdHMiLCJbb2JqZWN0IE9iamVjdF0iLCJyeCIsInR4IiwiZXZlbnRDb3VudGVycyIsIm1lc3NhZ2VfbmV3IiwibWVzc2FnZV9yZXBseSIsIm1lc3NhZ2VfZWRpdCIsIm1lc3NhZ2VfdHlwaW5nX3N0YXRlIiwibWVzc2FnZV9hbGxvdyIsIm1lc3NhZ2VfZGVueSIsInN0YXJ0Iiwic2VydmljZV9hY3Rpb24iLCJub19tYXRjaCIsImhhbmRsZXJfZXJyb3IiLCJwcmV2aW91cyIsImxvZyIsImkiLCJmcm9tIiwibm93Iiwic2V0SW50ZXJ2YWwiLCJwcmludCIsImV2ZW50TmFtZSIsImluY2x1ZGVzIiwidG9TdHJpbmciLCJ0b3RhbFNlY29uZHMiLCJzIiwibSIsInBhZCIsIm4iLCJ1bmRlcmxpbmUiLCJncmVlbiIsImN5YW4iLCJtbiIsImdldEV2ZW50Q291bnQiLCJtYSIsIm1kIiwicmVkIiwibWUiLCJtciIsIm10cyIsInN0Iiwic2EiLCJubSIsImJvbGQiLCJtYWdlbnRhIiwiaGUiLCJ1cCIsImZvcm1hdER1cmF0aW9uIiwicHJvY2VzcyIsInVwdGltZSIsIm1lc3NhZ2UiXSwibWFwcGluZ3MiOiJBQUFBLGFBQ0EsSUFBSUEsZ0JBQW1CQyxNQUFRQSxLQUFLRCxpQkFBb0IsU0FBVUUsR0FDOUQsT0FBUUEsR0FBT0EsRUFBSUMsV0FBY0QsRUFBTSxDQUFFRSxRQUFXRixJQUV4REcsT0FBT0MsZUFBZUMsUUFBUyxhQUFjLENBQUVDLE9BQU8sSUNKdEQsTUFBQUMsUUFBQVQsZ0JBQUFVLFFBQUEsVUFDQUMsTUFBQUQsUUFBQSxTQXNDQSxNQUFxQkUsTUF1Q2pCQyxjQW5DT1osS0FBQWEsR0FBSyxFQUtMYixLQUFBYyxHQUFLLEVBTUxkLEtBQUFlLGNBQTJDLENBQzlDQyxZQUFhLEVBQ2JDLGNBQWUsRUFDZkMsYUFBYyxFQUNkQyxxQkFBc0IsRUFDdEJDLGNBQWUsRUFDZkMsYUFBYyxFQUVkQyxNQUFPLEVBQ1BDLGVBQWdCLEVBRWhCQyxTQUFVLEVBQ1ZDLGNBQWUsR0FPWnpCLEtBQUEwQixTQUFXLEdBTWRoQixNQUFBaUIsTUFDS0MsRUFBRSxxQkFDRkMsS0FBSyxRQUNMQyxNQUVMQyxZQUFZLEtBQ1IvQixLQUFLZ0MsU0FDTixLQU1BcEIsT0FDSFosS0FBS2MsSUFBTSxFQU1SRixNQUFNcUIsR0FDVGpDLEtBQUthLElBQU0sRUFDWGIsS0FBS2UsY0FBY2tCLElBQWMsRUFFVixDQUNuQixRQUNBLGlCQUNBLFdBQ0EsaUJBRWVDLFNBQVNELEtBQ3hCakMsS0FBS2EsSUFBTSxHQU9YRCxjQUFjcUIsR0FDbEIsT0FBT2pDLEtBQUtlLGNBQWNrQixHQUFXRSxXQU1qQ3ZCLGVBQWV3QixHQUNuQixNQUFNQyxFQUFJRCxFQUFlLEdBQ25CRSxHQUFNRixFQUFlQyxHQUFLLEdBQU0sR0FHaENFLEVBQU9DLElBQXdCQSxFQUFJLEVBQUksR0FBSyxLQUFPQSxFQUFFTCxXQUUzRCxNQUFPLEdBQUdJLEdBSkNILEVBQWVDLEVBQVMsR0FBSkMsR0FBVyxTQUl0QkMsRUFBSUQsTUFBTUMsRUFBSUYsS0FNOUJ6QixRQUNKLE1BQU1DLEVBQUtMLFFBQUFMLFFBQU1zQyxVQUFVQyxNQUFNMUMsS0FBS2EsR0FBR3NCLFlBQ25DckIsRUFBS04sUUFBQUwsUUFBTXNDLFVBQVVFLEtBQUszQyxLQUFLYyxHQUFHcUIsWUFFbENTLEVBQUtwQyxRQUFBTCxRQUFNdUMsTUFBTTFDLEtBQUs2QyxjQUFjLGdCQUNwQ0MsRUFBS3RDLFFBQUFMLFFBQU11QyxNQUFNMUMsS0FBSzZDLGNBQWMsa0JBQ3BDRSxFQUFLdkMsUUFBQUwsUUFBTTZDLElBQUloRCxLQUFLNkMsY0FBYyxpQkFDbENJLEVBQUt6QyxRQUFBTCxRQUFNdUMsTUFBTTFDLEtBQUs2QyxjQUFjLGlCQUNwQ0ssRUFBSzFDLFFBQUFMLFFBQU13QyxLQUFLM0MsS0FBSzZDLGNBQWMsa0JBQ25DTSxFQUFNM0MsUUFBQUwsUUFBTXVDLE1BQU0xQyxLQUFLNkMsY0FBYyx5QkFFckNPLEVBQUs1QyxRQUFBTCxRQUFNdUMsTUFBTTFDLEtBQUs2QyxjQUFjLFVBQ3BDUSxFQUFLN0MsUUFBQUwsUUFBTXVDLE1BQU0xQyxLQUFLNkMsY0FBYyxtQkFFcENTLEVBQUs5QyxRQUFBTCxRQUFNb0QsS0FBS0MsUUFBUXhELEtBQUs2QyxjQUFjLGFBQzNDWSxFQUFLakQsUUFBQUwsUUFBTW9ELEtBQUtDLFFBQVF4RCxLQUFLNkMsY0FBYyxrQkFFM0NhLEVBQUsxRCxLQUFLMkQsZUFBZUMsUUFBUUMsVUFFdkMsSUFBSUMsRUFBVSxNQUFNakQsUUFBU0Msa0JBQW1CZ0MsS0FBTUMsWUFBYUksU0FBV1AsV0FBWVEsWUFBYUMsV0FBWUosYUFBY0MsZ0JBQWlCSSxTQUFVRyxJQUV4SkssSUFBWTlELEtBQUswQixXQUdyQjFCLEtBQUswQixTQUFXb0MsRUFFaEJBLEVBQVUsSUFBSUosTUFBT0ksSUFFckJwRCxNQUFBaUIsTUFDS0MsRUFBRWtDLEdBQ0ZqQyxLQUFLLFFBQ0xDLFFBaklieEIsUUFBQUgsUUFBQVEiLCJmaWxlIjoiZXh0cmEvc3RhdHMuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsImltcG9ydCBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgeyBsb2cgfSBmcm9tICcuL2xvZyc7XG5cbi8qKlxuICogU3RhdHMgc3RvcmVzIGFuZCBwcmludHMgc3RhdGlzdGljcy5cbiAqXG4gKiBUaGUgYm90IGxvZ3Mgc3RhdGlzdGljcyBlYWNoICoqfjEwcyoqIChpZiB0aGV5IGNoYW5nZWQpOlxuICpcbiAqICBgYGBjb25zb2xlXG4gKiAgIHN0YXQgaW5mbyBbMTI6MzQ6NTZdIHJ4OjMyIHR4OjE2IHwgYWxsb3cvZGVueTo1LzAgdHlwaW5nOjMgbmV3Ojcoc3RhcnQ6MiBhY3Rpb246MSkgZWRpdDoxIHwgcmVwbHk6MTYgfCBub19tYXRjaDowIGVycjowXG4gKiAgYGBgXG4gKlxuICogIyMjIEdlbmVyYWwgc3RhdGlzdGljc1xuICpcbiAqIFN0YXRpc3RpY3MgfCBEZXNjcmlwdGlvblxuICogLS0tIHwgLS0tXG4gKiBgWy4uLl1gIHwgUHJvY2VzcyB1cHRpbWUgKGBoaDptbTpzc2ApXG4gKiBgcnhgIHwgQW1vdW50IG9mIHJlY2VpdmVkIGV2ZW50cyBmcm9tIENhbGxiYWNrIEFQSVxuICogYHR4YCB8IEFtb3VudCBvZiBzZW50IG1lc3NhZ2VzXG4gKlxuICogIyMjIENhbGxiYWNrIEFQSSBldmVudCBzdGF0aXN0aWNzXG4gKiBTdGF0aXN0aWNzIHwgRGVzY3JpcHRpb25cbiAqIC0tLSB8IC0tLVxuICogYG5ld2AgfCBgbWVzc2FnZV9uZXdgIGV2ZW50c1xuICogYGFsbG93YCB8IGBtZXNzYWdlX2FsbG93YCBldmVudHNcbiAqIGBkZW55YCB8IGBtZXNzYWdlX2RlbnlgIGV2ZW50c1xuICogYGVkaXRgIHwgYG1lc3NhZ2VfZWRpdGAgZXZlbnRzXG4gKiBgcmVwbHlgIHwgYG1lc3NhZ2VfcmVwbHlgIGV2ZW50c1xuICogYHR5cGluZ2AgfCBgbWVzc2FnZV90eXBpbmdfc3RhdGVgIGV2ZW50c1xuICpcbiAqICMjIyBPdGhlciBldmVudCBzdGF0aXN0aWNzXG4gKiBTdGF0aXN0aWNzIHwgRGVzY3JpcHRpb25cbiAqIC0tLSB8IC0tLVxuICogYHN0YXJ0YCB8IGBzdGFydGAgZXZlbnRzXG4gKiBgYWN0aW9uYCB8IGBzZXJ2aWNlX2FjdGlvbmAgZXZlbnRzXG4gKiBgbm9fbWF0Y2hgIHwgYG5vX21hdGNoYCBldmVudHNcbiAqIGBlcnJgIHwgYGhhbmRsZXJfZXJyb3JgIGV2ZW50c1xuICpcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3RhdHMge1xuICAgIC8qKlxuICAgICAqIENvdW50IG9mIHJlcXVlc3RzIGZyb20gdGhlIENhbGxiYWNrIEFQSS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcnggPSAwO1xuXG4gICAgLyoqXG4gICAgICogQ291bnQgb2YgbWVzc2FnZXMgc2VudC5cbiAgICAgKi9cbiAgICBwdWJsaWMgdHggPSAwO1xuXG4gICAgLyoqXG4gICAgICogQ291bnQgb2YgdmFyaW91cyBldmVudHMuXG4gICAgICovXG4gICAgLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2NhbWVsY2FzZSAqL1xuICAgIHB1YmxpYyBldmVudENvdW50ZXJzOiB7IFtrZXk6IHN0cmluZ106IG51bWJlciB9ID0ge1xuICAgICAgICBtZXNzYWdlX25ldzogMCxcbiAgICAgICAgbWVzc2FnZV9yZXBseTogMCxcbiAgICAgICAgbWVzc2FnZV9lZGl0OiAwLFxuICAgICAgICBtZXNzYWdlX3R5cGluZ19zdGF0ZTogMCxcbiAgICAgICAgbWVzc2FnZV9hbGxvdzogMCxcbiAgICAgICAgbWVzc2FnZV9kZW55OiAwLFxuXG4gICAgICAgIHN0YXJ0OiAwLFxuICAgICAgICBzZXJ2aWNlX2FjdGlvbjogMCxcblxuICAgICAgICBub19tYXRjaDogMCxcbiAgICAgICAgaGFuZGxlcl9lcnJvcjogMCxcbiAgICB9O1xuICAgIC8qIGVzbGludC1lbmFibGUgQHR5cGVzY3JpcHQtZXNsaW50L2NhbWVsY2FzZSAqL1xuXG4gICAgLyoqXG4gICAgICogUHJldmlvdXMgc3RhdHMgbG9nIG1lc3NhZ2UsIHdpdGhvdXQgdGltZVxuICAgICAqL1xuICAgIHB1YmxpYyBwcmV2aW91cyA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIG5ldyBbW1N0YXRzXV0uXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBsb2coKVxuICAgICAgICAgICAgLmkoJ1N0YXRzIGluaXRpYWxpemVkJylcbiAgICAgICAgICAgIC5mcm9tKCdzdGF0JylcbiAgICAgICAgICAgIC5ub3coKTtcblxuICAgICAgICBzZXRJbnRlcnZhbCgoKTogdm9pZCA9PiB7XG4gICAgICAgICAgICB0aGlzLnByaW50KCk7XG4gICAgICAgIH0sIDEwMDAwKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGlzIHVzZWQgdG8gdGVsbCBgU3RhdHNgIHRoYXQgYSBtZXNzYWdlIHdhcyBzZW50LlxuICAgICAqL1xuICAgIHB1YmxpYyBzZW50KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnR4ICs9IDE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBpcyB1c2VkIHRvIHRlbGwgYFN0YXRzYCB0aGF0IGFuIGV2ZW50IHdhcyBlbWl0dGVkLlxuICAgICAqL1xuICAgIHB1YmxpYyBldmVudChldmVudE5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnJ4ICs9IDE7XG4gICAgICAgIHRoaXMuZXZlbnRDb3VudGVyc1tldmVudE5hbWVdICs9IDE7XG5cbiAgICAgICAgY29uc3QgaW50ZXJuYWxFdmVudHMgPSBbXG4gICAgICAgICAgICAnc3RhcnQnLFxuICAgICAgICAgICAgJ3NlcnZpY2VfYWN0aW9uJyxcbiAgICAgICAgICAgICdub19tYXRjaCcsXG4gICAgICAgICAgICAnaGFuZGxlcl9lcnJvcicsXG4gICAgICAgIF07XG4gICAgICAgIGlmIChpbnRlcm5hbEV2ZW50cy5pbmNsdWRlcyhldmVudE5hbWUpKSB7XG4gICAgICAgICAgICB0aGlzLnJ4IC09IDE7IC8vIE5vdCBmcm9tIENhbGxiYWNrIEFQSVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBob3cgbXVjaCBldmVudHMgb2YgdGhpcyB0eXBlIHdlcmUgZW1pdHRlZC5cbiAgICAgKi9cbiAgICBwcml2YXRlIGdldEV2ZW50Q291bnQoZXZlbnROYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5ldmVudENvdW50ZXJzW2V2ZW50TmFtZV0udG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGb3JtYXRzIHNlY29uZHMgaW50byBgaGg6bW06c3NgIChgaGhgIG1heSB1c2UgbW9yZSB0aGFuIHR3byBkaWdpdHMgZm9yIHZlcnkgbGFyZ2UgZHVyYXRpb25zKS5cbiAgICAgKi9cbiAgICBwcml2YXRlIGZvcm1hdER1cmF0aW9uKHRvdGFsU2Vjb25kczogbnVtYmVyKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgcyA9IHRvdGFsU2Vjb25kcyAlIDYwO1xuICAgICAgICBjb25zdCBtID0gKCh0b3RhbFNlY29uZHMgLSBzKSAvIDYwKSAlIDYwO1xuICAgICAgICBjb25zdCBoID0gKHRvdGFsU2Vjb25kcyAtIHMgLSAobSAqIDYwKSkgLyAzNjAwO1xuXG4gICAgICAgIGNvbnN0IHBhZCA9IChuOiBudW1iZXIpOiBzdHJpbmcgPT4gKChuID4gOSA/ICcnIDogJzAnKSArIG4udG9TdHJpbmcoKSk7XG5cbiAgICAgICAgcmV0dXJuIGAke3BhZChoKX06JHtwYWQobSl9OiR7cGFkKHMpfWA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJpbnRzIHRoZSBzdGF0aXN0aWNzIGlmIHRoZXkgY2hhbmdlZC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHByaW50KCk6IHZvaWQge1xuICAgICAgICBjb25zdCByeCA9IGNoYWxrLnVuZGVybGluZS5ncmVlbih0aGlzLnJ4LnRvU3RyaW5nKCkpO1xuICAgICAgICBjb25zdCB0eCA9IGNoYWxrLnVuZGVybGluZS5jeWFuKHRoaXMudHgudG9TdHJpbmcoKSk7XG5cbiAgICAgICAgY29uc3QgbW4gPSBjaGFsay5ncmVlbih0aGlzLmdldEV2ZW50Q291bnQoJ21lc3NhZ2VfbmV3JykpO1xuICAgICAgICBjb25zdCBtYSA9IGNoYWxrLmdyZWVuKHRoaXMuZ2V0RXZlbnRDb3VudCgnbWVzc2FnZV9hbGxvdycpKTtcbiAgICAgICAgY29uc3QgbWQgPSBjaGFsay5yZWQodGhpcy5nZXRFdmVudENvdW50KCdtZXNzYWdlX2RlbnknKSk7XG4gICAgICAgIGNvbnN0IG1lID0gY2hhbGsuZ3JlZW4odGhpcy5nZXRFdmVudENvdW50KCdtZXNzYWdlX2VkaXQnKSk7XG4gICAgICAgIGNvbnN0IG1yID0gY2hhbGsuY3lhbih0aGlzLmdldEV2ZW50Q291bnQoJ21lc3NhZ2VfcmVwbHknKSk7XG4gICAgICAgIGNvbnN0IG10cyA9IGNoYWxrLmdyZWVuKHRoaXMuZ2V0RXZlbnRDb3VudCgnbWVzc2FnZV90eXBpbmdfc3RhdGUnKSk7XG5cbiAgICAgICAgY29uc3Qgc3QgPSBjaGFsay5ncmVlbih0aGlzLmdldEV2ZW50Q291bnQoJ3N0YXJ0JykpO1xuICAgICAgICBjb25zdCBzYSA9IGNoYWxrLmdyZWVuKHRoaXMuZ2V0RXZlbnRDb3VudCgnc2VydmljZV9hY3Rpb24nKSk7XG5cbiAgICAgICAgY29uc3Qgbm0gPSBjaGFsay5ib2xkLm1hZ2VudGEodGhpcy5nZXRFdmVudENvdW50KCdub19tYXRjaCcpKTtcbiAgICAgICAgY29uc3QgaGUgPSBjaGFsay5ib2xkLm1hZ2VudGEodGhpcy5nZXRFdmVudENvdW50KCdoYW5kbGVyX2Vycm9yJykpO1xuXG4gICAgICAgIGNvbnN0IHVwID0gdGhpcy5mb3JtYXREdXJhdGlvbihwcm9jZXNzLnVwdGltZSgpKTtcbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBtYXgtbGluZS1sZW5ndGhcbiAgICAgICAgbGV0IG1lc3NhZ2UgPSBgcng6JHtyeH0gdHg6JHt0eH0gfCBhbGxvdy9kZW55OiR7bWF9LyR7bWR9IHR5cGluZzoke210c30gbmV3OiR7bW59KHN0YXJ0OiR7c3R9IGFjdGlvbjoke3NhfSkgZWRpdDoke21lfSB8IHJlcGx5OiR7bXJ9IHwgbm9fbWF0Y2g6JHtubX0gZXJyOiR7aGV9YDtcblxuICAgICAgICBpZiAobWVzc2FnZSA9PT0gdGhpcy5wcmV2aW91cykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucHJldmlvdXMgPSBtZXNzYWdlO1xuXG4gICAgICAgIG1lc3NhZ2UgPSBgWyR7dXB9XSAke21lc3NhZ2V9YDtcblxuICAgICAgICBsb2coKVxuICAgICAgICAgICAgLmkobWVzc2FnZSlcbiAgICAgICAgICAgIC5mcm9tKCdzdGF0JylcbiAgICAgICAgICAgIC5ub3coKTtcbiAgICB9XG59XG4iXX0=