Files
nuhodds_fi4/app/Console/Commands/Grapper/Logifuture.php
T

114 lines
3.9 KiB
PHP

<?php
namespace App\Console\Commands\Grapper;
use App\Console\Commands\Grapper\Fixtures\FindFixture;
use App\Console\Commands\Grapper\Logifuture\Basketball;
use App\Console\Commands\Grapper\Logifuture\Icehockey;
use App\Console\Commands\Grapper\Logifuture\Soccer;
use App\Console\Commands\Grapper\Logifuture\Tennis;
use App\Console\Commands\Grapper\Logifuture\Tools\Authentication;
use App\Console\Commands\Grapper\Logifuture\Tools\LogifutureData;
use App\Console\Commands\Grapper\Logifuture\Tools\MapEvent;
use App\Console\Commands\Nuh;
use App\Models\EventBookmaker;
use App\Models\Sport;
use App\Utilities\Notice;
use Illuminate\Support\Facades\DB;
class Logifuture
{
public static $auth_header = [];
public static $base_url = '';
public static function switch()
{
$debug = Nuh::$options['d'] ?? 0;
$echo_data = Nuh::$options['e'] ?? 0;
$sportmap = Sport::map('logi', 1, [Nuh::$options['sport_id']]);
$event_id_collector = [];
if ($debug) {
Notice::note(Nuh::$options['provider'].' '.Nuh::$options['sport'], 'g');
}
Authentication::authenticate();
foreach ($sportmap as $logifuture_sport_id => $sport_id) {
$matches = LogifutureData::load($logifuture_sport_id);
// Notice::note($matches, 'b');
if ($echo_data) {
Notice::note($matches, 'g');
}
if (! is_array($matches)) {
return;
}
if (! isset($matches['error'])) {
foreach ($matches as $match) {
// Notice::note($match, 'r');
if (strpos($match['sportCategory'], 'Simulated Reality') === false) {
$event = MapEvent::filter($sport_id, $match);
FindFixture::find($event);
Notice::note($event, 'r');
if (isset($event['id'])) {
Notice::note($event, 'b');
$event_id_collector[] = $event['id'];
EventBookmaker::updateOrCreate([
'event_id' => $event['id'],
'sport_id' => $sport_id,
'bookmaker_id' => Nuh::$options['bookmaker_id'],
], ['in_feed' => 1, 'bmoid' => $event['id'], 'startime' => $event['starttime']]);
switch ($sport_id) {
case 1:
Soccer::get($event, $match);
break;
case 2:
Icehockey::get($event, $match);
break;
case 3:
Basketball::get($event, $match);
break;
case 5:
Tennis::get($event, $match);
break;
default:
Notice::note('SPORT NOT IMPLEMENTED', 'r', 1);
break;
}
}
}
}
}
}
if ($event_id_collector) {
EventBookmaker::whereNotIn('event_id', $event_id_collector)->where('bookmaker_id', Nuh::$options['bookmaker_id'])->update(['in_feed' => 0]);
$tables = ['odds_2ways', 'odds_2ways_s1', 'odds_3ways', 'odds_totals', 'odds_points', 'odds_ggng', 'odds_dc', 'odds_tq', 'odds_points_q1', 'odds_totals_q1'];
foreach ($tables as $table) {
DB::table($table)->where('bookmaker_id', Nuh::$options['bookmaker_id'])->whereNotIn('event_id', $event_id_collector)->update(['flags' => 0]);
}
}
}
}