×
Create a new article
Write your page title here:
We currently have 30 articles on Ghost Machine Wiki. Type your article name above or create one of the articles listed here!



    Ghost Machine Wiki

    Note: After publishing, you may have to bypass your browser's cache to see the changes.

    • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
    • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
    • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
    • Opera: Press Ctrl-F5.
    /* Created in Wikia by Gguigui1 https://dev.fandom.com/wiki/User:Gguigui1
    Under CC-BY-SA licence */
    $(function() {
        var config = mw.config.get([
            'wgContentLanguage',
            'wgUserLanguage',
            'wgPageName'
        ]);
        
        var i18n = {
            en: {
                otherspages: "Or perhaps are you looking for one of this page:",
                similitude: "% similarity"
            },
            es: {
                otherspages: "O tal vez estes buscando alguna de estas paginas:",
                similitude: "% de similaritud"
            },
            ja: {
                otherspages: "お探しのページはこちらですか?",
                similitude: "% 類似ページ"
            },
            fr: {
                otherspages: "Ou peut-être cherchez-vous une des pages suivantes:",
                similitude: "% de similitude"
            },
            tr: {
                otherspages: "Ya da belki bu sayfalardan birini mi arıyorsunuz:",
                similitude: "% benzerlik"
            },
            pl: {
                otherspages: "Może szukasz jednej z tych stron:",
                similitude: "% podobieństwa"
            }
        };
        i18n = $.extend({}, i18n.en, i18n[config.wgContentLanguage], i18n[config.wgUserLanguage]);
        var similitude = similitude || 60;
    
        function sortbysimilitudeandcolor() {
            var nombres = [];
            $('.noarticletext ul li').each(function() { //Get similarity and sort it
                nombres.push($(this).html().substring($(this).html().lastIndexOf("(") + 1, $(this).html().length).split('%')[0]);
            });
            nombres.sort(function(a, b) {
                return a - b;
            });
            nombres.reverse(); //Reverse the array (compulsory here)
            for (i = 0; i < nombres.length; i++) { //Change pages list, sort by similarity
                $(".noarticletext ul li:contains(" + nombres[i] + ")").appendTo('.noarticletext ul');
                if (nombres[i] >= 90) {
                    $(".noarticletext ul li:contains(" + nombres[i] + ") *").css('color', 'green');
                } else if (nombres[i] >= 80) {
                    $(".noarticletext ul li:contains(" + nombres[i] + ") *").css('color', 'blue');
                } else if (nombres[i] >= 70) {
                    $(".noarticletext ul li:contains(" + nombres[i] + ") *").css('color', 'orange');
                } else if (nombres[i] >= 60) {
                    $(".noarticletext ul li:contains(" + nombres[i] + ") *").css('color', 'red');
                }
            }
        }
    
        function searchforpages() {
            new mw.Api().get( {
                action: 'query',
                list: 'allpages',
                apfilterredir: 'nonredirects',
                apprefix: config.wgPageName.substring(0, 1),
                aplimit: 'max'
            } ).done( function( data ) {
                for (var p in data.query.allpages) {
                    var similar_characters_count = 0;
                    var looppage = data.query.allpages[p].title; //For easier code
                    var limit = looppage.length < config.wgPageName.length ? looppage.length : config.wgPageName.length;
                    for (i = 0; i < limit; i++) {
                        if (looppage.charAt(i).toLowerCase() == config.wgPageName.replace(/_/g, ' ').charAt(i).toLowerCase()) {
                            similar_characters_count += 1;
                        }
                    }
                    similar_characters_count = Math.round(similar_characters_count / limit * 100);
                    if (similar_characters_count >= similitude) {
                        if (!$('.noarticletext ul').length) {
                            $('.noarticletext p:last').remove();
                            $('.noarticletext').append('<p style="font-size:130%; text-align:center;">' + i18n.otherspages + '</p><ul style="list-style-type:circle;"></ul><p></p>');
                        }
                        $('.noarticletext ul').append('<li><a href="' + mw.util.getUrl(looppage) + '">' + looppage + ' (' + similar_characters_count + i18n.similitude + ')</a></li>');
                    }
                }
                sortbysimilitudeandcolor();
            });
        }
        if (!$('.noarticletext').length || $('.mw-warning-with-logexcerpt').length) {
            return; //No need to check for potential searched pages
        } else {
            searchforpages();
        }
    });
    
    Cookies help us deliver our services. By using our services, you agree to our use of cookies.
    Cookies help us deliver our services. By using our services, you agree to our use of cookies.