populateLegacyArtworks(); //die(); $current_page = 283; $totalArtworks = 0; $missingArtworks = 0; $missingModel = 0; $response = $this->getResponseFromApi($current_page); $last_page = $response->object()->users->last_page; while ($current_page <= $last_page) { $this->command->info('Getting Page ' . $current_page); foreach ($response->object()->users->data as $user) { $this->command->line('Getting Art for ' . $user->profile->name . ', found ' . count($user->artworks) . ' artworks.'); $totalArtworks += count($user->artworks); $legacyUser = Artist::where('name', $user->profile->name)->first(); if (!$legacyUser) { ImportLegacyUserJob::dispatch($user); } else { if ($legacyUser->artworks->count() < count($user->artworks)) { $countDiff = count($user->artworks) - $legacyUser->artworks->count(); $missingArtworks += $countDiff; $this->command->comment('Artist ID ' . $legacyUser->id . ' ' . $legacyUser->name . ' has ' . $legacyUser->artworks->count() . ' artworks.'); $this->command->error('Missing ' . $countDiff . ' artworks.'); foreach ($user->artworks as $artwork) { $date = Carbon::parse($artwork->created_at); $basename = $date->format('Y') . '/' . $date->format('m') . '/' . Str::slug($legacyUser->name) . '-' . Str::slug($artwork->title) . '_' . $artwork->id . '.jpg'; if (Storage::disk('static')->exists('artworks/' . $basename)) { $artworkModel = Artwork::where('filename', $basename)->first(); if (!$artworkModel) { $missingModel++; $this->command->error($basename . ' exists.'); StashAndOptimizeLegacyArtworkJob::dispatch($legacyUser, $artwork); } } } } else { $this->command->line('Locally stored all of ' . $legacyUser->name . '\'s artworks.'); } } } $current_page++; $response = $this->getResponseFromApi($current_page); } $this->command->info('Total Artworks: ' . $totalArtworks); $this->command->info('Total Missing: ' . $missingArtworks); $this->command->info('Total Missing Model: ' . $missingModel); } private function getResponseFromApi($current_page) { $response = Http::timeout(180) ->get('https://noagendaartgenerator.com/artistapi', [ 'p' => '7476', 'page' => $current_page, ] ); return $response; } private function populateLegacyArtworks() { $artworks = Artwork::whereNull('legacy_id')->get(); foreach ($artworks as $artwork) { $file = pathinfo($artwork->filename); $filename = explode('_', $file['filename']); $legacy_id = end($filename); $artwork->legacy_id = $legacy_id; $artwork->save(); } } }