MediaWiki:Common.js: Difference between revisions

From DefacerID Encyclopedia
No edit summary
No edit summary
 
(14 intermediate revisions by the same user not shown)
Line 1: Line 1:
const wikihome = 'https://wiki.defacer.id';
$(document).ready(function() {
$(document).ready(function() {
     $('.cs-comment-form').show();
     $('.cs-comment-form').show();
});
$(document).ready(function () {
    if (mw.config.get('wgUserGroups').indexOf('sysop') === -1) {
        $('#p-tb').hide();
    }
});
});




(function() {
(function() {
     fetch('http://localhost/wikidef/api.php?action=query&list=random&rnnamespace=0&rnlimit=10&format=json')
    function shuffleArray(array) {
        for (let i = array.length - 1; i > 0; i--) {
            const j = Math.floor(Math.random() * (i + 1));
            [array[i], array[j]] = [array[j], array[i]];
        }
        return array;
    }
 
     fetch(`${wikihome}/api.php?action=query&list=allcategories&aclimit=max&format=json`)
         .then(response => response.json())
         .then(response => response.json())
         .then(data => {
         .then(data => {
             const articles = data.query.random;
             const allCategories = data.query.allcategories
                .map(cat => cat['*'])
                .filter(category => category !== 'Pages with ignored display titles');
 
            const shuffledCategories = shuffleArray(allCategories);
 
             const container = document.getElementById('random-articles');
             const container = document.getElementById('random-articles');
             container.innerHTML = ''; // Clear the loading text
             container.innerHTML = '';
           
 
             articles.forEach(article => {
             shuffledCategories.forEach(category => {
                 const div = document.createElement('div');
                 const div = document.createElement('div');
                 div.className = 'random-article';
                 div.className = 'category-group';
               
 
                 const title = document.createElement('h2');
                 const categoryTitle = document.createElement('h2');
                 const link = document.createElement('a');
                 const link = document.createElement('a');
                 link.href = `http://localhost/wikidef/wiki/${article.title}`;
                 link.href = `${wikihome}/index.php/Category:${encodeURIComponent(category)}`;
                 link.textContent = article.title;
                 link.textContent = category;
                 title.appendChild(link);
                 categoryTitle.appendChild(link);
                  
                 div.appendChild(categoryTitle);
                 const description = document.createElement('p');
 
                 description.textContent = 'Short description or extract of the article'; // Add your logic for description here
                 const loadingMessage = document.createElement('h3');
               
                 loadingMessage.textContent = 'loading';
                div.appendChild(title);
                 div.appendChild(loadingMessage);
                 div.appendChild(description);
 
               
                 container.appendChild(div);
                 container.appendChild(div);
                fetch(`${wikihome}/api.php?action=query&list=categorymembers&cmtitle=Category:${encodeURIComponent(category)}&cmtype=page&cmlimit=10&format=json`)
                    .then(response => response.json())
                    .then(data => {
                        const articles = data.query.categorymembers.map(member => member.title);
                        const shuffledArticles = shuffleArray(articles);
                        div.removeChild(loadingMessage);
                        shuffledArticles.forEach(articleTitle => {
                            const articleTitleElement = document.createElement('h3');
                            const link = document.createElement('a');
                            link.href = `${wikihome}/index.php/${articleTitle.replace(/ /g, "_")}`;
                            link.textContent = articleTitle;
                            articleTitleElement.appendChild(link);
                            div.appendChild(articleTitleElement);
                        });
                    })
                    .catch(error => {
                        console.error('Error fetching category members:', error);
                        loadingMessage.textContent = 'Error loading articles';
                    });
             });
             });
        })
        .catch(error => {
            console.error('Error fetching categories:', error);
         });
         });
})();
})();

Latest revision as of 09:58, 15 August 2024

const wikihome = 'https://wiki.defacer.id';

$(document).ready(function() {
    $('.cs-comment-form').show();
});

$(document).ready(function () {
    if (mw.config.get('wgUserGroups').indexOf('sysop') === -1) {
        $('#p-tb').hide();
    }
});


(function() {
    function shuffleArray(array) {
        for (let i = array.length - 1; i > 0; i--) {
            const j = Math.floor(Math.random() * (i + 1));
            [array[i], array[j]] = [array[j], array[i]];
        }
        return array;
    }

    fetch(`${wikihome}/api.php?action=query&list=allcategories&aclimit=max&format=json`)
        .then(response => response.json())
        .then(data => {
            const allCategories = data.query.allcategories
                .map(cat => cat['*'])
                .filter(category => category !== 'Pages with ignored display titles');

            const shuffledCategories = shuffleArray(allCategories);

            const container = document.getElementById('random-articles');
            container.innerHTML = '';

            shuffledCategories.forEach(category => {
                const div = document.createElement('div');
                div.className = 'category-group';

                const categoryTitle = document.createElement('h2');
                const link = document.createElement('a');
                link.href = `${wikihome}/index.php/Category:${encodeURIComponent(category)}`;
                link.textContent = category;
                categoryTitle.appendChild(link);
                div.appendChild(categoryTitle);

                const loadingMessage = document.createElement('h3');
                loadingMessage.textContent = 'loading';
                div.appendChild(loadingMessage);

                container.appendChild(div);

                fetch(`${wikihome}/api.php?action=query&list=categorymembers&cmtitle=Category:${encodeURIComponent(category)}&cmtype=page&cmlimit=10&format=json`)
                    .then(response => response.json())
                    .then(data => {
                        const articles = data.query.categorymembers.map(member => member.title);
                        const shuffledArticles = shuffleArray(articles);

                        div.removeChild(loadingMessage);

                        shuffledArticles.forEach(articleTitle => {
                            const articleTitleElement = document.createElement('h3');
                            const link = document.createElement('a');
                            link.href = `${wikihome}/index.php/${articleTitle.replace(/ /g, "_")}`;
                            link.textContent = articleTitle;
                            articleTitleElement.appendChild(link);
                            div.appendChild(articleTitleElement);
                        });
                    })
                    .catch(error => {
                        console.error('Error fetching category members:', error);
                        loadingMessage.textContent = 'Error loading articles';
                    });
            });
        })
        .catch(error => {
            console.error('Error fetching categories:', error);
        });
})();