fix Analyse
This commit is contained in:
@@ -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 };
|
||||
}
|
||||
|
||||
@@ -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 } };
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user