This commit is contained in:
salam committed 2026-07-22 08:23:16 +02:00
1 parent b25cf15a9e
commit 07e775ddf2
11 files changed
+160 -106

No files matched your search

@@ -33,7 +33,7 @@ class LoadDays
switch ($task->mode) { switch ($task->mode) {
case 'auto_updater': case 'daily':
$dates[] = [ $dates[] = [
'day' => Carbon::now()->subDay()->format('Y-m-d'), 'day' => Carbon::now()->subDay()->format('Y-m-d'),
'slug' => $task->sport->ss_slug, 'slug' => $task->sport->ss_slug,
@@ -3,6 +3,7 @@
namespace App\Console\Commands\Grapper\Sofascore; namespace App\Console\Commands\Grapper\Sofascore;
use App\Console\Commands\Nuh; use App\Console\Commands\Nuh;
use App\Models\SofaScoreRosa;
use App\Models\SofaScoreTask; use App\Models\SofaScoreTask;
use App\Models\SofaScoreTaskTournament; use App\Models\SofaScoreTaskTournament;
use App\Utilities\Notice; use App\Utilities\Notice;
@@ -29,5 +30,11 @@ class SettingsToLocal
foreach ($rows as $row) { foreach ($rows as $row) {
SofaScoreTaskTournament::insert((array) $row); SofaScoreTaskTournament::insert((array) $row);
} }
SofaScoreRosa::truncate();
$rows = DB::connection('remote_mariadb')->table('sofa_score_rosas')->get();
foreach ($rows as $row) {
SofaScoreRosa::insert((array) $row);
}
} }
} }
@@ -3,17 +3,9 @@
namespace App\Filament\Clusters\StaticData\Resources\SofaScoreRosas\Pages; namespace App\Filament\Clusters\StaticData\Resources\SofaScoreRosas\Pages;
use App\Filament\Clusters\StaticData\Resources\SofaScoreRosas\SofaScoreRosaResource; use App\Filament\Clusters\StaticData\Resources\SofaScoreRosas\SofaScoreRosaResource;
use Filament\Actions\CreateAction;
use Filament\Resources\Pages\ListRecords; use Filament\Resources\Pages\ListRecords;
class ListSofaScoreRosas extends ListRecords class ListSofaScoreRosas extends ListRecords
{ {
protected static string $resource = SofaScoreRosaResource::class; protected static string $resource = SofaScoreRosaResource::class;
protected function getHeaderActions(): array
{
return [
CreateAction::make(),
];
}
} }
@@ -2,29 +2,30 @@
namespace App\Filament\Clusters\StaticData\Resources\SofaScoreRosas; namespace App\Filament\Clusters\StaticData\Resources\SofaScoreRosas;
use App\Filament\Clusters\StaticData\Resources\SofaScoreRosas\Pages\CreateSofaScoreRosa;
use App\Filament\Clusters\StaticData\Resources\SofaScoreRosas\Pages\EditSofaScoreRosa;
use App\Filament\Clusters\StaticData\Resources\SofaScoreRosas\Pages\ListSofaScoreRosas; use App\Filament\Clusters\StaticData\Resources\SofaScoreRosas\Pages\ListSofaScoreRosas;
use App\Filament\Clusters\StaticData\Resources\SofaScoreRosas\Schemas\SofaScoreRosaForm; use App\Filament\Clusters\StaticData\Resources\SofaScoreRosas\Schemas\SofaScoreRosaForm;
use App\Filament\Clusters\StaticData\Resources\SofaScoreRosas\Tables\SofaScoreRosasTable; use App\Filament\Clusters\StaticData\Resources\SofaScoreRosas\Tables\SofaScoreRosasTable;
use App\Filament\Clusters\StaticData\StaticDataCluster; use App\Filament\Clusters\StaticData\StaticDataCluster;
use App\Models\SofaScoreRosa; use App\Models\SofaScoreRosa;
use BackedEnum;
use Filament\Resources\Resource; use Filament\Resources\Resource;
use Filament\Schemas\Schema; use Filament\Schemas\Schema;
use Filament\Support\Icons\Heroicon;
use Filament\Tables\Table; use Filament\Tables\Table;
use UnitEnum;
class SofaScoreRosaResource extends Resource class SofaScoreRosaResource extends Resource
{ {
protected static ?string $model = SofaScoreRosa::class; protected static ?string $model = SofaScoreRosa::class;
protected static string|BackedEnum|null $navigationIcon = Heroicon::OutlinedRectangleStack;
protected static ?string $cluster = StaticDataCluster::class; protected static ?string $cluster = StaticDataCluster::class;
protected static ?string $recordTitleAttribute = 'name'; protected static ?string $recordTitleAttribute = 'name';
protected static ?string $navigationLabel = 'Rosa';
protected static ?string $modelLabel = 'Rosa';
protected static string|UnitEnum|null $navigationGroup = 'SofaScore';
public static function form(Schema $schema): Schema public static function form(Schema $schema): Schema
{ {
return SofaScoreRosaForm::configure($schema); return SofaScoreRosaForm::configure($schema);
@@ -35,19 +36,15 @@ class SofaScoreRosaResource extends Resource
return SofaScoreRosasTable::configure($table); return SofaScoreRosasTable::configure($table);
} }
public static function getRelations(): array
{
return [
//
];
}
public static function getPages(): array public static function getPages(): array
{ {
return [ return [
'index' => ListSofaScoreRosas::route('/'), 'index' => ListSofaScoreRosas::route('/'),
'create' => CreateSofaScoreRosa::route('/create'),
'edit' => EditSofaScoreRosa::route('/{record}/edit'),
]; ];
} }
public static function getNavigationBadge(): ?string
{
return parent::getEloquentQuery()->count();
}
} }
@@ -2,13 +2,20 @@
namespace App\Filament\Clusters\StaticData\Resources\SofaScoreRosas\Tables; namespace App\Filament\Clusters\StaticData\Resources\SofaScoreRosas\Tables;
use App\Models\Country;
use App\Models\SofaScoreRosa;
use Filament\Actions\Action;
use Filament\Actions\BulkAction;
use Filament\Actions\BulkActionGroup; use Filament\Actions\BulkActionGroup;
use Filament\Actions\CreateAction;
use Filament\Actions\DeleteBulkAction; use Filament\Actions\DeleteBulkAction;
use Filament\Actions\EditAction; use Filament\Actions\EditAction;
use Filament\Forms\Components\Toggle;
use Filament\Tables\Columns\TextColumn; use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Columns\ToggleColumn; use Filament\Tables\Columns\ToggleColumn;
use Filament\Tables\Enums\FiltersLayout;
use Filament\Tables\Filters\SelectFilter;
use Filament\Tables\Table; use Filament\Tables\Table;
use Illuminate\Support\Collection;
class SofaScoreRosasTable class SofaScoreRosasTable
{ {
@@ -16,19 +23,65 @@ class SofaScoreRosasTable
{ {
return $table return $table
->columns([ ->columns([
TextColumn::make('ssteam_id')->badge()->alignCenter()->width('1rem'), TextColumn::make('ssteam_id')->label('Id')->badge()->width('1rem'),
TextColumn::make('ssteam_name'), TextColumn::make('country.name')->label('Country'),
TextColumn::make('ssteam_name')->label('Name'),
ToggleColumn::make('is_active'), ToggleColumn::make('is_active'),
]) ])
->filters([ ->filters([
// SelectFilter::make('country_id')
->searchable()
->label('Country')
->options(function () {
$res = SofaScoreRosa::groupBy('country_id')->pluck('country_id')->toArray();
return Country::query()->whereIn('id', $res)->orderBy('name')->pluck('name', 'id');
})
], layout: FiltersLayout::AboveContent)
->deferFilters(false)
->headerActions([
Action::make('all_on')
->icon('phosphor-toggle-right-fill')
->action(function (): void {
SofaScoreRosa::query()->update(['is_active' => 1]);
}),
Action::make('all_off')
->icon('phosphor-toggle-left-fill')
->color('danger')
->action(function (): void {
SofaScoreRosa::query()->update(['is_active' => 0]);
}),
CreateAction::make()
->icon('phosphor-plus')
->label('Team'),
]) ])
->recordActions([ ->recordActions([
EditAction::make(), EditAction::make(),
]) ])
->toolbarActions([ ->toolbarActions([
BulkActionGroup::make([ BulkActionGroup::make([
DeleteBulkAction::make(), BulkAction::make('Enable selected')
->color('primary')
->icon('phosphor-toggle-right-fill')
->action(function (Collection $records): void {
foreach ($records as $record) {
SofaScoreRosa::where('id', '=', $record->id)
->update(
['is_active' => 1]
);
}
}),
BulkAction::make('Disable selected')
->icon('phosphor-toggle-left-fill')
->action(function (Collection $records): void {
foreach ($records as $record) {
SofaScoreRosa::where('id', '=', $record->id)
->update(
['is_active' => 0]
);
}
}),
// DeleteBulkAction::make(),
]), ]),
]); ]);
} }
@@ -29,7 +29,7 @@ class SofaScoreTaskForm
->allowHtml() ->allowHtml()
->required() ->required()
->options([ ->options([
'auto_updater' => '<span class="text-green-600">Yesterday</span>', 'daily' => '<span class="text-green-600">Yesterday</span>',
'date' => '<span class="text-blue-600">Grap a date</span>', 'date' => '<span class="text-blue-600">Grap a date</span>',
'range' => '<span class="text-amber-600">Grap a date range</span>', 'range' => '<span class="text-amber-600">Grap a date range</span>',
]), ]),
@@ -20,9 +20,9 @@ class SofaScoreTaskResource extends Resource
protected static ?string $cluster = StaticDataCluster::class; protected static ?string $cluster = StaticDataCluster::class;
protected static ?string $navigationLabel = 'SofaScore Tasks'; protected static ?string $navigationLabel = 'Tasks';
protected static ?string $modelLabel = 'SofaScore Tasks'; protected static ?string $modelLabel = 'Tasks';
protected static ?int $navigationSort = 1; protected static ?int $navigationSort = 1;
@@ -24,7 +24,7 @@ class SofaScoreTasksTable
TextColumn::make('mode') TextColumn::make('mode')
->label('Grapping dates') ->label('Grapping dates')
->formatStateUsing(fn(string $state, $record): string => match ($state) { ->formatStateUsing(fn(string $state, $record): string => match ($state) {
'auto_updater' => 'Yesterday', 'daily' => 'Yesterday',
'date' => $record->day_from, 'date' => $record->day_from,
'range' => $record->day_from . ' <=> ' . $record->day_to, 'range' => $record->day_from . ' <=> ' . $record->day_to,
}), }),
@@ -5,21 +5,21 @@ namespace App\Filament\Clusters\StaticData\Resources\SofaScoreTournaments\Tables
use App\Models\SofaScoreCategory; use App\Models\SofaScoreCategory;
use App\Models\SofaScoreTournament; use App\Models\SofaScoreTournament;
use App\Models\Sport; use App\Models\Sport;
use Filament\Actions\Action; // use Filament\Actions\Action;
use Filament\Actions\BulkAction; // use Filament\Actions\BulkAction;
use Filament\Actions\BulkActionGroup; // use Filament\Actions\BulkActionGroup;
use Filament\Forms\Components\Select; use Filament\Forms\Components\Select;
use Filament\Forms\Components\ToggleButtons; // use Filament\Forms\Components\ToggleButtons;
use Filament\Schemas\Components\Utilities\Get; use Filament\Schemas\Components\Utilities\Get;
use Filament\Support\Enums\IconSize; use Filament\Support\Enums\IconSize;
use Filament\Tables\Columns\IconColumn; use Filament\Tables\Columns\IconColumn;
use Filament\Tables\Columns\TextColumn; use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Columns\ToggleColumn; // use Filament\Tables\Columns\ToggleColumn;
use Filament\Tables\Enums\FiltersLayout; use Filament\Tables\Enums\FiltersLayout;
use Filament\Tables\Filters\Filter; use Filament\Tables\Filters\Filter;
use Filament\Tables\Table; use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Collection; // use Illuminate\Database\Eloquent\Collection;
class SofaScoreTournamentsTable class SofaScoreTournamentsTable
{ {
@@ -41,8 +41,8 @@ class SofaScoreTournamentsTable
TextColumn::make('sofascore_category.name') TextColumn::make('sofascore_category.name')
->icon(fn($record) => $record->sofascore_category->country->icon), ->icon(fn($record) => $record->sofascore_category->country->icon),
TextColumn::make('name')->searchable()->sortable(), TextColumn::make('name')->searchable()->sortable(),
ToggleColumn::make('enabled')->label('Enable'), // ToggleColumn::make('enabled')->label('Enable'),
ToggleColumn::make('disabled')->label('Hidden'), // ToggleColumn::make('disabled')->label('Hidden'),
]) ])
->filters([ ->filters([
Filter::make('filters') Filter::make('filters')
@@ -71,15 +71,15 @@ class SofaScoreTournamentsTable
return SofaScoreCategory::query()->whereIn('id', $res)->orderBy('name')->pluck('name', 'id'); return SofaScoreCategory::query()->whereIn('id', $res)->orderBy('name')->pluck('name', 'id');
}) })
->live(), ->live(),
ToggleButtons::make('filter-disabled') // ToggleButtons::make('filter-disabled')
->inline() // ->inline()
->columnSpan(2) // ->columnSpan(2)
->default('active') // ->default('active')
->options([ // ->options([
'all' => 'All', // 'all' => 'All',
'enabled' => 'Enabled', // 'enabled' => 'Enabled',
'hidden' => 'Hidden', // 'hidden' => 'Hidden',
]), // ]),
]) ])
->query(function (Builder $query, array $data): Builder { ->query(function (Builder $query, array $data): Builder {
return $query->when( return $query->when(
@@ -121,56 +121,56 @@ class SofaScoreTournamentsTable
); );
}), }),
], layout: FiltersLayout::AboveContent) ], layout: FiltersLayout::AboveContent)
->deferFilters(false) ->deferFilters(false);
->toolbarActions([ // ->toolbarActions([
BulkActionGroup::make([ // BulkActionGroup::make([
BulkAction::make('Enable selected') // BulkAction::make('Enable selected')
->icon('phosphor-toggle-right-fill') // ->icon('phosphor-toggle-right-fill')
->color('primary') // ->color('primary')
->action(function (Collection $records): void { // ->action(function (Collection $records): void {
foreach ($records as $record) { // foreach ($records as $record) {
SofaScoreTournament::where('id', '=', $record->id) // SofaScoreTournament::where('id', '=', $record->id)
->update( // ->update(
['enabled' => 1] // ['enabled' => 1]
); // );
} // }
}), // }),
BulkAction::make('Disable selected') // BulkAction::make('Disable selected')
->icon('phosphor-toggle-left-fill') // ->icon('phosphor-toggle-left-fill')
->color('gray') // ->color('gray')
->action(function (Collection $records): void { // ->action(function (Collection $records): void {
foreach ($records as $record) { // foreach ($records as $record) {
SofaScoreTournament::where('id', '=', $record->id) // SofaScoreTournament::where('id', '=', $record->id)
->update( // ->update(
['enabled' => 0] // ['enabled' => 0]
); // );
} // }
}), // }),
])->label('Grapping'), // ])->label('Grapping'),
BulkActionGroup::make([ // BulkActionGroup::make([
BulkAction::make('Hide selected') // BulkAction::make('Hide selected')
->icon('phosphor-toggle-right-fill') // ->icon('phosphor-toggle-right-fill')
->color('primary') // ->color('primary')
->action(function (Collection $records): void { // ->action(function (Collection $records): void {
foreach ($records as $record) { // foreach ($records as $record) {
SofaScoreTournament::where('id', '=', $record->id) // SofaScoreTournament::where('id', '=', $record->id)
->update( // ->update(
['disabled' => 1] // ['disabled' => 1]
); // );
} // }
}), // }),
BulkAction::make('Show selected') // BulkAction::make('Show selected')
->icon('phosphor-toggle-left-fill') // ->icon('phosphor-toggle-left-fill')
->color('gray') // ->color('gray')
->action(function (Collection $records): void { // ->action(function (Collection $records): void {
foreach ($records as $record) { // foreach ($records as $record) {
SofaScoreTournament::where('id', '=', $record->id) // SofaScoreTournament::where('id', '=', $record->id)
->update( // ->update(
['disabled' => 0] // ['disabled' => 0]
); // );
} // }
}), // }),
])->label('Hidden'), // ])->label('Hidden'),
]); // ]);
} }
} }
+5
View File
@@ -12,4 +12,9 @@ class SofaScoreRosa extends Model
'country_id', 'country_id',
'is_active', 'is_active',
]; ];
public function country()
{
return $this->belongsTo(Country::class);
}
} }
+5 -5
View File
@@ -20,22 +20,22 @@ case "$1" in
echo "\n⚽ sofa_score_task $1" echo "\n⚽ sofa_score_task $1"
echo "\n⚽ close all vpn" echo "\n⚽ close all vpn"
# killall ssh killall ssh
echo "\n⚽ open vpn" echo "\n⚽ open vpn"
# ssh -f -N -L 13306:127.0.0.1:3306 -p 58371 root@162.55.242.190 ssh -f -N -L 13306:127.0.0.1:3306 -p 58371 root@162.55.242.190
echo "\n⚽ Settings To Local" echo "\n⚽ Settings To Local"
# php artisan nuh --d --f 67 --fun=2 --task=$1 php artisan nuh --d --f 67 --fun=2 --task=$1
echo "\n⚽ close vpn" echo "\n⚽ close vpn"
# killall ssh killall ssh
echo "\n⚽ Grapper" echo "\n⚽ Grapper"
php artisan nuh --d --f 67 --fun=3 --task=$1 --restart=$2 php artisan nuh --d --f 67 --fun=3 --task=$1 --restart=$2
echo "\n⚽ CreateZip" echo "\n⚽ CreateZip"
# php artisan nuh --d --f 67 --fun=4 --task=$1 php artisan nuh --d --f 67 --fun=4 --task=$1
# echo "\n⚽ SendMail" # echo "\n⚽ SendMail"
# php artisan nuh --d --f 67 --fun=5 --task=$1 # php artisan nuh --d --f 67 --fun=5 --task=$1