Zum Inhalt springen

„Benutzer:Klaus/common.js“ – Versionsunterschied

aus AufEinWort, der freien Forschung
KKeine Bearbeitungszusammenfassung
Markierung: Zurückgesetzt
K Die Seite wurde geleert.
Markierungen: Geleert Manuelle Zurücksetzung
 
Zeile 1: Zeile 1:


// JavaScript zur gezielten Ersetzung des Weiterleitungs-Links innerhalb einer Wiki-Seite
mw.loader.using(["mediawiki.api"], function () {
  console.log("✅ MediaWiki API geladen – Script startet...");
  $(function () {
    console.log("✅ DOM bereit – Link wird eingefügt...");
    // Sichtbaren Link unterhalb des Seiteninhalts einfügen
    $('<p><a href="#" id="btn-ersetzen">🛠️ Text prüfen & ersetzen</a></p>')
      .appendTo('#mw-content-text');
    console.log("✅ Link eingefügt – Warte auf Klick...");
    // Klick-Handler für den Link definieren
    $('#btn-ersetzen').click(async function (e) {
      e.preventDefault();
      const api = new mw.Api();
      const title = mw.config.get('wgPageName');
      console.log("🔍 Lade Seiteninhalt für:", title);
      try {
        // Bestehenden Quelltext der Seite abrufen
        const pageData = await api.get({
          action: 'query',
          prop: 'revisions',
          rvprop: 'content',
          titles: title,
          formatversion: 2
        });
        const content = pageData.query.pages[0].revisions[0].content;
        console.log("📄 Seiteninhalt geladen:", content);
        // Aktuellen Wert aus dem versteckten Span-Element lesen
        const neuerWert = document.getElementById('umschriftErgebnis')?.textContent || '';
        console.log("🧪 Neuer Zielwert aus Umschrift:", neuerWert);
        // Nur den Link innerhalb der Weiterleitung ersetzen
        const neuerInhalt = content.replace(/#WEITERLEITUNG \[\[(.*?)\]\]/i, `#WEITERLEITUNG [[${neuerWert}]]`);
        if (neuerInhalt === content) {
          alert('⚠️ Keine ersetzbare Weiterleitung gefunden oder keine Änderung notwendig.');
          return;
        }
        console.log("✍️ Schreibe neuen Seiteninhalt:", neuerInhalt);
        // Seite mit geändertem Inhalt speichern
        await api.postWithToken('csrf', {
          action: 'edit',
          title: title,
          text: neuerInhalt,
          summary: 'Automatische Aktualisierung der Weiterleitung',
          minor: true
        });
        console.log("✅ Seite erfolgreich gespeichert – Neuladen...")
        // Seite neu laden, um Änderungen anzuzeigen
        location.reload();
      } catch (err) {
        console.error('Fehler beim Ersetzen:', err);
        alert('🚫 Fehler beim Ersetzen – siehe Konsole für Details.');
      }
    });
  });
});

Aktuelle Version vom 24. April 2025, 15:00 Uhr