MediaWiki:Common.js

MYWiki sitesinden
14.54, 8 Şubat 2026 tarihinde Admin (mesaj | katkılar) tarafından oluşturulmuş 68 numaralı sürüm
Gezinti kısmına atla Arama kısmına atla

Not: Yayımladıktan sonra değişiklikleri görmeniz için tarayıcınızın önbelleğini temizlemeniz gerekebilir.

  • Firefox / Safari: Shift tuşuna basılıyken Yeniden Yükle'ye tıklayın ya da Ctrl-F5 ya da Ctrl-R tıklayın (Mac için ⌘-R)
  • Google Chrome: Ctrl-Shift-R'ye basın. (Mac için ⌘-Shift-R)
  • Edge: Ctrl basılıyken Yenile'ye tıklayın ya da Ctrl-F5'e basın.
// ==UserScript==
// @name         Gelismeli ve Tecrübesiz Düzenleyici
// @namespace    mycm.site
// @version      1.0
// @description  Sayfa yetersizse Gelismeli, kullanıcı çok sayıda yetersiz sayfa yaparsa Tecrübesiz uyarısı
// @match        https://wiki.mycm.site/*
// @grant        none
// ==/UserScript==

(function() {
    var ns = mw.config.get('wgNamespaceNumber');
    var pageTitle = mw.config.get('wgTitle');
    var username = mw.config.get('wgUserName');

    // Sadece normal wiki sayfaları
    if (ns !== 0) return;

    var content = document.getElementById('mw-content-text');
    if (!content) return;

    var textLength = content.innerText.trim().length;
    var images = content.querySelectorAll('img').length;
    var links = content.querySelectorAll('a').length;

    // Sayfa yetersiz mi?
    if (textLength < 300 || images === 0 || links < 3) {
        var div = document.createElement('div');
        div.innerHTML = '{{Gelismeli}}';
        content.prepend(div);

        if (!username) return; // anonim kullanıcılar için dur

        // Kullanıcının Gelismeli sayfalarını say
        fetch(`https://wiki.mycm.site/api.php?action=query&list=allpages&apprefix=${username}:&apnamespace=0&format=json`)
        .then(res => res.json())
        .then(data => {
            let gelismeliCount = 0;
            data.query.allpages.forEach(page => {
                fetch(`https://wiki.mycm.site/api.php?action=query&titles=${encodeURIComponent(page.title)}&prop=revisions&rvprop=content&format=json`)
                .then(r => r.json())
                .then(p => {
                    var pageContent = Object.values(p.query.pages)[0].revisions[0]['*'];
                    if (pageContent.includes('{{Gelismeli}}')) gelismeliCount++;
                    if (gelismeliCount >= 5) {
                        // Kullanıcı sayfasına Tecrübesiz-duzenleyici ekle
                        fetch(`https://wiki.mycm.site/api.php?action=edit&title=User:${username}&appendtext={{Tecrubesiz-duzenleyici}}&token=${mw.user.tokens.get('editToken')}&format=json`, {method:'POST'});
                        // Kullanıcıya mesaj gönder
                        fetch(`https://wiki.mycm.site/api.php?action=edit&title=Message:${username}&appendtext={{Tecrubesiz-mesaj}}&token=${mw.user.tokens.get('editToken')}&format=json`, {method:'POST'});
                    }
                });
            });
        });
    }
})();