This commit is contained in:
salam committed 2025-12-05 07:00:25 +01:00
1 parent 7abcc5c56c
commit 90bba45c0a
26 files changed
+3448 -32353

No files matched your search

+8 -23
View File
@@ -8,11 +8,8 @@ class Curl
{ {
public static $file; public static $file;
public static function load($url, $filetype = 'json') public static function load($url)
{ {
self::$file = app_path().'/Console/TestFiles/'.strtolower(str_replace(' ', '_', NuhBash::$options['name'])).'.'.$filetype;
$debug = NuhBash::$options['d'] ?? 0; $debug = NuhBash::$options['d'] ?? 0;
$save = NuhBash::$options['s'] ?? 0; $save = NuhBash::$options['s'] ?? 0;
$read = NuhBash::$options['r'] ?? 0; $read = NuhBash::$options['r'] ?? 0;
@@ -23,22 +20,13 @@ class Curl
if ($read) { if ($read) {
if ($debug) { if ($debug) {
Notice::note('data read local', 'r'); Notice::note('READ LOCAL', 'r');
} }
switch ($filetype) { $filename = app_path().'/Console/TestFiles/'.strtolower(str_replace(' ', '_', NuhBash::$options['name'])).'.json';
case 'xml':
return simplexml_load_file(self::$file, null, LIBXML_NOCDATA);
break;
case 'json': $file = file_get_contents($filename);
$file = file_get_contents(self::$file);
return json_decode($file, true); return json_decode($file, true);
break;
default:
Notice::note('filetype unknown', 'r', 1);
}
} }
$ch = curl_init($url); $ch = curl_init($url);
@@ -57,15 +45,12 @@ class Curl
} }
if ($save) { if ($save) {
Notice::note('data saved', 'b'); Notice::note('SAVED LOCAL', 'b');
self::$file = app_path().'/Console/TestFiles/'.strtolower(str_replace(' ', '_', NuhBash::$options['name'])).'.json';
file_put_contents(self::$file, $data); file_put_contents(self::$file, $data);
} }
if ($filetype == 'json') { return json_decode($data, true);
return json_decode($data, true);
} else {
return $data;
}
} }
public static function curlerrorcode($id) public static function curlerrorcode($id)
@@ -2,8 +2,8 @@
namespace App\Console\Commands\Grapper\TxOdds; namespace App\Console\Commands\Grapper\TxOdds;
use App\Console\Commands\Curl;
use App\Console\Commands\NuhBash; use App\Console\Commands\NuhBash;
use App\Console\Commands\Xml;
use App\Models\CompetitionGroup; use App\Models\CompetitionGroup;
use App\Models\Element; use App\Models\Element;
use App\Models\Event; use App\Models\Event;
@@ -19,86 +19,91 @@ class Fixtures
$print = NuhBash::$options['p'] ?? 0; $print = NuhBash::$options['p'] ?? 0;
$break = NuhBash::$options['b'] ?? 0; $break = NuhBash::$options['b'] ?? 0;
$count = 0;
$total = 0; $total = 0;
$date = Carbon::now(); $now = Carbon::now();
/**
* Delete
*/
$info = Event::where('starttime', '<', $now->toDateTimeString())->delete();
if ($debug) {
Notice::note("Deleted: $info");
}
/**
* Grap
*/
for ($i = 0; $i < 30; $i++) { for ($i = 0; $i < 30; $i++) {
$from = $date->addDays($i)->toDateString(); $from = $now->addDays($i)->toDateString();
$to = $date->addDays($i + 1)->toDateString(); $to = $now->addDays($i + 1)->toDateString();
$url = 'https://xml2.txodds.com/feed/result/xml.php?'.config('nuh.txodds_token_soccer')."&date=$from,$to&json=2"; $url = 'https://xml2.txodds.com/feed/result/xml.php?'.NuhBash::$AUTHTOKEN."&date=$from,$to";
$data = Curl::load($url);
$data = Xml::load($url);
if ($print) { if ($print) {
Notice::note($data, '', 1); dd($data);
} }
$count = 0; foreach ($data as $row) {
$e = []; // <match id="14563695" xsid="0" gsmid="0" last_updated="2025-12-02T08:31:11+00:00">
foreach ($data['match'] as $match) { // <time>2025-12-03T22:30:00+00:00</time>
// <group id="173093" cgid="1255" spid="1" cnid="467" mgid="1002" cname="Reserve League">FBARG Reserve League-25</group>
// <hteam id="187003" >Boca Juniors II</hteam>
// <ateam id="185803" >Gimnasia LP II</ateam>
// <results>
// <status last_updated="2025-12-02T08:31:10+00:00" minute="-1">Sched</status>
// <result id="1" name="CURRENT" value="" />
// </results>
// </match>
$event = [];
$event['txodds_id'] = (int) $row['id'];
$event['starttime'] = Carbon::createFromDate((string) $row->time)->toDateTimeString();
$group_name = (string) $row->group;
$event['group_id'] = (int) $row->group['id'];
$event['sport_id'] = (int) $row->group['spid'];
$event['country_id'] = (int) $row->group['cnid'];
$event['competition_group_id'] = (int) $row->group['cgid'];
$competition_group_name = (string) $row->group['cname'];
$home = (string) $row->hteam;
$event['home_id'] = (int) $row->hteam['id'];
$away = (string) $row->ateam;
$event['away_id'] = (int) $row->ateam['id'];
foreach ($match as $key => $v) { Group::updateOrCreate([
'txodds_id' => $event['group_id'],
'competition_group_id' => $event['competition_group_id'],
'sport_id' => $event['sport_id'],
'country_id' => $event['country_id'],
], [
'name' => $group_name,
]);
switch ($key) { CompetitionGroup::updateOrCreate([
case '@attributes': 'txodds_id' => $event['competition_group_id'],
$e['txodds_id'] = (int) $v['id']; 'sport_id' => $event['sport_id'],
break; 'country_id' => $event['country_id'],
], [
'name' => $competition_group_name,
]);
case 'time': Element::firstOrCreate([
$starttime = Carbon::createFromDate($v)->toDateTimeString(); 'txodds_id' => $event['home_id'],
break; 'name' => $home,
'sport_id' => $event['sport_id'],
]);
case 'group': Element::firstOrCreate([
'txodds_id' => $event['away_id'],
'name' => $away,
'sport_id' => $event['sport_id'],
]);
$e['sport_id'] = (int) $v['@attributes']['spid']; Event::updateOrCreate($event, ['starttime' => $event['starttime']]);
$e['country_id'] = (int) $v['@attributes']['cnid'];
$e['group_id'] = (int) $v['@attributes']['id'];
$e['competition_group_id'] = (int) $v['@attributes']['cgid'];
Group::firstOrCreate([
'txodds_id' => $v['@attributes']['id'],
'competition_group_id' => $e['competition_group_id'],
], [
'name' => (string) $v['@text'],
'sport_id' => $e['sport_id'],
'country_id' => $e['country_id'],
]);
CompetitionGroup::firstOrCreate([
'txodds_id' => $v['@attributes']['cgid'],
'name' => $v['@attributes']['cname'],
'sport_id' => $e['sport_id'],
'country_id' => $e['country_id'],
]);
break;
case 'hteam':
$e['home_id'] = $v['@attributes']['id'];
Element::firstOrCreate([
'txodds_id' => (int) $v['@attributes']['id'],
'name' => $v['@text'],
'sport_id' => $e['sport_id'],
]);
break;
case 'ateam':
$e['away_id'] = $v['@attributes']['id'];
Element::firstOrCreate([
'txodds_id' => (int) $v['@attributes']['id'],
'name' => $v['@text'],
'sport_id' => $e['sport_id'],
]);
break;
}
}
Event::firstOrCreate($e, ['starttime' => $starttime]);
$count++; $count++;
} }
if ($debug) { if ($debug) {
@@ -111,6 +116,8 @@ class Fixtures
break; break;
} }
} }
Notice::note("Total - $total events processed", 'g'); if ($debug) {
Notice::note("Total - $total events processed", 'g');
}
} }
} }
+246 -161
View File
@@ -2,12 +2,20 @@
namespace App\Console\Commands\Grapper\TxOdds; namespace App\Console\Commands\Grapper\TxOdds;
use App\Console\Commands\Curl;
use App\Console\Commands\Grapper\Helper; use App\Console\Commands\Grapper\Helper;
use App\Console\Commands\Grapper\TxOdds\Odds\_3Way;
use App\Console\Commands\Grapper\TxOdds\Odds\_Dc;
use App\Console\Commands\NuhBash; use App\Console\Commands\NuhBash;
use App\Console\Commands\Xml;
use App\Models\CompetitionGroup;
use App\Models\Element;
use App\Models\Event; use App\Models\Event;
use App\Models\EventBookmaker; use App\Models\EventBookmaker;
use App\Models\Group;
use App\Models\Odds2way;
use App\Models\Odds3way; use App\Models\Odds3way;
use App\Models\OddsDc;
use App\Models\OddsGgng;
use App\Models\OddsQualify; use App\Models\OddsQualify;
use App\Models\OddsTotal; use App\Models\OddsTotal;
use App\Utilities\Notice; use App\Utilities\Notice;
@@ -15,6 +23,8 @@ use Carbon\Carbon;
class Odds class Odds
{ {
public static $event = [];
public static function grap() public static function grap()
{ {
@@ -102,17 +112,17 @@ class Odds
/************************************************* /*************************************************
* URL * URL
*************************************************/ *************************************************/
$url = 'https://xml2.txodds.com/feed/odds/xml.php?'.config('nuh.txodds_token_soccer').'&all_odds=2&spid='.NuhBash::$options['sport_id'].'&json=2'; $url = 'https://xml2.txodds.com/feed/odds/xml.php?'.NuhBash::$AUTHTOKEN.'&all_odds=2&spid='.NuhBash::$options['sport_id'];
$_calls = []; $_calls = [];
if (NuhBash::$options['event_id']) { if (NuhBash::$options['event_id']) {
$_calls[] = $url."&ot=$markets&peid=".NuhBash::$options['event_id']; $_calls[] = $url."&ot=$markets&peid=".NuhBash::$options['event_id'];
} elseif (NuhBash::$options['a']) { } elseif (NuhBash::$options['a']) {
$res = Event::where('time', '>', Carbon::now()->toDateTimeString())->pluck('txid'); $res = Event::where('starttime', '>', Carbon::now()->toDateTimeString())->pluck('txodds_id');
foreach ($res as $id) { foreach ($res as $id) {
$_calls[] = $url."&ot=$markets&peid=".$id; $_calls[] = $url."&ot=$markets&peid=".$id;
} }
} elseif (NuhBash::$options['w']) { } elseif (NuhBash::$options['w']) {
$res = Event::where('time', '>', Carbon::now()->toDateTimeString())->where('time', '<', Carbon::now()->addDays(7)->toDateTimeString())->pluck('txid'); $res = Event::where('starttime', '>', Carbon::now()->toDateTimeString())->where('starttime', '<', Carbon::now()->addDays(7)->toDateTimeString())->pluck('txodds_id');
foreach ($res as $id) { foreach ($res as $id) {
$_calls[] = $url."&ot=$markets&peid=".$id; $_calls[] = $url."&ot=$markets&peid=".$id;
} }
@@ -125,11 +135,84 @@ class Odds
*************************************************/ *************************************************/
foreach ($_calls as $url) { foreach ($_calls as $url) {
$json_obj = Curl::load($url); $data = Xml::load($url);
foreach ($data as $row) {
$event = [];
$event['id'] = (int) $row['id'];
$event['starttime'] = Carbon::createFromDate((string) $row->time)->toDateTimeString();
$group_name = (string) $row->group;
$event['group_id'] = (int) $row->group['id'];
$event['sport_id'] = (int) $row->group['spid'];
$event['country_id'] = (int) $row->group['cnid'];
$event['competition_group_id'] = (int) $row->group['cgid'];
$competition_group_name = (string) $row->group['cname'];
$home = (string) $row->hteam;
$event['home_id'] = (int) $row->hteam['id'];
$away = (string) $row->ateam;
$event['away_id'] = (int) $row->ateam['id'];
Group::updateOrCreate([
'txodds_id' => $event['group_id'],
'competition_group_id' => $event['competition_group_id'],
'sport_id' => $event['sport_id'],
'country_id' => $event['country_id'],
], [
'name' => $group_name,
]);
CompetitionGroup::updateOrCreate([
'txodds_id' => $event['competition_group_id'],
'sport_id' => $event['sport_id'],
'country_id' => $event['country_id'],
], [
'name' => $competition_group_name,
]);
Element::firstOrCreate([
'txodds_id' => $event['home_id'],
'name' => $home,
'sport_id' => $event['sport_id'],
]);
Element::firstOrCreate([
'txodds_id' => $event['away_id'],
'name' => $away,
'sport_id' => $event['sport_id'],
]);
Event::updateOrCreate($event, ['starttime' => $event['starttime']]);
foreach ($row->bookmaker as $book) {
$bkmid = $book['bid'];
foreach ($book->offer as $offer) {
$bettypeid = (int) $offer['od'];
Notice::note($bettypeid, 'b');
switch ($bettypeid) {
case 0:
_3Way::grap($bkmid, $offer);
break;
case 5242880:
_Dc::grap($bkmid, $offer);
break;
default:
Notice::note($offer, 'r', 1);
break;
}
}
}
}
foreach ($json_obj['match'] as $match) { foreach ($json_obj['match'] as $match) {
$e = []; self::$event = [];
foreach ($match as $key => $v) { foreach ($match as $key => $v) {
@@ -140,197 +223,199 @@ class Odds
switch ($key) { switch ($key) {
case '@attributes': case '@attributes':
$e['id'] = (int) $v['id']; self::$event['id'] = (int) $v['id'];
break; break;
case 'time': case 'time':
$starttime = Carbon::createFromDate($v)->toDateTimeString(); self::$event['starttime'] = Carbon::createFromDate($v)->toDateTimeString();
break; break;
case 'group': case 'group':
$e['sport_id'] = (int) $v['@attributes']['spid']; self::$event['sport_id'] = (int) $v['@attributes']['spid'];
$e['country_id'] = (int) $v['@attributes']['cnid']; self::$event['country_id'] = (int) $v['@attributes']['cnid'];
$e['group_id'] = (int) $v['@attributes']['id']; self::$event['group_id'] = (int) $v['@attributes']['id'];
$e['competition_group_id'] = (int) $v['@attributes']['cgid']; self::$event['competition_group_id'] = (int) $v['@attributes']['cgid'];
break; break;
case 'hteam': case 'hteam':
$e['home_id'] = $v['@attributes']['id']; self::$event['home_id'] = $v['@attributes']['id'];
break; break;
case 'ateam': case 'ateam':
$e['away_id'] = $v['@attributes']['id']; self::$event['away_id'] = $v['@attributes']['id'];
$event = Event::firstOrCreate($e, ['starttime' => $starttime]);
break; break;
case 'bookmaker': case 'bookmaker':
foreach ($v as $books) { Event::updateOrCreate(self::$event, ['starttime' => self::$event['starttime']]);
foreach ($books as $bookkey => $book) { Notice::note(count($v), 'r');
$bkmid = false; if (count($v) <= 2) {
$bkmid = (int) $v['@attributes']['bid'];
Notice::note($v, 'p');
} else {
foreach ($v as $books) {
switch ($bookkey) { Notice::note($books, 'b');
case '@attributes':
if (isset($book['bid'])) {
$bkmid = (int) $book['bid'];
}
case 'offer': $bkmid = (int) $books['@attributes']['bid'];
if ($bkmid) {
foreach ($book as $type => $od) {
switch ($type) { // foreach ($books['offer'] as $bk => $book) {
case '@attributes':
$bettypeid = (int) $od['ot'];
$bmoid = (int) $od['bmoid'];
break;
case 'odds':
switch ($bettypeid) {
case '0':
Odds3way::updateOrCreate(
[
'event_id' => $event->id,
'bookmaker_id' => $bkmid,
'sport_id' => NuhBash::$options['sport_id'],
],
[
'h3w' => (float) $od['o1'],
'd3w' => (float) $od['o2'],
'a3w' => (float) $od['o3'],
'margin' => (float) Helper::margin([$od['o1'], $od['o2'], $od['o3']], 1),
'flag' => 1,
'nuh_check' => 0,
'source_updated_at' => $od['@attributes']['time'],
'last_check_at' => Carbon::now()->toDateTimeString(),
]
);
EventBookmaker::updateOrCreate([ // if ($bkmid) {
'event_id' => $event->id, // foreach ($book as $type => $od) {
'bookmaker_id' => $bkmid,
'bmoid' => $bmoid,
], [
'bkm_starttime' => Carbon::createFromDate($od['@attributes']['starting_time'])->toDateTimeString(),
'last_check_at' => Carbon::now()->toDateTimeString(),
]);
break; // switch ($type) {
// case '@attributes':
// $bettypeid = (int) $od['ot'];
// $bmoid = (int) $od['bmoid'];
// break;
// case 'odds':
// switch ($bettypeid) {
// case '0':
// Odds3way::updateOrCreate(
// [
// 'event_id' => $event->id,
// 'bookmaker_id' => $bkmid,
// 'sport_id' => NuhBash::$options['sport_id'],
// ],
// [
// 'h3w' => (float) $od['o1'],
// 'd3w' => (float) $od['o2'],
// 'a3w' => (float) $od['o3'],
// 'margin' => (float) Helper::margin([$od['o1'], $od['o2'], $od['o3']], 1),
// 'flag' => 1,
// 'nuh_check' => 0,
// 'source_updated_at' => $od['@attributes']['time'],
// 'last_check_at' => Carbon::now()->toDateTimeString(),
// ]
// );
case '1': // EventBookmaker::updateOrCreate([
Odds2way::updateOrCreate( // 'event_id' => $event->id,
[ // 'bookmaker_id' => $bkmid,
'event_id' => $event->id, // 'bmoid' => $bmoid,
'bookmaker_id' => $bkmid, // ], [
'sport_id' => NuhBash::$options['sport_id'], // 'bkm_starttime' => Carbon::createFromDate($od['@attributes']['starting_time'])->toDateTimeString(),
], // 'last_check_at' => Carbon::now()->toDateTimeString(),
[ // ]);
'h2w' => (float) $od['o1'],
'a2w' => (float) $od['o3'],
'margin' => (float) Helper::margin([$od['o1'], $od['o3']], 1),
'flag' => 1,
'nuh_check' => 0,
'source_updated_at' => $od['@attributes']['time'],
'last_check_at' => Carbon::now()->toDateTimeString(),
]
);
break;
case '4': // break;
OddsTotal::updateOrCreate(
[
'event_id' => $event->id,
'bookmaker_id' => $bkmid,
'sport_id' => NuhBash::$options['sport_id'],
'spread' => (float) $od['o3'],
],
[
'over' => (float) $od['o1'],
'under' => (float) $od['o2'],
'margin' => (float) Helper::margin([$od['o1'], $od['o2'], $od['o3']], 1),
'flag' => 1,
'nuh_check' => 0,
'source_updated_at' => $od['@attributes']['time'],
'last_check_at' => Carbon::now()->toDateTimeString(),
]
);
break;
case '5242880': // // case '1':
OddsDc::updateOrCreate( // // Odds2way::updateOrCreate(
[ // // [
'event_id' => $event->id, // // 'event_id' => $event->id,
'bookmaker_id' => $bkmid, // // 'bookmaker_id' => $bkmid,
'sport_id' => NuhBash::$options['sport_id'], // // 'sport_id' => NuhBash::$options['sport_id'],
], // // ],
[ // // [
'dc1x' => (float) $od['o1'], // // 'h2w' => (float) $od['o1'],
'dc12' => (float) $od['o2'], // // 'a2w' => (float) $od['o3'],
'dc2x' => (float) $od['o3'], // // 'margin' => (float) Helper::margin([$od['o1'], $od['o3']], 1),
'margin' => (float) Helper::margin([$od['o1'], $od['o2'], $od['o3']], 1), // // 'flag' => 1,
'flag' => 1, // // 'nuh_check' => 0,
'nuh_check' => 0, // // 'source_updated_at' => $od['@attributes']['time'],
'source_updated_at' => $od['@attributes']['time'], // // 'last_check_at' => Carbon::now()->toDateTimeString(),
'last_check_at' => Carbon::now()->toDateTimeString(), // // ]
] // // );
); // // break;
break;
case '11534337': // // case '4':
OddsGgng::updateOrCreate( // // OddsTotal::updateOrCreate(
[ // // [
'event_id' => $event->id, // // 'event_id' => $event->id,
'bookmaker_id' => $bkmid, // // 'bookmaker_id' => $bkmid,
'sport_id' => NuhBash::$options['sport_id'], // // 'sport_id' => NuhBash::$options['sport_id'],
], // // 'spread' => (float) $od['o3'],
[ // // ],
'gg' => (float) $od['o1'], // // [
'ng' => (float) $od['o3'], // // 'over' => (float) $od['o1'],
'margin' => (float) Helper::margin([$od['o1'], $od['o3']], 1), // // 'under' => (float) $od['o2'],
'flag' => 1, // // 'margin' => (float) Helper::margin([$od['o1'], $od['o2'], $od['o3']], 1),
'nuh_check' => 0, // // 'flag' => 1,
'source_updated_at' => $od['@attributes']['time'], // // 'nuh_check' => 0,
'last_check_at' => Carbon::now()->toDateTimeString(), // // 'source_updated_at' => $od['@attributes']['time'],
] // // 'last_check_at' => Carbon::now()->toDateTimeString(),
); // // ]
break; // // );
// // break;
case '11534337': // // case '5242880':
OddsQualify::updateOrCreate( // // OddsDc::updateOrCreate(
[ // // [
'event_id' => $event->id, // // 'event_id' => $event->id,
'bookmaker_id' => $bkmid, // // 'bookmaker_id' => $bkmid,
'sport_id' => NuhBash::$options['sport_id'], // // 'sport_id' => NuhBash::$options['sport_id'],
], // // ],
[ // // [
'htq' => (float) $od['o1'], // // 'dc1x' => (float) $od['o1'],
'atq' => (float) $od['o2'], // // 'dc12' => (float) $od['o2'],
'margin' => (float) Helper::margin([$od['o1'], $od['o3']], 1), // // 'dc2x' => (float) $od['o3'],
'flag' => 1, // // 'margin' => (float) Helper::margin([$od['o1'], $od['o2'], $od['o3']], 1),
'nuh_check' => 0, // // 'flag' => 1,
'source_updated_at' => $od['@attributes']['time'], // // 'nuh_check' => 0,
'last_check_at' => Carbon::now()->toDateTimeString(), // // 'source_updated_at' => $od['@attributes']['time'],
] // // 'last_check_at' => Carbon::now()->toDateTimeString(),
); // // ]
break; // // );
} // // break;
break; // // case '11534337':
} // // OddsGgng::updateOrCreate(
} // // [
break; // // 'event_id' => $event->id,
} // // 'bookmaker_id' => $bkmid,
} // // 'sport_id' => NuhBash::$options['sport_id'],
// // ],
// // [
// // 'gg' => (float) $od['o1'],
// // 'ng' => (float) $od['o3'],
// // 'margin' => (float) Helper::margin([$od['o1'], $od['o3']], 1),
// // 'flag' => 1,
// // 'nuh_check' => 0,
// // 'source_updated_at' => $od['@attributes']['time'],
// // 'last_check_at' => Carbon::now()->toDateTimeString(),
// // ]
// // );
// // break;
// // case '11534337':
// // OddsQualify::updateOrCreate(
// // [
// // 'event_id' => $event->id,
// // 'bookmaker_id' => $bkmid,
// // 'sport_id' => NuhBash::$options['sport_id'],
// // ],
// // [
// // 'htq' => (float) $od['o1'],
// // 'atq' => (float) $od['o2'],
// // 'margin' => (float) Helper::margin([$od['o1'], $od['o3']], 1),
// // 'flag' => 1,
// // 'nuh_check' => 0,
// // 'source_updated_at' => $od['@attributes']['time'],
// // 'last_check_at' => Carbon::now()->toDateTimeString(),
// // ]
// // );
// // break;
// }
// break;
// }
// }
// break;
// }
// }
} }
break;
} }
break;
} }
} }
Notice::note('END', 'r', 1);
} }
} }
} }
@@ -0,0 +1,32 @@
<?php
namespace App\Console\Commands\Grapper\TxOdds\Odds;
use App\Models\Odds3way;
class _3Way
{
public static function grap($bkmid, $offer)
{
echo $bkmid;
dd($offer);
// Odds3way::updateOrCreate(
// [
// 'event_id' => $event->id,
// 'bookmaker_id' => $bkmid,
// 'sport_id' => NuhBash::$options['sport_id'],
// ],
// [
// 'h3w' => (float) $od['o1'],
// 'd3w' => (float) $od['o2'],
// 'a3w' => (float) $od['o3'],
// 'margin' => (float) Helper::margin([$od['o1'], $od['o2'], $od['o3']], 1),
// 'flag' => 1,
// 'nuh_check' => 0,
// 'source_updated_at' => $od['@attributes']['time'],
// 'last_check_at' => Carbon::now()->toDateTimeString(),
// ]
// );
}
}
@@ -0,0 +1,30 @@
<?php
namespace App\Console\Commands\Grapper\TxOdds\Odds;
class _Dc
{
public static function grap($bkmid, $offer)
{
echo $bkmid;
dd($offer);
// OddsDc::updateOrCreate(
// [
// 'event_id' => $event->id,
// 'bookmaker_id' => $bkmid,
// 'sport_id' => NuhBash::$options['sport_id'],
// ],
// [
// 'dc1x' => (float) $od['o1'],
// 'dc12' => (float) $od['o2'],
// 'dc2x' => (float) $od['o3'],
// 'margin' => (float) Helper::margin([$od['o1'], $od['o2'], $od['o3']], 1),
// 'flag' => 1,
// 'nuh_check' => 0,
// 'source_updated_at' => $od['@attributes']['time'],
// 'last_check_at' => Carbon::now()->toDateTimeString(),
// ]
// );
}
}
@@ -13,6 +13,12 @@ class TxSwitch
*/ */
public static function switch() public static function switch()
{ {
if (NuhBash::$options['sport_id'] == 1) {
NuhBash::$AUTHTOKEN = 'ident=betaid1&passwd=Dy59vpRC';
} else {
NuhBash::$AUTHTOKEN = 'ident=betaid2&passwd=Dy59vpRC';
}
switch (NuhBash::$options['name']) { switch (NuhBash::$options['name']) {
case 'Fixtures': case 'Fixtures':
Fixtures::grap(); Fixtures::grap();
+10 -6
View File
@@ -6,14 +6,18 @@ use App\Console\Commands\Grapper\TxSwitch;
use App\Models\Supervisor; use App\Models\Supervisor;
use App\Utilities\Notice; use App\Utilities\Notice;
use App\Utilities\Supervisorctl; use App\Utilities\Supervisorctl;
use DB;
use Illuminate\Console\Command; use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;
class NuhBash extends Command class NuhBash extends Command
{ {
public static $options = []; public static $options = [];
protected $signature = 'nuh {process=help} {eventid=0} {--d} {--f} {--a} {--w} {--p} {--s} {--r} {--b}'; public static $AUTHTOKEN;
public static $BETSAPI_TOKEN = '36152-aeTRNnZxSPUwGe';
protected $signature = 'nuh {process=help} {eventid=0} {--d} {--f} {--a} {--w} {--p} {--s} {--r} {--b} {--q}';
protected $description = 'NuhBash'; protected $description = 'NuhBash';
@@ -23,7 +27,7 @@ class NuhBash extends Command
self::$options['supervisor_id'] = $this->argument('process'); self::$options['supervisor_id'] = $this->argument('process');
self::$options['event_id'] = $this->argument('eventid'); self::$options['event_id'] = $this->argument('eventid');
$queries = self::$options['m'] ?? 0; $queries = self::$options['q'] ?? 0;
if ($this->argument('process') == 'help') { if ($this->argument('process') == 'help') {
$txt = PHP_EOL; $txt = PHP_EOL;
@@ -35,11 +39,11 @@ class NuhBash extends Command
$txt .= 'List of options'.PHP_EOL; $txt .= 'List of options'.PHP_EOL;
$txt .= '----------------------------------------------'.PHP_EOL; $txt .= '----------------------------------------------'.PHP_EOL;
$txt .= '--d debug'.PHP_EOL; $txt .= '--d debug'.PHP_EOL;
$txt .= '--m debug queries'.PHP_EOL; $txt .= '--q print queries'.PHP_EOL;
$txt .= '--f force update market'.PHP_EOL; $txt .= '--f force update market'.PHP_EOL;
$txt .= '--a reload all'.PHP_EOL; $txt .= '--a reload all'.PHP_EOL;
$txt .= '--w reload one week'.PHP_EOL; $txt .= '--w reload one week'.PHP_EOL;
$txt .= '--p print odds'.PHP_EOL; $txt .= '--p print grapped file'.PHP_EOL;
$txt .= '--s store data to file '.PHP_EOL; $txt .= '--s store data to file '.PHP_EOL;
$txt .= '--r read data from file '.PHP_EOL; $txt .= '--r read data from file '.PHP_EOL;
$txt .= '--b break loop after one '.PHP_EOL; $txt .= '--b break loop after one '.PHP_EOL;
@@ -73,7 +77,7 @@ class NuhBash extends Command
// betsapi // betsapi
break; break;
default: default:
Note::notice('Provider not defined', 'r', 1); Notice::note('Provider not defined', 'r', 1);
break; break;
} }
File diff suppressed because it is too large. Load diff
+800
View File
@@ -0,0 +1,800 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<matches time="2025-12-04T05:47:43+00:00" timestamp="1764827263">
<match id="14503518" xsid="0" gsmid="0">
<time>2025-12-04T11:00:00+00:00</time>
<group id="180182" cgid="243" spid="1" cnid="463" mgid="1006" cname="Cup">FBAZE Cup-25</group>
<hteam id="34745">Gabala</hteam>
<ateam id="208260">Safa</ateam>
<results>
</results>
<bookmaker bid="649" name="1xbet">
<offer id="4100798916" n="33" ot="5242880" otname="double chance (1x/x2/12)" last_updated="2025-12-04T05:42:29+00:00" flags="1" bmoid="290538806">
<odds i="0" time="2025-12-04T05:42:29+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.240</o1>
<o2>1.680</o2>
<o3>1.230</o3>
</odds>
</offer>
<offer id="4100798917" n="36" ot="0" otname="three way" last_updated="2025-12-04T05:42:29+00:00" flags="1" bmoid="290538806">
<odds i="0" time="2025-12-04T05:42:29+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.960</o1>
<o2>3.380</o2>
<o3>3.385</o3>
</odds>
</offer>
<offer id="4100798918" n="20" ot="4" otname="totals" last_updated="2025-12-04T05:42:29+00:00" flags="1" bmoid="290538806">
<odds i="0" time="2025-12-04T05:04:56+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.610</o1>
<o2>2.070</o2>
<o3>2.50</o3>
</odds>
</offer>
<offer id="4100807195" n="20" ot="4" otname="totals" last_updated="2025-12-04T05:42:29+00:00" flags="1" bmoid="290538806">
<odds i="0" time="2025-12-04T05:04:56+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.990</o1>
<o2>1.660</o2>
<o3>3.00</o3>
</odds>
</offer>
<offer id="4100810046" n="26" ot="11534337" otname="both teams to score" last_updated="2025-12-04T05:42:29+00:00" flags="1" bmoid="290538806">
<odds i="0" time="2025-12-04T05:42:29+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.540</o1>
<o2>0.000</o2>
<o3>2.265</o3>
</odds>
</offer>
<offer id="4100852564" n="5" ot="4" otname="totals" last_updated="2025-12-04T05:42:29+00:00" flags="1" bmoid="290538806">
<odds i="0" time="2025-12-04T05:42:29+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.002</o1>
<o2>11.600</o2>
<o3>0.50</o3>
</odds>
</offer>
<offer id="4100852565" n="23" ot="4" otname="totals" last_updated="2025-12-04T05:42:29+00:00" flags="1" bmoid="290538806">
<odds i="0" time="2025-12-04T05:37:45+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>4.350</o1>
<o2>1.142</o2>
<o3>4.50</o3>
</odds>
</offer>
<offer id="4100852566" n="24" ot="4" otname="totals" last_updated="2025-12-04T05:42:29+00:00" flags="1" bmoid="290538806">
<odds i="0" time="2025-12-04T05:37:45+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>7.800</o1>
<o2>1.023</o2>
<o3>5.50</o3>
</odds>
</offer>
<offer id="4100852567" n="23" ot="4" otname="totals" last_updated="2025-12-04T05:42:29+00:00" flags="1" bmoid="290538806">
<odds i="0" time="2025-12-04T05:37:45+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>2.540</o1>
<o2>1.444</o2>
<o3>3.50</o3>
</odds>
</offer>
<offer id="4100852568" n="27" ot="4" otname="totals" last_updated="2025-12-04T05:42:29+00:00" flags="1" bmoid="290538806">
<odds i="0" time="2025-12-04T05:37:45+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.168</o1>
<o2>4.050</o2>
<o3>1.50</o3>
</odds>
</offer>
<offer id="4101131496" n="20" ot="4" otname="totals" last_updated="2025-12-04T05:42:29+00:00" flags="1" bmoid="290538806">
<odds i="0" time="2025-12-04T04:59:21+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.260</o1>
<o2>3.220</o2>
<o3>2.00</o3>
</odds>
</offer>
<offer id="4101131498" n="20" ot="4" otname="totals" last_updated="2025-12-04T05:42:29+00:00" flags="1" bmoid="290538806">
<odds i="0" time="2025-12-04T05:37:45+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>3.740</o1>
<o2>1.193</o2>
<o3>4.00</o3>
</odds>
</offer>
<offer id="4101175260" n="21" ot="4" otname="totals" last_updated="2025-12-04T05:42:29+00:00" flags="1" bmoid="290538806">
<odds i="0" time="2025-12-04T05:04:56+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>7.300</o1>
<o2>1.033</o2>
<o3>5.00</o3>
</odds>
</offer>
<offer id="4101239983" n="6" ot="4" otname="totals" last_updated="2025-12-04T05:42:29+00:00" flags="1" bmoid="290538806">
<odds i="0" time="2025-12-04T05:37:45+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.003</o1>
<o2>9.200</o2>
<o3>1.00</o3>
</odds>
</offer>
</bookmaker>
<bookmaker bid="825" name="SportyBet">
<offer id="4100843464" n="26" ot="0" otname="three way" last_updated="2025-12-04T05:44:11+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:33:37+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>2.050</o1>
<o2>3.500</o2>
<o3>3.100</o3>
</odds>
</offer>
<offer id="4101203609" n="2" ot="4" otname="totals" last_updated="2025-12-04T05:44:11+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T02:41:27+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>3.700</o1>
<o2>1.220</o2>
<o3>4.50</o3>
</odds>
</offer>
<offer id="4101203610" n="19" ot="11534337" otname="both teams to score" last_updated="2025-12-04T05:44:11+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:33:37+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.530</o1>
<o2>0.000</o2>
<o3>2.200</o3>
</odds>
</offer>
<offer id="4101203611" n="7" ot="4" otname="totals" last_updated="2025-12-04T05:44:11+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T04:58:22+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.640</o1>
<o2>2.100</o2>
<o3>2.50</o3>
</odds>
</offer>
<offer id="4101203612" n="11" ot="4" otname="totals" last_updated="2025-12-04T05:44:11+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:33:37+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>2.500</o1>
<o2>1.440</o2>
<o3>3.50</o3>
</odds>
</offer>
<offer id="4101221461" n="6" ot="4" otname="totals" last_updated="2025-12-04T05:44:11+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T04:58:22+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.190</o1>
<o2>4.000</o2>
<o3>1.50</o3>
</odds>
</offer>
</bookmaker>
<bookmaker bid="823" name="BetKing">
<offer id="4100846975" n="27" ot="0" otname="three way" last_updated="2025-12-04T05:42:58+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:32:55+00:00" starting_time="2025-12-04T12:00:00+00:00">
<o1>2.040</o1>
<o2>3.450</o2>
<o3>3.150</o3>
</odds>
</offer>
<offer id="4101204491" n="17" ot="5242880" otname="double chance (1x/x2/12)" last_updated="2025-12-04T05:42:58+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:32:55+00:00" starting_time="2025-12-04T12:00:00+00:00">
<o1>1.290</o1>
<o2>1.590</o2>
<o3>1.250</o3>
</odds>
</offer>
<offer id="4101204493" n="9" ot="4" otname="totals" last_updated="2025-12-04T05:42:58+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:23:05+00:00" starting_time="2025-12-04T12:00:00+00:00">
<o1>2.430</o1>
<o2>1.410</o2>
<o3>3.50</o3>
</odds>
</offer>
<offer id="4101204495" n="20" ot="11534337" otname="both teams to score" last_updated="2025-12-04T05:42:58+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:32:55+00:00" starting_time="2025-12-04T12:00:00+00:00">
<o1>1.520</o1>
<o2>0.000</o2>
<o3>2.160</o3>
</odds>
</offer>
<offer id="4101204496" n="8" ot="4" otname="totals" last_updated="2025-12-04T05:42:58+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T04:58:04+00:00" starting_time="2025-12-04T12:00:00+00:00">
<o1>1.600</o1>
<o2>2.020</o2>
<o3>2.50</o3>
</odds>
</offer>
<offer id="4101222024" n="8" ot="4" otname="totals" last_updated="2025-12-04T05:42:58+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:23:05+00:00" starting_time="2025-12-04T12:00:00+00:00">
<o1>1.180</o1>
<o2>3.700</o2>
<o3>1.50</o3>
</odds>
</offer>
</bookmaker>
<bookmaker bid="42" name="William Hill">
<offer id="4100869213" n="25" ot="5242880" otname="double chance (1x/x2/12)" last_updated="2025-12-04T05:47:40+00:00" flags="1" bmoid="37914891">
<odds i="0" time="2025-12-04T05:47:40+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.350</o1>
<o2>1.670</o2>
<o3>1.290</o3>
</odds>
</offer>
<offer id="4100869215" n="5" ot="4" otname="totals" last_updated="2025-12-04T05:47:40+00:00" flags="1" bmoid="37914891">
<odds i="0" time="2025-12-04T04:51:19+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.200</o1>
<o2>4.000</o2>
<o3>1.50</o3>
</odds>
</offer>
<offer id="4100869220" n="5" ot="4" otname="totals" last_updated="2025-12-04T05:47:40+00:00" flags="1" bmoid="37914891">
<odds i="0" time="2025-12-04T05:42:09+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.040</o1>
<o2>12.000</o2>
<o3>0.50</o3>
</odds>
</offer>
<offer id="4100869229" n="31" ot="0" otname="three way" last_updated="2025-12-04T05:47:40+00:00" flags="1" bmoid="37914891">
<odds i="0" time="2025-12-04T05:47:40+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>2.050</o1>
<o2>3.300</o2>
<o3>2.900</o3>
</odds>
</offer>
<offer id="4100869231" n="6" ot="4" otname="totals" last_updated="2025-12-04T05:47:40+00:00" flags="1" bmoid="37914891">
<odds i="0" time="2025-12-04T05:17:34+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.670</o1>
<o2>2.050</o2>
<o3>2.50</o3>
</odds>
</offer>
<offer id="4100869234" n="9" ot="11534337" otname="both teams to score" last_updated="2025-12-04T05:47:40+00:00" flags="1" bmoid="37914891">
<odds i="0" time="2025-12-04T05:27:33+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.570</o1>
<o2>0.000</o2>
<o3>2.250</o3>
</odds>
</offer>
<offer id="4100869243" n="5" ot="4" otname="totals" last_updated="2025-12-04T05:47:40+00:00" flags="1" bmoid="37914891">
<odds i="0" time="2025-12-04T04:56:13+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>2.700</o1>
<o2>1.400</o2>
<o3>3.50</o3>
</odds>
</offer>
</bookmaker>
<bookmaker bid="388" name="Eurobet.it">
<offer id="4100871058" n="69" ot="0" otname="three way" last_updated="2025-12-04T05:45:57+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:45:57+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.900</o1>
<o2>3.500</o2>
<o3>3.600</o3>
</odds>
</offer>
<offer id="4101211121" n="11" ot="4" otname="totals" last_updated="2025-12-04T05:44:24+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:29:16+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>4.200</o1>
<o2>1.120</o2>
<o3>4.50</o3>
</odds>
</offer>
<offer id="4101211122" n="10" ot="4" otname="totals" last_updated="2025-12-04T05:44:24+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:29:16+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.120</o1>
<o2>4.100</o2>
<o3>1.50</o3>
</odds>
</offer>
<offer id="4101211123" n="10" ot="4" otname="totals" last_updated="2025-12-04T05:44:24+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:29:16+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>2.400</o1>
<o2>1.420</o2>
<o3>3.50</o3>
</odds>
</offer>
<offer id="4101211124" n="10" ot="4" otname="totals" last_updated="2025-12-04T05:44:24+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:29:16+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.570</o1>
<o2>2.100</o2>
<o3>2.50</o3>
</odds>
</offer>
</bookmaker>
<bookmaker bid="110" name="Betfair">
<offer id="4100895183" n="58" ot="4" otname="totals" last_updated="2025-12-04T05:47:27+00:00" flags="1" bmoid="251307198">
<odds i="0" time="2025-12-04T05:45:57+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.100</o1>
<o2>1.160</o2>
<o3>4.50</o3>
</odds>
</offer>
<offer id="4100895191" n="76" ot="4" otname="totals" last_updated="2025-12-04T05:47:27+00:00" flags="1" bmoid="251307197">
<odds i="0" time="2025-12-04T05:45:57+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.250</o1>
<o2>1.480</o2>
<o3>2.50</o3>
</odds>
</offer>
<offer id="4100895198" n="37" ot="11534337" otname="both teams to score" last_updated="2025-12-04T05:47:27+00:00" flags="1" bmoid="251307236">
<odds i="0" time="2025-12-04T05:44:27+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.730</o1>
<o2>0.000</o2>
<o3>1.040</o3>
</odds>
</offer>
<offer id="4100895201" n="46" ot="4" otname="totals" last_updated="2025-12-04T05:47:27+00:00" flags="1" bmoid="251307158">
<odds i="0" time="2025-12-04T05:41:24+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.100</o1>
<o2>1.020</o2>
<o3>6.50</o3>
</odds>
</offer>
<offer id="4100895203" n="152" ot="5242880" otname="double chance (1x/x2/12)" last_updated="2025-12-04T05:47:27+00:00" flags="1" bmoid="251307153">
<odds i="0" time="2025-12-04T05:45:57+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.250</o1>
<o2>1.730</o2>
<o3>1.260</o3>
</odds>
</offer>
<offer id="4100895207" n="21" ot="4" otname="totals" last_updated="2025-12-04T05:47:27+00:00" flags="1" bmoid="251307149">
<odds i="0" time="2025-12-04T04:53:22+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.040</o1>
<o2>0.000</o2>
<o3>8.50</o3>
</odds>
</offer>
<offer id="4100895214" n="42" ot="4" otname="totals" last_updated="2025-12-04T05:47:27+00:00" flags="1" bmoid="251307151">
<odds i="0" time="2025-12-04T05:45:57+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.050</o1>
<o2>1.020</o2>
<o3>7.50</o3>
</odds>
</offer>
<offer id="4100895218" n="43" ot="4" otname="totals" last_updated="2025-12-04T05:47:27+00:00" flags="1" bmoid="251307160">
<odds i="0" time="2025-12-04T05:36:57+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.100</o1>
<o2>1.040</o2>
<o3>5.50</o3>
</odds>
</offer>
<offer id="4100895263" n="54" ot="4" otname="totals" last_updated="2025-12-04T05:47:27+00:00" flags="1" bmoid="251307156">
<odds i="0" time="2025-12-04T05:44:27+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.060</o1>
<o2>2.080</o2>
<o3>0.50</o3>
</odds>
</offer>
<offer id="4100895286" n="57" ot="4" otname="totals" last_updated="2025-12-04T05:47:27+00:00" flags="1" bmoid="251307201">
<odds i="0" time="2025-12-04T05:45:57+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.720</o1>
<o2>1.180</o2>
<o3>3.50</o3>
</odds>
</offer>
<offer id="4100895357" n="71" ot="4" otname="totals" last_updated="2025-12-04T05:47:27+00:00" flags="1" bmoid="251307200">
<odds i="0" time="2025-12-04T05:42:53+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.220</o1>
<o2>2.080</o2>
<o3>1.50</o3>
</odds>
</offer>
<offer id="4100895362" n="151" ot="0" otname="three way" last_updated="2025-12-04T05:47:27+00:00" flags="1" bmoid="251307152">
<odds i="0" time="2025-12-04T05:47:27+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.980</o1>
<o2>3.150</o2>
<o3>3.000</o3>
</odds>
</offer>
</bookmaker>
<bookmaker bid="658" name="Bet9ja">
<offer id="4100973140" n="21" ot="4" otname="totals" last_updated="2025-12-04T05:43:06+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:20:51+00:00" starting_time="2025-12-04T10:00:00+00:00">
<o1>1.150</o1>
<o2>4.300</o2>
<o3>1.50</o3>
</odds>
</offer>
<offer id="4100973141" n="24" ot="5242880" otname="double chance (1x/x2/12)" last_updated="2025-12-04T05:43:06+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:35:44+00:00" starting_time="2025-12-04T10:00:00+00:00">
<o1>1.190</o1>
<o2>1.720</o2>
<o3>1.210</o3>
</odds>
</offer>
<offer id="4100973142" n="28" ot="0" otname="three way" last_updated="2025-12-04T05:43:06+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:35:44+00:00" starting_time="2025-12-04T10:00:00+00:00">
<o1>1.860</o1>
<o2>3.400</o2>
<o3>3.500</o3>
</odds>
</offer>
<offer id="4100973143" n="16" ot="4" otname="totals" last_updated="2025-12-04T05:43:06+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:20:51+00:00" starting_time="2025-12-04T10:00:00+00:00">
<o1>1.580</o1>
<o2>2.150</o2>
<o3>2.50</o3>
</odds>
</offer>
<offer id="4100973145" n="31" ot="11534337" otname="both teams to score" last_updated="2025-12-04T05:43:06+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:20:51+00:00" starting_time="2025-12-04T10:00:00+00:00">
<o1>1.470</o1>
<o2>0.000</o2>
<o3>2.320</o3>
</odds>
</offer>
<offer id="4100973150" n="24" ot="4" otname="totals" last_updated="2025-12-04T05:43:06+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:20:51+00:00" starting_time="2025-12-04T10:00:00+00:00">
<o1>2.420</o1>
<o2>1.460</o2>
<o3>3.50</o3>
</odds>
</offer>
</bookmaker>
<bookmaker bid="30" name="Bwin">
<offer id="4101007656" n="16" ot="4" otname="totals" last_updated="2025-12-04T05:29:48+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:06:00+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.650</o1>
<o2>2.100</o2>
<o3>2.50</o3>
</odds>
</offer>
<offer id="4101007658" n="22" ot="5242880" otname="double chance (1x/x2/12)" last_updated="2025-12-04T05:29:48+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:06:00+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.320</o1>
<o2>1.730</o2>
<o3>1.270</o3>
</odds>
</offer>
<offer id="4101007659" n="11" ot="4" otname="totals" last_updated="2025-12-04T05:29:48+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:06:00+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.210</o1>
<o2>4.000</o2>
<o3>1.50</o3>
</odds>
</offer>
<offer id="4101007660" n="25" ot="0" otname="three way" last_updated="2025-12-04T05:29:48+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:06:00+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.950</o1>
<o2>3.400</o2>
<o3>3.100</o3>
</odds>
</offer>
<offer id="4101007665" n="13" ot="4" otname="totals" last_updated="2025-12-04T05:29:48+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:06:00+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>2.600</o1>
<o2>1.430</o2>
<o3>3.50</o3>
</odds>
</offer>
<offer id="4101147239" n="5" ot="4" otname="totals" last_updated="2025-12-04T03:35:55+00:00" flags="0" bmoid="0">
<odds i="0" time="2025-12-04T03:35:55+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>3.750</o1>
<o2>1.230</o2>
<o3>4.50</o3>
</odds>
</offer>
</bookmaker>
<bookmaker bid="13" name="Sportingbet">
<offer id="4101007810" n="22" ot="5242880" otname="double chance (1x/x2/12)" last_updated="2025-12-04T05:06:34+00:00" flags="1" bmoid="https://sports.sportingbet.com/en/sports/events/gabala-fk-shafa-fk-baku-2:7718236">
<odds i="0" time="2025-12-04T05:06:03+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.320</o1>
<o2>1.730</o2>
<o3>1.270</o3>
</odds>
</offer>
<offer id="4101007817" n="15" ot="4" otname="totals" last_updated="2025-12-04T05:06:34+00:00" flags="1" bmoid="https://sports.sportingbet.com/en/sports/events/gabala-fk-shafa-fk-baku-2:7718236">
<odds i="0" time="2025-12-04T05:06:03+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.650</o1>
<o2>2.100</o2>
<o3>2.50</o3>
</odds>
</offer>
<offer id="4101007823" n="10" ot="4" otname="totals" last_updated="2025-12-04T05:06:34+00:00" flags="1" bmoid="https://sports.sportingbet.com/en/sports/events/gabala-fk-shafa-fk-baku-2:7718236">
<odds i="0" time="2025-12-04T05:06:03+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.210</o1>
<o2>4.000</o2>
<o3>1.50</o3>
</odds>
</offer>
<offer id="4101007824" n="25" ot="0" otname="three way" last_updated="2025-12-04T05:06:34+00:00" flags="1" bmoid="https://sports.sportingbet.com/en/sports/events/gabala-fk-shafa-fk-baku-2:7718236">
<odds i="0" time="2025-12-04T05:06:03+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.950</o1>
<o2>3.400</o2>
<o3>3.100</o3>
</odds>
</offer>
<offer id="4101007845" n="24" ot="11534337" otname="both teams to score" last_updated="2025-12-04T05:06:34+00:00" flags="1" bmoid="https://sports.sportingbet.com/en/sports/events/gabala-fk-shafa-fk-baku-2:7718236">
<odds i="0" time="2025-12-04T05:06:03+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.600</o1>
<o2>0.000</o2>
<o3>2.150</o3>
</odds>
</offer>
<offer id="4101007846" n="12" ot="4" otname="totals" last_updated="2025-12-04T05:06:34+00:00" flags="1" bmoid="https://sports.sportingbet.com/en/sports/events/gabala-fk-shafa-fk-baku-2:7718236">
<odds i="0" time="2025-12-04T05:06:03+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>2.600</o1>
<o2>1.430</o2>
<o3>3.50</o3>
</odds>
</offer>
<offer id="4101147330" n="5" ot="4" otname="totals" last_updated="2025-12-04T03:36:20+00:00" flags="0" bmoid="https://sports.sportingbet.com/en/sports/events/gabala-fk-shafa-fk-baku-2:7718236">
<odds i="0" time="2025-12-04T03:36:20+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>3.750</o1>
<o2>1.230</o2>
<o3>4.50</o3>
</odds>
</offer>
</bookmaker>
<bookmaker bid="17" name="Ladbrokes">
<offer id="4101040663" n="17" ot="5242880" otname="double chance (1x/x2/12)" last_updated="2025-12-04T05:47:02+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:08:58+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.330</o1>
<o2>1.750</o2>
<o3>1.280</o3>
</odds>
</offer>
<offer id="4101040664" n="12" ot="4" otname="totals" last_updated="2025-12-04T05:47:02+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:08:58+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.670</o1>
<o2>2.100</o2>
<o3>2.50</o3>
</odds>
</offer>
<offer id="4101040665" n="5" ot="4" otname="totals" last_updated="2025-12-04T05:47:02+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:08:58+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.220</o1>
<o2>4.000</o2>
<o3>1.50</o3>
</odds>
</offer>
<offer id="4101040666" n="20" ot="0" otname="three way" last_updated="2025-12-04T05:47:02+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:08:58+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.950</o1>
<o2>3.400</o2>
<o3>3.100</o3>
</odds>
</offer>
<offer id="4101040670" n="17" ot="11534337" otname="both teams to score" last_updated="2025-12-04T05:47:02+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T04:49:55+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.600</o1>
<o2>0.000</o2>
<o3>2.200</o3>
</odds>
</offer>
<offer id="4101040671" n="8" ot="4" otname="totals" last_updated="2025-12-04T05:47:02+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:08:58+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>2.600</o1>
<o2>1.440</o2>
<o3>3.50</o3>
</odds>
</offer>
</bookmaker>
<bookmaker bid="539" name="Marathonbet">
<offer id="4101172829" n="70" ot="5242880" otname="double chance (1x/x2/12)" last_updated="2025-12-04T05:46:18+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:46:18+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.240</o1>
<o2>1.670</o2>
<o3>1.230</o3>
</odds>
</offer>
<offer id="4101172830" n="48" ot="4" otname="totals" last_updated="2025-12-04T05:46:18+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:44:11+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>4.400</o1>
<o2>1.141</o2>
<o3>4.50</o3>
</odds>
</offer>
<offer id="4101172831" n="44" ot="4" otname="totals" last_updated="2025-12-04T05:42:20+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T04:59:39+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.210</o1>
<o2>3.580</o2>
<o3>1.75</o3>
</odds>
</offer>
<offer id="4101172834" n="78" ot="0" otname="three way" last_updated="2025-12-04T05:46:18+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:46:18+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.950</o1>
<o2>3.360</o2>
<o3>3.300</o3>
</odds>
</offer>
<offer id="4101172838" n="72" ot="7340033" otname="to progress" last_updated="2025-12-04T05:47:05+00:00" flags="1" bmoid="">
<odds i="0" time="2025-12-04T05:47:05+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.510</o1>
<o2>0.000</o2>
<o3>2.320</o3>
</odds>
</offer>
<offer id="4101172839" n="44" ot="4" otname="totals" last_updated="2025-12-04T05:42:20+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:08:58+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.760</o1>
<o2>1.860</o2>
<o3>2.75</o3>
</odds>
</offer>
<offer id="4101172840" n="26" ot="4" otname="totals" last_updated="2025-12-04T05:42:20+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T04:59:39+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.440</o1>
<o2>2.430</o2>
<o3>2.25</o3>
</odds>
</offer>
<offer id="4101172841" n="54" ot="4" otname="totals" last_updated="2025-12-04T05:42:20+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:33:57+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.260</o1>
<o2>3.220</o2>
<o3>2.00</o3>
</odds>
</offer>
<offer id="4101172848" n="34" ot="4" otname="totals" last_updated="2025-12-04T05:42:20+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T04:59:39+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>2.920</o1>
<o2>1.310</o2>
<o3>3.75</o3>
</odds>
</offer>
<offer id="4101172852" n="46" ot="4" otname="totals" last_updated="2025-12-04T05:42:20+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:08:58+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>2.240</o1>
<o2>1.520</o2>
<o3>3.25</o3>
</odds>
</offer>
<offer id="4101172853" n="41" ot="4" otname="totals" last_updated="2025-12-04T05:47:05+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:47:05+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>3.760</o1>
<o2>1.191</o2>
<o3>4.00</o3>
</odds>
</offer>
<offer id="4101172859" n="44" ot="4" otname="totals" last_updated="2025-12-04T05:42:20+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:08:58+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.610</o1>
<o2>2.070</o2>
<o3>2.50</o3>
</odds>
</offer>
<offer id="4101172864" n="52" ot="4" otname="totals" last_updated="2025-12-04T05:44:11+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:44:11+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.169</o1>
<o2>4.000</o2>
<o3>1.50</o3>
</odds>
</offer>
<offer id="4101172866" n="43" ot="4" otname="totals" last_updated="2025-12-04T05:42:20+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:08:58+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.990</o1>
<o2>1.660</o2>
<o3>3.00</o3>
</odds>
</offer>
<offer id="4101172868" n="54" ot="4" otname="totals" last_updated="2025-12-04T05:46:18+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:30:07+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>5.400</o1>
<o2>1.087</o2>
<o3>4.75</o3>
</odds>
</offer>
<offer id="4101172872" n="44" ot="4" otname="totals" last_updated="2025-12-04T05:44:52+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:08:58+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>7.300</o1>
<o2>1.032</o2>
<o3>5.00</o3>
</odds>
</offer>
<offer id="4101172874" n="40" ot="4" otname="totals" last_updated="2025-12-04T05:44:11+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:44:11+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>2.550</o1>
<o2>1.440</o2>
<o3>3.50</o3>
</odds>
</offer>
<offer id="4101172879" n="48" ot="4" otname="totals" last_updated="2025-12-04T05:46:18+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:46:18+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>4.100</o1>
<o2>1.163</o2>
<o3>4.25</o3>
</odds>
</offer>
<offer id="4101172881" n="53" ot="4" otname="totals" last_updated="2025-12-04T05:44:11+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:44:11+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>7.900</o1>
<o2>1.021</o2>
<o3>5.50</o3>
</odds>
</offer>
<offer id="4101173617" n="29" ot="11534337" otname="both teams to score" last_updated="2025-12-04T05:45:37+00:00" flags="1" bmoid="25766481,24214470">
<odds i="0" time="2025-12-04T05:42:12+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.540</o1>
<o2>0.000</o2>
<o3>2.220</o3>
</odds>
</offer>
<offer id="4101224664" n="10" ot="4" otname="totals" last_updated="2025-12-04T05:44:11+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:08:58+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.087</o1>
<o2>5.400</o2>
<o3>1.25</o3>
</odds>
</offer>
<offer id="4101238517" n="12" ot="4" otname="totals" last_updated="2025-12-04T05:44:11+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:44:11+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.003</o1>
<o2>9.100</o2>
<o3>1.00</o3>
</odds>
</offer>
</bookmaker>
<bookmaker bid="117" name="SNAI">
<offer id="4101245668" n="4" ot="5242880" otname="double chance (1x/x2/12)" last_updated="2025-12-04T05:43:22+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:43:22+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.210</o1>
<o2>1.630</o2>
<o3>1.200</o3>
</odds>
</offer>
<offer id="4101245669" n="4" ot="4" otname="totals" last_updated="2025-12-04T05:46:19+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:46:19+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>8.000</o1>
<o2>1.020</o2>
<o3>5.50</o3>
</odds>
</offer>
<offer id="4101245670" n="1" ot="4" otname="totals" last_updated="2025-12-04T05:40:07+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:25:49+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.140</o1>
<o2>4.400</o2>
<o3>1.50</o3>
</odds>
</offer>
<offer id="4101245672" n="1" ot="4" otname="totals" last_updated="2025-12-04T05:40:07+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:25:49+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>2.350</o1>
<o2>1.450</o2>
<o3>3.50</o3>
</odds>
</offer>
<offer id="4101245676" n="1" ot="4" otname="totals" last_updated="2025-12-04T05:40:07+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:25:49+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>1.550</o1>
<o2>2.150</o2>
<o3>2.50</o3>
</odds>
</offer>
<offer id="4101245678" n="4" ot="4" otname="totals" last_updated="2025-12-04T05:46:19+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:46:19+00:00" starting_time="2025-12-04T11:00:00+00:00">
<o1>4.250</o1>
<o2>1.150</o2>
<o3>4.50</o3>
</odds>
</offer>
</bookmaker>
<bookmaker bid="827" name="WPlay">
<offer id="4101251620" n="1" ot="5242880" otname="double chance (1x/x2/12)" last_updated="2025-12-04T05:45:45+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:45:45+00:00" starting_time="2025-12-04T13:00:00+00:00">
<o1>1.333</o1>
<o2>1.615</o2>
<o3>1.250</o3>
</odds>
</offer>
<offer id="4101251622" n="1" ot="4" otname="totals" last_updated="2025-12-04T05:45:45+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:45:45+00:00" starting_time="2025-12-04T13:00:00+00:00">
<o1>1.800</o1>
<o2>1.950</o2>
<o3>2.75</o3>
</odds>
</offer>
<offer id="4101251623" n="1" ot="0" otname="three way" last_updated="2025-12-04T05:45:45+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:45:45+00:00" starting_time="2025-12-04T13:00:00+00:00">
<o1>2.200</o1>
<o2>3.300</o2>
<o3>2.900</o3>
</odds>
</offer>
<offer id="4101251624" n="1" ot="4" otname="totals" last_updated="2025-12-04T05:45:45+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:45:45+00:00" starting_time="2025-12-04T13:00:00+00:00">
<o1>2.050</o1>
<o2>1.727</o2>
<o3>3.00</o3>
</odds>
</offer>
<offer id="4101251629" n="1" ot="11534337" otname="both teams to score" last_updated="2025-12-04T05:45:45+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:45:45+00:00" starting_time="2025-12-04T13:00:00+00:00">
<o1>1.480</o1>
<o2>0.000</o2>
<o3>2.350</o3>
</odds>
</offer>
<offer id="4101251630" n="1" ot="4" otname="totals" last_updated="2025-12-04T05:45:45+00:00" flags="1" bmoid="0">
<odds i="0" time="2025-12-04T05:45:45+00:00" starting_time="2025-12-04T13:00:00+00:00">
<o1>1.650</o1>
<o2>2.150</o2>
<o3>2.50</o3>
</odds>
</offer>
</bookmaker>
</match>
</matches>
+76
View File
@@ -0,0 +1,76 @@
<?php
namespace App\Console\Commands;
use App\Utilities\Notice;
class Xml
{
public static $file;
public static function load($url)
{
$debug = NuhBash::$options['d'] ?? 0;
$save = NuhBash::$options['s'] ?? 0;
$read = NuhBash::$options['r'] ?? 0;
$filename = app_path().'/Console/Commands/TestFiles/'.strtolower(str_replace(' ', '_', NuhBash::$options['name'])).'.xml';
if ($debug) {
Notice::note("Loading URL\n".$url);
}
if ($save || $read) {
Notice::note("FILE NAME\n".$filename);
}
if ($read) {
if ($debug) {
Notice::note('READ LOCAL', 'r');
}
// return simplexml_load_file(self::$file, null, LIBXML_NOCDATA);
if (! file_exists($filename)) {
Notice::note("Error: File $filename does not exist.", 'r', 1);
} elseif (! is_readable($filename)) {
Notice::note("Error: File $filename is not readable.", 'r', 1);
} else {
$data = simplexml_load_file($url, 'SimpleXMLElement', LIBXML_NOCDATA);
if ($data === false) {
Notice::note("Error: Failed to load XML from $filename", 'r', 1);
foreach (libxml_get_errors() as $error) {
Notice::note("XML Error: {$error->message}\n", 'r');
}
} else {
// Process the XML object
return $data;
}
}
}
$data = simplexml_load_file($url, 'SimpleXMLElement', LIBXML_NOCDATA);
if ($data === false && $debug) {
Notice::note("Error: Failed to load XML from $url", 'r', 1);
foreach (libxml_get_errors() as $error) {
Notice::note("XML Error: {$error->message}\n", 'r');
}
}
if ($save) {
if (! file_exists($filename)) {
Notice::note("Error: File $filename does not exist.", 'r', 1);
} elseif (! is_readable($filename)) {
Notice::note("Error: File $filename is not readable.", 'r', 1);
} elseif (! is_writable($filename)) {
Notice::note("Error: File $filename is not writable.", 'r', 1);
} else {
$data->asXml($filename);
Notice::note('SAVED AND EXIT', 'b', 1);
}
}
return $data;
}
}
-1
View File
@@ -1 +0,0 @@
{"@attributes":{"time":"2025-12-01T15:15:42+00:00","timestamp":"1764602142"},"match":[{"@attributes":{"id":"14546537","xsid":"0","gsmid":"0","last_updated":"2025-12-01T03:21:08+00:00"},"time":"2025-12-01T20:00:00+00:00","group":{"@attributes":{"id":"176998","cgid":"471","spid":"1","cnid":"467","mgid":"1002","cname":"Prim B Metro"},"@text":"FBARG Prim B Metro > Clausura-25"},"hteam":{"@attributes":{"id":"45668"},"@text":"Deportivo Armenio"},"ateam":{"@attributes":{"id":"41971"},"@text":"Sportivo Italiano"},"results":{"status":{"@attributes":{"last_updated":"2025-12-01T03:21:08+00:00","minute":"-1"},"@text":"Sched"},"result":{"@attributes":{"id":"1","name":"CURRENT","value":""}}}},{"@attributes":{"id":"14562676","xsid":"0","gsmid":"0","last_updated":"2025-12-01T04:01:21+00:00"},"time":"2025-12-01T00:00:00+00:00","group":{"@attributes":{"id":"180820","cgid":"501","spid":"1","cnid":"467","mgid":"1002","cname":"Torneo Regional Federal Amateur"},"@text":"FBARG Torneo Regional Federal Amateur-25"},"hteam":{"@attributes":{"id":"131618"},"@text":"Defensores de Salto"},"ateam":{"@attributes":{"id":"1642554"},"@text":"Argentino Chacabuco"},"results":{"status":{"@attributes":{"last_updated":"2025-12-01T04:01:20+00:00","minute":"-1"},"@text":"Fin"},"result":{"@attributes":{"id":"1","name":"CURRENT","value":""}}}},{"@attributes":{"id":"14557469","xsid":"0","gsmid":"0","last_updated":"2025-11-26T18:53:27+00:00"},"time":"2025-12-01T20:00:00+00:00","group":{"@attributes":{"id":"181746","cgid":"87","spid":"1","cnid":"467","mgid":"1002","cname":"Liga Profesional Argentina"},"@text":"FBARG Liga Profesional Argentina > Clausura Quarter Finals-25"},"hteam":{"@attributes":{"id":"58621"},"@text":"Barracas Central"},"ateam":{"@attributes":{"id":"2049"},"@text":"Gimnasia LP"},"results":{"status":{"@attributes":{"last_updated":"2025-11-26T18:53:26+00:00","minute":"-1"},"@text":"Sched"},"result":{"@attributes":{"id":"1","name":"CURRENT","value":""}}}},{"@attributes":{"id":"14563565","xsid":"0","gsmid":"0","last_updated":"2025-11-29T12:24:10+00:00"},"time":"2025-12-01T22:00:00+00:00","group":{"@attributes":{"id":"180791","cgid":"1164","spid":"1","cnid":"409","mgid":"1009","cname":"Copa Fares Lopes"},"@text":"FBBRA Copa Fares Lopes-25"},"hteam":{"@attributes":{"id":"1004395"},"@text":"Fortaleza B"},"ateam":{"@attributes":{"id":"1482714"},"@text":"Centro de Formacao de Atletas Tirol"},"results":{"status":{"@attributes":{"last_updated":"2025-11-29T12:24:09+00:00","minute":"-1"},"@text":"Sched"},"result":{"@attributes":{"id":"1","name":"CURRENT","value":""}}}},{"@attributes":{"id":"14561535","xsid":"0","gsmid":"0","last_updated":"2025-11-29T15:16:15+00:00"},"time":"2025-12-01T11:30:00+00:00","group":{"@attributes":{"id":"181798","cgid":"51812","spid":"1","cnid":"409","mgid":"1009","cname":"Copa Recife U20"},"@text":"FBBRA Copa Recife U20-25"},"hteam":{"@attributes":{"id":"132428"},"@text":"Sport Recife PE U20"},"ateam":{"@attributes":{"id":"2235604"},"@text":"Cha Grande PE U20"},"results":{"status":{"@attributes":{"last_updated":"2025-11-29T15:16:13+00:00","minute":"-1"},"@text":"Sched"},"result":{"@attributes":{"id":"1","name":"CURRENT","value":""}}}},{"@attributes":{"id":"14561542","xsid":"0","gsmid":"0","last_updated":"2025-11-28T11:08:40+00:00"},"time":"2025-12-01T13:00:00+00:00","group":{"@attributes":{"id":"181798","cgid":"51812","spid":"1","cnid":"409","mgid":"1009","cname":"Copa Recife U20"},"@text":"FBBRA Copa Recife U20-25"},"hteam":{"@attributes":{"id":"2235656"},"@text":"Internacional PE U20"},"ateam":{"@attributes":{"id":"1455508"},"@text":"Serrano PE U20"},"results":{"status":{"@attributes":{"last_updated":"2025-11-28T11:08:40+00:00","minute":"-1"},"@text":"Sched"},"result":{"@attributes":{"id":"1","name":"CURRENT","value":""}}}},{"@attributes":{"id":"14563579","xsid":"0","gsmid":"0","last_updated":"2025-11-29T15:13:15+00:00"},"time":"2025-12-01T16:30:00+00:00","group":{"@attributes":{"id":"181798","cgid":"51812","spid":"1","cnid":"409","mgid":"1009","cname":"Copa Recife U20"},"@text":"FBBRA Copa Recife U20-25"},"hteam":{"@attributes":{"id":"2235956"},"@text":"Inter Arabia U20"},"ateam":{"@attributes":{"id":"1493668"},"@text":"Guarany AL U20"},"results":{"status":{"@attributes":{"last_updated":"2025-11-29T15:13:13+00:00","minute":"-1"},"@text":"Sched"},"result":{"@attributes":{"id":"1","name":"CURRENT","value":""}}}},{"@attributes":{"id":"14563577","xsid":"0","gsmid":"0","last_updated":"2025-11-29T16:04:15+00:00"},"time":"2025-12-01T17:30:00+00:00","group":{"@attributes":{"id":"181798","cgid":"51812","spid":"1","cnid":"409","mgid":"1009","cname":"Copa Recife U20"},"@text":"FBBRA Copa Recife U20-25"},"hteam":{"@attributes":{"id":"2198184"},"@text":"Guarany EC U20"},"ateam":{"@attributes":{"id":"1180207"},"@text":"Ipojuca PE U20"},"results":{"status":{"@attributes":{"last_updated":"2025-11-29T16:04:14+00:00","minute":"-1"},"@text":"Sched"},"result":{"@attributes":{"id":"1","name":"CURRENT","value":""}}}},{"@attributes":{"id":"Line truncated
File diff suppressed because it is too large. Load diff
@@ -6,9 +6,11 @@ use App\Filament\Resources\Events\Pages\ListEvents;
use App\Filament\Resources\Events\Schemas\EventForm; use App\Filament\Resources\Events\Schemas\EventForm;
use App\Filament\Resources\Events\Tables\EventsTable; use App\Filament\Resources\Events\Tables\EventsTable;
use App\Models\Event; use App\Models\Event;
use Carbon\Carbon;
use Filament\Resources\Resource; use Filament\Resources\Resource;
use Filament\Schemas\Schema; use Filament\Schemas\Schema;
use Filament\Tables\Table; use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
class EventResource extends Resource class EventResource extends Resource
{ {
@@ -52,4 +54,15 @@ class EventResource extends Resource
'index' => ListEvents::route('/'), 'index' => ListEvents::route('/'),
]; ];
} }
public static function getNavigationBadge(): ?string
{
return parent::getEloquentQuery()
->count();
}
public static function getEloquentQuery(): Builder
{
return parent::getEloquentQuery()->withoutGlobalScopes()->with('odds_3way')->where('starttime', '>', Carbon::now());
}
} }
@@ -2,6 +2,7 @@
namespace App\Filament\Resources\Events\Tables; namespace App\Filament\Resources\Events\Tables;
use App\Filament\Tables\Columns\Odds3Way;
use Carbon\Carbon; use Carbon\Carbon;
use Filament\Actions\BulkActionGroup; use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction; use Filament\Actions\DeleteBulkAction;
@@ -36,8 +37,8 @@ class EventsTable
->label('Event') ->label('Event')
->icon(fn ($record) => $record->country->icon) ->icon(fn ($record) => $record->country->icon)
->description(fn ($record) => $record->home->name.' - '.$record->away->name, position: 'belowe'), ->description(fn ($record) => $record->home->name.' - '.$record->away->name, position: 'belowe'),
TextColumn::make('updated_at') Odds3Way::make('3way')->label('1 X 2')->alignCenter(),
->dateTime('d.m H:i'), IconColumn::make('id'),
]) ])
->filters([ ->filters([
// //
+10
View File
@@ -0,0 +1,10 @@
<?php
namespace App\Filament\Tables\Columns;
use Filament\Tables\Columns\Column;
class Odds3Way extends Column
{
protected string $view = 'filament.tables.columns.odds3-way';
}
+5
View File
@@ -49,4 +49,9 @@ class Event extends Model
{ {
return $this->hasOne(Element::class, 'txodds_id', 'away_id'); return $this->hasOne(Element::class, 'txodds_id', 'away_id');
} }
public function odds_3way()
{
return $this->hasMany(Odds3way::class);
}
} }
@@ -44,8 +44,10 @@ class AdminPanelProvider extends PanelProvider
->databaseNotifications() ->databaseNotifications()
->profile(isSimple: false) ->profile(isSimple: false)
->default() ->default()
->brandLogo(asset('images/nuh-combined.svg')) // ->brandLogo(asset('images/nuh-combined.svg'))
->darkModeBrandLogo(asset('images/nuh-combined-d.svg')) // ->darkModeBrandLogo(asset('images/nuh-combined-d.svg'))
->brandLogo(asset('images/nuh-odds.svg'))
->darkModeBrandLogo(asset('images/nuh-odds-d.svg'))
->favicon(asset('images/nuh.svg')) ->favicon(asset('images/nuh.svg'))
->brandLogoHeight('1.8rem') ->brandLogoHeight('1.8rem')
->unsavedChangesAlerts() ->unsavedChangesAlerts()
+8 -8
View File
@@ -1,7 +1,7 @@
<?php return array ( <?php return array (
'default' => 'default' =>
array ( array (
'/Users/salam/Sites/nuhodds_fi4/resources/svg' => '/Users/hermanntelser/Sites/nuhodds_fi4/resources/svg' =>
array ( array (
0 => 'amercanfootball', 0 => 'amercanfootball',
1 => 'australianrules', 1 => 'australianrules',
@@ -48,7 +48,7 @@
), ),
'bicon' => 'bicon' =>
array ( array (
'/Users/salam/Sites/nuhodds_fi4/resources/bkm_icon_svg' => '/Users/hermanntelser/Sites/nuhodds_fi4/resources/bkm_icon_svg' =>
array ( array (
0 => '10bet', 0 => '10bet',
1 => '1xbet', 1 => '1xbet',
@@ -71,7 +71,7 @@
), ),
'extra' => 'extra' =>
array ( array (
'/Users/salam/Sites/nuhodds_fi4/resources/extra-countries' => '/Users/hermanntelser/Sites/nuhodds_fi4/resources/extra-countries' =>
array ( array (
0 => 'africa', 0 => 'africa',
1 => 'america', 1 => 'america',
@@ -93,7 +93,7 @@
), ),
'heroicons' => 'heroicons' =>
array ( array (
'/Users/salam/Sites/nuhodds_fi4/vendor/blade-ui-kit/blade-heroicons/src/../resources/svg' => '/Users/hermanntelser/Sites/nuhodds_fi4/vendor/blade-ui-kit/blade-heroicons/src/../resources/svg' =>
array ( array (
0 => 'c-academic-cap', 0 => 'c-academic-cap',
1 => 'c-adjustments-horizontal', 1 => 'c-adjustments-horizontal',
@@ -1387,7 +1387,7 @@
), ),
'phosphor-icons' => 'phosphor-icons' =>
array ( array (
'/Users/salam/Sites/nuhodds_fi4/vendor/codeat3/blade-phosphor-icons/src/../resources/svg' => '/Users/hermanntelser/Sites/nuhodds_fi4/vendor/codeat3/blade-phosphor-icons/src/../resources/svg' =>
array ( array (
0 => 'acorn-bold', 0 => 'acorn-bold',
1 => 'acorn-duotone', 1 => 'acorn-duotone',
@@ -10465,7 +10465,7 @@
), ),
'filament' => 'filament' =>
array ( array (
'/Users/salam/Sites/nuhodds_fi4/vendor/filament/support/src/../resources/svg' => '/Users/hermanntelser/Sites/nuhodds_fi4/vendor/filament/support/src/../resources/svg' =>
array ( array (
0 => 'm-pencil-slash', 0 => 'm-pencil-slash',
1 => 'o-align-center', 1 => 'o-align-center',
@@ -10503,7 +10503,7 @@
), ),
'blade-flags' => 'blade-flags' =>
array ( array (
'/Users/salam/Sites/nuhodds_fi4/vendor/outhebox/blade-flags/src/../resources/svg' => '/Users/hermanntelser/Sites/nuhodds_fi4/vendor/outhebox/blade-flags/src/../resources/svg' =>
array ( array (
0 => 'country-ad', 0 => 'country-ad',
1 => 'country-ae', 1 => 'country-ae',
@@ -10923,7 +10923,7 @@
), ),
'lucide' => 'lucide' =>
array ( array (
'/Users/salam/Sites/nuhodds_fi4/vendor/technikermathe/blade-lucide-icons/src/../resources/svg' => '/Users/hermanntelser/Sites/nuhodds_fi4/vendor/technikermathe/blade-lucide-icons/src/../resources/svg' =>
array ( array (
0 => 'a-arrow-down', 0 => 'a-arrow-down',
1 => 'a-arrow-up', 1 => 'a-arrow-up',
+23 -23
View File
@@ -81,9 +81,9 @@
array ( array (
'paths' => 'paths' =>
array ( array (
0 => '/Users/salam/Sites/nuhodds_fi4/resources/views', 0 => '/Users/hermanntelser/Sites/nuhodds_fi4/resources/views',
), ),
'compiled' => '/Users/salam/Sites/nuhodds_fi4/storage/framework/views', 'compiled' => '/Users/hermanntelser/Sites/nuhodds_fi4/storage/framework/views',
), ),
'cors' => 'cors' =>
array ( array (
@@ -115,7 +115,7 @@
), ),
'app' => 'app' =>
array ( array (
'name' => 'Monitor', 'name' => 'Odds',
'env' => 'local', 'env' => 'local',
'debug' => true, 'debug' => true,
'url' => 'http://nuhodds_fi4.test', 'url' => 'http://nuhodds_fi4.test',
@@ -126,7 +126,7 @@
'fallback_locale' => 'en', 'fallback_locale' => 'en',
'faker_locale' => 'en_US', 'faker_locale' => 'en_US',
'cipher' => 'AES-256-CBC', 'cipher' => 'AES-256-CBC',
'key' => 'base64:xhigDJOEk2dBUc3pfYXm7yo8a14PTtVCIU4PAt+F2dM=', 'key' => 'base64:7TqaJehRxVIp8xJMrIM0U2hYu38FE9KK24658v+da2g=',
'previous_keys' => 'previous_keys' =>
array ( array (
), ),
@@ -315,8 +315,8 @@
'file' => 'file' =>
array ( array (
'driver' => 'file', 'driver' => 'file',
'path' => '/Users/salam/Sites/nuhodds_fi4/storage/framework/cache/data', 'path' => '/Users/hermanntelser/Sites/nuhodds_fi4/storage/framework/cache/data',
'lock_path' => '/Users/salam/Sites/nuhodds_fi4/storage/framework/cache/data', 'lock_path' => '/Users/hermanntelser/Sites/nuhodds_fi4/storage/framework/cache/data',
), ),
'memcached' => 'memcached' =>
array ( array (
@@ -369,7 +369,7 @@
), ),
), ),
), ),
'prefix' => 'monitor-cache-', 'prefix' => 'odds-cache-',
), ),
'database' => 'database' =>
array ( array (
@@ -468,7 +468,7 @@
'options' => 'options' =>
array ( array (
'cluster' => 'redis', 'cluster' => 'redis',
'prefix' => 'monitor-database-', 'prefix' => 'odds-database-',
'persistent' => false, 'persistent' => false,
), ),
'default' => 'default' =>
@@ -499,7 +499,7 @@
'local' => 'local' =>
array ( array (
'driver' => 'local', 'driver' => 'local',
'root' => '/Users/salam/Sites/nuhodds_fi4/storage/app/private', 'root' => '/Users/hermanntelser/Sites/nuhodds_fi4/storage/app/private',
'serve' => true, 'serve' => true,
'throw' => false, 'throw' => false,
'report' => false, 'report' => false,
@@ -507,7 +507,7 @@
'public' => 'public' =>
array ( array (
'driver' => 'local', 'driver' => 'local',
'root' => '/Users/salam/Sites/nuhodds_fi4/storage/app/public', 'root' => '/Users/hermanntelser/Sites/nuhodds_fi4/storage/app/public',
'url' => 'http://nuhodds_fi4.test/storage', 'url' => 'http://nuhodds_fi4.test/storage',
'visibility' => 'public', 'visibility' => 'public',
'throw' => false, 'throw' => false,
@@ -529,7 +529,7 @@
), ),
'links' => 'links' =>
array ( array (
'/Users/salam/Sites/nuhodds_fi4/public/storage' => '/Users/salam/Sites/nuhodds_fi4/storage/app/public', '/Users/hermanntelser/Sites/nuhodds_fi4/public/storage' => '/Users/hermanntelser/Sites/nuhodds_fi4/storage/app/public',
), ),
), ),
'logging' => 'logging' =>
@@ -554,14 +554,14 @@
'single' => 'single' =>
array ( array (
'driver' => 'single', 'driver' => 'single',
'path' => '/Users/salam/Sites/nuhodds_fi4/storage/logs/laravel.log', 'path' => '/Users/hermanntelser/Sites/nuhodds_fi4/storage/logs/laravel.log',
'level' => 'debug', 'level' => 'debug',
'replace_placeholders' => true, 'replace_placeholders' => true,
), ),
'daily' => 'daily' =>
array ( array (
'driver' => 'daily', 'driver' => 'daily',
'path' => '/Users/salam/Sites/nuhodds_fi4/storage/logs/laravel.log', 'path' => '/Users/hermanntelser/Sites/nuhodds_fi4/storage/logs/laravel.log',
'level' => 'debug', 'level' => 'debug',
'days' => 14, 'days' => 14,
'replace_placeholders' => true, 'replace_placeholders' => true,
@@ -626,7 +626,7 @@
), ),
'emergency' => 'emergency' =>
array ( array (
'path' => '/Users/salam/Sites/nuhodds_fi4/storage/logs/laravel.log', 'path' => '/Users/hermanntelser/Sites/nuhodds_fi4/storage/logs/laravel.log',
), ),
), ),
), ),
@@ -697,22 +697,22 @@
'from' => 'from' =>
array ( array (
'address' => 'hello@example.com', 'address' => 'hello@example.com',
'name' => 'Monitor', 'name' => 'Odds',
), ),
'markdown' => 'markdown' =>
array ( array (
'theme' => 'default', 'theme' => 'default',
'paths' => 'paths' =>
array ( array (
0 => '/Users/salam/Sites/nuhodds_fi4/resources/views/vendor/mail', 0 => '/Users/hermanntelser/Sites/nuhodds_fi4/resources/views/vendor/mail',
), ),
), ),
), ),
'nuh' => 'nuh' =>
array ( array (
'betsapi_token' => '36152-aeTRNnZxSPUwGe', 'betsapi_token' => 'var missing in env',
'txodds_token_soccer' => 'ident=betaid1&passwd=Dy59vpRC', 'txodds_token_soccer' => 'txodds_token_soccer var missing in env',
'txodds_token_other' => 'ident=betaid2&passwd=Dy59vpRC', 'txodds_token_other' => 'txodds_token_other var missing in env',
), ),
'permission' => 'permission' =>
array ( array (
@@ -860,7 +860,7 @@
'lifetime' => 120, 'lifetime' => 120,
'expire_on_close' => false, 'expire_on_close' => false,
'encrypt' => false, 'encrypt' => false,
'files' => '/Users/salam/Sites/nuhodds_fi4/storage/framework/sessions', 'files' => '/Users/hermanntelser/Sites/nuhodds_fi4/storage/framework/sessions',
'connection' => NULL, 'connection' => NULL,
'table' => 'sessions', 'table' => 'sessions',
'store' => NULL, 'store' => NULL,
@@ -869,7 +869,7 @@
0 => 2, 0 => 2,
1 => 100, 1 => 100,
), ),
'cookie' => 'monitor-session', 'cookie' => 'odds-session',
'path' => '/', 'path' => '/',
'domain' => NULL, 'domain' => NULL,
'secure' => NULL, 'secure' => NULL,
@@ -902,7 +902,7 @@
), ),
'default_filesystem_disk' => 'local', 'default_filesystem_disk' => 'local',
'assets_path' => NULL, 'assets_path' => NULL,
'cache_path' => '/Users/salam/Sites/nuhodds_fi4/bootstrap/cache/filament', 'cache_path' => '/Users/hermanntelser/Sites/nuhodds_fi4/bootstrap/cache/filament',
'livewire_loading_delay' => 'default', 'livewire_loading_delay' => 'default',
'file_generation' => 'file_generation' =>
array ( array (
@@ -923,7 +923,7 @@
'livewire' => 'livewire' =>
array ( array (
'class_namespace' => 'App\\Livewire', 'class_namespace' => 'App\\Livewire',
'view_path' => '/Users/salam/Sites/nuhodds_fi4/resources/views/livewire', 'view_path' => '/Users/hermanntelser/Sites/nuhodds_fi4/resources/views/livewire',
'layout' => 'components.layouts.app', 'layout' => 'components.layouts.app',
'lazy_placeholder' => NULL, 'lazy_placeholder' => NULL,
'temporary_file_upload' => 'temporary_file_upload' =>
+17 -17
View File
@@ -49,7 +49,7 @@
), ),
'clusters' => 'clusters' =>
array ( array (
'/Users/salam/Sites/nuhodds_fi4/app/Filament/Clusters/Administrator/AdministratorCluster.php' => 'App\\Filament\\Clusters\\Administrator\\AdministratorCluster', '/Users/hermanntelser/Sites/nuhodds_fi4/app/Filament/Clusters/Administrator/AdministratorCluster.php' => 'App\\Filament\\Clusters\\Administrator\\AdministratorCluster',
), ),
'clusteredComponents' => 'clusteredComponents' =>
array ( array (
@@ -69,7 +69,7 @@
), ),
'clusterDirectories' => 'clusterDirectories' =>
array ( array (
0 => '/Users/salam/Sites/nuhodds_fi4/app/Filament/Clusters', 0 => '/Users/hermanntelser/Sites/nuhodds_fi4/app/Filament/Clusters',
), ),
'clusterNamespaces' => 'clusterNamespaces' =>
array ( array (
@@ -77,13 +77,13 @@
), ),
'pages' => 'pages' =>
array ( array (
'/Users/salam/Sites/nuhodds_fi4/app/Filament/Clusters/Administrator/AdministratorCluster.php' => 'App\\Filament\\Clusters\\Administrator\\AdministratorCluster', '/Users/hermanntelser/Sites/nuhodds_fi4/app/Filament/Clusters/Administrator/AdministratorCluster.php' => 'App\\Filament\\Clusters\\Administrator\\AdministratorCluster',
0 => 'Filament\\Pages\\Dashboard', 0 => 'Filament\\Pages\\Dashboard',
1 => 'Joaopaulolndev\\FilamentEditProfile\\Pages\\EditProfilePage', 1 => 'Joaopaulolndev\\FilamentEditProfile\\Pages\\EditProfilePage',
), ),
'pageDirectories' => 'pageDirectories' =>
array ( array (
0 => '/Users/salam/Sites/nuhodds_fi4/app/Filament/Pages', 0 => '/Users/hermanntelser/Sites/nuhodds_fi4/app/Filament/Pages',
), ),
'pageNamespaces' => 'pageNamespaces' =>
array ( array (
@@ -91,21 +91,21 @@
), ),
'resources' => 'resources' =>
array ( array (
'/Users/salam/Sites/nuhodds_fi4/app/Filament/Resources/Bookmakers/BookmakerResource.php' => 'App\\Filament\\Resources\\Bookmakers\\BookmakerResource', '/Users/hermanntelser/Sites/nuhodds_fi4/app/Filament/Resources/Bookmakers/BookmakerResource.php' => 'App\\Filament\\Resources\\Bookmakers\\BookmakerResource',
'/Users/salam/Sites/nuhodds_fi4/app/Filament/Resources/Clients/ClientResource.php' => 'App\\Filament\\Resources\\Clients\\ClientResource', '/Users/hermanntelser/Sites/nuhodds_fi4/app/Filament/Resources/Clients/ClientResource.php' => 'App\\Filament\\Resources\\Clients\\ClientResource',
'/Users/salam/Sites/nuhodds_fi4/app/Filament/Resources/CompetitionGroupFilters/CompetitionGroupFilterResource.php' => 'App\\Filament\\Resources\\CompetitionGroupFilters\\CompetitionGroupFilterResource', '/Users/hermanntelser/Sites/nuhodds_fi4/app/Filament/Resources/CompetitionGroupFilters/CompetitionGroupFilterResource.php' => 'App\\Filament\\Resources\\CompetitionGroupFilters\\CompetitionGroupFilterResource',
'/Users/salam/Sites/nuhodds_fi4/app/Filament/Resources/Countries/CountryResource.php' => 'App\\Filament\\Resources\\Countries\\CountryResource', '/Users/hermanntelser/Sites/nuhodds_fi4/app/Filament/Resources/Countries/CountryResource.php' => 'App\\Filament\\Resources\\Countries\\CountryResource',
'/Users/salam/Sites/nuhodds_fi4/app/Filament/Resources/ElementFilters/ElementFilterResource.php' => 'App\\Filament\\Resources\\ElementFilters\\ElementFilterResource', '/Users/hermanntelser/Sites/nuhodds_fi4/app/Filament/Resources/ElementFilters/ElementFilterResource.php' => 'App\\Filament\\Resources\\ElementFilters\\ElementFilterResource',
'/Users/salam/Sites/nuhodds_fi4/app/Filament/Resources/Events/EventResource.php' => 'App\\Filament\\Resources\\Events\\EventResource', '/Users/hermanntelser/Sites/nuhodds_fi4/app/Filament/Resources/Events/EventResource.php' => 'App\\Filament\\Resources\\Events\\EventResource',
'/Users/salam/Sites/nuhodds_fi4/app/Filament/Resources/GroupFilters/GroupFilterResource.php' => 'App\\Filament\\Resources\\GroupFilters\\GroupFilterResource', '/Users/hermanntelser/Sites/nuhodds_fi4/app/Filament/Resources/GroupFilters/GroupFilterResource.php' => 'App\\Filament\\Resources\\GroupFilters\\GroupFilterResource',
'/Users/salam/Sites/nuhodds_fi4/app/Filament/Resources/Providers/ProviderResource.php' => 'App\\Filament\\Resources\\Providers\\ProviderResource', '/Users/hermanntelser/Sites/nuhodds_fi4/app/Filament/Resources/Providers/ProviderResource.php' => 'App\\Filament\\Resources\\Providers\\ProviderResource',
'/Users/salam/Sites/nuhodds_fi4/app/Filament/Resources/Sports/SportResource.php' => 'App\\Filament\\Resources\\Sports\\SportResource', '/Users/hermanntelser/Sites/nuhodds_fi4/app/Filament/Resources/Sports/SportResource.php' => 'App\\Filament\\Resources\\Sports\\SportResource',
'/Users/salam/Sites/nuhodds_fi4/app/Filament/Resources/Supervisors/SupervisorResource.php' => 'App\\Filament\\Resources\\Supervisors\\SupervisorResource', '/Users/hermanntelser/Sites/nuhodds_fi4/app/Filament/Resources/Supervisors/SupervisorResource.php' => 'App\\Filament\\Resources\\Supervisors\\SupervisorResource',
'/Users/salam/Sites/nuhodds_fi4/app/Filament/Resources/Users/UserResource.php' => 'App\\Filament\\Resources\\Users\\UserResource', '/Users/hermanntelser/Sites/nuhodds_fi4/app/Filament/Resources/Users/UserResource.php' => 'App\\Filament\\Resources\\Users\\UserResource',
), ),
'resourceDirectories' => 'resourceDirectories' =>
array ( array (
0 => '/Users/salam/Sites/nuhodds_fi4/app/Filament/Resources', 0 => '/Users/hermanntelser/Sites/nuhodds_fi4/app/Filament/Resources',
), ),
'resourceNamespaces' => 'resourceNamespaces' =>
array ( array (
@@ -118,7 +118,7 @@
), ),
'widgetDirectories' => 'widgetDirectories' =>
array ( array (
0 => '/Users/salam/Sites/nuhodds_fi4/app/Filament/Widgets', 0 => '/Users/hermanntelser/Sites/nuhodds_fi4/app/Filament/Widgets',
), ),
'widgetNamespaces' => 'widgetNamespaces' =>
array ( array (
+14 -14
View File
@@ -471,7 +471,7 @@ app('router')->setCompiledRoutes(
array ( array (
0 => 0 =>
array ( array (
'_route' => 'generated::RNWIAVag8vWIZzNU', '_route' => 'generated::SyXDvO3rPX5ybHzB',
), ),
1 => NULL, 1 => NULL,
2 => 2 =>
@@ -491,7 +491,7 @@ app('router')->setCompiledRoutes(
array ( array (
0 => 0 =>
array ( array (
'_route' => 'generated::1yWlEyDQ8LXYXVuW', '_route' => 'generated::h3pKtBijp7JJRW2n',
), ),
1 => NULL, 1 => NULL,
2 => 2 =>
@@ -530,7 +530,7 @@ app('router')->setCompiledRoutes(
array ( array (
0 => 0 =>
array ( array (
'_route' => 'generated::AAsPIku15BhE8HVE', '_route' => 'generated::MdysT69NxRy3ofdw',
), ),
1 => NULL, 1 => NULL,
2 => 2 =>
@@ -2304,7 +2304,7 @@ app('router')->setCompiledRoutes(
'waitSeconds' => NULL, 'waitSeconds' => NULL,
'withTrashed' => false, 'withTrashed' => false,
), ),
'generated::RNWIAVag8vWIZzNU' => 'generated::SyXDvO3rPX5ybHzB' =>
array ( array (
'methods' => 'methods' =>
array ( array (
@@ -2316,7 +2316,7 @@ app('router')->setCompiledRoutes(
array ( array (
'uses' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@returnJavaScriptAsFile', 'uses' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@returnJavaScriptAsFile',
'controller' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@returnJavaScriptAsFile', 'controller' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@returnJavaScriptAsFile',
'as' => 'generated::RNWIAVag8vWIZzNU', 'as' => 'generated::SyXDvO3rPX5ybHzB',
), ),
'fallback' => false, 'fallback' => false,
'defaults' => 'defaults' =>
@@ -2332,7 +2332,7 @@ app('router')->setCompiledRoutes(
'waitSeconds' => NULL, 'waitSeconds' => NULL,
'withTrashed' => false, 'withTrashed' => false,
), ),
'generated::1yWlEyDQ8LXYXVuW' => 'generated::h3pKtBijp7JJRW2n' =>
array ( array (
'methods' => 'methods' =>
array ( array (
@@ -2344,7 +2344,7 @@ app('router')->setCompiledRoutes(
array ( array (
'uses' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@maps', 'uses' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@maps',
'controller' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@maps', 'controller' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@maps',
'as' => 'generated::1yWlEyDQ8LXYXVuW', 'as' => 'generated::h3pKtBijp7JJRW2n',
), ),
'fallback' => false, 'fallback' => false,
'defaults' => 'defaults' =>
@@ -2415,7 +2415,7 @@ app('router')->setCompiledRoutes(
'waitSeconds' => NULL, 'waitSeconds' => NULL,
'withTrashed' => false, 'withTrashed' => false,
), ),
'generated::AAsPIku15BhE8HVE' => 'generated::MdysT69NxRy3ofdw' =>
array ( array (
'methods' => 'methods' =>
array ( array (
@@ -2425,7 +2425,7 @@ app('router')->setCompiledRoutes(
'uri' => 'up', 'uri' => 'up',
'action' => 'action' =>
array ( array (
'uses' => 'O:55:"Laravel\\SerializableClosure\\UnsignedSerializableClosure":1:{s:12:"serializable";O:46:"Laravel\\SerializableClosure\\Serializers\\Native":5:{s:3:"use";a:0:{}s:8:"function";s:824:"function () { 'uses' => 'O:55:"Laravel\\SerializableClosure\\UnsignedSerializableClosure":1:{s:12:"serializable";O:46:"Laravel\\SerializableClosure\\Serializers\\Native":5:{s:3:"use";a:0:{}s:8:"function";s:832:"function () {
$exception = null; $exception = null;
try { try {
@@ -2440,11 +2440,11 @@ app('router')->setCompiledRoutes(
$exception = $e->getMessage(); $exception = $e->getMessage();
} }
return response(\\Illuminate\\Support\\Facades\\View::file(\'/Users/salam/Sites/nuhodds_fi4/vendor/laravel/framework/src/Illuminate/Foundation/Configuration\'.\'/../resources/health-up.blade.php\', [ return response(\\Illuminate\\Support\\Facades\\View::file(\'/Users/hermanntelser/Sites/nuhodds_fi4/vendor/laravel/framework/src/Illuminate/Foundation/Configuration\'.\'/../resources/health-up.blade.php\', [
\'exception\' => $exception, \'exception\' => $exception,
]), status: $exception ? 500 : 200); ]), status: $exception ? 500 : 200);
}";s:5:"scope";s:54:"Illuminate\\Foundation\\Configuration\\ApplicationBuilder";s:4:"this";N;s:4:"self";s:32:"0000000000000def0000000000000000";}}', }";s:5:"scope";s:54:"Illuminate\\Foundation\\Configuration\\ApplicationBuilder";s:4:"this";N;s:4:"self";s:32:"0000000000000df00000000000000000";}}',
'as' => 'generated::AAsPIku15BhE8HVE', 'as' => 'generated::MdysT69NxRy3ofdw',
), ),
'fallback' => false, 'fallback' => false,
'defaults' => 'defaults' =>
@@ -2470,13 +2470,13 @@ app('router')->setCompiledRoutes(
'uri' => 'storage/{path}', 'uri' => 'storage/{path}',
'action' => 'action' =>
array ( array (
'uses' => 'O:55:"Laravel\\SerializableClosure\\UnsignedSerializableClosure":1:{s:12:"serializable";O:46:"Laravel\\SerializableClosure\\Serializers\\Native":5:{s:3:"use";a:3:{s:4:"disk";s:5:"local";s:6:"config";a:5:{s:6:"driver";s:5:"local";s:4:"root";s:50:"/Users/salam/Sites/nuhodds_fi4/storage/app/private";s:5:"serve";b:1;s:5:"throw";b:0;s:6:"report";b:0;}s:12:"isProduction";b:0;}s:8:"function";s:323:"function (\\Illuminate\\Http\\Request $request, string $path) use ($disk, $config, $isProduction) { 'uses' => 'O:55:"Laravel\\SerializableClosure\\UnsignedSerializableClosure":1:{s:12:"serializable";O:46:"Laravel\\SerializableClosure\\Serializers\\Native":5:{s:3:"use";a:3:{s:4:"disk";s:5:"local";s:6:"config";a:5:{s:6:"driver";s:5:"local";s:4:"root";s:58:"/Users/hermanntelser/Sites/nuhodds_fi4/storage/app/private";s:5:"serve";b:1;s:5:"throw";b:0;s:6:"report";b:0;}s:12:"isProduction";b:0;}s:8:"function";s:323:"function (\\Illuminate\\Http\\Request $request, string $path) use ($disk, $config, $isProduction) {
return (new \\Illuminate\\Filesystem\\ServeFile( return (new \\Illuminate\\Filesystem\\ServeFile(
$disk, $disk,
$config, $config,
$isProduction $isProduction
))($request, $path); ))($request, $path);
}";s:5:"scope";s:47:"Illuminate\\Filesystem\\FilesystemServiceProvider";s:4:"this";N;s:4:"self";s:32:"0000000000000de50000000000000000";}}', }";s:5:"scope";s:47:"Illuminate\\Filesystem\\FilesystemServiceProvider";s:4:"this";N;s:4:"self";s:32:"0000000000000de60000000000000000";}}',
'as' => 'storage.local', 'as' => 'storage.local',
), ),
'fallback' => false, 'fallback' => false,
Generated
+14 -14
View File
@@ -4195,20 +4195,20 @@
}, },
{ {
"name": "nette/utils", "name": "nette/utils",
"version": "v4.0.9", "version": "v4.1.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/nette/utils.git", "url": "https://github.com/nette/utils.git",
"reference": "505a30ad386daa5211f08a318e47015b501cad30" "reference": "fa1f0b8261ed150447979eb22e373b7b7ad5a8e0"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/nette/utils/zipball/505a30ad386daa5211f08a318e47015b501cad30", "url": "https://api.github.com/repos/nette/utils/zipball/fa1f0b8261ed150447979eb22e373b7b7ad5a8e0",
"reference": "505a30ad386daa5211f08a318e47015b501cad30", "reference": "fa1f0b8261ed150447979eb22e373b7b7ad5a8e0",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "8.0 - 8.5" "php": "8.2 - 8.5"
}, },
"conflict": { "conflict": {
"nette/finder": "<3", "nette/finder": "<3",
@@ -4231,7 +4231,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "4.0-dev" "dev-master": "4.1-dev"
} }
}, },
"autoload": { "autoload": {
@@ -4278,9 +4278,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/nette/utils/issues", "issues": "https://github.com/nette/utils/issues",
"source": "https://github.com/nette/utils/tree/v4.0.9" "source": "https://github.com/nette/utils/tree/v4.1.0"
}, },
"time": "2025-10-31T00:45:47+00:00" "time": "2025-12-01T17:49:23+00:00"
}, },
{ {
"name": "nikic/php-parser", "name": "nikic/php-parser",
@@ -11063,16 +11063,16 @@
}, },
{ {
"name": "rector/rector", "name": "rector/rector",
"version": "2.2.9", "version": "2.2.11",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/rectorphp/rector.git", "url": "https://github.com/rectorphp/rector.git",
"reference": "0b8e49ec234877b83244d2ecd0df7a4c16471f05" "reference": "7bd21a40b0332b93d4bfee284093d7400696902d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/rectorphp/rector/zipball/0b8e49ec234877b83244d2ecd0df7a4c16471f05", "url": "https://api.github.com/repos/rectorphp/rector/zipball/7bd21a40b0332b93d4bfee284093d7400696902d",
"reference": "0b8e49ec234877b83244d2ecd0df7a4c16471f05", "reference": "7bd21a40b0332b93d4bfee284093d7400696902d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -11111,7 +11111,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/rectorphp/rector/issues", "issues": "https://github.com/rectorphp/rector/issues",
"source": "https://github.com/rectorphp/rector/tree/2.2.9" "source": "https://github.com/rectorphp/rector/tree/2.2.11"
}, },
"funding": [ "funding": [
{ {
@@ -11119,7 +11119,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2025-11-28T14:21:22+00:00" "time": "2025-12-02T11:23:46+00:00"
}, },
{ {
"name": "sebastian/cli-parser", "name": "sebastian/cli-parser",
@@ -13,6 +13,11 @@ return new class extends Migration
{ {
Schema::create('events', function (Blueprint $table) { Schema::create('events', function (Blueprint $table) {
$table->id(); $table->id();
$table->integer('txodds_id')->default(0)->nullable()->index();
$table->integer('provider_id')->default(0)->nullable()->index();
$table->integer('betaid_id')->default(0)->nullable()->index();
$table->integer('betradar_id')->default(0)->nullable()->index();
$table->dateTime('starttime')->nullable(); $table->dateTime('starttime')->nullable();
$table->integer('sport_id')->index(); $table->integer('sport_id')->index();
$table->integer('country_id')->default(0)->nullable()->index(); $table->integer('country_id')->default(0)->nullable()->index();
@@ -21,11 +26,6 @@ return new class extends Migration
$table->integer('home_id')->default(0)->nullable()->index(); $table->integer('home_id')->default(0)->nullable()->index();
$table->integer('away_id')->default(0)->nullable()->index(); $table->integer('away_id')->default(0)->nullable()->index();
$table->integer('txodds_id')->default(0)->nullable()->index();
$table->integer('provider_id')->default(0)->nullable()->index();
$table->integer('betaid_id')->default(0)->nullable()->index();
$table->integer('betradar_id')->default(0)->nullable()->index();
$table->timestamps(); $table->timestamps();
}); });
} }
+7 -1
View File
@@ -3,4 +3,10 @@
@source '../../../../app/Filament/**/*'; @source '../../../../app/Filament/**/*';
@source '../../../../resources/views/filament/**/*'; @source '../../../../resources/views/filament/**/*';
@source '../../../../resources/views/filament/pages/**/*'; @source '../../../../resources/views/filament/pages/**/*';
@source '../../../../vendor/awcodes/light-switch/resources/**/*.blade.php'; @source '../../../../vendor/awcodes/light-switch/resources/**/*.blade.php';
.oddsbox div {
text-align: right;
padding: 0 2px;
width: 50px;
}
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,13 @@
<div {{ $getExtraAttributeBag() }}>
{{ $record->odds_3way }}
<div class="grid grid-cols-5 grid-rows-5 text-xs oddsbox divide-x divide-gray-400">
@foreach ($record->odds_3way as $row )
{{ dd($row); }}
<div >{{$row->h3w }}.</div>
@endforeach
</div>
</div>