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
This commit is contained in:
sebastjanartic 2025-09-02 15:02:36 +00:00
parent 06185bf445
commit dec09b7b2f
2 changed files with 25 additions and 9 deletions

View File

@ -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));

View File

@ -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();
}