telegram-botbuilder 1.3.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"bot-service.d.ts","sourceRoot":"","sources":["../src/bot-service.ts"],"names":[],"mappings":"AAAA,OAAO,WAAqC,MAAO,uBAAuB,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,EAAmD,MAAM,cAAc,CAAC;AAC/F,OAAO,YAAY,MAAM,QAAQ,CAAC;AAclC,KAAK,oBAAoB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,aAAa,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAE/H,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB;AASD,qBAAa,UAAU;IACd,IAAI,EAAE,WAAW,CAAC;IACzB,OAAO,CAAC,OAAO,CAAY;IACpB,YAAY,EAAE,YAAY,CAAC;IAClC,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,QAAQ,CAAmB;IAE5B,GAAG,CAAC,IAAI,EAAE,oBAAoB;IAGrC,OAAO,CAAC,KAAK;YAKC,MAAM;IAgBpB,OAAO,CAAC,QAAQ;gBAIH,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,kBAAkB;IAoEpF,OAAO,CAAC,UAAU;IAGlB,OAAO,CAAC,UAAU;IAGlB,OAAO,CAAC,YAAY;YAGN,eAAe;IAchB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IAsC3C,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAI/C,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAG7C;AAED,KAAK,kBAAkB,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;AAE1H,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAE/C;AACD,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,kBAAkB,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,CAE9F;AACD,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,kBAAkB,GAAG,MAAM,CAoB3E"}
1
+ {"version":3,"file":"bot-service.d.ts","sourceRoot":"","sources":["../src/bot-service.ts"],"names":[],"mappings":"AAAA,OAAO,WAAqC,MAAO,uBAAuB,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,EAAmD,MAAM,cAAc,CAAC;AAC/F,OAAO,YAAY,MAAM,QAAQ,CAAC;AAclC,KAAK,oBAAoB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,aAAa,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAE/H,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB;AASD,qBAAa,UAAU;IACd,IAAI,EAAE,WAAW,CAAC;IACzB,OAAO,CAAC,OAAO,CAAY;IACpB,YAAY,EAAE,YAAY,CAAC;IAClC,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,QAAQ,CAAmB;IAE5B,GAAG,CAAC,IAAI,EAAE,oBAAoB;IAGrC,OAAO,CAAC,KAAK;YAKC,MAAM;IAgBpB,OAAO,CAAC,QAAQ;gBAIH,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,kBAAkB;IA8EpF,OAAO,CAAC,UAAU;IAGlB,OAAO,CAAC,UAAU;IAGlB,OAAO,CAAC,YAAY;YAGN,eAAe;IAchB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IAqC3C,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAI/C,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAG7C;AAED,KAAK,kBAAkB,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;AAE1H,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAE/C;AACD,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,kBAAkB,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,CAE9F;AACD,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,kBAAkB,GAAG,MAAM,CAoB3E"}
@@ -22,51 +22,6 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  __setModuleDefault(result, mod);
23
23
  return result;
24
24
  };
25
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
- return new (P || (P = Promise))(function (resolve, reject) {
28
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
- step((generator = generator.apply(thisArg, _arguments || [])).next());
32
- });
33
- };
34
- var __generator = (this && this.__generator) || function (thisArg, body) {
35
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
36
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
37
- function verb(n) { return function (v) { return step([n, v]); }; }
38
- function step(op) {
39
- if (f) throw new TypeError("Generator is already executing.");
40
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
41
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
42
- if (y = 0, t) op = [op[0] & 2, t.value];
43
- switch (op[0]) {
44
- case 0: case 1: t = op; break;
45
- case 4: _.label++; return { value: op[1], done: false };
46
- case 5: _.label++; y = op[1]; op = [0]; continue;
47
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
48
- default:
49
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
50
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
51
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
52
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
53
- if (t[2]) _.ops.pop();
54
- _.trys.pop(); continue;
55
- }
56
- op = body.call(thisArg, _);
57
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
58
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
59
- }
60
- };
61
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
62
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
63
- if (ar || !(i in from)) {
64
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
65
- ar[i] = from[i];
66
- }
67
- }
68
- return to.concat(ar || Array.prototype.slice.call(from));
69
- };
70
25
  var __importDefault = (this && this.__importDefault) || function (mod) {
71
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
72
27
  };
@@ -75,12 +30,12 @@ exports.BotBuilder = void 0;
75
30
  exports.ChangeDialog = ChangeDialog;
76
31
  exports.CallbackAction = CallbackAction;
77
32
  exports.WaitForData = WaitForData;
78
- var node_telegram_bot_api_1 = __importDefault(require("node-telegram-bot-api"));
79
- var events_1 = __importDefault(require("events"));
80
- var fs_1 = require("fs");
81
- var deepcopy = __importStar(require("rfdc"));
33
+ const node_telegram_bot_api_1 = __importDefault(require("node-telegram-bot-api"));
34
+ const events_1 = __importDefault(require("events"));
35
+ const fs_1 = require("fs");
36
+ const deepcopy = __importStar(require("rfdc"));
82
37
  var hash = require('object-hash');
