Upload via GUI (202 Dateien)

This commit is contained in:
2026-10-11 07:05:39 +00:00
parent e7f8371b5f
commit 4a7a619f35
2 changed files with 56 additions and 20 deletions
+24 -3
View File
@@ -64,6 +64,27 @@ function ladeZugang() {
return { seite: z.seite, benutzer: z.benutzer, passwort: entschluesseln(z.passwort) };
}
/*
* Anfrage MIT Zugangsdaten an die WordPress-Seite.
* Weiterleitungen werden nie verfolgt: Sonst gingen die Kopfzeilen – vor allem
* der eigene X-AeroMC-Auth, den fetch bei einem Wechsel der Domain nicht von
* selbst entfernt – samt Anwendungspasswort an das Ziel der Weiterleitung.
* Gesendet wird außerdem nur über HTTPS und nur an die hinterlegte Seite.
*/
async function wordpressAnfrage(zugang, pfad, optionen) {
let ziel;
try { ziel = new URL(zugang.seite + pfad); } catch { throw new Error('Die hinterlegte WordPress-Adresse ist ungültig.'); }
if (ziel.protocol !== 'https:') throw new Error('Zugangsdaten werden nur über HTTPS gesendet – WordPress-Adresse prüfen.');
const res = await fetch(ziel, Object.assign({}, optionen, { headers: kopfzeilen(zugang), redirect: 'manual' }));
if (res.status >= 300 && res.status < 400) {
const wohin = res.headers.get('location') || 'unbekannt';
throw new Error(`Die Seite leitet weiter (HTTP ${res.status} → ${wohin}). Die Zugangsdaten wurden NICHT dorthin gesendet.
`
+ ' Bitte die genaue Adresse eintragen: node scripts/sign-release.js wordpress');
}
return res;
}
function kopfzeilen(zugang) {
const daten = Buffer.from(`${zugang.benutzer}:${zugang.passwort}`).toString('base64');
return {
@@ -101,7 +122,7 @@ function zugangsFehler(d, benutzer) {
}
async function pruefeZugang(zugang) {
const res = await fetch(`${zugang.seite}/wp-json/aeromc/v1/update-signatur/zugang`, { headers: kopfzeilen(zugang) });
const res = await wordpressAnfrage(zugang, '/wp-json/aeromc/v1/update-signatur/zugang', {});
if (res.status === 404) throw new Error('Die Seite kennt die Signatur-Schnittstelle nicht – ist das Plugin "AeroMC Freunde" (ab 1.5.4) installiert und aktiviert?');
let d = null;
try { d = await res.json(); } catch { /* keine JSON-Antwort */ }
@@ -189,8 +210,8 @@ async function hochladen(sig) {
console.log('» Signatur liegt bereits unverändert auf WordPress.');
return;
}
const res = await fetch(`${zugang.seite}/wp-json/aeromc/v1/update-signatur`, {
method: 'POST', headers: kopfzeilen(zugang), body: JSON.stringify(sig),
const res = await wordpressAnfrage(zugang, '/wp-json/aeromc/v1/update-signatur', {
method: 'POST', body: JSON.stringify(sig),
});
let antwort = {};
try { antwort = await res.json(); } catch { /* leer */ }