@@ -21,13 +21,13 @@ discard block |
||
21 | 21 | public string $sticker_type; |
22 | 22 | |
23 | 23 | /** True, if the sticker set contains animated stickers */ |
24 | - public null|bool $is_animated = null; |
|
24 | + public null | bool $is_animated = null; |
|
25 | 25 | |
26 | 26 | /** True, if the sticker set contains video stickers */ |
27 | - public null|bool $is_video = null; |
|
27 | + public null | bool $is_video = null; |
|
28 | 28 | |
29 | 29 | /** Deprecated use sticker_type instead, True, if the sticker set contains masks */ |
30 | - public null|bool $contains_masks = null; |
|
30 | + public null | bool $contains_masks = null; |
|
31 | 31 | |
32 | 32 | /** |
33 | 33 | * List of all set stickers |
@@ -36,10 +36,10 @@ discard block |
||
36 | 36 | public array $stickers; |
37 | 37 | |
38 | 38 | /** Optional. Sticker set thumbnail in the .WEBP, .TGS, or .WEBM format */ |
39 | - public null|photoSize $thumb = null; |
|
39 | + public null | photoSize $thumb = null; |
|
40 | 40 | |
41 | 41 | |
42 | - public function __construct(stdClass|null $object = null) { |
|
42 | + public function __construct(stdClass | null $object = null) { |
|
43 | 43 | if ($object != null) { |
44 | 44 | parent::__construct($object, self::subs); |
45 | 45 | } |
@@ -17,16 +17,16 @@ |
||
17 | 17 | * But it has at most 52 significant bits, so a signed 64-bit integer or double-precision float type are safe for |
18 | 18 | * storing this identifier. |
19 | 19 | */ |
20 | - public null|int $migrate_to_chat_id = null; |
|
20 | + public null | int $migrate_to_chat_id = null; |
|
21 | 21 | |
22 | 22 | /** |
23 | 23 | * Optional. In case of exceeding flood control, the number of seconds left to wait before the request can be |
24 | 24 | * repeated |
25 | 25 | */ |
26 | - public null|int $retry_after = null; |
|
26 | + public null | int $retry_after = null; |
|
27 | 27 | |
28 | 28 | |
29 | - public function __construct(stdClass|null $object = null) { |
|
29 | + public function __construct(stdClass | null $object = null) { |
|
30 | 30 | if ($object != null) { |
31 | 31 | parent::__construct($object, self::subs); |
32 | 32 | } |
@@ -15,10 +15,10 @@ |
||
15 | 15 | * Optional. Identifier of the sent inline message. Available only if there is an inline keyboard attached to the |
16 | 16 | * message. |
17 | 17 | */ |
18 | - public null|string $inline_message_id = null; |
|
18 | + public null | string $inline_message_id = null; |
|
19 | 19 | |
20 | 20 | |
21 | - public function __construct(stdClass|null $object = null) { |
|
21 | + public function __construct(stdClass | null $object = null) { |
|
22 | 22 | if ($object != null) { |
23 | 23 | parent::__construct($object, self::subs); |
24 | 24 | } |
@@ -29,43 +29,43 @@ |
||
29 | 29 | public int $total_voter_count; |
30 | 30 | |
31 | 31 | /** True, if the poll is closed */ |
32 | - public null|bool $is_closed = null; |
|
32 | + public null | bool $is_closed = null; |
|
33 | 33 | |
34 | 34 | /** True, if the poll is anonymous */ |
35 | - public null|bool $is_anonymous = null; |
|
35 | + public null | bool $is_anonymous = null; |
|
36 | 36 | |
37 | 37 | /** Poll type, currently can be “regular” or “quiz” */ |
38 | 38 | public string $type; |
39 | 39 | |
40 | 40 | /** True, if the poll allows multiple answers */ |
41 | - public null|bool $allows_multiple_answers = null; |
|
41 | + public null | bool $allows_multiple_answers = null; |
|
42 | 42 | |
43 | 43 | /** |
44 | 44 | * Optional. 0-based identifier of the correct answer option. Available only for polls in the quiz mode, which |
45 | 45 | * are closed, or was sent (not forwarded) by the bot or to the private chat with the bot. |
46 | 46 | */ |
47 | - public null|int $correct_option_id = null; |
|
47 | + public null | int $correct_option_id = null; |
|
48 | 48 | |
49 | 49 | /** |
50 | 50 | * Optional. Text that is shown when a user chooses an incorrect answer or taps on the lamp icon in a quiz-style |
51 | 51 | * poll, 0-200 characters |
52 | 52 | */ |
53 | - public null|string $explanation = null; |
|
53 | + public null | string $explanation = null; |
|
54 | 54 | |
55 | 55 | /** |
56 | 56 | * Optional. Special entities like usernames, URLs, bot commands, etc. that appear in the explanation |
57 | 57 | * @var messageEntity[] |
58 | 58 | */ |
59 | - public null|array $explanation_entities = null; |
|
59 | + public null | array $explanation_entities = null; |
|
60 | 60 | |
61 | 61 | /** Optional. Amount of time in seconds the poll will be active after creation */ |
62 | - public null|int $open_period = null; |
|
62 | + public null | int $open_period = null; |
|
63 | 63 | |
64 | 64 | /** Optional. Point in time (Unix timestamp) when the poll will be automatically closed */ |
65 | - public null|int $close_date = null; |
|
65 | + public null | int $close_date = null; |
|
66 | 66 | |
67 | 67 | |
68 | - public function __construct(stdClass|null $object = null) { |
|
68 | + public function __construct(stdClass | null $object = null) { |
|
69 | 69 | if ($object != null) { |
70 | 70 | parent::__construct($object, self::subs); |
71 | 71 | } |
@@ -16,17 +16,17 @@ discard block |
||
16 | 16 | /** |
17 | 17 | * @internal Only for BPT self usage , Don't use it in your source! |
18 | 18 | */ |
19 | - public static function init(string $method,array $data) { |
|
19 | + public static function init(string $method, array $data) { |
|
20 | 20 | $info = self::getInfo($data); |
21 | 21 | $data = $info['data']; |
22 | 22 | $handler = $info['handler']; |
23 | - self::setTimeout($data,$handler,$method); |
|
23 | + self::setTimeout($data, $handler, $method); |
|
24 | 24 | self::setData($data); |
25 | 25 | $data['method'] = $method; |
26 | 26 | curl_setopt($handler, CURLOPT_POSTFIELDS, $data); |
27 | 27 | $result = curl_exec($handler); |
28 | 28 | if (curl_errno($handler)) { |
29 | - logger::write(curl_error($handler),loggerTypes::WARNING); |
|
29 | + logger::write(curl_error($handler), loggerTypes::WARNING); |
|
30 | 30 | } |
31 | 31 | if ($info['token'] != settings::$token) { |
32 | 32 | curl_close($handler); |
@@ -42,9 +42,9 @@ discard block |
||
42 | 42 | curl_setopt($curl_handler, CURLOPT_RETURNTRANSFER, true); |
43 | 43 | curl_setopt($curl_handler, CURLOPT_SSL_VERIFYPEER, false); |
44 | 44 | } |
45 | - else{ |
|
45 | + else { |
|
46 | 46 | $token = settings::$token; |
47 | - if (!isset(self::$curl_handler)){ |
|
47 | + if (!isset(self::$curl_handler)) { |
|
48 | 48 | self::$curl_handler = curl_init(settings::$base_url."/bot$token/"); |
49 | 49 | curl_setopt(self::$curl_handler, CURLOPT_RETURNTRANSFER, true); |
50 | 50 | curl_setopt(self::$curl_handler, CURLOPT_SSL_VERIFYPEER, false); |
@@ -60,22 +60,22 @@ discard block |
||
60 | 60 | ]; |
61 | 61 | } |
62 | 62 | |
63 | - private static function setTimeout(array &$data , CurlHandle $curl_handler,string $method): void { |
|
63 | + private static function setTimeout(array &$data, CurlHandle $curl_handler, string $method): void { |
|
64 | 64 | if (isset($data['forgot'])) { |
65 | 65 | curl_setopt($curl_handler, CURLOPT_TIMEOUT_MS, settings::$forgot_time); |
66 | 66 | unset($data['forgot']); |
67 | 67 | } |
68 | - elseif ($method === 'getUpdates' || $method === 'setWebhook'){ |
|
68 | + elseif ($method === 'getUpdates' || $method === 'setWebhook') { |
|
69 | 69 | curl_setopt($curl_handler, CURLOPT_TIMEOUT_MS, 5000); |
70 | 70 | } |
71 | - else{ |
|
71 | + else { |
|
72 | 72 | curl_setopt($curl_handler, CURLOPT_TIMEOUT_MS, settings::$base_timeout); |
73 | 73 | } |
74 | 74 | } |
75 | 75 | |
76 | 76 | private static function setData(array &$data): void { |
77 | - foreach ($data as &$value){ |
|
78 | - if (is_array($value) || (is_object($value) && !is_a($value,'CURLFile'))){ |
|
77 | + foreach ($data as &$value) { |
|
78 | + if (is_array($value) || (is_object($value) && !is_a($value, 'CURLFile'))) { |
|
79 | 79 | $value = json_encode($value); |
80 | 80 | } |
81 | 81 | } |
@@ -41,8 +41,7 @@ discard block |
||
41 | 41 | $curl_handler = curl_init(settings::$base_url."/bot$token/"); |
42 | 42 | curl_setopt($curl_handler, CURLOPT_RETURNTRANSFER, true); |
43 | 43 | curl_setopt($curl_handler, CURLOPT_SSL_VERIFYPEER, false); |
44 | - } |
|
45 | - else{ |
|
44 | + } else{ |
|
46 | 45 | $token = settings::$token; |
47 | 46 | if (!isset(self::$curl_handler)){ |
48 | 47 | self::$curl_handler = curl_init(settings::$base_url."/bot$token/"); |
@@ -64,11 +63,9 @@ discard block |
||
64 | 63 | if (isset($data['forgot'])) { |
65 | 64 | curl_setopt($curl_handler, CURLOPT_TIMEOUT_MS, settings::$forgot_time); |
66 | 65 | unset($data['forgot']); |
67 | - } |
|
68 | - elseif ($method === 'getUpdates' || $method === 'setWebhook'){ |
|
66 | + } elseif ($method === 'getUpdates' || $method === 'setWebhook'){ |
|
69 | 67 | curl_setopt($curl_handler, CURLOPT_TIMEOUT_MS, 5000); |
70 | - } |
|
71 | - else{ |
|
68 | + } else{ |
|
72 | 69 | curl_setopt($curl_handler, CURLOPT_TIMEOUT_MS, settings::$base_timeout); |
73 | 70 | } |
74 | 71 | } |
@@ -78,11 +78,9 @@ |
||
78 | 78 | $value = 'bots_files/' . $value . '/'; |
79 | 79 | } |
80 | 80 | self::$$setting = $value; |
81 | - } |
|
82 | - catch (TypeError) { |
|
81 | + } catch (TypeError) { |
|
83 | 82 | logger::write("$setting setting has wrong type , its set to default value", loggerTypes::WARNING); |
84 | - } |
|
85 | - catch (Error) { |
|
83 | + } catch (Error) { |
|
86 | 84 | logger::write("$setting setting is not one of library settings", loggerTypes::WARNING); |
87 | 85 | } |
88 | 86 | } |
@@ -28,7 +28,7 @@ discard block |
||
28 | 28 | |
29 | 29 | public static int $log_size = 10; |
30 | 30 | |
31 | - public static string|CURLFile|null $certificate = null; |
|
31 | + public static string | CURLFile | null $certificate = null; |
|
32 | 32 | |
33 | 33 | public static bool $handler = true; |
34 | 34 | |
@@ -62,14 +62,14 @@ discard block |
||
62 | 62 | |
63 | 63 | public static array $allowed_updates = ['message', 'edited_channel_post', 'callback_query', 'inline_query']; |
64 | 64 | |
65 | - public static array|null $db = null; |
|
65 | + public static array | null $db = null; |
|
66 | 66 | |
67 | - public static array|null $pay = null; |
|
67 | + public static array | null $pay = null; |
|
68 | 68 | |
69 | 69 | /** |
70 | 70 | * @internal Only for BPT self usage , Don't use it in your source! |
71 | 71 | */ |
72 | - public static function init (array|stdClass $settings): void { |
|
72 | + public static function init(array | stdClass $settings): void { |
|
73 | 73 | $settings = (array) $settings; |
74 | 74 | foreach ($settings as $setting => $value) { |
75 | 75 | try { |
@@ -77,10 +77,10 @@ discard block |
||
77 | 77 | if (!is_dir(realpath('bots_files'))) { |
78 | 78 | mkdir('bots_files'); |
79 | 79 | } |
80 | - if (!is_dir(realpath('bots_files/' . $value))) { |
|
81 | - mkdir('bots_files/' . $value); |
|
80 | + if (!is_dir(realpath('bots_files/'.$value))) { |
|
81 | + mkdir('bots_files/'.$value); |
|
82 | 82 | } |
83 | - $value = 'bots_files/' . $value . '/'; |
|
83 | + $value = 'bots_files/'.$value.'/'; |
|
84 | 84 | } |
85 | 85 | self::$$setting = $value; |
86 | 86 | } |
@@ -119,7 +119,7 @@ discard block |
||
119 | 119 | /** |
120 | 120 | * @internal Only for BPT self usage , Don't use it in your source! |
121 | 121 | */ |
122 | - public static function done (): void { |
|
122 | + public static function done(): void { |
|
123 | 123 | if (self::$logger) { |
124 | 124 | $estimated = round((microtime(true) - $_SERVER['REQUEST_TIME_FLOAT']) * 1000, 2); |
125 | 125 | $status_message = match (true) { |
@@ -134,7 +134,7 @@ discard block |
||
134 | 134 | } |
135 | 135 | } |
136 | 136 | |
137 | - private static function security (): void { |
|
137 | + private static function security(): void { |
|
138 | 138 | if (self::$security) { |
139 | 139 | ini_set('magic_quotes_gpc', 'off'); |
140 | 140 | ini_set('sql.safe_mode', 'on'); |
@@ -149,11 +149,11 @@ discard block |
||
149 | 149 | } |
150 | 150 | } |
151 | 151 | |
152 | - private static function secureFolder (): void { |
|
152 | + private static function secureFolder(): void { |
|
153 | 153 | if (self::$secure_folder) { |
154 | 154 | $address = explode('/', $_SERVER['REQUEST_URI']); |
155 | 155 | unset($address[count($address) - 1]); |
156 | - $address = implode('/', $address) . '/BPT.php'; |
|
156 | + $address = implode('/', $address).'/BPT.php'; |
|
157 | 157 | $text = "ErrorDocument 404 $address\nErrorDocument 403 $address\n Options -Indexes\n Order Deny,Allow\nDeny from all\nAllow from 127.0.0.1\n<Files *.php>\n Order Allow,Deny\n Allow from all\n</Files>"; |
158 | 158 | $htaccess = realpath('.htaccess'); |
159 | 159 | if (!file_exists($htaccess) || filesize($htaccess) != strlen($text)) { |
@@ -162,7 +162,7 @@ discard block |
||
162 | 162 | } |
163 | 163 | } |
164 | 164 | |
165 | - private static function getUpdates (): void { |
|
165 | + private static function getUpdates(): void { |
|
166 | 166 | if (!self::$handler) { |
167 | 167 | logger::write('You can\'t use getUpdates receiver when handler is off , use webhook or use handler', loggerTypes::ERROR); |
168 | 168 | throw new bptException('GETUPDATE_NEED_HANDLER'); |
@@ -17,14 +17,14 @@ discard block |
||
17 | 17 | /** |
18 | 18 | * @internal Only for BPT self usage , Don't use it in your source! |
19 | 19 | */ |
20 | - public static function init(): string|null { |
|
20 | + public static function init(): string | null { |
|
21 | 21 | return self::getUpdate(); |
22 | 22 | } |
23 | 23 | |
24 | - private static function getUpdate (): string|null { |
|
24 | + private static function getUpdate(): string | null { |
|
25 | 25 | $up = glob('*.update'); |
26 | 26 | if (!isset($up[0])) { |
27 | - logger::write('not authorized access denied. IP : '. $_SERVER['REMOTE_ADDR'] ?? 'unknown',loggerTypes::WARNING); |
|
27 | + logger::write('not authorized access denied. IP : '.$_SERVER['REMOTE_ADDR'] ?? 'unknown', loggerTypes::WARNING); |
|
28 | 28 | BPT::exit(); |
29 | 29 | } |
30 | 30 | $up = end($up); |
@@ -56,12 +56,12 @@ discard block |
||
56 | 56 | } |
57 | 57 | |
58 | 58 | private static function create($file) { |
59 | - file_put_contents('receiver.php', '<?php $BPT = file_get_contents("php://input");$id = json_decode($BPT, true)[\'update_id\'];file_put_contents("{$_SERVER[\'REMOTE_ADDR\']}-$id.update",$BPT);exec("php ' . $file . ' > /dev/null &");'); |
|
59 | + file_put_contents('receiver.php', '<?php $BPT = file_get_contents("php://input");$id = json_decode($BPT, true)[\'update_id\'];file_put_contents("{$_SERVER[\'REMOTE_ADDR\']}-$id.update",$BPT);exec("php '.$file.' > /dev/null &");'); |
|
60 | 60 | } |
61 | 61 | |
62 | 62 | #[ArrayShape(['url' => "array|string|string[]", 'file' => "string"])] |
63 | 63 | private static function setURLS(): array { |
64 | - $base_url = (isset(settings::$certificate) ? 'http://' : 'https://') . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; |
|
64 | + $base_url = (isset(settings::$certificate) ? 'http://' : 'https://').$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; |
|
65 | 65 | return [ |
66 | 66 | 'url'=>str_replace(basename($_SERVER['REQUEST_URI']), 'receiver.php', $base_url), |
67 | 67 | 'file'=>basename($_SERVER['SCRIPT_NAME']) |
@@ -14,9 +14,9 @@ discard block |
||
14 | 14 | * curl class , for multiprocessing with curl tricks |
15 | 15 | */ |
16 | 16 | class curl extends webhook { |
17 | - public static function init (): string|null { |
|
17 | + public static function init(): string | null { |
|
18 | 18 | if (!self::checkIP()) { |
19 | - logger::write('not authorized access denied. IP : '. $_SERVER['REMOTE_ADDR'] ?? 'unknown',loggerTypes::WARNING); |
|
19 | + logger::write('not authorized access denied. IP : '.$_SERVER['REMOTE_ADDR'] ?? 'unknown', loggerTypes::WARNING); |
|
20 | 20 | BPT::exit(); |
21 | 21 | } |
22 | 22 | return self::getUpdate(); |
@@ -26,7 +26,7 @@ discard block |
||
26 | 26 | return $_SERVER['REMOTE_ADDR'] === $_SERVER['SERVER_ADDR']; |
27 | 27 | } |
28 | 28 | |
29 | - private static function getUpdate (): string { |
|
29 | + private static function getUpdate(): string { |
|
30 | 30 | $input = json_decode(file_get_contents("php://input"), true); |
31 | 31 | webhook::telegramVerify($input['ip']); |
32 | 32 | return $input['update']; |
@@ -39,14 +39,14 @@ discard block |
||
39 | 39 | $urls = self::setURLS(); |
40 | 40 | $file = $urls['file']; |
41 | 41 | $timeout = self::getTimeout($file); |
42 | - self::create($file,$timeout); |
|
42 | + self::create($file, $timeout); |
|
43 | 43 | self::setWebhook($urls['url']); |
44 | 44 | lock::set('BPT-MULTI-CURL'); |
45 | 45 | } |
46 | 46 | |
47 | - private static function getTimeout($url): float|int { |
|
47 | + private static function getTimeout($url): float | int { |
|
48 | 48 | $times = []; |
49 | - for ($i = 0; $i < 10; $i ++) { |
|
49 | + for ($i = 0; $i < 10; $i++) { |
|
50 | 50 | $ch = curl_init($url); |
51 | 51 | curl_setopt_array($ch, [CURLOPT_POSTFIELDS => json_encode([]), CURLOPT_TIMEOUT_MS => 100, CURLOPT_NOBODY => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false, CURLOPT_CONNECTTIMEOUT_MS => 100, CURLOPT_HTTPHEADER => ['accept: application/json', 'content-type: application/json']]); |
52 | 52 | $start = microtime(true); |
@@ -57,13 +57,13 @@ discard block |
||
57 | 57 | return $timeout > 50 ? $timeout + 10 : 50; |
58 | 58 | } |
59 | 59 | |
60 | - private static function create($file,$timeout) { |
|
61 | - file_put_contents('receiver.php', '<?php http_response_code(200);ignore_user_abort();$ch = curl_init(\'' . $file . '\');curl_setopt_array($ch, [CURLOPT_POSTFIELDS => json_encode([\'update\'=>file_get_contents(\'php://input\'),\'ip\'=>$_SERVER[\'REMOTE_ADDR\']]), CURLOPT_TIMEOUT_MS => ' . $timeout . ', CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false, CURLOPT_CONNECTTIMEOUT_MS => ' . $timeout . ', CURLOPT_HTTPHEADER => [\'accept: application/json\', \'content-type: application/json\']]);curl_exec($ch);curl_close($ch);?>'); |
|
60 | + private static function create($file, $timeout) { |
|
61 | + file_put_contents('receiver.php', '<?php http_response_code(200);ignore_user_abort();$ch = curl_init(\''.$file.'\');curl_setopt_array($ch, [CURLOPT_POSTFIELDS => json_encode([\'update\'=>file_get_contents(\'php://input\'),\'ip\'=>$_SERVER[\'REMOTE_ADDR\']]), CURLOPT_TIMEOUT_MS => '.$timeout.', CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false, CURLOPT_CONNECTTIMEOUT_MS => '.$timeout.', CURLOPT_HTTPHEADER => [\'accept: application/json\', \'content-type: application/json\']]);curl_exec($ch);curl_close($ch);?>'); |
|
62 | 62 | } |
63 | 63 | |
64 | 64 | #[ArrayShape(['url' => "array|string|string[]", 'file' => "array|string|string[]"])] |
65 | 65 | private static function setURLS(): array { |
66 | - $base_url = (isset(settings::$certificate) ? 'http://' : 'https://') . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; |
|
66 | + $base_url = (isset(settings::$certificate) ? 'http://' : 'https://').$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; |
|
67 | 67 | $file = basename($_SERVER['REQUEST_URI']); |
68 | 68 | return [ |
69 | 69 | 'url'=>str_replace($file, 'receiver.php', $base_url), |
@@ -35,8 +35,7 @@ |
||
35 | 35 | private static function loadData(): bool|int|string { |
36 | 36 | if (lock::exist('getUpdate')) { |
37 | 37 | $last_update_id = lock::read('getUpdate'); |
38 | - } |
|
39 | - else { |
|
38 | + } else { |
|
40 | 39 | self::deleteOldLocks(); |
41 | 40 | telegram::deleteWebhook(); |
42 | 41 | $last_update_id = 0; |
@@ -16,24 +16,24 @@ discard block |
||
16 | 16 | */ |
17 | 17 | class getUpdates extends receiver { |
18 | 18 | #[NoReturn] |
19 | - public static function init () { |
|
19 | + public static function init() { |
|
20 | 20 | $last_update_id = self::loadData(); |
21 | 21 | lock::set('getUpdateHook'); |
22 | - while(true) { |
|
22 | + while (true) { |
|
23 | 23 | if (lock::exist('getUpdateHook')) { |
24 | - $updates = telegram::getUpdates($last_update_id,allowed_updates: settings::$allowed_updates); |
|
24 | + $updates = telegram::getUpdates($last_update_id, allowed_updates: settings::$allowed_updates); |
|
25 | 25 | if (!telegram::$status) { |
26 | - logger::write("There is some problem happened , telegram response : \n".json_encode($updates),loggerTypes::ERROR); |
|
27 | - BPT::exit(print_r($updates,true)); |
|
26 | + logger::write("There is some problem happened , telegram response : \n".json_encode($updates), loggerTypes::ERROR); |
|
27 | + BPT::exit(print_r($updates, true)); |
|
28 | 28 | } |
29 | 29 | self::handleUpdates($updates); |
30 | - lock::save('getUpdate',BPT::$update->update_id+1); |
|
31 | - $last_update_id = BPT::$update->update_id+1; |
|
30 | + lock::save('getUpdate', BPT::$update->update_id + 1); |
|
31 | + $last_update_id = BPT::$update->update_id + 1; |
|
32 | 32 | } |
33 | 33 | } |
34 | 34 | } |
35 | 35 | |
36 | - private static function loadData(): bool|int|string { |
|
36 | + private static function loadData(): bool | int | string { |
|
37 | 37 | if (lock::exist('getUpdate')) { |
38 | 38 | $last_update_id = lock::read('getUpdate'); |
39 | 39 | } |
@@ -41,7 +41,7 @@ discard block |
||
41 | 41 | self::deleteOldLocks(); |
42 | 42 | telegram::deleteWebhook(); |
43 | 43 | $last_update_id = 0; |
44 | - lock::save('getUpdate',0); |
|
44 | + lock::save('getUpdate', 0); |
|
45 | 45 | } |
46 | 46 | return $last_update_id; |
47 | 47 | } |