Zum Inhalt springen

Benutzer:Klaus/common.js

aus AufEinWort, der freien Forschung
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 24. April 2025 um 15:00 Uhr durch Nikolaos (Diskussion | Beiträge). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.

  • Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
  • Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
  • Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
// 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.');
      }
    });
  });
});