83
- var bypass_str = 'ETELEGRAM: 400 Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message';
38
+ const bypass_str = 'ETELEGRAM: 400 Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message';
84
39
  function _typed(object) {
85
40
  if ('text' in object && 'action' in object)
86
41
  return 'Button';
@@ -90,420 +45,217 @@ function _typed(object) {
90
45
  return 'Schema';
91
46
  return 'undefined';
92
47
  }
93
- var BotBuilder = /** @class */ (function () {
94
- function BotBuilder(schema, token, options) {
95
- var _this = this;
96
- this._middleware = [];
97
- this._mwbreak = {};
48
+ class BotBuilder {
49
+ _bot;
50
+ _schema;
51
+ ActionSystem;
52
+ _userdialogs;
53
+ _middleware = [];
54
+ _mwbreak = {};
55
+ use(func) {
56
+ this._middleware.push(func);
57
+ }
58
+ _mwba(desc) {
59
+ return new Promise(r => {
60
+ this.ActionSystem.once(`mwb_${desc}`, r);
61
+ });
62
+ }
63
+ async _runmw(chat, msg) {
64
+ let desc = `${chat}_${msg.message_id || msg.id}`;
65
+ let mwb = this._mwbreak[desc];
66
+ if (typeof mwb === 'boolean')
67
+ return mwb;
68
+ if (mwb === null)
69
+ return await this._mwba(desc);
70
+ this._mwbreak[desc] = null;
71
+ let res = false;
72
+ for (let mw of this._middleware) {
73
+ res = res || await mw(chat, msg);
74
+ }
75
+ this._mwbreak[desc] = res;
76
+ this.ActionSystem.emit(`mwb_${desc}`, res);
77
+ return res;
78
+ }
79
+ _hashbtn(dia, btn) {
80
+ return hash([dia.id, { a: btn.action, b: btn.text, c: btn.url }]);
81
+ }
82
+ constructor(schema, token, options) {
98
83
  this._bot = new node_telegram_bot_api_1.default(token, options);
99
84
  this._schema = schema;
100
85
  this._schema.buttons = [];
101
86
  this.ActionSystem = new events_1.default();
102
87
  this._userdialogs = {};
103
- this._bot.onText(/.+/g, function (msg) { return __awaiter(_this, void 0, void 0, function () {
104
- var chat;
105
- return __generator(this, function (_a) {
106
- switch (_a.label) {
107
- case 0:
108
- if (!this._userdialogs[msg.chat.id])
109
- this._userdialogs[msg.chat.id] = { dialog: this._schema.start, lastid: -1, waiter: { statewait: false, descriptor: '' } };
110
- return [4 /*yield*/, this._runmw(msg.chat.id, msg)];
111
- case 1:
112
- if (_a.sent())
113
- return [2 /*return*/];
114
- chat = msg.chat.id;
115
- if (this._userdialogs[chat].waiter.statewait) {
116
- this._userdialogs[chat].waiter.statewait = false;
117
- this._bot.deleteMessage(chat, msg.message_id).catch(function () { return undefined; });
118
- this.ActionSystem.emit(this._userdialogs[chat].waiter.descriptor, chat, msg.text);
119
- }
120
- return [2 /*return*/];
88
+ // buttons first pass | fp disable var | fp for funcs | TODO
89
+ for (let fp_di = 0; fp_di < this._schema.content.length; fp_di++) {
90
+ let fp_db = this._schema.content[fp_di].buttons;
91
+ if (!Array.isArray(fp_db))
92
+ continue;
93
+ for (let fp_by = 0; fp_db.length; fp_by++) {
94
+ for (let fp_bx = 0; fp_bx < fp_db[fp_by].length; fp_by++) {
95
+ let fp_b = fp_db[fp_by][fp_bx];
96
+ fp_b._callback = this._hashbtn(this._schema.content[fp_di], fp_b);
97
+ this._schema.buttons.push(fp_b);
121
98
  }
122
- });
123
- }); });
124
- this._bot.on('callback_query', function (query) { return __awaiter(_this, void 0, void 0, function () {
125
- return __generator(this, function (_a) {
126
- switch (_a.label) {
127
- case 0: return [4 /*yield*/, this._runmw(query.message.chat.id, query)];
128
- case 1:
129
- if (_a.sent())
130
- return [2 /*return*/];
131
- if (!this._userdialogs[query.message.chat.id])
132
- this._userdialogs[query.message.chat.id] = { dialog: this._schema.start, lastid: -1, waiter: { statewait: false, descriptor: '' } };
133
- this._activateButton(query.message.chat.id, query.data);
134
- return [2 /*return*/];
135
- }
136
- });
137
- }); });
138
- this._bot.on('document', function (msg) { return __awaiter(_this, void 0, void 0, function () {
139
- var chat;
140
- var _this = this;
141
- return __generator(this, function (_a) {
142
- switch (_a.label) {
143
- case 0:
144
- if (!this._userdialogs[msg.chat.id])
145
- this._userdialogs[msg.chat.id] = { dialog: this._schema.start, lastid: -1, waiter: { statewait: false, descriptor: '' } };
146
- return [4 /*yield*/, this._runmw(msg.chat.id, msg)];
147
- case 1:
148
- if (_a.sent())
149
- return [2 /*return*/];
150
- if (!msg.document)
151
- return [2 /*return*/];
152
- chat = msg.chat.id;
153
- if (!this._userdialogs[chat].waiter.statewait)
154
- return [2 /*return*/];
155
- this._bot.downloadFile(msg.document.file_id, './').then(function (x) {
156
- _this._userdialogs[chat].waiter.statewait = false;
157
- _this._bot.deleteMessage(chat, msg.message_id).catch(function () { return undefined; });
158
- var content = (0, fs_1.readFileSync)(x, 'utf8');
159
- (0, fs_1.rmSync)(x);
160
- _this.ActionSystem.emit(_this._userdialogs[chat].waiter.descriptor, chat, content);
161
- });
162
- return [2 /*return*/];
163
- }
164
- });
165
- }); });
166
- this._bot.onText(/\/start/, function (msg) { return __awaiter(_this, void 0, void 0, function () {
167
- return __generator(this, function (_a) {
168
- switch (_a.label) {
169
- case 0: return [4 /*yield*/, this._runmw(msg.chat.id, msg)];
170
- case 1:
171
- if (_a.sent())
172
- return [2 /*return*/];
173
- this._userdialogs[msg.chat.id] = { dialog: this._schema.start, lastid: -1, waiter: { statewait: false, descriptor: '' } };
174
- this._bot.deleteMessage(msg.chat.id, msg.message_id).catch(function () { return undefined; });
175
- this.ChangeDialog(msg.chat.id, this._schema.start);
176
- return [2 /*return*/];
177
- }
178
- });
179
- }); });
180
- var _loop_1 = function (cmd) {
181
- this_1._bot.onText(new RegExp("\\/".concat(cmd.text, "(?:\\s+(.*))?$")), function (msg, match) { return __awaiter(_this, void 0, void 0, function () {
182
- var chat, _i, _a, act;
183
- var _b, _c;
184
- return __generator(this, function (_d) {
185
- switch (_d.label) {
186
- case 0:
187
- if (!this._userdialogs[msg.chat.id])
188
- this._userdialogs[msg.chat.id] = { dialog: this._schema.start, lastid: -1, waiter: { statewait: false, descriptor: '' } };
189
- return [4 /*yield*/, this._runmw(msg.chat.id, msg)];
190
- case 1:
191
- if (_d.sent())
192
- return [2 /*return*/];
193
- chat = msg.chat.id;
194
- if (Array.isArray(cmd === null || cmd === void 0 ? void 0 : cmd.action)) {
195
- for (_i = 0, _a = cmd === null || cmd === void 0 ? void 0 : cmd.action; _i < _a.length; _i++) {
196
- act = _a[_i];
197
- act(chat, this, (_b = msg.text) === null || _b === void 0 ? void 0 : _b.split(' ').pop());
198
- }
199
- }
200
- else if (cmd === null || cmd === void 0 ? void 0 : cmd.action) {
201
- (cmd === null || cmd === void 0 ? void 0 : cmd.action)(chat, this, (_c = msg.text) === null || _c === void 0 ? void 0 : _c.split(' ').pop());
202
- }
203
- return [2 /*return*/];
204
- }
205
- });
206
- }); });
207
- };
208
- var this_1 = this;
209
- for (var _i = 0, _a = this._schema.commands; _i < _a.length; _i++) {
210
- var cmd = _a[_i];
211
- _loop_1(cmd);
99
+ }
212
100
  }
213
- }
214
- BotBuilder.prototype.use = function (func) {
215
- this._middleware.push(func);
216
- };
217
- BotBuilder.prototype._mwba = function (desc) {
218
- var _this = this;
219
- return new Promise(function (r) {
220
- _this.ActionSystem.once("mwb_".concat(desc), r);
221
- });
222
- };
223
- BotBuilder.prototype._runmw = function (chat, msg) {
224
- return __awaiter(this, void 0, void 0, function () {
225
- var desc, mwb, res, _i, _a, mw, _b;
226
- return __generator(this, function (_c) {
227
- switch (_c.label) {
228
- case 0:
229
- desc = "".concat(chat, "_").concat(msg.message_id || msg.id);
230
- mwb = this._mwbreak[desc];
231
- if (typeof mwb === 'boolean')
232
- return [2 /*return*/, mwb];
233
- if (!(mwb === null)) return [3 /*break*/, 2];
234
- return [4 /*yield*/, this._mwba(desc)];
235
- case 1: return [2 /*return*/, _c.sent()];
236
- case 2:
237
- this._mwbreak[desc] = null;
238
- res = false;
239
- _i = 0, _a = this._middleware;
240
- _c.label = 3;
241
- case 3:
242
- if (!(_i < _a.length)) return [3 /*break*/, 7];
243
- mw = _a[_i];
244
- _b = res;
245
- if (_b) return [3 /*break*/, 5];
246
- return [4 /*yield*/, mw(chat, msg)];
247
- case 4:
248
- _b = (_c.sent());
249
- _c.label = 5;
250
- case 5:
251
- res = _b;
252
- _c.label = 6;
253
- case 6:
254
- _i++;
255
- return [3 /*break*/, 3];
256
- case 7:
257
- this._mwbreak[desc] = res;
258
- this.ActionSystem.emit("mwb_".concat(desc), res);
259
- return [2 /*return*/, res];
101
+ this._bot.onText(/.+/gms, async (msg) => {
102
+ if (!this._userdialogs[msg.chat.id])
103
+ this._userdialogs[msg.chat.id] = { dialog: this._schema.start, lastid: -1, waiter: { statewait: false, descriptor: '' } };
104
+ if (await this._runmw(msg.chat.id, msg))
105
+ return;
106
+ let chat = msg.chat.id;
107
+ if (this._userdialogs[chat].waiter.statewait) {
108
+ this._userdialogs[chat].waiter.statewait = false;
109
+ this._bot.deleteMessage(chat, msg.message_id).catch(() => undefined);
110
+ this.ActionSystem.emit(this._userdialogs[chat].waiter.descriptor, chat, msg.text);
111
+ }
112
+ // test commands
113
+ let text = msg.text || '';
114
+ for (let cmd of this._schema.commands) {
115
+ let r_exec = new RegExp(`^\\/(${cmd.text.trim().toLowerCase()})\\b(?:\\s+(.+))?$`, 'gms').exec(text.trim());
116
+ if (r_exec != null) {
117
+ if (typeof cmd.action == 'function')
118
+ await cmd.action(msg.chat.id, this, r_exec[2]);
119
+ else if (Array.isArray(cmd.action))
120
+ for (let r_act of cmd.action)
121
+ await r_act(msg.chat.id, this, r_exec[2]);
260
122
  }
261
- });
123
+ }
262
124
  });
263
- };
264
- BotBuilder.prototype._hashbtn = function (dia, btn) {
265
- return hash([dia.id, btn]);
266
- };
267
- BotBuilder.prototype._getDialog = function (id) {
268
- return this._schema.content.find(function (x) { return x.id === id; });
269
- };
270
- BotBuilder.prototype._getButton = function (callback) {
271
- return this._schema.buttons.find(function (x) { return x._callback === callback; });
272
- };
273
- BotBuilder.prototype._getButtonID = function (callback) {
274
- return this._schema.buttons.findIndex(function (x) { return x._callback === callback; });
275
- };
276
- BotBuilder.prototype._activateButton = function (chat, btn) {
277
- return __awaiter(this, void 0, void 0, function () {
278
- var _btn, _i, _a, act;
279
- return __generator(this, function (_b) {
280
- switch (_b.label) {
281
- case 0:
282
- if (typeof btn === 'string')
283
- _btn = this._getButton(btn);
284
- else
285
- _btn = btn;
286
- if (!Array.isArray(_btn === null || _btn === void 0 ? void 0 : _btn.action)) return [3 /*break*/, 5];
287
- _i = 0, _a = _btn === null || _btn === void 0 ? void 0 : _btn.action;
288
- _b.label = 1;
289
- case 1:
290
- if (!(_i < _a.length)) return [3 /*break*/, 4];
291
- act = _a[_i];
292
- return [4 /*yield*/, act(chat, this)];
293
- case 2:
294
- _b.sent();
295
- _b.label = 3;
296
- case 3:
297
- _i++;
298
- return [3 /*break*/, 1];
299
- case 4: return [3 /*break*/, 7];
300
- case 5:
301
- if (!(_btn === null || _btn === void 0 ? void 0 : _btn.action)) return [3 /*break*/, 7];
302
- return [4 /*yield*/, (_btn === null || _btn === void 0 ? void 0 : _btn.action)(chat, this)];
303
- case 6:
304
- _b.sent();
305
- _b.label = 7;
306
- case 7: return [2 /*return*/];
307
- }
308
- });
125
+ this._bot.on('callback_query', async (query) => {
126
+ if (await this._runmw(query.message.chat.id, query))
127
+ return;
128
+ if (!this._userdialogs[query.message.chat.id])
129
+ this._userdialogs[query.message.chat.id] = { dialog: this._schema.start, lastid: -1, waiter: { statewait: false, descriptor: '' } };
130
+ this._activateButton(query.message.chat.id, query.data);
309
131
  });
310
- };
311
- BotBuilder.prototype.ChangeDialog = function (chat, id) {
312
- return __awaiter(this, void 0, void 0, function () {
313
- var dialog, btns, _a, _b, markup, b, _i, _c, btn, _d, _e, _f, _g, psid, text, _h, e_1, msg;
314
- return __generator(this, function (_j) {
315
- switch (_j.label) {
316
- case 0:
317
- this._userdialogs[chat].dialog = id;
318
- if (this._userdialogs[chat].waiter.statewait) {
319
- this._userdialogs[chat].waiter.statewait = false;
320
- this.ActionSystem.emit("cancel_".concat(this._userdialogs[chat].waiter.descriptor), chat);
321
- }
322
- dialog = this._getDialog(id);
323
- _a = deepcopy.default();
324
- if (!(typeof (dialog === null || dialog === void 0 ? void 0 : dialog.buttons) === 'function')) return [3 /*break*/, 2];
325
- return [4 /*yield*/, (dialog === null || dialog === void 0 ? void 0 : dialog.buttons(chat))];
326
- case 1:
327
- _b = _j.sent();
328
- return [3 /*break*/, 3];
329
- case 2:
330
- _b = dialog === null || dialog === void 0 ? void 0 : dialog.buttons;
331
- _j.label = 3;
332
- case 3:
333
- btns = _a.apply(void 0, [(_b)]) || [];
334
- if (process.env['DEBUG_BOT'] == 'true')
335
- console.log(btns);
336
- markup = undefined;
337
- if (!(btns.length > 0)) return [3 /*break*/, 15];
338
- markup = [];
339
- b = 0;
340
- _j.label = 4;
341
- case 4:
342
- if (!(b < btns.length)) return [3 /*break*/, 15];
343
- markup[b] = [];
344
- _i = 0, _c = btns[b];
345
- _j.label = 5;
346
- case 5:
347
- if (!(_i < _c.length)) return [3 /*break*/, 14];
348
- btn = _c[_i];
349
- _d = btn;
350
- if (!(typeof btn.text === 'function')) return [3 /*break*/, 7];
351
- return [4 /*yield*/, btn.text(chat)];
352
- case 6:
353
- _e = _j.sent();
354
- return [3 /*break*/, 8];
355
- case 7:
356
- _e = btn.text;
357
- _j.label = 8;
358
- case 8:
359
- _d.text = _e;
360
- if (!(btn.url != undefined)) return [3 /*break*/, 12];
361
- _f = btn;
362
- if (!(typeof btn.url == 'function')) return [3 /*break*/, 10];
363
- return [4 /*yield*/, btn.url(chat)];
364
- case 9:
365
- _g = _j.sent();
366
- return [3 /*break*/, 11];
367
- case 10:
368
- _g = btn.url;
369
- _j.label = 11;
370
- case 11:
371
- _f._url = _g;
372
- _j.label = 12;
373
- case 12:
374
- btn._callback = this._hashbtn(dialog, btn);
375
- psid = this._getButtonID(btn._callback);
376
- if (psid == -1)
377
- this._schema.buttons.push(btn);
378
- markup[b].push({ text: btn.text, callback_data: btn._callback, url: btn._url });
379
- _j.label = 13;
380
- case 13:
381
- _i++;
382
- return [3 /*break*/, 5];
383
- case 14:
384
- b++;
385
- return [3 /*break*/, 4];
386
- case 15:
387
- if (process.env['DEBUG_BOT'] == 'true')
388
- console.log(markup);
389
- if (dialog == undefined)
390
- markup = [[{ text: "Меню", callback_data: this._schema.start }]]; // FIX RAND BTN
391
- if (!(typeof (dialog === null || dialog === void 0 ? void 0 : dialog.text) === 'function')) return [3 /*break*/, 17];
392
- return [4 /*yield*/, (dialog === null || dialog === void 0 ? void 0 : dialog.text(chat))];
393
- case 16:
394
- _h = _j.sent();
395
- return [3 /*break*/, 18];
396
- case 17:
397
- _h = dialog === null || dialog === void 0 ? void 0 : dialog.text;
398
- _j.label = 18;
399
- case 18:
400
- text = _h;
401
- _j.label = 19;
402
- case 19:
403
- _j.trys.push([19, 21, , 23]);
404
- return [4 /*yield*/, this._bot.editMessageText(text || "404", { chat_id: chat, message_id: this._userdialogs[chat].lastid, parse_mode: 'HTML', reply_markup: markup ? { inline_keyboard: markup } : undefined })];
405
- case 20:
406
- _j.sent();
407
- return [3 /*break*/, 23];
408
- case 21:
409
- e_1 = _j.sent();
410
- if (e_1.message == bypass_str)
411
- return [2 /*return*/];
412
- return [4 /*yield*/, this._bot.sendMessage(chat, text || "404", { parse_mode: 'HTML', reply_markup: markup ? { inline_keyboard: markup } : undefined })];
413
- case 22:
414
- msg = _j.sent();
415
- this._userdialogs[chat].lastid = msg.message_id;
416
- return [3 /*break*/, 23];
417
- case 23: return [2 /*return*/];
418
- }
132
+ this._bot.on('document', async (msg) => {
133
+ if (!this._userdialogs[msg.chat.id])
134
+ this._userdialogs[msg.chat.id] = { dialog: this._schema.start, lastid: -1, waiter: { statewait: false, descriptor: '' } };
135
+ if (await this._runmw(msg.chat.id, msg))
136
+ return;
137
+ if (!msg.document)
138
+ return;
139
+ let chat = msg.chat.id;
140
+ if (!this._userdialogs[chat].waiter.statewait)
141
+ return;
142
+ this._bot.downloadFile(msg.document.file_id, './').then((x) => {
143
+ this._userdialogs[chat].waiter.statewait = false;
144
+ this._bot.deleteMessage(chat, msg.message_id).catch(() => undefined);
145
+ let content = (0, fs_1.readFileSync)(x, 'utf8');
146
+ (0, fs_1.rmSync)(x);
147
+ this.ActionSystem.emit(this._userdialogs[chat].waiter.descriptor, chat, content);
419
148
  });
420
149
  });
421
- };
422
- BotBuilder.prototype.AttachDataWait = function (chat, descriptor) {
150
+ this._bot.onText(/\/start/, async (msg) => {
151
+ if (await this._runmw(msg.chat.id, msg))
152
+ return;
153
+ if (this._userdialogs[msg.chat.id] != undefined)
154
+ this._bot.deleteMessage(msg.chat.id, this._userdialogs[msg.chat.id].lastid).catch(() => undefined);
155
+ this._userdialogs[msg.chat.id] = { dialog: this._schema.start, lastid: -1, waiter: { statewait: false, descriptor: '' } };
156
+ this._bot.deleteMessage(msg.chat.id, msg.message_id).catch(() => undefined);
157
+ this.ChangeDialog(msg.chat.id, this._schema.start);
158
+ });
159
+ }
160
+ _getDialog(id) {
161
+ return this._schema.content.find(x => x.id === id);
162
+ }
163
+ _getButton(callback) {
164
+ return this._schema.buttons.find(x => x._callback === callback);
165
+ }
166
+ _getButtonID(callback) {
167
+ return this._schema.buttons.findIndex(x => x._callback === callback);
168
+ }
169
+ async _activateButton(chat, btn) {
170
+ let _btn;
171
+ if (typeof btn === 'string')
172
+ _btn = this._getButton(btn);
173
+ else
174
+ _btn = btn;
175
+ if (Array.isArray(_btn?.action)) {
176
+ for (let act of _btn?.action) {
177
+ await act(chat, this);
178
+ }
179
+ }
180
+ else if (_btn?.action) {
181
+ await (_btn?.action)(chat, this);
182
+ }
183
+ }
184
+ async ChangeDialog(chat, id) {
185
+ this._userdialogs[chat].dialog = id;
186
+ if (this._userdialogs[chat].waiter.statewait) {
187
+ this._userdialogs[chat].waiter.statewait = false;
188
+ this.ActionSystem.emit(`cancel_${this._userdialogs[chat].waiter.descriptor}`, chat);
189
+ }
190
+ let dialog = this._getDialog(id);
191
+ let btns = deepcopy.default()((typeof dialog?.buttons === 'function' ? await dialog?.buttons(chat) : dialog?.buttons)) || [];
192
+ let markup = undefined;
193
+ if (btns.length > 0) {
194
+ markup = [];
195
+ for (let b = 0; b < btns.length; b++) {
196
+ markup[b] = [];
197
+ for (let btn of btns[b]) {
198
+ btn.text = typeof btn.text === 'function' ? await btn.text(chat) : btn.text;
199
+ if (btn.url != undefined)
200
+ btn.url = typeof btn.url == 'function' ? await btn.url(chat) : btn.url;
201
+ btn._callback = this._hashbtn(dialog, btn);
202
+ let psid = this._getButtonID(btn._callback);
203
+ if (psid == -1)
204
+ this._schema.buttons.push(btn);
205
+ markup[b].push({ text: btn.text, callback_data: btn._callback, url: btn.url });
206
+ }
207
+ }
208
+ }
209
+ if (process.env['DEBUG_BOT'] == 'true')
210
+ console.log(markup);
211
+ if (dialog == undefined)
212
+ markup = [[{ text: "Меню", callback_data: this._schema.start }]]; // FIX RAND BTN
213
+ let text = typeof dialog?.text === 'function' ? await dialog?.text(chat) : dialog?.text;
214
+ try {
215
+ await this._bot.editMessageText(text || "404", { chat_id: chat, message_id: this._userdialogs[chat].lastid, parse_mode: 'HTML', reply_markup: markup ? { inline_keyboard: markup } : undefined });
216
+ }
217
+ catch (e) {
218
+ if (e.message == bypass_str)
219
+ return;
220
+ let msg = await this._bot.sendMessage(chat, text || "404", { parse_mode: 'HTML', reply_markup: markup ? { inline_keyboard: markup } : undefined });
221
+ this._userdialogs[chat].lastid = msg.message_id;
222
+ }
223
+ }
224
+ AttachDataWait(chat, descriptor) {
423
225
  this._userdialogs[chat].waiter.descriptor = descriptor;
424
226
  this._userdialogs[chat].waiter.statewait = true;
425
- };
426
- BotBuilder.prototype.Message = function (chat, content) {
227
+ }
228
+ Message(chat, content) {
427
229
  return this._bot.sendMessage(chat, content, { parse_mode: 'HTML' });
428
- };
429
- return BotBuilder;
430
- }());
230
+ }
231
+ }
431
232
  exports.BotBuilder = BotBuilder;
432
233
  function ChangeDialog(id) {
433
- return function (chat, _bot) { return _bot.ChangeDialog(chat, id); };
234
+ return (chat, _bot) => { return _bot.ChangeDialog(chat, id); };
434
235
  }
435
- function CallbackAction(descriptor) {
436
- var _this = this;
437
- var args = [];
438
- for (var _i = 1; _i < arguments.length; _i++) {
439
- args[_i - 1] = arguments[_i];
440
- }
441
- return function (chat, _bot) {
442
- var _args = [];
443
- for (var _i = 2; _i < arguments.length; _i++) {
444
- _args[_i - 2] = arguments[_i];
236
+ function CallbackAction(descriptor, ...args) {
237
+ return async (chat, _bot, ..._args) => { return typeof descriptor == 'function' ? await descriptor(chat, ...args, ..._args) : _bot.ActionSystem.emit(descriptor, chat, ...args, ..._args); };
238
+ }
239
+ function WaitForData(descriptor) {
240
+ return async (chat, _bot) => {
241
+ if (typeof descriptor == 'string') {
242
+ let _tmpds = crypto.randomUUID();
243
+ _bot.AttachDataWait(chat, _tmpds);
244
+ return new Promise(r => {
245
+ _bot.ActionSystem.once(_tmpds, (...args) => { _bot.ActionSystem.emit(descriptor, ...args); return r(undefined); });
246
+ _bot.ActionSystem.once(`cancel_${_tmpds}`, (...args) => { _bot.ActionSystem.emit(`cancel_${descriptor}`, ...args); return r(undefined); });
247
+ });
445
248
  }
446
- return __awaiter(_this, void 0, void 0, function () {
447
- var _a;
448
- var _b;
449
- return __generator(this, function (_c) {
450
- switch (_c.label) {
451
- case 0:
452
- if (!(typeof descriptor == 'function')) return [3 /*break*/, 2];
453
- return [4 /*yield*/, descriptor.apply(void 0, __spreadArray(__spreadArray([chat], args, false), _args, false))];
454
- case 1:
455
- _a = _c.sent();
456
- return [3 /*break*/, 3];
457
- case 2:
458
- _a = (_b = _bot.ActionSystem).emit.apply(_b, __spreadArray(__spreadArray([descriptor, chat], args, false), _args, false));
459
- _c.label = 3;
460
- case 3: return [2 /*return*/, _a];
461
- }
249
+ else {
250
+ let desc = crypto.randomUUID();
251
+ _bot.AttachDataWait(chat, desc);
252
+ return new Promise(r => {
253
+ _bot.ActionSystem.once(desc, descriptor);
254
+ _bot.ActionSystem.once(`cancel_${desc}`, descriptor);
255
+ _bot.ActionSystem.once(desc, r);
256
+ _bot.ActionSystem.once(`cancel_${desc}`, r);
462
257
  });
463
- });
258
+ }
464
259
  };
465
260
  }
466
- function WaitForData(descriptor) {
467
- var _this = this;
468
- return function (chat, _bot) { return __awaiter(_this, void 0, void 0, function () {
469
- var _tmpds_1, desc_1;
470
- return __generator(this, function (_a) {
471
- if (typeof descriptor == 'string') {
472
- _tmpds_1 = crypto.randomUUID();
473
- _bot.AttachDataWait(chat, _tmpds_1);
474
- return [2 /*return*/, new Promise(function (r) {
475
- _bot.ActionSystem.once(_tmpds_1, function () {
476
- var _a;
477
- var args = [];
478
- for (var _i = 0; _i < arguments.length; _i++) {
479
- args[_i] = arguments[_i];
480
- }
481
- (_a = _bot.ActionSystem).emit.apply(_a, __spreadArray([descriptor], args, false));
482
- return r(undefined);
483
- });
484
- _bot.ActionSystem.once("cancel_".concat(_tmpds_1), function () {
485
- var _a;
486
- var args = [];
487
- for (var _i = 0; _i < arguments.length; _i++) {
488
- args[_i] = arguments[_i];
489
- }
490
- (_a = _bot.ActionSystem).emit.apply(_a, __spreadArray(["cancel_".concat(descriptor)], args, false));
491
- return r(undefined);
492
- });
493
- })];
494
- }
495
- else {
496
- desc_1 = crypto.randomUUID();
497
- _bot.AttachDataWait(chat, desc_1);
498
- return [2 /*return*/, new Promise(function (r) {
499
- _bot.ActionSystem.once(desc_1, descriptor);
500
- _bot.ActionSystem.once("cancel_".concat(desc_1), descriptor);
501
- _bot.ActionSystem.once(desc_1, r);
502
- _bot.ActionSystem.once("cancel_".concat(desc_1), r);
503
- })];
504
- }
505
- return [2 /*return*/];
506
- });
507
- }); };
508
- }
509
261
  //# sourceMappingURL=bot-service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bot-service.js","sourceRoot":"","sources":["../src/bot-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bot-service.js","sourceRoot":"","sources":["../src/bot-service.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ export interface Dialog {
4
4
  id: string;
5
5
  text: string | ((chat: number) => Promise<string>) | ((chat: number) => string);
6
6
  buttons: Button[][] | ((chat: number) => Promise<Button[][]>) | ((chat: number) => Button[][]);
7
+ disable_btn_fp?: boolean;
7
8
  }
8
9
  export interface BotDialog extends Dialog {
9
10
  buttons: BotButton[][] | ((chat: number) => Promise<BotButton[][]>) | ((chat: number) => BotButton[][]);
@@ -15,7 +16,6 @@ export interface Button {
15
16
  }
16
17
  export interface BotButton extends Button {
17
18
  _callback: string;
18
- _url?: string;
19
19
  }
20
20
  export interface Schema {
21
21
  start: string;
@@ -1 +1 @@
1
- {"version":3,"file":"bot-struct.d.ts","sourceRoot":"","sources":["../src/bot-struct.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;AAE9F,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IAChF,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,EAAE,EAAE,CAAC,CAAC;CAChG;AACD,MAAM,WAAW,SAAU,SAAQ,MAAM;IACvC,OAAO,EAAE,SAAS,EAAE,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,EAAE,EAAE,CAAC,CAAC;CACzG;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IAChF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;CACjF;AACD,MAAM,WAAW,SAAU,SAAQ,MAAM;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,SAAU,SAAQ,MAAM;IACvC,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,OAAO,EAAE,SAAS,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;CAC3B"}
1
+ {"version":3,"file":"bot-struct.d.ts","sourceRoot":"","sources":["../src/bot-struct.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;AAE9F,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IAChF,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,EAAE,EAAE,CAAC,CAAC;IAC/F,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AACD,MAAM,WAAW,SAAU,SAAQ,MAAM;IACvC,OAAO,EAAE,SAAS,EAAE,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,EAAE,EAAE,CAAC,CAAC;CACzG;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IAChF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;CACjF;AACD,MAAM,WAAW,SAAU,SAAQ,MAAM;IACvC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,SAAU,SAAQ,MAAM;IACvC,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,OAAO,EAAE,SAAS,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;CAC3B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "telegram-botbuilder",
3
- "version": "1.3.0",
3
+ "version": "1.4.0",
4
4
  "main": "lib/index.js",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1"
@@ -60,7 +60,7 @@ export class BotBuilder {
60
60
  }
61
61
 
62
62
  private _hashbtn(dia: BotDialog, btn: Button) {
63
- return hash([dia.id, btn]);
63
+ return hash([dia.id, {a: btn.action, b: btn.text, c: btn.url}]);
64
64
  }
65
65
 
66
66
  constructor (schema: Schema, token: string, options?: TelegramBot.ConstructorOptions) {
@@ -71,7 +71,22 @@ export class BotBuilder {
71
71
  this.ActionSystem = new EventEmitter();
72
72
  this._userdialogs = {};
73
73
 
74
- this._bot.onText(/.+/g, async (msg) => {
74
+ // buttons first pass | fp disable var | fp for funcs | TODO
75
+ for (let fp_di = 0; fp_di < this._schema.content.length; fp_di++) {
76
+ let fp_db = this._schema.content[fp_di].buttons
77
+ if (!Array.isArray(fp_db)) continue;
78
+
79
+ for (let fp_by = 0; fp_db.length; fp_by++) {
80
+ for (let fp_bx = 0; fp_bx < fp_db[fp_by].length; fp_by++) {
81
+ let fp_b = fp_db[fp_by][fp_bx];
82
+ fp_b._callback = this._hashbtn(this._schema.content[fp_di], fp_b);
83
+ this._schema.buttons.push(fp_b);
84
+ }
85
+ }
86
+ }
87
+
88
+
89
+ this._bot.onText(/.+/gms, async (msg) => {
75
90
  if (!this._userdialogs[msg.chat.id]) this._userdialogs[msg.chat.id] = {dialog: this._schema.start, lastid: -1, waiter: { statewait: false, descriptor: '' }}
76
91
  if (await this._runmw(msg.chat.id, msg)) return;
77
92
 
@@ -81,6 +96,16 @@ export class BotBuilder {
81
96
  this._bot.deleteMessage(chat, msg.message_id).catch(() => undefined);
82
97
  this.ActionSystem.emit(this._userdialogs[chat].waiter.descriptor, chat, msg.text);
83
98
  }
99
+
100
+ // test commands
101
+ let text = msg.text || '';
102
+ for (let cmd of this._schema.commands) {
103
+ let r_exec = new RegExp(`^\\/(${cmd.text.trim().toLowerCase()})\\b(?:\\s+(.+))?$`, 'gms').exec(text.trim());
104
+ if (r_exec != null) {
105
+ if (typeof cmd.action == 'function') await cmd.action(msg.chat.id, this, (r_exec[2] as string | undefined));
106
+ else if (Array.isArray(cmd.action)) for (let r_act of cmd.action) await r_act(msg.chat.id, this, (r_exec[2] as string | undefined));
107
+ }
108
+ }
84
109
  });
85
110
 
86
111
  this._bot.on('callback_query', async (query) => {
@@ -109,26 +134,11 @@ export class BotBuilder {
109
134
  this._bot.onText(/\/start/, async (msg) => {
110
135
  if (await this._runmw(msg.chat.id, msg)) return;
111
136
 
137
+ if (this._userdialogs[msg.chat.id] != undefined) this._bot.deleteMessage(msg.chat.id, this._userdialogs[msg.chat.id].lastid).catch(() => undefined);
112
138
  this._userdialogs[msg.chat.id] = {dialog: this._schema.start, lastid: -1, waiter: { statewait: false, descriptor: '' }}
113
139
  this._bot.deleteMessage(msg.chat.id, msg.message_id).catch(() => undefined);
114
140
  this.ChangeDialog(msg.chat.id, this._schema.start);
115
141
  });
116
-
117
- for (let cmd of this._schema.commands) {
118
- this._bot.onText(new RegExp(`\\/${cmd.text}(?:\\s+(.*))?$`), async (msg, match) => {
119
- if (!this._userdialogs[msg.chat.id]) this._userdialogs[msg.chat.id] = {dialog: this._schema.start, lastid: -1, waiter: { statewait: false, descriptor: '' }}
120
- if (await this._runmw(msg.chat.id, msg)) return;
121
-
122
- let chat = msg.chat.id;
123
- if (Array.isArray(cmd?.action)) {
124
- for (let act of (cmd?.action as Action[])) {
125
- act(chat, this, msg.text?.split(' ').pop());
126
- }
127
- } else if (cmd?.action as Action) {
128
- (cmd?.action as Action)(chat, this, msg.text?.split(' ').pop());
129
- }
130
- });
131
- }
132
142
  }
133
143
 
134
144
  private _getDialog(id: string) {
@@ -163,7 +173,6 @@ export class BotBuilder {
163
173
 
164
174
  let dialog = this._getDialog(id);
165
175
  let btns: BotButton[][] = deepcopy.default()((typeof dialog?.buttons === 'function' ? await dialog?.buttons(chat) : dialog?.buttons)) || [];
166
- if (process.env['DEBUG_BOT'] == 'true') console.log(btns);
167
176
 
168
177
  let markup: InlineKeyboardButton[][] | undefined = undefined;
169
178
  if (btns.length > 0) {
@@ -172,11 +181,11 @@ export class BotBuilder {
172
181
  markup[b] = [];
173
182
  for (let btn of btns[b]) {
174
183
  btn.text = typeof btn.text === 'function' ? await btn.text(chat) : btn.text;
175
- if (btn.url != undefined) btn._url = typeof btn.url == 'function' ? await btn.url(chat) : btn.url;
184
+ if (btn.url != undefined) btn.url = typeof btn.url == 'function' ? await btn.url(chat) : btn.url;
176
185
  btn._callback = this._hashbtn(dialog!, btn);
177
186
  let psid = this._getButtonID(btn._callback);
178
187
  if (psid == -1) this._schema.buttons.push(btn);
179
- markup[b].push({ text: btn.text, callback_data: btn._callback, url: btn._url });
188
+ markup[b].push({ text: btn.text, callback_data: btn._callback, url: btn.url });
180
189
  }
181
190
  }
182
191
  }
package/src/bot-struct.ts CHANGED
@@ -7,6 +7,7 @@ export interface Dialog {
7
7
  id: string;
8
8
  text: string | ((chat: number) => Promise<string>) | ((chat: number) => string);
9
9
  buttons: Button[][] | ((chat: number) => Promise<Button[][]>) | ((chat: number) => Button[][]);
10
+ disable_btn_fp?: boolean;
10
11
  }
11
12
  export interface BotDialog extends Dialog {
12
13
  buttons: BotButton[][] | ((chat: number) => Promise<BotButton[][]>) | ((chat: number) => BotButton[][]);
@@ -19,7 +20,6 @@ export interface Button {
19
20
  }
20
21
  export interface BotButton extends Button {
21
22
  _callback: string;
22
- _url?: string;
23
23
  }
24
24
 
25
25
  export interface Schema {
package/tsconfig.json CHANGED
@@ -11,7 +11,7 @@
11
11
  // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */
12
12
 
13
13
  /* Language and Environment */
14
- "target": "ES5", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
14
+ "target": "ESNext", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
15
15
  // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */
16
16
  // "jsx": "preserve", /* Specify what JSX code is generated. */
17
17
  // "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */