From bc1ca5bdeaab5bb7d86b048b3639671774970ea5 Mon Sep 17 00:00:00 2001 From: salam Date: Thu, 15 Jan 2026 18:20:54 +0100 Subject: [PATCH] FindFixture wip --- app/Console/Commands/Grapper/Betica.php | 139 ++++++++++ .../Commands/Grapper/Betsapi/Fixtures.php | 2 +- .../Commands/Grapper/Fixtures/FindFixture.php | 243 +++++++++++++++++ app/Console/Commands/Grapper/Goldbet.php | 26 ++ app/Console/Commands/Grapper/Logifuture.php | 7 +- .../Commands/Grapper/Magloo/Fixtures.php | 2 +- app/Console/Commands/Nuh.php | 16 +- app/Mapper/FindFixture.php | 251 ------------------ 8 files changed, 428 insertions(+), 258 deletions(-) create mode 100644 app/Console/Commands/Grapper/Betica.php create mode 100644 app/Console/Commands/Grapper/Fixtures/FindFixture.php create mode 100644 app/Console/Commands/Grapper/Goldbet.php delete mode 100644 app/Mapper/FindFixture.php diff --git a/app/Console/Commands/Grapper/Betica.php b/app/Console/Commands/Grapper/Betica.php new file mode 100644 index 00000000..1409f640 --- /dev/null +++ b/app/Console/Commands/Grapper/Betica.php @@ -0,0 +1,139 @@ + 1X2 + * 10 => DOUBLE CHANCE + * 18 => TOTAL + * 19 => BOTH TEAMS TO SCORE (GG/NG) + * sub_type_id=1,10,18,29 + */ + + /** + * TOR exit nodes + * TANZANIA, UNITED REPUBLIC OF {tz} + * KENYA {ke} + * UGANDA {ug} + * SOMALIA ? {so} + * ETHIOPIA {et} + * + * ExitNodes {ke},{tz},{ug},{et} + * vi /etc/tor/torrc + */ + for ($page = 1; $page < 20; $page++) { + + $url = "https://api.betika.com/v1/uo/matches?page=$page&limit=100&sub_type_id=1,10,18,29&sport_id=14&sort_id=2&period_id=9&esports=false"; + + $data = Curl::load($url); + + if (! is_array($data['data']) or \count($data['data']) == 0) { + if ($debug) { + Notice::note('NO DATA', 'r'); + } + + return; + } else { + $total = $data['meta']['total']; + + if ($debug) { + Notice::note('Total: '.$total, 'b'); + } + + foreach ($data['data'] as $row) { + + print_r($row); + + if (isset($row['parent_match_id']) && ! $row['is_esport']) { + + $event = [ + 'event_id' => (int) $row['match_id'], + 'betradar_id' => (int) $row['parent_match_id'] ?? 0, + 'sport_id' => (int) Nuh::$options['sport_id'], + 'provider_id' => (int) Nuh::$options['provider_id'], + 'starttime' => (string) $row['start_time'], + 'country' => $row['category'] ?? 0, + 'home' => $row['home_team'] ?? '', + 'away' => $row['away_team'] ?? '', + 'group' => $row['competition_name'] ?? '', + 'group_id' => (int) $row['competition_id'] ?? 0, + ]; + + dd($event); + + FindFixture::search($event, self::$groups[$sport_id], self::$elements[$sport_id]); + } + + // $bmoid = (int) $value['match_id']; + + // $event = []; + // $event['status'] = 1; + // $event['bkmid'] = PARSER::$_config['bookmaker_id']; + // $event['bmoid'] = (int) $bmoid; + // $event['sportid'] = 1; + // $event['brmatchid'] = (int) $value['parent_match_id']; + // $event['starttime'] = strtotime($value['start_time']); + // $event['starttime'] -= 10800; + // $event['event'] = $value['home_team'].' v '.$value['away_team']; + // $event['groupname'] = $value['competition_name']; + // $event['groupid'] = $value['competition_id']; + // $event['country'] = $value['category']; + // $event['home'] = $value['home_team']; + // $event['away'] = $value['away_team']; + + } + } + } + + } +} diff --git a/app/Console/Commands/Grapper/Betsapi/Fixtures.php b/app/Console/Commands/Grapper/Betsapi/Fixtures.php index 2ba471a2..83c1db6c 100644 --- a/app/Console/Commands/Grapper/Betsapi/Fixtures.php +++ b/app/Console/Commands/Grapper/Betsapi/Fixtures.php @@ -3,8 +3,8 @@ namespace App\Console\Commands\Grapper\Betsapi; use App\Console\Commands\Curl; +use App\Console\Commands\Grapper\FindFixture; use App\Console\Commands\Nuh; -use App\Mapper\FindFixture; use App\Mapper\LoadElements; use App\Mapper\LoadGroups; use App\Models\Country; diff --git a/app/Console/Commands/Grapper/Fixtures/FindFixture.php b/app/Console/Commands/Grapper/Fixtures/FindFixture.php new file mode 100644 index 00000000..64e299fc --- /dev/null +++ b/app/Console/Commands/Grapper/Fixtures/FindFixture.php @@ -0,0 +1,243 @@ +value('id'); + } else { + switch ($event['provider_id']) { + case 2: + // BETSAPI + $match_id = Event::where('betsapi_id', '=', $event_id)->value('id'); + break; + case 3: + // MAGLOO KENIA + $match_id = Event::where('magken_id', $event_id)->value('id'); + break; + case 4: + // MAGLOO NIGERIA + $match_id = Event::where('magnig_id', $event_id)->value('id'); + break; + case 5: + // LOGIFUTUR NIGERA + $match_id = Event::where('lognig_id', $event_id)->value('id'); + break; + case 6: + // LOGIFUTUR COLOMBIA + $match_id = Event::where('logcol_id', $event_id)->value('id'); + break; + } + } + + if ($match_id) { + Mapper::where('event_id', $event_id)->delete(); + + $event['id'] = $match_id; + + return; + } + + /************************************************* + * USE DB + *************************************************/ + + $home_id = $elements[$event['home_id']] ?? 0; + + $away_id = $elements[$event['away_id']] ?? 0; + + $competition_group_id = $groups[$event['group_id']] ?? 0; + + if (! $home_id) { + $ele = []; + $ele['sport_id'] = $event['sport_id']; + $ele['provider_id'] = $event['provider_id']; + $ele['element_id'] = $match->home_id ?? 0; + $ele['name'] = $event['home']; + ElementProvider::updateOrCreate(['provider_element_id' => (int) $event['home_id']], $ele); + } + + if (! $away_id) { + $ele = []; + $ele['sport_id'] = $event['sport_id']; + $ele['provider_id'] = $event['provider_id']; + $ele['element_id'] = $match->away_id ?? 0; + $ele['name'] = $event['away']; + ElementProvider::updateOrCreate(['provider_element_id' => (int) $event['away_id']], $ele); + } + + if (! $competition_group_id) { + $group = []; + $group['sport_id'] = $event['sport_id']; + $group['provider_id'] = $event['provider_id']; + $group['competition_group_id'] = $match->competition_group_id; + $group['name'] = $event['group']; + CompetitionGroupProvider::updateOrCreate(['provider_group_id' => (int) $event['group_id']], $group); + } + + $update_array = []; + + if ($betradar_id && ! $match->betradar_id) { + $update_array['betradar_id'] = $betradar_id; + } + if ($betsapi_id && ! $match->betsapi_id) { + $update_array['betsapi_id'] = $betsapi_id; + } + if ($bet365_id && ! $match->bet365_id) { + $update_array['bet365_id'] = $bet365_id; + } + if ($_1xbet_id && ! $match->_1xbet_id) { + $update_array['bet365_id'] = $_1xbet_id; + } + if ($bwin_id && ! $match->bwin_id) { + $update_array['bwin_id'] = $bwin_id; + } + + // event_id + switch ($event['provider_id']) { + case 3: + // MAGLOO KENIA + if (! $match->magken_id) { + $update_array['magken_id'] = $event_id; + } + break; + case 4: + // MAGLOO NIGERIA + if (! $match->magnig_id) { + $update_array['magnig_id'] = $event_id; + } + break; + case 5: + // LOGIFUTUR NIGERA + if (! $match->lognig_id) { + $update_array['lognig_id'] = $event_id; + } + break; + case 6: + // LOGIFUTUR COLOMBIA + if (! $match->logcol_id) { + $update_array['logcol_id'] = $event_id; + } + break; + } + + if ($update_array) { + Event::where('id', $match_id)->update($update_array); + } + + $startime = $event['starttime']; + + $from = Carbon::createFromDate($startime)->subDay(); + + $to = Carbon::createFromDate($startime)->addDay(); + + if ($find_by_name) { + $home_id = ElementProvider::where(['sport_id' => (int) $event['sport_id']]) + ->where('provider_id', $event['provider_id']) + ->where('name', $home) + ->value('element_id'); + $away_id = ElementProvider::where(['sport_id' => (int) $event['sport_id']]) + ->where('provider_id', $event['provider_id']) + ->where('name', $away) + ->value('element_id'); + $competition_group_id = CompetitionGroupProvider::where(['sport_id' => (int) $event['sport_id']]) + ->where('provider_id', $event['provider_id']) + ->where('name', $groupname) + ->value('competition_group_id'); + } + + if ($home_id && $away_id && $competition_group_id) { + + $match_id = Event::query() + ->where('home_id', $home_id) + ->where('away_id', $away_id) + ->where('competition_group_id', $competition_group_id) + ->where('starttime', '>', $from->toDateTimeString()) + ->where('starttime', '<', $to->toDateTimeString()) + ->value('id'); + + if ($match_id) { + + $update_array = []; + + if ($betradar_id) { + $update_array['betradar_id'] = $betradar_id; + } + if ($betsapi_id) { + $update_array['betsapi_id'] = $betsapi_id; + } + if ($bet365_id) { + $update_array['bet365_id'] = $bet365_id; + } + + if ($update_array) { + Event::where('id', $match_id)->update($update_array); + } + + switch ($event['provider_id']) { + case 2: + // BETSAPI + Event::where('id', $match_id)->update(['betsapi_id' => $event_id]); + break; + case 3: + // MAGLOO KENIA + Event::where('id', $match_id)->update(['magken_id' => $event_id]); + break; + case 4: + // MAGLOO NIGERIA + Event::where('id', $match_id)->update(['magnig_id' => $event_id]); + break; + case 5: + // LOGIFUTUR NIGERA + Event::where('id', $match_id)->update(['lognig_id' => $event_id]); + break; + case 6: + // LOGIFUTUR COLOMBIA + Event::where('id', $match_id)->update(['logcol_id' => $event_id]); + break; + default: + } + } else { + Mapper::updateOrCreate(['event_id' => $event_id], $event); + } + } else { + Mapper::updateOrCreate(['event_id' => $event_id], $event); + } + + $event['id'] = $match_id; + } +} diff --git a/app/Console/Commands/Grapper/Goldbet.php b/app/Console/Commands/Grapper/Goldbet.php new file mode 100644 index 00000000..8bc3809c --- /dev/null +++ b/app/Console/Commands/Grapper/Goldbet.php @@ -0,0 +1,26 @@ +value('id'); - break; - case 3: - // MAGLOO KENIA - $match_id = Event::where('magken_id', $event_id)->value('id'); - break; - case 4: - // MAGLOO NIGERIA - $match_id = Event::where('magnig_id', $event_id)->value('id'); - break; - case 5: - // LOGIFUTUR NIGERA - $match_id = Event::where('lognig_id', $event_id)->value('id'); - break; - case 6: - // LOGIFUTUR COLOMBIA - $match_id = Event::where('logcol_id', $event_id)->value('id'); - break; - } - - // DEFAULT BETRADAR - if (! $match_id && $betradar_id) { - $match_id = Event::where('betradar_id', $betradar_id)->value('id'); - } - if ($find_by_name) { - $home = $elements[$event['home']] ?? 0; - $away = $elements[$event['away']] ?? 0; - $groupname = $groups[$event['group']] ?? 0; - } else { - $home_id = $elements[$event['home_id']] ?? 0; - $away_id = $elements[$event['away_id']] ?? 0; - $competition_group_id = $groups[$event['group_id']] ?? 0; - } - - if ($match_id) { - - Mapper::where('event_id', $event_id)->delete(); - - $match = Event::where('id', $match_id)->first(); - - if ($find_by_name) { - if (! $home) { - $ele = []; - $ele['sport_id'] = $event['sport_id']; - $ele['provider_id'] = $event['provider_id']; - ElementProvider::updateOrCreate(['name' => (int) $event['home']], $ele); - } - if (! $away) { - $ele = []; - $ele['sport_id'] = $event['sport_id']; - $ele['provider_id'] = $event['provider_id']; - ElementProvider::updateOrCreate(['name' => (int) $event['away']], $ele); - } - if (! $groupname) { - $group = []; - $group['sport_id'] = $event['sport_id']; - $group['provider_id'] = $event['provider_id']; - CompetitionGroupProvider::updateOrCreate(['name' => (int) $event['group']], $group); - } - } else { - if (! $home_id) { - $ele = []; - $ele['sport_id'] = $event['sport_id']; - $ele['provider_id'] = $event['provider_id']; - $ele['element_id'] = $match->home_id ?? 0; - $ele['name'] = $event['home']; - ElementProvider::updateOrCreate(['provider_element_id' => (int) $event['home_id']], $ele); - } - if (! $away_id) { - $ele = []; - $ele['sport_id'] = $event['sport_id']; - $ele['provider_id'] = $event['provider_id']; - $ele['element_id'] = $match->away_id ?? 0; - $ele['name'] = $event['away']; - ElementProvider::updateOrCreate(['provider_element_id' => (int) $event['away_id']], $ele); - } - if (! $competition_group_id) { - $group = []; - $group['sport_id'] = $event['sport_id']; - $group['provider_id'] = $event['provider_id']; - $group['competition_group_id'] = $match->competition_group_id; - $group['name'] = $event['group']; - CompetitionGroupProvider::updateOrCreate(['provider_group_id' => (int) $event['group_id']], $group); - } - } - - $update_array = []; - - if ($betradar_id && ! $match->betradar_id) { - $update_array['betradar_id'] = $betradar_id; - } - if ($betsapi_id && ! $match->betsapi_id) { - $update_array['betsapi_id'] = $betsapi_id; - } - if ($bet365_id && ! $match->bet365_id) { - $update_array['bet365_id'] = $bet365_id; - } - if ($_1xbet_id && ! $match->_1xbet_id) { - $update_array['bet365_id'] = $_1xbet_id; - } - if ($bwin_id && ! $match->bwin_id) { - $update_array['bwin_id'] = $bwin_id; - } - - // event_id - switch ($event['provider_id']) { - case 3: - // MAGLOO KENIA - if (! $match->magken_id) { - $update_array['magken_id'] = $event_id; - } - break; - case 4: - // MAGLOO NIGERIA - if (! $match->magnig_id) { - $update_array['magnig_id'] = $event_id; - } - break; - case 5: - // LOGIFUTUR NIGERA - if (! $match->lognig_id) { - $update_array['lognig_id'] = $event_id; - } - break; - case 6: - // LOGIFUTUR COLOMBIA - if (! $match->logcol_id) { - $update_array['logcol_id'] = $event_id; - } - break; - } - - if ($update_array) { - Event::where('id', $match_id)->update($update_array); - } - } else { - - $startime = $event['starttime']; - - $from = Carbon::createFromDate($startime)->subDay(); - - $to = Carbon::createFromDate($startime)->addDay(); - - if ($find_by_name) { - $home_id = ElementProvider::where(['sport_id' => (int) $event['sport_id']]) - ->where('provider_id', $event['provider_id']) - ->where('name', $home) - ->value('element_id'); - $away_id = ElementProvider::where(['sport_id' => (int) $event['sport_id']]) - ->where('provider_id', $event['provider_id']) - ->where('name', $away) - ->value('element_id'); - $competition_group_id = CompetitionGroupProvider::where(['sport_id' => (int) $event['sport_id']]) - ->where('provider_id', $event['provider_id']) - ->where('name', $groupname) - ->value('competition_group_id'); - } - - if ($home_id && $away_id && $competition_group_id) { - - $match_id = Event::query() - ->where('home_id', $home_id) - ->where('away_id', $away_id) - ->where('competition_group_id', $competition_group_id) - ->where('starttime', '>', $from->toDateTimeString()) - ->where('starttime', '<', $to->toDateTimeString()) - ->value('id'); - - if ($match_id) { - - $update_array = []; - - if ($betradar_id) { - $update_array['betradar_id'] = $betradar_id; - } - if ($betsapi_id) { - $update_array['betsapi_id'] = $betsapi_id; - } - if ($bet365_id) { - $update_array['bet365_id'] = $bet365_id; - } - - if ($update_array) { - Event::where('id', $match_id)->update($update_array); - } - - switch ($event['provider_id']) { - case 2: - // BETSAPI - Event::where('id', $match_id)->update(['betsapi_id' => $event_id]); - break; - case 3: - // MAGLOO KENIA - Event::where('id', $match_id)->update(['magken_id' => $event_id]); - break; - case 4: - // MAGLOO NIGERIA - Event::where('id', $match_id)->update(['magnig_id' => $event_id]); - break; - case 5: - // LOGIFUTUR NIGERA - Event::where('id', $match_id)->update(['lognig_id' => $event_id]); - break; - case 6: - // LOGIFUTUR COLOMBIA - Event::where('id', $match_id)->update(['logcol_id' => $event_id]); - break; - default: - } - } else { - Mapper::updateOrCreate(['event_id' => $event_id], $event); - } - } else { - Mapper::updateOrCreate(['event_id' => $event_id], $event); - } - } - - $event['id'] = $match_id; - } -}