diff --git a/app/Console/Commands/Grapper/Sofascore.php b/app/Console/Commands/Grapper/Sofascore.php
index 7035539c..41ee7fa6 100644
--- a/app/Console/Commands/Grapper/Sofascore.php
+++ b/app/Console/Commands/Grapper/Sofascore.php
@@ -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);
+ }
}
diff --git a/app/Console/Commands/Grapper/Sofascore/CreateZip.php b/app/Console/Commands/Grapper/Sofascore/CreateZip.php
deleted file mode 100644
index d85bd5b2..00000000
--- a/app/Console/Commands/Grapper/Sofascore/CreateZip.php
+++ /dev/null
@@ -1,22 +0,0 @@
-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,
]);
}
diff --git a/app/Console/Commands/Grapper/Sofascore/Grapper.php b/app/Console/Commands/Grapper/Sofascore/Grapper.php
index 8269aec1..e4fb0b03 100644
--- a/app/Console/Commands/Grapper/Sofascore/Grapper.php
+++ b/app/Console/Commands/Grapper/Sofascore/Grapper.php
@@ -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);
diff --git a/app/Console/Commands/Grapper/Sofascore/Helper/Strings.php b/app/Console/Commands/Grapper/Sofascore/Helper/Strings.php
new file mode 100644
index 00000000..ee67a30d
--- /dev/null
+++ b/app/Console/Commands/Grapper/Sofascore/Helper/Strings.php
@@ -0,0 +1,15 @@
+allowHtml()
->required()
->options([
- 'auto_updater' => 'Grap last 3 days',
+ 'auto_updater' => 'Yesterday',
'date' => 'Grap a date',
'range' => 'Grap a date range',
]),
diff --git a/app/Filament/Clusters/StaticData/Resources/StatistikoDetails/Tables/StatistikoDetailsTable.php b/app/Filament/Clusters/StaticData/Resources/StatistikoDetails/Tables/StatistikoDetailsTable.php
index 069ad202..91ca4e68 100644
--- a/app/Filament/Clusters/StaticData/Resources/StatistikoDetails/Tables/StatistikoDetailsTable.php
+++ b/app/Filament/Clusters/StaticData/Resources/StatistikoDetails/Tables/StatistikoDetailsTable.php
@@ -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(),
]);
}
}
diff --git a/app/Filament/Clusters/StaticData/Resources/StatistikoPlayers/Tables/StatistikoPlayersTable.php b/app/Filament/Clusters/StaticData/Resources/StatistikoPlayers/Tables/StatistikoPlayersTable.php
index b14e6f52..f0e8dfca 100644
--- a/app/Filament/Clusters/StaticData/Resources/StatistikoPlayers/Tables/StatistikoPlayersTable.php
+++ b/app/Filament/Clusters/StaticData/Resources/StatistikoPlayers/Tables/StatistikoPlayersTable.php
@@ -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(),
diff --git a/app/Filament/Imports/Helper/ImportPlayer.php b/app/Filament/Imports/Helper/ImportPlayer.php
index da22b79a..89f978e1 100644
--- a/app/Filament/Imports/Helper/ImportPlayer.php
+++ b/app/Filament/Imports/Helper/ImportPlayer.php
@@ -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],
diff --git a/app/Models/SofaScoreDayTournament.php b/app/Models/SofaScoreDayTournament.php
index 163787a6..f30fc158 100644
--- a/app/Models/SofaScoreDayTournament.php
+++ b/app/Models/SofaScoreDayTournament.php
@@ -9,6 +9,7 @@ class SofaScoreDayTournament extends Model
protected $fillable = [
'id',
'tournament_id',
+ 'sport_id',
'day',
];
diff --git a/app/Utilities/ZipFolder.php b/app/Utilities/ZipFolder.php
index 078ccfa8..025d94f2 100644
--- a/app/Utilities/ZipFolder.php
+++ b/app/Utilities/ZipFolder.php
@@ -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) {
diff --git a/database/migrations/2026_06_07_051551_create_sofa_score_day_tournaments_table.php b/database/migrations/2026_06_07_051551_create_sofa_score_day_tournaments_table.php
index 970bc198..2728f6ee 100644
--- a/database/migrations/2026_06_07_051551_create_sofa_score_day_tournaments_table.php
+++ b/database/migrations/2026_06_07_051551_create_sofa_score_day_tournaments_table.php
@@ -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();
diff --git a/example2.json b/example2.json
index a9bf0349..6e98fbdb 100644
--- a/example2.json
+++ b/example2.json
@@ -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
\ No newline at end of file
+{
+ "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"]
+ }
+}
diff --git a/grapper.sh b/grapper.sh
index 72258e41..c2eb0575 100755
--- a/grapper.sh
+++ b/grapper.sh
@@ -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