利用者:Semi-Brace/ .js

お知らせ: 保存した後、ブラウザのキャッシュをクリアしてページを再読み込みする必要があります。

多くの WindowsLinux のブラウザ

  • Ctrl を押しながら F5 を押す。

Mac における Safari

  • Shift を押しながら、更新ボタン をクリックする。

Mac における ChromeFirefox

  • Cmd Shift を押しながら R を押す。

詳細についてはWikipedia:キャッシュを消すをご覧ください。

(() => {
	"use strict";
	if (mw.config.values.wgPageName !== "特別:BulkMessage" || mw.user.getId() !== 1366523) return;
	$(function(){
		console.log(this, document);
		$("#mw-content-text").append([
			$("<p>").text("送る人の名前 (改行区切り)"),
			$("<textarea>").attr({type: "textbox", id: "bulkmes-send"}),
			$("<p>").text("送る内容 (ウィキテキスト、署名なし)"),
			$("<textarea>").attr({type: "textbox", id: "bulkmes-content"}),
			$("<p>").text("セクション名"),
			$("<input>").attr({type: "textbox", id: "bulkmes-section"}),
			$("<p>").text("要約欄"),
			$("<input>").attr({type: "textbox", id: "bulkmes-editsummary"}),
			$("<br>"),
			$("<input>").attr({type: "button", id: "bulkmes-submit", value: "送信"}).click(function(){
				console.debug("sending process started.");
				console.debug(`signature: ${mw.user.options.values.nickname}`);
				const userSpec = $("#bulkmes-send").val();
				console.debug(`users: ${userSpec}`);
				const text = $("#bulkmes-content").val();
				console.debug(`text: ${text}`);
				if (userSpec === "") {
					$("#bulkmes-error").text("ユーザーがいません");
					return;
				}
				
				if (text === "") {
					$("#bulkmes-error").text("内容がありません");
					return;
				}
				
				let users = userSpec.split("\n");
				const mwapi = new mw.Api();
				const editSummary = $("#bulkmes-edit").val();
				mwapi.get({
						action: 'query',
						list: 'users',
						ususers: users.join("|"),
						usprop: '',
						format: 'json'
				}).done(ll => {
					console.debug("data", ll);
					users = ll.query.users.filter(x => x.invalid === undefined && x.missing === undefined);
					console.debug("users", users);
					const d = new Date();
					const weekday = "日月火水木金土"[d.getDay()];
					const hours = d.getUTCHours().toString().padStart(2, "0");
					const minutes = d.getUTCMinutes().toString().padStart(2, "0");
					const sign = `${mw.user.options.values.nickname} ${d.getUTCFullYear()}${d.getUTCMonth() + 1}${d.getUTCDate()}日 (${weekday}) ${hours}:${minutes} (UTC)`;
					const section = $("#bulkmes-section").val() || editSummary;
					users.map(x => x.name).map(x => "User talk:" + x).forEach(page => {
						mwapi.postWithEditToken({
							action: "edit",
							section: "new",
							// 署名
							text: text + "--" + sign,
							summary: editSummary,
							title: page,
							sectiontitle: section,
						}).then(x => {
							x.warning && console.error(x.warning);
							return x;
						}, (...e) => console.error(e));
					});
				});
				console.debug("END -------------------------");
			}),
			$("<span>").attr({display: "none", id: "bulkmes-error"}).addClass("error"),
		]);
	});
})();