@@ -13,7 +13,7 @@ |
||
13 | 13 | if (lock::exist('BPT-MULTI-EXEC')) { |
14 | 14 | self::setUpdate(exec::init()); |
15 | 15 | } |
16 | - elseif(lock::exist('BPT-MULTI-CURL')) { |
|
16 | + elseif (lock::exist('BPT-MULTI-CURL')) { |
|
17 | 17 | self::setUpdate(curl::init()); |
18 | 18 | } |
19 | 19 | else { |
@@ -12,11 +12,9 @@ |
||
12 | 12 | public static function init() { |
13 | 13 | if (lock::exist('BPT-MULTI-EXEC')) { |
14 | 14 | self::setUpdate(exec::init()); |
15 | - } |
|
16 | - elseif(lock::exist('BPT-MULTI-CURL')) { |
|
15 | + } elseif(lock::exist('BPT-MULTI-CURL')) { |
|
17 | 16 | self::setUpdate(curl::init()); |
18 | - } |
|
19 | - else { |
|
17 | + } else { |
|
20 | 18 | self::deleteOldLocks(); |
21 | 19 | self::checkURL(); |
22 | 20 | self::setCertificate(); |
@@ -22,8 +22,7 @@ discard block |
||
22 | 22 | self::handleUpdates($updates); |
23 | 23 | lock::save('getUpdate',BPT::$update->update_id+1); |
24 | 24 | $last_update_id = BPT::$update->update_id+1; |
25 | - } |
|
26 | - else { |
|
25 | + } else { |
|
27 | 26 | logger::write("There is some problem happened , telegram response : \n".json_encode($updates),loggerTypes::ERROR); |
28 | 27 | BPT::exit(print_r($updates,true)); |
29 | 28 | } |
@@ -34,8 +33,7 @@ discard block |
||
34 | 33 | private static function loadData(): bool|int|string { |
35 | 34 | if (lock::exist('getUpdate')) { |
36 | 35 | $last_update_id = lock::read('getUpdate'); |
37 | - } |
|
38 | - else { |
|
36 | + } else { |
|
39 | 37 | self::deleteOldLocks(); |
40 | 38 | telegram::deleteWebhook(); |
41 | 39 | $last_update_id = 0; |
@@ -14,25 +14,25 @@ discard block |
||
14 | 14 | * getUpdates class , For receiving updates by polling methods |
15 | 15 | */ |
16 | 16 | class getUpdates extends receiver { |
17 | - public static function init () { |
|
17 | + public static function init() { |
|
18 | 18 | $last_update_id = self::loadData(); |
19 | - while(true) { |
|
19 | + while (true) { |
|
20 | 20 | if (!lock::exist('getUpdate')) { |
21 | - $updates = telegram::getUpdates($last_update_id,allowed_updates: settings::$allowed_updates); |
|
21 | + $updates = telegram::getUpdates($last_update_id, allowed_updates: settings::$allowed_updates); |
|
22 | 22 | if (telegram::$status) { |
23 | 23 | self::handleUpdates($updates); |
24 | - lock::save('getUpdate',BPT::$update->update_id+1); |
|
25 | - $last_update_id = BPT::$update->update_id+1; |
|
24 | + lock::save('getUpdate', BPT::$update->update_id + 1); |
|
25 | + $last_update_id = BPT::$update->update_id + 1; |
|
26 | 26 | } |
27 | 27 | else { |
28 | - logger::write("There is some problem happened , telegram response : \n".json_encode($updates),loggerTypes::ERROR); |
|
29 | - BPT::exit(print_r($updates,true)); |
|
28 | + logger::write("There is some problem happened , telegram response : \n".json_encode($updates), loggerTypes::ERROR); |
|
29 | + BPT::exit(print_r($updates, true)); |
|
30 | 30 | } |
31 | 31 | } |
32 | 32 | } |
33 | 33 | } |
34 | 34 | |
35 | - private static function loadData(): bool|int|string { |
|
35 | + private static function loadData(): bool | int | string { |
|
36 | 36 | if (lock::exist('getUpdate')) { |
37 | 37 | $last_update_id = lock::read('getUpdate'); |
38 | 38 | } |
@@ -40,7 +40,7 @@ discard block |
||
40 | 40 | self::deleteOldLocks(); |
41 | 41 | telegram::deleteWebhook(); |
42 | 42 | $last_update_id = 0; |
43 | - lock::save('getUpdate',0); |
|
43 | + lock::save('getUpdate', 0); |
|
44 | 44 | } |
45 | 45 | return $last_update_id; |
46 | 46 | } |
@@ -34,8 +34,7 @@ discard block |
||
34 | 34 | if(settings::$receiver === receiver::GETUPDATES) { |
35 | 35 | logger::write('Answer mode only work when receiver is webhook',loggerTypes::ERROR); |
36 | 36 | throw new bptException('ANSWER_MODE_GETUPDATES'); |
37 | - } |
|
38 | - elseif(settings::$multi) { |
|
37 | + } elseif(settings::$multi) { |
|
39 | 38 | logger::write('You can not use answer mode when multi setting is on',loggerTypes::ERROR); |
40 | 39 | throw new bptException('ANSWER_MODE_MULTI'); |
41 | 40 | } |
@@ -49,8 +48,7 @@ discard block |
||
49 | 48 | foreach ($data as $key=>&$value){ |
50 | 49 | if (!isset($value)){ |
51 | 50 | unset($data[$key]); |
52 | - } |
|
53 | - elseif (is_array($value) || is_object($value)){ |
|
51 | + } elseif (is_array($value) || is_object($value)){ |
|
54 | 52 | $value = json_encode($value); |
55 | 53 | } |
56 | 54 | } |
@@ -17,44 +17,44 @@ |
||
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 $method,array $data): bool { |
|
20 | + public static function init(string $method, array $data): bool { |
|
21 | 21 | self::checkAnswered(); |
22 | 22 | self::checkWebhook(); |
23 | 23 | self::sieveData($data); |
24 | 24 | self::$is_answered = true; |
25 | 25 | $data['method'] = $method; |
26 | 26 | $payload = json_encode($data); |
27 | - header('Content-Type: application/json;Content-Length: ' . strlen($payload)); |
|
27 | + header('Content-Type: application/json;Content-Length: '.strlen($payload)); |
|
28 | 28 | echo $payload; |
29 | 29 | return true; |
30 | 30 | } |
31 | 31 | |
32 | 32 | private static function checkAnswered(): void { |
33 | 33 | if (self::$is_answered) { |
34 | - logger::write('You can use answer mode only once for each webhook update , You already did it!',loggerTypes::ERROR); |
|
34 | + logger::write('You can use answer mode only once for each webhook update , You already did it!', loggerTypes::ERROR); |
|
35 | 35 | throw new bptException('ANSWER_MODE_USED'); |
36 | 36 | } |
37 | 37 | } |
38 | 38 | |
39 | 39 | private static function checkWebhook(): void { |
40 | - if(settings::$receiver === receiver::GETUPDATES) { |
|
41 | - logger::write('Answer mode only work when receiver is webhook',loggerTypes::ERROR); |
|
40 | + if (settings::$receiver === receiver::GETUPDATES) { |
|
41 | + logger::write('Answer mode only work when receiver is webhook', loggerTypes::ERROR); |
|
42 | 42 | throw new bptException('ANSWER_MODE_GETUPDATES'); |
43 | 43 | } |
44 | - elseif(settings::$multi) { |
|
45 | - logger::write('You can not use answer mode when multi setting is on',loggerTypes::ERROR); |
|
44 | + elseif (settings::$multi) { |
|
45 | + logger::write('You can not use answer mode when multi setting is on', loggerTypes::ERROR); |
|
46 | 46 | throw new bptException('ANSWER_MODE_MULTI'); |
47 | 47 | } |
48 | 48 | } |
49 | 49 | |
50 | 50 | private static function sieveData(array &$data): void { |
51 | - unset($data['token'],$data['forgot'],$data['return_array']); |
|
51 | + unset($data['token'], $data['forgot'], $data['return_array']); |
|
52 | 52 | |
53 | - foreach ($data as $key=>&$value){ |
|
54 | - if (!isset($value)){ |
|
53 | + foreach ($data as $key=>&$value) { |
|
54 | + if (!isset($value)) { |
|
55 | 55 | unset($data[$key]); |
56 | 56 | } |
57 | - elseif (is_array($value) || is_object($value)){ |
|
57 | + elseif (is_array($value) || is_object($value)) { |
|
58 | 58 | $value = json_encode($value); |
59 | 59 | } |
60 | 60 | } |
@@ -175,8 +175,9 @@ |
||
175 | 175 | if (telegram::$status) { |
176 | 176 | $check = $check->status; |
177 | 177 | $result[$id] = $check !== chatMemberStatus::LEFT && $check !== chatMemberStatus::KICKED; |
178 | + } else { |
|
179 | + $result[$id] = null; |
|
178 | 180 | } |
179 | - else $result[$id] = null; |
|
180 | 181 | } |
181 | 182 | return $result; |
182 | 183 | } |
@@ -20,7 +20,7 @@ discard block |
||
20 | 20 | * |
21 | 21 | * @return bool |
22 | 22 | */ |
23 | - public static function isUsername (string $username): bool { |
|
23 | + public static function isUsername(string $username): bool { |
|
24 | 24 | $length = strlen($username); |
25 | 25 | return !str_contains($username, '__') && $length >= 5 && $length <= 33 && preg_match('/^@?([a-zA-Z])(\w{4,31})$/', $username); |
26 | 26 | } |
@@ -37,7 +37,7 @@ discard block |
||
37 | 37 | * |
38 | 38 | * @return bool |
39 | 39 | */ |
40 | - public static function ipInRange (string $ip, string $range): bool { |
|
40 | + public static function ipInRange(string $ip, string $range): bool { |
|
41 | 41 | if (!str_contains($range, '/')) { |
42 | 42 | $range .= '/32'; |
43 | 43 | } |
@@ -57,7 +57,7 @@ discard block |
||
57 | 57 | * |
58 | 58 | * @return bool |
59 | 59 | */ |
60 | - public static function isTelegram (string $ip): bool { |
|
60 | + public static function isTelegram(string $ip): bool { |
|
61 | 61 | return tools::ipInRange($ip, '149.154.160.0/20') || tools::ipInRange($ip, '91.108.4.0/22'); |
62 | 62 | } |
63 | 63 | |
@@ -72,10 +72,10 @@ discard block |
||
72 | 72 | * |
73 | 73 | * @return bool |
74 | 74 | */ |
75 | - public static function isCloudFlare (string $ip): bool { |
|
75 | + public static function isCloudFlare(string $ip): bool { |
|
76 | 76 | $cf_ips = ['173.245.48.0/20', '103.21.244.0/22', '103.22.200.0/22', '103.31.4.0/22', '141.101.64.0/18', '108.162.192.0/18', '190.93.240.0/20', '188.114.96.0/20', '197.234.240.0/22', '198.41.128.0/17', '162.158.0.0/15', '104.16.0.0/12', '104.24.0.0/14', '172.64.0.0/13', '131.0.72.0/22']; |
77 | 77 | foreach ($cf_ips as $cf_ip) { |
78 | - if (self::ipInRange($ip,$cf_ip)) { |
|
78 | + if (self::ipInRange($ip, $cf_ip)) { |
|
79 | 79 | return true; |
80 | 80 | } |
81 | 81 | } |
@@ -93,10 +93,10 @@ discard block |
||
93 | 93 | * |
94 | 94 | * @return bool |
95 | 95 | */ |
96 | - public static function isArvanCloud (string $ip): bool { |
|
96 | + public static function isArvanCloud(string $ip): bool { |
|
97 | 97 | $ar_ips = ['185.143.232.0/22', '92.114.16.80/28', '2.146.0.0/28', '46.224.2.32/29', '89.187.178.96/29', '195.181.173.128/29', '89.187.169.88/29', '188.229.116.16/29', '83.123.255.56/31', '164.138.128.28/31', '94.182.182.28/30', '185.17.115.176/30', '5.213.255.36/31', '138.128.139.144/29', '5.200.14.8/29', '188.122.68.224/29', '188.122.83.176/29', '213.179.217.16/29', '185.179.201.192/29', '43.239.139.192/29', '213.179.197.16/29', '213.179.201.192/29', '109.200.214.248/29', '138.128.141.16/29', '188.122.78.136/29', '213.179.211.32/29', '103.194.164.24/29', '185.50.105.136/29', '213.179.213.16/29', '162.244.52.120/29', '188.122.80.240/29', '109.200.195.64/29', '109.200.199.224/29', '185.228.238.0/28', '94.182.153.24/29', '94.101.182.0/27', '37.152.184.208/28', '78.39.156.192/28', '158.255.77.238/31', '81.12.28.16/29', '176.65.192.202/31', '2.144.3.128/28', '89.45.48.64/28', '37.32.16.0/27', '37.32.17.0/27', '37.32.18.0/27']; |
98 | 98 | foreach ($ar_ips as $ar_ip) { |
99 | - if (self::ipInRange($ip,$ar_ip)) { |
|
99 | + if (self::ipInRange($ip, $ar_ip)) { |
|
100 | 100 | return true; |
101 | 101 | } |
102 | 102 | } |
@@ -116,9 +116,9 @@ discard block |
||
116 | 116 | * |
117 | 117 | * @return bool|user return array when verify is active and token is true array of telegram getMe result |
118 | 118 | */ |
119 | - public static function isToken (string $token, bool $verify = false): bool|user { |
|
119 | + public static function isToken(string $token, bool $verify = false): bool | user { |
|
120 | 120 | if (preg_match('/^(\d{8,10}):[\w\-]{35}$/', $token)) { |
121 | - if ($verify){ |
|
121 | + if ($verify) { |
|
122 | 122 | $res = telegram::me($token); |
123 | 123 | if (telegram::$status) { |
124 | 124 | return $res; |
@@ -150,14 +150,14 @@ discard block |
||
150 | 150 | * |
151 | 151 | * @return bool |
152 | 152 | */ |
153 | - public static function isJoined (array|string|int $ids , int|null $user_id = null): bool { |
|
153 | + public static function isJoined(array | string | int $ids, int | null $user_id = null): bool { |
|
154 | 154 | if (!is_array($ids)) { |
155 | 155 | $ids = [$ids]; |
156 | 156 | } |
157 | 157 | $user_id = $user_id ?? request::catchFields('user_id'); |
158 | 158 | |
159 | 159 | foreach ($ids as $id) { |
160 | - $check = telegram::getChatMember($id,$user_id); |
|
160 | + $check = telegram::getChatMember($id, $user_id); |
|
161 | 161 | if (telegram::$status) { |
162 | 162 | $check = $check->status; |
163 | 163 | if ($check === chatMemberStatus::LEFT || $check === chatMemberStatus::KICKED) { |
@@ -184,7 +184,7 @@ discard block |
||
184 | 184 | * |
185 | 185 | * @return array keys will be id and values will be bool(null for not founded ids) |
186 | 186 | */ |
187 | - public static function joinChecker (array|string|int $ids , int|null $user_id = null): array { |
|
187 | + public static function joinChecker(array | string | int $ids, int | null $user_id = null): array { |
|
188 | 188 | if (!is_array($ids)) { |
189 | 189 | $ids = [$ids]; |
190 | 190 | } |
@@ -192,7 +192,7 @@ discard block |
||
192 | 192 | |
193 | 193 | $result = []; |
194 | 194 | foreach ($ids as $id) { |
195 | - $check = telegram::getChatMember($id,$user_id); |
|
195 | + $check = telegram::getChatMember($id, $user_id); |
|
196 | 196 | if (telegram::$status) { |
197 | 197 | $check = $check->status; |
198 | 198 | $result[$id] = $check !== chatMemberStatus::LEFT && $check !== chatMemberStatus::KICKED; |
@@ -212,6 +212,6 @@ discard block |
||
212 | 212 | * @return bool |
213 | 213 | */ |
214 | 214 | public static function isShorted(string $text): bool{ |
215 | - return preg_match('/^[a-zA-Z0-9]+$/',$text); |
|
215 | + return preg_match('/^[a-zA-Z0-9]+$/', $text); |
|
216 | 216 | } |
217 | 217 | } |
218 | 218 | \ No newline at end of file |
@@ -105,8 +105,9 @@ |
||
105 | 105 | foreach ($string as $k => &$v) { |
106 | 106 | if ($diff->$v) { |
107 | 107 | $v = $diff->$v; |
108 | + } else { |
|
109 | + unset($string[$k]); |
|
108 | 110 | } |
109 | - else unset($string[$k]); |
|
110 | 111 | } |
111 | 112 | $string['status'] = $base_time < $target_time ? 'later' : 'ago'; |
112 | 113 |
@@ -21,10 +21,10 @@ discard block |
||
21 | 21 | * |
22 | 22 | * @return string |
23 | 23 | */ |
24 | - public static function byteFormat (int $byte, int $precision = 2): string { |
|
24 | + public static function byteFormat(int $byte, int $precision = 2): string { |
|
25 | 25 | $rate_counter = 0; |
26 | 26 | |
27 | - while ($byte > 1024){ |
|
27 | + while ($byte > 1024) { |
|
28 | 28 | $byte /= 1024; |
29 | 29 | $rate_counter++; |
30 | 30 | } |
@@ -33,7 +33,7 @@ discard block |
||
33 | 33 | $byte = round($byte, $precision); |
34 | 34 | } |
35 | 35 | |
36 | - return $byte . ' ' . ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB'][$rate_counter]; |
|
36 | + return $byte.' '.['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB'][$rate_counter]; |
|
37 | 37 | } |
38 | 38 | |
39 | 39 | /** |
@@ -50,10 +50,10 @@ discard block |
||
50 | 50 | * |
51 | 51 | * @return string|false return false when mode is incorrect |
52 | 52 | */ |
53 | - public static function modeEscape (string $text, string $mode = parseMode::HTML): string|false { |
|
53 | + public static function modeEscape(string $text, string $mode = parseMode::HTML): string | false { |
|
54 | 54 | return match ($mode) { |
55 | - parseMode::HTML => str_replace(['&', '<', '>',], ["&", "<", ">",], $text), |
|
56 | - parseMode::MARKDOWN => str_replace(['\\', '_', '*', '`', '['], ['\\\\', '\_', '\*', '\`', '\[',], $text), |
|
55 | + parseMode::HTML => str_replace(['&', '<', '>', ], ["&", "<", ">", ], $text), |
|
56 | + parseMode::MARKDOWN => str_replace(['\\', '_', '*', '`', '['], ['\\\\', '\_', '\*', '\`', '\[', ], $text), |
|
57 | 57 | parseMode::MARKDOWNV2 => str_replace( |
58 | 58 | ['_', '*', '[', ']', '(', ')', '~', '`', '>', '#', '+', '-', '=', '|', '{', '}', '.', '!', '\\'], |
59 | 59 | ['\_', '\*', '\[', '\]', '\(', '\)', '\~', '\`', '\>', '\#', '\+', '\-', '\=', '\|', '\{', '\}', '\.', '\!', '\\\\'], |
@@ -92,12 +92,12 @@ discard block |
||
92 | 92 | * @return array{status: string,year: string,month: string,day: string,hour: string,minute: string,second: string} |
93 | 93 | * @throws Exception |
94 | 94 | */ |
95 | - public static function timeDiff (int|string $target_time, int|string|null $base_time = null): array { |
|
95 | + public static function timeDiff(int | string $target_time, int | string | null $base_time = null): array { |
|
96 | 96 | if (!isset($base_time)) { |
97 | 97 | $base_time = '@'.time(); |
98 | 98 | } |
99 | 99 | $base_time = new DateTime($base_time); |
100 | - $target_time = new DateTime(is_numeric($target_time) ? '@' . $target_time : $target_time . ' +00:00'); |
|
100 | + $target_time = new DateTime(is_numeric($target_time) ? '@'.$target_time : $target_time.' +00:00'); |
|
101 | 101 | |
102 | 102 | $diff = $base_time->diff($target_time); |
103 | 103 | |
@@ -124,12 +124,12 @@ discard block |
||
124 | 124 | * |
125 | 125 | * @return string[]|string |
126 | 126 | */ |
127 | - public static function realEscapeString(string|array $input): string|array { |
|
128 | - if(is_array($input)) { |
|
127 | + public static function realEscapeString(string | array $input): string | array { |
|
128 | + if (is_array($input)) { |
|
129 | 129 | return array_map(__METHOD__, $input); |
130 | 130 | } |
131 | 131 | |
132 | - if(!empty($input) && is_string($input)) { |
|
132 | + if (!empty($input) && is_string($input)) { |
|
133 | 133 | return str_replace(['\\', "\0", "\n", "\r", "'", '"', "\x1a"], ['\\\\', '\\0', '\\n', '\\r', "\\'", '\\"', '\\Z'], $input); |
134 | 134 | } |
135 | 135 | |
@@ -147,7 +147,7 @@ discard block |
||
147 | 147 | * |
148 | 148 | * @return string[]|string |
149 | 149 | */ |
150 | - public static function strReplaceFirst(string|array $search, string|array $replace, string|array $subject): string|array { |
|
150 | + public static function strReplaceFirst(string | array $search, string | array $replace, string | array $subject): string | array { |
|
151 | 151 | $pos = strpos($subject, $search); |
152 | 152 | if ($pos !== false) { |
153 | 153 | return substr_replace($subject, $replace, $pos, strlen($search)); |
@@ -7,4 +7,4 @@ |
||
7 | 7 | /** |
8 | 8 | * Exceptions created by BPT and subclasses |
9 | 9 | */ |
10 | -class bptException extends Exception{} |
|
11 | 10 | \ No newline at end of file |
11 | +class bptException extends Exception {} |
|
12 | 12 | \ No newline at end of file |
@@ -236,13 +236,13 @@ discard block |
||
236 | 236 | * @method gameHighScore[]|responseError getGameHighScores (int|null|array $user_id = null, int|null $chat_id = null, int|null $message_id = null, string|null $inline_message_id = null, string|null $token = null, bool|null $return_array = null, bool|null $forgot = null, bool|null $answer = null) Use this method to get data for high score tables. Will return the score of the specified user and several of their neighbors in a game. On success, returns an Array of GameHighScore objects. |
237 | 237 | * @method gameHighScore[]|responseError getGameHigh (int|null|array $user_id = null, int|null $chat_id = null, int|null $message_id = null, string|null $inline_message_id = null, string|null $token = null, bool|null $return_array = null, bool|null $forgot = null, bool|null $answer = null) Use this method to get data for high score tables. Will return the score of the specified user and several of their neighbors in a game. On success, returns an Array of GameHighScore objects. |
238 | 238 | */ |
239 | -class BPT extends telegram{ |
|
239 | +class BPT extends telegram { |
|
240 | 240 | public static update $update; |
241 | 241 | |
242 | 242 | public static BPT $handler; |
243 | 243 | |
244 | 244 | |
245 | - public function __construct (array|stdClass $settings) { |
|
245 | + public function __construct(array | stdClass $settings) { |
|
246 | 246 | static::$handler = &$this; |
247 | 247 | settings::init($settings); |
248 | 248 | } |
@@ -251,7 +251,7 @@ discard block |
||
251 | 251 | settings::done(); |
252 | 252 | } |
253 | 253 | |
254 | - public static function exit (string|null $message = null) { |
|
254 | + public static function exit (string | null $message = null) { |
|
255 | 255 | die($message ?? "<div style='width:98vw;height:98vh;display:flex;justify-content:center;align-items:center;font-size:25vw'>BPT</div>"); |
256 | 256 | } |
257 | 257 | } |
@@ -18,7 +18,7 @@ |
||
18 | 18 | public string $description; |
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 | } |
@@ -11,7 +11,7 @@ |
||
11 | 11 | /** Keep all of properties which has sub properties */ |
12 | 12 | private const subs = []; |
13 | 13 | |
14 | - public function __construct(stdClass|null $object = null) { |
|
14 | + public function __construct(stdClass | null $object = null) { |
|
15 | 15 | if ($object != null) { |
16 | 16 | parent::__construct($object, self::subs); |
17 | 17 | } |