mapper wip

This commit is contained in:
salam committed 2026-01-16 16:23:17 +01:00
1 parent 7b2894682f
commit 93febce6fb
18 files changed
+45151 -63

No files matched your search

@@ -66,7 +66,7 @@ class FindFixture
}
}
if ($match) {
if ($match ?? null) {
$update_array = [];
+133 -12
View File
@@ -2,25 +2,146 @@
namespace App\Console\Commands\Grapper;
use App\Console\Commands\Grapper\Magloo\Fixtures;
use App\Console\Commands\Grapper\Magloo\Odds;
use App\Console\Commands\Grapper\Fixtures\FindFixture;
use App\Console\Commands\Nuh;
use App\Models\Odds3way;
use App\Models\OddsDc;
use App\Models\OddsGgng;
use App\Models\OddsTotal;
use App\Utilities\Margin;
use App\Utilities\Notice;
use Illuminate\Support\Carbon;
class Goldbet
{
public static function switch()
{
switch (Nuh::$options['name']) {
case 'Fixtures':
Fixtures::grap();
break;
case 'Odds':
Odds::grap();
break;
default:
Notice::note('prosses name does not exist', 'r', 1);
break;
$debug = Nuh::$options['d'] ?? 0;
$save = Nuh::$options['s'] ?? 0;
$read = Nuh::$options['r'] ?? 0;
$filename = app_path().'/Console/Commands/TestFiles/goldbet.json';
if ($debug) {
Notice::note(Nuh::$options['provider'], 'g');
}
if ($read) {
if ($debug) {
Notice::note('data read localy', 'g');
}
$file = file_get_contents($filename);
$data = json_decode($file, true);
} else {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://gb.nuhodds.com');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Proxy-Auth: jjW2jVVezcMURUBuhzf6VDXXsMhN5JWKEeQ5pYusg7b29G',
'Proxy-Target-URL: '.Nuh::$options['base_url'],
// 'Proxy-Debug: 1'
]);
$file = curl_exec($ch);
}
if ($save) {
file_put_contents($filename, $file);
Notice::note('file saved localy', 'g');
}
$data = json_decode($file, true);
// https://api.b365api.com/v1/sbobet/event?token=36152-aeTRNnZxSPUwGe&event_id=10399052
// https://api.b365api.com/v1/sbobet/inplay?sport_id=1&token=36152-aeTRNnZxSPUwGe
foreach ($data as $row) {
if ($row['liga'] != 'Fantasy Matches') {
/**
* sportid is same like txoods
*/
$event = [
'event_id' => (int) $row['matchid'],
'sport_id' => (int) $row['sport'],
'provider_id' => (int) Nuh::$options['provider_id'],
'starttime' => (string) Carbon::createFromTimestamp((string) $row['starttime'])->toDateTimeString(),
'country' => $row['country'] ?? 0,
'country_id' => (int) $row['countryid'] ?? 0,
'home' => $row['e1'] ?? '',
'home_id' => (int) $row['e2id'],
'away' => $row['e2'] ?? '',
'away_id' => (int) $row['e2id'],
'group' => $row['liga'] ?? '',
'group_id' => (int) $row['lid'] ?? 0,
];
FindFixture::find($event);
if (isset($event['id'])) {
$base = [];
$base['sport_id'] = (int) Nuh::$options['sport_id'];
$base['provider_id'] = Nuh::$options['provider_id'];
$base['bmoid'] = (int) $row['match_id'];
$base['flag'] = 1;
if (isset($row['1x2'])) {
$odds = [];
$odds['h3w'] = $row['1x2']['one'];
$odds['d3w'] = $row['1x2']['x'];
$odds['a3w'] = $row['1x2']['two'];
$odds['margin'] = (float) Margin::calculate($odds, 1);
$odds['starttime'] = (string) $row['start_time'];
Odds3way::updateOrCreate([
'event_id' => $event['id'],
'bookmaker_id' => Nuh::$options['bookmaker_id'],
], $base + $odds);
}
if (isset($row['ou'])) {
$odds = [];
$odds['over'] = $row['ou']['over'];
$odds['under'] = $row['ou']['under'];
$odds['margin'] = (float) Margin::calculate($odds, 1);
$odds['total'] = 2.5;
OddsTotal::updateOrCreate([
'event_id' => $event['id'],
'bookmaker_id' => Nuh::$options['bookmaker_id'],
], $base + $odds);
}
if (isset($row['dc'])) {
$odds = [];
$odds['dc1x'] = $row['dc']['dc1x'];
$odds['dc12'] = $row['dc']['dc12'];
$odds['dcx2'] = $row['dc']['dcx2'];
$odds['margin'] = (float) Margin::calculate($odds, 1);
$odds['starttime'] = (string) $row['start_time'];
OddsDc::updateOrCreate([
'event_id' => $event['id'],
'bookmaker_id' => Nuh::$options['bookmaker_id'],
], $base + $odds);
}
if (isset($row['gg_ng'])) {
$odds = [];
$odds['gg'] = $row['gg_ng']['gg'];
$odds['ng'] = $row['gg_ng']['ng'];
$odds['margin'] = (float) Margin::calculate($odds, 1);
$odds['starttime'] = (string) $row['start_time'];
OddsGgng::updateOrCreate([
'event_id' => $event['id'],
'bookmaker_id' => Nuh::$options['bookmaker_id'],
], $base + $odds);
}
}
}
}
}
}
+3 -2
View File
@@ -4,6 +4,7 @@ namespace App\Console\Commands\Services;
use App\Console\Commands\Nuh;
use App\Console\Commands\Services\Tasks\CallTxoddsMarkets;
use App\Console\Commands\Services\Tasks\DBMapper;
class Services
{
@@ -13,8 +14,8 @@ class Services
case 'Txodds Markets':
CallTxoddsMarkets::call();
break;
case 'Mapper':
Mapper::run();
case 'DB Mapper':
DBMapper::run();
break;
}
}
@@ -0,0 +1,66 @@
<?php
namespace App\Console\Commands\Services\Tasks;
use App\Console\Commands\Nuh;
use App\Console\Commands\Services\Tasks\Helper\FindCountry;
use App\Console\Commands\Services\Tasks\Helper\FindElement;
use App\Console\Commands\Services\Tasks\Helper\FindGroup;
use App\Models\Event;
use App\Models\Mapper;
use App\Utilities\Notice;
use Carbon\Carbon;
use Illuminate\Support\Facades\DB;
class DBMapper
{
public static function run()
{
$debug = Nuh::$options['d'] ?? 0;
if ($debug) {
Notice::note('MAPPER SOCCER', 'g');
}
$events = Mapper::get()->toArray();
$i = 0;
foreach ($events as $event) {
Notice::note($i);
FindElement::run($event);
FindGroup::run($event);
FindCountry::run($event);
// print_r($event);
if ($event['txodds_home_id'] && $event['txodds_away_id'] && $event['txodds_group_id']) {
$from = Carbon::createFromDate($event['starttime'])->subDay();
$to = Carbon::createFromDate($event['starttime'])->addDay();
// DB::enableQueryLog();
$query = Event::where('starttime', '>', $from->toDateTimeString())
->where('starttime', '<', $to->toDateTimeString())
->whereIn('home_id', $event['txodds_home_id'])
->whereIn('home_id', $event['txodds_away_id'])
->whereIn('competition_group_id', $event['txodds_group_id'])
->get();
// Notice::db(DB::getQueryLog());
Notice::db($query);
}
$i++;
if ($i > 100) {
exit;
}
}
}
}
@@ -2,7 +2,7 @@
namespace App\Console\Commands\Services\Tasks\Helper;
class ExplodeElement
class ExplodeString
{
public static function grap($str)
{
@@ -22,7 +22,7 @@ class ExplodeElement
$_return = [];
foreach ($elements as $value) {
if (\strlen($value) > 2) {
if (\strlen($value) > 3) {
$_return[] = $value;
}
}
@@ -0,0 +1,44 @@
<?php
namespace App\Console\Commands\Services\Tasks\Helper;
use App\Models\CountriesItalian;
use App\Models\Country;
class FindCountry
{
public static function run(&$event)
{
if ($event['provider_id'] == 10) {
// GOLDBET
$country = CountriesItalian::where('it', $event['country'])->value('en');
$event['txodds_country_id'] = Country::where('name', $country)->value('id');
} else {
$country = self::fix_country($event['country']);
$event['txodds_country_id'] = Country::where('name', $country)->value('id');
}
}
public static function fix_country($country)
{
switch ($country) {
case 'Internazionale':
case 'International Club':
case 'Internazionali Di Club':
case 'FIBA Intercontinental Cup':
return 'International';
case 'Euro Cup':
case 'Euro Cup Women':
case 'Euroleague':
case 'Euroleague Women':
return 'Europe';
case 'WNBA':
return 'USA';
default:
return $country;
}
}
}
@@ -0,0 +1,42 @@
<?php
namespace App\Console\Commands\Services\Tasks\Helper;
use App\Models\Element;
use App\Models\ElementProvider;
class FindElement
{
public static function run(&$event)
{
if (isset($event['home_id'])) {
$event['txodds_home_id'][] = ElementProvider::where('provider_id', $event['provider_id'])
->where('provider_element_id', $event['home_id'])->value('element_id');
}
if (! $event['txodds_home_id']) {
$arr = ExplodeString::grap($event['home']);
$event['txodds_home_id'] = Element::where('sport_id', $event['sport_id'])
->where(function ($query) use ($arr) {
foreach ($arr as $str) {
$query->orwhere('name', 'like', '%'.$str.'%');
}
})->pluck('id')->toArray();
}
if (isset($event['away_id'])) {
$event['txodds_away_id'][] = ElementProvider::where('provider_id', $event['provider_id'])
->where('provider_element_id', $event['away_id'])->value('element_id');
}
if (! $event['txodds_away_id']) {
$arr = ExplodeString::grap($event['away']);
$event['txodds_away_id'] = Element::where('sport_id', $event['sport_id'])
->where(function ($query) use ($arr) {
foreach ($arr as $str) {
$query->orwhere('name', 'like', '%'.$str.'%');
}
})->pluck('id')->toArray();
}
}
}
@@ -0,0 +1,29 @@
<?php
namespace App\Console\Commands\Services\Tasks\Helper;
use App\Models\CompetitionGroup;
use App\Models\CompetitionGroupProvider;
class FindGroup
{
public static function run(&$event)
{
if (isset($event['group_id'])) {
$event['txodds_group_id'][] = CompetitionGroupProvider::where('provider_id', $event['provider_id'])
->where('provider_group_id', $event['group_id'])->value('competition_group_id');
}
if (! $event['txodds_group_id']) {
$arr = ExplodeString::grap($event['group']);
$event['txodds_group_id'] = CompetitionGroup::where('sport_id', $event['sport_id'])
->where(function ($query) use ($arr) {
foreach ($arr as $str) {
$query->orwhere('name', 'like', '%'.$str.'%');
}
})->pluck('id')->toArray();
}
}
}
@@ -1,40 +0,0 @@
<?php
namespace App\Console\Commands\Services\Tasks;
use App\Console\Commands\Nuh;
use App\Utilities\Notice;
class Mapper
{
public static function run()
{
$debug = Nuh::$options['d'] ?? 0;
switch (Nuh::$options['sport_id']) {
case 1:
$bookmakers = [10, 14, 16, 35, 36, 46, 128];
break;
case 2:
$bookmakers = [10, 16, 35, 36, 46, 128];
break;
case 3:
$bookmakers = [128, 10, 16, 35, 36, 46];
break;
case 5:
$bookmakers = [128, 10, 16, 35, 36, 46];
break;
}
if ($debug) {
Notice::note('MAPPER SOCCER', 'g');
}
$results = [];
foreach ($bookmakers as $$bookmaker_id) {
// code...
}
}
}
File diff suppressed because it is too large. Load diff