1e51ef7def
- Konzept/, didaktik_geografie/, didaktik_simulation/, v2-modules/, v2-platform/ - 12 code-workspace-Files - STATUS-*.md - viele M/D/R-Änderungen an bereits getrackten Files - .gitignore verstärkt: **/.humaninput/, **/secret_keys.txt Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
34 lines
1.2 KiB
JavaScript
34 lines
1.2 KiB
JavaScript
const { chromium } = require('@playwright/test');
|
|
(async () => {
|
|
const browser = await chromium.launch();
|
|
const sims = [
|
|
'klima', 'fluss', 'heli', 'logistik', 'busfahrt', 'farmer',
|
|
'energiemanager', 'eu-werkstatt', 'sonnensystem', 'weltkueche',
|
|
'fluggesellschaft', 'entscheidungstag',
|
|
];
|
|
const rows = [];
|
|
for (const sim of sims) {
|
|
const page = await browser.newPage();
|
|
const r = await page.goto('https://geograsim.at/modul-' + sim);
|
|
if (r?.status() !== 200) { rows.push({sim, status:r?.status()}); await page.close(); continue; }
|
|
await page.waitForTimeout(800);
|
|
const data = await page.evaluate(() => {
|
|
const meta = document.querySelectorAll('.md-meta-item');
|
|
const out = {};
|
|
meta.forEach(el => {
|
|
const lbl = el.querySelector('.md-meta-label')?.textContent.trim().replace(':','');
|
|
const val = el.querySelector('.md-meta-value')?.textContent.trim();
|
|
if (lbl) out[lbl] = val;
|
|
});
|
|
return {
|
|
title: document.querySelector('h1')?.textContent.trim(),
|
|
meta: out,
|
|
};
|
|
});
|
|
rows.push({sim, ...data});
|
|
await page.close();
|
|
}
|
|
rows.forEach(r => console.log(JSON.stringify(r)));
|
|
await browser.close();
|
|
})();
|