Update
This commit is contained in:
		@@ -14,7 +14,6 @@ import {
 | 
				
			|||||||
  fetchEpisodesWithArticles,
 | 
					  fetchEpisodesWithArticles,
 | 
				
			||||||
  getAllCategories,
 | 
					  getAllCategories,
 | 
				
			||||||
  getAllFeedsIncludingInactive,
 | 
					  getAllFeedsIncludingInactive,
 | 
				
			||||||
  getAllSettings,
 | 
					 | 
				
			||||||
  getFeedByUrl,
 | 
					  getFeedByUrl,
 | 
				
			||||||
  getFeedRequests,
 | 
					  getFeedRequests,
 | 
				
			||||||
  getFeedsByCategory,
 | 
					  getFeedsByCategory,
 | 
				
			||||||
@@ -35,6 +34,15 @@ try {
 | 
				
			|||||||
  process.exit(1);
 | 
					  process.exit(1);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Regenerate static files on startup
 | 
				
			||||||
 | 
					try {
 | 
				
			||||||
 | 
					  const { regenerateStartupFiles } = await import("./services/podcast.js");
 | 
				
			||||||
 | 
					  await regenerateStartupFiles();
 | 
				
			||||||
 | 
					} catch (error) {
 | 
				
			||||||
 | 
					  console.error("Failed to regenerate startup files on admin server:", error);
 | 
				
			||||||
 | 
					  // Don't exit - the admin server can still work without the regenerated files
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const app = new Hono();
 | 
					const app = new Hono();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Basic Authentication middleware (if credentials are provided)
 | 
					// Basic Authentication middleware (if credentials are provided)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -14,6 +14,15 @@ try {
 | 
				
			|||||||
  process.exit(1);
 | 
					  process.exit(1);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Regenerate static files on startup
 | 
				
			||||||
 | 
					try {
 | 
				
			||||||
 | 
					  const { regenerateStartupFiles } = await import("./services/podcast.js");
 | 
				
			||||||
 | 
					  await regenerateStartupFiles();
 | 
				
			||||||
 | 
					} catch (error) {
 | 
				
			||||||
 | 
					  console.error("Failed to regenerate startup files:", error);
 | 
				
			||||||
 | 
					  // Don't exit - the server can still work without the regenerated files
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const app = new Hono();
 | 
					const app = new Hono();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// 静的ファイルの処理
 | 
					// 静的ファイルの処理
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -139,6 +139,28 @@ export async function updatePodcastRSS(): Promise<void> {
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Regenerate all static files on startup
 | 
				
			||||||
 | 
					 * This ensures that podcast.xml and other generated files are up-to-date
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export async function regenerateStartupFiles(): Promise<void> {
 | 
				
			||||||
 | 
					  try {
 | 
				
			||||||
 | 
					    console.log("🔄 Regenerating static files on startup...");
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    // Regenerate main podcast.xml
 | 
				
			||||||
 | 
					    await updatePodcastRSS();
 | 
				
			||||||
 | 
					    console.log("✅ podcast.xml regenerated successfully");
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    // Note: Category and feed-specific RSS files are generated dynamically on request
 | 
				
			||||||
 | 
					    // This is more efficient and ensures they're always up-to-date with current data
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    console.log("✅ All startup files regenerated successfully");
 | 
				
			||||||
 | 
					  } catch (error) {
 | 
				
			||||||
 | 
					    console.error("❌ Error regenerating startup files:", error);
 | 
				
			||||||
 | 
					    throw error;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export async function generateCategoryRSS(category: string): Promise<string> {
 | 
					export async function generateCategoryRSS(category: string): Promise<string> {
 | 
				
			||||||
  try {
 | 
					  try {
 | 
				
			||||||
    // Get episodes for the specific category
 | 
					    // Get episodes for the specific category
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user