where('id', '\d+') ->name('legacy.avatar'); // ── ARTWORK (legacy comment URL) ────────────────────────────────────────────── //Route::match(['get','post'], '/art/{id}/comment', [ArtController::class, 'show'])->where('id', '\d+'); // ── CATEGORIES / SECTIONS ───────────────────────────────────────────────────── Route::get('/categories', [CategoryController::class, 'index'])->name('legacy.categories'); Route::get('/sections', [\App\Http\Controllers\Web\SectionsController::class, 'index'])->name('sections'); Route::get('/browse-categories', [BrowseCategoriesController::class, 'index'])->name('browse.categories'); // Legacy category URL pattern: /category/group/slug/id Route::get('/category/{group}/{slug?}/{id?}', [BrowseGalleryController::class, 'legacyCategory']) ->name('legacy.category'); // ── BROWSE / FEATURED / DAILY ───────────────────────────────────────────────── //Route::get('/browse', [BrowseGalleryController::class, 'browse'])->name('legacy.browse'); Route::get('/browse', fn () => redirect('/explore', 301))->name('legacy.browse'); Route::get('/featured', [FeaturedArtworksController::class, 'index'])->name('legacy.featured'); Route::get('/featured-artworks',[FeaturedArtworksController::class, 'index'])->name('legacy.featured_artworks'); Route::get('/daily-uploads', [DailyUploadsController::class, 'index'])->name('legacy.daily_uploads'); // ── CHAT ────────────────────────────────────────────────────────────────────── Route::get('/chat', fn () => redirect()->route('community.chat', [], 301))->name('legacy.chat'); Route::post('/chat_post', [ChatController::class, 'post'])->name('legacy.chat.post'); // ── UPLOADS / COMMENTS / DOWNLOADS (SEO alias pages) ───────────────────────── Route::get('/uploads/latest', [LatestController::class, 'index'])->name('uploads.latest'); Route::get('/uploads/daily', [DailyUploadsController::class, 'index'])->name('uploads.daily'); Route::get('/members/photos', [MembersController::class, 'photos'])->name('members.photos'); Route::get('/authors/top', [TopAuthorsController::class, 'index'])->name('authors.top'); Route::get('/comments/latest', function () { return redirect()->route('community.activity', request()->query(), 301); })->name('comments.latest'); Route::get('/comments/monthly', [MonthlyCommentatorsController::class, 'index'])->name('comments.monthly'); Route::get('/downloads/today', [TodayDownloadsController::class, 'index'])->name('downloads.today'); Route::get('/latest', [LatestController::class, 'index'])->name('legacy.latest'); Route::get('/latest-comments', function () { return redirect()->route('community.activity', request()->query(), 301); })->name('legacy.latest_comments'); Route::get('/today-in-history', [TodayInHistoryController::class, 'index'])->name('legacy.today_in_history'); Route::get('/today-downloads', [TodayDownloadsController::class, 'index'])->name('legacy.today_downloads'); Route::get('/monthly-commentators', [MonthlyCommentatorsController::class, 'index'])->name('legacy.monthly_commentators'); Route::get('/members', [MembersController::class, 'index'])->name('legacy.members'); Route::get('/top-favourites', [TopFavouritesController::class, 'index'])->name('legacy.top_favourites'); // ── REDIRECTS: top-authors, interviews, apply, bug-report ──────────────────── Route::get('/top-authors', fn () => redirect('/creators/top', 301))->name('legacy.top_authors'); Route::get('/interviews', fn () => redirect('/stories', 301))->name('legacy.interviews'); Route::get('/apply', fn () => redirect('/contact', 301))->name('legacy.apply.redirect'); Route::match(['get','post'], '/bug-report', fn () => redirect('/contact', 301))->name('bug-report.redirect'); // ── BUDDIES / MYBUDDIES ─────────────────────────────────────────────────────── Route::middleware('auth')->get('/mybuddies.php', [\App\Http\Controllers\User\MyBuddiesController::class, 'index'])->name('legacy.mybuddies.php'); Route::middleware('auth')->get('/mybuddies', [\App\Http\Controllers\User\MyBuddiesController::class, 'index'])->name('legacy.mybuddies'); Route::middleware('auth')->delete('/mybuddies/{id}', [\App\Http\Controllers\User\MyBuddiesController::class, 'destroy'])->name('legacy.mybuddies.delete'); Route::middleware('auth')->get('/buddies.php', [\App\Http\Controllers\User\BuddiesController::class, 'index'])->name('legacy.buddies.php'); Route::middleware('auth')->get('/buddies', [\App\Http\Controllers\User\BuddiesController::class, 'index'])->name('legacy.buddies'); // ── FAVOURITES / GALLERY ────────────────────────────────────────────────────── Route::get('/favourites/{id?}/{username?}', [FavouritesController::class, 'index'])->name('legacy.favourites'); Route::post('/favourites/{userId}/delete/{artworkId}', [FavouritesController::class, 'destroy'])->name('legacy.favourites.delete'); Route::middleware('ensure.onboarding.complete') ->get('/gallery/{id}/{username?}', [GalleryController::class, 'show']) ->name('legacy.gallery'); // We need to fix to a new gallery // ── PROFILE (legacy URL patterns) ──────────────────────────────────────────── Route::get('/user/{username}', [ProfileController::class, 'legacyByUsername']) ->where('username', '[A-Za-z0-9_-]{3,20}') ->name('legacy.user.profile'); Route::get('/profile/{id}/{username?}', [ProfileController::class, 'legacyById']) ->where('id', '\d+') ->name('legacy.profile.id'); Route::get('/profile/{username}', [ProfileController::class, 'legacyByUsername']) ->where('username', '[A-Za-z0-9_-]{3,20}') ->name('legacy.profile'); // Keep legacy `/user` as a permanent redirect to the canonical dashboard path. Route::middleware(['auth'])->match(['get','post'], '/user', function () { return redirect()->route('dashboard.profile', [], 301); })->name('legacy.user.redirect'); // ── COMMENTS / STATISTICS ───────────────────────────────────────────────────── Route::middleware('auth')->get('/recieved-comments', [ReceivedCommentsController::class, 'index'])->name('legacy.received_comments'); Route::middleware(['auth'])->group(function () { Route::get('/statistics', [StatisticsController::class, 'index'])->name('legacy.statistics'); }); // ── MANAGE (old artwork management pages) ───────────────────────────────────── /* Route::middleware(['auth'])->group(function () { Route::get('/manage', [ManageController::class, 'index'])->name('manage'); Route::get('/manage/edit/{id}', [ManageController::class, 'edit'])->name('manage.edit'); Route::post('/manage/update/{id}', [ManageController::class, 'update'])->name('manage.update'); Route::post('/manage/delete/{id}', [ManageController::class, 'destroy'])->name('manage.destroy'); }); */ // ── LEGACY FORUM REDIRECT (/forum.php?topic=X) ─────────────────────────────── /* Route::middleware('ensure.onboarding.complete') ->get('/forum.php', function (\Illuminate\Http\Request $request) { $threadId = (int) ($request->query('topic') ?? $request->query('tid') ?? 0); if ($threadId < 1) { return redirect()->route('forum.index', [], 301); } $thread = \App\Models\ForumThread::query()->find($threadId); $slug = $thread?->slug ?: ('thread-' . $threadId); return redirect()->route('forum.thread.show', ['thread' => $threadId, 'slug' => $slug], 301); })->name('forum.legacy.redirect'); */ // ── LEGACY RSS (.xml feeds — old site compatibility) ────────────────────────── Route::get('/rss/latest-uploads.xml', [RssFeedController::class, 'latestUploads'])->name('rss.uploads'); Route::get('/rss/latest-skins.xml', [RssFeedController::class, 'latestSkins'])->name('rss.skins'); Route::get('/rss/latest-wallpapers.xml', [RssFeedController::class, 'latestWallpapers'])->name('rss.wallpapers'); Route::get('/rss/latest-photos.xml', [RssFeedController::class, 'latestPhotos'])->name('rss.photos');