129 lines
4.2 KiB
PHP
129 lines
4.2 KiB
PHP
<?php
|
|
|
|
namespace App\Console\Commands\Grapper\Betsapi;
|
|
|
|
use App\Console\Commands\Curl;
|
|
use App\Console\Commands\Nuh;
|
|
use App\Models\Event;
|
|
use App\Models\Odds3way;
|
|
use App\Models\OddsDc;
|
|
use App\Models\OddsDnb;
|
|
use App\Models\OddsGgng;
|
|
use App\Models\OddsTotal;
|
|
use App\Utilities\Margin;
|
|
use Illuminate\Support\Carbon;
|
|
|
|
class Bet365
|
|
{
|
|
public static function grap()
|
|
{
|
|
$debug = Nuh::$options['d'] ?? 0;
|
|
|
|
/**
|
|
* Bet365
|
|
*/
|
|
$bookmaker_id = 126;
|
|
|
|
$events = Event::where('bet365_id', '>', 0)->where('events.starttime', '>', Carbon::now())->get();
|
|
|
|
foreach ($events as $event) {
|
|
|
|
/**
|
|
* BET365 ODDS (per event)
|
|
*/
|
|
$url = 'https://api.b365api.com/v4/bet365/prematch?token='.config('env.betsapi_token').'&FI='.$event->bet365_id;
|
|
|
|
$data = Curl::load($url);
|
|
|
|
$offer = $data['results'][0]['main']['sp'];
|
|
|
|
$base = [];
|
|
$base['sport_id'] = $event->sport_id;
|
|
$base['provider_id'] = Nuh::$options['provider_id'];
|
|
$base['bmoid'] = $event->bet365_id;
|
|
$base['flag'] = 1;
|
|
$base['last_check_at'] = Carbon::now();
|
|
|
|
/**
|
|
* 1X2
|
|
*/
|
|
if (isset($offer['full_time_result'])) {
|
|
$odds = [];
|
|
$odds['h3w'] = $offer['full_time_result']['odds'][0]['odds'] ?? 1;
|
|
$odds['d3w'] = $offer['full_time_result']['odds'][1]['odds'] ?? 1;
|
|
$odds['a3w'] = $offer['full_time_result']['odds'][2]['odds'] ?? 1;
|
|
$odds['margin'] = (float) Margin::calculate($odds, 1);
|
|
|
|
Odds3way::updateOrCreate([
|
|
'event_id' => $event->id,
|
|
'bookmaker_id' => $bookmaker_id,
|
|
], $base + $odds);
|
|
}
|
|
|
|
/**
|
|
* DC
|
|
*/
|
|
if (isset($offer['double_chance'])) {
|
|
$odds = [];
|
|
$odds['dc1x'] = $offer['double_chance']['odds'][0]['odds'] ?? 1;
|
|
$odds['dc12'] = $offer['double_chance']['odds'][1]['odds'] ?? 1;
|
|
$odds['dcx2'] = $offer['double_chance']['odds'][2]['odds'] ?? 1;
|
|
$odds['margin'] = (float) Margin::calculate($odds, 1);
|
|
|
|
OddsDc::updateOrCreate([
|
|
'event_id' => $event->id,
|
|
'bookmaker_id' => $bookmaker_id,
|
|
], $base + $odds);
|
|
}
|
|
|
|
/**
|
|
* OU
|
|
*/
|
|
if (isset($offer['goals_over_under'])) {
|
|
$odds = [];
|
|
$odds['over'] = $offer['goals_over_under']['odds'][0]['odds'] ?? 1;
|
|
$odds['under'] = $offer['goals_over_under']['odds'][1]['odds'] ?? 1;
|
|
$odds['margin'] = (float) Margin::calculate($odds, 1);
|
|
|
|
if ((float) $offer['goals_over_under']['odds'][1]['name'] == 2.5) {
|
|
OddsTotal::updateOrCreate([
|
|
'event_id' => $event->id,
|
|
'bookmaker_id' => $bookmaker_id,
|
|
'total' => 2.5,
|
|
], $base + $odds);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* GG NG
|
|
*/
|
|
if (isset($offer['both_teams_to_score'])) {
|
|
$odds = [];
|
|
$odds['gg'] = $offer['both_teams_to_score']['odds'][0]['odds'] ?? 1;
|
|
$odds['ng'] = $offer['both_teams_to_score']['odds'][1]['odds'] ?? 1;
|
|
$odds['margin'] = (float) Margin::calculate($odds, 1);
|
|
|
|
OddsGgng::updateOrCreate([
|
|
'event_id' => $event->id,
|
|
'bookmaker_id' => $bookmaker_id,
|
|
], $base + $odds);
|
|
}
|
|
|
|
/**
|
|
* DNB
|
|
*/
|
|
if (isset($offer['draw_no_bet'])) {
|
|
$odds = [];
|
|
$odds['dnb1'] = $offer['draw_no_bet']['odds'][0]['odds'] ?? 1;
|
|
$odds['dnb2'] = $offer['draw_no_bet']['odds'][1]['odds'] ?? 1;
|
|
$odds['margin'] = (float) Margin::calculate($odds, 1);
|
|
|
|
OddsDnb::updateOrCreate([
|
|
'event_id' => $event->id,
|
|
'bookmaker_id' => $bookmaker_id,
|
|
], $base + $odds);
|
|
}
|
|
}
|
|
}
|
|
}
|