. * * @author Daniil Gentili * @copyright 2016-2020 Daniil Gentili * @license https://opensource.org/licenses/AGPL-3.0 AGPLv3 * * @link https://docs.madelineproto.xyz MadelineProto documentation */ namespace danog\MadelineProto\TL; trait TLParams { public function parseParams($key, $mtproto = false) { foreach ($this->by_id[$key]['params'] as $kkey => $param) { if (\preg_match('/(\\w*)\\.(\\d*)\\?(.*)/', $param['type'], $matches)) { $param['pow'] = \pow(2, $matches[2]); $param['type'] = $matches[3]; } if (\preg_match('/^(v|V)ector\\<(.*)\\>$/', $param['type'], $matches)) { $param['type'] = $matches[1] === 'v' ? 'vector' : 'Vector t'; $param['subtype'] = $matches[2]; $param['subtype'] = ($mtproto && $param['subtype'] === 'Message' ? 'MT' : '').$param['subtype']; $param['subtype'] = $mtproto && $param['subtype'] === '%Message' ? '%MTMessage' : $param['subtype']; } $param['type'] = ($mtproto && $param['type'] === 'Message' ? 'MT' : '').$param['type']; $param['type'] = $mtproto && $param['type'] === '%Message' ? '%MTMessage' : $param['type']; $this->by_id[$key]['params'][$kkey] = $param; } } }