From f13efd4e77386feb0469b77802e160263d7aa3c5 Mon Sep 17 00:00:00 2001 From: Daniil Gentili Date: Tue, 28 Jun 2016 13:38:39 +0200 Subject: [PATCH] Translating... --- mtproto.php | Bin 15386 -> 15770 bytes mtproto.php.save | 148 +++++++++++++++++++++++++++++++++++++++++++++ mtproto.php.save.1 | Bin 0 -> 15757 bytes mtproto.py | 4 +- 4 files changed, 149 insertions(+), 3 deletions(-) create mode 100644 mtproto.php.save create mode 100755 mtproto.php.save.1 diff --git a/mtproto.php b/mtproto.php index b25fa8581578516fc070165c131881fd873d06c3..c2c72bfc972f41404cdec95231e8b8075be348c7 100755 GIT binary patch delta 313 zcmbPLF{^rm9usqZPReFIru~eQ^_Vn7iZiQH6>JrXONw$*^E6aa5=#;_C!b_$tj|o- zP{~hAD^4v@u(eglE6vH#RDcU87+7<0suUz9XQ!6L7w2Rqr=|c6QBnemmS<$Of;=#Jj-)Pg zv|;Sz^OE6=(UaArGzEdYSZl7b#G?3=(%b?Km5RxJQuCRLEhg(pNlfODR-SAmC9>H; H`j!F!);?e^ delta 134 zcmbPLJ*#4a9@Az+ru~eYOIgE3MKsD1i{evCa|<-`Qp=Nzl8uctG$t>Q6k*h!yii(n z@_#9AeoajUTU!OVy2*Ufx@?*X(T1^_lkKF#IZE>i5|gtv)F&6pNO0tp=H%!om}pME hAU&VkqS#YiM $curn) { + if (BIG_ENDIAN) { + $res .= strrev(pack($format[$key], $curn)); + } else $res .= pack($format[$key], $curn); + } + return $res; +} +function pack_be($format, ...$n) { + $res = ""; + foreach ($n as $key => $curn) { + if (!BIG_ENDIAN) { + $res .= strrev(pack($format[$key], $curn)); + } else $res .= pack($format[$key], $curn); + } + return $res; +} +function unpack_le($format, $data) { + if (BIG_ENDIAN) { + return unpack(strrev($format), strrev($data)); + } else return unpack($format, $data); +} +function unpack_be($format, $data) { + if (!BIG_ENDIAN) { + return unpack($format, strrev($data)); + } else return unpack($format, $data); +} +function vis($bs) { + $bs = bytearray($bs); + $symbols_in_one_line = 8; + $n = floor(strlen($bs) / $symbols_in_one_line); + $i = 0; + foreach (pyjslib_range($n) as $i) { + pyjslib_printnl( + join(pyjslib_str(($i * $symbols_in_one_line)) . ' | ' . ' ', + array_map(function($el) { return "%02X" % $el; }, array_slice($bs,$i*$symbols_in_one_line, ($i+1)*$symbols_in_one_line)) + )); + } + if (!(((strlen($bs) % $symbols_in_one_line) == 0))) { + pyjslib_printnl(join(pyjslib_str((($i + 1) * $symbols_in_one_line)) . ' | ' . ' ', + array_map(function($el) { return "%02X" % $el; }, array_slice($bs, ($i+1)*$symbols_in_one_line), null) + ) . ' +'); + } +} +/** + * bytes_to_long(string) : long + * Convert a byte string to a long integer. + * This is (essentially) the inverse of long_to_bytes(). + */ +function bytes_to_long($s) { + $acc = 0; + $length = strlen($s); + if (($length % 4)) { + $extra = (4 - ($length % 4)); + $s = (($b('') * $extra) + $s); + $length = ($length + $extra); + } + foreach( pyjslib_range(0, $length, 4) as $i ) { + $acc = ($acc << 32 + unpack('I', array_slice($s, $i, ($i + 4) - $i))[0]); + } + return $acc; +} + +function fread_all($handle) { + $pos = ftell($handle); + fseek($handle, 0); + $content = fread($handle, fstat($handle)["size"]); + fseek($handle, $pos); + return $content; +} +function fopen_and_write($filename, $mode, $data) { + $handle = fopen($filename, $mode); + fwrite($handle, $data); + rewind($handle); + return $handle; +} +/** + * long_to_bytes(n:long, blocksize:int) : string + * Convert a long integer to a byte string. + * If optional blocksize is given and greater than zero, pad the front of the + * byte string with binary zeros so that the length is a multiple of + * blocksize. + */ +function long_to_bytes($n,$blocksize=0) { + $s = $b(''); + $n = long($n); + while (($n > 0)) { + $s = (pack('I', $n & 4294967295) + $s); + $n = $n >> 32; + } + foreach( pyjslib_range(strlen($s)) as $i ) { + if (($s[$i] != $b('')[0])) { + break; + } + } + $s = array_slice($s, $i, null); + if (($blocksize > 0) && (strlen($s) % $blocksize)) { + $s = ((($blocksize - (strlen($s) % $blocksize)) * $b('')) + $s); + } + return $s; +} +/** + * Manages TCP Transport. encryption and message frames + */ +class Session { + function __construct($ip, $port, $auth_key = null, $server_salt = null) { + $this->sock = fsockopen("tcp://".$ip.":".$port); + $this->number = 0; + $this->timedelta = 0; \ No newline at end of file diff --git a/mtproto.php.save.1 b/mtproto.php.save.1 new file mode 100755 index 0000000000000000000000000000000000000000..6f8f9a82b3fb5fcb81327779a7fd9da39bb6a519 GIT binary patch literal 15757 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 literal 0 HcmV?d00001 diff --git a/mtproto.py b/mtproto.py index 943fbdca..75ae4331 100644 --- a/mtproto.py +++ b/mtproto.py @@ -89,7 +89,6 @@ class Session: step1 = struct.pack('