// /scraper/updateLiveData.js require("dotenv").config({ path: "../.env" }); const { Pool } = require("pg"); const scrapeScoreboard = require("./scrapeScoreboard"); const scrapeSpiele = require("./scrapeSpiele"); const pool = new Pool({ user: process.env.DB_USER, host: "127.0.0.1", database: process.env.DB_NAME, password: process.env.DB_PASSWORD, port: process.env.DB_PORT, }); console.log("🔌 Verbinde mit DB:", { host: "127.0.0.1", port: process.env.DB_PORT, user: process.env.DB_USER, db: process.env.DB_NAME }); async function updateAllTeams() { const { rows: teams } = await pool.query(` SELECT id, name, scraper_identifier, tabellenlink, spielelink FROM teams WHERE tabellenlink IS NOT NULL AND spielelink IS NOT NULL AND scraper_identifier IS NOT NULL `); for (const team of teams) { try { console.log(`🔄 ${team.name} (ID ${team.id})`); const scoreboard = await scrapeScoreboard(team.tabellenlink); const spiele = await scrapeSpiele(team.spielelink); await pool.query(` INSERT INTO team_live_data (team_id, scoreboard, spiele) VALUES ($1, $2, $3) ON CONFLICT (team_id) DO UPDATE SET scoreboard = EXCLUDED.scoreboard, spiele = EXCLUDED.spiele, last_updated = now() `, [team.id, JSON.stringify(scoreboard), JSON.stringify(spiele)]); console.log(`✅ Gespeichert: ${team.name}`); } catch (err) { console.error(`❌ Fehler bei ${team.name}:`, err.message); } } await pool.end(); } updateAllTeams();