gt22 icon

Untitled

gt22 | PRO | 12/22/16 12:08:41 PM UTC | 0 ⭐ | 598 👁️ | Never ⏰ | []
JavaScript |

7.27 KB

|

None

|

0 👍

/

0 👎

 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();
            }
          }

Comments