fix Analyse

This commit is contained in:
nadja
2026-08-26 16:17:54 +02:00
parent dbd31c6cd0
commit 97e6adefad
7 changed files with 54 additions and 23 deletions

View File

@@ -7,7 +7,12 @@ const DB_FILE = process.env.ANALYTICS_PATH || join(__dirname, 'analytics.json');
function loadDB() {
if (existsSync(DB_FILE)) {
return JSON.parse(readFileSync(DB_FILE, 'utf-8'));
try {
return JSON.parse(readFileSync(DB_FILE, 'utf-8'));
} catch (e) {
console.error('Analytics Datei korrupt, Backup erstellt:', e.message);
try { writeFileSync(DB_FILE + '.bak', readFileSync(DB_FILE, 'utf-8')); } catch {}
}
}
return { events: [], _counter: 0 };
}

View File

@@ -7,7 +7,12 @@ const DB_FILE = process.env.DB_PATH || join(__dirname, 'data.json');
function loadDB() {
if (existsSync(DB_FILE)) {
return JSON.parse(readFileSync(DB_FILE, 'utf-8'));
try {
return JSON.parse(readFileSync(DB_FILE, 'utf-8'));
} catch (e) {
console.error('DB Datei korrupt, Backup erstellt:', e.message);
try { writeFileSync(DB_FILE + '.bak', readFileSync(DB_FILE, 'utf-8')); } catch {}
}
}
return { users: [], recipes: [], invite_tokens: [], _counters: { users: 0, recipes: 0, invite_tokens: 0 } };
}

View File

@@ -83,6 +83,7 @@ router.post('/from-tiktok', async (req, res) => {
let extracted = null;
let aiStatus = ollamaAvailable ? 'available' : 'unavailable';
let aiMessage = '';
if (ollamaAvailable && tiktokData.title) {
try {
extracted = await extractRecipe(tiktokData.title);
@@ -90,13 +91,19 @@ router.post('/from-tiktok', async (req, res) => {
} catch (e) {
console.error('Ollama Extraktion fehlgeschlagen:', e.message);
aiStatus = 'error';
aiMessage = e.message;
}
} else if (!ollamaAvailable) {
aiMessage = 'Ollama-Server nicht erreichbar';
} else if (!tiktokData.title) {
aiMessage = 'Kein Titel im Video gefunden';
}
res.json({
tiktok: tiktokData,
ollama: ollamaAvailable,
aiStatus,
aiMessage,
extracted,
});
} catch (error) {
@@ -115,6 +122,7 @@ router.post('/from-instagram', async (req, res) => {
let extracted = null;
let aiStatus = ollamaAvailable ? 'available' : 'unavailable';
let aiMessage = '';
if (ollamaAvailable && instagramData.title) {
try {
extracted = await extractRecipe(instagramData.title);
@@ -122,13 +130,19 @@ router.post('/from-instagram', async (req, res) => {
} catch (e) {
console.error('Ollama Extraktion fehlgeschlagen:', e.message);
aiStatus = 'error';
aiMessage = e.message;
}
} else if (!ollamaAvailable) {
aiMessage = 'Ollama-Server nicht erreichbar';
} else if (!instagramData.title) {
aiMessage = 'Kein Titel im Video gefunden';
}
res.json({
instagram: instagramData,
ollama: ollamaAvailable,
aiStatus,
aiMessage,
extracted,
});
} catch (error) {

View File

@@ -22,6 +22,7 @@ export async function extractRecipe(description) {
prompt: `Extrahiere ein Rezept aus dieser TikTok-Videobeschreibung:\n\n${description}`,
stream: false,
}),
signal: AbortSignal.timeout(120000),
});
if (!response.ok) {