@@ -881,20 +881,17 @@ discard block |
||
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 |
||
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 |
||
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, |
@@ -870,30 +870,30 @@ discard block |
||
870 | 870 | 'getGameHighScores' => ['BPT\types\gameHighScore'] |
871 | 871 | ]; |
872 | 872 | |
873 | - public static function __callStatic (string $name, array $arguments) { |
|
873 | + public static function __callStatic(string $name, array $arguments) { |
|
874 | 874 | if (!$action = self::methodAction($name)) { |
875 | - logger::write("$name method is not supported",loggerTypes::ERROR); |
|
875 | + logger::write("$name method is not supported", loggerTypes::ERROR); |
|
876 | 876 | throw new bptException('METHOD_NOT_FOUND'); |
877 | 877 | } |
878 | 878 | self::checkArguments($arguments); |
879 | - self::keysName($action,$arguments); |
|
880 | - self::readyFile($action,$arguments); |
|
879 | + self::keysName($action, $arguments); |
|
880 | + self::readyFile($action, $arguments); |
|
881 | 881 | self::cleanArguments($arguments); |
882 | - self::setDefaults($action,$arguments); |
|
882 | + self::setDefaults($action, $arguments); |
|
883 | 883 | |
884 | 884 | if (isset($arguments['answer']) && $arguments['answer'] === true) { |
885 | 885 | unset($arguments['answer']); |
886 | 886 | if (!answer::isAnswered()) { |
887 | - return answer::init($action,$arguments); |
|
887 | + return answer::init($action, $arguments); |
|
888 | 888 | } |
889 | - logger::write('you can use answer mode only once for each webhook update, Others will be called like normal',loggerTypes::WARNING); |
|
889 | + logger::write('you can use answer mode only once for each webhook update, Others will be called like normal', loggerTypes::WARNING); |
|
890 | 890 | } |
891 | - $result = curl::init($action,$arguments); |
|
891 | + $result = curl::init($action, $arguments); |
|
892 | 892 | if (!is_object($result)) { |
893 | - logger::write("Telegram $action method failed : " . $result, loggerTypes::WARNING); |
|
893 | + logger::write("Telegram $action method failed : ".$result, loggerTypes::WARNING); |
|
894 | 894 | return false; |
895 | 895 | } |
896 | - return self::processResponse($action,$result); |
|
896 | + return self::processResponse($action, $result); |
|
897 | 897 | } |
898 | 898 | |
899 | 899 | private static function checkArguments(array &$arguments): void { |
@@ -902,7 +902,7 @@ discard block |
||
902 | 902 | } |
903 | 903 | } |
904 | 904 | |
905 | - private static function keysName (string $name, array &$arguments): void { |
|
905 | + private static function keysName(string $name, array &$arguments): void { |
|
906 | 906 | foreach ($arguments as $key => $argument) { |
907 | 907 | if (is_numeric($key) && isset(self::METHODS_KEYS[$name][$key])) { |
908 | 908 | $arguments[self::METHODS_KEYS[$name][$key]] = $argument; |
@@ -911,7 +911,7 @@ discard block |
||
911 | 911 | } |
912 | 912 | } |
913 | 913 | |
914 | - private static function methodAction(string $name): string|false { |
|
914 | + private static function methodAction(string $name): string | false { |
|
915 | 915 | return self::METHODS_ACTION[str_replace('_', '', strtolower($name))] ?? false; |
916 | 916 | } |
917 | 917 | |
@@ -947,11 +947,11 @@ discard block |
||
947 | 947 | } |
948 | 948 | } |
949 | 949 | |
950 | - private static function methodFile(string $name): array|false { |
|
950 | + private static function methodFile(string $name): array | false { |
|
951 | 951 | return self::METHODS_WITH_FILE[$name] ?? false; |
952 | 952 | } |
953 | 953 | |
954 | - private static function methodReturn(string $name,stdClass $response) { |
|
954 | + private static function methodReturn(string $name, stdClass $response) { |
|
955 | 955 | if (!settings::$use_types_classes) { |
956 | 956 | return $response; |
957 | 957 | } |
@@ -973,13 +973,13 @@ discard block |
||
973 | 973 | $defaults = self::METHODS_EXTRA_DEFAULTS[$name] ?? []; |
974 | 974 | foreach ($defaults as $key => $default) { |
975 | 975 | if (is_numeric($key)) { |
976 | - if (!isset($arguments[$default])){ |
|
976 | + if (!isset($arguments[$default])) { |
|
977 | 977 | $arguments[$default] = self::catchFields($default); |
978 | 978 | } |
979 | 979 | } |
980 | 980 | elseif (isset(BPT::$update->{$key}) || $key === 'other') { |
981 | 981 | foreach ($default as $def) { |
982 | - if (!isset($arguments[$def])){ |
|
982 | + if (!isset($arguments[$def])) { |
|
983 | 983 | $arguments[$def] = self::catchFields($def); |
984 | 984 | } |
985 | 985 | } |
@@ -998,14 +998,14 @@ discard block |
||
998 | 998 | self::$status = $response->ok; |
999 | 999 | self::$pure_response = $response; |
1000 | 1000 | if (!$response->ok) { |
1001 | - logger::write("Telegram $name method failed : " . json_encode($response), loggerTypes::WARNING); |
|
1001 | + logger::write("Telegram $name method failed : ".json_encode($response), loggerTypes::WARNING); |
|
1002 | 1002 | unset($response->ok); |
1003 | 1003 | return new responseError($response); |
1004 | 1004 | } |
1005 | - return self::methodReturn($name,$response); |
|
1005 | + return self::methodReturn($name, $response); |
|
1006 | 1006 | } |
1007 | 1007 | |
1008 | - private static function cleanArguments (array &$arguments): void { |
|
1008 | + private static function cleanArguments(array &$arguments): void { |
|
1009 | 1009 | foreach ($arguments as $key => $argument) { |
1010 | 1010 | if ($argument == [] || $argument === null) { |
1011 | 1011 | unset($arguments[$key]); |
@@ -1020,7 +1020,7 @@ discard block |
||
1020 | 1020 | * |
1021 | 1021 | * @return int|string|bool |
1022 | 1022 | */ |
1023 | - public static function catchFields (string $field): int|string|bool { |
|
1023 | + public static function catchFields(string $field): int | string | bool { |
|
1024 | 1024 | switch ($field) { |
1025 | 1025 | case fields::CHAT_ID : |
1026 | 1026 | case fields::FROM_CHAT_ID : |
@@ -1167,13 +1167,13 @@ discard block |
||
1167 | 1167 | default => false |
1168 | 1168 | }; |
1169 | 1169 | case fields::URL : |
1170 | - return 'https://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; |
|
1170 | + return 'https://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; |
|
1171 | 1171 | default: |
1172 | 1172 | return false; |
1173 | 1173 | } |
1174 | 1174 | } |
1175 | 1175 | |
1176 | - public static function fileLink (string|null $file_id = null): bool|string { |
|
1176 | + public static function fileLink(string | null $file_id = null): bool | string { |
|
1177 | 1177 | $file = request::getFile($file_id); |
1178 | 1178 | if (!isset($file->file_path)) { |
1179 | 1179 | return false; |
@@ -1195,7 +1195,7 @@ discard block |
||
1195 | 1195 | * |
1196 | 1196 | * @return bool |
1197 | 1197 | */ |
1198 | - public static function downloadFile (string $destination, string|null $file_id = null): bool { |
|
1198 | + public static function downloadFile(string $destination, string | null $file_id = null): bool { |
|
1199 | 1199 | return tools::downloadFile(self::fileLink($file_id), $destination); |
1200 | 1200 | } |
1201 | 1201 | |
@@ -1213,10 +1213,10 @@ discard block |
||
1213 | 1213 | * |
1214 | 1214 | * @return message|bool|responseError |
1215 | 1215 | */ |
1216 | - 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, array|object $reply_parameters = null, inlineKeyboardMarkup|replyKeyboardMarkup|replyKeyboardRemove|forceReply|stdClass|array $reply_markup = null, string $token = null, bool $forgot = null, bool $answer = null): message|bool|responseError { |
|
1216 | + 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, array | object $reply_parameters = null, inlineKeyboardMarkup | replyKeyboardMarkup | replyKeyboardRemove | forceReply | stdClass | array $reply_markup = null, string $token = null, bool $forgot = null, bool $answer = null): message | bool | responseError { |
|
1217 | 1217 | $type = tools::fileType($file_id); |
1218 | 1218 | return match ($type) { |
1219 | - 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_parameters, $reply_markup, $token, $forgot, $answer), |
|
1219 | + 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_parameters, $reply_markup, $token, $forgot, $answer), |
|
1220 | 1220 | fileTypes::VIDEO_NOTE => request::sendVideoNote($file_id, $chat_id, $message_thread_id, null, null, null, $disable_notification, $protect_content, $reply_parameters, $reply_markup, $token, $forgot, $answer), |
1221 | 1221 | 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_parameters, $reply_markup, $token, $forgot, $answer), |
1222 | 1222 | 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_parameters, $reply_markup, $token, $forgot, $answer), |
@@ -16,14 +16,14 @@ 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|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 |
||
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'])] |
@@ -13,9 +13,9 @@ discard block |
||
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 |
||
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 |
||
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 |
||
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[]'])] |
@@ -9,18 +9,18 @@ discard block |
||
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 |
||
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 | } |
@@ -299,13 +299,13 @@ discard block |
||
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 |
||
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 | } |
@@ -16,32 +16,32 @@ |
||
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 | - logger::write('getUpdateHook deleted, loop ended.',loggerTypes::INFO); |
|
24 | + logger::write('getUpdateHook deleted, loop ended.', loggerTypes::INFO); |
|
25 | 25 | break; |
26 | 26 | } |
27 | - $updates = telegram::getUpdates($last_update_id,allowed_updates: settings::$allowed_updates); |
|
27 | + $updates = telegram::getUpdates($last_update_id, allowed_updates: settings::$allowed_updates); |
|
28 | 28 | if (!telegram::$status) { |
29 | - logger::write("There is some problem happened , telegram response : \n".json_encode($updates),loggerTypes::ERROR); |
|
30 | - BPT::exit(print_r($updates,true)); |
|
29 | + logger::write("There is some problem happened , telegram response : \n".json_encode($updates), loggerTypes::ERROR); |
|
30 | + BPT::exit(print_r($updates, true)); |
|
31 | 31 | } |
32 | 32 | self::handleUpdates($updates); |
33 | - $last_update_id = BPT::$update->update_id+1; |
|
34 | - lock::save('getUpdate',$last_update_id); |
|
33 | + $last_update_id = BPT::$update->update_id + 1; |
|
34 | + lock::save('getUpdate', $last_update_id); |
|
35 | 35 | } |
36 | 36 | } |
37 | 37 | |
38 | - private static function loadData(): bool|int|string { |
|
38 | + private static function loadData(): bool | int | string { |
|
39 | 39 | if (lock::exist('getUpdate')) { |
40 | 40 | return lock::read('getUpdate'); |
41 | 41 | } |
42 | 42 | self::deleteOldLocks(); |
43 | 43 | telegram::deleteWebhook(); |
44 | - lock::save('getUpdate',0); |
|
44 | + lock::save('getUpdate', 0); |
|
45 | 45 | return 0; |
46 | 46 | } |
47 | 47 |
@@ -35,7 +35,7 @@ discard block |
||
35 | 35 | |
36 | 36 | private static CurlHandle $session; |
37 | 37 | |
38 | - public static function init (string $api_key = '', string $ipn_secret = '', int $round_decimal = 4): void { |
|
38 | + public static function init(string $api_key = '', string $ipn_secret = '', int $round_decimal = 4): void { |
|
39 | 39 | self::$ipn_secret = $ipn_secret; |
40 | 40 | self::$round_decimal = $round_decimal; |
41 | 41 | self::$session = curl_init(); |
@@ -43,12 +43,12 @@ discard block |
||
43 | 43 | curl_setopt(self::$session, CURLOPT_SSL_VERIFYPEER, 1); |
44 | 44 | curl_setopt(self::$session, CURLOPT_SSL_VERIFYHOST, 2); |
45 | 45 | curl_setopt(self::$session, CURLOPT_HTTPHEADER, [ |
46 | - 'X-API-KEY: ' . $api_key, |
|
46 | + 'X-API-KEY: '.$api_key, |
|
47 | 47 | 'Content-Type: application/json' |
48 | 48 | ]); |
49 | 49 | } |
50 | 50 | |
51 | - private static function execute (string $method, string $endpoint, string|array $data = '') { |
|
51 | + private static function execute(string $method, string $endpoint, string | array $data = '') { |
|
52 | 52 | if (is_array($data)) { |
53 | 53 | foreach ($data as $key => $value) { |
54 | 54 | if (empty($value)) { |
@@ -61,12 +61,12 @@ discard block |
||
61 | 61 | |
62 | 62 | switch ($method) { |
63 | 63 | case 'GET': |
64 | - curl_setopt($session, CURLOPT_URL, self::API_BASE . $endpoint . (!empty($data) && is_array($data) ? ('?' . http_build_query($data)) : '')); |
|
64 | + curl_setopt($session, CURLOPT_URL, self::API_BASE.$endpoint.(!empty($data) && is_array($data) ? ('?'.http_build_query($data)) : '')); |
|
65 | 65 | break; |
66 | 66 | case 'POST': |
67 | 67 | curl_setopt($session, CURLOPT_POST, true); |
68 | 68 | curl_setopt($session, CURLOPT_POSTFIELDS, json_encode($data)); |
69 | - curl_setopt($session, CURLOPT_URL, self::API_BASE . $endpoint); |
|
69 | + curl_setopt($session, CURLOPT_URL, self::API_BASE.$endpoint); |
|
70 | 70 | break; |
71 | 71 | default: |
72 | 72 | return false; |
@@ -78,7 +78,7 @@ discard block |
||
78 | 78 | * This is a method to get information about the current state of the API. Receive true if its ok and false in otherwise |
79 | 79 | * @return bool |
80 | 80 | */ |
81 | - public static function status (): bool { |
|
81 | + public static function status(): bool { |
|
82 | 82 | return self::execute('GET', 'status')->message === 'OK'; |
83 | 83 | } |
84 | 84 | |
@@ -93,7 +93,7 @@ discard block |
||
93 | 93 | * |
94 | 94 | * @return estimatePriceInterface|errorResponseInterface|mixed |
95 | 95 | */ |
96 | - public static function getEstimatePrice (int|float $amount, string $currency_from, string $currency_to) { |
|
96 | + public static function getEstimatePrice(int | float $amount, string $currency_from, string $currency_to) { |
|
97 | 97 | return self::execute('GET', 'estimate', [ |
98 | 98 | 'amount' => $amount, |
99 | 99 | 'currency_from' => $currency_from, |
@@ -120,7 +120,7 @@ discard block |
||
120 | 120 | * |
121 | 121 | * @return invoicePaymentInterface|errorResponseInterface|mixed |
122 | 122 | */ |
123 | - public static function createPayment (int|float $price_amount, string $price_currency, string $pay_currency, int|float $pay_amount = null, string $ipn_callback_url = null, string $order_id = null, string $order_description = null, string $purchase_id = null, string $payout_address = null, string $payout_currency = null, string $payout_extra_id = null, bool $fixed_rate = null, bool $is_fee_paid_by_user = null) { |
|
123 | + public static function createPayment(int | float $price_amount, string $price_currency, string $pay_currency, int | float $pay_amount = null, string $ipn_callback_url = null, string $order_id = null, string $order_description = null, string $purchase_id = null, string $payout_address = null, string $payout_currency = null, string $payout_extra_id = null, bool $fixed_rate = null, bool $is_fee_paid_by_user = null) { |
|
124 | 124 | return self::execute('POST', 'payment', [ |
125 | 125 | 'price_amount' => $price_amount, |
126 | 126 | 'price_currency' => $price_currency, |
@@ -152,7 +152,7 @@ discard block |
||
152 | 152 | * |
153 | 153 | * @return invoicePaymentInterface|errorResponseInterface|mixed |
154 | 154 | */ |
155 | - public static function createInvoicePayment (string $iid, string $pay_currency, string $purchase_id = null, string $order_description = null, string $customer_email = null, string $payout_address = null, string $payout_extra_id = null, string $payout_currency = null) { |
|
155 | + public static function createInvoicePayment(string $iid, string $pay_currency, string $purchase_id = null, string $order_description = null, string $customer_email = null, string $payout_address = null, string $payout_extra_id = null, string $payout_currency = null) { |
|
156 | 156 | return self::execute('POST', 'invoice-payment', [ |
157 | 157 | 'iid' => $iid, |
158 | 158 | 'pay_currency' => $pay_currency, |
@@ -173,8 +173,8 @@ discard block |
||
173 | 173 | * |
174 | 174 | * @return estimateUpdateInterface|errorResponseInterface|mixed |
175 | 175 | */ |
176 | - public static function updateEstimatePrice (int $paymentID) { |
|
177 | - return self::execute('POST', 'payment/' . $paymentID . '/update-merchant-estimate'); |
|
176 | + public static function updateEstimatePrice(int $paymentID) { |
|
177 | + return self::execute('POST', 'payment/'.$paymentID.'/update-merchant-estimate'); |
|
178 | 178 | } |
179 | 179 | |
180 | 180 | /** |
@@ -184,8 +184,8 @@ discard block |
||
184 | 184 | * |
185 | 185 | * @return paymentInterface|errorResponseInterface|mixed |
186 | 186 | */ |
187 | - public static function getPaymentStatus (int $paymentID) { |
|
188 | - return self::execute('GET', 'payment/' . $paymentID); |
|
187 | + public static function getPaymentStatus(int $paymentID) { |
|
188 | + return self::execute('GET', 'payment/'.$paymentID); |
|
189 | 189 | } |
190 | 190 | |
191 | 191 | /** |
@@ -196,7 +196,7 @@ discard block |
||
196 | 196 | * |
197 | 197 | * @return float |
198 | 198 | */ |
199 | - public static function getMinimumPaymentAmount (string $currency_from, string $currency_to): float { |
|
199 | + public static function getMinimumPaymentAmount(string $currency_from, string $currency_to): float { |
|
200 | 200 | return self::execute('GET', 'min-amount', [ |
201 | 201 | 'currency_from' => $currency_from, |
202 | 202 | 'currency_to' => $currency_to |
@@ -217,7 +217,7 @@ discard block |
||
217 | 217 | * |
218 | 218 | * @return invoiceResponseInterface|errorResponseInterface|mixed |
219 | 219 | */ |
220 | - public static function createInvoice (int|float $price_amount, string $price_currency, string $pay_currency = null, string $ipn_callback_url = null, string $order_id = null, string $order_description = null, string $success_url = null, string $cancel_url = null) { |
|
220 | + public static function createInvoice(int | float $price_amount, string $price_currency, string $pay_currency = null, string $ipn_callback_url = null, string $order_id = null, string $order_description = null, string $success_url = null, string $cancel_url = null) { |
|
221 | 221 | return self::execute('POST', 'invoice', [ |
222 | 222 | 'price_amount' => $price_amount, |
223 | 223 | 'price_currency' => $price_currency, |
@@ -235,7 +235,7 @@ discard block |
||
235 | 235 | * |
236 | 236 | * @return array |
237 | 237 | */ |
238 | - public static function getCurrencies (): array { |
|
238 | + public static function getCurrencies(): array { |
|
239 | 239 | return self::execute('GET', 'currencies')->currencies; |
240 | 240 | } |
241 | 241 | |
@@ -244,7 +244,7 @@ discard block |
||
244 | 244 | * |
245 | 245 | * @return array |
246 | 246 | */ |
247 | - public static function getFullCurrencies (): array { |
|
247 | + public static function getFullCurrencies(): array { |
|
248 | 248 | return self::execute('GET', 'full-currencies')->currencies; |
249 | 249 | } |
250 | 250 | |
@@ -254,7 +254,7 @@ discard block |
||
254 | 254 | * |
255 | 255 | * @return array |
256 | 256 | */ |
257 | - public static function getAvailableCheckedCurrencies (): array { |
|
257 | + public static function getAvailableCheckedCurrencies(): array { |
|
258 | 258 | return self::execute('GET', 'merchant/coins')->currencies; |
259 | 259 | } |
260 | 260 | |
@@ -272,7 +272,7 @@ discard block |
||
272 | 272 | * |
273 | 273 | * @return bool |
274 | 274 | */ |
275 | - public static function isIPNRequestValid (): bool { |
|
275 | + public static function isIPNRequestValid(): bool { |
|
276 | 276 | if (empty($_SERVER['HTTP_X_NOWPAYMENTS_SIG'])) { |
277 | 277 | return false; |
278 | 278 | } |
@@ -294,14 +294,14 @@ discard block |
||
294 | 294 | * |
295 | 295 | * @return ipnDataInterface|mixed |
296 | 296 | */ |
297 | - public static function getIPN () { |
|
297 | + public static function getIPN() { |
|
298 | 298 | if (!self::isIPNRequestValid()) { |
299 | 299 | return false; |
300 | 300 | } |
301 | 301 | return json_decode(file_get_contents('php://input')); |
302 | 302 | } |
303 | 303 | |
304 | - protected static function createOrder (float|int $amount, int $user_id, string $description): int|string { |
|
304 | + protected static function createOrder(float | int $amount, int $user_id, string $description): int | string { |
|
305 | 305 | if (!mysql::getMysqli()) { |
306 | 306 | logger::write("crypto::ezPay function used\ncreating order needed mysql connection in our mysql class", loggerTypes::ERROR); |
307 | 307 | throw new bptException('MYSQL_CONNECTION_NEEDED'); |
@@ -312,7 +312,7 @@ discard block |
||
312 | 312 | return mysql::insertId(); |
313 | 313 | } |
314 | 314 | |
315 | - protected static function getOrder (int $order_id): bool|object { |
|
315 | + protected static function getOrder(int $order_id): bool | object { |
|
316 | 316 | if (!mysql::getMysqli()) { |
317 | 317 | logger::write("crypto::ezPay function used\ncreating order needed mysql connection in our mysql class", loggerTypes::ERROR); |
318 | 318 | throw new bptException('MYSQL_CONNECTION_NEEDED'); |
@@ -343,7 +343,7 @@ discard block |
||
343 | 343 | * @return bool|string |
344 | 344 | * @throws bptException |
345 | 345 | */ |
346 | - public static function ezPay (float|int $amount, int $user_id = null, string $currency = 'usd', string $description = 'Invoice created by BPT library', bool $direct_url = false, bool $one_time_url = true): bool|string { |
|
346 | + public static function ezPay(float | int $amount, int $user_id = null, string $currency = 'usd', string $description = 'Invoice created by BPT library', bool $direct_url = false, bool $one_time_url = true): bool | string { |
|
347 | 347 | if (empty(self::$ipn_secret)) { |
348 | 348 | logger::write("crypto::ezPay function used\nyou must set ipn_secret to use this", loggerTypes::ERROR); |
349 | 349 | return false; |
@@ -355,10 +355,10 @@ discard block |
||
355 | 355 | $user_id = $user_id ?? request::catchFields(fields::USER_ID); |
356 | 356 | $order_id = self::createOrder($amount, $user_id, $description); |
357 | 357 | $data = ['type' => callbackTypes::CRYPTO, 'action_type' => cryptoCallbackActionTypes::CALLBACK, 'amount' => $amount, 'currency' => $currency, 'user_id' => $user_id, 'order_id' => $order_id]; |
358 | - $callback_url = 'https://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'] . '?data='.urlencode(callback::encodeData($data)); |
|
358 | + $callback_url = 'https://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'].'?data='.urlencode(callback::encodeData($data)); |
|
359 | 359 | |
360 | 360 | $data = ['type' => callbackTypes::CRYPTO, 'action_type' => cryptoCallbackActionTypes::SUCCESS, 'amount' => $amount, 'currency' => $currency, 'user_id' => $user_id, 'order_id' => $order_id]; |
361 | - $success_url = 'https://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'] . '?data='.urlencode(callback::encodeData($data)); |
|
361 | + $success_url = 'https://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'].'?data='.urlencode(callback::encodeData($data)); |
|
362 | 362 | |
363 | 363 | $invoice_id = self::createInvoice($amount, $currency, null, $callback_url, $order_id, $description, $success_url)->id; |
364 | 364 | |
@@ -377,17 +377,17 @@ discard block |
||
377 | 377 | ], ['id' => $order_id], 1); |
378 | 378 | |
379 | 379 | if ($direct_url) { |
380 | - return 'https://nowpayments.io/payment/?iid='. $invoice_id; |
|
380 | + return 'https://nowpayments.io/payment/?iid='.$invoice_id; |
|
381 | 381 | } |
382 | 382 | |
383 | 383 | $data = ['type' => callbackTypes::CRYPTO, 'action_type' => cryptoCallbackActionTypes::REDIRECT, 'amount' => $amount, 'currency' => $currency, 'user_id' => $user_id, 'order_id' => $order_id]; |
384 | - return 'https://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'] . '?data='.urlencode(callback::encodeData($data)); |
|
384 | + return 'https://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'].'?data='.urlencode(callback::encodeData($data)); |
|
385 | 385 | } |
386 | 386 | |
387 | 387 | /** |
388 | 388 | * @internal Only for BPT self usage , Don't use it in your source! |
389 | 389 | */ |
390 | - public static function callbackProcess (array $data) { |
|
390 | + public static function callbackProcess(array $data) { |
|
391 | 391 | if (!isset($data['action_type'])) { |
392 | 392 | return false; |
393 | 393 | } |
@@ -407,16 +407,16 @@ discard block |
||
407 | 407 | BPT::exit('This link is one time only, Receive another link'); |
408 | 408 | } |
409 | 409 | } |
410 | - $url = 'https://nowpayments.io/payment/?iid='. $extra_info->invoice_id; |
|
410 | + $url = 'https://nowpayments.io/payment/?iid='.$extra_info->invoice_id; |
|
411 | 411 | |
412 | - @header('Location: ' . $url); |
|
412 | + @header('Location: '.$url); |
|
413 | 413 | die("<meta http-equiv='refresh' content='0; url=$url' /><script>window.location.href = '$url';</script>"); |
414 | 414 | } |
415 | 415 | |
416 | 416 | if ($action_type === cryptoCallbackActionTypes::CALLBACK) { |
417 | 417 | $ipn = self::getIPN(); |
418 | 418 | |
419 | - if ($ipn->payment_status !== cryptoStatus::FINISHED && $ipn->payment_status !== cryptoStatus::PARTIALLY_PAID ) { |
|
419 | + if ($ipn->payment_status !== cryptoStatus::FINISHED && $ipn->payment_status !== cryptoStatus::PARTIALLY_PAID) { |
|
420 | 420 | die(); |
421 | 421 | } |
422 | 422 | |
@@ -438,7 +438,7 @@ discard block |
||
438 | 438 | die(); |
439 | 439 | } |
440 | 440 | |
441 | - $paid = round(isset($payment->actually_paid_at_fiat) && $payment->actually_paid_at_fiat > 0 ? $payment->actually_paid_at_fiat : $payment->actually_paid/$payment->pay_amount*$payment->price_amount, self::$round_decimal); |
|
441 | + $paid = round(isset($payment->actually_paid_at_fiat) && $payment->actually_paid_at_fiat > 0 ? $payment->actually_paid_at_fiat : $payment->actually_paid / $payment->pay_amount * $payment->price_amount, self::$round_decimal); |
|
442 | 442 | $extra_info['related_payments'][$payment_id] = $paid; |
443 | 443 | $extra_info['total_paid'] += $paid; |
444 | 444 | mysql::update('orders', ['extra_info' => json_encode($extra_info)], ['id' => $order_id], 1); |
@@ -500,7 +500,7 @@ discard block |
||
500 | 500 | 'description' => $order->description, |
501 | 501 | 'real_amount' => $order->amount, |
502 | 502 | 'currency' => $extra_info->currency, |
503 | - 'paid_amount' => round(isset($payment->actually_paid_at_fiat) && $payment->actually_paid_at_fiat > 0 ? $payment->actually_paid_at_fiat : $payment->actually_paid/$payment->pay_amount*$payment->price_amount, self::$round_decimal), |
|
503 | + 'paid_amount' => round(isset($payment->actually_paid_at_fiat) && $payment->actually_paid_at_fiat > 0 ? $payment->actually_paid_at_fiat : $payment->actually_paid / $payment->pay_amount * $payment->price_amount, self::$round_decimal), |
|
504 | 504 | 'total_paid' => $extra_info->total_paid |
505 | 505 | ]; |
506 | 506 | $callback_data = object(...$callback_data); |
@@ -5,7 +5,7 @@ |
||
5 | 5 | use BPT\settings; |
6 | 6 | |
7 | 7 | class pay { |
8 | - public static function init (): void { |
|
8 | + public static function init(): void { |
|
9 | 9 | if (isset(settings::$pay['crypto'])) { |
10 | 10 | $settings = [ |
11 | 11 | 'api_key' => settings::$pay['crypto']['api_key'] ?? null, |
@@ -27,7 +27,7 @@ discard block |
||
27 | 27 | public array $user_ids; |
28 | 28 | |
29 | 29 | |
30 | - public function __construct(stdClass|null $object = null) { |
|
30 | + public function __construct(stdClass | null $object = null) { |
|
31 | 31 | if ($object != null) { |
32 | 32 | parent::__construct($object, self::subs); |
33 | 33 | } |
@@ -38,7 +38,7 @@ discard block |
||
38 | 38 | * |
39 | 39 | * @param bool|null $answer |
40 | 40 | */ |
41 | - public function getInfo (bool $answer = null): array { |
|
41 | + public function getInfo(bool $answer = null): array { |
|
42 | 42 | $result = []; |
43 | 43 | foreach ($this->user_ids as $user_id) { |
44 | 44 | $result[$user_id] = telegram::getChat($user_id, answer: $answer); |