利用者:Y-dash/Scripts/TableFromSockCategory.js
表示
< 利用者:Y-dash | Scripts
お知らせ: 保存した後、ブラウザのキャッシュをクリアしてページを再読み込みする必要があります。
多くの Windows や Linux のブラウザ
- Ctrl を押しながら F5 を押す。
Mac における Safari
Mac における Chrome や Firefox
- ⌘ Cmd と ⇧ Shift を押しながら R を押す。
詳細についてはWikipedia:キャッシュを消すをご覧ください。
/**
* [[:Category:操り人形だと疑われるユーザー]]の子カテゴリページ表示時、カテゴリ内の利用者情報を取得。
* ページ最下部に以下のような利用者情報テーブル作成用のウィキテキストを挿入する。
*
* {| class="wikitable sortable"
* ! アカウント登録日 !! ブロック日 !! アカウント名 !! 備考
* |-
* || 2011-04-22 || 2011-04-22 || {{User2|ある利用者}} ||
* |}
*
* [[Wikipedia:進行中の荒らし行為/長期]]ページ新規作成時などの支援目的。
* APIの件数リミットの関係で、カテゴリメンバーの利用者ページが50件を超えている場合は全件表示不可。
*/
$.when( mw.loader.using( ['mediawiki.util'] ), $.ready ).then(function() {
// [[:Category:操り人形だと疑われるユーザー]]の子カテゴリでなければ処理終了
if( mw.config.get( 'wgNamespaceNumber' ) !== 14 || mw.config.get( 'wgCategories' ).indexOf( '操り人形だと疑われるユーザー' ) === -1 ) {
return;
}
// APIからカテゴリメンバーのページタイトルを取る
var categoryApi = new mw.Api();
categoryApi.get(
{
"action": "query",
"format": "json",
"list": "categorymembers",
"cmtitle": mw.config.get( 'wgPageName' ),
"cmprop": "title",
"cmnamespace": "2",
"cmlimit": "50"
}
).done( function( categoryMembers ){
// ページタイトルから利用者名リストを作成
var userNames = [];
categoryMembers.query.categorymembers.forEach( function(member) {
userNames.push(member.title);
} );
// 利用者情報API叩く
var userApi = new mw.Api();
userApi.get(
{
"action": "query",
"format": "json",
"list": "users",
"usprop": "blockinfo|registration",
"ususers": userNames.join( '|' )
}
).done( function( users ){
// アカウント作成日時昇順でソート
users.query.users.sort( function( user1, user2 ) {
return user1.registration > user2.registration ? 1 : -1;
} );
// テーブル用ウィキテキストの生成
var tableWikiText = '{| class="wikitable sortable"\n! アカウント登録日 !! ブロック日 !! アカウント名 !! 備考';
users.query.users.forEach( function(user) {
tableWikiText += '\n|-\n|| ' + user.registration.split( 'T' )[0];
tableWikiText += ' || ' + user.blockedtimestamp.split( 'T' )[0];
tableWikiText += ' || {{User2|' + user.name + '}}';
tableWikiText += ' || ';
} );
tableWikiText += "\n|}";
// コンテンツ領域最下に挿入
$( '#mw-content-text' ).append( '<pre>' + tableWikiText + '</pre>' );
} );
} );
});