wip
This commit is contained in:
1 parent
7abcc5c56c
commit
90bba45c0a
26 files changed
+3448
-32353
No files matched your search
@@ -8,11 +8,8 @@ class Curl
|
||||
{
|
||||
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;
|
||||
$save = NuhBash::$options['s'] ?? 0;
|
||||
$read = NuhBash::$options['r'] ?? 0;
|
||||
@@ -23,22 +20,13 @@ class Curl
|
||||
|
||||
if ($read) {
|
||||
if ($debug) {
|
||||
Notice::note('data read local', 'r');
|
||||
Notice::note('READ LOCAL', 'r');
|
||||
}
|
||||
switch ($filetype) {
|
||||
case 'xml':
|
||||
return simplexml_load_file(self::$file, null, LIBXML_NOCDATA);
|
||||
break;
|
||||
$filename = app_path().'/Console/TestFiles/'.strtolower(str_replace(' ', '_', NuhBash::$options['name'])).'.json';
|
||||
|
||||
case 'json':
|
||||
$file = file_get_contents(self::$file);
|
||||
$file = file_get_contents($filename);
|
||||
|
||||
return json_decode($file, true);
|
||||
break;
|
||||
default:
|
||||
Notice::note('filetype unknown', 'r', 1);
|
||||
|
||||
}
|
||||
return json_decode($file, true);
|
||||
}
|
||||
|
||||
$ch = curl_init($url);
|
||||
@@ -57,15 +45,12 @@ class Curl
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
if ($filetype == 'json') {
|
||||
return json_decode($data, true);
|
||||
} else {
|
||||
return $data;
|
||||
}
|
||||
return json_decode($data, true);
|
||||
}
|
||||
|
||||
public static function curlerrorcode($id)
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
|
||||
namespace App\Console\Commands\Grapper\TxOdds;
|
||||
|
||||
use App\Console\Commands\Curl;
|
||||
use App\Console\Commands\NuhBash;
|
||||
use App\Console\Commands\Xml;
|
||||
use App\Models\CompetitionGroup;
|
||||
use App\Models\Element;
|
||||
use App\Models\Event;
|
||||
@@ -19,86 +19,91 @@ class Fixtures
|
||||
$print = NuhBash::$options['p'] ?? 0;
|
||||
$break = NuhBash::$options['b'] ?? 0;
|
||||
|
||||
$count = 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++) {
|
||||
|
||||
$from = $date->addDays($i)->toDateString();
|
||||
$to = $date->addDays($i + 1)->toDateString();
|
||||
$from = $now->addDays($i)->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";
|
||||
$data = Curl::load($url);
|
||||
$url = 'https://xml2.txodds.com/feed/result/xml.php?'.NuhBash::$AUTHTOKEN."&date=$from,$to";
|
||||
|
||||
$data = Xml::load($url);
|
||||
|
||||
if ($print) {
|
||||
Notice::note($data, '', 1);
|
||||
dd($data);
|
||||
}
|
||||
|
||||
$count = 0;
|
||||
$e = [];
|
||||
foreach ($data['match'] as $match) {
|
||||
foreach ($data as $row) {
|
||||
// <match id="14563695" xsid="0" gsmid="0" last_updated="2025-12-02T08:31:11+00:00">
|
||||
// <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) {
|
||||
case '@attributes':
|
||||
$e['txodds_id'] = (int) $v['id'];
|
||||
break;
|
||||
CompetitionGroup::updateOrCreate([
|
||||
'txodds_id' => $event['competition_group_id'],
|
||||
'sport_id' => $event['sport_id'],
|
||||
'country_id' => $event['country_id'],
|
||||
], [
|
||||
'name' => $competition_group_name,
|
||||
]);
|
||||
|
||||
case 'time':
|
||||
$starttime = Carbon::createFromDate($v)->toDateTimeString();
|
||||
break;
|
||||
Element::firstOrCreate([
|
||||
'txodds_id' => $event['home_id'],
|
||||
'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'];
|
||||
$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]);
|
||||
Event::updateOrCreate($event, ['starttime' => $event['starttime']]);
|
||||
|
||||
$count++;
|
||||
|
||||
}
|
||||
|
||||
if ($debug) {
|
||||
@@ -111,6 +116,8 @@ class Fixtures
|
||||
break;
|
||||
}
|
||||
}
|
||||
Notice::note("Total - $total events processed", 'g');
|
||||
if ($debug) {
|
||||
Notice::note("Total - $total events processed", 'g');
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,12 +2,20 @@
|
||||
|
||||
namespace App\Console\Commands\Grapper\TxOdds;
|
||||
|
||||
use App\Console\Commands\Curl;
|
||||
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\Xml;
|
||||
use App\Models\CompetitionGroup;
|
||||
use App\Models\Element;
|
||||
use App\Models\Event;
|
||||
use App\Models\EventBookmaker;
|
||||
use App\Models\Group;
|
||||
use App\Models\Odds2way;
|
||||
use App\Models\Odds3way;
|
||||
use App\Models\OddsDc;
|
||||
use App\Models\OddsGgng;
|
||||
use App\Models\OddsQualify;
|
||||
use App\Models\OddsTotal;
|
||||
use App\Utilities\Notice;
|
||||
@@ -15,6 +23,8 @@ use Carbon\Carbon;
|
||||
|
||||
class Odds
|
||||
{
|
||||
public static $event = [];
|
||||
|
||||
public static function grap()
|
||||
{
|
||||
|
||||
@@ -102,17 +112,17 @@ class Odds
|
||||
/*************************************************
|
||||
* 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 = [];
|
||||
if (NuhBash::$options['event_id']) {
|
||||
$_calls[] = $url."&ot=$markets&peid=".NuhBash::$options['event_id'];
|
||||
} 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) {
|
||||
$_calls[] = $url."&ot=$markets&peid=".$id;
|
||||
}
|
||||
} 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) {
|
||||
$_calls[] = $url."&ot=$markets&peid=".$id;
|
||||
}
|
||||
@@ -125,11 +135,84 @@ class Odds
|
||||
*************************************************/
|
||||
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) {
|
||||
|
||||
$e = [];
|
||||
self::$event = [];
|
||||
|
||||
foreach ($match as $key => $v) {
|
||||
|
||||
@@ -140,197 +223,199 @@ class Odds
|
||||
switch ($key) {
|
||||
|
||||
case '@attributes':
|
||||
$e['id'] = (int) $v['id'];
|
||||
self::$event['id'] = (int) $v['id'];
|
||||
break;
|
||||
|
||||
case 'time':
|
||||
$starttime = Carbon::createFromDate($v)->toDateTimeString();
|
||||
self::$event['starttime'] = Carbon::createFromDate($v)->toDateTimeString();
|
||||
break;
|
||||
|
||||
case 'group':
|
||||
|
||||
$e['sport_id'] = (int) $v['@attributes']['spid'];
|
||||
$e['country_id'] = (int) $v['@attributes']['cnid'];
|
||||
$e['group_id'] = (int) $v['@attributes']['id'];
|
||||
$e['competition_group_id'] = (int) $v['@attributes']['cgid'];
|
||||
self::$event['sport_id'] = (int) $v['@attributes']['spid'];
|
||||
self::$event['country_id'] = (int) $v['@attributes']['cnid'];
|
||||
self::$event['group_id'] = (int) $v['@attributes']['id'];
|
||||
self::$event['competition_group_id'] = (int) $v['@attributes']['cgid'];
|
||||
break;
|
||||
|
||||
case 'hteam':
|
||||
$e['home_id'] = $v['@attributes']['id'];
|
||||
self::$event['home_id'] = $v['@attributes']['id'];
|
||||
break;
|
||||
|
||||
case 'ateam':
|
||||
$e['away_id'] = $v['@attributes']['id'];
|
||||
|
||||
$event = Event::firstOrCreate($e, ['starttime' => $starttime]);
|
||||
self::$event['away_id'] = $v['@attributes']['id'];
|
||||
break;
|
||||
|
||||
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) {
|
||||
case '@attributes':
|
||||
if (isset($book['bid'])) {
|
||||
$bkmid = (int) $book['bid'];
|
||||
}
|
||||
Notice::note($books, 'b');
|
||||
|
||||
case 'offer':
|
||||
if ($bkmid) {
|
||||
foreach ($book as $type => $od) {
|
||||
$bkmid = (int) $books['@attributes']['bid'];
|
||||
|
||||
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(),
|
||||
]
|
||||
);
|
||||
// foreach ($books['offer'] as $bk => $book) {
|
||||
|
||||
EventBookmaker::updateOrCreate([
|
||||
'event_id' => $event->id,
|
||||
'bookmaker_id' => $bkmid,
|
||||
'bmoid' => $bmoid,
|
||||
], [
|
||||
'bkm_starttime' => Carbon::createFromDate($od['@attributes']['starting_time'])->toDateTimeString(),
|
||||
'last_check_at' => Carbon::now()->toDateTimeString(),
|
||||
]);
|
||||
// if ($bkmid) {
|
||||
// foreach ($book as $type => $od) {
|
||||
|
||||
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':
|
||||
Odds2way::updateOrCreate(
|
||||
[
|
||||
'event_id' => $event->id,
|
||||
'bookmaker_id' => $bkmid,
|
||||
'sport_id' => NuhBash::$options['sport_id'],
|
||||
],
|
||||
[
|
||||
'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;
|
||||
// EventBookmaker::updateOrCreate([
|
||||
// 'event_id' => $event->id,
|
||||
// 'bookmaker_id' => $bkmid,
|
||||
// 'bmoid' => $bmoid,
|
||||
// ], [
|
||||
// 'bkm_starttime' => Carbon::createFromDate($od['@attributes']['starting_time'])->toDateTimeString(),
|
||||
// 'last_check_at' => Carbon::now()->toDateTimeString(),
|
||||
// ]);
|
||||
|
||||
case '4':
|
||||
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;
|
||||
// break;
|
||||
|
||||
case '5242880':
|
||||
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(),
|
||||
]
|
||||
);
|
||||
break;
|
||||
// // case '1':
|
||||
// // Odds2way::updateOrCreate(
|
||||
// // [
|
||||
// // 'event_id' => $event->id,
|
||||
// // 'bookmaker_id' => $bkmid,
|
||||
// // 'sport_id' => NuhBash::$options['sport_id'],
|
||||
// // ],
|
||||
// // [
|
||||
// // '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 '11534337':
|
||||
OddsGgng::updateOrCreate(
|
||||
[
|
||||
'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 '4':
|
||||
// // 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 '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;
|
||||
}
|
||||
// // case '5242880':
|
||||
// // 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(),
|
||||
// // ]
|
||||
// // );
|
||||
// // break;
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
// // case '11534337':
|
||||
// // OddsGgng::updateOrCreate(
|
||||
// // [
|
||||
// // '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()
|
||||
{
|
||||
if (NuhBash::$options['sport_id'] == 1) {
|
||||
NuhBash::$AUTHTOKEN = 'ident=betaid1&passwd=Dy59vpRC';
|
||||
} else {
|
||||
NuhBash::$AUTHTOKEN = 'ident=betaid2&passwd=Dy59vpRC';
|
||||
}
|
||||
|
||||
switch (NuhBash::$options['name']) {
|
||||
case 'Fixtures':
|
||||
Fixtures::grap();
|
||||
|
||||
@@ -6,14 +6,18 @@ use App\Console\Commands\Grapper\TxSwitch;
|
||||
use App\Models\Supervisor;
|
||||
use App\Utilities\Notice;
|
||||
use App\Utilities\Supervisorctl;
|
||||
use DB;
|
||||
use Illuminate\Console\Command;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class NuhBash extends Command
|
||||
{
|
||||
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';
|
||||
|
||||
@@ -23,7 +27,7 @@ class NuhBash extends Command
|
||||
self::$options['supervisor_id'] = $this->argument('process');
|
||||
self::$options['event_id'] = $this->argument('eventid');
|
||||
|
||||
$queries = self::$options['m'] ?? 0;
|
||||
$queries = self::$options['q'] ?? 0;
|
||||
|
||||
if ($this->argument('process') == 'help') {
|
||||
$txt = PHP_EOL;
|
||||
@@ -35,11 +39,11 @@ class NuhBash extends Command
|
||||
$txt .= 'List of options'.PHP_EOL;
|
||||
$txt .= '----------------------------------------------'.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 .= '--a reload all'.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 .= '--r read data from file '.PHP_EOL;
|
||||
$txt .= '--b break loop after one '.PHP_EOL;
|
||||
@@ -73,7 +77,7 @@ class NuhBash extends Command
|
||||
// betsapi
|
||||
break;
|
||||
default:
|
||||
Note::notice('Provider not defined', 'r', 1);
|
||||
Notice::note('Provider not defined', 'r', 1);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
@@ -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>
|
||||
@@ -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 +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\Tables\EventsTable;
|
||||
use App\Models\Event;
|
||||
use Carbon\Carbon;
|
||||
use Filament\Resources\Resource;
|
||||
use Filament\Schemas\Schema;
|
||||
use Filament\Tables\Table;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
|
||||
class EventResource extends Resource
|
||||
{
|
||||
@@ -52,4 +54,15 @@ class EventResource extends Resource
|
||||
'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;
|
||||
|
||||
use App\Filament\Tables\Columns\Odds3Way;
|
||||
use Carbon\Carbon;
|
||||
use Filament\Actions\BulkActionGroup;
|
||||
use Filament\Actions\DeleteBulkAction;
|
||||
@@ -36,8 +37,8 @@ class EventsTable
|
||||
->label('Event')
|
||||
->icon(fn ($record) => $record->country->icon)
|
||||
->description(fn ($record) => $record->home->name.' - '.$record->away->name, position: 'belowe'),
|
||||
TextColumn::make('updated_at')
|
||||
->dateTime('d.m H:i'),
|
||||
Odds3Way::make('3way')->label('1 X 2')->alignCenter(),
|
||||
IconColumn::make('id'),
|
||||
])
|
||||
->filters([
|
||||
//
|
||||
|
||||
@@ -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';
|
||||
}
|
||||
@@ -49,4 +49,9 @@ class Event extends Model
|
||||
{
|
||||
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()
|
||||
->profile(isSimple: false)
|
||||
->default()
|
||||
->brandLogo(asset('images/nuh-combined.svg'))
|
||||
->darkModeBrandLogo(asset('images/nuh-combined-d.svg'))
|
||||
// ->brandLogo(asset('images/nuh-combined.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'))
|
||||
->brandLogoHeight('1.8rem')
|
||||
->unsavedChangesAlerts()
|
||||
|
||||
Reference in new issue
Block a user