feat: import new reservoir data, add lake management scripts, and update overview UI components
continuous-integration/drone/push Build encountered an error
continuous-integration/drone/push Build encountered an error
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
import axios from 'axios';
|
||||
import * as cheerio from 'cheerio';
|
||||
import https from 'https';
|
||||
|
||||
const ALL_LAKES = [
|
||||
{"href": "Mereni.aspx?id=BIBI&oid=1", "text": "VD Bílsko"},
|
||||
{"href": "Mereni.aspx?id=RACU&oid=3", "text": "VD České Údolí"},
|
||||
{"href": "Mereni.aspx?id=KLDP&oid=3", "text": "VD Dolejší Padrťský rybník"},
|
||||
{"href": "Mereni.aspx?id=CPDR&oid=3", "text": "VD Dráteník"},
|
||||
{"href": "Mereni.aspx?id=KLHP&oid=3", "text": "VD Hořejší Padrťský rybník"},
|
||||
{"href": "Mereni.aspx?id=SCHU&oid=1", "text": "VD Humenice"},
|
||||
{"href": "Mereni.aspx?id=BLHU&oid=1", "text": "VD Husinec"},
|
||||
{"href": "Mereni.aspx?id=VLKA&oid=2", "text": "VD Kamýk"},
|
||||
{"href": "Mereni.aspx?id=SPKA&oid=1", "text": "VD Karhof"},
|
||||
{"href": "Mereni.aspx?id=KLKL&oid=3", "text": "VD Klabava"},
|
||||
{"href": "Mereni.aspx?id=KCKC&oid=3", "text": "VD Klíčava"},
|
||||
{"href": "Mereni.aspx?id=LILA&oid=3", "text": "VD Láz"},
|
||||
{"href": "Mereni.aspx?id=MZLU&oid=3", "text": "VD Lučina"},
|
||||
{"href": "Mereni.aspx?id=SPNE&oid=2", "text": "VD Němčice"},
|
||||
{"href": "Mereni.aspx?id=UHNY&oid=3", "text": "VD Nýrsko"},
|
||||
{"href": "Mereni.aspx?id=OPOB&oid=3", "text": "VD Obecnice"},
|
||||
{"href": "Mereni.aspx?id=PPPI&oid=3", "text": "VD Pilská (u Příbramě)"},
|
||||
{"href": "Mereni.aspx?id=SAPI&oid=2", "text": "VD Pilská u Žďáru"},
|
||||
{"href": "Mereni.aspx?id=HESE&oid=2", "text": "VD Sedlice"},
|
||||
{"href": "Mereni.aspx?id=CRSO&oid=1", "text": "VD Soběnov"},
|
||||
{"href": "Mereni.aspx?id=SVSV&oid=2", "text": "VD Staviště"},
|
||||
{"href": "Mereni.aspx?id=STST&oid=2", "text": "VD Strž"},
|
||||
{"href": "Mereni.aspx?id=SMSM&oid=3", "text": "VD Suchomasty"},
|
||||
{"href": "Mereni.aspx?id=ZESV&oid=2", "text": "VD Švihov (Želivka)"},
|
||||
{"href": "Mereni.aspx?id=TRTR&oid=2", "text": "VD Trnávka"},
|
||||
{"href": "Mereni.aspx?id=VLVE&oid=2", "text": "VD Vrané"},
|
||||
{"href": "Mereni.aspx?id=HEVR&oid=2", "text": "VD Vřesník"},
|
||||
{"href": "Mereni.aspx?id=CPZA&oid=3", "text": "VD Záskalská"},
|
||||
{"href": "Mereni.aspx?id=SPZH&oid=1", "text": "VD Zhejral"},
|
||||
{"href": "Mereni.aspx?id=STZL&oid=3", "text": "VD Žlutice"}
|
||||
];
|
||||
|
||||
async function checkLakes() {
|
||||
const agent = new https.Agent({ rejectUnauthorized: false });
|
||||
const validLakes: any[] = [];
|
||||
|
||||
for (const lake of ALL_LAKES) {
|
||||
const url = `https://www.pvl.cz/portal/nadrze/cz/pc/${lake.href}`;
|
||||
try {
|
||||
const response = await axios.get(url, {
|
||||
httpsAgent: agent,
|
||||
headers: { 'User-Agent': 'Mozilla/5.0' }
|
||||
});
|
||||
const $ = cheerio.load(response.data);
|
||||
let hasHistory = false;
|
||||
let hasInflow = false;
|
||||
|
||||
$('table').each((i, tbl) => {
|
||||
const text = $(tbl).text();
|
||||
if (text.includes('Aktuální hodnoty') && text.includes('Přítok')) {
|
||||
hasInflow = true;
|
||||
}
|
||||
if (text.includes('Datum') && text.includes('Odtok')) {
|
||||
const rows = $(tbl).find('tr').length;
|
||||
if (rows > 2) hasHistory = true;
|
||||
}
|
||||
});
|
||||
|
||||
if (hasHistory && hasInflow) {
|
||||
validLakes.push(lake);
|
||||
console.log(`[VALID] ${lake.text}`);
|
||||
} else {
|
||||
console.log(`[INVALID] ${lake.text} (Hist:${hasHistory}, In:${hasInflow})`);
|
||||
}
|
||||
} catch (err: any) {
|
||||
console.error(`[ERROR] ${lake.text}: ${err.message}`);
|
||||
}
|
||||
}
|
||||
|
||||
console.log('\\n--- SUMMARY OF VALID LAKES ---');
|
||||
console.log(JSON.stringify(validLakes, null, 2));
|
||||
}
|
||||
|
||||
checkLakes();
|
||||
Reference in New Issue
Block a user