wip matches
This commit is contained in:
1 parent
adb15e701b
commit
7116d3c576
33 files changed
+379
-176
No files matched your search
@@ -1,118 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Utilities;
|
||||
|
||||
class Curl
|
||||
{
|
||||
public static function load($url, $debug = 0)
|
||||
{
|
||||
BetsapiCounter::count($debug);
|
||||
|
||||
if ($debug) {
|
||||
Notice::note($url, 'g');
|
||||
}
|
||||
|
||||
$ch = curl_init($url);
|
||||
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
|
||||
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($ch, CURLOPT_FAILONERROR, true);
|
||||
$data = curl_exec($ch);
|
||||
$curl_errorno = curl_errno($ch);
|
||||
if ($curl_errorno) {
|
||||
Notice::note('curl_errorno: '.self::curlerrorcode($curl_errorno));
|
||||
}
|
||||
curl_close($ch);
|
||||
|
||||
return json_decode($data, true);
|
||||
}
|
||||
|
||||
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',
|
||||
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];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
namespace App\Utilities;
|
||||
|
||||
class Margin
|
||||
{
|
||||
public static function margin($arr)
|
||||
{
|
||||
if (! is_array($arr)) {
|
||||
return false;
|
||||
}
|
||||
$r = 0;
|
||||
foreach ($arr as $key => $value) {
|
||||
$r += 100 / $value;
|
||||
}
|
||||
|
||||
return round($r, 3);
|
||||
}
|
||||
}
|
||||
@@ -16,32 +16,32 @@ class Supervisorctl
|
||||
{
|
||||
$debug = $options['d'] ?? 0;
|
||||
|
||||
// sleep 1 sec to avoid error in supervisor
|
||||
sleep(1);
|
||||
// sleep for 0,5 seconds
|
||||
usleep(500000);
|
||||
|
||||
self::$starttime = microtime(true);
|
||||
|
||||
self::$code = $options['code'];
|
||||
self::$code = $options['supervisor_id'];
|
||||
|
||||
$supervisor = Supervisor::where('code', self::$code)->get()->first();
|
||||
$supervisor = Supervisor::find(self::$code);
|
||||
|
||||
// if process can be called only from bash
|
||||
if ($supervisor) {
|
||||
$options['sport_id'] = $supervisor->sport_id;
|
||||
$options['customer_id'] = $supervisor->customer_id;
|
||||
$options['limit'] = $supervisor->limit;
|
||||
|
||||
if ($debug) {
|
||||
Notice::note('supervisor start '.self::$code, 'g');
|
||||
}
|
||||
|
||||
if ($supervisor->sleep > 0) {
|
||||
$options = array_merge($options, $supervisor->toArray());
|
||||
|
||||
if ($options['sleep'] > 0) {
|
||||
if (! $debug) {
|
||||
sleep($supervisor->sleep);
|
||||
sleep($options['sleep']);
|
||||
} else {
|
||||
Notice::note('without debug process sleeps for '.$options['sleep'].'sec', 'g');
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
Notice::note('unknown supervisor: '.$options['code'], 'r', 1);
|
||||
Notice::note('unknown supervisor: '.self::$code, 'r', 1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,7 +49,7 @@ class Supervisorctl
|
||||
{
|
||||
$processend = microtime(true);
|
||||
$runtime = round(($processend - self::$starttime) / 60, 3);
|
||||
Supervisor::where('code', self::$code)->update(['runtime' => $runtime, 'events' => self::$events]);
|
||||
Supervisor::where('id', self::$code)->update(['runtime' => $runtime, 'events' => self::$events]);
|
||||
if ($options['d']) {
|
||||
Notice::note('spervisor time: '.$runtime.' min', 'g');
|
||||
}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
{"@attributes":{"time":"2025-08-27T09:16:03+00:00","timestamp":"1756286163"},"match":[{"@attributes":{"id":"14206418","xsid":"0","gsmid":"0","last_updated":"2025-08-27T04:01:22+00:00"},"time":"2025-08-27T00:00:00+00:00","group":{"@attributes":{"id":"176385","cgid":"613","spid":"1","cnid":"389","mgid":"1100","cname":"Copa Colombia"},"@text":"FBCOL Copa Colombia-25"},"hteam":{"@attributes":{"id":"7300"},"@text":"Deportivo Pereira"},"ateam":{"@attributes":{"id":"1748701"},"@text":"Real Cundinamarca"},"results":{"status":{"@attributes":{"last_updated":"2025-08-27T04:01:22+00:00","minute":"-1"},"@text":"Fin"},"result":[{"@attributes":{"id":"1","name":"CURRENT","value":"4-3"}},{"@attributes":{"id":"2","name":"FT","value":"4-3"}},{"@attributes":{"id":"3","name":"HT","value":"2-2"}}],"periods":{"period":[{"@attributes":{"id":"1","name":"1HF"},"detail":{"@attributes":{"name":"SCORE","value":"2-2"}}},{"@attributes":{"id":"2","name":"2HF"},"detail":{"@attributes":{"name":"SCORE","value":"2-1"}}},{"@attributes":{"id":"3","name":"ET"},"detail":{"@attributes":{"name":"SCORE","value":""}}},{"@attributes":{"id":"4","name":"PEN"},"detail":{"@attributes":{"name":"SCORE","value":""}}}]}}},{"@attributes":{"id":"14219467","xsid":"0","gsmid":"0","last_updated":"2025-08-27T04:01:19+00:00"},"time":"2025-08-27T00:00:00+00:00","group":{"@attributes":{"id":"174073","cgid":"1459","spid":"1","cnid":"409","mgid":"1009","cname":"CBF Brasileiro U20"},"@text":"FBBRA CBF Brasileiro U20-25"},"hteam":{"@attributes":{"id":"67272"},"@text":"Palmeiras SP U20"},"ateam":{"@attributes":{"id":"91468"},"@text":"RB Bragantino U20"},"results":{"status":{"@attributes":{"last_updated":"2025-08-27T04:01:17+00:00","minute":"-1"},"@text":"Fin"},"result":{"@attributes":{"id":"1","name":"CURRENT","value":""}}}},{"@attributes":{"id":"14221015","xsid":"0","gsmid":"0","last_updated":"2025-08-27T04:01:19+00:00"},"time":"2025-08-27T00:00:00+00:00","group":{"@attributes":{"id":"178055","cgid":"1150","spid":"1","cnid":"477","mgid":"1183","cname":"Copa Costa Rica"},"@text":"FBCRI Copa Costa Rica-25"},"hteam":{"@attributes":{"id":"9458"},"@text":"Carmelita"},"ateam":{"@attributes":{"id":"1971266"},"@text":"Inter San Carlos"},"results":{"status":{"@attributes":{"last_updated":"2025-08-27T04:01:19+00:00","minute":"-1"},"@text":"Fin"},"result":[{"@attributes":{"id":"1","name":"CURRENT","value":"2-0"}},{"@attributes":{"id":"2","name":"FT","value":"2-0"}},{"@attributes":{"id":"3","name":"HT","value":"1-0"}}],"periods":{"period":[{"@attributes":{"id":"1","name":"1HF"},"detail":{"@attributes":{"name":"SCORE","value":"1-0"}}},{"@attributes":{"id":"2","name":"2HF"},"detail":{"@attributes":{"name":"SCORE","value":"1-0"}}},{"@attributes":{"id":"3","name":"ET"},"detail":{"@attributes":{"name":"SCORE","value":""}}},{"@attributes":{"id":"4","name":"PEN"},"detail":{"@attributes":{"name":"SCORE","value":""}}}]}}},{"@attributes":{"id":"14228363","xsid":"0","gsmid":"0","last_updated":"2025-08-27T03:00:26+00:00"},"time":"2025-08-27T00:00:00+00:00","group":{"@attributes":{"id":"178551","cgid":"704","spid":"1","cnid":"528","mgid":"1189","cname":"CONCACAF Caribbean Cup"},"@text":"FBNACUP CONCACAF Caribbean Cup-25"},"hteam":{"@attributes":{"id":"59552"},"@text":"Weymouth Wales"},"ateam":{"@attributes":{"id":"241190"},"@text":"Cibao"},"results":{"status":{"@attributes":{"last_updated":"2025-08-27T03:00:26+00:00","minute":"-1"},"@text":"Sched"},"result":[{"@attributes":{"id":"1","name":"CURRENT","value":"1-2"}},{"@attributes":{"id":"2","name":"FT","value":"1-2"}},{"@attributes":{"id":"3","name":"HT","value":"0-2"}}],"periods":{"period":[{"@attributes":{"id":"1","name":"1HF"},"detail":{"@attributes":{"name":"SCORE","value":"0-2"}}},{"@attributes":{"id":"2","name":"2HF"},"detail":{"@attributes":{"name":"SCORE","value":"1-0"}}},{"@attributes":{"id":"3","name":"ET"},"detail":{"@attributes":{"name":"SCORE","value":""}}},{"@attributes":{"id":"4","name":"PEN"},"detail":{"@attributes":{"name":"SCORE","value":""}}}]}}},{"@attributes":{"id":"14236868","xsid":"0","gsmid":"0","last_updated":"2025-08-27T03:00:26+00:00"},"time":"2025-08-27T00:00:00+00:00","group":{"@attributes":{"id":"174829","cgid":"1857","spid":"1","cnid":"409","mgid":"1357","cname":"Brasileiro Feminino A2"},"@text":"WFBBRA Brasileiro Feminino A2-25"},"hteam":{"@attributes":{"id":"188666"},"@text":"Botafogo FR"},"ateam":{"@attributes":{"id":"52555"},"@text":"Santos"},"results":{"status":{"@attributes":{"last_updated":"2025-08-27T03:00:26+00:00","minute":"-1"},"@text":"Sched"},"result":[{"@attributes":{"id":"1","name":"CURRENT","value":"0-1"}},{"@attributes":{"id":"2","name":"FT","value":"0-1"}},{"@attributes":{"id":"3","name":"HT","value":"0-0"}}],"periods":{"period":[{"@attributes":{"id":"1","name":"1HF"},"detail":{"@attributes":{"name":"SCORE","value":"0-0"}}},{"@attributes":{"id":"2","name":"2HF"},"detail":{"@attributes":{"name":"SCORE","value":"0-1"}}},{"@attributes":{"id":"3","name":"ET"},"detail":{"@attributes":{"name":"SCORE","vaLine truncated
|
||||
Reference in new issue
Block a user