Passed
Push — main ( 0084f7...f34b86 )
by Miaad
12:18
created
src/tools/tools.php 2 patches
Spacing   +50 added lines, -50 removed lines patch added patch discarded remove patch
@@ -31,7 +31,7 @@  discard block
 block discarded – undo
31 31
 /**
32 32
  * tools class , gather what ever you need
33 33
  */
34
-class tools{
34
+class tools {
35 35
     /**
36 36
      * Check the given username format
37 37
      *
@@ -43,7 +43,7 @@  discard block
 block discarded – undo
43 43
      *
44 44
      * @return bool
45 45
      */
46
-    public static function isUsername (string $username): bool {
46
+    public static function isUsername(string $username): bool {
47 47
         $length = strlen($username);
48 48
         return !str_contains($username, '__') && $length >= 4 && $length <= 33 && preg_match('/^@?([a-zA-Z])(\w{4,31})$/', $username);
49 49
     }
@@ -60,7 +60,7 @@  discard block
 block discarded – undo
60 60
      *
61 61
      * @return bool
62 62
      */
63
-    public static function ipInRange (string $ip, string $range): bool {
63
+    public static function ipInRange(string $ip, string $range): bool {
64 64
         if (!str_contains($range, '/')) {
65 65
             $range .= '/32';
66 66
         }
@@ -80,7 +80,7 @@  discard block
 block discarded – undo
80 80
      *
81 81
      * @return bool
82 82
      */
83
-    public static function isTelegram (string $ip): bool {
83
+    public static function isTelegram(string $ip): bool {
84 84
         return tools::ipInRange($ip, '149.154.160.0/20') || tools::ipInRange($ip, '91.108.4.0/22');
85 85
     }
86 86
 
@@ -95,10 +95,10 @@  discard block
 block discarded – undo
95 95
      *
96 96
      * @return bool
97 97
      */
98
-    public static function isCloudFlare (string $ip): bool {
98
+    public static function isCloudFlare(string $ip): bool {
99 99
         $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'];
100 100
         foreach ($cf_ips as $cf_ip) {
101
-            if (self::ipInRange($ip,$cf_ip)) {
101
+            if (self::ipInRange($ip, $cf_ip)) {
102 102
                 return true;
103 103
             }
104 104
         }
@@ -116,10 +116,10 @@  discard block
 block discarded – undo
116 116
      *
117 117
      * @return bool
118 118
      */
119
-    public static function isArvanCloud (string $ip): bool {
119
+    public static function isArvanCloud(string $ip): bool {
120 120
         $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'];
121 121
         foreach ($ar_ips as $ar_ip) {
122
-            if (self::ipInRange($ip,$ar_ip)) {
122
+            if (self::ipInRange($ip, $ar_ip)) {
123 123
                 return true;
124 124
             }
125 125
         }
@@ -139,11 +139,11 @@  discard block
 block discarded – undo
139 139
      *
140 140
      * @return bool|user return array when verify is active and token is true array of telegram getMe result
141 141
      */
142
-    public static function isToken (string $token, bool $verify = false): bool|user {
142
+    public static function isToken(string $token, bool $verify = false): bool | user {
143 143
         if (!preg_match('/^(\d{8,10}):[\w\-]{35}$/', $token)) {
144 144
             return false;
145 145
         }
146
-        if (!$verify){
146
+        if (!$verify) {
147 147
             return true;
148 148
         }
149 149
         $res = telegram::me($token);
@@ -173,14 +173,14 @@  discard block
 block discarded – undo
173 173
      *
174 174
      * @return bool
175 175
      */
176
-    public static function isJoined (array|string|int $ids , int|null $user_id = null): bool {
176
+    public static function isJoined(array | string | int $ids, int | null $user_id = null): bool {
177 177
         if (!is_array($ids)) {
178 178
             $ids = [$ids];
179 179
         }
180 180
         $user_id = $user_id ?? request::catchFields('user_id');
181 181
 
182 182
         foreach ($ids as $id) {
183
-            $check = telegram::getChatMember($id,$user_id);
183
+            $check = telegram::getChatMember($id, $user_id);
184 184
             if (telegram::$status) {
185 185
                 $check = $check->status;
186 186
                 if ($check === chatMemberStatus::LEFT || $check === chatMemberStatus::KICKED) {
@@ -207,7 +207,7 @@  discard block
 block discarded – undo
207 207
      *
208 208
      * @return array keys will be id and values will be bool(null for not founded ids)
209 209
      */
210
-    public static function joinChecker (array|string|int $ids , int|null $user_id = null): array {
210
+    public static function joinChecker(array | string | int $ids, int | null $user_id = null): array {
211 211
         if (!is_array($ids)) {
212 212
             $ids = [$ids];
213 213
         }
@@ -215,7 +215,7 @@  discard block
 block discarded – undo
215 215
 
216 216
         $result = [];
217 217
         foreach ($ids as $id) {
218
-            $check = telegram::getChatMember($id,$user_id);
218
+            $check = telegram::getChatMember($id, $user_id);
219 219
             if (telegram::$status) {
220 220
                 $check = $check->status;
221 221
                 $result[$id] = $check !== chatMemberStatus::LEFT && $check !== chatMemberStatus::KICKED;
@@ -235,7 +235,7 @@  discard block
 block discarded – undo
235 235
      * @return bool
236 236
      */
237 237
     public static function isShorted(string $text): bool{
238
-        return preg_match('/^[a-zA-Z0-9]+$/',$text);
238
+        return preg_match('/^[a-zA-Z0-9]+$/', $text);
239 239
     }
240 240
 
241 241
     /**
@@ -253,7 +253,7 @@  discard block
 block discarded – undo
253 253
      *
254 254
      * @return string|int|false string for formatted data , int for normal data , false when size can not be found(file not found or ...)
255 255
      */
256
-    public static function size (string $path, bool $format = true, bool $space_between = true): string|int|false {
256
+    public static function size(string $path, bool $format = true, bool $space_between = true): string | int | false {
257 257
         if (filter_var($path, FILTER_VALIDATE_URL)) {
258 258
             $ch = curl_init($path);
259 259
             curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
@@ -268,7 +268,7 @@  discard block
 block discarded – undo
268 268
             $size = file_exists($path) ? filesize($path) : false;
269 269
         }
270 270
         if (isset($size) && is_numeric($size)) {
271
-            return $format ? tools::byteFormat($size, space_between: $space_between) : $size;
271
+            return $format ? tools::byteFormat($size, space_between : $space_between) : $size;
272 272
         }
273 273
         return false;
274 274
     }
@@ -286,7 +286,7 @@  discard block
 block discarded – undo
286 286
      * @return bool
287 287
      * @throws bptException
288 288
      */
289
-    public static function delete (string $path, bool $sub = true): bool {
289
+    public static function delete(string $path, bool $sub = true): bool {
290 290
         $path = realpath($path);
291 291
         if (!is_dir($path)) {
292 292
             return unlink($path);
@@ -295,7 +295,7 @@  discard block
 block discarded – undo
295 295
             return rmdir($path);
296 296
         }
297 297
         if (!$sub) {
298
-            logger::write("tools::delete function used\ndelete function cannot delete folder because its have subFiles and sub parameter haven't true value",loggerTypes::ERROR);
298
+            logger::write("tools::delete function used\ndelete function cannot delete folder because its have subFiles and sub parameter haven't true value", loggerTypes::ERROR);
299 299
             throw new bptException('DELETE_FOLDER_HAS_SUB');
300 300
         }
301 301
         $it = new RecursiveDirectoryIterator($path, FilesystemIterator::SKIP_DOTS);
@@ -317,7 +317,7 @@  discard block
 block discarded – undo
317 317
      * @return bool
318 318
      * @throws bptException when zip extension not found
319 319
      */
320
-    public static function zip (string $path, string $destination): bool {
320
+    public static function zip(string $path, string $destination): bool {
321 321
         if (!extension_loaded('zip')) {
322 322
             logger::write("tools::zip function used\nzip extension is not found , It may not be installed or enabled", loggerTypes::ERROR);
323 323
             throw new bptException('ZIP_EXTENSION_MISSING');
@@ -351,14 +351,14 @@  discard block
 block discarded – undo
351 351
      *
352 352
      * @return bool true on success and false in failure
353 353
      */
354
-    public static function downloadFile (string $url, string $path, int $chunk_size = 512): bool {
354
+    public static function downloadFile(string $url, string $path, int $chunk_size = 512): bool {
355 355
         $file = fopen($url, 'rb');
356 356
         if (!$file) return false;
357 357
         $path = fopen($path, 'wb');
358 358
         if (!$path) return false;
359 359
 
360 360
         $length = $chunk_size * 1024;
361
-        while (!feof($file)){
361
+        while (!feof($file)) {
362 362
             fwrite($path, fread($file, $length), $length);
363 363
         }
364 364
         fclose($path);
@@ -382,10 +382,10 @@  discard block
 block discarded – undo
382 382
      *
383 383
      * @return string
384 384
      */
385
-    public static function byteFormat (int $byte, int $precision = 2, bool $space_between = true): string {
385
+    public static function byteFormat(int $byte, int $precision = 2, bool $space_between = true): string {
386 386
         $rate_counter = 0;
387 387
 
388
-        while ($byte > 1024){
388
+        while ($byte > 1024) {
389 389
             $byte /= 1024;
390 390
             $rate_counter++;
391 391
         }
@@ -394,7 +394,7 @@  discard block
 block discarded – undo
394 394
             $byte = round($byte, $precision);
395 395
         }
396 396
 
397
-        return $byte . ($space_between ? ' ' : '') . ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB'][$rate_counter];
397
+        return $byte.($space_between ? ' ' : '').['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB'][$rate_counter];
398 398
     }
399 399
 
400 400
     /**
@@ -411,10 +411,10 @@  discard block
 block discarded – undo
411 411
      *
412 412
      * @return string|false return false when mode is incorrect
413 413
      */
414
-    public static function modeEscape (string $text, string $mode = parseMode::HTML): string|false {
414
+    public static function modeEscape(string $text, string $mode = parseMode::HTML): string | false {
415 415
         return match ($mode) {
416
-            parseMode::HTML => str_replace(['&', '<', '>',], ['&amp;', '&lt;', '&gt;',], $text),
417
-            parseMode::MARKDOWN => str_replace(['\\', '_', '*', '`', '['], ['\\\\', '\_', '\*', '\`', '\[',], $text),
416
+            parseMode::HTML => str_replace(['&', '<', '>', ], ['&amp;', '&lt;', '&gt;', ], $text),
417
+            parseMode::MARKDOWN => str_replace(['\\', '_', '*', '`', '['], ['\\\\', '\_', '\*', '\`', '\[', ], $text),
418 418
             parseMode::MARKDOWNV2 => str_replace(
419 419
                 ['\\', '_', '*', '[', ']', '(', ')', '~', '`', '>', '#', '+', '-', '=', '|', '{', '}', '.', '!'],
420 420
                 ['\\\\', '\_', '\*', '\[', '\]', '\(', '\)', '\~', '\`', '\>', '\#', '\+', '\-', '\=', '\|', '\{', '\}', '\.', '\!'],
@@ -453,9 +453,9 @@  discard block
 block discarded – undo
453 453
      * @return array{status: string,year: string,month: string,day: string,hour: string,minute: string,second: string}
454 454
      * @throws Exception
455 455
      */
456
-    public static function timeDiff (int|string $target_time, int|string|null $base_time = null): array {
456
+    public static function timeDiff(int | string $target_time, int | string | null $base_time = null): array {
457 457
         $base_time = new DateTime($base_time ?? '@'.time());
458
-        $target_time = new DateTime(is_numeric($target_time) ? '@' . $target_time : $target_time . ' +00:00');
458
+        $target_time = new DateTime(is_numeric($target_time) ? '@'.$target_time : $target_time.' +00:00');
459 459
 
460 460
         $diff = $base_time->diff($target_time);
461 461
         $string = ['year' => 'y', 'month' => 'm', 'day' => 'd', 'hour' => 'h', 'minute' => 'i', 'second' => 's'];
@@ -481,12 +481,12 @@  discard block
 block discarded – undo
481 481
      *
482 482
      * @return string[]|string
483 483
      */
484
-    public static function realEscapeString(string|array $input): string|array {
485
-        if(is_array($input)) {
484
+    public static function realEscapeString(string | array $input): string | array {
485
+        if (is_array($input)) {
486 486
             return array_map(__METHOD__, $input);
487 487
         }
488 488
 
489
-        if(!empty($input) && is_string($input)) {
489
+        if (!empty($input) && is_string($input)) {
490 490
             return str_replace(['\\', "\0", "\n", "\r", "'", '"', "\x1a"], ['\\\\', '\\0', '\\n', '\\r', "\\'", '\\"', '\\Z'], $input);
491 491
         }
492 492
 
@@ -504,7 +504,7 @@  discard block
 block discarded – undo
504 504
      *
505 505
      * @return string[]|string
506 506
      */
507
-    public static function strReplaceFirst(string|array $search, string|array $replace, string|array $subject): string|array {
507
+    public static function strReplaceFirst(string | array $search, string | array $replace, string | array $subject): string | array {
508 508
         $pos = strpos($subject, $search);
509 509
         if ($pos !== false) {
510 510
             return substr_replace($subject, $replace, $pos, strlen($search));
@@ -521,7 +521,7 @@  discard block
 block discarded – undo
521 521
      *
522 522
      * @return string see possible values in fileType class
523 523
      */
524
-    public static function fileType (string $file_id): string {
524
+    public static function fileType(string $file_id): string {
525 525
         $data = base64_decode(str_pad(strtr($file_id, '-_', '+/'), strlen($file_id) % 4, '='));
526 526
         $new = '';
527 527
         $last = '';
@@ -535,7 +535,7 @@  discard block
 block discarded – undo
535 535
                 $last = $char;
536 536
             }
537 537
         }
538
-        $data = unpack('VtypeId/Vdc_id', $new . $last);
538
+        $data = unpack('VtypeId/Vdc_id', $new.$last);
539 539
         $data['typeId'] = $data['typeId'] & ~33554432 & ~16777216;
540 540
         return [
541 541
             fileTypes::THUMBNAIL,
@@ -573,10 +573,10 @@  discard block
 block discarded – undo
573 573
      *
574 574
      * @return string
575 575
      */
576
-    public static function randomString (int $length = 16, string $characters = 'aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ'): string {
576
+    public static function randomString(int $length = 16, string $characters = 'aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ'): string {
577 577
         $rand_string = '';
578 578
         $char_len = strlen($characters) - 1;
579
-        for ($i = 0; $i < $length; $i ++) {
579
+        for ($i = 0; $i < $length; $i++) {
580 580
             $rand_string .= $characters[rand(0, $char_len)];
581 581
         }
582 582
         return $rand_string;
@@ -605,7 +605,7 @@  discard block
 block discarded – undo
605 605
      * @return inlineKeyboardMarkup|replyKeyboardMarkup replyKeyboardMarkup for keyboard and inlineKeyboardMarkup for inline
606 606
      * @throws bptException
607 607
      */
608
-    public static function easyKey(array $keyboard = [], array $inline = []): inlineKeyboardMarkup|replyKeyboardMarkup {
608
+    public static function easyKey(array $keyboard = [], array $inline = []): inlineKeyboardMarkup | replyKeyboardMarkup {
609 609
         if (!empty($keyboard)) {
610 610
             $keyboard_object = new replyKeyboardMarkup();
611 611
             $keyboard_object->setResize_keyboard($keyboard['resize'] ?? true);
@@ -669,7 +669,7 @@  discard block
 block discarded – undo
669 669
             $keyboard_object->setInline_keyboard($rows);
670 670
             return $keyboard_object;
671 671
         }
672
-        logger::write("tools::eKey function used\nkeyboard or inline parameter must be set",loggerTypes::ERROR);
672
+        logger::write("tools::eKey function used\nkeyboard or inline parameter must be set", loggerTypes::ERROR);
673 673
         throw new bptException('ARGUMENT_NOT_FOUND_KEYBOARD_INLINE');
674 674
     }
675 675
 
@@ -685,10 +685,10 @@  discard block
 block discarded – undo
685 685
      *
686 686
      * @return string
687 687
      */
688
-    public static function inviteLink (int $user_id = null, string $bot_username = null): string {
688
+    public static function inviteLink(int $user_id = null, string $bot_username = null): string {
689 689
         if (empty($user_id)) $user_id = telegram::catchFields(fields::USER_ID);
690 690
         if (empty($bot_username)) $bot_username = telegram::getMe()->username;
691
-        return 'https://t.me/' . str_replace('@', '', $bot_username) . '?start=ref_' . tools::shortEncode($user_id);
691
+        return 'https://t.me/'.str_replace('@', '', $bot_username).'?start=ref_'.tools::shortEncode($user_id);
692 692
     }
693 693
 
694 694
     /**
@@ -714,9 +714,9 @@  discard block
 block discarded – undo
714 714
      * @return string|bool|array{hash:string, key:string, iv:string}
715 715
      * @throws bptException
716 716
      */
717
-    public static function codec (string $action, string $text, string $key = null, string $iv = null): bool|array|string {
717
+    public static function codec(string $action, string $text, string $key = null, string $iv = null): bool | array | string {
718 718
         if (!extension_loaded('openssl')) {
719
-            logger::write("tools::codec function used\nopenssl extension is not found , It may not be installed or enabled",loggerTypes::ERROR);
719
+            logger::write("tools::codec function used\nopenssl extension is not found , It may not be installed or enabled", loggerTypes::ERROR);
720 720
             throw new bptException('OPENSSL_EXTENSION_MISSING');
721 721
         }
722 722
         if ($action === codecAction::ENCRYPT) {
@@ -727,16 +727,16 @@  discard block
 block discarded – undo
727 727
         }
728 728
         if ($action === codecAction::DECRYPT) {
729 729
             if (empty($key)) {
730
-                logger::write("tools::codec function used\nkey parameter is not set",loggerTypes::ERROR);
730
+                logger::write("tools::codec function used\nkey parameter is not set", loggerTypes::ERROR);
731 731
                 throw new bptException('ARGUMENT_NOT_FOUND_KEY');
732 732
             }
733 733
             if (empty($iv)) {
734
-                logger::write("tools::codec function used\niv parameter is not set",loggerTypes::ERROR);
734
+                logger::write("tools::codec function used\niv parameter is not set", loggerTypes::ERROR);
735 735
                 throw new bptException('ARGUMENT_NOT_FOUND_IV');
736 736
             }
737 737
             return openssl_decrypt(base64_decode($text), 'AES-256-CBC', $key, 1, $iv);
738 738
         }
739
-        logger::write("tools::codec function used\naction is not right, its must be `encode` or `decode`",loggerTypes::WARNING);
739
+        logger::write("tools::codec function used\naction is not right, its must be `encode` or `decode`", loggerTypes::WARNING);
740 740
         return false;
741 741
     }
742 742
 
@@ -752,7 +752,7 @@  discard block
 block discarded – undo
752 752
     public static function shortEncode(int $num): string {
753 753
         $codes = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
754 754
         $array = [];
755
-        while ($num > 0){
755
+        while ($num > 0) {
756 756
             $array[] = $num % 62;
757 757
             $num = floor($num / 62);
758 758
         }
@@ -760,7 +760,7 @@  discard block
 block discarded – undo
760 760
         foreach ($array as &$value) {
761 761
             $value = $codes[$value];
762 762
         }
763
-        return strrev(implode('',$array));
763
+        return strrev(implode('', $array));
764 764
     }
765 765
 
766 766
     /**
@@ -777,7 +777,7 @@  discard block
 block discarded – undo
777 777
         $num = 0;
778 778
         $text = str_split(strrev($text));
779 779
         foreach ($text as $key=>$value) {
780
-            $num += strpos($codes,$value) * pow(62,$key);
780
+            $num += strpos($codes, $value) * pow(62, $key);
781 781
         }
782 782
         return $num;
783 783
     }
Please login to merge, or discard this patch.
Braces   +29 added lines, -22 removed lines patch added patch discarded remove patch
@@ -219,8 +219,9 @@  discard block
 block discarded – undo
219 219
             if (telegram::$status) {
220 220
                 $check = $check->status;
221 221
                 $result[$id] = $check !== chatMemberStatus::LEFT && $check !== chatMemberStatus::KICKED;
222
+            } else {
223
+                $result[$id] = null;
222 224
             }
223
-            else $result[$id] = null;
224 225
         }
225 226
         return $result;
226 227
     }
@@ -262,8 +263,7 @@  discard block
 block discarded – undo
262 263
             curl_exec($ch);
263 264
             $size = curl_getinfo($ch, CURLINFO_CONTENT_LENGTH_DOWNLOAD);
264 265
             curl_close($ch);
265
-        }
266
-        else {
266
+        } else {
267 267
             $path = realpath($path);
268 268
             $size = file_exists($path) ? filesize($path) : false;
269 269
         }
@@ -353,9 +353,13 @@  discard block
 block discarded – undo
353 353
      */
354 354
     public static function downloadFile (string $url, string $path, int $chunk_size = 512): bool {
355 355
         $file = fopen($url, 'rb');
356
-        if (!$file) return false;
356
+        if (!$file) {
357
+            return false;
358
+        }
357 359
         $path = fopen($path, 'wb');
358
-        if (!$path) return false;
360
+        if (!$path) {
361
+            return false;
362
+        }
359 363
 
360 364
         $length = $chunk_size * 1024;
361 365
         while (!feof($file)){
@@ -462,8 +466,9 @@  discard block
 block discarded – undo
462 466
         foreach ($string as $k => &$v) {
463 467
             if ($diff->{$v}) {
464 468
                 $v = $diff->{$v};
469
+            } else {
470
+                unset($string[$k]);
465 471
             }
466
-            else unset($string[$k]);
467 472
         }
468 473
         $string['status'] = $base_time < $target_time ? 'later' : 'ago';
469 474
 
@@ -529,8 +534,7 @@  discard block
 block discarded – undo
529 534
             if ($last === "\0") {
530 535
                 $new .= str_repeat($last, ord($char));
531 536
                 $last = '';
532
-            }
533
-            else {
537
+            } else {
534 538
                 $new .= $last;
535 539
                 $last = $char;
536 540
             }
@@ -614,7 +618,9 @@  discard block
 block discarded – undo
614 618
             }
615 619
             $rows = [];
616 620
             foreach ($keyboard as $row) {
617
-                if (!is_array($row)) continue;
621
+                if (!is_array($row)) {
622
+                    continue;
623
+                }
618 624
                 $buttons = [];
619 625
                 foreach ($row as $base_button) {
620 626
                     $button_info = explode('||', $base_button);
@@ -623,15 +629,12 @@  discard block
 block discarded – undo
623 629
                     if (count($button_info) > 1) {
624 630
                         if ($button_info[1] === 'con') {
625 631
                             $button->setRequest_contact(true);
626
-                        }
627
-                        elseif ($button_info[1] === 'loc') {
632
+                        } elseif ($button_info[1] === 'loc') {
628 633
                             $button->setRequest_location(true);
629
-                        }
630
-                        elseif ($button_info[1] === 'poll') {
634
+                        } elseif ($button_info[1] === 'poll') {
631 635
                             $type = $button_info[2] === pollType::QUIZ ? pollType::QUIZ : pollType::REGULAR;
632 636
                             $button->setRequest_poll((new keyboardButtonPollType())->setType($type));
633
-                        }
634
-                        elseif ($button_info[1] === 'web' && isset($button_info[2])) {
637
+                        } elseif ($button_info[1] === 'web' && isset($button_info[2])) {
635 638
                             $url = $button_info[2];
636 639
                             $button->setWeb_app((new webAppInfo())->setUrl($url));
637 640
                         }
@@ -654,12 +657,10 @@  discard block
 block discarded – undo
654 657
                     if (isset($button_info[1])) {
655 658
                         if (filter_var($button_info[1], FILTER_VALIDATE_URL) && str_starts_with($button_info[1], 'http')) {
656 659
                             $button->setUrl($button_info[1]);
657
-                        }
658
-                        else {
660
+                        } else {
659 661
                             $button->setCallback_data($button_info[1]);
660 662
                         }
661
-                    }
662
-                    else {
663
+                    } else {
663 664
                         $button->setUrl('https://t.me/BPT_CH');
664 665
                     }
665 666
                     $buttons[] = $button;
@@ -686,8 +687,12 @@  discard block
 block discarded – undo
686 687
      * @return string
687 688
      */
688 689
     public static function inviteLink (int $user_id = null, string $bot_username = null): string {
689
-        if (empty($user_id)) $user_id = telegram::catchFields(fields::USER_ID);
690
-        if (empty($bot_username)) $bot_username = telegram::getMe()->username;
690
+        if (empty($user_id)) {
691
+            $user_id = telegram::catchFields(fields::USER_ID);
692
+        }
693
+        if (empty($bot_username)) {
694
+            $bot_username = telegram::getMe()->username;
695
+        }
691 696
         return 'https://t.me/' . str_replace('@', '', $bot_username) . '?start=ref_' . tools::shortEncode($user_id);
692 697
     }
693 698
 
@@ -756,7 +761,9 @@  discard block
 block discarded – undo
756 761
             $array[] = $num % 62;
757 762
             $num = floor($num / 62);
758 763
         }
759
-        if (count($array) < 1) $array = [0];
764
+        if (count($array) < 1) {
765
+            $array = [0];
766
+        }
760 767
         foreach ($array as &$value) {
761 768
             $value = $codes[$value];
762 769
         }
Please login to merge, or discard this patch.
src/telegram/request.php 2 patches
Spacing   +25 added lines, -25 removed lines patch added patch discarded remove patch
@@ -831,30 +831,30 @@  discard block
 block discarded – undo
831 831
         'getGameHighScores'               => ['BPT\types\gameHighScore']
832 832
     ];
833 833
 
834
-    public static function __callStatic (string $name, array $arguments) {
834
+    public static function __callStatic(string $name, array $arguments) {
835 835
         if (!$action = self::methodAction($name)) {
836
-            logger::write("$name method is not supported",loggerTypes::ERROR);
836
+            logger::write("$name method is not supported", loggerTypes::ERROR);
837 837
             throw new bptException('METHOD_NOT_FOUND');
838 838
         }
839 839
         self::checkArguments($arguments);
840
-        self::keysName($action,$arguments);
841
-        self::readyFile($action,$arguments);
840
+        self::keysName($action, $arguments);
841
+        self::readyFile($action, $arguments);
842 842
         self::cleanArguments($arguments);
843
-        self::setDefaults($action,$arguments);
843
+        self::setDefaults($action, $arguments);
844 844
 
845 845
         if (isset($arguments['answer']) && $arguments['answer'] === true) {
846 846
             unset($arguments['answer']);
847 847
             if (!answer::isAnswered()) {
848
-                return answer::init($action,$arguments);
848
+                return answer::init($action, $arguments);
849 849
             }
850
-            logger::write('you can use answer mode only once for each webhook update, Others will be called like normal',loggerTypes::WARNING);
850
+            logger::write('you can use answer mode only once for each webhook update, Others will be called like normal', loggerTypes::WARNING);
851 851
         }
852
-        $result = curl::init($action,$arguments);
852
+        $result = curl::init($action, $arguments);
853 853
         if (!is_object($result)) {
854
-            logger::write("Telegram $action method failed : " . $result, loggerTypes::WARNING);
854
+            logger::write("Telegram $action method failed : ".$result, loggerTypes::WARNING);
855 855
             return false;
856 856
         }
857
-        return self::processResponse($action,$result);
857
+        return self::processResponse($action, $result);
858 858
     }
859 859
 
860 860
     private static function checkArguments(array &$arguments): void {
@@ -863,7 +863,7 @@  discard block
 block discarded – undo
863 863
         }
864 864
     }
865 865
 
866
-    private static function keysName (string $name, array &$arguments): void {
866
+    private static function keysName(string $name, array &$arguments): void {
867 867
         foreach ($arguments as $key => $argument) {
868 868
             if (is_numeric($key) && isset(self::METHODS_KEYS[$name][$key])) {
869 869
                 $arguments[self::METHODS_KEYS[$name][$key]] = $argument;
@@ -872,7 +872,7 @@  discard block
 block discarded – undo
872 872
         }
873 873
     }
874 874
 
875
-    private static function methodAction(string $name): string|false {
875
+    private static function methodAction(string $name): string | false {
876 876
         return self::METHODS_ACTION[str_replace('_', '', strtolower($name))] ?? false;
877 877
     }
878 878
 
@@ -908,11 +908,11 @@  discard block
 block discarded – undo
908 908
         }
909 909
     }
910 910
 
911
-    private static function methodFile(string $name): array|false {
911
+    private static function methodFile(string $name): array | false {
912 912
         return self::METHODS_WITH_FILE[$name] ?? false;
913 913
     }
914 914
 
915
-    private static function methodReturn(string $name,stdClass $response) {
915
+    private static function methodReturn(string $name, stdClass $response) {
916 916
         if (!settings::$use_types_classes) {
917 917
             return $response;
918 918
         }
@@ -934,13 +934,13 @@  discard block
 block discarded – undo
934 934
         $defaults = self::METHODS_EXTRA_DEFAULTS[$name] ?? [];
935 935
         foreach ($defaults as $key => $default) {
936 936
             if (is_numeric($key)) {
937
-                if (!isset($arguments[$default])){
937
+                if (!isset($arguments[$default])) {
938 938
                     $arguments[$default] = self::catchFields($default);
939 939
                 }
940 940
             }
941 941
             elseif (isset(BPT::$update->{$key}) || $key === 'other') {
942 942
                 foreach ($default as $def) {
943
-                    if (!isset($arguments[$def])){
943
+                    if (!isset($arguments[$def])) {
944 944
                         $arguments[$def] = self::catchFields($def);
945 945
                     }
946 946
                 }
@@ -959,14 +959,14 @@  discard block
 block discarded – undo
959 959
         self::$status = $response->ok;
960 960
         self::$pure_response = $response;
961 961
         if (!$response->ok) {
962
-            logger::write("Telegram $name method failed : " . json_encode($response), loggerTypes::WARNING);
962
+            logger::write("Telegram $name method failed : ".json_encode($response), loggerTypes::WARNING);
963 963
             unset($response->ok);
964 964
             return new responseError($response);
965 965
         }
966
-        return self::methodReturn($name,$response);
966
+        return self::methodReturn($name, $response);
967 967
     }
968 968
 
969
-    private static function cleanArguments (array &$arguments): void {
969
+    private static function cleanArguments(array &$arguments): void {
970 970
         foreach ($arguments as $key => $argument) {
971 971
             if ($argument == [] || $argument === null) {
972 972
                 unset($arguments[$key]);
@@ -981,7 +981,7 @@  discard block
 block discarded – undo
981 981
      *
982 982
      * @return int|string|bool
983 983
      */
984
-    public static function catchFields (string $field): int|string|bool {
984
+    public static function catchFields(string $field): int | string | bool {
985 985
         switch ($field) {
986 986
             case fields::CHAT_ID :
987 987
             case fields::FROM_CHAT_ID :
@@ -1128,13 +1128,13 @@  discard block
 block discarded – undo
1128 1128
                     default => false
1129 1129
                 };
1130 1130
             case fields::URL :
1131
-                return 'https://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
1131
+                return 'https://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
1132 1132
             default:
1133 1133
                 return false;
1134 1134
         }
1135 1135
     }
1136 1136
 
1137
-    public static function fileLink (string|null $file_id = null): bool|string {
1137
+    public static function fileLink(string | null $file_id = null): bool | string {
1138 1138
         $file = request::getFile($file_id);
1139 1139
         if (!isset($file->file_path)) {
1140 1140
             return false;
@@ -1156,7 +1156,7 @@  discard block
 block discarded – undo
1156 1156
      *
1157 1157
      * @return bool
1158 1158
      */
1159
-    public static function downloadFile (string $destination, string|null $file_id = null): bool {
1159
+    public static function downloadFile(string $destination, string | null $file_id = null): bool {
1160 1160
         return tools::downloadFile(self::fileLink($file_id), $destination);
1161 1161
     }
1162 1162
 
@@ -1174,10 +1174,10 @@  discard block
 block discarded – undo
1174 1174
      *
1175 1175
      * @return message|bool|responseError
1176 1176
      */
1177
-    public static function sendFile (string $file_id, int|string $chat_id = null, int $message_thread_id = null, string $caption = null, string $parse_mode = null, array $caption_entities = null, bool $disable_notification = null, bool $protect_content = null, int $reply_to_message_id = null, bool $allow_sending_without_reply = null, inlineKeyboardMarkup|replyKeyboardMarkup|replyKeyboardRemove|forceReply|stdClass|array $reply_markup = null, string $token = null, bool $forgot = null, bool $answer = null): message|bool|responseError {
1177
+    public static function sendFile(string $file_id, int | string $chat_id = null, int $message_thread_id = null, string $caption = null, string $parse_mode = null, array $caption_entities = null, bool $disable_notification = null, bool $protect_content = null, int $reply_to_message_id = null, bool $allow_sending_without_reply = null, inlineKeyboardMarkup | replyKeyboardMarkup | replyKeyboardRemove | forceReply | stdClass | array $reply_markup = null, string $token = null, bool $forgot = null, bool $answer = null): message | bool | responseError {
1178 1178
         $type = tools::fileType($file_id);
1179 1179
         return match ($type) {
1180
-            fileTypes::VIDEO => request::sendVideo($file_id, $chat_id, $message_thread_id, null, null, null, null, $caption, $parse_mode, $caption_entities, false,null, $disable_notification, $protect_content, $reply_to_message_id, $allow_sending_without_reply, $reply_markup, $token, $forgot, $answer),
1180
+            fileTypes::VIDEO => request::sendVideo($file_id, $chat_id, $message_thread_id, null, null, null, null, $caption, $parse_mode, $caption_entities, false, null, $disable_notification, $protect_content, $reply_to_message_id, $allow_sending_without_reply, $reply_markup, $token, $forgot, $answer),
1181 1181
             fileTypes::VIDEO_NOTE => request::sendVideoNote($file_id, $chat_id, $message_thread_id, null, null, null, $disable_notification, $protect_content, $reply_to_message_id, $allow_sending_without_reply, $reply_markup, $token, $forgot, $answer),
1182 1182
             fileTypes::ANIMATION => request::sendAnimation($file_id, $chat_id, $message_thread_id, null, null, null, null, $caption, $parse_mode, $caption_entities, false, $disable_notification, $protect_content, $reply_to_message_id, $allow_sending_without_reply, $reply_markup, $token, $forgot, $answer),
1183 1183
             fileTypes::AUDIO => request::sendAudio($file_id, $chat_id, $message_thread_id, $caption, $parse_mode, $caption_entities, null, null, null, null, $disable_notification, $protect_content, $reply_to_message_id, $allow_sending_without_reply, $reply_markup, $token, $forgot, $answer),
Please login to merge, or discard this patch.
Braces   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -881,20 +881,17 @@  discard block
 block discarded – undo
881 881
             foreach ($arguments['media'] as $key => $media) {
882 882
                 if ($media['media'] instanceof CURLFile) {
883 883
                     $remove_answer = true;
884
-                }
885
-                elseif (is_string($media['media']) && file_exists(realpath($media['media']))) {
884
+                } elseif (is_string($media['media']) && file_exists(realpath($media['media']))) {
886 885
                     $arguments['media'][$key]['media'] = new CURLFile($media['media']);
887 886
                     $remove_answer = true;
888 887
                 }
889 888
             }
890
-        }
891
-        elseif ($file_params = self::methodFile($name)) {
889
+        } elseif ($file_params = self::methodFile($name)) {
892 890
             foreach ($file_params as $param) {
893 891
                 if (isset($arguments[$param])) {
894 892
                     if ($arguments[$param] instanceof CURLFile) {
895 893
                         $remove_answer = true;
896
-                    }
897
-                    elseif (is_string($arguments[$param]) && file_exists(realpath($arguments[$param]))) {
894
+                    } elseif (is_string($arguments[$param]) && file_exists(realpath($arguments[$param]))) {
898 895
                         $arguments[$param] = new CURLFile($arguments[$param]);
899 896
                         $remove_answer = true;
900 897
                     }
@@ -937,8 +934,7 @@  discard block
 block discarded – undo
937 934
                 if (!isset($arguments[$default])){
938 935
                     $arguments[$default] = self::catchFields($default);
939 936
                 }
940
-            }
941
-            elseif (isset(BPT::$update->{$key}) || $key === 'other') {
937
+            } elseif (isset(BPT::$update->{$key}) || $key === 'other') {
942 938
                 foreach ($default as $def) {
943 939
                     if (!isset($arguments[$def])){
944 940
                         $arguments[$def] = self::catchFields($def);
@@ -1010,9 +1006,13 @@  discard block
 block discarded – undo
1010 1006
                     default => false
1011 1007
                 };
1012 1008
             case fields::FILE_ID :
1013
-                if (isset(BPT::$update->message)) $type = 'message';
1014
-                elseif (isset(BPT::$update->edited_message)) $type = 'edited_message';
1015
-                else return false;
1009
+                if (isset(BPT::$update->message)) {
1010
+                    $type = 'message';
1011
+                } elseif (isset(BPT::$update->edited_message)) {
1012
+                    $type = 'edited_message';
1013
+                } else {
1014
+                    return false;
1015
+                }
1016 1016
 
1017 1017
                 return match(true) {
1018 1018
                     isset(BPT::$update->{$type}->animation) => BPT::$update->{$type}->animation->file_id,
Please login to merge, or discard this patch.
src/receiver/multi/exec.php 1 patch
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -16,14 +16,14 @@  discard block
 block discarded – undo
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|null {
19
+    public static function init(): string | null {
20 20
         return self::getUpdate();
21 21
     }
22 22
 
23
-    private static function getUpdate (): string|null {
23
+    private static function getUpdate(): string | null {
24 24
         $up = glob('*.update');
25 25
         if (!isset($up[0])) {
26
-            logger::write('not authorized access denied. IP : '. $_SERVER['REMOTE_ADDR'] ?? 'unknown',loggerTypes::WARNING);
26
+            logger::write('not authorized access denied. IP : '.$_SERVER['REMOTE_ADDR'] ?? 'unknown', loggerTypes::WARNING);
27 27
             BPT::exit();
28 28
         }
29 29
         $up = end($up);
@@ -53,7 +53,7 @@  discard block
 block discarded – undo
53 53
     }
54 54
 
55 55
     private static function create($file) {
56
-        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 &");');
56
+        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 &");');
57 57
     }
58 58
 
59 59
     #[ArrayShape(['url' => 'array|string|string[]', 'file' => 'string'])]
Please login to merge, or discard this patch.
src/receiver/multi/curl.php 1 patch
Spacing   +7 added lines, -7 removed lines patch added patch discarded remove patch
@@ -13,9 +13,9 @@  discard block
 block discarded – undo
13 13
  * curl class , for multiprocessing with curl tricks
14 14
  */
15 15
 class curl extends webhook {
16
-    public static function init (): string|null {
16
+    public static function init(): string | null {
17 17
         if (!self::checkIP()) {
18
-            logger::write('not authorized access denied. IP : '. $_SERVER['REMOTE_ADDR'] ?? 'unknown',loggerTypes::WARNING);
18
+            logger::write('not authorized access denied. IP : '.$_SERVER['REMOTE_ADDR'] ?? 'unknown', loggerTypes::WARNING);
19 19
             BPT::exit();
20 20
         }
21 21
         return self::getUpdate();
@@ -25,7 +25,7 @@  discard block
 block discarded – undo
25 25
         return $_SERVER['REMOTE_ADDR'] === $_SERVER['SERVER_ADDR'];
26 26
     }
27 27
 
28
-    private static function getUpdate (): string {
28
+    private static function getUpdate(): string {
29 29
         $input = json_decode(file_get_contents('php://input'), true);
30 30
         webhook::telegramVerify($input['ip']);
31 31
         return $input['update'];
@@ -42,9 +42,9 @@  discard block
 block discarded – undo
42 42
         lock::set('BPT-MULTI-CURL');
43 43
     }
44 44
 
45
-    private static function getTimeout($url): float|int {
45
+    private static function getTimeout($url): float | int {
46 46
         $times = [];
47
-        for ($i = 0; $i < 10; $i ++) {
47
+        for ($i = 0; $i < 10; $i++) {
48 48
             $ch = curl_init($url);
49 49
             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']]);
50 50
             $start = microtime(true);
@@ -55,8 +55,8 @@  discard block
 block discarded – undo
55 55
         return $timeout > 50 ? $timeout + 10 : 50;
56 56
     }
57 57
 
58
-    private static function create($file,$timeout) {
59
-        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);?>');
58
+    private static function create($file, $timeout) {
59
+        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 60
     }
61 61
 
62 62
     #[ArrayShape(['url' => 'array|string|string[]', 'file' => 'array|string|string[]'])]
Please login to merge, or discard this patch.
src/receiver/callback.php 1 patch
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -9,18 +9,18 @@  discard block
 block discarded – undo
9 9
 use BPT\tools\tools;
10 10
 
11 11
 class callback {
12
-    public static function encodeData (array $data): string {
12
+    public static function encodeData(array $data): string {
13 13
         return tools::codec(codecAction::ENCRYPT, json_encode($data), md5(settings::$token), 'SguQgUvvKRLvmCyq')['hash'];
14 14
     }
15 15
 
16
-    public static function decodeData (string $data): array {
16
+    public static function decodeData(string $data): array {
17 17
         return json_decode(tools::codec(codecAction::DECRYPT, $data, md5(settings::$token), 'SguQgUvvKRLvmCyq'), true);
18 18
     }
19 19
 
20 20
     /**
21 21
      * @internal Only for BPT self usage , Don't use it in your source!
22 22
      */
23
-    public static function process () {
23
+    public static function process() {
24 24
         if (!settings::$handler || settings::$receiver != \BPT\constants\receiver::WEBHOOK || settings::$multi || !(isset($_GET['data']) || isset($_POST['data']))) {
25 25
             return false;
26 26
         }
@@ -45,7 +45,7 @@  discard block
 block discarded – undo
45 45
     /**
46 46
      * @internal Only for BPT self usage , Don't use it in your source!
47 47
      */
48
-    public static function callHandler (string $handler_name, $input) {
48
+    public static function callHandler(string $handler_name, $input) {
49 49
         if (method_exists(BPT::$handler, $handler_name)) {
50 50
             BPT::$handler->$handler_name($input);
51 51
         }
Please login to merge, or discard this patch.
src/BPT.php 1 patch
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -299,13 +299,13 @@  discard block
 block discarded – undo
299 299
  * @method gameHighScore[]|responseError getGameHighScores (int|array|null $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 $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. Returns an Array of GameHighScore objects.
300 300
  * @method gameHighScore[]|responseError getGameHigh (int|array|null $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 $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. Returns an Array of GameHighScore objects.
301 301
  */
302
-class BPT extends telegram{
303
-    public static stdClass|update $update;
302
+class BPT extends telegram {
303
+    public static stdClass | update $update;
304 304
 
305 305
     public static BPT $handler;
306 306
 
307 307
 
308
-    public function __construct (array|easySettings $settings) {
308
+    public function __construct(array | easySettings $settings) {
309 309
         static::$handler = &$this;
310 310
         settings::init($settings);
311 311
     }
@@ -315,7 +315,7 @@  discard block
 block discarded – undo
315 315
     }
316 316
 
317 317
     #[NoReturn]
318
-    public static function exit (string|null $message = null): void {
318
+    public static function exit (string | null $message = null): void {
319 319
         die($message ?? "<div style='width:98vw;height:98vh;display:flex;justify-content:center;align-items:center;font-size:25vw'>BPT</div>");
320 320
     }
321 321
 }
Please login to merge, or discard this patch.