✨ Import films
This commit is contained in:
parent
dfc11d7a7f
commit
bc3a42b501
1 changed files with 55 additions and 20 deletions
|
|
@ -1,7 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace App\Data\DataPipes;
|
namespace App\Data\DataPipes;
|
||||||
|
|
||||||
|
use App\Data\Enums\Type;
|
||||||
use App\Data\FileData;
|
use App\Data\FileData;
|
||||||
use Illuminate\Support\Collection;
|
use Illuminate\Support\Collection;
|
||||||
use Spatie\LaravelData\DataPipes\DataPipe;
|
use Spatie\LaravelData\DataPipes\DataPipe;
|
||||||
|
|
@ -20,27 +23,16 @@ class StructureData implements DataPipe
|
||||||
}
|
}
|
||||||
|
|
||||||
$data = [];
|
$data = [];
|
||||||
|
$films = [];
|
||||||
foreach ($properties->get('rawData') as $watch) {
|
foreach ($properties->get('rawData') as $watch) {
|
||||||
$showTmdb = $watch['showTmdb'];
|
switch ($watch['type']) {
|
||||||
$season = $watch['season'];
|
case (Type::Episode->value):
|
||||||
$episode = $watch['episode'];
|
$data = $this->getEp($data, $watch);
|
||||||
$watched = $watch['watched'];
|
break;
|
||||||
if (!array_key_exists($showTmdb, $data)) {
|
case (Type::Movie->value):
|
||||||
$data[$showTmdb] = [];
|
$films[] = $this->getFilm($watch);
|
||||||
$data[$showTmdb]['ids'] = ['tmdb' => $showTmdb];
|
break;
|
||||||
$data[$showTmdb]['seasons'] = [];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!array_key_exists($season, $data[$showTmdb]['seasons'])) {
|
|
||||||
$data[$showTmdb]['seasons'][$season] = [];
|
|
||||||
$data[$showTmdb]['seasons'][$season]['number'] = $season;
|
|
||||||
$data[$showTmdb]['seasons'][$season]['episodes'] = [];
|
|
||||||
}
|
|
||||||
|
|
||||||
$data[$showTmdb]['seasons'][$season]['episodes'][] = [
|
|
||||||
'number' => $episode,
|
|
||||||
'watched_at' => $watched,
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$flat = [];
|
$flat = [];
|
||||||
|
|
@ -48,8 +40,51 @@ class StructureData implements DataPipe
|
||||||
$show['seasons'] = array_values($show['seasons']);
|
$show['seasons'] = array_values($show['seasons']);
|
||||||
$flat[] = $show;
|
$flat[] = $show;
|
||||||
}
|
}
|
||||||
$properties['structuredData'] = ['shows' => $flat];
|
$properties['structuredData'] = ['shows' => $flat, 'movies' => $films];
|
||||||
|
|
||||||
return $properties;
|
return $properties;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected function getEp(array $data, array $watch): array
|
||||||
|
{
|
||||||
|
$showTmdb = $watch['showTmdb'];
|
||||||
|
$season = $watch['season'];
|
||||||
|
$episode = $watch['episode'];
|
||||||
|
$watched = $watch['watched'];
|
||||||
|
if (!array_key_exists($showTmdb, $data)) {
|
||||||
|
$data[$showTmdb] = [];
|
||||||
|
$data[$showTmdb]['ids'] = ['tmdb' => $showTmdb];
|
||||||
|
$data[$showTmdb]['seasons'] = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!array_key_exists($season, $data[$showTmdb]['seasons'])) {
|
||||||
|
$data[$showTmdb]['seasons'][$season] = [];
|
||||||
|
$data[$showTmdb]['seasons'][$season]['number'] = $season;
|
||||||
|
$data[$showTmdb]['seasons'][$season]['episodes'] = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
$data[$showTmdb]['seasons'][$season]['episodes'][] = [
|
||||||
|
'number' => $episode,
|
||||||
|
'watched_at' => $watched,
|
||||||
|
];
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function getFilm(array $watch): array
|
||||||
|
{
|
||||||
|
$filmTmdb = $watch['movieTmdb'];
|
||||||
|
$filmYear = $watch['movieYear'];
|
||||||
|
$title = $watch['showTitle'];
|
||||||
|
$watched = $watch['watched'];
|
||||||
|
|
||||||
|
return [
|
||||||
|
'watched_at' => $watched,
|
||||||
|
'title' => $title,
|
||||||
|
'year' => $filmYear,
|
||||||
|
'ids' => [
|
||||||
|
'tmdb' => $filmTmdb,
|
||||||
|
],
|
||||||
|
];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue