MediaWiki:Common.js: Revizyonlar arasındaki fark

MYWiki sitesinden
Gezinti kısmına atla Arama kısmına atla
Değişiklik özeti yok
Etiket: Geri alındı
Değişiklik özeti yok
Etiket: Geri alındı
1. satır: 1. satır:
// ==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() {
(function() {
     if (mw.config.get('wgNamespaceNumber') < 0) return; // Özel: ve Dosya: vb. sayfalarda çalışmaz
     var ns = mw.config.get('wgNamespaceNumber');
     if (mw.config.get('wgTitle') === 'Anasayfa') return; // Anasayfa hariç
     var pageTitle = mw.config.get('wgTitle');
     if (mw.config.get('wgNamespaceNumber') !== 0) return; // Wiki sayfası değilse çık
     var username = mw.config.get('wgUserName');


     const currentUser = mw.config.get('wgUserName');
     // Sadece normal wiki sayfaları
     const pageTitle = mw.config.get('wgPageName');
     if (ns !== 0) return;


     function countWords(text) {
     var content = document.getElementById('mw-content-text');
        return text.trim().split(/\s+/).length;
    if (!content) return;
    }


     function countCompoundWords(text) {
     var textLength = content.innerText.trim().length;
        return (text.match(/\b\w{2,}\w+\b/g) || []).length;
    var images = content.querySelectorAll('img').length;
     }
     var links = content.querySelectorAll('a').length;


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


    function showTemplate(templateName, container=document.body) {
         if (!username) return; // anonim kullanıcılar için dur
        const div = document.createElement('div');
        div.style.cssText = 'border:2px solid #ff6600; background-color:#fff3e6; padding:10px; border-radius:8px; font-weight:bold; color:#333; margin:10px 0;';
         if(templateName === 'Gelismeli') div.textContent = 'Bu sayfa yeterince geliştirilmemiştir. Lütfen içerik ekleyin!';
        if(templateName === 'Tecrübesiz') div.textContent = 'Bu kullanıcı tecrübesiz bir düzenleyicidir. Lütfen katkılarını gözden geçirin.';
        if(templateName === 'Hosgeldin') div.textContent = 'Hoşgeldin! Anasayfanı ve diğer sayfaları kontrol ederek katkıda bulunabilirsin.';
        container.prepend(div);
    }


    function checkPage() {
        // Kullanıcının Gelismeli sayfalarını say
         const contentEl = document.querySelector('#mw-content-text');
        fetch(`https://wiki.mycm.site/api.php?action=query&list=allpages&apprefix=${username}:&apnamespace=0&format=json`)
        if(!contentEl) return;
         .then(res => res.json())
 
         .then(data => {
         const text = contentEl.innerText || '';
             let gelismeliCount = 0;
        if(countWords(text) < 3 || countCompoundWords(text) < 3 || !hasImages()) {
             data.query.allpages.forEach(page => {
             showTemplate('Gelismeli');
                fetch(`https://wiki.mycm.site/api.php?action=query&titles=${encodeURIComponent(page.title)}&prop=revisions&rvprop=content&format=json`)
             // Kullanıcının sayfaları sayılacak (örnek: MediaWiki API kullan)
                 .then(r => r.json())
            fetch(`/api.php?action=query&list=allpages&apprefix=User:${currentUser}&format=json`)
                 .then(p => {
                 .then(res => res.json())
                     var pageContent = Object.values(p.query.pages)[0].revisions[0]['*'];
                 .then(data => {
                     if (pageContent.includes('{{Gelismeli}}')) gelismeliCount++;
                     const userPages = data.query.allpages || [];
                     if (gelismeliCount >= 5) {
                    let countGelismeli = 0;
                         // Kullanıcı sayfasına Tecrübesiz-duzenleyici ekle
                     userPages.forEach(p => {
                        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'});
                        // Burada gerçek kontroller için API ile pagecontent alınabilir
                         // Kullanıcıya mesaj gönder
                        if(true) countGelismeli++; // örnek olarak hepsini say
                        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'});
                    });
                     if(countGelismeli >= 5) {
                         showTemplate('Tecrübesiz');
                         showTemplate('Hosgeldin');
                     }
                     }
                 });
                 });
         }
            });
         });
     }
     }
    checkPage();
})();
})();

14.54, 8 Şubat 2026 tarihindeki hâli

// ==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'});
                    }
                });
            });
        });
    }
})();