Wikibooks:Elenchi generati offline/Libri non linkati nei ripiani: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
creo
(Nessuna differenza)

Versione delle 17:23, 17 ago 2012

Questo elenco generato il da una query su una copia del database di Wikibooks raccoglie tutte le pagine che sono libri non linkati in alcun ripiano.


Query

Alternative

  • Apri [1], scorri fino al dump più recente, scarica il dump "List of page titles"; scompattalo.
  • Esegui su terminale (Unix/Linux):
    echo 'titoli = [' > titoli.txt
    grep -v '/' < list_of_page_titles | sed 's/\"/\\"/g ; s/^/"/ ; s/$/",/' >> titoli.txt
    echo '];' >> titoli.txt
  • Apri una pagina di Wikibooks, e la console Javascript del browser che stai usando.
  • Copia tutto il testo del file titoli.txt ed eseguito nella console come una sola istruzione JS.
  • Incolla questo codice nella console ed eseguilo:
console.log("Libri che non sono linkati dai ripiani:");
for(i = 0, j = 10; i < titoli.length; i+= 10, j+= 10) {
    analizza(titoli.slice(i, j));
}
console.log("Fine elenco.");

// @param titoli Un array di non più di 10 titoli.
function analizza(titoli) {
query = $.ajax({
        url: mw.util.wikiScript('api'),
        // Questa API non supporta più di 10 titoli alla volta...
        data: { action: 'query', prop: 'info', titles: titoli.join("|"), format: 'json' },
        type: 'POST', async: false
    });
pagine = JSON.parse(query.responseText).query.pages;

for(id in pagine) {
    if (pagine[id].redirect != undefined) // è un redirect
        continue;
    
    query = $.ajax({
            url: mw.util.wikiScript('api'),
            data: { action: 'query', list: 'backlinks', blnamespace: 102, bltitle: pagine[id].title, format: 'json' },
            async: false
    });
    backlinks = JSON.parse(query.responseText).query.backlinks;
    
    if (backlinks.length == 0) console.log("# [[" + pagine[id].title + "]]");
}
}

Elenco