User:Dragoniez/Selective Rollback/ja

From Meta, a Wikimedia project coordination wiki
Other languages:
Selective Rollbackダイアログ (日本語インターフェース)
Selective Rollbackダイアログ (英語インターフェース)

Selective Rollbackは、巻き戻しに様々な便利機能を追加するグローバル・ユーザースクリプトです。

  • In-situ rollback
巻き戻しリンククリック時にページを遷移させず、ページ上で巻き戻しを実行
  • Rollback summary
巻き戻し要約の指定 (コンフィグあり; 詳細は#使い方を参照)
  • Selective rollback
ページ内の巻き戻しリンクの一部を指定し一括巻き戻し
  • Mass rollback
ページ内の巻き戻し可能な編集を一括巻き戻し
  • Mark bot
ボット巻き戻し (特定の利用者権限が必要、コンフィグあり)
  • Watch page
巻き戻し対象ページをウォッチリストに追加 (期間の設定も可能、コンフィグあり)
  • Confirm rollback
巻き戻し実行前に確認メッセージを表示 (デフォルトでは機能オフ; 詳細は#confirmを参照)

インストール方法[edit]

グローバルに導入する場合はm:Special:MyPage/global.jsに、ローカルに導入する場合はSpecial:MyPage/common.jsに、以下を追加して下さい。(ソースコード)

// Selective Rollback ([[User:Dragoniez/Selective_Rollback.js]])	
mw.loader.load('//meta.wikimedia.org/w/index.php?title=User:Dragoniez/Selective_Rollback.js&action=raw&ctype=text/javascript');

詳しい使い方は#使い方を、コンフィグの詳細は#コンフィグを参照してください。

使い方[edit]

ダイアログ[edit]

ポートレットリンクの位置

Selective Rollbackを導入すると、巻き戻しリンクのあるページ上にはダイアログが追加されます。要約の設定などはこのダイアログを通して行うことになります。(基本的にダイアログを開くためのポートレットリンクの場所は p-cactions です:画像参照。) なお、ダイアログはCTRLキーを押した状態で巻き戻しリンクをクリックしても開くことができます。

In-situ rollback[edit]

単純に、巻き戻しリンクをクリックしてください。

Rollback summary[edit]

巻き戻しの要約を変更する場合「カスタム編集要約」に入力してください。ダイアログ上の指定内容は要約も含めダイアログを閉じた後も保持され、設定を行った上で巻き戻しリンクをクリックすると、その設定でin-situ rollbackを実行できます。


また、要約の指定において以下の特殊表現を使用することができます ($1-7はmediawikiの標準機能です)。

  • $0: 当該ウィキでの標準巻き戻し要約
  • $1: 巻き戻し対象版の直前の版を編集した利用者の名前
  • $2: 巻き戻し対象版を編集した利用者の名前
  • $3: $1の版番号
  • $4: $1のタイムスタンプ
  • $5: $2の版番号
  • $6: $2のタイムスタンプ
  • $7: 巻き戻し対象の版数 (mw:MediaWiki 1.41/wmf.10; 詳細は下記の折りたたまれたセクションを参照)

実際の使用例としては、以下を参照してください。

  • 例1 ($1=Example、$2=ほげほげの場合)
  • 例2
    • 入力: $1 による版番 $3 ($4の版) へ[[H:RV|巻き戻し]]
    • 出力: Example による版番 12345 (2022-08-01T00:00:00の版) へ巻き戻し

特に、$0の置換機能を使用すると、通常の巻き戻し要約に容易にコメントを追加することが可能となり、取り消し操作での要約指定と同じ感覚で要約を編集することが可能となります。

なお、これらの特殊表現はコンフィグで定型要約を事前設定する際にも使用可能です。(詳しくは#コンフィグを参照してください。)

Update (task T165798)

MediaWiki標準の巻き戻し要約(MediaWiki:Revertpage)に{{PLURAL}}のマジックワードが追加されました。

  • mw:MediaWiki 1.41/wmf.10
  • Diff
  • Reverted {{PLURAL:$7|edit|edits}} by [[Special:Contributions/$2|$2]] ([[User talk:$2|talk]]) to last revision by [[User:$1|$1]]

Selective Rollbackの現在のバージョンは、当該マジックワードを簡易的にのみパーズし、最後の引数に置換します:

  • Reverted edits by [[Special:Contributions/$2|$2]] ([[User talk:$2|talk]]) to last revision by [[User:$1|$1]]

これは、巻き戻し対象となる版の数を取得するには、巻き戻しリンクがクリックされた直後にAPIリクエストを行うほか手段がないためです。これを行うと、巻き戻しの存在意義が損なわれる可能性があります。

Selective rollback[edit]

ページ上に巻き戻しリンクがある場合、「SR」チェックボックスが追加されます。巻き戻しが必要な版のチェックボックスをチェックした状態でダイアログを開き、「チェック項目を巻き戻し」を押すと選択した編集を一括巻き戻しできます。

※ この機能は特別:最近の更新特別:ウォッチリスト上では無効化してあります。

Mass rollback[edit]

ダイアログを開き、「全てチェック」をクリックし、「チェック項目を巻き戻し」を押してください。ページ内の全ての巻き戻しリンクに対して巻き戻し操作を実行します。

※ この機能は特別:最近の更新特別:ウォッチリスト上では無効化してあります。

Mark bot[edit]

ダイアログ上の該当チェックボックスをチェックしてください。初期値は#コンフィグで変更可能です。

Watch page[edit]

ダイアログ上の該当チェックボックスをチェックしてください。初期値は#コンフィグで変更可能です。

コンフィグ[edit]

Selective Rollbackには、個人設定用に以下のJavaScriptオブジェクトを備えています。

window.selectiveRollbackConfig = {
    lang: '',
    editSummaries: {},
    showKeys: false,
    specialExpressions: {},
    markBot: true,
    watchPage: false,
    watchExpiry: 'indefinite',
    confirm: 'never',
    checkboxLabelColor: 'orange'
};

コンフィグを指定する場合、基本的に以下のような形でスクリプトをインストールしてください。

// Selective Rollback ([[User:Dragoniez/Selective_Rollback.js]])
mw.loader.load('//meta.wikimedia.org/w/index.php?title=User:Dragoniez/Selective_Rollback.js&action=raw&ctype=text/javascript');
window.selectiveRollbackConfig = {}; // コンフィグを指定する場合、この行は必須です。(ただし、一回だけ記述してください。)
// ここにコンフィグ

lang[edit]

コンフィグで、ダイアログの規定言語を変更できます。規定言語が設定されていない場合、利用者設定の言語が自動的に使用されます。スクリプトが対応していない言語を検知した場合、規定言語は自動的に英語に設定されます。(新しい言語設定用の翻訳データをご提出いただければ、新たに他言語に対応させることが可能です。下記をご覧ください。)

langに値を指定することで、使用する言語を明示的に設定できます:

// Selective Rollback ([[User:Dragoniez/Selective_Rollback.js]])
mw.loader.load("//meta.wikimedia.org/w/index.php?title=User:Dragoniez/Selective_Rollback.js&action=raw&ctype=text/javascript");
window.selectiveRollbackConfig = {};
selectiveRollbackConfig.lang = 'ja';

言語コンフィグの追加をご希望の場合、以下を翻訳の上ノートにご提出願います。

翻訳用テキスト
{
	'portletlink-tooltip': 'Selective Rollbackのダイアログを開く',
	'summary-label-primary': '編集要約',
	'summary-option-default': '標準の編集要約',
	'summary-option-custom': 'カスタム',
	'summary-label-custom': 'カスタム編集要約',
	'summary-tooltip-$0': '($0は標準の編集要約に置換されます。)',
	'summary-tooltip-$0-error': '($0は<b>英語の</b>標準編集要約に置換されます。)',
	'summary-tooltip-specialexpressions': '置換表現',
	'summary-label-preview': '要約プレビュー', // v4.0.0
	'summary-tooltip-preview': '(マジックワードは置換されます。)', // v4.0.0
	'markbot-label': 'ボット編集として巻き戻し',
	'watchlist-label': '対象ページをウォッチリストに追加',
	'watchlist-expiry-label': '期間',
	'watchlist-expiry-indefinite': '無期限',
	'watchlist-expiry-1week': '1週間',
	'watchlist-expiry-1month': '1か月',
	'watchlist-expiry-3months': '3か月',
	'watchlist-expiry-6months': '6か月',
	'watchlist-expiry-1year': '1年',
	'watchlist-expiry-3years': '3年', // Not used
	'button-rollbackchecked': 'チェック項目を巻き戻し',
	'button-checkall': '全てチェック',
	'button-close': '閉じる',
	'msg-nonechecked': 'チェックボックスがチェックされていません。',
	'msg-linksresolved': 'このページの巻き戻しリンクは全て解消済みです。',
	'msg-confirm': '巻き戻しを実行しますか?',
	'rbstatus-reverted': '巻き戻し済',
	'rbstatus-failed': '巻き戻し失敗',
	'rbstatus-notify-success': '成功', // v4.0.0
	'rbstatus-notify-failure': '失敗' // v4.0.0
}

editSummaries & showKeys[edit]

巻き戻し要約を事前設定する場合、スクリプトローダーの下に以下のような行を追加してください。

//<nowiki>
window.selectiveRollbackConfig = {};
selectiveRollbackConfig.editSummaries = {};
selectiveRollbackConfig.editSummaries[0] = 'Long-term abuse';
selectiveRollbackConfig.editSummaries[1] = 'Cross-wiki abuse';
selectiveRollbackConfig.editSummaries[2] = 'Spam';
selectiveRollbackConfig.editSummaries[3] = '[[WP:SOCK]]';
//</nowiki>

この設定の場合、ダイアログのドロップダウンは以下のように表示されます。

  • Default edit summary
  • Long-term abuse
  • Cross-wiki abuse
  • Spam
  • [[WP:SOCK]]
  • Custom

なお、ウィキリンクやテンプレートがJavaScriptファイルに含まれる場合は、該当部分を <nowiki/> で囲むとバグの防止になりますので、追加推奨です。


また、selectiveRollbackConfig.showKeys = true を設定すると、それぞれの要約に名前を付けることが可能となり、要約全文の代わりにこの名前をドロップダウンに表示させることができます。

//<nowiki>
window.selectiveRollbackConfig = {};
selectiveRollbackConfig.editSummaries = {};
selectiveRollbackConfig.editSummaries['LTA'] = 'Long-term abuse';
selectiveRollbackConfig.editSummaries['CWA'] = 'Cross-wiki abuse';
selectiveRollbackConfig.showKeys = true;
//</nowiki>

このように設定した場合、ダイアログのドロップダウンは以下のように表示されます。

  • Default edit summary
  • LTA
  • CWA
  • Custom

一方、例として「LTA」を選択した場合、出力は「Long-term abuse」となります。

specialExpressions[edit]

$0などの置換機能に加え、ご自身で置換表現を設定することができます。

//<nowiki>
window.selectiveRollbackConfig = {};
selectiveRollbackConfig.specialExpressions = {};
selectiveRollbackConfig.specialExpressions['$SLIME'] = '[[LTA:SLIME]]';
selectiveRollbackConfig.specialExpressions['$QCHM'] = '[[LTA:QCHM]]';
//</nowiki>

この場合、例として要約内で「$SLIME」を使用した場合、そのすべてが「[[LTA:SLIME]]」に置換されます。この機能を使用する場合、意図しない置換処理を防ぐために、置換表現に「$」など特定の記号を使用することを推奨します。

markBot[edit]

スクリプト使用者がmarkboteditsの利用者権限を有する場合、markBotのチェックボックスはデフォルトでチェック状態(すなわちtrue)になります。(ただし、権限がない場合はチェックボックス自体が非表示かつ非チェック状態となります。)デフォルトの値を変更する場合、以下のようにしてください。

window.selectiveRollbackConfig = {};
selectiveRollbackConfig.markBot = false;

watchPage & watchExpiry[edit]

watchPageのチェックボックスは、デフォルトでアンチェック状態(すなわちfalse)となり、期限はindefinite(無期限)となります。デフォルト値を変更する場合、以下のようにしてください。

window.selectiveRollbackConfig = {};
selectiveRollbackConfig.watchPage = true;
selectiveRollbackConfig.watchExpiry = '1 month';

上記の例の場合、1か月間巻き戻し対象ページをウォッチリストに追加します。watchExpiryに指定できる値は、indefiniteinfiniteinfinitynever1 week1 month3 months6 months1 yearのいずれかです。Selective Rollbackには簡単な誤字修正機能があり、スペースの有無や複数形のsなどは自動で修正するため、そこまで気にせずとも問題ありません。根本的に不可能な値が指定された場合は、コンソールにエラーメッセージが出力されます。(より分かりやすいのは、指定した値が不正な場合ダイアログ上のデフォルト値が変化しません)。

confirm[edit]

confirmは確認メッセージのコンフィグで、指定可能な値はnever(デフォルト値)、alwaysRCWnonRCW(RCW = RecentChanges and Watchlist)です。指定値がneverの場合はいかなる場合も巻き戻しの実行前に確認メッセージを表示せず、alwaysの場合は毎回表示し、RCWの場合は特別:最近の更新特別:ウォッチリスト上でのみ表示し、nonRCWの場合はRCW以外のページ上で表示します。どれを選択した場合も、SHIFTキーを押した状態で巻き戻しリンクをクリックした際は確認プロセスをスキップできます。

window.selectiveRollbackConfig = {};
selectiveRollbackConfig.confirm = 'RCW';

checkboxLabelColor[edit]

checkboxLabelColorは、ページに追加される「SR」チェックボックスラベルの色を変更するコンフィグで、デフォルト値はorangeです。

window.selectiveRollbackConfig = {};
selectiveRollbackConfig.checkboxLabelColor = 'pink';