User:Ou0430/Friendly/friendlynotify.js
< User:Ou0430 | Friendly
注意:在发布之后,您可能需要清除浏览器缓存才能看到所作出的变更的影响。
- Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5或Ctrl-R(Mac为⌘-R)
- Google Chrome:按Ctrl-Shift-R(Mac为⌘-Shift-R)
- Internet Explorer或Edge:按住Ctrl的同时单击刷新,或按Ctrl-F5
- Opera:按 Ctrl-F5。
// If FriendlyConfig aint exist.
if( typeof( FriendlyConfig ) == 'undefined' ) {
FriendlyConfig = {};
}
/**
FriendlyConfig.summaryAd ( string )
If ad should be added or not to summary, default [[WP:FRIENDLY|Friendly]]
*/
if( typeof( FriendlyConfig.summaryAd ) == 'undefined' ) {
FriendlyConfig.summaryAd = " using [[WP:FRIENDLY|Friendly]]";
}
/**
FriendlyConfig.markNotifyAsMinor ( boolean )
*/
if( typeof( FriendlyConfig.markNotifyAsMinor ) == 'undefined' ) {
FriendlyConfig.markNotifyAsMinor = false;
}
/**
FriendlyConfig.insertSignature ( boolean )
*/
if( typeof( FriendlyConfig.insertSignature ) == 'undefined' ) {
FriendlyConfig.insertSignature = true;
}
$(friendlynotify);
function friendlynotify() {
if( wgNamespaceNumber == 3 ) {
var username = wgTitle.split( '/' )[0].replace( /\"/, "\\\""); // only first part before any slashes
twAddPortletLink( 'p-cactions', "javascript:friendlynotify.callback(\"" + username + "\")", wgULS("通知","通知"), "friendly-notify", wgULS("發表打包通告","發表打包通告"), "");
}
}
friendlynotify.callback = function friendlynotifyCallback( uid ) {
if( uid == wgUserName ){
alert( 'You can\'t notify yourself.' );
return;
}
var Window = new SimpleWindow( 600, 350 );
Window.setTitle( "Notify" );
var form = new QuickForm( friendlynotify.callback.evaluate );
form.append( {
type: 'textarea',
label: 'Notify',
name: 'template'
} );
form.append( { type:'header', label:'Settings' } );
form.append( { type:'checkbox', name: 'settings', list: friendlynotify.settingsList } );
form.append( { type:'submit' } );
var result = form.render();
Window.setContent( result );
Window.display();
}
friendlynotify.settingsList = [
//{
// label: '模板信息(請不要插入\{\{\}\}和subst:,程序將自動替換引用)',
// value: 'istemp',
// checked: true
//},
{
label: 'Add sign',
value: 'issign',
checked: FriendlyConfig.insertSignature
}
];
friendlynotify.callbacks = {
main: function( self ) {
self.statelem.status( 'Grabbing edit token...' );
var xmlDoc = self.responseXML;
var editToken = xmlDoc.evaluate( '//page/@edittoken', xmlDoc, null, XPathResult.STRING_TYPE, null ).stringValue;
//var btemp = false;
var bsign = false;
for( var i = 0; i < self.params.tags.length; i++ ) {
/*if( self.params.tags[i] == 'istemp' ) {
btemp = true;
} else*/ if( self.params.tags[i] == 'issign' ) {
bsign = true;
}
}
//if( btemp ) {
var text = '\{\{subst:' + self.params.template + '\}\}';
//} else {
// var text = self.params.template;
//}
if( bsign ) {
text += '--\~\~\~\~';
}
var query = {
'action': 'edit',
'title': wgPageName,
'section': 'new',
'text': text,
'token': editToken,
'summary': '',
'minor': FriendlyConfig.markNotifyAsMinor ? 1 : undefined
};
var wikipedia_api = new Wikipedia.api( 'Edit token grabbed; adding notification to user talk page...', query, null, self.statelem );
wikipedia_api.post();
}
}
friendlynotify.callback.evaluate = function friendlynotifyCallbackEvaluate(e) {
var params = {
tags: e.target.getChecked('settings'),
template: e.target.template.value
};
Status.init( e.target );
Wikipedia.actionCompleted.redirect = wgPageName;
Wikipedia.actionCompleted.notice = "Notification complete; reloading talk page in a few seconds";
var query = {
'action': 'query',
'prop': 'info',
'intoken': 'edit',
'titles': wgPageName
};
var wikipedia_api = new Wikipedia.api( 'Status', query, friendlynotify.callbacks.main );
wikipedia_api.params = params;
wikipedia_api.post();
}