صارف:Yethrosh/twinklexfd.js
(صارف:محمد شعیب/twinklexfd.js سے رجوع مکرر)
آپ کی توجہ درکار ہے۔ اس صفحہ میں جو اسکرپٹ شامل ہیں، وہ صفحہ لوڈ ہونے پر ہر دفعہ چلیں گی۔ لہذا خراب، غلط اور نامناسب کوڈ یا اسکرپٹ یہاں درج نہ کریں۔ اس سے آپ کے کھاتے کو بھی خطرہ لاحق ہو سکتا ہے۔ |
یاددہانی: محفوظ کرنے کے بعد تازہ ترین تبدیلیوں کو دیکھنے کے لیے آپ کو اپنے براؤزر کا کیش صاف کرنا ہوگا۔
- فائرفاکس/ سفاری: جب Reload پر کلک کریں تو Shift دبا کر رکھیں، یا Ctrl-F5 یا Ctrl-R دبائیں (Mac پر R- )
- گوگل کروم: Ctrl-Shift-R دبائیں (Mac پر Shift-R-⌘)
- انٹرنیٹ ایکسپلورر: جب Refresh پر کلک کریں تو Ctrl یا Ctrl-F5 دبائیں
- اوپیرا: Tools → Preferences میں جائیں اور کیش صاف کریں
اس اسکرپٹ کی دستاویزی تفصیلات صارف:Yethrosh/twinklexfd پر درج کی جا سکتی ہیں۔ |
// 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 = " باستخدام [[وب:لمح البصر|لمح البصر]]";
}
if( typeof( TwinkleConfig.watchxfdPages ) == 'undefined' ) {
TwinkleConfig.watchxfdPages = true;
}
function num2order( num ) {
switch( num ) {
case 1: return '';
case 2: return '2';
case 3: return '3';
default: return num;
}
}
function twinklexfd() {
if( wgNamespaceNumber < 0 || wgCurRevisionId == false ) {
return;
}
if (twinkleConfigExists)
{
mw.util.addPortletLink( 'p-cactions', "javascript:twinklexfd.callback()", "نامزدگی۔حذ", "tw-xfd", "نامزدگی برائے حذف", "");
}
else
{
mw.util.addPortletLink('p-cactions', 'javascript:alert("نئے کھاتے سے آپ لمح بصر استعمال نہیں کرسکتے۔");', 'نامزدگی۔حذ', 'tw-xfd', 'نامزدگی برائے حذف', '');
}
}
$(twinklexfd);
twinklexfd.callback = function twinklexfdCallback() {
var Window = new SimpleWindow( 600, 325 );
Window.setTitle( "نامزدگی برائے حذف" );
var form = new QuickForm( twinklexfd.callback.evaluate );
var categories = form.append( {
type: 'select',
name: 'category',
label: 'مناسب زمرہ منتخب کریں: ',
tooltip: 'بوقت فعال کاری، صفحہ کے فضائے نام کے مطابق اختیار منتخب ہوتا ہے۔ اور یہ اختیار زیادہ مناسب ہے',
event: twinklexfd.callback.change_category
} );
categories.append( {
type: 'option',
label: 'مضمون برائے حذف',
selected: wgNamespaceNumber == Namespace.MAIN || QueryString.equals('redirect', 'no'),
value: 'afd'
} );
categories.append( {
type: 'option',
label: 'سانچہ برائے حذف',
disabled: true,
value: 'tfd'
} );
categories.append( {
type: 'option',
label: 'ملف برائے حذف',
disabled: true,
value: 'ifd'
} );
categories.append( {
type: 'option',
label: 'زمرہ برائے حذف',
disabled: true,
value: 'cfd'
} );
categories.append( {
type: 'option',
label: 'دیگر صفحات برائے حذف',
selected: [ Namespace.MAIN ].indexOf( wgNamespaceNumber ) == -1,
value: 'mfd'
} );
categories.append( {
type: 'option',
label: 'رجوع مکرر برائے حذف',
disabled: true,
value: 'rfd'
} );
categories.append( {
type: 'option',
label: 'زمرۂ نامکمل برائے حذف',
disabled: true,
value: 'sfd'
} );
form.append( {
type: 'checkbox',
list: [
{
label: 'نبه عند الإمكان',
value: 'notify',
name: 'notify',
tooltip: 'نبه منشئ الصفحة عندم يتيح الأمر للتنبيه',
checked: true
}
]
}
);
form.append( {
type: 'field',
label:'Work area',
name: 'work_area'
} );
var result = form.render();
Window.setContent( result );
Window.display();
// We must init the
var evt = document.createEvent( "Event" );
evt.initEvent( 'change', true, true );
result.category.dispatchEvent( evt );
}
twinklexfd.callback.change_category = function twinklexfdCallbackChangeCategory(e) {
var value = e.target.value;
var root = e.target.form;
var old_area;
var childNodes = root.childNodes;
for( var i = 0; i < childNodes.length; ++i ) {
var node = childNodes[i];
if(
node instanceof Element &&
node.getAttribute( 'name' ) == 'work_area'
) {
old_area = node;
break;
}
}
var work_area = null;
switch( value ) {
case 'afd':
work_area = new QuickForm.element( {
type: 'field',
label: 'مضمون برائے حذف',
name: 'work_area'
} );
work_area.append( {
type: 'checkbox',
list: [
{
label: 'غلف بـ <noinclude>',
value: 'noinclude',
name: 'noinclude',
tooltip: 'هذا الخيار سيضع قالب الحذف في <noinclude> تاکہ دیگر صفحات میں ظاہر نہ ہو'
}
]
} );
var afd_category = work_area.append( {
type:'select',
name:'xfdcat',
label:'Choose what category this nomination belongs in'
} );
afd_category.append( { type:'option', label:'Unknown', value:'?', selected:true } );
afd_category.append( { type:'option', label:'Media and music', value:'M' } );
afd_category.append( { type:'option', label:'Organisation, corporation, or product', value:'O' } );
afd_category.append( { type:'option', label:'Biographical', value:'B' } );
afd_category.append( { type:'option', label:'Society topics', value:'S' } );
afd_category.append( { type:'option', label:'Web or internet', value:'W' } );
afd_category.append( { type:'option', label:'Games or sports', value:'G' } );
afd_category.append( { type:'option', label:'Science and technology', value:'T' } );
afd_category.append( { type:'option', label:'Fiction and the arts', value:'F' } );
afd_category.append( { type:'option', label:'Places and transportation', value:'P' } );
afd_category.append( { type:'option', label:'Indiscernible or unclassifiable topic', value:'I' } );
afd_category.append( { type:'option', label:'Debate not yet sorted', value:'U' } );
work_area.append( {
type: 'textarea',
name: 'xfdreason',
label: 'وجہ: '
} );
work_area.append( { type:'submit', label:'روانہ کریں' } );
work_area = work_area.render();
old_area.parentNode.replaceChild( work_area, old_area );
break;
case 'tfd':
work_area = new QuickForm.element( {
type: 'field',
label: 'سانچہ برائے حذف',
name: 'work_area'
} );
work_area.append( {
type: 'checkbox',
list: [
{
label: 'غلف بـ <noinclude>',
value: 'noinclude',
name: 'noinclude',
tooltip: 'هذا الخيار سيضع قالب الحذف في <noinclude> تاکہ دیگر صفحات میں ظاہر نہ ہو',
disabled: true,
checked: false
}
]
} );
work_area.append( {
type: 'checkbox',
list: [
{
label: 'Inline template',
value: 'tfdinline',
name: 'tfdinline',
tooltip: 'Use \{\{tfd-inline\}\} to tag the page instead of \{\{tfd\}\}.',
checked: false
}
]
} );
work_area.append( {
type: 'textarea',
name: 'xfdreason',
label: 'وجہ: '
} );
work_area.append( { type:'submit', label:'روانہ کریں' } );
work_area = work_area.render();
old_area.parentNode.replaceChild( work_area, old_area );
break;
case 'mfd':
work_area = new QuickForm.element( {
type: 'field',
label: 'دیگر صفحات برائے حذف',
name: 'work_area'
} );
work_area.append( {
type: 'checkbox',
list: [
{
label: 'غلف بـ <noinclude>',
value: 'noinclude',
name: 'noinclude',
tooltip: 'هذا الخيار سيضع قالب الحذف في <noinclude> تاکہ دیگر صفحات میں ظاہر نہ ہو'
}
]
} );
work_area.append( {
type: 'textarea',
name: 'xfdreason',
label: 'وجہ: '
} );
work_area.append( { type:'submit', label:'روانہ کریں' } );
work_area = work_area.render();
old_area.parentNode.replaceChild( work_area, old_area );
break;
case 'ifd':
work_area = new QuickForm.element( {
type: 'field',
label: 'ملف برائے حذف',
name: 'work_area'
} );
work_area.append( {
type: 'checkbox',
name: 'puf',
list: [
{
label: 'Possibly unfree file',
value: 'puf',
tooltip: 'File has disputed source or licensing information'
}
]
} );
work_area.append( {
type: 'textarea',
name: 'xfdreason',
label: 'وجہ: '
} );
work_area.append( { type:'submit', label:'روانہ کریں' } );
work_area = work_area.render();
old_area.parentNode.replaceChild( work_area, old_area );
break;
case 'cfd':
work_area = new QuickForm.element( {
type: 'field',
label: 'زمرہ برائے حذف',
name: 'work_area'
} );
var cfd_category = work_area.append( {
type: 'select',
label: 'Choose type of action wanted: ',
name: 'xfdcat',
event: function(e) {
var value = e.target.value;
var target = e.target.form.xfdtarget;
if( value == 'cfd' ) {
target.disabled = true;
} else {
target.disabled = false;
}
}
} );
cfd_category.append( { type:'option', label: 'Deletion', value: 'cfd', selected:true } );
cfd_category.append( { type:'option', label:'Merge', value:'cfm' } );
cfd_category.append( { type:'option', label:'Renaming', value:'cfr' } );
cfd_category.append( { type:'option', label:'Convert into article', value:'cfc' } );
work_area.append( {
type: 'input',
name: 'xfdtarget',
label: 'Target page: ',
disabled: true,
value: ''
} );
work_area.append( {
type: 'textarea',
name: 'xfdreason',
label: 'وجہ: '
} );
work_area.append( { type:'submit', label:'روانہ کریں' } );
work_area = work_area.render();
old_area.parentNode.replaceChild( work_area, old_area );
break;
case 'rfd':
work_area = new QuickForm.element( {
type: 'field',
label: 'رجوع مکرر برائے حذف',
name: 'work_area'
} );
work_area.append( {
type: 'textarea',
name: 'xfdreason',
label: 'وجہ: '
} );
work_area.append( { type:'submit', label:'روانہ کریں' } );
work_area = work_area.render();
old_area.parentNode.replaceChild( work_area, old_area );
break;
default:
work_area = new QuickForm.element( {
type: 'field',
label: 'Nothing for anything',
name: 'work_area'
} );
work_area = work_area.render();
old_area.parentNode.replaceChild( work_area, old_area );
break;
}
}
twinklexfd.callbacks = {
afd: {
main: function ( self ) {
var xmlDoc = self.responseXML;
var titles = xmlDoc.evaluate( '//allpages/p/@title', xmlDoc, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null );
// There has been no earlier entries with this prefix, just go on.
if( titles.snapshotLength <= 0 ) {
self.params.numbering = self.params.number = '';
numbering = number = '';
} else {
var number = 0;
for( var i = 0; i < titles.snapshotLength; ++i ) {
var title = titles.snapshotItem(i).value;
// First, simple test, is there an instance with this exact name?
if( title == 'منصوبہ:صفحات برائے حذف/' + wgPageName ) {
number = Math.max( number, 1 );
continue;
}
var order_re = new RegExp( '^' +
RegExp.escape( 'منصوبہ:صفحات برائے حذف/' + wgPageName, true ) +
'\\s*\\(\\s*(?:نامزدگی )?(\\d+)\\s*\\)\\s*$'
);
var match = order_re.exec( title );
// No match; A non-good value
if( match == null ) {
continue;
}
// A match, set number to the max of current
number = Math.max( number, Number(match[1]) );
}
self.params.number = num2order( parseInt( number ) + 1);
self.params.numbering = number > 0 ? ' (نامزدگی' + self.params.number + ')' : '';
}
Status.info( 'دیگر صفحۂ نامزدگی","[[منصوبہ:صفحات برائے حذف/' + wgPageName + self.params.numbering + ']]' );
// Tagging article
var query = {
'title': wgPageName,
'action': 'submit'
};
var wikipedia_wiki = new Wikipedia.wiki( 'مضمون میں سانچہ حذف لگ رہا ہے', query, twinklexfd.callbacks.afd.article );
wikipedia_wiki.params = self.params;
wikipedia_wiki.get();
// Discussion page
query = {
'title': 'منصوبہ:صفحات برائے حذف/' + wgPageName + self.params.numbering,
'action': 'submit'
};
// Updating data for the action completed event
Wikipedia.actionCompleted.redirect = query['title'];
Wikipedia.actionCompleted.notice = "تکمیل، رجوع مکرر برائے تبادلۂ خیال صفحہ تخلیق ہورہا ہے";
var wikipedia_wiki = new Wikipedia.wiki( 'تبادلۂ خیال صفحہ برائے حذف تخلیق ہورہا ہے', query, twinklexfd.callbacks.afd.discussionPage );
wikipedia_wiki.params = self.params;
wikipedia_wiki.get();
// Today's list
var date = new Date();
query = {
'title': 'منصوبہ:صفحات برائے حذف/وثق/' + date.getUTCMonthName() + ' ' + date.getUTCFullYear(),
'action': 'submit'
};
var wikipedia_wiki = new Wikipedia.wiki( 'اس مہینہ کے وثق میں نامزدگی کا اضافہ ہورہا ہے', query, twinklexfd.callbacks.afd.todaysList );
wikipedia_wiki.params = self.params;
wikipedia_wiki.get();
// Notification to first contributor
var query = {
'action': 'query',
'prop': 'revisions',
'titles': wgPageName,
'rvlimit': 1,
'rvprop': 'user',
'rvdir': 'newer'
}
var callback = function( self ) {
var xmlDoc = self.responseXML;
var user = xmlDoc.evaluate( '//rev/@user', xmlDoc, null, XPathResult.STRING_TYPE, null ).stringValue;
var query = {
'title': 'User talk:' + user,
'action': 'submit'
};
var wikipedia_wiki = new Wikipedia.wiki( 'يتم تنبيه المساهم الأول (' + user + ')', query, twinklexfd.callbacks.afd.userNotification );
wikipedia_wiki.params = self.params;
wikipedia_wiki.get();
}
if( self.params.usertalk ) {
var wikipedia_api = new Wikipedia.api( 'يتم سحب بيانات المساهم الأول', query, callback );
wikipedia_api.params = self.params;
wikipedia_api.post();
}
},
article: function( self ) {
var form = self.responseXML.getElementById('editform');
var postData = {
'wpMinoredit': undefined, // Per memo
'wpWatchthis': form.wpWatchthis.checked ? '' : undefined,
'wpStarttime': form.wpStarttime.value,
'wpEdittime': form.wpEdittime.value,
'wpAutoSummary': form.wpAutoSummary.value,
'wpEditToken': form.wpEditToken.value,
'wpSection': form.wpSection.value,
'wpSummary': "نامزدگی برائے حذف؛ ملاحظہ فرمائیں [[منصوبہ:صفحات برائے حذف/" + wgPageName + self.params.numbering + ']].'+ TwinkleConfig.summaryAd,
'wpTextbox1': ( self.params.noinclude ? "<noinclude>" : "" ) + "\{\{حذف/تاریخ|1=|تاریخ={\{trans:MONTHNAME}\}\ {\{trans:general}\}" + ( self.params.number == '' ? "\}\}\n" : '|2=' + self.params.number + "}}\n" ) + ( self.params.noinclude ? "</noinclude>" : "" ) + form.wpTextbox1.value
};
self.post( postData );
},
discussionPage: function( self ) {
var form = self.responseXML.getElementById('editform');
var postData = {
'wpMinoredit': form.wpMinoredit.checked ? '' : undefined,
'wpWatchthis': form.wpWatchthis.checked ? '' : undefined,
'wpStarttime': form.wpStarttime.value,
'wpEdittime': form.wpEdittime.value,
'wpAutoSummary': form.wpAutoSummary.value,
'wpEditToken': form.wpEditToken.value,
'wpSection': form.wpSection.value,
'wpSummary': "مضمون کے لیے صفحۂ تبادلۂ خیال برائے حذف تخلیق کریں \[\[" + wgPageName + '\]\].' + TwinkleConfig.summaryAd,
'wpTextbox1': "\{\{subst:صفحۂ تبادلۂ خیال برائے حذف|صفحہ=" + wgPageName + "|cat=" + self.params.xfdcat + "|وجہ=" + self.params.reason + " }\}\n"
};
self.post( postData );
},
todaysList: function( self ) {
var form = self.responseXML.getElementById('editform');
var old_text = form.wpTextbox1.value;
var text = old_text.replace( /(<!--آغاز وثق-->\n+)/, "$1\{\{حذف/برائے حذف|" + wgPageName + self.params.numbering + "|\{\{نسخ:يوم\}\} \{\{نسخ:اسم_شهر\}\} \{\{نسخ:عام\}\}\}\}\n");
if( text == old_text ) {
self.statelem.error( 'فشلت في العثور على المكان المستهدف للنقاش' );
return;
}
var postData = {
'wpMinoredit': form.wpMinoredit.checked ? '' : undefined,
'wpWatchthis': form.wpWatchthis.checked ? '' : undefined,
'wpStarttime': form.wpStarttime.value,
'wpEdittime': form.wpEdittime.value,
'wpAutoSummary': form.wpAutoSummary.value,
'wpEditToken': form.wpEditToken.value,
'wpSection': form.wpSection.value,
'wpSummary': "اضافہ\[\[منصوبہ:صفحات برائے حذف/" + wgPageName + self.params.numbering + '\]\].' + TwinkleConfig.summaryAd,
'wpTextbox1': text
};
self.post( postData );
},
userNotification: function( self ) {
var form = self.responseXML.getElementById( 'editform' );
var text = form.wpTextbox1.value;
text += "\n\{\{subst:AFDWarning|1=" + wgPageName + ( self.params.numbering != '' ? '|order= ' + self.params.numbering : '' ) + "\}\} \~\~\~\~";
var postData = {
'wpMinoredit': form.wpMinoredit.checked ? '' : undefined,
'wpWatchthis': form.wpWatchthis.checked ? '' : undefined,
'wpStarttime': form.wpStarttime.value,
'wpEdittime': form.wpEdittime.value,
'wpAutoSummary': form.wpAutoSummary.value,
'wpEditToken': form.wpEditToken.value,
'wpSection': form.wpSection.value,
'wpSummary': 'انتباہ برائے نامزدگیٔ حذف \[\[' + wgPageName + '\]\].' + TwinkleConfig.summaryAd,
'wpTextbox1': text
};
self.post( postData );
}
},
tfd: {
taggingTemplate: function( self ) {
var form = self.responseXML.getElementById('editform');
var postData = {
'wpMinoredit': undefined, // Per memo
'wpWatchthis': form.wpWatchthis.checked ? '' : undefined,
'wpStarttime': form.wpStarttime.value,
'wpEdittime': form.wpEdittime.value,
'wpAutoSummary': form.wpAutoSummary.value,
'wpEditToken': form.wpEditToken.value,
'wpSection': form.wpSection.value,
'wpSummary': "نامزدگی برائے حذف; ملاحظہ فرمائیں \[\[منصوبہ:صفحات برائے حذف/" + wgPageName + '\]\].'+ TwinkleConfig.summaryAd,
'wpTextbox1': "\{\{حذف/تاريخ|1=|تاريخ={\{نسخ:اسم_شهر}\}\ {\{نسخ:عام}\}" + "\}\}\n" + form.wpTextbox1.value
};
self.post( postData );
},
todaysList: function( self ) {
var form = self.responseXML.getElementById('editform');
var old_text = form.wpTextbox1.value;
text = old_text.replace( /(<!--أضف المقالات تحت هذا السطر-->\n+)/, "$1\{\{حذف/للحذف|" + wgPageName + self.params.numbering + "|\{\{نسخ:يوم\}\} \{\{نسخ:اسم_شهر\}\} \{\{نسخ:عام\}\}\}\}\n");
if( text == old_text ) {
self.statelem.error( 'فشلت في العثور على المكان المستهدف للنقاش' );
return;
}
var postData = {
'wpMinoredit': form.wpMinoredit.checked ? '' : undefined,
'wpWatchthis': form.wpWatchthis.checked ? '' : undefined,
'wpStarttime': form.wpStarttime.value,
'wpEdittime': form.wpEdittime.value,
'wpAutoSummary': form.wpAutoSummary.value,
'wpEditToken': form.wpEditToken.value,
'wpSection': form.wpSection.value,
'wpSummary': "اضافہ[[سانچہ:" + wgTitle + ']].' + TwinkleConfig.summaryAd,
'wpTextbox1': text
};
self.post( postData );
},
userNotification: function( self ) {
var form = self.responseXML.getElementById( 'editform' );
var text = form.wpTextbox1.value;
text += "\n\{\{subst:AFDWarning|1=" + wgPageName + "\}\} \~\~\~\~";
var postData = {
'wpMinoredit': form.wpMinoredit.checked ? '' : undefined,
'wpWatchthis': form.wpWatchthis.checked ? '' : undefined,
'wpStarttime': form.wpStarttime.value,
'wpEdittime': form.wpEdittime.value,
'wpAutoSummary': form.wpAutoSummary.value,
'wpEditToken': form.wpEditToken.value,
'wpSection': form.wpSection.value,
'wpSummary': 'تنبيه ترشيح \[\[سانچہ:' + wgTitle + '\]\] برائے حذف.' + TwinkleConfig.summaryAd,
'wpTextbox1': text
};
self.post( postData );
}
},
mfd: {
main: function ( self ) {
var xmlDoc = self.responseXML;
var titles = xmlDoc.evaluate( '//allpages/p/@title', xmlDoc, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null );
// There has been no earlier entries with this prefix, just go on.
if( titles.snapshotLength <= 0 ) {
self.params.numbering = self.params.number = '';
numbering = number = '';
} else {
var number = 0;
for( var i = 0; i < titles.snapshotLength; ++i ) {
var title = titles.snapshotItem(i).value;
// First, simple test, is there an instance with this exact name?
if( title == 'منصوبہ:صفحات برائے حذف/' + wgPageName ) {
number = Math.max( number, 1 );
continue;
}
var order_re = new RegExp( '^' +
RegExp.escape( 'منصوبہ:صفحات برائے حذف/' + wgPageName, true ) +
'\\s*\\(\\s*(?:الترشيح )?(\\d+)\\s*\\)\\s*$'
);
var match = order_re.exec( title );
// No match; A non-good value
if( match == null ) {
continue;
}
// A match, set number to the max of current
number = Math.max( number, Number(match[1]) );
}
self.params.number = num2order( parseInt( number ) + 1);
self.params.numbering = number > 0 ? ' (نامزدگی' + self.params.number + ')' : '';
}
Status.info( 'صفحة الترشيح التالية","[[منصوبہ:صفحات برائے حذف/' + wgPageName + self.params.numbering + ']]' );
// Tagging article
var query = {
'title': wgPageName,
'action': 'submit'
};
var wikipedia_wiki = new Wikipedia.wiki( 'يتم وسم الصفحة بقالب الحذف', query, twinklexfd.callbacks.afd.article );
wikipedia_wiki.params = self.params;
wikipedia_wiki.get();
// Discussion page
query = {
'title': 'منصوبہ:صفحات برائے حذف/' + wgPageName + self.params.numbering,
'action': 'submit'
};
// Updating data for the action completed event
Wikipedia.actionCompleted.redirect = query['title'];
Wikipedia.actionCompleted.notice = "تم الوسم، يتم تحويلك لصفحة النقاش";
var wikipedia_wiki = new Wikipedia.wiki( 'يتم إنشاء صفحة نقاش الحذف', query, twinklexfd.callbacks.afd.discussionPage );
wikipedia_wiki.params = self.params;
wikipedia_wiki.get();
// Today's list
var date = new Date();
query = {
'title': 'منصوبہ:صفحات برائے حذف/وثق/' + date.getUTCMonthName() + ' ' + date.getUTCFullYear(),
'action': 'submit'
};
var wikipedia_wiki = new Wikipedia.wiki( 'يتم إضافة النقاش إلى أرشيف هذ الشهر', query, twinklexfd.callbacks.afd.todaysList );
wikipedia_wiki.params = self.params;
wikipedia_wiki.get();
// Notification to first contributor
var query = {
'action': 'query',
'prop': 'revisions',
'titles': wgPageName,
'rvlimit': 1,
'rvprop': 'user',
'rvdir': 'newer'
}
var callback = function( self ) {
var xmlDoc = self.responseXML;
var user = xmlDoc.evaluate( '//rev/@user', xmlDoc, null, XPathResult.STRING_TYPE, null ).stringValue;
var query = {
'title': 'User talk:' + user,
'action': 'submit'
};
var wikipedia_wiki = new Wikipedia.wiki( 'يتم تنبيه المساهم الأول (' + user + ')', query, twinklexfd.callbacks.afd.userNotification );
wikipedia_wiki.params = self.params;
wikipedia_wiki.get();
}
if( self.params.usertalk ) {
var wikipedia_api = new Wikipedia.api( 'يتم سحب بيانات المساهم الأول', query, callback );
wikipedia_api.params = self.params;
wikipedia_api.post();
}
},
article: function( self ) {
var form = self.responseXML.getElementById('editform');
var postData = {
'wpMinoredit': undefined, // Per memo
'wpWatchthis': form.wpWatchthis.checked ? '' : undefined,
'wpStarttime': form.wpStarttime.value,
'wpEdittime': form.wpEdittime.value,
'wpAutoSummary': form.wpAutoSummary.value,
'wpEditToken': form.wpEditToken.value,
'wpSection': form.wpSection.value,
'wpSummary': "ترشيح للحذف؛ ملاحظہ فرمائیں [[منصوبہ:صفحات برائے حذف/" + wgPageName + self.params.numbering + ']].'+ TwinkleConfig.summaryAd,
'wpTextbox1': ( self.params.noinclude ? "<noinclude>" : "" ) + "\{\{حذف/تاريخ|1=|تاريخ={\{نسخ:اسم_شهر}\}\ {\{نسخ:عام}\}" + ( self.params.number == '' ? "\}\}\n" : '|2=' + self.params.number + "}}\n" ) + ( self.params.noinclude ? "</noinclude>" : "" ) + form.wpTextbox1.value
};
self.post( postData );
},
discussionPage: function( self ) {
var form = self.responseXML.getElementById('editform');
var postData = {
'wpMinoredit': form.wpMinoredit.checked ? '' : undefined,
'wpWatchthis': form.wpWatchthis.checked ? '' : undefined,
'wpStarttime': form.wpStarttime.value,
'wpEdittime': form.wpEdittime.value,
'wpAutoSummary': form.wpAutoSummary.value,
'wpEditToken': form.wpEditToken.value,
'wpSection': form.wpSection.value,
'wpSummary': "إنشاء صفحة نقاش الحذف لمقالة \[\[" + wgPageName + '\]\].' + TwinkleConfig.summaryAd,
'wpTextbox1': "\{\{subst:نقاش الحذف|الصفحة=" + wgPageName + "|cat=" + self.params.xfdcat + "|وجہ=" + self.params.reason + " }\}\n"
};
self.post( postData );
},
todaysList: function( self ) {
var form = self.responseXML.getElementById('editform');
var old_text = form.wpTextbox1.value;
var text = old_text.replace( /(<!--أضف المقالات تحت هذا السطر-->\n+)/, "$1\{\{حذف/للحذف2|" + wgPageName + self.params.numbering + "|\{\{نسخ:يوم\}\} \{\{نسخ:اسم_شهر\}\} \{\{نسخ:عام\}\}\|" + wgCanonicalNamespace + "|" + wgTitle + "}\}\n");
if( text == old_text ) {
self.statelem.error( 'فشلت في العثور على المكان المستهدف للنقاش' );
return;
}
var postData = {
'wpMinoredit': form.wpMinoredit.checked ? '' : undefined,
'wpWatchthis': form.wpWatchthis.checked ? '' : undefined,
'wpStarttime': form.wpStarttime.value,
'wpEdittime': form.wpEdittime.value,
'wpAutoSummary': form.wpAutoSummary.value,
'wpEditToken': form.wpEditToken.value,
'wpSection': form.wpSection.value,
'wpSummary': "اضافہ\[\[منصوبہ:صفحات برائے حذف/" + wgPageName + self.params.numbering + '\]\].' + TwinkleConfig.summaryAd,
'wpTextbox1': text
};
self.post( postData );
},
userNotification: function( self ) {
var form = self.responseXML.getElementById( 'editform' );
var text = form.wpTextbox1.value;
text += "\n\{\{subst:AFDWarning|1=" + wgPageName + ( self.params.numbering != '' ? '|order= ' + self.params.numbering : '' ) + "\}\} \~\~\~\~";
var postData = {
'wpMinoredit': form.wpMinoredit.checked ? '' : undefined,
'wpWatchthis': form.wpWatchthis.checked ? '' : undefined,
'wpStarttime': form.wpStarttime.value,
'wpEdittime': form.wpEdittime.value,
'wpAutoSummary': form.wpAutoSummary.value,
'wpEditToken': form.wpEditToken.value,
'wpSection': form.wpSection.value,
'wpSummary': 'تنبيه لترشح حذف \[\[' + wgPageName + '\]\].' + TwinkleConfig.summaryAd,
'wpTextbox1': text
};
self.post( postData );
}
},
ifd: {
main: function( self ) {
var xmlDoc = self.responseXML;
var user = xmlDoc.evaluate( '//rev/@user', xmlDoc, null, XPathResult.STRING_TYPE, null ).stringValue;
self.params.uploader = user;
var query = {
'title': 'Wikipedia:Files for deletion/' + self.params.date,
'action': 'submit'
};
wikipedia_wiki = new Wikipedia.wiki( 'يتم إضافة النقاش إلى أرشيف هذ الشهر', query, twinklexfd.callbacks.ifd.todaysList );
wikipedia_wiki.params = self.params;
wikipedia_wiki.get();
// Updating data for the action completed event
Wikipedia.actionCompleted.redirect = query['title'];
Wikipedia.actionCompleted.notice = "تم الوسم، يتم تحويلك لصفحة النقاش";
// Notification to first contributor
if( self.params.usertalk ) {
var query = {
'title': 'User talk:' + self.params.uploader,
'action': 'submit'
};
wikipedia_wiki = new Wikipedia.wiki( 'يتم تنبيه المساهم الأول (' + self.params.uploader + ')', query, twinklexfd.callbacks.ifd.userNotification );
wikipedia_wiki.get();
}
},
taggingImage: function( self ) {
var form = self.responseXML.getElementById('editform');
var postData = {
'wpMinoredit': undefined, // Per
'wpWatchthis': form.wpWatchthis.checked ? '' : undefined,
'wpStarttime': form.wpStarttime.value,
'wpEdittime': form.wpEdittime.value,
'wpAutoSummary': form.wpAutoSummary.value,
'wpEditToken': form.wpEditToken.value,
'wpSection': form.wpSection.value,
'wpSummary': "This file is being considered for deletion in accordance with Wikipedia's [[Wikipedia:Deletion policy|Deletion policy]]; See \[\[Wikipedia:Files for deletion#" + wgPageName + '\]\].'+ TwinkleConfig.summaryAd,
'wpTextbox1': "\{\{ifd|log=" + self.params.date + "\}\}\n" + form.wpTextbox1.value
};
self.post( postData );
},
todaysList: function( self ) {
var form = self.responseXML.getElementById('editform');
var postData = {
'wpMinoredit': form.wpMinoredit.checked ? '' : undefined,
'wpWatchthis': form.wpWatchthis.checked ? '' : undefined,
'wpStarttime': form.wpStarttime.value,
'wpEdittime': form.wpEdittime.value,
'wpAutoSummary': form.wpAutoSummary.value,
'wpEditToken': form.wpEditToken.value,
'wpSection': form.wpSection.value,
'wpSummary': "Adding discussion for \[\[:" + wgPageName + '\]\].' + TwinkleConfig.summaryAd,
'wpTextbox1': form.wpTextbox1.value + "\n\{\{subst:ifd2|1=" + wgTitle + "|Uploader=" + self.params.uploader + "|Reason=" + self.params.reason + "\}\} \~\~\~\~"
};
self.post( postData );
},
userNotification: function( self ) {
var form = self.responseXML.getElementById( 'editform' );
var text = form.wpTextbox1.value;
text += "\n\{\{subst:idw|1=" + wgTitle + "\}\}";
var postData = {
'wpMinoredit': form.wpMinoredit.checked ? '' : undefined,
'wpWatchthis': form.wpWatchthis.checked ? '' : undefined,
'wpStarttime': form.wpStarttime.value,
'wpEdittime': form.wpEdittime.value,
'wpAutoSummary': form.wpAutoSummary.value,
'wpEditToken': form.wpEditToken.value,
'wpSection': form.wpSection.value,
'wpSummary': 'Notification: FfD nomination of \[\[' + wgPageName + '\]\].' + TwinkleConfig.summaryAd,
'wpTextbox1': text
};
self.post( postData );
},
tagInstancesMain: function( self ) {
var xmlDoc = self.responseXML;
var nsResolver = xmlDoc.createNSResolver( xmlDoc.ownerDocument == null ? xmlDoc.documentElement : xmlDoc.ownerDocument.documentElement);
var snapshot = xmlDoc.evaluate('//imageusage/iu/@title', xmlDoc, nsResolver, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null );
if( snapshot.snapshotLength == 0 ) {
return;
}
var statusIndicator = new Status('Tagging file instances ', '0%');
var total = snapshot.snapshotLength * 2;
var date = new Date();
var dateString = date.getUTCFullYear() + ' ' + date.getUTCMonthName() + ' ' + date.getUTCDate();
imageTaggingCounter = 0;
var onsuccess = function( self ) {
var obj = self.params.obj;
var total = self.params.total;
var now = parseInt( 100 * ++imageTaggingCounter/total ) + '%';
obj.update( now );
self.statelem.unlink();
if( imageTaggingCounter == total ) {
obj.info( now + ' (completed)' );
Wikipedia.removeCheckpoint();
}
}
var onloaded = onsuccess;
var onloading = function( self ) {}
Wikipedia.addCheckpoint();
for ( var i = 0; i < snapshot.snapshotLength; ++i ) {
var title = snapshot.snapshotItem(i).value;
var query = {
'title': title,
'action': 'submit'
}
var wikipedia_wiki = new Wikipedia.wiki( "Tagging of " + title, query, twinklexfd.callbacks.ifd.tagInstances );
wikipedia_wiki.params = { title:title, total:total, obj:statusIndicator, date:dateString };
wikipedia_wiki.onloading = onloading;
wikipedia_wiki.onloaded = onloaded;
wikipedia_wiki.onsuccess = onsuccess;
wikipedia_wiki.get();
}
},
tagInstances: function( self ) {
var form = self.responseXML.getElementById('editform');
var text = form.wpTextbox1.value;
var old_text = text;
var wikiPage = new Mediawiki.Page( text );
var tag = "\{\{ifdc|1=" + wgTitle + "|log=" + self.params.date + "\}\}";
wikiPage.addToImageComment( wgTitle, tag );
text = wikiPage.getText();
if( text == old_text ) {
// Nothing to do, return
self.onsuccess( self );
Wikipedia.actionCompleted();
return;
}
var postData = {
'wpMinoredit': form.wpMinoredit.checked ? '' : undefined,
'wpWatchthis': form.wpWatchthis.checked ? '' : undefined,
'wpStarttime': form.wpStarttime.value,
'wpEdittime': form.wpEdittime.value,
'wpAutoSummary': form.wpAutoSummary.value,
'wpEditToken': form.wpEditToken.value,
'wpSection': form.wpSection.value,
'wpSummary': 'Tagging [[:File:' + wgTitle + "]] which is up for deletion at [[WP:FFD|Files for deletion]]" + TwinkleConfig.summaryAd,
'wpTextbox1': text
};
self.post( postData );
}
},
puf: {
taggingImage: function( self ) {
var form = self.responseXML.getElementById('editform');
var postData = {
'wpMinoredit': undefined, // Per
'wpWatchthis': form.wpWatchthis.checked ? '' : undefined,
'wpStarttime': form.wpStarttime.value,
'wpEdittime': form.wpEdittime.value,
'wpAutoSummary': form.wpAutoSummary.value,
'wpEditToken': form.wpEditToken.value,
'wpSection': form.wpSection.value,
'wpSummary': "This file has been listed on [[Wikipedia:Possibly unfree files]] because the information on its source or copyright status is disputed; See \[\[Wikipedia:Possibly unfree files#" + wgPageName + '\]\].'+ TwinkleConfig.summaryAd,
'wpTextbox1': "\{\{puf|log=" + self.params.date + "\}\}\n" + form.wpTextbox1.value
};
self.post( postData );
},
todaysList: function( self ) {
var form = self.responseXML.getElementById('editform');
var postData = {
'wpMinoredit': form.wpMinoredit.checked ? '' : undefined,
'wpWatchthis': form.wpWatchthis.checked ? '' : undefined,
'wpStarttime': form.wpStarttime.value,
'wpEdittime': form.wpEdittime.value,
'wpAutoSummary': form.wpAutoSummary.value,
'wpEditToken': form.wpEditToken.value,
'wpSection': form.wpSection.value,
'wpSummary': "Adding discussion for \[\[:" + wgPageName + '\]\].' + TwinkleConfig.summaryAd,
'wpTextbox1': form.wpTextbox1.value + "\n\{\{subst:puf2|image=" + wgTitle + "|reason=" + self.params.reason + "\}\} \~\~\~\~"
};
self.post( postData );
},
userNotification: function( self ) {
var form = self.responseXML.getElementById( 'editform' );
var text = form.wpTextbox1.value;
text += "\n\{\{subst:idw-puf|1=" + wgTitle + "\}\} --\~\~\~\~";
var postData = {
'wpMinoredit': form.wpMinoredit.checked ? '' : undefined,
'wpWatchthis': form.wpWatchthis.checked ? '' : undefined,
'wpStarttime': form.wpStarttime.value,
'wpEdittime': form.wpEdittime.value,
'wpAutoSummary': form.wpAutoSummary.value,
'wpEditToken': form.wpEditToken.value,
'wpSection': form.wpSection.value,
'wpSummary': 'Notification: PUF posting of \[\[' + wgPageName + '\]\].' + TwinkleConfig.summaryAd,
'wpTextbox1': text
};
self.post( postData );
},
tagInstancesMain: function( self ) {
var xmlDoc = self.responseXML;
var nsResolver = xmlDoc.createNSResolver( xmlDoc.ownerDocument == null ? xmlDoc.documentElement : xmlDoc.ownerDocument.documentElement);
var snapshot = xmlDoc.evaluate('//imageusage/iu/@title', xmlDoc, nsResolver, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null );
if( snapshot.snapshotLength == 0 ) {
return;
}
var statusIndicator = new Status('Tagging file instances', '0%');
var total = snapshot.snapshotLength * 2;
var date = new Date();
var dateString = date.getUTCFullYear() + ' ' + date.getUTCMonthName() + ' ' + date.getUTCDate();
imageTaggingCounter = 0;
var onsuccess = function( self ) {
var obj = self.params.obj;
var total = self.params.total;
var now = parseInt( 100 * ++imageTaggingCounter/total ) + '%';
obj.update( now );
self.statelem.unlink();
if( imageTaggingCounter == total ) {
obj.info( now + ' (completed)' );
Wikipedia.removeCheckpoint();
}
}
var onloaded = onsuccess;
var onloading = function( wikipedia_wiki ) {}
Wikipedia.addCheckpoint();
for ( var i = 0; i < snapshot.snapshotLength; ++i ) {
var title = snapshot.snapshotItem(i).value;
var query = {
'title': title,
'action': 'submit'
}
var wikipedia_wiki = new Wikipedia.wiki( "Tagging " + title, query, twinklexfd.callbacks.puf.tagInstances );
wikipedia_wiki.params = { title:title, total:total, obj:statusIndicator, date:dateString };
wikipedia_wiki.onloading = onloading;
wikipedia_wiki.onloaded = onloaded;
wikipedia_wiki.onsuccess = onsuccess;
wikipedia_wiki.get();
}
},
tagInstances: function( self ) {
var form = self.responseXML.getElementById('editform');
var text = form.wpTextbox1.value;
var old_text = text;
var wikiPage = new Mediawiki.Page( text );
var tag = "\{\{pufc|1=" + wgTitle + "|log=" + self.params.date + "\}\}";
wikiPage.addToImageComment( wgTitle, tag );
text = wikiPage.getText();
if( text == old_text ) {
// Nothing to do, return
self.onsuccess( self );
Wikipedia.actionCompleted();
return;
}
var postData = {
'wpMinoredit': form.wpMinoredit.checked ? '' : undefined,
'wpWatchthis': form.wpWatchthis.checked ? '' : undefined,
'wpStarttime': form.wpStarttime.value,
'wpEdittime': form.wpEdittime.value,
'wpAutoSummary': form.wpAutoSummary.value,
'wpEditToken': form.wpEditToken.value,
'wpSection': form.wpSection.value,
'wpSummary': 'Tagging [[:File:' + wgTitle + "]] which has been listed on [[WP:PUF|Possible unfree files]]" + TwinkleConfig.summaryAd,
'wpTextbox1': text
};
self.post( postData );
}
},
cfd: {
taggingCategory: function( self ) {
var form = self.responseXML.getElementById('editform');
var added_data = "";
var summary = "";
switch( self.params.xfdcat ) {
case 'cfd':
added_data = "\{\{subst:cfd\}\}";
summary = "This category is being considered for deletion in accordance with [[WP:CDP|CDP]];" + TwinkleConfig.summaryAd;
break;
case 'cfm':
added_data = "\{\{subst:cfm|" + self.params.target.replace('Category:','') + "\}\}";
summary = "This category is being considered for merging in accordance with [[WP:CDP|CDP]];" + TwinkleConfig.summaryAd;
break;
case 'cfr':
added_data = "\{\{subst:cfr|" + self.params.target.replace('Category:','') + "\}\}";
summary = "This category is being considered for renaming in accordance with [[WP:CDP|CDP]];" + TwinkleConfig.summaryAd;
break;
case 'cfc':
added_data = "\{\{subst:cfc|" + self.params.target + "\}\}";
summary = "This category is being considered for conversion in accordance with [[WP:CDP|CDP]];" + TwinkleConfig.summaryAd;
break;
}
var postData = {
'wpMinoredit': undefined, // Per the cabal
'wpWatchthis': form.wpWatchthis.checked ? '' : undefined,
'wpStarttime': form.wpStarttime.value,
'wpEdittime': form.wpEdittime.value,
'wpAutoSummary': form.wpAutoSummary.value,
'wpEditToken': form.wpEditToken.value,
'wpSection': form.wpSection.value,
'wpSummary': summary,
'wpTextbox1': added_data + "\n" + form.wpTextbox1.value
};
self.post( postData );
},
todaysList: function( self ) {
var form = self.responseXML.getElementById('editform');
var added_data = "";
var summary = "";
switch( this.params.xfdcat ) {
case 'cfd':
added_data = "\{\{subst:cfd2|1=" + wgTitle + "|text=" + self.params.reason + " \~\~\~\~\}\}";
summary = "Added delete nomination of [[:" + wgPageName + "]];" + TwinkleConfig.summaryAd;
break;
case 'cfm':
added_data = "\{\{subst:cfm2|1=" + wgTitle + "|2=" + self.params.target + "|text=" + self.params.reason + " \~\~\~\~\}\}";
summary = "Added merge nomination of [[:" + wgPageName + "]];" + TwinkleConfig.summaryAd;
break;
case 'cfr':
added_data = "\{\{subst:cfr2|1=" + wgTitle + "|2=" + self.params.target + "|text=" + self.params.reason + " \~\~\~\~\}\}";
summary = "Added rename nomination of [[:" + wgPageName + "]];" + TwinkleConfig.summaryAd;
break;
case 'cfc':
added_data = "\{\{subst:cfc2|1=" + wgTitle + "|2=" + self.params.target + "|text=" + self.params.reason + " \~\~\~\~\}\}";
summary = "Added convert nomination of [[:" + wgPageName + "]];" + TwinkleConfig.summaryAd;
break;
}
var old_text = form.wpTextbox1.value;
text = old_text.replace( '-->', "-->\n" + added_data );
if( text == old_text ) {
self.statelem.error( 'فشلت في العثور على المكان المستهدف للنقاش' );
return;
}
var postData = {
'wpMinoredit': form.wpMinoredit.checked ? '' : undefined,
'wpWatchthis': form.wpWatchthis.checked ? '' : undefined,
'wpStarttime': form.wpStarttime.value,
'wpEdittime': form.wpEdittime.value,
'wpAutoSummary': form.wpAutoSummary.value,
'wpEditToken': form.wpEditToken.value,
'wpSection': form.wpSection.value,
'wpSummary': summary,
'wpTextbox1': text
};
self.post( postData );
},
userNotification: function( self ) {
var form = self.responseXML.getElementById( 'editform' );
var text = form.wpTextbox1.value;
var intext = "";
switch( self.params.xfdcat ) {
case 'cfd':
intext = 'for deletion';
break;
case 'cfm':
intext = 'for merging into \{\{lc|' + self.params.target + "\}\}" ;
break;
case 'cfr':
intext = 'for renaming to \{\{lc|' + self.params.target + "\}\}" ;
break;
case 'cfc':
intext = 'for converting into an article named \{\{lc|' + self.params.target + "\}\}" ;
break;
}
text += "\n==CfD nomination of [[:" + wgPageName + "]]==\nI have nominated \{\{lc|" + wgTitle + "\}\} " + intext + ". Your opinions on the matter are welcome; please participate in the discussion by adding your comments at [[" + self.params.todaysPage + "#" + wgPageName + "|the discussion page]]. Thank you. \~\~\~\~";
var postData = {
'wpMinoredit': form.wpMinoredit.checked ? '' : undefined,
'wpWatchthis': form.wpWatchthis.checked ? '' : undefined,
'wpStarttime': form.wpStarttime.value,
'wpEdittime': form.wpEdittime.value,
'wpAutoSummary': form.wpAutoSummary.value,
'wpEditToken': form.wpEditToken.value,
'wpSection': form.wpSection.value,
'wpSummary': 'Notification: CfD nomination of \[\[:' + wgPageName + '\]\].' + TwinkleConfig.summaryAd,
'wpTextbox1': text
};
self.post( postData );
}
},
rfd: {
main: function( self ) {
var xmlDoc = self.responseXML;
var target = xmlDoc.evaluate( '//redirects/r/@to', xmlDoc, null, XPathResult.STRING_TYPE, null ).stringValue;
if( !target ) {
self.statelem.error( 'no target of this redirect, aborting' );
return;
}
self.params.target = target;
// Tagging redirect
var query = {
'title': wgPageName,
'action': 'submit'
};
wikipedia_wiki = new Wikipedia.wiki( 'يتم وسم التحويل بقالب الحذف', query, twinklexfd.callbacks.rfd.taggingRedirect );
wikipedia_wiki.followRedirect = false;
wikipedia_wiki.get();
var date = new Date();
var today = date.getUTCFullYear() + ' ' + date.getUTCMonthName() + ' ' + date.getUTCDate();
var query = {
'title': 'Wikipedia:Redirects for discussion/Log/' + today,
'action': 'submit'
};
wikipedia_wiki = new Wikipedia.wiki( 'يتم إضافة النقاش إلى أرشيف هذ الشهر', query, twinklexfd.callbacks.rfd.todaysList );
wikipedia_wiki.params = self.params;
wikipedia_wiki.get();
// Updating data for the action completed event
Wikipedia.actionCompleted.redirect = query['title'];
Wikipedia.actionCompleted.notice = "تم الوسم، يتم تحويلك لصفحة النقاش";
self.params.todaysPage = query['title'];
// Notifying initial contributor
var query = {
'action': 'query',
'prop': 'revisions',
'titles': wgPageName,
'rvlimit': 1,
'rvprop': 'user',
'rvdir': 'newer'
}
var callback = function( self ) {
var xmlDoc = self.responseXML;
var user = xmlDoc.evaluate( '//rev/@user', xmlDoc, null, XPathResult.STRING_TYPE, null ).stringValue;
var query = {
'title': 'User talk:' + user,
'action': 'submit'
};
var wikipedia_wiki = new Wikipedia.wiki( 'يتم تنبيه المساهم الأول (' + user + ')', query, twinklexfd.callbacks.rfd.userNotification );
wikipedia_wiki.params = self.params;
wikipedia_wiki.get();
}
if( self.params.usertalk ) {
var wikipedia_api = new Wikipedia.api( 'يتم سحب بيانات المساهم الأول', query, callback );
wikipedia_api.params = self.params;
wikipedia_api.post();
}
},
taggingRedirect: function( self ) {
var form = self.responseXML.getElementById('editform');
var postData = {
'wpMinoredit': undefined, // Per
'wpWatchthis': form.wpWatchthis.checked ? '' : undefined,
'wpStarttime': form.wpStarttime.value,
'wpEdittime': form.wpEdittime.value,
'wpAutoSummary': form.wpAutoSummary.value,
'wpEditToken': form.wpEditToken.value,
'wpSection': form.wpSection.value,
'wpSummary': "This redirect has been listed on \[\[Wikipedia:Redirects for discussion\]\]." + TwinkleConfig.summaryAd,
'wpTextbox1': "\{\{rfd\}\}\n" + form.wpTextbox1.value
};
self.post( postData );
},
todaysList: function( self ) {
var form = self.responseXML.getElementById('editform');
var old_text = form.wpTextbox1.value;
var text = old_text.replace( /(<\!-- Add new entries directly below this line -->\n+)/, "$1\{\{subst:rfd2|redirect="+ wgPageName + "|target=" + self.params.target + "|text=" + self.params.reason.toUpperCaseFirstChar() +"\}\} \~\~\~\~\n" );
if( text == old_text ) {
self.statelem.error( 'فشلت في العثور على المكان المستهدف للنقاش' );
return;
}
var postData = {
'wpMinoredit': form.wpMinoredit.checked ? '' : undefined,
'wpWatchthis': form.wpWatchthis.checked ? '' : undefined,
'wpStarttime': form.wpStarttime.value,
'wpEdittime': form.wpEdittime.value,
'wpAutoSummary': form.wpAutoSummary.value,
'wpEditToken': form.wpEditToken.value,
'wpSection': form.wpSection.value,
'wpSummary': "Adding [[" + wgPageName + ']].' + TwinkleConfig.summaryAd,
'wpTextbox1': text
};
self.post( postData );
},
userNotification: function( self ) {
var form = self.responseXML.getElementById( 'editform' );
var text = form.wpTextbox1.value;
text += "\n==RfD nomination of [[:" + wgPageName + "]]==\nI have nominated " + ln( wgNamespaceNumber, wgTitle ) + " for discussion. Your opinions on the matter are welcome; please participate in the discussion by adding your comments at [[" + self.params.todaysPage + "#" + wgPageName + "|the discussion page]]. Thank you. \~\~\~\~";
var postData = {
'wpMinoredit': form.wpMinoredit.checked ? '' : undefined,
'wpWatchthis': form.wpWatchthis.checked ? '' : undefined,
'wpStarttime': form.wpStarttime.value,
'wpEdittime': form.wpEdittime.value,
'wpAutoSummary': form.wpAutoSummary.value,
'wpEditToken': form.wpEditToken.value,
'wpSection': form.wpSection.value,
'wpSummary': 'Notification: RFD posting of \[\[' + wgPageName + '\]\].' + TwinkleConfig.summaryAd,
'wpTextbox1': text
};
self.post( postData );
}
}
}
twinklexfd.callback.evaluate = function(e) {
wgPageName = wgPageName.replace( /_/g, ' ' ); // for queen/king/whatever and country!
var type = e.target.category.value;
var usertalk = e.target.notify.checked;
var reason = e.target.xfdreason.value;
if( type in {'afd':'','cfd':''} ) {
var xfdcat = e.target.xfdcat.value;
}
if( type == 'ifd' ) {
var puf = e.target.puf.checked;
}
if( type in {'afd':'','mfd':''} ) {
var noinclude = e.target.noinclude.checked;
}
if( type == 'tfd' ) {
var tfdinline = e.target.tfdinline.checked;
}
Status.init( e.target );
if( type == null ) {
Status.error( 'Error', 'no action given' );
return;
}
switch( type ) {
case 'afd': // AFD
var query = {
'action': 'query',
'list': 'allpages',
'apprefix': 'Articles for deletion/' + wgPageName,
'apnamespace': 4,
'apfilterredir': 'nonredirects',
'aplimit': userIsInGroup( 'sysop' ) ? 5000 : 500
};
var wikipedia_api = new Wikipedia.api( 'يتم وسم المقالة بقالب الحذف', query, twinklexfd.callbacks.afd.main );
wikipedia_api.params = { usertalk:usertalk, reason:reason, noinclude:noinclude, xfdcat:xfdcat };
wikipedia_api.post();
break;
case 'tfd': // TFD
Wikipedia.addCheckpoint();
// Tagging article
var query = {
'title': wgPageName,
'action': 'submit'
};
wikipedia_wiki = new Wikipedia.wiki( 'يتم وسم القالب بقالب الحذف', query, twinklexfd.callbacks.tfd.taggingTemplate );
wikipedia_wiki.params = { tfdinline:tfdinline };
wikipedia_wiki.get();
// Adding discussion
var date = new Date();
query = {
'title': 'ويكيبيديا:نقاش الحذف/أرشيف/' + date.getUTCMonthName() + ' ' + date.getUTCFullYear(),
'action': 'submit',
'section': 1
};
// Updating data for the action completed event
Wikipedia.actionCompleted.redirect = query['title'];
Wikipedia.actionCompleted.notice = "Nomination completed, redirecting now to the list of today";
wikipedia_wiki = new Wikipedia.wiki( 'يتم إضافة النقاش إلى أرشيف هذ الشهر', query, twinklexfd.callbacks.tfd.todaysList );
wikipedia_wiki.params = { reason:reason };
wikipedia_wiki.get();
var query = {
'action': 'query',
'prop': 'revisions',
'titles': wgPageName,
'rvlimit': 1,
'rvprop': 'user',
'rvdir': 'newer'
}
var callback = function( self ) {
var xmlDoc = self.responseXML;
var user = xmlDoc.evaluate( '//rev/@user', xmlDoc, null, XPathResult.STRING_TYPE, null ).stringValue;
var query = {
'title': 'User talk:' + user,
'action': 'submit'
};
var wikipedia_wiki = new Wikipedia.wiki( 'يتم تنبيه المساهم الأول (' + user + ')', query, twinklexfd.callbacks.tfd.userNotification );
wikipedia_wiki.params = self.params;
wikipedia_wiki.get();
}
if( usertalk ) {
var wikipedia_api = new Wikipedia.api( 'يتم سحب بيانات المساهم الأول', query, callback );
wikipedia_api.params = self.params;
wikipedia_api.post();
}
Wikipedia.removeCheckpoint();
break;
case 'mfd': // MFD
var query = {
'action': 'query',
'list': 'allpages',
'apprefix': 'Miscellany for deletion/' + wgPageName,
'apnamespace': 4,
'apfilterredir': 'nonredirects',
'aplimit': userIsInGroup( 'sysop' ) ? 5000 : 500
};
var wikipedia_api = new Wikipedia.api( 'Querying allpages', query, twinklexfd.callbacks.mfd.main );
wikipedia_api.params = { usertalk:usertalk, reason:reason, noinclude:noinclude, xfdcat:xfdcat };
wikipedia_api.post();
break;
case 'ifd': // IFD
var date = new Date();
var dateString = date.getUTCFullYear() + ' ' + date.getUTCMonthName() + ' ' + date.getUTCDate();
var params = { usertalk: usertalk, reason: reason, date: dateString };
Wikipedia.addCheckpoint();
if( puf ) {
// Tagging file
var query = {
'title': wgPageName,
'action': 'submit'
};
var wikipedia_wiki = new Wikipedia.wiki( 'Tagging file with PUF tag', query, twinklexfd.callbacks.puf.taggingImage );
wikipedia_wiki.params = params;
wikipedia_wiki.get();
// Adding discussion
query = {
'title': 'Wikipedia:Possibly unfree files/' + dateString,
'action': 'submit'
};
// Updating data for the action completed event
Wikipedia.actionCompleted.redirect = query['title'];
Wikipedia.actionCompleted.notice = "Nomination completed, now redirecting to today\'s list";
wikipedia_wiki = new Wikipedia.wiki( 'يتم إضافة النقاش إلى أرشيف هذ الشهر', query, twinklexfd.callbacks.puf.todaysList );
wikipedia_wiki.params = params;
wikipedia_wiki.get();
var query = {
'action': 'query',
'prop': 'revisions',
'titles': wgPageName,
'rvlimit': 1,
'rvprop': 'user',
'rvdir': 'newer'
}
var callback = function( self ) {
var xmlDoc = self.responseXML;
var user = xmlDoc.evaluate( '//rev/@user', xmlDoc, null, XPathResult.STRING_TYPE, null ).stringValue;
var query = {
'title': 'User talk:' + user,
'action': 'submit'
};
var wikipedia_wiki = new Wikipedia.wiki( 'يتم تنبيه المساهم الأول (' + user + ')', query, twinklexfd.callbacks.puf.userNotification );
wikipedia_wiki.params = self.params;
wikipedia_wiki.get();
}
if( usertalk ) {
var wikipedia_api = new Wikipedia.api( 'يتم سحب بيانات المساهم الأول', query, callback );
wikipedia_api.params = params;
wikipedia_api.post();
}
Wikipedia.removeCheckpoint();
// adding tag to captions
var query = {
'action': 'query',
'list': 'imageusage',
'iutitle': wgPageName,
'iulimit': userIsInGroup( 'sysop' ) ? 5000 : 500 // 500 is max for normal users, 5000 for bots and sysops
};
//var wikipedia_api = new Wikipedia.api( 'Grabbing file links', query, twinklexfd.callbacks.puf.tagInstancesMain );
//wikipedia_api.post();
} else {
// Tagging file
var query = {
'title': wgPageName,
'action': 'submit'
};
var wikipedia_wiki = new Wikipedia.wiki( 'يتم وسم الملف بقالب الحذف', query, twinklexfd.callbacks.ifd.taggingImage );
wikipedia_wiki.params = params;
wikipedia_wiki.get();
// Contributor specific edits
var query = {
'action': 'query',
'prop': 'revisions',
'titles': wgPageName,
'rvlimit': 1,
'rvprop': 'user',
'rvdir': 'newer'
}
var wikipedia_api = new Wikipedia.api( 'يتم سحب بيانات المساهم الأول', query, twinklexfd.callbacks.ifd.main );
wikipedia_api.params = params;
wikipedia_api.post();
// adding tag to captions
var query = {
'action': 'query',
'list': 'imageusage',
'iutitle': wgPageName,
'iulimit': userIsInGroup( 'sysop' ) ? 5000 : 500 // 500 is max for normal users, 5000 for bots and sysops
};
var wikipedia_api = new Wikipedia.api( 'Grabbing file links', query, twinklexfd.callbacks.ifd.tagInstancesMain );
wikipedia_api.post();
}
Wikipedia.removeCheckpoint();
break;
case 'cfd':
Wikipedia.addCheckpoint();
if( e.target.xfdtarget ) {
var target = e.target.xfdtarget.value.replace( /^\:?Category\:/, '' );
} else {
var target = '';
}
var date = new Date();
var todaysPage = 'Wikipedia:Categories for discussion/Log/' + date.getUTCFullYear() + ' ' + date.getUTCMonthName() + ' ' + date.getUTCDate();
// Updating data for the action completed event
Wikipedia.actionCompleted.redirect = todaysPage;
Wikipedia.actionCompleted.notice = "تم الوسم، يتم تحويلك لصفحة النقاش";
// Tagging category
var query = {
'title': wgPageName,
'action': 'submit'
};
var params = { reason:reason, xfdcat:xfdcat, target:target };
var wikipedia_wiki = new Wikipedia.wiki( 'يتم وسم التصنيف بقالب الحذف', query, twinklexfd.callbacks.cfd.taggingCategory );
wikipedia_wiki.params = params;
wikipedia_wiki.get();
// Today's list
var query = {
'title': todaysPage,
'action': 'submit',
'section': 2
};
var wikipedia_wiki = new Wikipedia.wiki( 'يتم إضافة النقاش إلى أرشيف هذ الشهر', query, twinklexfd.callbacks.cfd.todaysList );
wikipedia_wiki.params = params;
wikipedia_wiki.get();
// Notification to first contributor
var query = {
'action': 'query',
'prop': 'revisions',
'titles': wgPageName,
'rvlimit': 1,
'rvprop': 'user',
'rvdir': 'newer'
}
var callback = function( self ) {
var xmlDoc = self.responseXML;
var user = xmlDoc.evaluate( '//rev/@user', xmlDoc, null, XPathResult.STRING_TYPE, null ).stringValue;
var query = {
'title': 'User talk:' + user,
'action': 'submit'
};
var wikipedia_wiki = new Wikipedia.wiki( 'يتم تنبيه المساهم الأول (' + user + ')', query, twinklexfd.callbacks.cfd.userNotification );
wikipedia_wiki.params = self.params;
wikipedia_wiki.get();
}
if( usertalk ) {
var wikipedia_api = new Wikipedia.api( 'يتم سحب بيانات المساهم الأول', query, callback );
wikipedia_api.params = { xfdcat:xfdcat, target:target, todaysPage:todaysPage };
wikipedia_api.post();
}
Wikipedia.removeCheckpoint();
break;
case 'rfd':
var query = {
'action': 'query',
'titles': wgPageName,
'redirects': true
};
var wikipedia_api = new Wikipedia.api( 'Querying redirect', query, twinklexfd.callbacks.rfd.main );
wikipedia_api.params = { usertalk:usertalk, reason:reason };
wikipedia_api.post();
break;
}
}