MediaWiki:Gadget-wikidata-description.js
Notă: După salvare, trebuie să treceți peste cache-ul browser-ului pentru a vedea modificările.
- Mozilla, Google Chrome, Safari, Konqueror: țineți apăsat Shift în timp ce apăsați butonul Reload (sau apăsați Ctrl-Shift-R).
- Internet Explorer: apăsați Ctrl-F5.
- Opera: apăsați F5.
function writewddesc ( ) {
var desc = document.getElementById('wddesc').value;
if (desc === undefined) return;
var item = mw.config.get( 'wgWikibaseItemId' ) ;
$.getJSON ( 'https://www.wikidata.org/w/api.php?origin=https://ro.wikipedia.org&format=json&action=query&meta=tokens', function ( d ) {
var token = d.query.tokens.csrftoken;
if (token === undefined) return;
var url = 'https://www.wikidata.org/w/api.php?origin=https://ro.wikipedia.org&format=json&action=wbsetdescription';
$.ajax({
url: url,
type: 'POST',
dataType: 'json',
data: {
id: item,
summary: "ML-assisted description",
language: "ro",
value: desc,
token: token
},
xhrFields: { // CORS XHR magic
withCredentials: true
}
})
.done(function ( d ) {
//alert(JSON.stringify(d));
location.reload(true);
});
});
}
function updateWDDesc ( ) {
var groups = mw.config.get( 'wgUserGroups' ) ;
// only certain usergroups can update the description
if (groups === undefined ||
(!groups.includes('extendedconfirmed')
&& !groups.includes('patroller')
&& !groups.includes('sysop'))) return;
var title = mw.config.get( 'wgTitle' ) ;
$.getJSON( '//ml-article-description-api.wmcloud.org/article?lang=ro&num_beams=3&title='+title)
.done(function( data ) {
if (data.prediction === undefined) return;
form = 'Descriere Wikidata: <select name="wddesc" id="wddesc">';
data.prediction.forEach((element) => form += '<option value="'+element+'">'+element+'</option>');
form += '</select><button type="button" onclick="writewddesc();">Submit</button>';
var elem = document.getElementById('siteSub') ;
if ( elem === undefined ) return ;
elem.innerHTML = form ;
});
}
function labelItems ( ) {
var curlang = mw.config.get( 'wgUserLanguage' ) || 'ro' ;
var item = mw.config.get( 'wgWikibaseItemId' ) ;
if ( item === undefined ) return ;
$.getJSON ( '//www.wikidata.org/w/api.php?action=wbgetentities&format=json&props=descriptions&ids='+item+'&languages='+curlang+'&callback=?' , function ( d ) {
$.each ( d.entities||[] , function ( q , v ) {
if ( v.descriptions === undefined || v.descriptions[curlang] === undefined ) {
if (curlang !== 'ro') return;
// fallback, get suggestions from ML
updateWDDesc();
return;
}
var description = v.descriptions[curlang].value ;
var elem = document.getElementById('siteSub') ;
if ( elem === undefined ) return ;
elem.innerText = description ;
} ) ;
} ) ;
}
$ (labelItems);