प्रयोगकर्ता:SM7/test.js: रिवीजन सभ के बीचा में अंतर

Content deleted Content added
+ revertDiff
टैग: Reverted
Annulation des modifications de SM7 (retour à la version précédente de SM7)
टैग कुल: Manual revert Reverted
लाइन 1:
/**
* Outils pour réverter
*
* fournit des liens dans les pages de diff pour révoquer facilement une modification et avertir son auteur
*
* Auteurs : Lorian (en), Chphe (fr)
* Dernière révision : 28 octobre 2018
* {{Projet:JavaScript/Script|RevertDiff}}
*/
//<nowiki>
/*
// यह स्क्रिप्ट सदस्य नामस्थान के पन्नों को खाली करने के लिए है।
// संदेश और फॉर्म दिखाने के लिए [[:en:User:Timotheus_Canens/displaymessage.js]] का प्रयोग किया गया है।
*/
// अंगरेजी विकिपीडिया की स्क्रिप्ट को काल किया जाएगा ताकि फॉर्म और संदेश दिखाए जा सकें
mw.loader.load('//en.wikipedia.org/w/index.php?title=User:Timotheus_Canens/displaymessage.js&action=raw&ctype=text/javascript');
if (mw.config.get('wgNamespaceNumber') === 2) { // केवल सदस्य नामस्थान में कार्य करेगा
 
// आगे का कोड सबकुछ ठीक-ठाक रहने पर "अधिक" विकल्प में औजार लॉन्च करने का विकल्प जोड़ेगा
mw.loader.using('mediawiki.util', function () {
$(document).ready( function ($) {
mw.util.addPortletLink( 'p-cactions', 'javascript:blankUPage_init()', 'BlankPage', 'ca-blankUPage', 'Blank User page' );
} );
// अब कुछ वैरिएबल परिभाषित किये जा रहे हैं
var blankUPage_PageName = wgPageName;
var blankUPage_AJAXnumber = 0;
 
// मुख्य फंक्शन यहाँ शुरू होता है
var Texts = {
function blankUPage_init() {
Annul : 'Annuler',
Revert : 'Révoquer',
Message : 'Message',
Warn : 'Avertir',
MessageAlert : 'Quel message faut-il laisser ?',
AnnulResume : 'Annulation des modifications de [[Special:Contributions/$2|$2]] (retour à la version précédente de [[Special:Contributions/$1|$1]])',
RevertResume : 'Révocation des modifications de [[Special:Contributions/$2|$2]] (retour à la version précédente de [[Special:Contributions/$1|$1]])',
};
 
// फॉर्म की डिजाइन जो दिखलाई पड़ेगी
var Warns = [
form = '<div id="blankUPage_initialform">' +
{text: 'Test1', template: '{{subst:Test 1|$page}} ~~~~'},
'<h3>' + blankUPage_PageName + ' को खाली कर दिया जाएगा... </h3>' +
{text: 'Test2', template: '{{subst:Test 2}} ~~~~'},
'<label for="blankUPage_reason">डिफॉल्ट सारांश: "खाली किया गया / कृपया [[वि:सपृनहीं|सदस्य पृष्ठ नीति]] देखें" + आपका (वैकल्पिक) सारांश:</label><br />' +
{text: 'Test3', template: '{{subst:Test 3}} ~~~~'},
'<input type="text" size="120" id="blankUPage_reason" name="blankUPage_reason" />' + '<br />' +
{text: 'Test4', template: '{{subst:Seul avertissement}} ~~~~'},
'<input type="button" id="blankUPage_merge_button" name="blankUPage_merge_button" value="Go" onclick="blankUPage_close(\'Blanking\')" />' +
{text: 'Lien externe', template: '{{subst:Bienvenue spammeur|$page}} ~~~~'},
'<input type="hidden" value="0" id="blankUPage_dodelete" name="blankUPage_dodelete" /></div><div id="blankUPage_extra"></div>';
{text: 'Faut sourcer', template: '{{subst:Faut sourcer|$page}} ~~~~'},
displayMessage(form);
{text: 'Bienvenue', template: '{{Bienvenue nouveau|sign=~~~~}}'},
}
{text: 'BienvenueIP', template: '{{subst:Bienvenue IP}} ~~~~'},
{text: 'MerciIP', template: '{{Bienvenue IP méritante|sign=~~~~}}'},
];
 
// फॉर्म जमा करने के बाद कार्य पूरा करने की प्रक्रिया शुरू
function isDiffPage() {
function blankUPage_close(close) {
// paramètre présent, même sans valeur ("?diff")
closetype = close;
return /[?&]diff(=|&|$)/.test(window.location.search);
if (closetype == "Blanking") {
var reason = document.getElementById('blankUPage_reason').value; //कारण पढ़ा गया
close += "सदस्य पन्ने पर"; //यह पता नहीं क्या है
}
displayMessage('<ul id="blankUPage_status"></ul><ul id="blankUPage_finish"></ul>');
document.getElementById('blankUPage_finish').innerHTML += '<span id="blankUPage_finished_wrapper"><span id="blankUPage_finished_main" style="display:none"><li id="blankUPage_done"><b>पूरा हुआ (<a href="/wiki/' + encodeURI(blankUPage_PageName) + '?action=view" title="' + blankUPage_PageName + '">रीलोड करके देखें!</a>)</b></li></span></span>';
 
var AFDpage = blankUPage_getPageText(blankUPage_PageName);
function processAnnulOrRevert(oldid, action, user1, user2, withMessage) {
AFDpage = ""; //पृष्ठ पूरी तरह खाली
var params = {
action: 'edit',
oldid: oldid,
revertdiff_action: action,
revertdiff_user1: user1,
revertdiff_user2: user2,
};
if (withMessage) {
var message = prompt(Texts.MessageAlert);
if (message) {
params.revertdiff_message = message;
} else {
return;
}
}
window.location = mw.util.getUrl(null, params);
}
 
token = blankUPage_getToken(true);
function submitOldRevision(summaryTemplate) {
var summarytemptitle = summaryTemplateblankUPage_PageName;
pagetitle = temptitle; //शायद यह कोड फालतू है
.split('$1').join(mw.util.getParamValue('revertdiff_user1'))
blankUPage_editPage(blankUPage_PageName, AFDpage, token, "खाली किया गया / कृपया [[वि:सपृनहीं|सदस्य पृष्ठ नीति]] देखें" + reason); //संपादन सारांश है
.split('$2').join(mw.util.getParamValue('revertdiff_user2'));
var AFDlink = '[[:' + blankUPage_PageName + ']]';
var message = mw.util.getParamValue('revertdiff_message');
document.getElementById('blankUPage_finished_main').style.display = '';
if (message) {
}
summary += String.fromCharCode(0xA0) + ': ' + message;
}
var summaryEl = document.getElementById('wpSummary');
// only possible if using standard editor
if(summaryEl) {
summaryEl.value = summary;
}
var editform = document.getElementById('editform');
 
// यहाँ प्रयोगकर्ता पन्ने की सामग्री प्राप्त करने का फंक्शन है, ताकि नया अनुरोध सबसे नीचे जोड़ा जा सके।
if(editform)editform.submit();
function blankUPage_getPageText(title) {
document.getElementById('blankUPage_status').innerHTML += '<li id="blankUPage_get' + escape(title) + '"><a href="/wiki/' + encodeURI(title) + '" title="' + title + '">' + title + '</a>प्राप्त किया जा रहा है।</li>'; //रन टाइम डायलाग
var req = new XMLHttpRequest();
req.open("GET", wgScriptPath + "/api.php?action=query&prop=revisions&rvprop=content&format=json&indexpageids=1&titles=" + encodeURIComponent(title), false);
req.send(null);
var response = eval('(' + req.responseText + ')');
pageid = response['query']['pageids'][0];
pagetext = response['query']['pages'][pageid]['revisions'][0]['*'];
delete req; // तात्कालिक रूप से प्रयोगकर्ता पन्ने को छोड़ दिया गया, आगे सीधे उसपे संपादन हो जायेगा
document.getElementById('blankUPage_get' + escape(title)).innerHTML = '<a href="/wiki/' + encodeURI(title) + '" title="' + title + '">' + title + '</a> प्राप्त किया जा रहा है।'; //रन टाइम डायलाग
return pagetext;
}
// टोकन प्राप्त करने हेतु कोड यहाँ है
function blankUPage_getToken(show) {
if (show) {
document.getElementById('blankUPage_status').innerHTML += '<li id="blankUPage_gettoken">टोकन प्राप्त किया जा रहा है।</li>';
}
var req = new XMLHttpRequest();
req.open("GET", wgScriptPath + "/api.php?action=query&prop=info&indexpageids=1&intoken=edit&format=json&titles=" + encodeURIComponent(blankUPage_PageName), false);
req.send(null);
var response = eval('(' + req.responseText + ')');
pageid = response['query']['pageids'][0];
token = response['query']['pages'][pageid]['edittoken'];
delete req;
if (show) {
document.getElementById('blankUPage_gettoken').innerHTML = 'टोकन प्राप्त किया जा रहा है'; //रन टाइम डायलाग
}
return token;
}
 
// वास्तविक संपादन को क्रियान्वित यहाँ किया जा रहा
if (isDiffPage()) {
function blankUPage_editPage(title, newtext, token, summary) {
// Get username of submitter
document.getElementById('blankUPage_finished_wrapper').innerHTML = '<span id="blankUPage_AJAX_finished_' + blankUPage_AJAXnumber + '" style="display:none">' + document.getElementById('blankUPage_finished_wrapper').innerHTML + '</span>';
var $user1TD = $('td.diff-otitle');
var $user2TDfunc_id = $('td.diff-ntitle')blankUPage_AJAXnumber;
blankUPage_AJAXnumber++;
if (!$user1TD.length || !$user2TD.length) return;
document.getElementById('blankUPage_status').innerHTML += '<li id="blankUPage_edit' + escape(title) + '"><a href="/wiki/' + encodeURI(title) + '" title="' + title + '">' + title + '</a> में बदलाव किये जा रहे हैं।</li>';
 
var req = new XMLHttpRequest();
// Récupération du oldid de la version à rétablir
var params = "action=edit&format=json&token=" + encodeURIComponent(token) + "&title=" + encodeURIComponent(title) + "&text=" + encodeURIComponent(newtext) + "&notminor=1&unwatch=1&summary=" + encodeURIComponent(summary);
var chemin = $user1TD.find('span.mw-diff-edit a').attr('href');
url = wgScriptPath + "/api.php";
var oldid = mw.util.getParamValue('oldid', chemin);
req.open("POST", url, true);
 
req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
var user1 = $user1TD.find('a.mw-userlink').text();
req.setRequestHeader("Content-length", params.length);
var user2 = $user2TD.find('a.mw-userlink').text();
req.setRequestHeader("Connection", "close");
 
req.onreadystatechange = function () {
var $linkAnnulDirect = $('<a>')
if (req.readyState == 4 && req.attr('href',status '#'== 200) {
response = eval('(' + req.responseText + ')'); //यहाँ मूल्यांकन होगा कि सब सही हुआ या नहीं
.text(Texts.Annul)
.click(function (e)try {
if (response['edit']['result'] == "Success") { //सफलता प्राप्त हुई
e.preventDefault();
document.getElementById('blankUPage_edit' + escape(title)).innerHTML = '<a href="/wiki/' + encodeURI(title) + '" title="' + title + '">' + title + '</a> को खाली किया गया।';
processAnnulOrRevert(oldid, 'annul', user1, user2, false);
}); else {
document.getElementById('blankUPage_edit' + escape(title)).innerHTML = '<div style="color:red"><b><a href="/wiki/' + encodeURI(title) + '" title="' + title + '">' + title + '</a> पर संपादन विफल रहा।</b></div>. Error info:' + response['error']['code'] + ' : ' + response['error']['info'];
 
var $linkAnnulMessage = $('<a>')
.attr('href', '#')
.text(Texts.Message)
.click(function (e) {
e.preventDefault();
processAnnulOrRevert(oldid, 'annul', user1, user2, true);
});
 
var $linkRevertDirect = $('<a>')
.attr('href', '#')
.text(Texts.Revert)
.click(function (e) {
e.preventDefault();
processAnnulOrRevert(oldid, 'revert', user1, user2, false);
});
 
var $linkRevertMessage = $('<a>')
.attr('href', '#')
.text(Texts.Message)
.click(function (e) {
e.preventDefault();
processAnnulOrRevert(oldid, 'revert', user1, user2, true);
});
 
var $links = $('<span>');
 
$links.append('(', $linkAnnulDirect, ' / ', $linkAnnulMessage, ') (', $linkRevertDirect, ' / ', $linkRevertMessage, ')');
 
$links.append(' (' + Texts.Warn + ' : ');
 
Warns.forEach(function (Warn, index) {
if (index !== 0) {
$links.append(' / ');
}
 
var href = mw.util.getUrl('User_talk:' + user2, {
action: 'edit',
section: 'new',
revertdiff_action: 'warn',
revertdiff_warn: index,
revertdiff_src: mw.config.get('wgPageName'),
});
 
var $linkWarn = $('<a>')
.attr('href', href)
.attr('title', Warn.template)
.text(Warn.text);
 
$links.append($linkWarn);
});
 
$links.append(')');
 
$('#contentSub').append($links);
 
} else {
var action = mw.util.getParamValue('revertdiff_action');
if (action) {
if (action === 'annul') {
submitOldRevision(Texts.AnnulResume);
 
} else if (action === 'revert') {
submitOldRevision(Texts.RevertResume);
 
} else if (action === 'warn') {
var warnIndex = mw.util.getParamValue('revertdiff_warn');
 
if (warnIndex && Warns[warnIndex]) {
var Template = Warns[warnIndex].template;
Template = Template.split('$page').join(mw.util.getParamValue('revertdiff_src').replace(/_/g, ' '));
Template = Template.split('$user').join(mw.config.get('wgUserName'));
 
var tb = document.getElementById('wpTextbox1');
 
var editform = document.getElementById('editform');
if(tb)tb.value = Template;
if(editform) editform.submit();
}
} catch (err) {
document.getElementById('blankUPage_edit' + escape(title)).innerHTML = '<div style="color:red"><b><a href="/wiki/' + encodeURI(title) + '" title="' + title + '">' + title + '</a> पर संपादन विफल रहा।</b></div>';
}
document.getElementById('blankUPage_AJAX_finished_' + func_id).style.display = '';
delete req;
}
}
req.send(params)
 
});
});
// चलिए यह कोड समाप्त हुआ!
 
//</nowiki>