wip del err
This commit is contained in:
1 parent
812736ca9a
commit
9bcd4432c6
1210 files changed
-220941
No files matched your search
@@ -1,230 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Console\Commands;
|
||||
|
||||
use App\Utilities\Notice;
|
||||
|
||||
class Curl
|
||||
{
|
||||
public static $testfiles = '/Console/Commands/TestFiles/';
|
||||
|
||||
public static function load($url, $_config = [])
|
||||
{
|
||||
$debug = Nuh::$options['d'] ?? 0;
|
||||
$save = Nuh::$options['s'] ?? 0;
|
||||
$read = Nuh::$options['r'] ?? 0;
|
||||
$proxy = Nuh::$options['p'] ?? 0;
|
||||
|
||||
if ($debug) {
|
||||
if ($proxy) {
|
||||
Notice::note($url . PHP_EOL . Nuh::$options['proxy'], 'b');
|
||||
} else {
|
||||
Notice::note($url, 'g');
|
||||
}
|
||||
}
|
||||
|
||||
if ($read) {
|
||||
if ($debug) {
|
||||
Notice::note('data read localy', 'g');
|
||||
}
|
||||
$filename = app_path() . self::$testfiles . strtolower(str_replace(' ', '_', Nuh::$options['name'])) . '.json';
|
||||
|
||||
$file = file_get_contents($filename);
|
||||
|
||||
return json_decode($file, true);
|
||||
}
|
||||
|
||||
$file = self::fetch_data_with_retries($url, $_config);
|
||||
|
||||
if ($save) {
|
||||
$filename = app_path() . self::$testfiles . strtolower(str_replace(' ', '_', Nuh::$options['name'])) . '.json';
|
||||
|
||||
file_put_contents($filename, $file);
|
||||
|
||||
Notice::note('file saved localy', 'g');
|
||||
}
|
||||
|
||||
$data = json_decode($file, true);
|
||||
|
||||
switch (json_last_error()) {
|
||||
case JSON_ERROR_DEPTH:
|
||||
echo ' - Maximum stack depth exceeded';
|
||||
break;
|
||||
case JSON_ERROR_STATE_MISMATCH:
|
||||
echo ' - Underflow or the modes mismatch';
|
||||
break;
|
||||
case JSON_ERROR_CTRL_CHAR:
|
||||
echo ' - Unexpected control character found';
|
||||
break;
|
||||
case JSON_ERROR_SYNTAX:
|
||||
echo ' - Syntax error, malformed JSON';
|
||||
break;
|
||||
case JSON_ERROR_UTF8:
|
||||
echo ' - Malformed UTF-8 characters, possibly incorrectly encoded';
|
||||
break;
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
public static function fetch_data_with_retries($url, $_config = [], $max_retries = 3)
|
||||
{
|
||||
$attempt = 0;
|
||||
$timeout = 10;
|
||||
$connect_timeout = 5; // seconds
|
||||
|
||||
if (isset($_config['timeout'])) {
|
||||
$timeout = $_config['timeout'];
|
||||
}
|
||||
|
||||
$debug = Nuh::$options['d'] ?? 0;
|
||||
$proxy = Nuh::$options['p'] ?? 0;
|
||||
|
||||
while ($attempt < $max_retries) {
|
||||
|
||||
if ($proxy) {
|
||||
$ch = curl_init();
|
||||
curl_setopt($ch, CURLOPT_URL, Nuh::$options['proxy']);
|
||||
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); // Total timeout
|
||||
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $connect_timeout); // Connection timeout
|
||||
curl_setopt($ch, CURLOPT_HEADER, false);
|
||||
curl_setopt($ch, CURLOPT_POST, true);
|
||||
if (isset($_config['post'])) {
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, $_config['post']);
|
||||
} else {
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, ['url' => $url]);
|
||||
}
|
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, [
|
||||
'Proxy-Auth: AIkcoRnipSgMK88WMQhOQQN3LKDrNDCIebNfPnEayJdmDeTigx',
|
||||
]);
|
||||
} else {
|
||||
$ch = curl_init();
|
||||
curl_setopt($ch, CURLOPT_URL, $url);
|
||||
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); // Total timeout
|
||||
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $connect_timeout); // Connection timeout
|
||||
|
||||
curl_setopt($ch, CURLOPT_FAILONERROR, true);
|
||||
// POST
|
||||
if (isset($_config['post'])) {
|
||||
curl_setopt($ch, CURLOPT_POST, 1);
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($_config['post']));
|
||||
}
|
||||
// JSON
|
||||
if (isset($_config['header'])) {
|
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, $_config['header']);
|
||||
}
|
||||
}
|
||||
|
||||
$response = curl_exec($ch);
|
||||
|
||||
if ($response === false) {
|
||||
$attempt++;
|
||||
$curl_errorno = curl_errno($ch);
|
||||
if ($debug && $curl_errorno) {
|
||||
Notice::note('curl_errorno: ' . self::curlerrorcode($curl_errorno));
|
||||
}
|
||||
if ($debug) {
|
||||
echo "Attempt $attempt failed. Retrying...\n";
|
||||
}
|
||||
sleep(2); // Optional: Sleep between retries
|
||||
} else {
|
||||
return $response;
|
||||
}
|
||||
}
|
||||
echo "All attempts failed.\n";
|
||||
|
||||
return null; // Return null if all retries fail
|
||||
}
|
||||
|
||||
public static function curlerrorcode($id)
|
||||
{
|
||||
$error_codes = [
|
||||
1 => 'CURLE_UNSUPPORTED_PROTOCOL',
|
||||
2 => 'CURLE_FAILED_INIT',
|
||||
3 => 'CURLE_URL_MALFORMAT',
|
||||
4 => 'CURLE_URL_MALFORMAT_USER',
|
||||
5 => 'CURLE_COULDNT_RESOLVE_PROXY',
|
||||
6 => 'CURLE_COULDNT_RESOLVE_HOST',
|
||||
7 => 'CURLE_COULDNT_CONNECT',
|
||||
8 => 'CURLE_FTP_WEIRD_SERVER_REPLY',
|
||||
9 => 'CURLE_REMOTE_ACCESS_DENIED',
|
||||
11 => 'CURLE_FTP_WEIRD_PASS_REPLY',
|
||||
13 => 'CURLE_FTP_WEIRD_PASV_REPLY',
|
||||
14 => 'CURLE_FTP_WEIRD_227_FORMAT',
|
||||
15 => 'CURLE_FTP_CANT_GET_HOST',
|
||||
17 => 'CURLE_FTP_COULDNT_SET_TYPE',
|
||||
18 => 'CURLE_PARTIAL_FILE',
|
||||
19 => 'CURLE_FTP_COULDNT_RETR_FILE',
|
||||
21 => 'CURLE_QUOTE_ERROR',
|
||||
22 => 'CURLE_HTTP_RETURNED_ERROR',
|
||||
23 => 'CURLE_WRITE_ERROR',
|
||||
25 => 'CURLE_UPLOAD_FAILED',
|
||||
26 => 'CURLE_READ_ERROR',
|
||||
27 => 'CURLE_OUT_OF_MEMORY',
|
||||
28 => 'CURLE_OPERATION_TIMEDOUT',
|
||||
30 => 'CURLE_FTP_PORT_FAILED',
|
||||
31 => 'CURLE_FTP_COULDNT_USE_REST',
|
||||
33 => 'CURLE_RANGE_ERROR',
|
||||
34 => 'CURLE_HTTP_POST_ERROR',
|
||||
35 => 'CURLE_SSL_CONNECT_ERROR',
|
||||
36 => 'CURLE_BAD_DOWNLOAD_RESUME',
|
||||
37 => 'CURLE_FILE_COULDNT_READ_FILE',
|
||||
38 => 'CURLE_LDAP_CANNOT_BIND',
|
||||
39 => 'CURLE_LDAP_SEARCH_FAILED',
|
||||
41 => 'CURLE_FUNCTION_NOT_FOUND',
|
||||
42 => 'CURLE_ABORTED_BY_CALLBACK',
|
||||
43 => 'CURLE_BAD_FUNCTION_ARGUMENT',
|
||||
45 => 'CURLE_INTERFACE_FAILED',
|
||||
47 => 'CURLE_TOO_MANY_REDIRECTS',
|
||||
48 => 'CURLE_UNKNOWN_TELNET_OPTION',
|
||||
49 => 'CURLE_TELNET_OPTION_SYNTAX',
|
||||
51 => 'CURLE_PEER_FAILED_VERIFICATION',
|
||||
52 => 'CURLE_GOT_NOTHING',
|
||||
53 => 'CURLE_SSL_ENGINE_NOTFOUND',
|
||||
54 => 'CURLE_SSL_ENGINE_SETFAILED',
|
||||
55 => 'CURLE_SEND_ERROR',
|
||||
56 => 'CURLE_RECV_ERROR',
|
||||
58 => 'CURLE_SSL_CERTPROBLEM',
|
||||
59 => 'CURLE_SSL_CIPHER',
|
||||
60 => 'CURLE_SSL_CACERT',
|
||||
61 => 'CURLE_BAD_CONTENT_ENCODING',
|
||||
62 => 'CURLE_LDAP_INVALID_URL',
|
||||
63 => 'CURLE_FILESIZE_EXCEEDED',
|
||||
64 => 'CURLE_USE_SSL_FAILED',
|
||||
65 => 'CURLE_SEND_FAIL_REWIND',
|
||||
66 => 'CURLE_SSL_ENGINE_INITFAILED',
|
||||
67 => 'CURLE_LOGIN_DENIED',
|
||||
68 => 'CURLE_TFTP_NOTFOUND',
|
||||
69 => 'CURLE_TFTP_PERM',
|
||||
70 => 'CURLE_REMOTE_DISK_FULL',
|
||||
71 => 'CURLE_TFTP_ILLEGAL',
|
||||
72 => 'CURLE_TFTP_UNKNOWNID',
|
||||
73 => 'CURLE_REMOTE_FILE_EXISTS',
|
||||
74 => 'CURLE_TFTP_NOSUCHUSER',
|
||||
75 => 'CURLE_CONV_FAILED',
|
||||
76 => 'CURLE_CONV_REQD',
|
||||
77 => 'CURLE_SSL_CACERT_BADFILE',
|
||||
78 => 'CURLE_REMOTE_FILE_NOT_FOUND',
|
||||
79 => 'CURLE_SSH',
|
||||
80 => 'CURLE_SSL_SHUTDOWN_FAILED',
|
||||
81 => 'CURLE_AGAIN',
|
||||
82 => 'CURLE_SSL_CRL_BADFILE',
|
||||
83 => 'CURLE_SSL_ISSUER_ERROR',
|
||||
84 => 'CURLE_FTP_PRET_FAILED',
|
||||
85 => 'CURLE_RTSP_CSEQ_ERROR',
|
||||
86 => 'CURLE_RTSP_SESSION_ERROR',
|
||||
87 => 'CURLE_FTP_BAD_FILE_LIST',
|
||||
88 => 'CURLE_CHUNK_FAILED',
|
||||
89 => 'CURLE_NO_CONNECTION_AVAILABLE',
|
||||
90 => 'CURLE_SSL_PINNEDPUBKEYNOTMATCH',
|
||||
91 => 'CURLE_SSL_INVALIDCERTSTATUS',
|
||||
92 => 'CURLE_HTTP2_STREAM',
|
||||
];
|
||||
|
||||
return $error_codes[$id];
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user