grapper betsapi bet365 wip
This commit is contained in:
1 parent
e90a6c71f6
commit
b1a724061f
19 files changed
+93
-51
No files matched your search
@@ -2,6 +2,8 @@
|
||||
|
||||
namespace App\Console\Commands\Grapper;
|
||||
|
||||
use App\Console\Commands\Grapper\Betsapi\Bet365;
|
||||
use App\Console\Commands\Grapper\Betsapi\Betfair;
|
||||
use App\Console\Commands\Grapper\Betsapi\Bwin;
|
||||
use App\Console\Commands\Grapper\Betsapi\Fixtures;
|
||||
use App\Console\Commands\Grapper\Betsapi\Odds;
|
||||
@@ -27,9 +29,12 @@ class Betsapi
|
||||
case 'Bwin':
|
||||
Bwin::grap();
|
||||
break;
|
||||
case 'Bwin':
|
||||
case 'Bet365':
|
||||
Bet365::grap();
|
||||
break;
|
||||
case 'Betfair':
|
||||
Betfair::grap();
|
||||
break;
|
||||
default:
|
||||
Notice::note('prosses name does not exist', 'r', 1);
|
||||
break;
|
||||
|
||||
@@ -5,7 +5,10 @@ namespace App\Console\Commands\Grapper\Betsapi;
|
||||
use App\Console\Commands\Curl;
|
||||
use App\Console\Commands\Nuh;
|
||||
use App\Models\Event;
|
||||
use App\Utilities\Notice;
|
||||
use App\Models\Odds3way;
|
||||
use App\Models\OddsDc;
|
||||
use App\Utilities\Margin;
|
||||
use Illuminate\Support\Carbon;
|
||||
|
||||
class Bet365
|
||||
{
|
||||
@@ -18,29 +21,59 @@ class Bet365
|
||||
*/
|
||||
$bookmaker_id = 126;
|
||||
|
||||
$res = Event::where('bet365_id', '>', 0)->pluck('id', 'bet365_id');
|
||||
$events = Event::where('bet365_id', '>', 0)->where('events.starttime', '>', Carbon::now())->get();
|
||||
|
||||
foreach ($res as $bet365_id => $txodds_id) {
|
||||
foreach ($events as $event) {
|
||||
|
||||
/**
|
||||
* BET365 ODDS (per event)
|
||||
*/
|
||||
$url = 'https://api.b365api.com/v4/bet365/prematch?token='.config('env.betsapi_token').'&FI='.$bet365_id;
|
||||
$url = 'https://api.b365api.com/v4/bet365/prematch?token='.config('env.betsapi_token').'&FI='.$event->bet365_id;
|
||||
|
||||
$data = Curl::load($url);
|
||||
|
||||
dd($data);
|
||||
$offer = $data['results'][0]['main']['sp'];
|
||||
|
||||
$betsapi_id = $data['results'][0]['id'] ?? 0;
|
||||
$bet365_id = $data['results'][0]['bet365_id'] ?? 0;
|
||||
/**
|
||||
* 1X2
|
||||
*/
|
||||
$odds = [];
|
||||
$odds['h3w'] = $offer['full_time_result']['odds'][0]['odds'];
|
||||
$odds['d3w'] = $offer['full_time_result']['odds'][1]['odds'];
|
||||
$odds['a3w'] = $offer['full_time_result']['odds'][2]['odds'];
|
||||
$odds['margin'] = (float) Margin::calculate([$odds['h3w'], $odds['d3w'], $odds['a3w']], 1);
|
||||
$odds['sport_id'] = $event->sport_id;
|
||||
$odds['provider_id'] = Nuh::$options['provider_id'];
|
||||
$odds['bmoid'] = $event->bet365_id;
|
||||
$odds['flag'] = 1;
|
||||
$odds['last_check_at'] = Carbon::now();
|
||||
|
||||
if ($debug) {
|
||||
Notice::note(["TXdds ID : $txodds_id", "Betsapi ID : $betsapi_id", "Bet365 ID : $bet365_id", "Willhill ID : $willhill_id"], 'b');
|
||||
}
|
||||
Odds3way::updateOrCreate([
|
||||
'event_id' => $event->id,
|
||||
'bookmaker_id' => $bookmaker_id,
|
||||
], $odds);
|
||||
|
||||
/**
|
||||
* DC
|
||||
*/
|
||||
$odds = [];
|
||||
$odds['dc1x'] = $offer['full_time_result']['odds'][0]['odds'];
|
||||
$odds['dc12'] = $offer['full_time_result']['odds'][1]['odds'];
|
||||
$odds['dcx2'] = $offer['full_time_result']['odds'][2]['odds'];
|
||||
$odds['margin'] = (float) Margin::calculate([$odds['dc1x'], $odds['dc12'], $odds['dcx2']], 1);
|
||||
$odds['sport_id'] = $event->sport_id;
|
||||
$odds['provider_id'] = Nuh::$options['provider_id'];
|
||||
$odds['bmoid'] = $event->bet365_id;
|
||||
$odds['flag'] = 1;
|
||||
$odds['last_check_at'] = Carbon::now();
|
||||
|
||||
OddsDc::updateOrCreate([
|
||||
'event_id' => $event->id,
|
||||
'bookmaker_id' => $bookmaker_id,
|
||||
], $odds);
|
||||
|
||||
dd($odds);
|
||||
|
||||
if ($betsapi_id) {
|
||||
Event::where('id', (int) $txodds_id)->update(['betsapi_id' => $betsapi_id, 'bet365_id' => $bet365_id]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -14,8 +14,9 @@ class Betfair
|
||||
$debug = Nuh::$options['d'] ?? 0;
|
||||
|
||||
/**
|
||||
* Bet365
|
||||
* Betfair
|
||||
*/
|
||||
exit;
|
||||
$bookmaker_id = 126;
|
||||
|
||||
$res = Event::where('bet365_id', '>', 0)->pluck('id', 'bet365_id');
|
||||
|
||||
@@ -32,6 +32,7 @@ class Willhill
|
||||
|
||||
$res = Odds3way::join('events', 'odds_3ways.event_id', 'events.id')
|
||||
->where('odds_3ways.bookmaker_id', $bookmaker_id)
|
||||
->where('events.starttime', '>', Carbon::now())
|
||||
->where('events.betsapi_id', 0)
|
||||
->where('events.sport_id', $sport_id)
|
||||
->where('odds_3ways.bmoid', '>', 0)->pluck('odds_3ways.event_id', 'odds_3ways.bmoid');
|
||||
|
||||
@@ -15,7 +15,7 @@ use App\Models\Element;
|
||||
use App\Models\Event;
|
||||
use App\Models\Group;
|
||||
use App\Utilities\Notice;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Support\Carbon;
|
||||
|
||||
class Odds
|
||||
{
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
{"success":1,"results":[{"FI":"186071623","event_id":"10119813","asian_lines":{"updated_at":"1767284567","key":"#AC#B1#C1#D8#E186071623#F3#I3#","sp":{"asian_handicap":{"id":"938","name":"Asian Handicap","odds":[{"id":"136626627","odds":"2.050","header":"1","handicap":"0.0,-0.5"},{"id":"136626629","odds":"1.800","header":"2","handicap":"0.0,+0.5"}]},"goal_line":{"id":"10143","name":"Goal Line","odds":[{"id":"136626630","odds":"1.875","name":"2.5","header":"Over"},{"id":"136626631","odds":"1.975","name":"2.5","header":"Under"}]},"alternative_asian_handicap":{"id":"50138","name":"Alternative Asian Handicap","odds":[],"open":0},"alternative_goal_line":{"id":"50139","name":"Alternative Goal Line","odds":[],"open":0},"1st_half_asian_handicap":{"id":"50137","name":"1st Half Asian Handicap","odds":[],"open":0},"1st_half_goal_line":{"id":"50136","name":"1st Half Goal Line","odds":[],"open":0},"alternative_1st_half_asian_handicap":{"id":"50265","name":"Alternative 1st Half Asian Handicap","odds":[],"open":0},"alternative_1st_half_goal_line":{"id":"50266","name":"Alternative 1st Half Goal Line","odds":[],"open":0},"asian_total_corners":{"id":"10164","name":"Asian Total Corners","odds":[],"open":0},"asian_handicap_corners":{"id":"10165","name":"Asian Handicap Corners","odds":[],"open":0},"1st_half_asian_corners":{"id":"10233","name":"1st Half Asian Corners","odds":[],"open":0},"asian_total_cards":{"id":"10166","name":"Asian Total Cards","odds":[],"open":0},"asian_handicap_cards":{"id":"10239","name":"Asian Handicap Cards","odds":[],"open":0}}},"cards":{"updated_at":"1767285348","key":"#AC#B1#C1#D8#E186071623#F3#I4#","sp":{"number_of_cards_in_match":{"id":"10542","name":"Number of Cards In Match","odds":[{"id":"270679284","odds":"1.833","name":"3.5","header":"Over"},{"id":"270679291","odds":"1.833","name":"3.5","header":"Under"}]},"both_teams_to_receive_cards":{"id":"50942","name":"Both Teams to Receive Cards","odds":[{"id":"270707239","odds":"1.333","name":"a Card","header":"Yes"},{"id":"270707258","odds":"2.625","name":"2+ Cards","header":"Yes"},{"id":"271036182","odds":"67.000","name":"a Red Card","header":"Yes"},{"id":"270707249","odds":"3.250","name":"a Card","header":"No"},{"id":"270707269","odds":"1.444","name":"2+ Cards","header":"No"},{"id":"271036197","odds":"1.001","name":"a Red Card","header":"No"}]},"player_cards":{"id":"50135","name":"Player Cards","odds":[{"id":"270709742","odds":"3.100","name":"Joao Palhinha","name2":"2","header":"Booked","team":"Player\/Last 5"},{"id":"270709610","odds":"3.100","name":"Rodrigo Bentancur","name2":"2","header":"Booked","team":"Player\/Last 5"},{"id":"270709691","odds":"3.250","name":"Cristian Romero","name2":"2","header":"Booked","team":"Player\/Last 5"},{"id":"270709622","odds":"4.333","name":"Igor Thiago","name2":"1","header":"Booked","team":"Player\/Last 5"},{"id":"270709699","odds":"4.500","name":"Aaron Hickey","name2":"1","header":"Booked","team":"Player\/Last 5"},{"id":"270709615","odds":"5.000","name":"Archie Gray","name2":"2","header":"Booked","team":"Player\/Last 5"},{"id":"270709578","odds":"9.500","name":"Joao Palhinha","name2":"2","header":"1st Card","team":"Player\/Last 5"},{"id":"270709559","odds":"9.500","name":"Rodrigo Bentancur","name2":"2","header":"1st Card","team":"Player\/Last 5"},{"id":"270709576","odds":"10.000","name":"Cristian Romero","name2":"2","header":"1st Card","team":"Player\/Last 5"},{"id":"270709597","odds":"13.000","name":"Igor Thiago","name2":"1","header":"1st Card","team":"Player\/Last 5"},{"id":"270709602","odds":"15.000","name":"Aaron Hickey","name2":"1","header":"1st Card","team":"Player\/Last 5"},{"id":"270709560","odds":"17.000","name":"Archie Gray","name2":"2","header":"1st Card","team":"Player\/Last 5"},{"id":"270709942","odds":"29.000","name":"Joao Palhinha","name2":"2","header":"Red Card","team":"Player\/Last 5"},{"id":"270709906","odds":"29.000","name":"Rodrigo Bentancur","name2":"2","header":"Red Card","team":"Player\/Last 5"},{"id":"270709924","odds":"34.000","name":"Cristian Romero","name2":"2","header":"Red Card","team":"Player\/Last 5"},{"id":"270709938","odds":"34.000","name":"Igor Thiago","name2":"1","header":"Red Card","team":"Player\/Last 5"},{"id":"270709844","odds":"41.000","name":"Aaron Hickey","name2":"1","header":"Red Card","team":"Player\/Last 5"},{"id":"270709834","odds":"41.000","name":"Archie Gray","name2":"2","header":"Red Card","team":"Player\/Last 5"}]},"either_to_be_booked":{"id":"177938","name":"Either to be Booked","odds":[],"open":0},"card_handicap":{"id":"10240","name":"Card Handicap","odds":[],"open":0},"alternative_card_handicap":{"id":"10241","name":"Alternative Card Handicap","odds":[],"open":0},"first_card_received":{"id":"476","name":"First Card Received","odds":[],"open":0},"time_of_first_card":{"id":"1183","name":"Time of First Card","odds":[],"open":0},"team_cards":{"id":"10242","name":"Team Cards","odds":[],"open":0},"red_card_in_match_half":{"id":"50241","name":"Red Card in Match\/Half","oLine truncated
|
||||
Reference in new issue
Block a user