add txodds markets as a resource

This commit is contained in:
salam committed 2026-01-13 07:29:08 +01:00
1 parent e14404ec8b
commit 5fa1d02dbd
26 files changed
+921 -55

No files matched your search

+1 -1
View File
@@ -42,7 +42,7 @@ class SupervisorMaker
$content .= 'autorestart=true'.PHP_EOL;
$file = $path.'/'.$process.'.ini';
if ($supervisor->is_active && ! $supervisor->is_cron) {
if ($supervisor->is_active && $supervisor->is_supervisor) {
file_put_contents($file, $content);
chmod($file, 0777);
} else {
+22 -18
View File
@@ -96,8 +96,6 @@ class Odds
*************************************************/
$debug = Nuh::$options['d'] ?? 0;
switch (Nuh::$options['sport_id']) {
case 1:
/**
@@ -149,6 +147,13 @@ class Odds
break;
}
/*************************************************
* use_lastcall
*************************************************/
if (Nuh::$options['use_lastcall']) {
$lastcall = Nuh::$options['lastcall'] ? '&last='.Nuh::$options['lastcall'] : '';
}
/*************************************************
* URL
*************************************************/
@@ -165,26 +170,15 @@ class Odds
Notice::note("BY ID \nsport_id: ".Nuh::$options['sport_id'], 'p');
}
/**
* by SINGLE ID
* by specific ID
*/
$_calls[] = $url."&ot=$markets&peid=".Nuh::$options['id'];
} elseif (Nuh::$options['a']) {
if ($debug) {
Notice::note("ALL \nsport_id: ".Nuh::$options['sport_id'], 'p');
}
/**
* ALL by ID
*/
$res = Event::where('sport_id', Nuh::$options['sport_id'])->where('starttime', '>', Carbon::now()->toDateTimeString())->pluck('id');
foreach ($res as $id) {
$_calls[] = $url."&ot=$markets&peid=".$id;
}
} elseif (Nuh::$options['g']) {
if ($debug) {
Notice::note("GROUP_ID \nsport_id: ".Nuh::$options['sport_id'], 'p');
}
/**
* PER GROUP_ID
* per group_id
* with from-to
*/
$groupids = Event::where('starttime', '>', Carbon::now()->toDateTimeString())->groupBy('group_id')->pluck('group_id');
@@ -197,7 +191,7 @@ class Odds
}
/**
* TODAY
* today
*/
$from = Carbon::now()->toDateTimeString();
$to = Carbon::now()->addDays(1)->toDateTimeString();
@@ -211,13 +205,23 @@ class Odds
Notice::note("WEEK \nsport_id: ".Nuh::$options['sport_id'], 'p');
}
/**
* ONE WEEK
* week from now
*/
$res = Event::where('sport_id', Nuh::$options['sport_id'])->where('starttime', '>', Carbon::now()->toDateTimeString())->where('starttime', '<', Carbon::now()->addDays(7)->toDateTimeString())->pluck('id');
foreach ($res as $id) {
$_calls[] = $url."&ot=$markets&peid=".$id;
}
} else {
if ($debug) {
Notice::note("ALL \nsport_id: ".Nuh::$options['sport_id'], 'p');
}
/**
* ALL by ID
*/
$res = Event::where('sport_id', Nuh::$options['sport_id'])->where('starttime', '>', Carbon::now()->toDateTimeString())->pluck('id');
foreach ($res as $id) {
$_calls[] = $url."&ot=$markets&peid=".$id;
}
if ($debug) {
Notice::note("LASTCALL \nsport_id: ".Nuh::$options['sport_id'], 'p');
}
@@ -226,7 +230,7 @@ class Odds
* with from-to days
*/
$_calls[] = $url.'&spid='.Nuh::$options['sport_id']."&ot=$markets&days=".Nuh::$options['days_from'].','.Nuh::$options['days_to'].'&last='.Nuh::$options['lastcall'];
$_calls[] = $url.'&spid='.Nuh::$options['sport_id']."&ot=$markets&days=".Nuh::$options['days_from'].','.Nuh::$options['days_to'].$lastcall;
}
/*************************************************
@@ -0,0 +1,18 @@
<?php
namespace App\Console\Commands\Maintenance;
use App\Console\Commands\Maintenance\Tasks\CallTxoddsMarkets;
use App\Console\Commands\Nuh;
class Services
{
public static function switch()
{
switch (Nuh::$options['name']) {
case 'Txodds Markets':
CallTxoddsMarkets::call();
break;
}
}
}
@@ -0,0 +1,34 @@
<?php
namespace App\Console\Commands\Maintenance\Tasks;
use App\Console\Commands\Nuh;
use App\Console\Commands\Xml;
use App\Models\TxoddsMarket;
use App\Utilities\Notice;
class CallTxoddsMarkets
{
public static function call()
{
$debug = Nuh::$options['d'] ?? 0;
if ($debug) {
Notice::note('TxoddsMarkets', 'b');
}
$url = 'https://xml2.txodds.com/feed/odds_types.php';
$data = Xml::load($url);
foreach ($data as $row) {
$market = [
'shortname' => $row->sname,
'name' => (string) $row->name,
];
TxoddsMarket::updateOrCreate(['market_id' => (int) $row->ot], $market);
}
}
}
+8 -3
View File
@@ -6,6 +6,8 @@ use App\Console\Commands\Grapper\Betsapi;
use App\Console\Commands\Grapper\Logifuture;
use App\Console\Commands\Grapper\Magloo;
use App\Console\Commands\Grapper\TxOdds;
use App\Console\Commands\Maintenance\Services;
use App\Console\Services\Service;
use App\Models\Supervisor;
use App\Utilities\Notice;
use App\Utilities\Supervisorctl;
@@ -24,7 +26,7 @@ class Nuh extends Command
public static $BETSAPI_TOKEN = '36152-aeTRNnZxSPUwGe';
protected $signature = 'nuh {process=help} {--id=0} {--f=} {--a} {--p} {--d} {--x} {--t} {--w} {--g} {--r} {--s} {--t} {--q}';
protected $signature = 'nuh {process=help} {--id=0} {--f=} {--p} {--d} {--x} {--t} {--w} {--g} {--r} {--s} {--t} {--q}';
protected $description = 'Nuh';
@@ -41,11 +43,10 @@ class Nuh extends Command
$txt .= '----------------------------------------------'.PHP_EOL;
$txt .= 'process [id] (required)'.PHP_EOL;
$txt .= '--id=matchid (optional) calling spezific id'.PHP_EOL;
$txt .= '--f=name (optional) [bookmaker_sport]'.PHP_EOL;
$txt .= '--f=name (optional) [bkms, markets]'.PHP_EOL;
$txt .= '----------------------------------------------'.PHP_EOL.PHP_EOL;
$txt .= 'Options'.PHP_EOL;
$txt .= '----------------------------------------------'.PHP_EOL;
$txt .= '--a reload all'.PHP_EOL;
$txt .= '--p use proxy'.PHP_EOL;
$txt .= '--d debug'.PHP_EOL;
$txt .= '--x generate supervisors'.PHP_EOL;
@@ -100,6 +101,10 @@ class Nuh extends Command
// LOGIFUTUR COLOMBIA
Logifuture::switch();
break;
case 7:
// SERVICE
Services::switch();
break;
default:
Notice::note('Provider not defined', 'r', 1);
break;
@@ -21,13 +21,13 @@ class SupervisorForm
->relationship('sport', 'name')
->nullable(),
TextInput::make('sleep')->default(15),
TextInput::make('sleep')->default(30),
TextInput::make('maxsconds')->label('Seconds till throwing an error')->default(1800),
Section::make('Run processes paralell for speed')
->description('Set start and end days if more processes grap the same data')
->schema([
TextInput::make('days_from')->columns(1),
TextInput::make('days_to')->columns(1),
TextInput::make('days_from')->columns(1)->default(0),
TextInput::make('days_to')->columns(1)->default(1),
])->columns(2)->columnSpanFull(),
]);
}
@@ -33,13 +33,6 @@ class SupervisorResource extends Resource
return SupervisorsTable::configure($table);
}
public static function getRelations(): array
{
return [
//
];
}
public static function getPages(): array
{
return [
@@ -34,14 +34,35 @@ class SupervisorsTable
default => 'warning',
}),
SelectColumn::make('name')
->options([
'Fixtures' => 'Fixtures',
'Odds' => 'Odds',
'Willhill' => 'Willhill',
'Bwin' => 'Bwin',
'Bet365' => 'Bet365',
'Betfair' => 'Betfair',
]),
->options(function ($record) {
switch ($record->provider_id) {
case 1:
case 3:
case 4:
case 5:
case 6:
return [
'Fixtures' => 'Fixtures',
'Odds' => 'Odds',
];
case 2:
return [
'Fixtures' => 'Fixtures',
'Odds' => 'Odds',
'Willhill' => 'Willhill',
'Bwin' => 'Bwin',
'Bet365' => 'Bet365',
'Betfair' => 'Betfair',
];
case 7:
return [
'Txodds Markets' => 'Txodds Markets',
];
default:
return [];
}
}),
TextColumn::make('sport.name')->label('Sport'),
TextColumn::make('days_from')->label('From'),
TextColumn::make('days_to')->label('To'),
@@ -50,9 +71,9 @@ class SupervisorsTable
TextInputColumn::make('commandline_options')->width('2rem'),
// TextColumn::make('maxsconds')->label('Max Time'),
// IconColumn::make('is_cron')->boolean()->label('Cron')->falseColor('gray'),
// IconColumn::make('is_supervisor')->boolean()->label('Cron')->falseColor('gray'),
ToggleColumn::make('use_lastcall')->label('Lastcall'),
ToggleColumn::make('is_cron')->label('Cron'),
ToggleColumn::make('is_supervisor')->label('Super')->tooltip('Create a supervisor process'),
ToggleColumn::make('is_active')->label('Active'),
])
->filters([
@@ -60,7 +81,7 @@ class SupervisorsTable
->default(1)
->relationship('provider', 'name')
->label('Provider'),
TernaryFilter::make('is_cron'),
TernaryFilter::make('is_supervisor'),
TernaryFilter::make('is_active'),
], layout: FiltersLayout::AboveContent)
->deferFilters(false)
@@ -0,0 +1,11 @@
<?php
namespace App\Filament\Resources\TxoddsMarkets\Pages;
use App\Filament\Resources\TxoddsMarkets\TxoddsMarketResource;
use Filament\Resources\Pages\CreateRecord;
class CreateTxoddsMarket extends CreateRecord
{
protected static string $resource = TxoddsMarketResource::class;
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\TxoddsMarkets\Pages;
use App\Filament\Resources\TxoddsMarkets\TxoddsMarketResource;
use Filament\Actions\DeleteAction;
use Filament\Resources\Pages\EditRecord;
class EditTxoddsMarket extends EditRecord
{
protected static string $resource = TxoddsMarketResource::class;
protected function getHeaderActions(): array
{
return [
DeleteAction::make(),
];
}
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\TxoddsMarkets\Pages;
use App\Filament\Resources\TxoddsMarkets\TxoddsMarketResource;
use Filament\Actions\CreateAction;
use Filament\Resources\Pages\ListRecords;
class ListTxoddsMarkets extends ListRecords
{
protected static string $resource = TxoddsMarketResource::class;
protected function getHeaderActions(): array
{
return [
CreateAction::make(),
];
}
}
@@ -0,0 +1,16 @@
<?php
namespace App\Filament\Resources\TxoddsMarkets\Schemas;
use Filament\Schemas\Schema;
class TxoddsMarketForm
{
public static function configure(Schema $schema): Schema
{
return $schema
->components([
//
]);
}
}
@@ -0,0 +1,55 @@
<?php
namespace App\Filament\Resources\TxoddsMarkets\Tables;
use Filament\Forms\Components\Select;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Columns\ToggleColumn;
use Filament\Tables\Enums\FiltersLayout;
use Filament\Tables\Filters\Filter;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
class TxoddsMarketsTable
{
public static function configure(Table $table): Table
{
return $table
->columns([
TextColumn::make('market_id')->badge()->searchable(),
TextColumn::make('name')->searchable(),
ToggleColumn::make('soccer')->toggleable(true),
ToggleColumn::make('ice_hockey')->toggleable(true),
ToggleColumn::make('basketball')->toggleable(true),
ToggleColumn::make('tennis')->toggleable(true),
])
->filters([
Filter::make('sport_market')
->schema([
Select::make(name: 'sport_market')
->placeholder('Filter Sport')
->hiddenLabel()
->label('')
->preload()
->options(function () {
return [
'soccer' => 'Soccer',
'ice_hockey' => 'Ice Hockey',
'basketball' => 'Basketball',
'tennis' => 'Tennis',
];
})
->live(),
])
->query(function (Builder $query, array $data): Builder {
return $query
->when(
$data['sport_market'],
fn (Builder $query, $sport_market) => $query->where($sport_market, 1)
);
}),
], layout: FiltersLayout::AboveContent)
->deferColumnManager(false)
->deferFilters(false);
}
}
@@ -0,0 +1,48 @@
<?php
namespace App\Filament\Resources\TxoddsMarkets;
use App\Filament\Clusters\Administrator\AdministratorCluster;
use App\Filament\Resources\TxoddsMarkets\Pages\ListTxoddsMarkets;
use App\Filament\Resources\TxoddsMarkets\Schemas\TxoddsMarketForm;
use App\Filament\Resources\TxoddsMarkets\Tables\TxoddsMarketsTable;
use App\Models\TxoddsMarket;
use Filament\Resources\Resource;
use Filament\Schemas\Schema;
use Filament\Tables\Table;
use UnitEnum;
class TxoddsMarketResource extends Resource
{
protected static ?string $model = TxoddsMarket::class;
protected static string|\BackedEnum|null $navigationIcon = 'phosphor-storefront';
protected static ?string $cluster = AdministratorCluster::class;
protected static ?int $navigationSort = 24;
protected static string|UnitEnum|null $navigationGroup = 'Grapper';
public static function form(Schema $schema): Schema
{
return TxoddsMarketForm::configure($schema);
}
public static function table(Table $table): Table
{
return TxoddsMarketsTable::configure($table);
}
public static function getPages(): array
{
return [
'index' => ListTxoddsMarkets::route('/'),
];
}
public static function getNavigationBadge(): ?string
{
return parent::getEloquentQuery()->count();
}
}
+1 -1
View File
@@ -16,7 +16,7 @@ class Supervisor extends Model
'commandline_options',
'maxsconds',
'lastcall',
'is_cron',
'is_supervisor',
'is_active',
'days_from',
'days_to',
+18
View File
@@ -0,0 +1,18 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class TxoddsMarket extends Model
{
protected $fillable = [
'market_id',
'shortname',
'name',
'soccer',
'ice_hockey',
'basketball',
'tennis',
];
}
+1 -1
View File
@@ -46,7 +46,7 @@ class Supervisorctl
if (! $debug) {
sleep($options['sleep']);
} else {
if ($options['is_cron']) {
if ($options['is_supervisor']) {
Notice::note('cron process timings set in crontab', 'b');
} else {
Notice::note('in production process sleeps for '.$options['sleep'].'sec', 'b');
Generated
+4 -4
View File
@@ -9133,12 +9133,12 @@
"version": "v3.16.3",
"source": {
"type": "git",
"url": "https://github.com/barryvdh/laravel-debugbar.git",
"url": "https://github.com/fruitcake/laravel-debugbar.git",
"reference": "c91e57ea113edd6526f5b8cd6b1c6ee02c67b28e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/c91e57ea113edd6526f5b8cd6b1c6ee02c67b28e",
"url": "https://api.github.com/repos/fruitcake/laravel-debugbar/zipball/c91e57ea113edd6526f5b8cd6b1c6ee02c67b28e",
"reference": "c91e57ea113edd6526f5b8cd6b1c6ee02c67b28e",
"shasum": ""
},
@@ -9198,8 +9198,8 @@
"webprofiler"
],
"support": {
"issues": "https://github.com/barryvdh/laravel-debugbar/issues",
"source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.16.3"
"issues": "https://github.com/fruitcake/laravel-debugbar/issues",
"source": "https://github.com/fruitcake/laravel-debugbar/tree/v3.16.3"
},
"funding": [
{
@@ -25,6 +25,7 @@ return new class extends Migration
$table->text('app_authentication_secret')->nullable();
$table->text('app_authentication_recovery_codes')->nullable();
$table->boolean('has_email_authentication')->default(false);
$table->boolean('stars_status')->default(false);
$table->timestamp('app_verified_at')->nullable();
$table->rememberToken();
@@ -15,9 +15,9 @@ return new class extends Migration
$table->id();
$table->string('name');
$table->integer('provider_id')->default(0)->nullable()->references('id')->on('providers');
$table->integer('sport_id')->references('id')->on('sports');
$table->integer('sport_id')->references('id')->on('sports')->nullable();
$table->integer('sleep')->default(10);
$table->integer('sleep')->default(30);
$table->integer('limit')->default(0);
$table->string('runtime')->nullable();
@@ -26,11 +26,11 @@ return new class extends Migration
$table->integer('lastcall')->default(0);
$table->boolean('use_lastcall')->default(0);
$table->boolean('is_cron')->default(0);
$table->boolean('is_supervisor')->default(0);
$table->boolean('is_active')->default(0);
$table->integer('days_from')->default(10);
$table->integer('days_to')->default(10);
$table->integer('days_from')->default(10)->nullable();
$table->integer('days_to')->default(10)->nullable();
$table->timestamps();
});
@@ -0,0 +1,30 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('event_user_stars', function (Blueprint $table) {
$table->id();
$table->foreignId('event_id')->index()->constrained()->cascadeOnDelete()->references('id')->on('events');
$table->integer('user_id')->index()->references('id')->on('users');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('event_user_stars');
}
};
@@ -0,0 +1,34 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('txodds_markets', function (Blueprint $table) {
$table->id();
$table->integer('market_id')->nullable();
$table->string('shortname');
$table->string('name');
$table->boolean(column: 'soccer')->default(0);
$table->boolean(column: 'ice_hockey')->default(0);
$table->boolean(column: 'basketball')->default(0);
$table->boolean(column: 'tennis')->default(0);
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('txodds_markets');
}
};
+1
View File
@@ -21,6 +21,7 @@ class DatabaseSeeder extends Seeder
SupervisorSeeder::class,
BettypeSeeder::class,
MultilineSettingSeeder::class,
TxoddsMarketsSeeder::class,
]);
}
}
+1 -1
View File
@@ -12,7 +12,7 @@ class SupervisorSeeder extends Seeder
/**
* Supervisor
*/
$sql = "INSERT INTO `supervisors` (`id`, `name`, `provider_id`, `sport_id`, `sleep`, `limit`, `runtime`, `maxsconds`, `lastcall`, `is_cron`, `is_active`, `days_from`, `days_to`, `created_at`, `updated_at`)
$sql = "INSERT INTO `supervisors` (`id`, `name`, `provider_id`, `sport_id`, `sleep`, `limit`, `runtime`, `maxsconds`, `lastcall`, `is_supervisor`, `is_active`, `days_from`, `days_to`, `created_at`, `updated_at`)
VALUES
(1, 'Fixtures', 1, 1, 10, 0, '0.129', 1800, 0, 1, 1, 0, 0, '2025-08-27 07:39:55', '2026-01-09 08:15:55'),
(2, 'Odds', 1, 1, 10, 0, '0.251', 30, 0, 0, 1, 0, 10, '2025-12-01 05:41:02', '2026-01-08 17:56:27'),
+106
View File
@@ -0,0 +1,106 @@
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class TxoddsMarketsSeeder extends Seeder
{
public function run(): void
{
/**
* Supervisor
*/
$sql = "INSERT INTO `txodds_markets` (`id`, `market_id`, `shortname`, `name`, `soccer`, `ice_hockey`, `basketball`, `tennis`, `created_at`, `updated_at`)
VALUES
(1, 0, '1x2', 'three way', 1, 1, 0, 0, '2026-01-13 06:20:33', '2026-01-13 07:20:35'),
(2, 1, 'ml', 'money line', 0, 1, 1, 1, '2026-01-13 06:20:33', '2026-01-13 07:22:08'),
(3, 3, 'pts', 'points', 0, 1, 1, 1, '2026-01-13 06:20:33', '2026-01-13 07:22:11'),
(4, 4, 'tot', 'totals', 1, 1, 1, 1, '2026-01-13 06:20:33', '2026-01-13 07:22:12'),
(5, 5, 'ah', 'asian handicap', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(6, 65536, '3wht', 'three way - ht', 1, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 07:17:47'),
(7, 65537, '2wht', 'money line - ht', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(8, 65539, 'ptsht', 'spread - ht', 0, 1, 1, 0, '2026-01-13 06:20:33', '2026-01-13 07:21:51'),
(9, 65540, 'totht', 'totals - ht', 1, 1, 1, 0, '2026-01-13 06:20:33', '2026-01-13 07:21:56'),
(10, 65541, 'ahht', 'asian handicap - ht', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(11, 131072, '3wq1', 'three way - q1', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(12, 131073, 'mlq1', 'money line - q1', 0, 0, 0, 1, '2026-01-13 06:20:33', '2026-01-13 07:22:19'),
(13, 131075, 'ptsq1', 'points - q1', 0, 1, 1, 0, '2026-01-13 06:20:33', '2026-01-13 07:21:39'),
(14, 131076, 'totq1', 'totals - q1', 0, 1, 1, 0, '2026-01-13 06:20:33', '2026-01-13 07:21:45'),
(15, 196608, '3wq3', 'three way - q3', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(16, 196609, 'mlq3', 'money line - q3', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(17, 196611, 'ptsq3', 'points - q3', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(18, 196612, 'totq3', 'totals - q3', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(19, 262147, 'ptset', 'points - et', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(20, 262148, 'totet', 'totals - et', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(21, 327680, '3w2hf', 'three way - 2nd hf', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(22, 327681, 'ml2hf', 'money line - 2nd hf', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(23, 327683, 'pts2hf', 'points - 2nd hf', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(24, 327684, 'tot2hf', 'totals - 2nd hf', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(25, 327685, 'ah2hf', 'asian handicap - 2nd hf', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(26, 393216, '3wq2', 'three way - q2', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(27, 393217, 'mlq2', 'money line - q2', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(28, 393219, 'ptsq2', 'points - q2', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(29, 393220, 'totq2', 'totals - q2', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(30, 458752, '3wq4', 'three way - q4', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(31, 458753, 'mlq4', 'money line - q4', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(32, 458755, 'ptsq4', 'points - q4', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(33, 458756, 'totq4', 'totals - q4', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(34, 524288, '3w1o', 'three way - 1st over', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(35, 524292, 'tot1o', 'totals - 1st over', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(36, 655361, 'mlrt', 'moneyline - rt', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(37, 1048577, 'g/ng', 'goal/nogoal', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(38, 2097153, 'od/ev', 'odd/even', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(39, 2162689, 'od/evht', 'odd/even - ht', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(40, 2424833, 'od/ev2h', 'odd/even - 2nd hf', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(41, 4194304, 'tg', 'total goals (0-2/3/4+)', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(42, 5242880, 'dc', 'double chance (1x/x2/12)', 1, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 07:18:30'),
(43, 5308416, 'dcht', 'double chance (1x/x2/12) - ht', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(44, 5373952, 'dcq1', 'double chance (1x/x2/12) - q1', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(45, 5439488, 'dcq3', 'double chance (1x/x2/12) - q3', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(46, 5570560, 'dc2h', 'double chance (1x/x2/12) - 2nd h', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(47, 5636096, 'dcq2', 'double chance (1x/x2/12) - q2', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(48, 6291457, 'dnb', 'draw no bet', 1, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 07:18:44'),
(49, 6356993, 'dnbht', 'draw no bet - ht', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(50, 6619137, 'dnb2h', 'draw no bet - 2nd hf', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(51, 7340033, 'toprog', 'to progress', 1, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 07:18:37'),
(52, 8388608, '1x2hc', 'three way handicap (h:g)', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(53, 8454144, '1x2hcht', 'three way handicap (h:g) - ht', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(54, 8716288, '1x2hc2hf', 'three way handicap (h:g) - 2nd h', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(55, 9437188, 'totcor', 'total corners', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(56, 9502724, 'totcor1fh', 'total corners - ht', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(57, 9699332, 'totcoret', 'total corners - extra time', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(58, 10027012, 'totcor10min', 'total corners - 1st 10 mins', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(59, 10485761, 'gtd', 'to go the distance', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(60, 11534337, 'btts', 'both teams to score', 1, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 07:18:24'),
(61, 11599873, 'bttsht', 'both teams to score - ht', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(62, 11862017, 'btts2hf', 'both teams to score - 2nd hf', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(63, 12582912, 'hwmg', 'half with more goals', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(64, 13631489, 'wbh', 'win both halves', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(65, 14680065, 'wtt', 'win the toss', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(66, 15728644, 'totsix', 'total sixes', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(67, 16777220, 'totro', 'total runouts', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(68, 17825792, 'm180', 'most 180s', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(69, 18874369, '170f', '170 finish', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(70, 19922945, '9df', '9 dart finish', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(71, 20971520, '1x2cor', 'three way corners', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(72, 21037056, '1x2corht', 'three way corners - ht', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(73, 22020099, 'ptscor', 'handicap corners', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(74, 22085635, 'ptscorht', 'handicap corners - ht', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(75, 23068673, 'od/evcor', 'odd/even corners', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(76, 23134209, 'od/evcorht', 'odd/even corners - ht', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(77, 24117249, 'nextcor', 'next corner', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(78, 25165825, 'lastcor', 'last corner', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(79, 26214401, '1stcor', 'first corner', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(80, 27262976, '1stcor1x2', 'first corner threeway', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(81, 28311555, 'ptsset', 'handicap sets', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(82, 28311556, 'totset', 'total sets', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(83, 29360129, 'wtbo', 'will there be overtime', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(84, 30408705, 'wtn', 'win to nil', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(85, 31457284, 'tothome', 'totals home', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35'),
(86, 32505860, 'totaway', 'totals away', 0, 0, 0, 0, '2026-01-13 06:20:33', '2026-01-13 06:41:35');
";
DB::unprepared($sql);
}
}
+433
View File
@@ -0,0 +1,433 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<types>
<type>
<ot>0</ot>
<sname>1x2</sname>
<name>three way</name>
</type>
<type>
<ot>1</ot>
<sname>ml</sname>
<name>money line</name>
</type>
<type>
<ot>3</ot>
<sname>pts</sname>
<name>points</name>
</type>
<type>
<ot>4</ot>
<sname>tot</sname>
<name>totals</name>
</type>
<type>
<ot>5</ot>
<sname>ah</sname>
<name>asian handicap</name>
</type>
<type>
<ot>65536</ot>
<sname>3wht</sname>
<name>three way - ht</name>
</type>
<type>
<ot>65537</ot>
<sname>2wht</sname>
<name>money line - ht</name>
</type>
<type>
<ot>65539</ot>
<sname>ptsht</sname>
<name>spread - ht</name>
</type>
<type>
<ot>65540</ot>
<sname>totht</sname>
<name>totals - ht</name>
</type>
<type>
<ot>65541</ot>
<sname>ahht</sname>
<name>asian handicap - ht</name>
</type>
<type>
<ot>131072</ot>
<sname>3wq1</sname>
<name>three way - q1</name>
</type>
<type>
<ot>131073</ot>
<sname>mlq1</sname>
<name>money line - q1</name>
</type>
<type>
<ot>131075</ot>
<sname>ptsq1</sname>
<name>points - q1</name>
</type>
<type>
<ot>131076</ot>
<sname>totq1</sname>
<name>totals - q1</name>
</type>
<type>
<ot>196608</ot>
<sname>3wq3</sname>
<name>three way - q3</name>
</type>
<type>
<ot>196609</ot>
<sname>mlq3</sname>
<name>money line - q3</name>
</type>
<type>
<ot>196611</ot>
<sname>ptsq3</sname>
<name>points - q3</name>
</type>
<type>
<ot>196612</ot>
<sname>totq3</sname>
<name>totals - q3</name>
</type>
<type>
<ot>262147</ot>
<sname>ptset</sname>
<name>points - et</name>
</type>
<type>
<ot>262148</ot>
<sname>totet</sname>
<name>totals - et</name>
</type>
<type>
<ot>327680</ot>
<sname>3w2hf</sname>
<name>three way - 2nd hf</name>
</type>
<type>
<ot>327681</ot>
<sname>ml2hf</sname>
<name>money line - 2nd hf</name>
</type>
<type>
<ot>327683</ot>
<sname>pts2hf</sname>
<name>points - 2nd hf</name>
</type>
<type>
<ot>327684</ot>
<sname>tot2hf</sname>
<name>totals - 2nd hf</name>
</type>
<type>
<ot>327685</ot>
<sname>ah2hf</sname>
<name>asian handicap - 2nd hf</name>
</type>
<type>
<ot>393216</ot>
<sname>3wq2</sname>
<name>three way - q2</name>
</type>
<type>
<ot>393217</ot>
<sname>mlq2</sname>
<name>money line - q2</name>
</type>
<type>
<ot>393219</ot>
<sname>ptsq2</sname>
<name>points - q2</name>
</type>
<type>
<ot>393220</ot>
<sname>totq2</sname>
<name>totals - q2</name>
</type>
<type>
<ot>458752</ot>
<sname>3wq4</sname>
<name>three way - q4</name>
</type>
<type>
<ot>458753</ot>
<sname>mlq4</sname>
<name>money line - q4</name>
</type>
<type>
<ot>458755</ot>
<sname>ptsq4</sname>
<name>points - q4</name>
</type>
<type>
<ot>458756</ot>
<sname>totq4</sname>
<name>totals - q4</name>
</type>
<type>
<ot>524288</ot>
<sname>3w1o</sname>
<name>three way - 1st over</name>
</type>
<type>
<ot>524292</ot>
<sname>tot1o</sname>
<name>totals - 1st over</name>
</type>
<type>
<ot>655361</ot>
<sname>mlrt</sname>
<name>moneyline - rt</name>
</type>
<type>
<ot>1048577</ot>
<sname>g/ng</sname>
<name>goal/nogoal</name>
</type>
<type>
<ot>2097153</ot>
<sname>od/ev</sname>
<name>odd/even</name>
</type>
<type>
<ot>2162689</ot>
<sname>od/evht</sname>
<name>odd/even - ht</name>
</type>
<type>
<ot>2424833</ot>
<sname>od/ev2h</sname>
<name>odd/even - 2nd hf</name>
</type>
<type>
<ot>4194304</ot>
<sname>tg</sname>
<name>total goals (0-2/3/4+)</name>
</type>
<type>
<ot>5242880</ot>
<sname>dc</sname>
<name>double chance (1x/x2/12)</name>
</type>
<type>
<ot>5308416</ot>
<sname>dcht</sname>
<name>double chance (1x/x2/12) - ht</name>
</type>
<type>
<ot>5373952</ot>
<sname>dcq1</sname>
<name>double chance (1x/x2/12) - q1</name>
</type>
<type>
<ot>5439488</ot>
<sname>dcq3</sname>
<name>double chance (1x/x2/12) - q3</name>
</type>
<type>
<ot>5570560</ot>
<sname>dc2h</sname>
<name>double chance (1x/x2/12) - 2nd h</name>
</type>
<type>
<ot>5636096</ot>
<sname>dcq2</sname>
<name>double chance (1x/x2/12) - q2</name>
</type>
<type>
<ot>6291457</ot>
<sname>dnb</sname>
<name>draw no bet</name>
</type>
<type>
<ot>6356993</ot>
<sname>dnbht</sname>
<name>draw no bet - ht</name>
</type>
<type>
<ot>6619137</ot>
<sname>dnb2h</sname>
<name>draw no bet - 2nd hf</name>
</type>
<type>
<ot>7340033</ot>
<sname>toprog</sname>
<name>to progress</name>
</type>
<type>
<ot>8388608</ot>
<sname>1x2hc</sname>
<name>three way handicap (h:g)</name>
</type>
<type>
<ot>8454144</ot>
<sname>1x2hcht</sname>
<name>three way handicap (h:g) - ht</name>
</type>
<type>
<ot>8716288</ot>
<sname>1x2hc2hf</sname>
<name>three way handicap (h:g) - 2nd h</name>
</type>
<type>
<ot>9437188</ot>
<sname>totcor</sname>
<name>total corners</name>
</type>
<type>
<ot>9502724</ot>
<sname>totcor1fh</sname>
<name>total corners - ht</name>
</type>
<type>
<ot>9699332</ot>
<sname>totcoret</sname>
<name>total corners - extra time</name>
</type>
<type>
<ot>10027012</ot>
<sname>totcor10min</sname>
<name>total corners - 1st 10 mins</name>
</type>
<type>
<ot>10485761</ot>
<sname>gtd</sname>
<name>to go the distance</name>
</type>
<type>
<ot>11534337</ot>
<sname>btts</sname>
<name>both teams to score</name>
</type>
<type>
<ot>11599873</ot>
<sname>bttsht</sname>
<name>both teams to score - ht</name>
</type>
<type>
<ot>11862017</ot>
<sname>btts2hf</sname>
<name>both teams to score - 2nd hf</name>
</type>
<type>
<ot>12582912</ot>
<sname>hwmg</sname>
<name>half with more goals</name>
</type>
<type>
<ot>13631489</ot>
<sname>wbh</sname>
<name>win both halves</name>
</type>
<type>
<ot>14680065</ot>
<sname>wtt</sname>
<name>win the toss</name>
</type>
<type>
<ot>15728644</ot>
<sname>totsix</sname>
<name>total sixes</name>
</type>
<type>
<ot>16777220</ot>
<sname>totro</sname>
<name>total runouts</name>
</type>
<type>
<ot>17825792</ot>
<sname>m180</sname>
<name>most 180s</name>
</type>
<type>
<ot>18874369</ot>
<sname>170f</sname>
<name>170 finish</name>
</type>
<type>
<ot>19922945</ot>
<sname>9df</sname>
<name>9 dart finish</name>
</type>
<type>
<ot>20971520</ot>
<sname>1x2cor</sname>
<name>three way corners</name>
</type>
<type>
<ot>21037056</ot>
<sname>1x2corht</sname>
<name>three way corners - ht</name>
</type>
<type>
<ot>22020099</ot>
<sname>ptscor</sname>
<name>handicap corners</name>
</type>
<type>
<ot>22085635</ot>
<sname>ptscorht</sname>
<name>handicap corners - ht</name>
</type>
<type>
<ot>23068673</ot>
<sname>od/evcor</sname>
<name>odd/even corners</name>
</type>
<type>
<ot>23134209</ot>
<sname>od/evcorht</sname>
<name>odd/even corners - ht</name>
</type>
<type>
<ot>24117249</ot>
<sname>nextcor</sname>
<name>next corner</name>
</type>
<type>
<ot>25165825</ot>
<sname>lastcor</sname>
<name>last corner</name>
</type>
<type>
<ot>26214401</ot>
<sname>1stcor</sname>
<name>first corner</name>
</type>
<type>
<ot>27262976</ot>
<sname>1stcor1x2</sname>
<name>first corner threeway</name>
</type>
<type>
<ot>28311555</ot>
<sname>ptsset</sname>
<name>handicap sets</name>
</type>
<type>
<ot>28311556</ot>
<sname>totset</sname>
<name>total sets</name>
</type>
<type>
<ot>29360129</ot>
<sname>wtbo</sname>
<name>will there be overtime</name>
</type>
<type>
<ot>30408705</ot>
<sname>wtn</sname>
<name>win to nil</name>
</type>
<type>
<ot>31457284</ot>
<sname>tothome</sname>
<name>totals home</name>
</type>
<type>
<ot>32505860</ot>
<sname>totaway</sname>
<name>totals away</name>
</type>
</types>