while (1) { switch (_context.prev = _context.next) { case 0: checkPrefix = function checkPrefix(text, prefix) { return text.search(prefix) === 0; }; getMsg = function getMsg(message_ids) { return _this2.API.call('messages.getById', { message_ids: message_ids }).then(function (res) { return res.items[0]; }); }; /* let chatId = update[3] let msgId = update[1] let body = update[6] let extra = update[7] */ _update = _slicedToArray(update, 8), msgId = _update[1], chatId = _update[3], body = _update[6], extra = _update[7]; isChat = chatId > 2e9; handled = false; // для чатов if (!(isChat && (!this.chats.length || this.chats.includes(chatId) // чатов нет ^ чат в списке разрешенных ^ ) && (!this.prefix || checkPrefix(body, this.prefix) // ^ префикса нет ^ начинается с префикса ))) { _context.next = 38; break; } if (!this.msgType) { _context.next = 10; break; } _context.t0 = update; _context.next = 13; break; case 10: _context.next = 12; return getMsg(msgId); case 12: _context.t0 = _context.sent; case 13: msg = _context.t0; this.emit('message', msg); if (!body) { _context.next = 36; break; } _iteratorNormalCompletion = true; _didIteratorError = false; _iteratorError = undefined; _context.prev = 19; for (_iterator = this.textRegexpCallbacks[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { r = _step.value; result = r.regexp.exec(body); if (result) { handled = true; r.callback(msg, result); } } _context.next = 27; break; case 23: _context.prev = 23; _context.t1 = _context['catch'](19); _didIteratorError = true; _iteratorError = _context.t1; case 27: _context.prev = 27; _context.prev = 28; if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } case 30: _context.prev = 30; if (!_didIteratorError) { _context.next = 33; break; } throw _iteratorError; case 33: return _context.finish(30); case 34: return _context.finish(27); case 35: if (!handled) this.emit('unhandled', msg); case 36: _context.next = 81; break; case 38: if (!( // для спец.сообщений типа создания чата или изменения его названия isChat && (!this.chats.length || this.chats.includes(chatId)) && extra.source_act // если сообщение специальное )) { _context.next = 50; break; } if (!this.msgType) { _context.next = 43; break; } _context.t2 = update; _context.next = 46; break; case 43: _context.next = 45; return getMsg(msgId); case 45: _context.t2 = _context.sent; case 46: _msg = _context.t2; this.emit(extra.source_act, _msg); _context.next = 81; break; case 50: if (!( // для пользоватей !isChat && (!this.chats.length || this.chats.includes(chatId)) && (this.prefixOnlyForGroups || checkPrefix(body, this.prefix)) // ^ если префикс только для групп или начинается с префикса ^ )) { _context.next = 81; break; } if (!this.msgType) { _context.next = 55; break; } _context.t3 = update; _context.next = 58; break; case 55: _context.next = 57; return getMsg(msgId); case 57: _context.t3 = _context.sent; case 58: _msg2 = _context.t3; this.emit('message', _msg2); if (!body) { _context.next = 81; break; } _iteratorNormalCompletion2 = true; _didIteratorError2 = false; _iteratorError2 = undefined; _context.prev = 64; for (_iterator2 = this.textRegexpCallbacks[Symbol.iterator](); !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { _r = _step2.value; _result = _r.regexp.exec(body); if (_result) { handled = true; _r.callback(_msg2, _result); } } _context.next = 72; break; case 68: _context.prev = 68; _context.t4 = _context['catch'](64); _didIteratorError2 = true; _iteratorError2 = _context.t4; case 72: _context.prev = 72; _context.prev = 73; if (!_iteratorNormalCompletion2 && _iterator2.return) { _iterator2.return(); } case 75: _context.prev = 75; if (!_didIteratorError2) { _context.next = 78; break; } throw _iteratorError2; case 78: return _context.finish(75); case 79: return _context.finish(72); case 80: if (!handled) this.emit('unhandled', _msg2); case 81: case 'end': return _context.stop(); } }