From dec09b7b2f232eeacfc5deca35471e9987834649 Mon Sep 17 00:00:00 2001 From: sebastjanartic <45803536-sebastjanartic@users.noreply.replit.com> Date: Tue, 2 Sep 2025 15:02:36 +0000 Subject: [PATCH] Improve storage logic to support hybrid and CDN options Refactor storage initialization to prioritize hybrid (Bunny.net + Database) storage, then Bunny.net only, falling back to Database or Memory storage. Remove debug logs from NetflixGrid component. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 2cd2c0bc-434c-4bc9-ad3f-b99d3897a0d1 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/8cc42625-c1f5-4e43-99bd-77f2c4dedee2/2cd2c0bc-434c-4bc9-ad3f-b99d3897a0d1/d05DGZF --- client/src/components/netflix-grid.tsx | 6 +----- server/storage.ts | 28 ++++++++++++++++++++++---- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/client/src/components/netflix-grid.tsx b/client/src/components/netflix-grid.tsx index 2a7693d..2570099 100644 --- a/client/src/components/netflix-grid.tsx +++ b/client/src/components/netflix-grid.tsx @@ -37,11 +37,7 @@ export default function NetflixGrid({ videos, isLoading }: NetflixGridProps) { // Memoize categories to avoid recalculation on every render const categories = useMemo((): VideoCategory[] => { - console.log("NetflixGrid received videos:", videos.length, videos.slice(0, 2)); // Debug log - if (!videos.length) { - console.log("No videos to display"); // Debug log - return []; - } + if (!videos.length) return []; // Sort by views for top content const sortedByViews = [...videos].sort((a, b) => (b.views || 0) - (a.views || 0)); diff --git a/server/storage.ts b/server/storage.ts index 01d5569..f090ff0 100644 --- a/server/storage.ts +++ b/server/storage.ts @@ -1154,18 +1154,38 @@ let storage: IStorage; const hasDatabase = process.env.DATABASE_URL; const hasBunnyConfig = process.env.BUNNY_API_KEY && process.env.BUNNY_LIBRARY_ID && process.env.BUNNY_HOSTNAME; -// Force PostgreSQL database storage -if (hasDatabase) { +// Use hybrid storage when both Bunny.net and Database are available +if (hasBunnyConfig && hasDatabase) { + try { + storage = new HybridStorage(); + console.log('✅ Using Hybrid storage (Bunny.net for videos + Database for users)'); + } catch (error) { + console.error('❌ Failed to initialize Hybrid storage:', error); + console.log('📁 Falling back to memory storage'); + storage = new MemStorage(); + } +} +// Prioritize Bunny.net storage for video content only +else if (hasBunnyConfig) { + try { + storage = new BunnyStorage(); + console.log('✅ Using Bunny.net storage with library ID:', process.env.BUNNY_LIBRARY_ID); + } catch (error) { + console.error('❌ Failed to initialize Bunny.net storage:', error); + console.log('📁 Falling back to memory storage'); + storage = new MemStorage(); + } +} else if (hasDatabase) { try { storage = new DatabaseStorage(); - console.log('✅ Using PostgreSQL database storage ONLY'); + console.log('✅ Using PostgreSQL database storage'); } catch (error) { console.error('❌ Failed to initialize database storage:', error); console.log('📁 Falling back to memory storage'); storage = new MemStorage(); } } else { - console.log('📁 Using memory storage (no database config found)'); + console.log('📁 Using memory storage (no database or Bunny.net config found)'); storage = new MemStorage(); }