From 5fa1d02dbd213d9b0e9afb1e67f2312cd0ce979c Mon Sep 17 00:00:00 2001 From: salam Date: Tue, 13 Jan 2026 07:29:08 +0100 Subject: [PATCH] add txodds markets as a resource --- app/Actions/SupervisorMaker.php | 2 +- app/Console/Commands/Grapper/TxOdds/Odds.php | 40 +- app/Console/Commands/Maintenance/Services.php | 18 + .../Maintenance/Tasks/CallTxoddsMarkets.php | 34 ++ app/Console/Commands/Nuh.php | 11 +- .../Supervisors/Schemas/SupervisorForm.php | 6 +- .../Supervisors/SupervisorResource.php | 7 - .../Supervisors/Tables/SupervisorsTable.php | 43 +- .../Pages/CreateTxoddsMarket.php | 11 + .../TxoddsMarkets/Pages/EditTxoddsMarket.php | 19 + .../TxoddsMarkets/Pages/ListTxoddsMarkets.php | 19 + .../Schemas/TxoddsMarketForm.php | 16 + .../Tables/TxoddsMarketsTable.php | 55 +++ .../TxoddsMarkets/TxoddsMarketResource.php | 48 ++ app/Models/Supervisor.php | 2 +- app/Models/TxoddsMarket.php | 18 + app/Utilities/Supervisorctl.php | 2 +- composer.lock | 8 +- .../0001_01_01_000000_create_users_table.php | 1 + ...3_08_06_085243_create_supervisor_table.php | 10 +- .../2026_01_13_041735_event_user_star.php | 30 ++ ..._13_052504_create_txodds_markets_table.php | 34 ++ database/seeders/DatabaseSeeder.php | 1 + database/seeders/SupervisorSeeder.php | 2 +- database/seeders/TxoddsMarketsSeeder.php | 106 +++++ odds_types.php.xml | 433 ++++++++++++++++++ 26 files changed, 921 insertions(+), 55 deletions(-) create mode 100644 app/Console/Commands/Maintenance/Services.php create mode 100644 app/Console/Commands/Maintenance/Tasks/CallTxoddsMarkets.php create mode 100644 app/Filament/Resources/TxoddsMarkets/Pages/CreateTxoddsMarket.php create mode 100644 app/Filament/Resources/TxoddsMarkets/Pages/EditTxoddsMarket.php create mode 100644 app/Filament/Resources/TxoddsMarkets/Pages/ListTxoddsMarkets.php create mode 100644 app/Filament/Resources/TxoddsMarkets/Schemas/TxoddsMarketForm.php create mode 100644 app/Filament/Resources/TxoddsMarkets/Tables/TxoddsMarketsTable.php create mode 100644 app/Filament/Resources/TxoddsMarkets/TxoddsMarketResource.php create mode 100644 app/Models/TxoddsMarket.php create mode 100644 database/migrations/2026_01_13_041735_event_user_star.php create mode 100644 database/migrations/2026_01_13_052504_create_txodds_markets_table.php create mode 100644 database/seeders/TxoddsMarketsSeeder.php create mode 100644 odds_types.php.xml diff --git a/app/Actions/SupervisorMaker.php b/app/Actions/SupervisorMaker.php index 24cf31c0..2cf88fb7 100644 --- a/app/Actions/SupervisorMaker.php +++ b/app/Actions/SupervisorMaker.php @@ -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 { diff --git a/app/Console/Commands/Grapper/TxOdds/Odds.php b/app/Console/Commands/Grapper/TxOdds/Odds.php index 62b6341e..a550eb90 100644 --- a/app/Console/Commands/Grapper/TxOdds/Odds.php +++ b/app/Console/Commands/Grapper/TxOdds/Odds.php @@ -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; } /************************************************* diff --git a/app/Console/Commands/Maintenance/Services.php b/app/Console/Commands/Maintenance/Services.php new file mode 100644 index 00000000..a50fa332 --- /dev/null +++ b/app/Console/Commands/Maintenance/Services.php @@ -0,0 +1,18 @@ + $row->sname, + 'name' => (string) $row->name, + ]; + + TxoddsMarket::updateOrCreate(['market_id' => (int) $row->ot], $market); + } + } +} diff --git a/app/Console/Commands/Nuh.php b/app/Console/Commands/Nuh.php index d6378213..5232d298 100644 --- a/app/Console/Commands/Nuh.php +++ b/app/Console/Commands/Nuh.php @@ -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; diff --git a/app/Filament/Resources/Supervisors/Schemas/SupervisorForm.php b/app/Filament/Resources/Supervisors/Schemas/SupervisorForm.php index f9b6a8a0..3c83a72a 100644 --- a/app/Filament/Resources/Supervisors/Schemas/SupervisorForm.php +++ b/app/Filament/Resources/Supervisors/Schemas/SupervisorForm.php @@ -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(), ]); } diff --git a/app/Filament/Resources/Supervisors/SupervisorResource.php b/app/Filament/Resources/Supervisors/SupervisorResource.php index f40af548..a5d75ced 100644 --- a/app/Filament/Resources/Supervisors/SupervisorResource.php +++ b/app/Filament/Resources/Supervisors/SupervisorResource.php @@ -33,13 +33,6 @@ class SupervisorResource extends Resource return SupervisorsTable::configure($table); } - public static function getRelations(): array - { - return [ - // - ]; - } - public static function getPages(): array { return [ diff --git a/app/Filament/Resources/Supervisors/Tables/SupervisorsTable.php b/app/Filament/Resources/Supervisors/Tables/SupervisorsTable.php index 5116dbe9..55c848ff 100644 --- a/app/Filament/Resources/Supervisors/Tables/SupervisorsTable.php +++ b/app/Filament/Resources/Supervisors/Tables/SupervisorsTable.php @@ -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) diff --git a/app/Filament/Resources/TxoddsMarkets/Pages/CreateTxoddsMarket.php b/app/Filament/Resources/TxoddsMarkets/Pages/CreateTxoddsMarket.php new file mode 100644 index 00000000..64165ce4 --- /dev/null +++ b/app/Filament/Resources/TxoddsMarkets/Pages/CreateTxoddsMarket.php @@ -0,0 +1,11 @@ +components([ + // + ]); + } +} diff --git a/app/Filament/Resources/TxoddsMarkets/Tables/TxoddsMarketsTable.php b/app/Filament/Resources/TxoddsMarkets/Tables/TxoddsMarketsTable.php new file mode 100644 index 00000000..25a00dd8 --- /dev/null +++ b/app/Filament/Resources/TxoddsMarkets/Tables/TxoddsMarketsTable.php @@ -0,0 +1,55 @@ +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); + } +} diff --git a/app/Filament/Resources/TxoddsMarkets/TxoddsMarketResource.php b/app/Filament/Resources/TxoddsMarkets/TxoddsMarketResource.php new file mode 100644 index 00000000..64fd2696 --- /dev/null +++ b/app/Filament/Resources/TxoddsMarkets/TxoddsMarketResource.php @@ -0,0 +1,48 @@ + ListTxoddsMarkets::route('/'), + ]; + } + + public static function getNavigationBadge(): ?string + { + return parent::getEloquentQuery()->count(); + } +} diff --git a/app/Models/Supervisor.php b/app/Models/Supervisor.php index fc2fd9d6..fca61203 100644 --- a/app/Models/Supervisor.php +++ b/app/Models/Supervisor.php @@ -16,7 +16,7 @@ class Supervisor extends Model 'commandline_options', 'maxsconds', 'lastcall', - 'is_cron', + 'is_supervisor', 'is_active', 'days_from', 'days_to', diff --git a/app/Models/TxoddsMarket.php b/app/Models/TxoddsMarket.php new file mode 100644 index 00000000..1e1adf3b --- /dev/null +++ b/app/Models/TxoddsMarket.php @@ -0,0 +1,18 @@ +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(); diff --git a/database/migrations/2023_08_06_085243_create_supervisor_table.php b/database/migrations/2023_08_06_085243_create_supervisor_table.php index d3ad09b8..1a7e979c 100644 --- a/database/migrations/2023_08_06_085243_create_supervisor_table.php +++ b/database/migrations/2023_08_06_085243_create_supervisor_table.php @@ -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(); }); diff --git a/database/migrations/2026_01_13_041735_event_user_star.php b/database/migrations/2026_01_13_041735_event_user_star.php new file mode 100644 index 00000000..608fc360 --- /dev/null +++ b/database/migrations/2026_01_13_041735_event_user_star.php @@ -0,0 +1,30 @@ +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'); + + } +}; diff --git a/database/migrations/2026_01_13_052504_create_txodds_markets_table.php b/database/migrations/2026_01_13_052504_create_txodds_markets_table.php new file mode 100644 index 00000000..04373f21 --- /dev/null +++ b/database/migrations/2026_01_13_052504_create_txodds_markets_table.php @@ -0,0 +1,34 @@ +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'); + } +}; diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index 34940d6f..1deef5ad 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -21,6 +21,7 @@ class DatabaseSeeder extends Seeder SupervisorSeeder::class, BettypeSeeder::class, MultilineSettingSeeder::class, + TxoddsMarketsSeeder::class, ]); } } diff --git a/database/seeders/SupervisorSeeder.php b/database/seeders/SupervisorSeeder.php index 7148ffca..5acca290 100644 --- a/database/seeders/SupervisorSeeder.php +++ b/database/seeders/SupervisorSeeder.php @@ -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'), diff --git a/database/seeders/TxoddsMarketsSeeder.php b/database/seeders/TxoddsMarketsSeeder.php new file mode 100644 index 00000000..3eb31650 --- /dev/null +++ b/database/seeders/TxoddsMarketsSeeder.php @@ -0,0 +1,106 @@ + + + + 0 + 1x2 + three way + + + 1 + ml + money line + + + 3 + pts + points + + + 4 + tot + totals + + + 5 + ah + asian handicap + + + 65536 + 3wht + three way - ht + + + 65537 + 2wht + money line - ht + + + 65539 + ptsht + spread - ht + + + 65540 + totht + totals - ht + + + 65541 + ahht + asian handicap - ht + + + 131072 + 3wq1 + three way - q1 + + + 131073 + mlq1 + money line - q1 + + + 131075 + ptsq1 + points - q1 + + + 131076 + totq1 + totals - q1 + + + 196608 + 3wq3 + three way - q3 + + + 196609 + mlq3 + money line - q3 + + + 196611 + ptsq3 + points - q3 + + + 196612 + totq3 + totals - q3 + + + 262147 + ptset + points - et + + + 262148 + totet + totals - et + + + 327680 + 3w2hf + three way - 2nd hf + + + 327681 + ml2hf + money line - 2nd hf + + + 327683 + pts2hf + points - 2nd hf + + + 327684 + tot2hf + totals - 2nd hf + + + 327685 + ah2hf + asian handicap - 2nd hf + + + 393216 + 3wq2 + three way - q2 + + + 393217 + mlq2 + money line - q2 + + + 393219 + ptsq2 + points - q2 + + + 393220 + totq2 + totals - q2 + + + 458752 + 3wq4 + three way - q4 + + + 458753 + mlq4 + money line - q4 + + + 458755 + ptsq4 + points - q4 + + + 458756 + totq4 + totals - q4 + + + 524288 + 3w1o + three way - 1st over + + + 524292 + tot1o + totals - 1st over + + + 655361 + mlrt + moneyline - rt + + + 1048577 + g/ng + goal/nogoal + + + 2097153 + od/ev + odd/even + + + 2162689 + od/evht + odd/even - ht + + + 2424833 + od/ev2h + odd/even - 2nd hf + + + 4194304 + tg + total goals (0-2/3/4+) + + + 5242880 + dc + double chance (1x/x2/12) + + + 5308416 + dcht + double chance (1x/x2/12) - ht + + + 5373952 + dcq1 + double chance (1x/x2/12) - q1 + + + 5439488 + dcq3 + double chance (1x/x2/12) - q3 + + + 5570560 + dc2h + double chance (1x/x2/12) - 2nd h + + + 5636096 + dcq2 + double chance (1x/x2/12) - q2 + + + 6291457 + dnb + draw no bet + + + 6356993 + dnbht + draw no bet - ht + + + 6619137 + dnb2h + draw no bet - 2nd hf + + + 7340033 + toprog + to progress + + + 8388608 + 1x2hc + three way handicap (h:g) + + + 8454144 + 1x2hcht + three way handicap (h:g) - ht + + + 8716288 + 1x2hc2hf + three way handicap (h:g) - 2nd h + + + 9437188 + totcor + total corners + + + 9502724 + totcor1fh + total corners - ht + + + 9699332 + totcoret + total corners - extra time + + + 10027012 + totcor10min + total corners - 1st 10 mins + + + 10485761 + gtd + to go the distance + + + 11534337 + btts + both teams to score + + + 11599873 + bttsht + both teams to score - ht + + + 11862017 + btts2hf + both teams to score - 2nd hf + + + 12582912 + hwmg + half with more goals + + + 13631489 + wbh + win both halves + + + 14680065 + wtt + win the toss + + + 15728644 + totsix + total sixes + + + 16777220 + totro + total runouts + + + 17825792 + m180 + most 180s + + + 18874369 + 170f + 170 finish + + + 19922945 + 9df + 9 dart finish + + + 20971520 + 1x2cor + three way corners + + + 21037056 + 1x2corht + three way corners - ht + + + 22020099 + ptscor + handicap corners + + + 22085635 + ptscorht + handicap corners - ht + + + 23068673 + od/evcor + odd/even corners + + + 23134209 + od/evcorht + odd/even corners - ht + + + 24117249 + nextcor + next corner + + + 25165825 + lastcor + last corner + + + 26214401 + 1stcor + first corner + + + 27262976 + 1stcor1x2 + first corner threeway + + + 28311555 + ptsset + handicap sets + + + 28311556 + totset + total sets + + + 29360129 + wtbo + will there be overtime + + + 30408705 + wtn + win to nil + + + 31457284 + tothome + totals home + + + 32505860 + totaway + totals away + + \ No newline at end of file