feat: Apply fixes for type errors and unused variables

This commit is contained in:
2025-06-04 11:29:18 +09:00
parent 7193dd8bb7
commit a93cfd201d
7 changed files with 25 additions and 25 deletions

View File

@ -1,4 +1,3 @@
import React from 'react';
import './app/globals.css';
import RootLayout from './app/layout';
import Home from './app/page';

View File

@ -1,4 +1,3 @@
import React from "react";
import FeedList from "../components/FeedList";
import EpisodePlayer from "../components/EpisodePlayer";

View File

@ -1,6 +1,4 @@
"use client";
import React, { useEffect, useState } from "react";
import { useEffect, useState } from "react";
interface Episode {
id: string;
@ -13,7 +11,6 @@ interface Episode {
export default function EpisodePlayer() {
const [episodes, setEpisodes] = useState<Episode[]>([]);
const [selectedEpisode, setSelectedEpisode] = useState<Episode | null>(null);
const [isPlaying, setIsPlaying] = useState(false);
const [audioUrl, setAudioUrl] = useState<string | null>(null);
const [loading, setLoading] = useState(true);
const [error, setError] = useState<string | null>(null);

View File

@ -1,8 +1,4 @@
"use client";
"use client";
import React, { useEffect, useState } from "react";
import { useEffect, useState } from "react";
interface FeedItem {
id: string;

View File

@ -29,18 +29,22 @@ async function main() {
pub.getMonth() === yesterday.getMonth() &&
pub.getDate() === yesterday.getDate()
) {
const already = await markAsProcessed(url, item.id);
const already = await markAsProcessed(url, item['id'] as string);
if (already) continue;
const scriptText = await openAI_GenerateScript(item);
const audioFilePath = await generateTTS(item.id, scriptText);
const scriptText = await openAI_GenerateScript({
title: item.title ?? "",
link: item.link ?? "",
contentSnippet: item.contentSnippet ?? "",
});
const audioFilePath = await generateTTS(item['id'] as string, scriptText);
await saveEpisode({
id: item.id,
title: item.title,
id: item['id'] as string,
title: item.title ?? "",
pubDate: pub.toISOString(),
audioPath: audioFilePath,
sourceLink: item.link,
sourceLink: item.link ?? "",
});
}
}

View File

@ -19,7 +19,6 @@ if (!fs.existsSync(dbPath)) {
db.exec(fs.readFileSync(path.join(projectRoot, "schema.sql"), "utf-8"));
// 静的ファイルパスの設定
const frontendPublicDir = path.join(projectRoot, "frontend", "public");
const frontendBuildDir = path.join(projectRoot, "frontend", "dist");
const podcastAudioDir = path.join(projectRoot, "static", "podcast_audio");
const generalPublicDir = path.join(projectRoot, "public");
@ -71,7 +70,8 @@ app.get("/assets/*", async (c) => {
: filePath.endsWith(".css")
? "text/css"
: "application/octet-stream";
return c.body(file, 200, { "Content-Type": contentType });
const blob = await file.blob();
return c.body(blob, 200, { "Content-Type": contentType });
}
return c.notFound();
});
@ -82,7 +82,8 @@ app.get("/podcast_audio/*", async (c) => {
const audioFilePath = path.join(podcastAudioDir, audioFileName);
const file = Bun.file(audioFilePath);
if (await file.exists()) {
return c.body(file, 200, { "Content-Type": "audio/mpeg" });
const blob = await file.blob();
return c.body(blob, 200, { "Content-Type": "audio/mpeg" });
}
return c.notFound();
});
@ -93,7 +94,8 @@ app.get("/podcast.xml", async (c) => {
try {
const file = Bun.file(filePath);
if (await file.exists()) {
return c.body(file, 200, {
const blob = await file.blob();
return c.body(blob, 200, {
"Content-Type": "application/xml; charset=utf-8",
});
}
@ -109,7 +111,8 @@ app.get("/", async (c) => {
const file = Bun.file(indexPath);
if (await file.exists()) {
console.log(`Serving index.html from ${indexPath}`);
return c.body(file, 200, { "Content-Type": "text/html; charset=utf-8" });
const blob = await file.blob();
return c.body(blob, 200, { "Content-Type": "text/html; charset=utf-8" });
}
console.error(`index.html not found at ${indexPath}`);
return c.notFound();
@ -121,7 +124,8 @@ app.get("/index.html", async (c) => {
const file = Bun.file(indexPath);
if (await file.exists()) {
console.log(`Serving index.html from ${indexPath}`);
return c.body(file, 200, { "Content-Type": "text/html; charset=utf-8" });
const blob = await file.blob();
return c.body(blob, 200, { "Content-Type": "text/html; charset=utf-8" });
}
console.error(`index.html not found at ${indexPath}`);
return c.notFound();
@ -133,7 +137,8 @@ app.get("*", async (c) => {
const file = Bun.file(indexPath);
if (await file.exists()) {
console.log(`Serving index.html from ${indexPath}`);
return c.body(file, 200, { "Content-Type": "text/html; charset=utf-8" });
const blob = await file.blob();
return c.body(blob, 200, { "Content-Type": "text/html; charset=utf-8" });
}
console.error(`index.html not found at ${indexPath}`);
return c.notFound();

View File

@ -53,5 +53,5 @@ export async function saveEpisode(ep: Episode): Promise<void> {
export async function fetchAllEpisodes(): Promise<Episode[]> {
const stmt = db.prepare("SELECT * FROM episodes ORDER BY pubDate DESC");
return stmt.all();
return stmt.all() as Episode[];
}