利用者:Syunsyunminmin/script/update.js
注意: 保存した後、ブラウザのキャッシュをクリアする必要があります。Mozilla / Firefox / Safari: [Shift] を押しながら [再読み込み] をクリック、または [Shift]-[Ctrl]-[R] (Macでは [Cmd]-[Shift]-[R]); IE: [Ctrl] を押しながら [更新] をクリック、または [Ctrl]-[F5]; Konqueror: [再読み込み] をクリック、または [F5]; Opera: 「ツール」→「設定」からキャッシュをクリア。
//<nowiki>
$.when( mw.loader.using( 'mediawiki.util' ), $.ready ).then( function () {
var NamespaceNumber = mw.config.get('wgNamespaceNumber'), ArticleId = mw.config.get('wgArticleId');
if (mw.config.get('wgUserName') != 'Syunsyunminmin') {
return;
}
if ((NamespaceNumber == 4 || NamespaceNumber == 108) && ArticleId == 0) {
var tanshin;
if (NamespaceNumber == 108) {
tanshin = true;
}
var monthlyupdate = mw.util.addPortletLink(
'p-cactions',
'#',
'月次更新',
'ca-monthly',
'月次更新をする',
'',
'#ca-monthly'
);
var Title = mw.config.get('wgTitle');
var fulltitle = mw.config.get('wgPageName');
var Reg = /(\d{4})年\/(\d{1,2})月\/(\d{1,2})日/;
var year = Title.replace(Reg, '$1');
var month = Title.replace(Reg, '$2');
var date = Title.replace(Reg, '$3');
var maintext;
if (tanshin) {
maintext = '{{短信}}{{短信ヘッダ|' + year + '|' + month + '|' + date + '}}\n<onlyinclude>\n<!--↓短信フォーマット↓\n*(政治/経済/社会/文化/スポーツ/学術/ひと/気象/脇ニュース)短信本文 - [http://(出典URL) 発行者]\n-->\n</onlyinclude>\n{{短信フッタ|' + year + '|' + month + '|' + date + '}}\n';
} else {
maintext = '<onlyinclude>{|style="clear:right; float:right; background:transparent; border-spacing:0; width:100px"\n<!-- 画像は100px幅以内で -->\n<!--[[ファイル:ファイル名.拡張子|right|100px|代替文]]-->\n|}\n<DynamicPageList>\ncategory=公開中\ncategory=' + year + '年' + month + '月' + date + '日\nnotcategory=議論中\nsuppresserrors=true\nnamespace=0\n</DynamicPageList></onlyinclude>\n\n[[カテゴリ:' + year + '年' + month + '月' + date + '日|*]]\n';
}
// カテゴリ作成用に数値を変更
var monthlength = month.toString().length;
var datelength = date.toString().length;
var month1 = month, date1 = date;
if (monthlength == 1) {
month1 = 0 + month;
}
if (datelength == 1) {
date1 = 0 + date;
}
// カテゴリの内容
var categorytitle = 'カテゴリ:' + year + '年' + month + '月' + date + '日';
var categorytext = '{{カテゴリ日付|' + year + month1 + date1 + '}}';
$( "#ca-monthly" ).click(function() {
var confirm = window.confirm(maintext + categorytext);
var summary = '月次更新 ([[利用者:Syunsyunminmin/script/update.js|script]]による)';
if (confirm) {
var api = new mw.Api(),
params = {
action: 'edit',
title: fulltitle,
text: maintext,
summary: summary,
format: 'json'
};
api.postWithToken( 'csrf', params ).done( function ( data ) {
if ( data.error && data.error.info ) {
mw.notify( $('<div style="color:red;">' + data.error.info + '</div>'), { tag: 'update-info-bar' } );
} else {
mw.notify( $('<div style="color:green;">' + fulltitle + ': 完了</div>'), { tag: 'update-info-bar' } );
var catparams = {
action: 'edit',
title: categorytitle,
text: categorytext,
summary: summary,
format: 'json'
};
api.postWithToken( 'csrf', catparams ).done( function ( catdata ) {
if ( catdata.error && catdata.error.info ) {
mw.notify( $('<div style="color:red;">' + catdata.error.info + '</div>'), { tag: 'update-cat-info-bar' } );
} else {
mw.notify( $('<div style="color:green;">' + categorytitle + ': 完了。5秒後に更新します。</div>'), { tag: 'update-cat-info-bar' } );
setTimeout(Reload, 5000);
}
} );
}
} );
}else {
mw.notify( '中断しました' );
}
});
}
function Reload() {
window.location.reload();
}
} );
//</nowiki>