info('Starting memes sitemap generation...'); $sitemap = Sitemap::create(); // Get the base URL from config $baseUrl = config('app.url'); // Get all enabled memes $memes = $this->memeMediaService->getAllEnabledMemes(); $this->info("Found {$memes->count()} enabled memes"); // Add a progress bar for large datasets $progressBar = $this->output->createProgressBar($memes->count()); $progressBar->start(); // Add each meme to the sitemap foreach ($memes as $meme) { $url = Url::create($baseUrl . '/meme/' . $meme->slug) ->setPriority(0.8) ->setChangeFrequency(Url::CHANGE_FREQUENCY_MONTHLY) ->setLastModificationDate($meme->updated_at); $sitemap->add($url); $progressBar->advance(); } $progressBar->finish(); $this->newLine(); // Save the sitemap $sitemapPath = public_path('sitemap_memes.xml'); $sitemap->writeToFile($sitemapPath); $this->info("Memes sitemap generated successfully!"); $this->info("Sitemap saved to: {$sitemapPath}"); $this->info("Total URLs: {$memes->count()}"); return Command::SUCCESS; } }