197 lines
7.6 KiB
PHP
197 lines
7.6 KiB
PHP
<?php
|
|
|
|
namespace App\Console\Commands\Grapper\Magloo;
|
|
|
|
use App\Console\Commands\Curl;
|
|
use App\Console\Commands\Grapper\Magloo\Odds\FilterHandicap;
|
|
use App\Console\Commands\Grapper\Magloo\Odds\FilterHandicapQ1;
|
|
use App\Console\Commands\Grapper\Magloo\Odds\FilterTotals;
|
|
use App\Console\Commands\Grapper\Magloo\Odds\FilterTotalsQ1;
|
|
use App\Console\Commands\Nuh;
|
|
use App\Models\Event;
|
|
use App\Models\EventBookmaker;
|
|
use App\Models\Odds3way;
|
|
use App\Models\OddsDc;
|
|
use App\Models\OddsPoint;
|
|
use App\Models\OddsPointQ1;
|
|
use App\Models\OddsTotal;
|
|
use App\Models\OddsTotalQ1;
|
|
use App\Models\OddsTq;
|
|
use App\Models\Sport;
|
|
use App\Utilities\Margin;
|
|
use App\Utilities\Notice;
|
|
use Illuminate\Support\Carbon;
|
|
|
|
class Odds
|
|
{
|
|
public static function grap()
|
|
{
|
|
$debug = Nuh::$options['d'] ?? 0;
|
|
$proxy = Nuh::$options['p'] ?? 0;
|
|
|
|
$event_id_collector = [];
|
|
|
|
$sportmap = Sport::map('magl', 1, [1, 3]);
|
|
|
|
if ($proxy) {
|
|
Notice::note('PROXY USED', 'r');
|
|
}
|
|
|
|
if ($debug) {
|
|
Notice::note(Nuh::$options['provider'].' '.Nuh::$options['name'], 'g');
|
|
}
|
|
|
|
foreach ($sportmap as $magloo_sport_id => $sport_id) {
|
|
|
|
$url = Nuh::$options['base_url'].'/1/prematch/sport/'.$magloo_sport_id.'/odds';
|
|
|
|
$data = Curl::load($url);
|
|
|
|
if (! is_array($data) or \count($data) == 0) {
|
|
Notice::note('no data in feed', 'r', 1);
|
|
|
|
return;
|
|
}
|
|
|
|
foreach ($data as $match) {
|
|
|
|
$betradar_id = (int) preg_replace('/\D/', '', $match['p']);
|
|
|
|
$starttime = Carbon::parse($match['dt'])->toDateTimeString();
|
|
|
|
$event_id = Event::where('betradar_id', $betradar_id)->value('id');
|
|
|
|
if ($event_id) {
|
|
$base = [];
|
|
$base['sport_id'] = $sport_id;
|
|
$base['provider_id'] = Nuh::$options['provider_id'];
|
|
$base['bmoid'] = preg_replace('/\D/', '', $match['i']);
|
|
$base['flag'] = 1;
|
|
|
|
$event_id_collector[] = $event_id;
|
|
|
|
EventBookmaker::updateOrCreate([
|
|
'event_id' => $event_id,
|
|
'bookmaker_id' => Nuh::$options['bookmaker_id'],
|
|
], ['in_feed' => 1, 'bmoid' => $base['bmoid']]);
|
|
|
|
// if ($event_id == 13913478) {
|
|
// dd($match['M']);
|
|
// }
|
|
|
|
foreach ($match['M'] as $magloo_bettype_id => $value) {
|
|
switch ($magloo_bettype_id) {
|
|
case 1:
|
|
// 1x2
|
|
$odds = [];
|
|
$odds['h3w'] = $value['static'][1] ?? 1;
|
|
$odds['d3w'] = $value['static'][2] ?? 1;
|
|
$odds['a3w'] = $value['static'][3] ?? 1;
|
|
$odds['margin'] = (float) Margin::calculate($odds, 1);
|
|
$odds['starttime'] = $starttime;
|
|
|
|
Odds3way::updateOrCreate([
|
|
'event_id' => $event_id,
|
|
'bookmaker_id' => Nuh::$options['bookmaker_id'],
|
|
], $base + $odds);
|
|
|
|
break;
|
|
|
|
case 2:
|
|
// to qalify
|
|
$odds = [];
|
|
$odds['htq'] = $value['static'][4] ?? 1;
|
|
$odds['atq'] = $value['static'][5] ?? 1;
|
|
$odds['margin'] = (float) Margin::calculate($odds, 1);
|
|
|
|
OddsTq::updateOrCreate([
|
|
'event_id' => $event_id,
|
|
'bookmaker_id' => Nuh::$options['bookmaker_id'],
|
|
], $base + $odds);
|
|
|
|
break;
|
|
|
|
case 10:
|
|
// double chance
|
|
$odds = [];
|
|
$odds['dc1x'] = $value['static'][9] ?? 1;
|
|
$odds['dc12'] = $value['static'][10] ?? 1;
|
|
$odds['dcx2'] = $value['static'][11] ?? 1;
|
|
$odds['margin'] = (float) Margin::calculate($odds, 1);
|
|
|
|
OddsDc::updateOrCreate([
|
|
'event_id' => $event_id,
|
|
'bookmaker_id' => Nuh::$options['bookmaker_id'],
|
|
], $base + $odds);
|
|
|
|
break;
|
|
|
|
case 27:
|
|
// ggng
|
|
$odds = [];
|
|
$odds['gg'] = $value['static'][74] ?? 1;
|
|
$odds['ng'] = $value['static'][76] ?? 1;
|
|
$odds['margin'] = (float) Margin::calculate($odds, 1);
|
|
|
|
OddsDc::updateOrCreate([
|
|
'event_id' => $event_id,
|
|
'bookmaker_id' => Nuh::$options['bookmaker_id'],
|
|
], $base + $odds);
|
|
|
|
break;
|
|
|
|
case 16:
|
|
case 2000:
|
|
// points
|
|
$odds = FilterHandicap::get($value);
|
|
$odds['starttime'] = $starttime;
|
|
|
|
OddsPoint::updateOrCreate([
|
|
'event_id' => $event_id,
|
|
'bookmaker_id' => Nuh::$options['bookmaker_id'],
|
|
], $base + $odds);
|
|
break;
|
|
|
|
case 2025:
|
|
// points qt
|
|
$odds = FilterHandicapQ1::get($value);
|
|
OddsPointQ1::updateOrCreate([
|
|
'event_id' => $event_id,
|
|
'bookmaker_id' => Nuh::$options['bookmaker_id'],
|
|
], $base + $odds);
|
|
break;
|
|
|
|
case 17:
|
|
case 2002:
|
|
// totals
|
|
$odds = FilterTotals::get($value, $sport_id);
|
|
if ($base['sport_id'] == 1) {
|
|
$odds['active_spread'] = 1;
|
|
}
|
|
OddsTotal::updateOrCreate([
|
|
'event_id' => $event_id,
|
|
'bookmaker_id' => Nuh::$options['bookmaker_id'],
|
|
], $base + $odds);
|
|
break;
|
|
|
|
case 2012:
|
|
// totals qt
|
|
$odds = FilterTotalsQ1::get($value, $sport_id);
|
|
OddsTotalQ1::updateOrCreate([
|
|
'event_id' => $event_id,
|
|
'bookmaker_id' => Nuh::$options['bookmaker_id'],
|
|
], $base + $odds);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
EventBookmaker::whereNotIn('event_id', $event_id_collector)
|
|
->where('bookmaker_id', Nuh::$options['bookmaker_id'])
|
|
->update(['in_feed' => 0]);
|
|
|
|
}
|
|
}
|