صارف:Yethrosh/twinkleunlink.js
آپ کی توجہ درکار ہے۔ اس صفحہ میں جو اسکرپٹ شامل ہیں، وہ صفحہ لوڈ ہونے پر ہر دفعہ چلیں گی۔ لہذا خراب، غلط اور نامناسب کوڈ یا اسکرپٹ یہاں درج نہ کریں۔ اس سے آپ کے کھاتے کو بھی خطرہ لاحق ہو سکتا ہے۔ |
یاددہانی: محفوظ کرنے کے بعد تازہ ترین تبدیلیوں کو دیکھنے کے لیے آپ کو اپنے براؤزر کا کیش صاف کرنا ہوگا۔
- فائرفاکس/ سفاری: جب Reload پر کلک کریں تو Shift دبا کر رکھیں، یا Ctrl-F5 یا Ctrl-R دبائیں (Mac پر R- )
- گوگل کروم: Ctrl-Shift-R دبائیں (Mac پر Shift-R-⌘)
- انٹرنیٹ ایکسپلورر: جب Refresh پر کلک کریں تو Ctrl یا Ctrl-F5 دبائیں
- اوپیرا: Tools → Preferences میں جائیں اور کیش صاف کریں
اس اسکرپٹ کی دستاویزی تفصیلات صارف:Yethrosh/twinkleunlink پر درج کی جا سکتی ہیں۔ |
// If TwinkleConfig aint exist.
if( typeof( TwinkleConfig ) == 'undefined' ) {
TwinkleConfig = {};
}
/**
TwinkleConfig.summaryAd (string)
If ad should be added or not to summary, default [[WP:TWINKLE|TWINKLE]]
*/
if( typeof( TwinkleConfig.summaryAd ) == 'undefined' ) {
TwinkleConfig.summaryAd = " using [[وب:لمح|لمح]]";
}
/**
TwinkleConfig.unlinkNamespaces (array)
In what namespaces unlink should happen, default in 0 and 100
*/
if( typeof( TwinkleConfig.unlinkNamespaces) == 'undefined' ) {
TwinkleConfig.unlinkNamespaces = [0,100];
}
function getChecked2( nodelist ) {
if( !( nodelist instanceof NodeList ) ) {
return nodelist.checked ? [ nodelist.value ] : [];
}
var result = [];
for(var i = 0; i < nodelist.length; ++i ) {
if( nodelist[i].checked ) {
result.push( nodelist[i].value );
}
}
return result;
}
function twinkleunlink() {
if( wgNamespaceNumber < 0 ) {
return;
}
mw.util.addPortletLink( 'p-cactions', "javascript:twinkleunlink.callback()", "حذ.وصلة", "tw-unlink", "انزع الوصلات الخلفية", "");
}
$(twinkleunlink);
twinkleunlink.callback = function twinklesunlinkCallback() {
var Window = new SimpleWindow( 800, 400 );
Window.setTitle( "انزع الوصلات الخلفية" );
var form = new QuickForm( twinkleunlink.callback.evaluate );
form.append( {
type: 'textarea',
name: 'reason',
label: 'السبب: '
} );
if(wgNamespaceNumber == Namespace.IMAGE) {
var query = {
'action': 'query',
'list': [ 'backlinks', 'imageusage' ],
'bltitle': wgPageName,
'iutitle': wgPageName,
'bllimit': userIsInGroup( 'sysop' ) ? 5000 : 500, // 500 is max for normal users, 5000 for bots and sysops
'iulimit': userIsInGroup( 'sysop' ) ? 5000 : 500, // 500 is max for normal users, 5000 for bots and sysops
'blnamespace': TwinkleConfig.unlinkNamespaces // Main namespace and portal namespace only, keep on talk pages.
};
} else {
var query = {
'action': 'query',
'list': 'backlinks',
'bltitle': wgPageName,
'blfilterredir': 'nonredirects',
'bllimit': userIsInGroup( 'sysop' ) ? 5000 : 500, // 500 is max for normal users, 5000 for bots and sysops
'blnamespace': TwinkleConfig.unlinkNamespaces // Main namespace and portal namespace only, keep on talk pages.
};
}
var wikipedia_api = new Wikipedia.api( 'يتم سحب الوصلات الخلفية', query, twinkleunlink.callbacks.display.backlinks );
wikipedia_api.params = { form:form, Window:Window, image: wgNamespaceNumber == Namespace.IMAGE };
wikipedia_api.post();
var root = document.createElement( 'div' );
Status.init( root );
Window.setContent( root );
Window.display();
}
twinkleunlink.callback.evaluate = function twinkleunlinkCallbackEvaluate(event) {
wgPageName = wgPageName.replace( /_/g, ' ' ); // for queen/king/whatever and country!
var reason = event.target.reason.value;
if( event.target.backlinks ) {
var backlinks = getChecked( event.target.backlinks );
}
if( event.target.imageusage ) {
var imageusage = getChecked( event.target.imageusage );
}
Status.init( event.target );
if( imageusage ) {
var statusIndicator = new Status('يتم إزالة وصلات الصورة', '0%');
var total = imageusage.length * 2;
var onsuccess = function( self ) {
var obj = self.params.obj;
var total = self.params.total;
var now = parseInt( 100 * ++(self.params.current)/total ) + '%';
obj.update( now );
self.statelem.unlink();
if( self.params.current >= total ) {
obj.info( now + ' (انتهى)' );
Wikipedia.removeCheckpoint();
}
}
var onloaded = onsuccess;
var onloading = function( self ) {}
Wikipedia.addCheckpoint();
if( imageusage.length == 0 ) {
statusIndicator.info( '100% (انتهى)' );
Wikipedia.removeCheckpoint();
return;
}
var params = { reason: reason, obj: statusIndicator, current: 0, total: total };
for ( var i = 0; i < imageusage.length; ++i ) {
var title = imageusage[i];
var query = {
'title': title,
'action': 'submit'
}
var wikipedia_wiki = new Wikipedia.wiki( "نزع الوصلات في " + title, query, twinkleunlink.callbacks.unlinkImageInstances );
wikipedia_wiki.params = clone( params );
wikipedia_wiki.params.title = title;
wikipedia_wiki.onloading = onloading;
wikipedia_wiki.onloaded = onloaded;
wikipedia_wiki.onsuccess = onsuccess;
wikipedia_wiki.get();
}
}
if( backlinks ) {
var statusIndicator = new Status('يتم إزالة وصلات الصورة', '0%');
var total = backlinks.length * 2;
var onsuccess = function( self ) {
var obj = self.params.obj;
var total = self.params.total;
var now = parseInt( 100 * ++(self.params.current)/total ) + '%';
obj.update( now );
self.statelem.unlink();
if( self.params.current >= total ) {
obj.info( now + ' (انتهى)' );
Wikipedia.removeCheckpoint();
}
}
var onloaded = onsuccess;
var onloading = function( self ) {}
Wikipedia.addCheckpoint();
if( backlinks.length == 0 ) {
statusIndicator.info( '100% (انتهى)' );
Wikipedia.removeCheckpoint();
return;
}
var params = { reason: reason, obj: statusIndicator, current: 0, total: total };
for ( var i = 0; i < backlinks.length; ++i ) {
var title = backlinks[i];
var query = {
'title': title,
'action': 'submit'
}
var wikipedia_wiki = new Wikipedia.wiki( "نزع الوصلات في " + title, query, twinkleunlink.callbacks.unlinkBacklinks );
wikipedia_wiki.params = clone( params );
wikipedia_wiki.params.title = title;
wikipedia_wiki.onloading = onloading;
wikipedia_wiki.onloaded = onloaded;
wikipedia_wiki.onsuccess = onsuccess;
wikipedia_wiki.get();
}
}
}
twinkleunlink.callbacks = {
display: {
backlinks: function( self ) {
var xmlDoc = self.responseXML;
if( self.params.image ) {
var imageusage = xmlDoc.evaluate('//query/imageusage/iu/@title', xmlDoc, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null );
var list = [];
for ( var i = 0; i < imageusage.snapshotLength; ++i ) {
var title = imageusage.snapshotItem(i).value;
list.push( { label: title, value: title, checked: true } );
}
self.params.form.append( { type:'header', label: 'استخدام الصورة' } );
self.params.form.append( {
type: 'checkbox',
name: 'imageusage',
list: list
}
);
}
var backlinks = xmlDoc.evaluate('//query/backlinks/bl/@title', xmlDoc, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null );
if( backlinks.snapshotLength > 0 ) {
var list = [];
for ( var i = 0; i < backlinks.snapshotLength; ++i ) {
var title = backlinks.snapshotItem(i).value;
list.push( { label: title, value: title, checked: true } );
}
self.params.form.append( { type:'header', label: 'الوصلات الخلفية' } );
self.params.form.append( {
type: 'checkbox',
name: 'backlinks',
list: list
}
);
}
self.params.form.append( { type:'submit', label:'أرسل' } );
var result = self.params.form.render();
self.params.Window.setContent( result );
}
},
unlinkBacklinks: function( self ) {
var form = self.responseXML.getElementById('editform');
var text = form.wpTextbox1.value;
var old_text = text;
var wikiPage = new Mediawiki.Page( text );
wikiPage.removeLink( wgPageName );
text = wikiPage.getText();
if( text == old_text ) {
// Nothing to do, return
self.onsuccess( self );
Wikipedia.actionCompleted( self );
return;
}
var postData = {
'wpMinoredit': form.wpMinoredit.checked ? '' : undefined,
'wpWatchthis': undefined,
'wpStarttime': form.wpStarttime.value,
'wpEdittime': form.wpEdittime.value,
'wpAutoSummary': form.wpAutoSummary.value,
'wpEditToken': form.wpEditToken.value,
'wpSection': '',
'wpSummary': 'إزالة الوصلات لـ ' + wgTitle + " \"" + self.params.reason.toUpperCaseFirstChar() + "\";" + TwinkleConfig.deletionSummaryAd,
'wpTextbox1': text
};
self.post( postData );
},
unlinkImageInstances: function( self ) {
var form = self.responseXML.getElementById('editform');
var text = form.wpTextbox1.value;
var old_text = text;
var wikiPage = new Mediawiki.Page( text );
wikiPage.commentOutImage( wgTitle, 'Commented out' );
text = wikiPage.getText();
if( text == old_text ) {
// Nothing to do, return
self.onsuccess( self );
Wikipedia.actionCompleted( self );
return;
}
var postData = {
'wpMinoredit': form.wpMinoredit.checked ? '' : undefined,
'wpWatchthis': undefined,
'wpStarttime': form.wpStarttime.value,
'wpEdittime': form.wpEdittime.value,
'wpAutoSummary': form.wpAutoSummary.value,
'wpEditToken': form.wpEditToken.value,
'wpSection': '',
'wpSummary': 'إزالة استخدام الصورة ' + wgTitle + " \"" + self.params.reason.toUpperCaseFirstChar() + "\";" + TwinkleConfig.deletionSummaryAd,
'wpTextbox1': text
};
self.post( postData );
}
}