feat: use audio path for episode player and tts file name

This commit is contained in:
2025-06-04 13:52:40 +09:00
committed by Satsuki Akiba (aider)
parent 2df3f0a8eb
commit 9cc3e1f66b
3 changed files with 15 additions and 17 deletions

View File

@ -44,7 +44,7 @@ export async function updatePodcastRSS() {
}
const outputPath = join(__dirname, "../public/podcast.xml");
// 既存のRSSファイルの読み込み
let existingXml = "";
try {
@ -56,26 +56,28 @@ export async function updatePodcastRSS() {
if (existingXml) {
// 既存のitem部分を抽出
const existingItemsMatch = existingXml.match(/<channel>([\s\S]*?)<\/channel>/);
const existingItemsMatch = existingXml.match(
/<channel>([\s\S]*?)<\/channel>/,
);
if (existingItemsMatch) {
const existingItems = existingItemsMatch[1];
const newItemStartIndex = existingItems.lastIndexOf("<item>");
const newItemStartIndex = existingItems!.lastIndexOf("<item>");
// 新しいitemを追加
const updatedItems = existingItems + itemsXml;
// lastBuildDateを更新
const updatedXml = existingXml.replace(
/<lastBuildDate>.*?<\/lastBuildDate>/,
`<lastBuildDate>${lastBuildDate}</lastBuildDate>`
`<lastBuildDate>${lastBuildDate}</lastBuildDate>`,
);
// items部分を置き換え
const finalXml = updatedXml.replace(
/<channel>[\s\S]*?<\/channel>/,
`<channel>${updatedItems}</channel>`
`<channel>${updatedItems}</channel>`,
);
// ファイルに書き込み
await fs.writeFile(outputPath, finalXml.trim());
} else {
@ -106,7 +108,7 @@ export async function updatePodcastRSS() {
</channel>
</rss>
`;
// Ensure directory exists
await fs.mkdir(dirname(outputPath), { recursive: true });
await fs.writeFile(outputPath, rssXml.trim());

View File

@ -66,5 +66,5 @@ export async function generateTTS(
fs.writeFileSync(filePath, audioBuffer);
console.log(`音声ファイル保存完了: ${filePath}`);
return filePath;
return path.basename(filePath);
}