feat: 完善后端启动,打二进制文件防止因为网络无法运行

This commit is contained in:
ethan.chen
2025-11-05 15:11:29 +08:00
parent 73945c40e5
commit fe64b293dd
5 changed files with 21 additions and 43 deletions

View File

@@ -5,6 +5,9 @@
import { MusicStatus } from "./apple_music.ts";
import { DatabaseSync } from 'node:sqlite'
const userDataDir = Deno.env.get("USER_DATA_DIR") ?? ".";
// 将 DB_PATH 设为 `${userDataDir}/lyrics.db`
const DB_PATH = `${userDataDir}/lyrics.db`;
export interface LyricsData {
current_lyric_time: number | null;
@@ -37,7 +40,6 @@ let lyricsCache: LyricsCache = {
deleted: false,
};
const DB_PATH = "./lyrics.db";
const db = new DatabaseSync(DB_PATH);
/**
@@ -80,12 +82,12 @@ export function clearLyricsCache(): void {
async function loadLyricsFromDB(
trackName: string,
artist: string
): Promise<string | null> {
): Promise<string> {
try {
const content = db.prepare(`SELECT lyrics_text FROM lyrics WHERE track_name = ? AND artist = ?`).get(trackName, artist);
return content.lyrics_text;
return String(content?.lyrics_text ?? '');
} catch (error) {
return null;
return '';
}
}
@@ -101,8 +103,8 @@ export async function saveLyrics(
try {
db.prepare(`DELETE FROM lyrics WHERE track_name = ? AND artist = ?`).run(trackName, artist);
db.prepare(`INSERT INTO lyrics (track_name, artist, lyrics_text, source) VALUES (?, ?, ?, ?)`).run(trackName, artist, lyricsText, source);
lyricsCache.track_name = trackName;
lyricsCache.artist = artist;
lyricsCache.track_name = trackName ?? null;
lyricsCache.artist = artist ?? null;
lyricsCache.lyrics_text = lyricsText;
lyricsCache.source = source;
console.log(`保存歌词成功: ${trackName} - ${artist}`);
@@ -117,7 +119,7 @@ export async function saveLyrics(
export async function searchLyrics(
trackName: string,
artistName: string
): Promise<string | null> {
): Promise<string> {
try {
const searchVariants = [
{ title: trackName, artist: artistName },
@@ -155,10 +157,10 @@ export async function searchLyrics(
}
}
return null;
return '';
} catch (error) {
console.error(`搜索歌词时出错: ${error}`);
return null;
return '';
}
}
@@ -283,8 +285,8 @@ export async function getLyricsData(status: MusicStatus): Promise<LyricsData> {
console.log(`歌曲切换,重新获取歌词: ${trackName} - ${artist}`);
// 清空缓存
lyricsCache.track_name = trackName;
lyricsCache.artist = artist;
lyricsCache.track_name = trackName ?? null;
lyricsCache.artist = artist ?? null;
lyricsCache.lyrics_text = null;
lyricsCache.deleted = false;