User:Infinite0694/CU.js

/*

//////////////////////////////////////////////////////////////////////////////////////// // // CUBlockHelper.js // // last update 2020-06-26 // ////////////////////////////////////////////////////////////////////////////////////////

チェックユーザー用ツール. ブロック時の要約記入や利用者ページ置換の補助.



// ここからロード時処理

// ボタン類を組み込む

jQuery(document).ready(function ($) { // 該当するインターフェースのあるページでのみ動作させる // 変数とIDでチェックユーザーのページを判別	if($("#checkuserblocksubmit")) {		// 利用者ページ用テンプレート		// 入力欄の後ろにボタンとドロップダウンリストを追加する		$("#blocktag").after( $(" ")				.append(				// 挿入ボタン				$(" ")					.attr({"type": "button", "value": "<<挿入"})					.click(ins_blocktag),				// ドロップダウンリスト				$(" ")					.attr({"id": "list_blocktag"})					.append( $(" ")							.attr({"value": "\x7B\x7BIndefblockeduser|nopage=t\x7D\x7D\x7B\x7BSockpuppetC|username\x7D\x7D"}) .text("投稿記録を根拠"), $(" ")							.attr({"value": "\x7B\x7BIndefblockeduser|nopage=t\x7D\x7D\x7B\x7BSockpuppetB|username\x7D\x7D"}) .text("ブロック記録を根拠"), $(" ")							.attr({"value": "\x7B\x7BIndefblockeduser|nopage=t\x7D\x7D\x7B\x7Bsockpuppet2|username|pagename\x7D\x7D"}) .text("長期荒らし"), $(" ")							.attr({"value": "\x7B\x7BIndefblockeduser|nopage=t\x7D\x7D\x7B\x7Bsockpuppet|username|evidence=request\x7D\x7D"}) .text("各種依頼などを根拠"), $(" ")							.attr({"value": "\x7B\x7BIndefblockeduser|nopage=t\x7D\x7D"}) .text("無期限ブロックのみを明示") ),					// 上書きせず挿入のチェックボックスとラベル					$(" ")						.attr({"type": "checkbox", "id": "blockover"}),					$(" ")						.attr({"for": "blockover"})						.text("上書きせず挿入")				) );		// 会話ページ用テンプレート		// 入力欄の後ろにボタンとドロップダウンリストを追加する		$("#talktag").after( $(" ")				.append(				// ボタン				$(" ")					.attr({"type": "button", "value": "<<挿入"})					.click(ins_talktag),				// ドロップダウンリスト				$(" ")					.attr({"id": "list_talktag"})					.append( $(" ")							.attr({"value": "\x7B\x7Bsubst:sockblock|username\x7D\x7D--\x7E\x7E\x7E\x7E"}) .text("靴下ブロック"), $(" ")							.attr({"value": "\x7B\x7Bsubst:ILLEGIT\x7D\x7D--\x7E\x7E\x7E\x7E"}) .text("多重アカウント"), $(" ")							.attr({"value": "\x7B\x7Bsubst:ILLEGIT\x7D\x7D--\x7E\x7E\x7E\x7E"}) .text("投稿記録の分断"), $(" ")							.attr({"value": "\x7B\x7Bsubst:Infiniteblocked\x7D\x7D--\x7E\x7E\x7E\x7E"}) .text("不適切な利用者名"), $(" ")							.attr({"value": "\x7B\x7Bsubst:Infiniteblocked\x7D\x7D--\x7E\x7E\x7E\x7E"}) .text("無期限ブロック") ),					// 上書きせず挿入のチェックボックスとラベル					$(" ")						.attr({"type": "checkbox", "id": "talkover"}),					$(" ")						.attr({"for": "talkover"})						.text("上書きせず挿入"),					// 会話ページに挿入せず理由欄のみ					$(" ")						.attr({"type": "checkbox", "id": "reasononly"}),					$(" ")						.attr({"for": "reasononly"})						.text("理由欄のみ記入")				) );		// 送信ボタンの後ろに		// リセットボタンを追加		$("#checkuserblocksubmit").after( $(" ")				.attr({"type": "reset", "value": "リセット"}) );	} });

// ここまでロード時処理

// ここからイベント処理

// ★ブロックフォーム本体のギミック // 挿入ボタンクリック時の動作 // 利用者ページにテンプレートを挿入 function ins_blocktag { // 選択項目の値に置換用パラメータが含まれる if($("#list_blocktag").val.indexOf("username") > -1) { // 入力した内容で置換 if($mainname = prompt("本体の利用者名を入力","")) { $newtag = $("#list_blocktag").val.replace(/username/,$mainname); }		// キャンセル時に入力しない else { return false; }		// 選択項目の値に他の置換用パラメータが含まれる if($newtag.indexOf("pagename") > -1) { // 入力した内容で置換 if($ltaname = prompt("荒らしのサブページ名を入力（省略可）","")) { $newtag = $newtag.replace(/pagename/,$ltaname); }			// キャンセル時はパラメータを省略 else { $newtag = $newtag.replace(/\|pagename/,""); }		}		// 選択項目の値に他の置換用パラメータが含まれる if($newtag.indexOf("request") > -1) { // 入力した内容で置換 if($ltaname = prompt("ブロック依頼などのページ名（多重アカウントと断定した根拠）を入力","")) { $newtag = $newtag.replace(/request/,$ltaname); }			// キャンセル時に入力しない else { return false; }		}	}	// 選択項目の値に置換用パラメータがなければそのまま else { $newtag = $("#list_blocktag").val; }	// 上書きせず挿入する場合の置換内容 if($("#blockover").get(0).checked === true) { $newtag = "\x7B\x7Bsubst:User:M-/b|" + $newtag + "\x7D\x7D"; }	// テキストボックスへ入力 $("#blocktag").val($newtag); // チェックボックスを選択 $("#usetag").val(["1"]); }

// ★ブロックフォーム本体のギミック // 挿入ボタンクリック時の動作 // 会話ページにテンプレートを挿入 function ins_talktag { // 選択項目の値に置換用パラメータが含まれる if($("#list_talktag").val.indexOf("username") > -1) { // 入力した内容で置換 if($mainname = prompt("本体の利用者名を入力","")) { $newtag = $("#list_talktag").val.replace(/username/,$mainname); }		// キャンセル時に入力しない else { return false; }	}	// 選択項目の値に置換用パラメータがなければそのまま else { $newtag = $("#list_talktag").val; }	// 上書きせず挿入する場合の置換内容 // ★会話ページに挿入されるメッセージのセクション名はここで定義 if($("#talkover").get(0).checked === true) { $newtag = "\x7B\x7Bsubst:User:M-/a|お知らせ|" + $newtag + "\x7D\x7D"; }	// 入力アシスト機能 // 会話ページに挿入する内容に合わせてブロック要約を自動入力 // ソックパペットであれば本体の名前と併せて入力 if($("#list_talktag").prop("selectedIndex") === 0) { $reason = "sockpuppet: 利用者:" + $mainname + ""; }	// 多重アカウントであればWP:ILLEGIT else if($("#list_talktag").prop("selectedIndex") === 1) { $reason = "WP:ILLEGIT"; }	// 多重アカウントであればWP:ILLEGIT else if($("#list_talktag").prop("selectedIndex") === 2) { $reason = "WP:SCRUTINY"; }	// 不適切な利用者名の場合 else if($("#list_talktag").prop("selectedIndex") === 3) { $reason = "不適切な利用者名"; }	// 単なる無期限ブロックであればプロンプトを表示 // 空欄入力やキャンセルも可 else { $reason = prompt("ブロック理由を入力してください\nあとで手入力しても構いません. ",""); }	// 会話ページへの挿入をスキップ if($("#reasononly").get(0).checked === false) { // テキストボックスへ入力 $("#talktag").val($newtag); // チェックボックスを選択 $("#usettag").val(["1"]); }	// ブロック理由を挿入 $("#blockreason").val($reason); }