feat: 環境変数からAPIエンドポイントを取得するように変更
This commit is contained in:
		@@ -21,7 +21,9 @@ export default function EpisodePlayer() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  const fetchEpisodes = async () => {
 | 
					  const fetchEpisodes = async () => {
 | 
				
			||||||
    try {
 | 
					    try {
 | 
				
			||||||
      const response = await fetch("/api/episodes");
 | 
					      const response = await fetch(
 | 
				
			||||||
 | 
					        `${import.meta.env["PODCAST_BASE_URL"]}/api/episodes`,
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
      if (!response.ok) {
 | 
					      if (!response.ok) {
 | 
				
			||||||
        throw new Error("エピソードの取得に失敗しました");
 | 
					        throw new Error("エピソードの取得に失敗しました");
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -19,7 +19,9 @@ export default function FeedList() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  const fetchFeeds = async () => {
 | 
					  const fetchFeeds = async () => {
 | 
				
			||||||
    try {
 | 
					    try {
 | 
				
			||||||
      const response = await fetch("/api/feeds");
 | 
					      const response = await fetch(
 | 
				
			||||||
 | 
					        `${import.meta.env["PODCAST_BASE_URL"]}/api/feeds`,
 | 
				
			||||||
 | 
					      );
 | 
				
			||||||
      if (!response.ok) {
 | 
					      if (!response.ok) {
 | 
				
			||||||
        throw new Error("フィードの取得に失敗しました");
 | 
					        throw new Error("フィードの取得に失敗しました");
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -59,27 +59,27 @@ const processFeedUrl = async (url: string) => {
 | 
				
			|||||||
  const category = await openAI_ClassifyFeed(feedTitle);
 | 
					  const category = await openAI_ClassifyFeed(feedTitle);
 | 
				
			||||||
  console.log(`フィード分類完了: ${feedTitle} - ${category}`);
 | 
					  console.log(`フィード分類完了: ${feedTitle} - ${category}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // 昨日の記事のみフィルタリング
 | 
					  const latest5Items = feed.items.slice(0, 5);
 | 
				
			||||||
  const yesterday = new Date();
 | 
					 | 
				
			||||||
  yesterday.setDate(yesterday.getDate() - 1);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  const yesterdayItems = feed.items.filter((item) => {
 | 
					  // FIXME: 昨日の記事のみフィルタリング
 | 
				
			||||||
    const pub = new Date(item.pubDate || "");
 | 
					  // const yesterday = new Date();
 | 
				
			||||||
    return (
 | 
					  // yesterday.setDate(yesterday.getDate() - 1);
 | 
				
			||||||
      pub.getFullYear() === yesterday.getFullYear() &&
 | 
					  // const yesterdayItems = feed.items.filter((item) => {
 | 
				
			||||||
      pub.getMonth() === yesterday.getMonth() &&
 | 
					  //   const pub = new Date(item.pubDate || "");
 | 
				
			||||||
      pub.getDate() === yesterday.getDate()
 | 
					  //   return (
 | 
				
			||||||
    );
 | 
					  //     pub.getFullYear() === yesterday.getFullYear() &&
 | 
				
			||||||
  });
 | 
					  //     pub.getMonth() === yesterday.getMonth() &&
 | 
				
			||||||
 | 
					  //     pub.getDate() === yesterday.getDate()
 | 
				
			||||||
  if (yesterdayItems.length === 0) {
 | 
					  //   );
 | 
				
			||||||
    console.log(`昨日の記事が見つかりません: ${feedTitle}`);
 | 
					  // });
 | 
				
			||||||
    return;
 | 
					  // if (yesterdayItems.length === 0) {
 | 
				
			||||||
  }
 | 
					  //   console.log(`昨日の記事が見つかりません: ${feedTitle}`);
 | 
				
			||||||
 | 
					  //   return;
 | 
				
			||||||
 | 
					  // }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // ポッドキャスト原稿生成
 | 
					  // ポッドキャスト原稿生成
 | 
				
			||||||
  console.log(`ポッドキャスト原稿生成開始: ${feedTitle}`);
 | 
					  console.log(`ポッドキャスト原稿生成開始: ${feedTitle}`);
 | 
				
			||||||
  const validItems = yesterdayItems.filter((item): item is FeedItem => {
 | 
					  const validItems = latest5Items.filter((item): item is FeedItem => {
 | 
				
			||||||
    return !!item.title && !!item.link;
 | 
					    return !!item.title && !!item.link;
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
  const podcastContent = await openAI_GeneratePodcastContent(
 | 
					  const podcastContent = await openAI_GeneratePodcastContent(
 | 
				
			||||||
@@ -96,7 +96,7 @@ const processFeedUrl = async (url: string) => {
 | 
				
			|||||||
  console.log(`音声ファイル生成完了: ${audioFilePath}`);
 | 
					  console.log(`音声ファイル生成完了: ${audioFilePath}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // エピソードとして保存(各フィードにつき1つの統合エピソード)
 | 
					  // エピソードとして保存(各フィードにつき1つの統合エピソード)
 | 
				
			||||||
  const firstItem = yesterdayItems[0];
 | 
					  const firstItem = latest5Items[0];
 | 
				
			||||||
  if (!firstItem) {
 | 
					  if (!firstItem) {
 | 
				
			||||||
    console.warn("アイテムが空です");
 | 
					    console.warn("アイテムが空です");
 | 
				
			||||||
    return;
 | 
					    return;
 | 
				
			||||||
@@ -114,7 +114,7 @@ const processFeedUrl = async (url: string) => {
 | 
				
			|||||||
  console.log(`エピソード保存完了: ${category} - ${feedTitle}`);
 | 
					  console.log(`エピソード保存完了: ${category} - ${feedTitle}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // 個別記事の処理記録
 | 
					  // 個別記事の処理記録
 | 
				
			||||||
  for (const item of yesterdayItems) {
 | 
					  for (const item of latest5Items) {
 | 
				
			||||||
    const itemId = item["id"] as string | undefined;
 | 
					    const itemId = item["id"] as string | undefined;
 | 
				
			||||||
    const fallbackId = item.link || item.title || JSON.stringify(item);
 | 
					    const fallbackId = item.link || item.title || JSON.stringify(item);
 | 
				
			||||||
    const finalItemId =
 | 
					    const finalItemId =
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user