Wikipedista:YjM/common.js
Vzhled
Poznámka: Po uložení musíte vyprázdnit mezipaměť vašeho prohlížeče, jinak změny neuvidíte.
//importScriptURI("//www.wikidata.org/w/index.php?title=User:Yair rand/WikidataInfo.js&action=raw&ctype=text/javascript");
//importScriptURI("//www.wikidata.org/w/index.php?title=User:Yair_rand/HighlightUncreated.js&action=raw&ctype=text/javascript");
if (typeof cacherModifLabel == 'undefined') { //cacher les wbsetlabel
cacherModifLabel = true;
}
if (typeof cacherModifAlias == 'undefined') { //cacher les wbsetaliases
cacherModifAlias = true;
}
if (typeof cacherModifLiens == 'undefined') { //cacher les wbsetsitelink & clientsitelink
cacherModifLiens = true;
}
if (typeof afficherTout == 'undefined') {
afficherTout = false;
}
if (afficherTout === true) { //afficher tout
cacherModifLabel = false;
cacherModifAlias = false;
cacherModifLiens = false;
}
/////////////////FIN DE LA ZONE PERSONNALISABLE/////////////////
/** @const liée au script initial */
var version = 1455143959;
try {
mw.loader.addSource( "ruwiki", "//ru.wikipedia.org/w/load.php" );
mw.loader.register( 'ext.gadget.wefcore', version, [ 'jquery.ui.autocomplete', //
'jquery.ui.dialog', //
'jquery.ui.tabs', //
'jquery.uls.data', //
'mediawiki.ForeignApi', //
], undefined, 'ruwiki' );
mw.loader.register( 'ext.gadget.isbnjs', version, undefined, undefined, 'ruwiki' );
mw.loader.register( 'ext.gadget.wefflags', version, undefined, undefined, 'ruwiki' );
mw.loader.register( 'ext.gadget.wefcore', version, [ 'mediawiki.api.edit' ], undefined, 'ruwiki' );
} catch ( error ) {
// already registered
}
if ( mw.config.get( 'wgAction' ) === 'history' ) {
mw.loader.using( [ 'mediawiki.api.edit', 'mediawiki.ForeignApi', 'ext.gadget.wefcore' ], function() {
var notifyOptions = {
autoHide: true,
tag: 'WEF-history',
};
var i18n = {
actionObtain: 'Récupération des modifications de Wikidata',
actionIntegrate: 'Affichage des modifications de Wikidata',
linePartLetter: 'd',
linePartTooltip: 'Wikidata',
linePartChange: 'diff.',
linePartHistory: 'historique',
// the same as in watchlist
monthes: [ "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre" ],
revMonthes: { "janvier" : 1, "février" : 2, "mars": 3, "avril" : 4, "mai" : 5, "juin": 6, "juillet" : 7, "août" : 8, "septembre": 9, "octobre" : 10, "novembre" : 11, "décembre": 12 },
dico : { "wbsetsitelink-add" : "Lien ajouté", "wbsetsitelink-set" : "Lien modifié", "wbsetsitelink-remove" : "Lien supprimé", "wbsetlabel-add" : "Libellé ajouté", "wbsetlabel-set" : "Changement du libellé", "wbsetlabel-remove" : "Retrait du libellé", "wbsetdescription-add" : "Description ajoutée", "wbsetdescription-set" : "Modification de la description", "wbsetdescription-remove" : "Retrait de la description", "wbeditentity-update" : "Entité modifiée", "wbeditentity-override" : "Entité supprimée", "wbeditentity-create" : "Nouvelle entité créée", "wbsetaliases-set" : "Alias défini(s)", "wbsetaliases-remove" : "Retrait d’alias", "wbsetaliases-add" : "Ajout d’alias", "wblinktitles-create" : "Entité créée pour connecter les pages", "wblinktitles-connect" : "Lien de langue ajouté pour connecter les pages", "wbsetclaimvalue" : "Affirmation modifiée", "wbremoveclaims" : "Affirmation supprimée", "wbremoveclaims-remove" : "Affirmation supprimée", "wbcreateclaim-value" : "Affirmation ajoutée", "wbcreateclaim-novalue" : "Valeur spéciale « aucune valeur » ajoutée", "wbcreateclaim-somevalue" : "Affirmation ajoutée : « valeur inconnue »", "wbsetclaim-update" : "Affirmation modifiée", "wbsetclaim-create" : "Affirmation créée", "wbsetclaim-update-qualifiers" : "Qualifieur d’affirmation modifié", "wbsetclaim-update-references" : "Référence d’affirmation modifiée", "wbsetclaim-update-rank" : "Rang d’une affirmation modifié", "wbsetreference" : "Référence modifiée", "wbsetreference-add" : "Référence ajoutée", "wbcreateclaim-create" : "Affirmation ajoutée", "wbmergeitems-from" : "Élément fusionné", "wbsetqualifier-add" : "Qualifieur ajouté", "wbremovereferences-remove" : "Réference supprimée" },
reP : /\[\[Property\:(P[0-9]*)\]\]/,
reQ : /\[\[(Q[0-9]*)\]\]/,
reD : /\/\* ([^: ]*)/,
reH : /([0-9]+) (\w+) ([0-9][0-9][0-9][0-9]) à ([0-9][0-9]):([0-9][0-9])/,
};
var entityId = null;
// [[Property:P910]]: [[Q7804038]]"
var revs = null;
function affichage() {
//"use strict";
mw.notify( i18n.actionIntegrate, notifyOptions );
//affichage des révisions
$.each(revs, function(keyr, valr){
//console.log("diff : " + valr.comment + " | " + valr.timestamp);
try {
generateWatchlistLine( valr, i18n.dico );
} catch ( error ) {
mw.log.warn( "Can't add change line", error );
}
});
}
function showChanges() {
//"use strict";
mw.notify( i18n.actionObtain, notifyOptions );
if ( mw.config.get( 'wgArticleId' ) ) {
WEF_Utils.getEntityIdDeferred().done( function( entityId ) {
if ( !WEF_Utils.isEmpty( entityId ) ) {
//api des modifs à afficher
console.log( 'https://www.wikidata.org/w/api.php?action=query&prop=revisions&rvlimit=50&titles=' + entityId );
WEF_Utils.getWikidataApi().get( {
rvlimit: 50,
titles: entityId,
prop: 'revisions',
action: 'query',
} ).done( function( result ) {
//en principe, y'a qu'une page...
var page=result.query.pages;
var listePQ = "";
$.each(page, function(key, val){
//console.log ("id page " + key);
revs=val.revisions;
//1ere boucle pour lister les P & Q qu'on va devoir traduire
$.each(revs, function(keyr, valr){
//console.log ("valr.comment " + valr.comment);
if (valr.comment){
var res1 = i18n.reP.exec(valr.comment);
if (res1 !== null){
if (listePQ.indexOf(res1[1])==-1) {
listePQ = listePQ + "|" + res1[1];
}
}
var res2 = i18n.reQ.exec(valr.comment);
if (res2 !== null){
if (listePQ.indexOf(res2[1])==-1) {
listePQ = listePQ + "|" + res2[1];
}
}
//console.log (res1 + " " + res2);
}
});
});
listePQ = listePQ.substring(1);
completedico(listePQ);
} );
}
});
}
}
function completedico(liste) {
//"use strict";
//2e api de récup pour construire le i18n.dico des labels
console.log("https://www.wikidata.org/w/api.php?action=wbgetentities&ids=" + liste + "&props=labels&languages=fr");
WEF_Utils.getWikidataApi().get( {
action: 'wbgetentities',
props: 'labels',
languages: 'fr',
ids: liste,
format: 'json',
} ).done( function( result ) {
//faire un i18n.dico avec P/Q => label
var entities=result.entities;
$.each(entities, function(keyr, valr){
//i18n.dico[keyr] = valr.labels.fr.value;
if(valr.labels && valr.labels.fr && valr.labels.fr.value){
//console.log(keyr + " " + valr + " " + valr.labels.fr.value);
i18n.dico[keyr] = valr.labels.fr.value;
}else{
i18n.dico[keyr] = keyr;
}
});
//console.log (i18n.dico);
affichage();
});
}
function pad( src ) {
"use strict";
if ( src < 10 ) {
return "0" + src;
} else {
return "" + src;
}
}
function generateWatchlistLine( jEntry, dico ) {
//"use strict";
var id = jEntry.revid;
var testSummary = jEntry.comment;
//console.log( "id "+ id + " summary "+ testSummary );
//if (false) {
if (testSummary.indexOf("|fr") == -1 && ((testSummary.indexOf("wbsetlabel") > -1 && cacherModifLabel)
|| (testSummary.indexOf("wbsetaliases") > -1 && cacherModifAlias) || (testSummary.indexOf("wbsetsitelink") > -1 && cacherModifLiens)
|| (testSummary.indexOf("clientsitelink") > -1 && cacherModifLiens) || (testSummary.indexOf("wbsetdescription") > -1) ) ) {
console.log( "diff " + id + " masqué car libellé/alias/liens hors fr");
}else{
var changeUrl = "https://www.wikidata.org/w/index.php?diff=" + id;
var author = jEntry.user;
var updated = new Date(jEntry.timestamp);
var dateAff = updated.getDate() + ' ' + i18n.monthes[updated.getMonth()] + ' ' + updated.getFullYear();
var heureAff = pad( updated.getHours() ) + ':' + pad( updated.getMinutes() );
//traduction commentaire sur la base du i18n.dico
var resSum1 = i18n.reP.exec(testSummary);
if (resSum1 !== null && i18n.dico[resSum1[1]] !== null){
testSummary = testSummary.replace("[[Property:"+resSum1[1]+"]]", i18n.dico[resSum1[1]] + " <small>(<a href=\"https://www.wikidata.org/wiki/Property:"+resSum1[1]+"\">Property:"+resSum1[1]+"</a>)</small>");
}
var resSum2 = i18n.reQ.exec(testSummary);
if (resSum2 !== null && i18n.dico[resSum2[1]] !== null){
testSummary = testSummary.replace("[["+resSum2[1]+"]]", i18n.dico[resSum2[1]] + " <small>(<a href=\"https://www.wikidata.org/wiki/"+resSum2[1]+"\">"+resSum2[1]+"</a>)</small>");
}
var resSum3 = i18n.reD.exec(testSummary);
if (resSum3 !== null && typeof i18n.dico[resSum3[1]] != 'undefined'){
testSummary = testSummary.replace(resSum3[1], i18n.dico[resSum3[1]]+" ");
}
testSummary = testSummary.replace("/*", "<span class=\"autocomment\">");
testSummary = testSummary.replace("*/", "</span>");
var txt = "<li id=\"wef-history\"><span>"
+ "<abbr style=\"font-size:bold; margin-left:0.5em;\" title=\"" + i18n.linePartTooltip + "\">" + i18n.linePartLetter + "</abbr> <span class=\"mw-changeslist-separator\">. .</span> "
+ "(<a href=\"https://www.wikidata.org/w/index.php?diff=" + id + "\">diff</a>)</span> <span class=\"mw-changeslist-separator\">. . . . .</span> "
+ "<span class=\"mw-changeslist-date\">" + dateAff + " à " + heureAff + "</span> "
+ "<span class=\"history-user\">" + author + "</span><span class=\"mw-changeslist-separator\">. .</span> "
+ "<span class=\"comment\">" + testSummary + "</span></li>";
insertChang (txt, updated) ;
}
}
function insertChang( txt, updated ) {
"use strict";
$('ul#pagehistory > li ').each(function(){
//console.log (this + " " + $(this).text());
//si c'est pas du wikidata
if ($(this).text().substr(0,1) != 'd'){
var resH = i18n.reH.exec($(this).text());
if (resH !== null){
var d = new Date( parseInt(resH[3]), parseInt(i18n.revMonthes[resH[2]]-1), parseInt(pad(resH[1])), parseInt(resH[4]), parseInt(resH[5]), 0);
if (d<updated) {
$(this).before(txt);
return false;
}
}
}
});
}
{
mw.loader.using( [ 'ext.gadget.wefcore', ], function() {
showChanges();
} );
}
} );
}
/*jQuery.getScript('//meta.wikimedia.org/w/index.php?title=User:Krinkle/Scripts/InsertWikiEditorButton.js&action=raw&ctype=text/javascript', function () {
krInsertWikiEditorButton({
"id": "rozdelovnik",
"icon": "http://upload.wikimedia.org/wikipedia/commons/4/49/Toolbaricon_en_dash.png",
"label": "Rozdělovník",
"insertBefore": "–",
"insertAfter": "",
"sampleText": ""
});
krInsertWikiEditorButton({
"id": "tvrdamez",
"icon": "http://upload.wikimedia.org/wikipedia/commons/e/ed/Toolbaricon_nbsp.png",
"label": "Tvrdá mezera",
"insertBefore": " ",
"insertAfter": "",
"sampleText": ""
});
krInsertWikiEditorButton({
"id": "zdroj",
"icon": "http://upload.wikimedia.org/wikipedia/commons/3/33/Button_unreferenced.png",
"label": "Chybí zdroj",
"insertBefore": "\x7b\x7bsubst:Fakt",
"insertAfter": "\x7d\x7d",
"sampleText": ""
});
});*/