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.
- package/lib/bot-service.d.ts.map +1 -1
- package/lib/bot-service.js +196 -444
- package/lib/bot-service.js.map +1 -1
- package/lib/bot-struct.d.ts +1 -1
- package/lib/bot-struct.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/bot-service.ts +30 -21
- package/src/bot-struct.ts +1 -1
- package/tsconfig.json +1 -1
package/lib/bot-service.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/lib/bot-service.js
CHANGED
|
@@ -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
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
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
|
-
|
|
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
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
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
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
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
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
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
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
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
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
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
|
-
|
|
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
|
-
|
|
227
|
+
}
|
|
228
|
+
Message(chat, content) {
|
|
427
229
|
return this._bot.sendMessage(chat, content, { parse_mode: 'HTML' });
|
|
428
|
-
}
|
|
429
|
-
|
|
430
|
-
}());
|
|
230
|
+
}
|
|
231
|
+
}
|
|
431
232
|
exports.BotBuilder = BotBuilder;
|
|
432
233
|
function ChangeDialog(id) {
|
|
433
|
-
return
|
|
234
|
+
return (chat, _bot) => { return _bot.ChangeDialog(chat, id); };
|
|
434
235
|
}
|
|
435
|
-
function CallbackAction(descriptor) {
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
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
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
return
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
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
|
package/lib/bot-service.js.map
CHANGED
|
@@ -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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"}
|
package/lib/bot-struct.d.ts
CHANGED
|
@@ -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;
|
package/lib/bot-struct.d.ts.map
CHANGED
|
@@ -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;
|
|
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
package/src/bot-service.ts
CHANGED
|
@@ -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
|
-
|
|
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.
|
|
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.
|
|
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": "
|
|
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. */
|