first commit
Some checks failed
Build / run (push) Has been cancelled

This commit is contained in:
maher
2025-10-29 11:42:25 +01:00
commit 703f50a09d
4595 changed files with 385164 additions and 0 deletions

View File

@@ -0,0 +1,103 @@
<?php
namespace App\Console\Commands;
use App\Services\Data\Tmdb\TmdbApi;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Http;
class SyncTmdbValueLists extends Command
{
protected $signature = 'tmdb:syncValueLists';
public function handle(): int
{
$this->syncGenres();
$this->syncCountries();
$this->syncDepartments();
$this->syncLanguages();
$this->syncKeywords();
return Command::SUCCESS;
}
protected function syncKeywords(): void
{
$downloadUrl =
'http://files.tmdb.org/p/exports/keyword_ids_07_08_2023.json.gz';
$content = gzdecode(file_get_contents($downloadUrl));
$content = str_replace('"}', '"},', $content);
$content = rtrim(trim($content), ',');
file_put_contents(resource_path('lists/tmdb-keywords.json'), '[' . $content . ']');
}
protected function syncGenres(): void
{
$movieGenres = Http::get(TmdbApi::TMDB_BASE . 'genre/movie/list', [
'api_key' => config('services.tmdb.key'),
'language' => 'en-US',
])->json()['genres'];
$tvGenres = Http::get(TmdbApi::TMDB_BASE . 'genre/tv/list', [
'api_key' => config('services.tmdb.key'),
'language' => 'en-US',
])->json()['genres'];
$mergedGenres = collect($movieGenres)
->merge($tvGenres)
->unique('id')
->values()
->toArray();
file_put_contents(
resource_path('lists/tmdb-genres.json'),
json_encode($mergedGenres),
);
}
private function syncLanguages(): void
{
$languages = Http::get(TmdbApi::TMDB_BASE . 'configuration/languages', [
'api_key' => config('services.tmdb.key'),
])->json();
$languages = array_map(fn($language) => [
'code' => $language['iso_639_1'],
'name' => $language['english_name'],
], $languages);
file_put_contents(
resource_path('lists/tmdb-languages.json'),
json_encode($languages),
);
}
protected function syncDepartments(): void
{
$departments = Http::get(TmdbApi::TMDB_BASE . 'configuration/jobs', [
'api_key' => config('services.tmdb.key'),
])->json();
file_put_contents(
resource_path('lists/tmdb-departments.json'),
json_encode($departments),
);
}
protected function syncCountries(): void
{
$countries = Http::get(TmdbApi::TMDB_BASE . 'configuration/countries', [
'api_key' => config('services.tmdb.key'),
])->json();
$countries = array_map(fn($country) => [
'code' => $country['iso_3166_1'],
'name' => $country['english_name'],
], $countries);
file_put_contents(
resource_path('lists/tmdb-countries.json'),
json_encode($countries),
);
}
}