MediaWiki:Common.js

Version vom 25. November 2025, 08:47 Uhr von Secretsofnele (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Das folgende JavaScript wird für alle Benutzer geladen.: // == Goreanische runde Uhr == mw.loader.using(['mediawiki.util'], function () { const IHN_PER_EHN = 80; const EHN_PER_AHN = 40; const AHN_PER_DAY = 20; const IHN_PER_AHN = IHN_PER_EHN * EHN_PER_AHN; const IHN_PER_DAY = IHN_PER_AHN * AHN_PER_DAY; const SEC_PER_IHN = 86400 / IHN_PER_DAY; function getGoreanTime() { const now = new Date(); const mid…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

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
/* Das folgende JavaScript wird für alle Benutzer geladen. */
// == Goreanische runde Uhr ==
mw.loader.using(['mediawiki.util'], function () {

    const IHN_PER_EHN = 80;
    const EHN_PER_AHN = 40;
    const AHN_PER_DAY = 20;

    const IHN_PER_AHN = IHN_PER_EHN * EHN_PER_AHN;
    const IHN_PER_DAY = IHN_PER_AHN * AHN_PER_DAY;

    const SEC_PER_IHN = 86400 / IHN_PER_DAY;

    function getGoreanTime() {
        const now = new Date();
        const midnight = new Date(now.getFullYear(), now.getMonth(), now.getDate());
        const elapsed = (now - midnight) / 1000;

        const totalIhn = elapsed / SEC_PER_IHN;
        const dayIhn = ((totalIhn % IHN_PER_DAY) + IHN_PER_DAY) % IHN_PER_DAY;

        const ahnIndex = Math.floor(dayIhn / IHN_PER_AHN);
        const rest1 = dayIhn % IHN_PER_AHN;

        const ehn = Math.floor(rest1 / IHN_PER_EHN);
        const ihn = rest1 % IHN_PER_EHN;

        const ahn = ahnIndex + 1;

        return { ahnIndex, ahn, ehn, ihn };
    }

    function updateGoreanClock() {
        const handAhn = document.getElementById("handAhn");
        const handEhn = document.getElementById("handEhn");
        const handIhn = document.getElementById("handIhn");

        if (!handAhn) return;

        const time = getGoreanTime();

        const angleAhn = ((time.ahnIndex + time.ehn/40 + time.ihn/3200) / 20) * 360;
        const angleEhn = ((time.ehn + time.ihn/80) / 40) * 360;
        const angleIhn = (time.ihn / 80) * 360;

        handAhn.style.transform = `translate(-50%, -100%) rotate(${angleAhn}deg)`;
        handEhn.style.transform = `translate(-50%, -100%) rotate(${angleEhn}deg)`;
        handIhn.style.transform = `translate(-50%, -100%) rotate(${angleIhn}deg)`;

        document.getElementById("digitalAhn").textContent = "Ahn " + String(time.ahn).padStart(2, "0");
        document.getElementById("digitalEhn").textContent = "Ehn " + String(time.ehn).padStart(2, "0");
        document.getElementById("digitalIhn").textContent = "Ihn " + String(Math.floor(time.ihn)).padStart(2, "0");

        const info = document.getElementById("ahnInfo");
        if (time.ahn === 10) info.textContent = "10. Ahn – Goreanischer Mittag";
        else if (time.ahn === 20) info.textContent = "20. Ahn – Goreanische Mitternacht";
        else info.textContent = time.ahn + ". Ahn des goreanischen Tages";
    }

    function initGoreanClock() {
        if (!document.getElementById("gorClock")) return;

        updateGoreanClock();
        setInterval(updateGoreanClock, 150);
    }

    mw.hook('wikipage.content').add(initGoreanClock);
});