wip
This commit is contained in:
1 parent
11189ec3d6
commit
2be791d63b
14 files changed
+344
-195
No files matched your search
@@ -2,15 +2,17 @@
|
||||
|
||||
namespace App\Console\Commands\Grapper;
|
||||
|
||||
use App\Console\Commands\Grapper\Sofascore\CreateZip;
|
||||
use App\Console\Commands\Grapper\Sofascore\DaysTournament;
|
||||
use App\Console\Commands\Grapper\Sofascore\Grapper;
|
||||
use App\Console\Commands\Grapper\Sofascore\Helper\Strings;
|
||||
use App\Console\Commands\Grapper\Sofascore\Helper\TaskConfig;
|
||||
use App\Console\Commands\Grapper\Sofascore\PlayerPerSeason;
|
||||
use App\Console\Commands\Grapper\Sofascore\SendMail;
|
||||
use App\Console\Commands\Grapper\Sofascore\SettingsToLocal;
|
||||
use App\Console\Commands\Nuh;
|
||||
use App\Models\SofaScoreTask;
|
||||
use App\Utilities\Notice;
|
||||
use App\Utilities\ZipFolder;
|
||||
|
||||
ini_set('magic_quotes_runtime', false);
|
||||
|
||||
@@ -22,31 +24,40 @@ class Sofascore
|
||||
{
|
||||
$function = Nuh::$options['fun'];
|
||||
|
||||
self::$storage = storage_path('sofascore_data');
|
||||
|
||||
switch ($function) {
|
||||
|
||||
case 1:
|
||||
PlayerPerSeason::run();
|
||||
break;
|
||||
|
||||
case 2:
|
||||
SettingsToLocal::run();
|
||||
break;
|
||||
|
||||
case 3:
|
||||
TaskConfig::start();
|
||||
break;
|
||||
|
||||
case 4:
|
||||
DaysTournament::run();
|
||||
break;
|
||||
|
||||
case 5:
|
||||
self::setStorage();
|
||||
Grapper::load();
|
||||
break;
|
||||
|
||||
case 6:
|
||||
TaskConfig::end();
|
||||
break;
|
||||
|
||||
case 7:
|
||||
CreateZip::run();
|
||||
self::setStorage();
|
||||
ZipFolder::create(self::$storage);
|
||||
break;
|
||||
|
||||
case 8:
|
||||
self::setStorage();
|
||||
SendMail::run();
|
||||
break;
|
||||
|
||||
@@ -54,4 +65,13 @@ class Sofascore
|
||||
Notice::note('id not valid', 'br', 1);
|
||||
}
|
||||
}
|
||||
|
||||
public static function setStorage()
|
||||
{
|
||||
$task = Nuh::$options['task'];
|
||||
|
||||
self::$storage = storage_path('sofascore_data') . '/' . Strings::clean(SofaScoreTask::where('id', $task)->value('name'));
|
||||
|
||||
dd(self::$storage);
|
||||
}
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Console\Commands\Grapper\Sofascore;
|
||||
|
||||
use App\Console\Commands\Grapper\Sofascore;
|
||||
use App\Console\Commands\Nuh;
|
||||
use App\Utilities\Notice;
|
||||
use App\Utilities\ZipFolder;
|
||||
|
||||
class CreateZip
|
||||
{
|
||||
public static function run()
|
||||
{
|
||||
$debug = Nuh::$options['d'] ?? 0;
|
||||
|
||||
ZipFolder::create(Sofascore::$storage);
|
||||
|
||||
if ($debug) {
|
||||
Notice::note('zips created', 'bb');
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -15,6 +15,15 @@ use Illuminate\Support\Facades\Log;
|
||||
|
||||
class DaysTournament
|
||||
{
|
||||
/**
|
||||
* a nuh --d --f 67 --fun=4 --task=1
|
||||
*
|
||||
* Ita Serie-A-Saison 23-08-2025 - 24-05-2026
|
||||
* Ger Bundesliga 22-08-2025 – 16-05-2026
|
||||
* Eng Premier league 15-08-2025 - 24-05-2026
|
||||
* Spa La Liga 15-08-2025 - 24-05-2026
|
||||
* Fra Liggue 15-08-2025 - 17-05-2026
|
||||
*/
|
||||
public static function run()
|
||||
{
|
||||
$debug = Nuh::$options['d'] ?? 0;
|
||||
@@ -29,7 +38,7 @@ class DaysTournament
|
||||
$day = $d['day'];
|
||||
$slug = $d['slug'];
|
||||
|
||||
$has = SofaScoreDayTournament::where('day', $day)->first();
|
||||
$has = SofaScoreDayTournament::where('day', $day)->where('sport_id', $sport_id)->first();
|
||||
|
||||
if ($has) {
|
||||
if ($debug) {
|
||||
@@ -154,6 +163,7 @@ class DaysTournament
|
||||
*/
|
||||
SofaScoreDayTournament::updateOrCreate([
|
||||
'tournament_id' => (int) $tournament['id'],
|
||||
'sport_id' => (int) $sport_id,
|
||||
'day' => $day,
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -35,9 +35,6 @@ class Grapper
|
||||
|
||||
$active_tournaments = SofaScoreTaskTournament::with('tournament')->where('sofa_score_task_id', $task_id)->where('disabled', false)->get();
|
||||
|
||||
// dd($active_tournaments->toArray());
|
||||
|
||||
|
||||
/**
|
||||
* empty grapping folder
|
||||
* empty mailing text
|
||||
@@ -83,10 +80,13 @@ class Grapper
|
||||
|
||||
foreach ($data['events'] as $event) {
|
||||
|
||||
$now = Carbon::now()->subHours(4);
|
||||
$now = Carbon::now()->subHours(3);
|
||||
|
||||
$carbon_day = new Carbon($day);
|
||||
|
||||
$starttime = Carbon::createFromTimestamp($event['startTimestamp']);
|
||||
|
||||
if ($now->greaterThan($starttime)) {
|
||||
if ($now->greaterThan($starttime) && $starttime->isSameDay($carbon_day)) {
|
||||
|
||||
Sleeper::rand(1);
|
||||
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
<?php
|
||||
|
||||
namespace App\Console\Commands\Grapper\Sofascore\Helper;
|
||||
|
||||
class Strings
|
||||
{
|
||||
|
||||
public static function clean(string $string)
|
||||
{
|
||||
$string = str_replace(' ', '-', $string); // Replaces all spaces with hyphens.
|
||||
$string = preg_replace('/[^A-Za-z0-9\-]/', '', $string); // Removes special chars.
|
||||
|
||||
return preg_replace('/-+/', '-', $string); // Replaces multiple hyphens with single one.
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -29,7 +29,7 @@ class SofaScoreTaskForm
|
||||
->allowHtml()
|
||||
->required()
|
||||
->options([
|
||||
'auto_updater' => '<span class="text-green-600">Grap last 3 days</span>',
|
||||
'auto_updater' => '<span class="text-green-600">Yesterday</span>',
|
||||
'date' => '<span class="text-blue-600">Grap a date</span>',
|
||||
'range' => '<span class="text-amber-600">Grap a date range</span>',
|
||||
]),
|
||||
|
||||
+33
-2
@@ -2,11 +2,16 @@
|
||||
|
||||
namespace App\Filament\Clusters\StaticData\Resources\StatistikoDetails\Tables;
|
||||
|
||||
use App\Models\StatistikoDetail;
|
||||
use Filament\Actions\DeleteAction;
|
||||
use Filament\Actions\EditAction;
|
||||
use Filament\Forms\Components\Checkbox;
|
||||
use Filament\Tables\Columns\Layout\Stack;
|
||||
use Filament\Tables\Columns\TextColumn;
|
||||
use Filament\Tables\Enums\FiltersLayout;
|
||||
use Filament\Tables\Filters\Filter;
|
||||
use Filament\Tables\Table;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
|
||||
class StatistikoDetailsTable
|
||||
{
|
||||
@@ -38,13 +43,39 @@ class StatistikoDetailsTable
|
||||
// TextColumn::make('team_name')->prefix('Team Name: '),
|
||||
]),
|
||||
])
|
||||
->emptyStateHeading('No double player in details')
|
||||
->contentGrid([
|
||||
'md' => 2,
|
||||
'xl' => 4,
|
||||
])
|
||||
->filters([
|
||||
Filter::make('player_filters')
|
||||
->schema([
|
||||
Checkbox::make('find_double'),
|
||||
])->query(function (Builder $query, array $data): Builder {
|
||||
return $query->when(
|
||||
$data['find_double'],
|
||||
function (Builder $query) {
|
||||
$pDetails = StatistikoDetail::pluck('tm_player_id')->toArray();
|
||||
$doublpDetails = array_diff_assoc(
|
||||
$pDetails,
|
||||
array_unique($pDetails)
|
||||
);
|
||||
$query->whereIn('tm_player_id', $doublpDetails)->orderBy('tm_player_id');
|
||||
}
|
||||
);
|
||||
})->indicateUsing(function (array $data): ?string {
|
||||
if (! $data['find_double']) {
|
||||
return null;
|
||||
}
|
||||
return 'Find Double';
|
||||
}),
|
||||
|
||||
], layout: FiltersLayout::AboveContent)
|
||||
->deferFilters(false)
|
||||
->recordActions([
|
||||
EditAction::make()->hiddenLabel(),
|
||||
DeleteAction::make()->hiddenLabel(),
|
||||
EditAction::make()->iconButton(),
|
||||
DeleteAction::make()->iconButton(),
|
||||
]);
|
||||
}
|
||||
}
|
||||
+3
@@ -49,6 +49,8 @@ class StatistikoPlayersTable
|
||||
}
|
||||
$arr[$match_id][] = $player_id;
|
||||
}
|
||||
|
||||
return $query->where('match_id', 0);
|
||||
}
|
||||
);
|
||||
})->indicateUsing(function (array $data): ?string {
|
||||
@@ -59,6 +61,7 @@ class StatistikoPlayersTable
|
||||
}),
|
||||
|
||||
], layout: FiltersLayout::AboveContent)
|
||||
->emptyStateHeading('No player double in an event')
|
||||
->deferFilters(false)
|
||||
->recordActions([
|
||||
EditAction::make()->iconButton(),
|
||||
|
||||
@@ -131,6 +131,9 @@ class ImportPlayer
|
||||
// ss_playerrating_value,
|
||||
// tm_player_id
|
||||
|
||||
// 'sport_id' => (int) $row[0],
|
||||
// 'match_id' => (int) $row[1],
|
||||
// 'ss_player_id' => (int) $row[2],
|
||||
// 'activeteam_id' => $row[2],
|
||||
// 'playersubstitute_id' => $row[3],
|
||||
// 'goals' => $row[4],
|
||||
|
||||
@@ -9,6 +9,7 @@ class SofaScoreDayTournament extends Model
|
||||
protected $fillable = [
|
||||
'id',
|
||||
'tournament_id',
|
||||
'sport_id',
|
||||
'day',
|
||||
];
|
||||
|
||||
|
||||
@@ -12,11 +12,8 @@ class ZipFolder
|
||||
public static function create(string $path)
|
||||
{
|
||||
|
||||
// $zipFilePath = Sofascore::$storage . '/' . $day . '.zip';
|
||||
|
||||
// $path = Sofascore::$storage . '/' . $day;
|
||||
|
||||
$zipFilePath = $path . '/archive.zip';
|
||||
|
||||
$zip = new ZipArchive();
|
||||
|
||||
if ($zip->open($zipFilePath, ZipArchive::CREATE | ZipArchive::OVERWRITE) === true) {
|
||||
|
||||
@@ -14,6 +14,7 @@ return new class extends Migration
|
||||
Schema::create('sofa_score_day_tournaments', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->integer('tournament_id')->index();
|
||||
$table->integer('sport_id')->index();
|
||||
$table->date('day')->index();
|
||||
$table->boolean('grapped')->index()->default(0);
|
||||
$table->timestamps();
|
||||
|
||||
+239
-149
@@ -1,149 +1,239 @@
|
||||
XHRGET
|
||||
https://www.sofascore.com/api/v1/sport/football/scheduled-tournaments/2026-07-09/page/1
|
||||
[HTTP/2 200 128ms]
|
||||
|
||||
|
||||
scheduled (100)[ {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, … ]
|
||||
0 { tournament: {…}, timezoneEventCount: {…} }
|
||||
tournament { name: "FIFA World Cup, Knockout", slug: "world-cup-knockout-stage", priority: 805, … }
|
||||
name "FIFA World Cup, Knockout"
|
||||
slug "world-cup-knockout-stage"
|
||||
category { name: "World", slug: "world", priority: 20, … }
|
||||
name "World"
|
||||
slug "world"
|
||||
sport { name: "Football", slug: "football", id: 1 }
|
||||
name "Football"
|
||||
slug "football"
|
||||
id 1
|
||||
priority 20
|
||||
id 1468
|
||||
flag "international"
|
||||
fieldTranslations { nameTranslation: {…}, shortNameTranslation: {} }
|
||||
nameTranslation { ar: "العالم", bn: "বিশ্ব", hi: "विश्व", … }
|
||||
shortNameTranslation {}
|
||||
uniqueTournament { name: "FIFA World Cup", slug: "world-championship", userCount: 1986199, … }
|
||||
priority 805
|
||||
id 3948
|
||||
fieldTranslations { nameTranslation: {…}, shortNameTranslation: {} }
|
||||
timezoneEventCount { 0: 1, 3600: 1, 7200: 1, … }
|
||||
0 1
|
||||
3600 1
|
||||
7200 1
|
||||
10800 1
|
||||
12600 1
|
||||
-43200 1
|
||||
-39600 1
|
||||
-36000 1
|
||||
-34200 1
|
||||
-32400 1
|
||||
-28800 1
|
||||
-25200 1
|
||||
-21600 1
|
||||
-18000 1
|
||||
-16200 1
|
||||
-14400 1
|
||||
-12600 1
|
||||
-10800 1
|
||||
-9000 1
|
||||
-7200 1
|
||||
-3600 1
|
||||
1 { tournament: {…}, timezoneEventCount: {…} }
|
||||
2 { tournament: {…}, timezoneEventCount: {…} }
|
||||
3 { tournament: {…}, timezoneEventCount: {…} }
|
||||
4 { tournament: {…}, timezoneEventCount: {…} }
|
||||
5 { tournament: {…}, timezoneEventCount: {…} }
|
||||
6 { tournament: {…}, timezoneEventCount: {…} }
|
||||
7 { tournament: {…}, timezoneEventCount: {…} }
|
||||
8 { tournament: {…}, timezoneEventCount: {…} }
|
||||
9 { tournament: {…}, timezoneEventCount: {…} }
|
||||
10 { tournament: {…}, timezoneEventCount: {…} }
|
||||
11 { tournament: {…}, timezoneEventCount: {…} }
|
||||
12 { tournament: {…}, timezoneEventCount: {…} }
|
||||
13 { tournament: {…}, timezoneEventCount: {…} }
|
||||
14 { tournament: {…}, timezoneEventCount: {…} }
|
||||
15 { tournament: {…}, timezoneEventCount: {…} }
|
||||
16 { tournament: {…}, timezoneEventCount: {…} }
|
||||
17 { tournament: {…}, timezoneEventCount: {…} }
|
||||
18 { tournament: {…}, timezoneEventCount: {…} }
|
||||
19 { tournament: {…}, timezoneEventCount: {…} }
|
||||
20 { tournament: {…}, timezoneEventCount: {…} }
|
||||
21 { tournament: {…}, timezoneEventCount: {…} }
|
||||
22 { tournament: {…}, timezoneEventCount: {…} }
|
||||
23 { tournament: {…}, timezoneEventCount: [] }
|
||||
24 { tournament: {…}, timezoneEventCount: {…} }
|
||||
25 { tournament: {…}, timezoneEventCount: {…} }
|
||||
26 { tournament: {…}, timezoneEventCount: {…} }
|
||||
27 { tournament: {…}, timezoneEventCount: {…} }
|
||||
28 { tournament: {…}, timezoneEventCount: {…} }
|
||||
29 { tournament: {…}, timezoneEventCount: {…} }
|
||||
30 { tournament: {…}, timezoneEventCount: {…} }
|
||||
31 { tournament: {…}, timezoneEventCount: {…} }
|
||||
32 { tournament: {…}, timezoneEventCount: {…} }
|
||||
33 { tournament: {…}, timezoneEventCount: {…} }
|
||||
34 { tournament: {…}, timezoneEventCount: {…} }
|
||||
35 { tournament: {…}, timezoneEventCount: {…} }
|
||||
36 { tournament: {…}, timezoneEventCount: {…} }
|
||||
37 { tournament: {…}, timezoneEventCount: {…} }
|
||||
38 { tournament: {…}, timezoneEventCount: {…} }
|
||||
39 { tournament: {…}, timezoneEventCount: {…} }
|
||||
40 { tournament: {…}, timezoneEventCount: {…} }
|
||||
41 { tournament: {…}, timezoneEventCount: {…} }
|
||||
42 { tournament: {…}, timezoneEventCount: {…} }
|
||||
43 { tournament: {…}, timezoneEventCount: {…} }
|
||||
44 { tournament: {…}, timezoneEventCount: {…} }
|
||||
45 { tournament: {…}, timezoneEventCount: {…} }
|
||||
46 { tournament: {…}, timezoneEventCount: {…} }
|
||||
47 { tournament: {…}, timezoneEventCount: {…} }
|
||||
48 { tournament: {…}, timezoneEventCount: {…} }
|
||||
49 { tournament: {…}, timezoneEventCount: {…} }
|
||||
50 { tournament: {…}, timezoneEventCount: {…} }
|
||||
51 { tournament: {…}, timezoneEventCount: {…} }
|
||||
52 { tournament: {…}, timezoneEventCount: {…} }
|
||||
53 { tournament: {…}, timezoneEventCount: [] }
|
||||
54 { tournament: {…}, timezoneEventCount: {…} }
|
||||
55 { tournament: {…}, timezoneEventCount: [] }
|
||||
56 { tournament: {…}, timezoneEventCount: {…} }
|
||||
57 { tournament: {…}, timezoneEventCount: {…} }
|
||||
58 { tournament: {…}, timezoneEventCount: {…} }
|
||||
59 { tournament: {…}, timezoneEventCount: {…} }
|
||||
60 { tournament: {…}, timezoneEventCount: {…} }
|
||||
61 { tournament: {…}, timezoneEventCount: {…} }
|
||||
62 { tournament: {…}, timezoneEventCount: {…} }
|
||||
63 { tournament: {…}, timezoneEventCount: {…} }
|
||||
64 { tournament: {…}, timezoneEventCount: {…} }
|
||||
65 { tournament: {…}, timezoneEventCount: {…} }
|
||||
66 { tournament: {…}, timezoneEventCount: {…} }
|
||||
67 { tournament: {…}, timezoneEventCount: {…} }
|
||||
68 { tournament: {…}, timezoneEventCount: {…} }
|
||||
69 { tournament: {…}, timezoneEventCount: {…} }
|
||||
70 { tournament: {…}, timezoneEventCount: {…} }
|
||||
71 { tournament: {…}, timezoneEventCount: {…} }
|
||||
72 { tournament: {…}, timezoneEventCount: {…} }
|
||||
73 { tournament: {…}, timezoneEventCount: {…} }
|
||||
74 { tournament: {…}, timezoneEventCount: {…} }
|
||||
75 { tournament: {…}, timezoneEventCount: {…} }
|
||||
76 { tournament: {…}, timezoneEventCount: {…} }
|
||||
77 { tournament: {…}, timezoneEventCount: {…} }
|
||||
78 { tournament: {…}, timezoneEventCount: {…} }
|
||||
79 { tournament: {…}, timezoneEventCount: {…} }
|
||||
80 { tournament: {…}, timezoneEventCount: {…} }
|
||||
81 { tournament: {…}, timezoneEventCount: {…} }
|
||||
82 { tournament: {…}, timezoneEventCount: [] }
|
||||
83 { tournament: {…}, timezoneEventCount: {…} }
|
||||
84 { tournament: {…}, timezoneEventCount: {…} }
|
||||
85 { tournament: {…}, timezoneEventCount: {…} }
|
||||
86 { tournament: {…}, timezoneEventCount: {…} }
|
||||
87 { tournament: {…}, timezoneEventCount: {…} }
|
||||
88 { tournament: {…}, timezoneEventCount: {…} }
|
||||
89 { tournament: {…}, timezoneEventCount: {…} }
|
||||
90 { tournament: {…}, timezoneEventCount: {…} }
|
||||
91 { tournament: {…}, timezoneEventCount: {…} }
|
||||
92 { tournament: {…}, timezoneEventCount: {…} }
|
||||
93 { tournament: {…}, timezoneEventCount: {…} }
|
||||
94 { tournament: {…}, timezoneEventCount: {…} }
|
||||
95 { tournament: {…}, timezoneEventCount: {…} }
|
||||
96 { tournament: {…}, timezoneEventCount: {…} }
|
||||
97 { tournament: {…}, timezoneEventCount: {…} }
|
||||
98 { tournament: {…}, timezoneEventCount: {…} }
|
||||
99 { tournament: {…}, timezoneEventCount: {…} }
|
||||
hasNextPage true
|
||||
{
|
||||
"eventState": [],
|
||||
"tournament": {
|
||||
"name": "Allsvenskan",
|
||||
"slug": "allsvenskan",
|
||||
"category": {
|
||||
"name": "Sweden",
|
||||
"slug": "sweden",
|
||||
"sport": { "name": "Football", "slug": "football", "id": 1 },
|
||||
"priority": 0,
|
||||
"country": {
|
||||
"alpha2": "SE",
|
||||
"alpha3": "SWE",
|
||||
"name": "Sweden",
|
||||
"slug": "sweden"
|
||||
},
|
||||
"id": 9,
|
||||
"flag": "sweden",
|
||||
"alpha2": "SE",
|
||||
"fieldTranslations": {
|
||||
"nameTranslation": {
|
||||
"ar": "\u0627\u0644\u0633\u0648\u064a\u062f",
|
||||
"ru": "\u0428\u0432\u0435\u0446\u0438\u044f"
|
||||
},
|
||||
"shortNameTranslation": []
|
||||
}
|
||||
},
|
||||
"uniqueTournament": {
|
||||
"name": "Allsvenskan",
|
||||
"slug": "allsvenskan",
|
||||
"primaryColorHex": "#d38509",
|
||||
"secondaryColorHex": "#212759",
|
||||
"category": {
|
||||
"name": "Sweden",
|
||||
"slug": "sweden",
|
||||
"sport": { "name": "Football", "slug": "football", "id": 1 },
|
||||
"priority": 0,
|
||||
"country": {
|
||||
"alpha2": "SE",
|
||||
"alpha3": "SWE",
|
||||
"name": "Sweden",
|
||||
"slug": "sweden"
|
||||
},
|
||||
"id": 9,
|
||||
"flag": "sweden",
|
||||
"alpha2": "SE",
|
||||
"fieldTranslations": {
|
||||
"nameTranslation": {
|
||||
"ar": "\u0627\u0644\u0633\u0648\u064a\u062f",
|
||||
"ru": "\u0428\u0432\u0435\u0446\u0438\u044f"
|
||||
},
|
||||
"shortNameTranslation": []
|
||||
}
|
||||
},
|
||||
"userCount": 29399,
|
||||
"hasPerformanceGraphFeature": true,
|
||||
"country": [],
|
||||
"id": 40,
|
||||
"hasEventPlayerStatistics": true,
|
||||
"displayInverseHomeAwayTeams": false,
|
||||
"fieldTranslations": {
|
||||
"nameTranslation": {
|
||||
"ar": "\u0627\u0644\u062f\u0648\u0631\u064a \u0627\u0644\u0633\u0648\u064a\u062f\u064a \u0627\u0644\u0645\u0645\u062a\u0627\u0632",
|
||||
"bn": "\u0985\u09b2\u09b8\u09ad\u09c7\u09a8\u09b8\u09cd\u0995\u09be\u09a8",
|
||||
"hi": "\u0911\u0932\u0938\u094d\u0935\u0947\u0928\u094d\u0938\u094d\u0915\u0928",
|
||||
"ru": "\u0410\u043b\u043b\u0441\u0432\u0435\u043d\u0441\u043a\u0430\u043d"
|
||||
},
|
||||
"shortNameTranslation": []
|
||||
}
|
||||
},
|
||||
"priority": 192,
|
||||
"isGroup": false,
|
||||
"isLive": false,
|
||||
"id": 24,
|
||||
"fieldTranslations": {
|
||||
"nameTranslation": {
|
||||
"ar": "\u0627\u0644\u062f\u0648\u0631\u064a \u0627\u0644\u0633\u0648\u064a\u062f\u064a \u0627\u0644\u0645\u0645\u062a\u0627\u0632",
|
||||
"bn": "\u0985\u09b2\u09b8\u09ad\u09c7\u09a8\u09b8\u09cd\u0995\u09be\u09a8",
|
||||
"hi": "\u0911\u0932\u0938\u094d\u0935\u0947\u0928\u094d\u0938\u094d\u0915\u0928",
|
||||
"ru": "\u0410\u043b\u043b\u0441\u0432\u0435\u043d\u0441\u043a\u0430\u043d"
|
||||
},
|
||||
"shortNameTranslation": []
|
||||
}
|
||||
},
|
||||
"season": {
|
||||
"name": "Allsvenskan 2026",
|
||||
"year": "2026",
|
||||
"editor": false,
|
||||
"id": 87925
|
||||
},
|
||||
"roundInfo": { "round": 12 },
|
||||
"customId": "jKsrK",
|
||||
"status": { "code": 100, "description": "Ended", "type": "finished" },
|
||||
"winnerCode": 1,
|
||||
"venue": {
|
||||
"city": {
|
||||
"name": "Stockholm",
|
||||
"country": {
|
||||
"alpha2": "SE",
|
||||
"alpha3": "SWE",
|
||||
"name": "Sweden",
|
||||
"slug": "sweden"
|
||||
},
|
||||
"id": 19506
|
||||
},
|
||||
"venueCoordinates": { "latitude": 59.291033, "longitude": 18.084543 },
|
||||
"hidden": true,
|
||||
"slug": "tele2-arena",
|
||||
"name": "3Arena",
|
||||
"capacity": 32000,
|
||||
"country": {
|
||||
"alpha2": "SE",
|
||||
"alpha3": "SWE",
|
||||
"name": "Sweden",
|
||||
"slug": "sweden"
|
||||
},
|
||||
"id": 12373,
|
||||
"fieldTranslations": {
|
||||
"nameTranslation": {
|
||||
"ar": "\u0645\u0644\u0639\u0628 \u062a\u064a\u0644\u064a 2",
|
||||
"hi": "\u091f\u0947\u0932\u09402 \u090f\u0930\u093f\u0928\u093e",
|
||||
"bn": "\u099f\u09bf\u0987\u098f\u09b2\u09872 \u098f\u09b0\u09bf\u09a8\u09be",
|
||||
"ru": "\u0410\u0440\u0435\u043d\u0430 3"
|
||||
},
|
||||
"shortNameTranslation": []
|
||||
},
|
||||
"stadium": { "name": "3Arena", "capacity": 32000 }
|
||||
},
|
||||
"homeTeam": {
|
||||
"name": "Djurg\u00e5rdens IF",
|
||||
"slug": "djurgardens-if",
|
||||
"shortName": "Djurg\u00e5rden",
|
||||
"gender": "M",
|
||||
"sport": { "name": "Football", "slug": "football", "id": 1 },
|
||||
"userCount": 42579,
|
||||
"nameCode": "DIF",
|
||||
"disabled": false,
|
||||
"national": false,
|
||||
"type": 0,
|
||||
"country": {
|
||||
"alpha2": "SE",
|
||||
"alpha3": "SWE",
|
||||
"name": "Sweden",
|
||||
"slug": "sweden"
|
||||
},
|
||||
"id": 1759,
|
||||
"subTeams": [],
|
||||
"teamColors": {
|
||||
"primary": "#33ccff",
|
||||
"secondary": "#000099",
|
||||
"text": "#000099"
|
||||
},
|
||||
"fieldTranslations": {
|
||||
"nameTranslation": {
|
||||
"ar": "\u062f\u064a\u0648\u0631\u063a\u0627\u0631\u062f\u0646\u0633 \u0625\u0641",
|
||||
"ru": "\u0424\u041a \u042e\u0440\u0433\u043e\u0440\u0434\u0435\u043d"
|
||||
},
|
||||
"shortNameTranslation": {
|
||||
"ar": "\u062f\u064a\u0648\u0631\u063a\u0627\u0631\u062f\u0646",
|
||||
"bn": "\u099c\u09c1\u09b0\u09cd\u0997\u09be\u09b0\u09cd\u09a1\u09c7\u09a8\u09b8",
|
||||
"hi": "\u091c\u0941\u0930\u094d\u0917\u093e\u0930\u094d\u0921\u0947\u0928"
|
||||
}
|
||||
}
|
||||
},
|
||||
"awayTeam": {
|
||||
"name": "Halmstads BK",
|
||||
"slug": "halmstads-bk",
|
||||
"shortName": "Halmstad",
|
||||
"gender": "M",
|
||||
"sport": { "name": "Football", "slug": "football", "id": 1 },
|
||||
"userCount": 10732,
|
||||
"nameCode": "HBK",
|
||||
"disabled": false,
|
||||
"national": false,
|
||||
"type": 0,
|
||||
"country": {
|
||||
"alpha2": "SE",
|
||||
"alpha3": "SWE",
|
||||
"name": "Sweden",
|
||||
"slug": "sweden"
|
||||
},
|
||||
"id": 1767,
|
||||
"subTeams": [],
|
||||
"teamColors": {
|
||||
"primary": "#0066ff",
|
||||
"secondary": "#0066ff",
|
||||
"text": "#0066ff"
|
||||
},
|
||||
"fieldTranslations": {
|
||||
"nameTranslation": {
|
||||
"ar": "\u0647\u0627\u0644\u0645\u0633\u062a\u0627\u062f\u0632 \u0628\u064a \u0643\u064a\u0647",
|
||||
"ru": "\u0424\u041a \u0425\u0430\u043b\u044c\u043c\u0441\u0442\u0430\u0434"
|
||||
},
|
||||
"shortNameTranslation": []
|
||||
}
|
||||
},
|
||||
"homeScore": {
|
||||
"current": 3,
|
||||
"display": 3,
|
||||
"period1": 2,
|
||||
"period2": 1,
|
||||
"normaltime": 3
|
||||
},
|
||||
"awayScore": {
|
||||
"current": 0,
|
||||
"display": 0,
|
||||
"period1": 0,
|
||||
"period2": 0,
|
||||
"normaltime": 0
|
||||
},
|
||||
"time": {
|
||||
"injuryTime1": 3,
|
||||
"injuryTime2": 3,
|
||||
"currentPeriodStartTimestamp": 1783965872,
|
||||
"lastPeriodEndTimestamp": 1783964942
|
||||
},
|
||||
"changes": {
|
||||
"changes": ["status.code", "status.description", "status.type"],
|
||||
"changeTimestamp": 1783968772
|
||||
},
|
||||
"hasGlobalHighlights": true,
|
||||
"hasEventPlayerStatistics": true,
|
||||
"hasEventPlayerHeatMap": true,
|
||||
"detailId": 1,
|
||||
"crowdsourcingDataDisplayEnabled": false,
|
||||
"correctAiInsight": true,
|
||||
"correctHalftimeAiInsight": true,
|
||||
"id": 15272449,
|
||||
"slug": "halmstads-bk-djurgardens-if",
|
||||
"startTimestamp": 1783962000,
|
||||
"finalResultOnly": false,
|
||||
"feedLocked": true,
|
||||
"isEditor": false,
|
||||
"eventFilters": {
|
||||
"category": ["club"],
|
||||
"level": ["top-competitions", "pro"],
|
||||
"gender": ["M"]
|
||||
}
|
||||
}
|
||||
+7
-7
@@ -30,19 +30,19 @@ case "$1" in
|
||||
# killall ssh
|
||||
|
||||
# echo "\n⚽ TaskConfig start"
|
||||
# php artisan nuh --d --f 67 --fun=3 --task=$1
|
||||
php artisan nuh --d --f 67 --fun=3 --task=$1
|
||||
|
||||
echo "\n⚽ Days Tournament"
|
||||
php artisan nuh --d --f 67 --fun=4 --task=$1
|
||||
# echo "\n⚽ Days Tournament"
|
||||
# php artisan nuh --d --f 67 --fun=4 --task=$1
|
||||
|
||||
echo "\n⚽ Grapper"
|
||||
php artisan nuh --d --f 67 --fun=5 --task=$1
|
||||
# echo "\n⚽ Grapper"
|
||||
# php artisan nuh --d --f 67 --fun=5 --task=$1
|
||||
|
||||
# echo "\n⚽ TaskConfig end"
|
||||
# php artisan nuh --d --f 67 --fun=6 --task=$1
|
||||
|
||||
echo "\n⚽ CreateZip"
|
||||
php artisan nuh --d --f 67 --fun=7 --task=$1
|
||||
# echo "\n⚽ CreateZip"
|
||||
# php artisan nuh --d --f 67 --fun=7 --task=$1
|
||||
|
||||
# echo "\n⚽ SendMail"
|
||||
# php artisan nuh --d --f 67 --fun=8 --task=$1
|
||||
|
||||
Reference in new issue
Block a user