45 lines
1.4 KiB
JavaScript
45 lines
1.4 KiB
JavaScript
const { Client } = require('pg');
|
|
|
|
async function main() {
|
|
const client = new Client({
|
|
host: process.env.PGHOST || "paddleocr-db",
|
|
port: parseInt(process.env.PGPORT || "5432"),
|
|
user: process.env.PGUSER || "postgres",
|
|
password: process.env.PGPASSWORD || "postgres",
|
|
database: process.env.PGDATABASE || "dopfm",
|
|
});
|
|
|
|
await client.connect();
|
|
console.log('Connected to PG database.');
|
|
|
|
const res = await client.query("SELECT id, filename FROM documents WHERE parsed = false;");
|
|
console.log(`Found ${res.rows.length} documents to parse.`);
|
|
|
|
for (let i = 0; i < res.rows.length; i++) {
|
|
const row = res.rows[i];
|
|
console.log(`[${i+1}/${res.rows.length}] Reparsing ${row.filename} (ID: ${row.id})...`);
|
|
try {
|
|
const response = await fetch('http://localhost:3000/api/parse', {
|
|
method: 'POST',
|
|
headers: { 'Content-Type': 'application/json' },
|
|
body: JSON.stringify({ filename: row.filename })
|
|
});
|
|
if (response.ok) {
|
|
console.log(`Successfully triggered parse for ${row.filename}. Status: ${response.status}`);
|
|
} else {
|
|
console.error(`Failed to parse ${row.filename}. Status: ${response.status}, Error: ${await response.text()}`);
|
|
}
|
|
} catch (err) {
|
|
console.error(`Fetch error for ${row.filename}:`, err.message);
|
|
}
|
|
}
|
|
|
|
await client.end();
|
|
console.log('Done reparsing.');
|
|
}
|
|
|
|
main().catch(err => {
|
|
console.error('Fatal error:', err);
|
|
process.exit(1);
|
|
});
|