diff --git a/src/danog/MadelineProto/TL/TLParams.php b/src/danog/MadelineProto/TL/TLParams.php new file mode 100644 index 00000000..1c8cc928 --- /dev/null +++ b/src/danog/MadelineProto/TL/TLParams.php @@ -0,0 +1,42 @@ +. +*/ + +namespace danog\MadelineProto\TL; + +class TLParams +{ + public function parse_params($key, $mtproto = false) { + foreach ($this->params[$key] as &$param) { + $param['flag'] = false; + $param['subtype'] = null; + if (preg_match('/^flags\.\d*\?/', $param['type'])) { + $param['flag'] = true; + $param['pow'] = pow(2, preg_replace(['/^flags\./', '/\?.*/'], '', $param['type'])); + $param['type'] = preg_replace('/^flags\.\d*\?/', '', $param['type']); + } + if (preg_match('/vector<.*>/i', $param['type'])) { + if (preg_match('/vector/', $param['type'])) { + $param['subtype'] = preg_replace(['/.*$/'], '', $param['type']); + $param['type'] = 'vector'; + } + if (preg_match('/Vector/', $param['type'])) { + $param['subtype'] = preg_replace(['/.*$/'], '', $param['type']); + $param['type'] = 'Vector t'; + } + if (preg_match('/^\%/', $param['subtype'])) { + $param['subtype'] = lcfirst(preg_replace('/^\%/', '', $param['subtype'])); + } + $param['subtype'] = (($mtproto && $param['subtype'] == 'message') ? 'MT' : '').$param['subtype']; + } + } + } +}