Järjestelmäviesti:Gadget-WikidataWatchlistLabels.js
Siirry navigaatioon
Siirry hakuun
Huomautus: Selaimen välimuisti pitää tyhjentää asetusten tallentamisen jälkeen, jotta muutokset tulisivat voimaan.
- Firefox ja Safari: Napsauta Shift-näppäin pohjassa Päivitä, tai paina Ctrl-F5 tai Ctrl-R (⌘-R Macilla)
- Google Chrome: Paina Ctrl-Shift-R (⌘-Shift-R Macilla)
- Internet Explorer ja Edge: Napsauta Ctrl-näppäin pohjassa Päivitä tai paina Ctrl-F5
- Opera: Paina Ctrl-F5.
function getLabel(itemnumbers) {
var langCode = mw.config.get('wgUserLanguage');
$.ajax( {
url: '//www.wikidata.org/w/api.php',
data: {
'format': 'json',
'action': 'wbgetentities',
'ids': itemnumbers.join('|'),
'props': 'labels',
'languages': langCode,
'maxage': 30,
'smaxage': 30,
'languagefallback':true
},
dataType: 'jsonp',
headers: { 'Api-User-Agent': 'WikidataWatchlistLabels ( https://en.wikipedia.org/wiki/User:Evad37/WikidataWatchlistLabels.js )' },
cache: true
} )
.done( function ( data ) {
if ( data.success ) {
for ( var item in data.entities ) {
// Get label
var label = '[?]';
if ( data.entities[item].labels && data.entities[item].labels[langCode] && data.entities[item].labels[langCode].value ) {
label = data.entities[item].labels[langCode].value;
}
// Add labels to items
$( "span." + item + " > a").empty().append(
label,
' ',
$('<span>')
.css('font-size', '85%')
.text('(' + item + ')')
);
}
}
});
}
$( function($) {
if( mw.config.get('wgNamespaceNumber') != -1 ) {
// only operate in Special: namespace
return;
}
// Hook on to changes in page content - initial load, 'New filters for edit review' changes, etc
mw.hook( 'wikipage.content' ).add( function ( $content ) {
var items = [];
// Find items linked in comments
$content.find(
"li.mw-changeslist-src-mw-wikibase > span.comment > a.external, "+
"table.mw-changeslist-src-mw-wikibase td.mw-changeslist-line-inner > span.comment > a.external, "+
"table.mw-changeslist-line.mw-collapsible tr.mw-changeslist-src-mw-wikibase td.mw-enhanced-rc-nested span.comment > a.external"
).each(function() {
if ( $(this).attr('href').indexOf('//www.wikidata.org/wiki/') !== -1 ) {
var pq = $( this ).text();
var pqnumber = pq.replace("Property:","");
// Test for validity
if ( !/^(p|q)\d+$/i.test(pqnumber) ) {
return;
}
$( this ).wrap("<span class='" + pqnumber + "'></span>" );
if ( items.indexOf(pqnumber) === -1 ) {
items.push(pqnumber);
}
}
});
// Find items following page titles
$content.find(
"li.mw-changeslist-src-mw-wikibase > a.wb-entity-link, "+
"table.mw-changeslist-src-mw-wikibase td.mw-changeslist-line-inner > a.wb-entity-link, "+
"table.mw-changeslist-line.mw-collapsible tr.mw-changeslist-src-mw-wikibase td.mw-enhanced-rc-nested > a.wb-entity-link"
).each(function() {
var qnum = $( this ).text();
$( this ).wrap("<span class='" + qnum + "'></span>" );
if ( items.indexOf(qnum) === -1 ) {
items.push(qnum);
}
});
// Get labels in batches of 50 (max for Wikidata api)
for ( var i=0; i<items.length; i += 50 ) {
getLabel(items.slice(i, i+49));
}
});
});