利用者:Dragoniez/scripts/AN Reporter
表示
現在のバージョン: 8.0.0 - 最終更新 2023/10/26 |
AN Reporterは、管理者伝言板へ利用者を報告するのを補助するユーザースクリプトです。インストールするとダイアログ上の操作のみで報告を完了することができるようになり、荒らし等の報告を迅速に、簡単に行えるようになります。要望・バグ報告・コメントなどはこのページのノートにお願いします。
仕様
- 自動承認されたユーザーが使用できます。
- Wikipedia:管理者伝言板/投稿ブロック (WP:AN/I)、Wikipedia:管理者伝言板/投稿ブロック/ソックパペット (WP:AN/S)、Wikipedia:管理者伝言板/3RR (WP:AN/3RR) への報告に対応しています。
- 全てのスキンに対応しています。
- 対応ブラウザ
インストール方法
Special:MyPage/common.jsに以下を追加して下さい。(ソースコード: js, ts)
mw.loader.load("//ja-two.iwiki.icu/w/index.php?title=User:Dragoniez/scripts/AN_Reporter.js&action=raw&ctype=text/javascript");
使用方法
報告リンク
このスクリプトをインストールすると、スキンに応じて「報告」リンクが画面上に追加されます。このリンクをクリックすると、利用者報告用のダイアログが展開します。
-
vector
-
vector-2022
-
minerva
-
monobook
-
timeless
メインダイアログ
番号 | 名称 / 指定内容 | 規定値 | 説明 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
1 | 設定 | クリックすると別タブで以下の設定ページを開きます。このページ上では、AN Reporterの各種設定を行うことができます。
※ バージョン8以前のcommon.js内で設定を行う方式は廃止されました。 | |||||||||
2 | 報告先のページ名 | なし | 以下のいずれかをドロップダウンから選択してください。
| ||||||||
3 | 報告先のセクション名 | なし | 報告先のページを選択するとドロップダウンが有効化されます。このドロップダウンから、節を選択してください。(報告先がWP:AN/Sの場合、検索機能付きコンボボックスが使用可能です。) | ||||||||
4 | 報告対象の利用者名 | なし | 報告対象の利用者名、IPなどを入力します。入力に従い登録利用者、IP利用者、その他を自動判別し、(6) のドロップダウンの項目が変化します。 | ||||||||
5 | 利用者名を隠す | 報告対象がログインユーザーの場合のみ表示されます。チェックすると、自動的に利用者名をアカウント作成ログIDまたは差分IDへ変換します。 | |||||||||
6 | {{UserAN}}のtype引数 | none | 報告対象者名が入力されている場合に有効化されます。それぞれのtypeの詳細についてはテンプレートページを参照してください。選択できるtypeは以下の通りです。
| ||||||||
7 | 追加ボタン | 2名以上を報告する場合、このボタンを押すと利用者名フィールドを追加できます。
2つ目以降のフィールドは、「利用者」ラベルをSHIFTクリックすると除去できます。(空欄のフィールドは報告実行時に無視されるため、追加しすぎたフィールドを手動除去する必要はありません。) | |||||||||
8 | VIP名称 | WP:VIPに掲載されている荒らしの名称が表示され、項目を選択すると[[WP:VIP#名称]] のウィキリンクをコピーします。
| |||||||||
9 | LTA名称 | LTAショートカットが一覧化して表示され、項目を選択すると[[LTA:名称]] のウィキリンクをコピーします。
| |||||||||
10 | 定型文※ | コンフィグで「定型理由」を登録している場合のみ表示され、項目を選択すると文字列をコピーします。 | |||||||||
11 | 報告理由 | 報告理由を入力します。署名は不要です。 | |||||||||
12 | 要約内コメント | 無効 | チェックするとテキストボックスが展開し、報告の編集要約にコメントを追加できます。
| ||||||||
13 | ブロックチェック※ | 有効 | チェックすると、報告実行時に編集処理をする前、報告対象利用者に既存のブロック設定がないかチェックします。 | ||||||||
14 | 重複報告チェック※ | 有効 | チェックすると、報告実行時に編集処理をする前、ページ内 (の特定のセクション) に同一利用者に関する重複報告がないかチェックします。 | ||||||||
15 | 報告対象者をウォッチ※ | 無効 | チェックすると、報告実行時に報告対象利用者の利用者ページをウォッチリストに追加します。チェック時に表示されるドロップダウンから、ウォッチ期間の選択が可能です。 | ||||||||
16 | 報告 | 報告を実行します。 | |||||||||
17 | プレビュー | 報告内容をプレビューします。 | |||||||||
18 | 閉じる | ダイアログを閉じます。 |
「※」標記のあるものはコンフィグあり
コンフィグ
現在のバージョンにおいて、特別:ANReporterConfigで設定が変更可能な項目は以下の通りです。
- 定型理由 (#option10)
- ブロックチェック (#option13)
- 重複報告チェック (#option14)
- 報告対象者をウォッチ (#option15)
- 規定ウォッチ期間
- ダイアログヘッダーの色
- ダイアログボディの色
- 「報告」リンクの生成位置
バージョンヒストリー
- Version 8.0.0
- スクリプトを完全に再開発
- 機能上の変更点
- コンフィグを特別:ANRC管理に移行 (旧common.js管理との互換なし)
- すべての必須情報を読み込み終わってからダイアログを展開
- 節フィールドを常時表示
- 利用者フィールドの赤枠ハイライト機能を追加
- 追加された利用者フィールドの除去機能を追加
- 定型理由をコピー&ペースト形式へ変更
- 報告対象者のウォッチ期間指定機能を追加 ほか
過去のバージョン
- Version 7.6
- 要約の文字数制限に対応
- 「利用者」フィールドの値の取得方法を改変 (機能変更なし)
- ブラウザ互換性を大幅に向上
- Version 7.5
- 定型文をカスタム要約フィールドにコピーする機能を追加
- Version 7.4
- 多少立ち上げと報告処理を高速化
- LTA名称リンクのコピー機能を追加
- Version 7.3
- 潜在的な、テンプレートの表示バグに繋がりうるコーディングを修正 (関連: 特別:差分/90126179)
- Version 7.2
- 要約の生成方法を変更 (利用者の投稿記録へのリンクは自動生成し、コメントのみ指定できる方式に)
- Version 7.1
- 旧式の定型文コンフィグを除去
- コードを少々整理
- Version 7.0
- 機能上の変更は特になし
- 一部の関数をライブラリからの読み込み形式に変更
- ブロックチェック機能を高速化
- 一部ボタンの配置を変更
- Version 6.4
- 要約生成の仕様変更
- 変更前 (報告対象者が5名以上): 「+5 (AN Reporter)」
- 変更後 (報告対象者が6名以上): 「アカウント1, アカウント2, アカウント3, アカウント4, アカウント5, その他1アカウント (AN Reporter)」
- 一度プレビューを表示すると利用者フィールドを正常に追加できなくなるバグを修正
- 要約生成の仕様変更
- Version 6.3
- Version 6.2
- 技術的更新
- Version 6.1
- ANR-B003: ウォッチリスト追加機能をオフにできないバグを修正
- Version 6.0
- ANR-R009に対応(報告対象者をウォッチリストへ追加する機能を追加)
- 各種コンフィグの追加
- コードを大幅にクリーンアップ(ほぼ全書き直しレベル)
- ダイアログ上の要素の横幅が不均等だったため見直し
- ダイアログを画面中央に維持する機能を追加
- ダイアログ上では利用者名を隠しているが、要約欄では隠れていない場合に警告メッセージを表示する機能を追加
- 報告対象がt=diffまたはt=noneのみの場合、報告処理中のメッセージを違和感のないものに変更
- 重複報告チェック機能がIPv6に含まれるアルファベットを大文字・小文字問わずに検出できるように変更
- Version 5.0
- ブロック状態の確認機能にグローバルブロックとグローバルロックの検知機能を追加
- Version 4.8
- LTA名称の取得中にスピナーが表示される機能を追加(スピナーが回転中は、LTA名称を取得中のため (1) でWP:AN/Sを選択した際 (2) にまだLTA名称を表示できません)
- VIP名称コピー機能用のボタンを除去(選択すれば自動的にコピーされるように変更)
- 検索機能付きドロップダウンのフォントサイズを調整
- Version 4.7 - ANR-R008
- LTAの名称をAPIから取得する方式に変更
- Version 4.6.1
- 前回と同様APIの仕様変更に対応
- Version 4.6
- v4.4と同様、APIの仕様変更(?)で今まで機能していた重複報告確認機能が機能しなくなっていたため修正
- Version 4.5R
- LTA:SUMOSONGを追加
- Version 4.5
- 定型文機能を追加
- Version 4.4
- 今まで機能していたVIP名称をドロップダウンに表示する機能がなぜか急に機能しなくなったため、正常に機能するように修正
- 報告後に差分ページへのリンクを表示する機能を除去 (技術的な制約上毎回表示できるわけでもなく、不要と判断したため)
- コードのクリーンナップ
- Version 4.3
- 暫定的に、報告対象アカウントが4つ以上の場合、編集要約が「+4」などの形式で生成されるように変更 (要約が長くなりすぎて可読性が損なわれるのを防ぐため)
- Version 4.2
- ウィキテキストからテンプレートを抽出する関数のマイナーバグを修正
- コードのクリーンナップ
- Version 4.1 - ANR-B002に対応
- v4.0で指定したダイアログの最小幅が使用機器の画面幅を超過する場合の表示バグを修正
- Version 4.0 - ブロックチェック、重複報告チェック機能の追加を含む大型アップデート
- ブロック状態のチェック機能を追加
- 「利用者名」インプットボックスの値が更新された際、自動でブロック状態を確認
- ダイアログ下部の「報告前にブロック状態をチェック」がチェックされている場合、報告前にブロック状態を再チェック
- 重複報告のチェック機能を追加
- ダイアログ下部の「報告前に重複報告をチェック」がチェックされている場合、報告前に重複報告をチェック
- バグ修正
- jQuery UIのdialogメソッドのmaxWidthなどのプロパティはピクセル指定しなければならないにも関わらず、vhやchを用いて指定しており機能していなかったため、CSSによる指定方法に変更
- ダイアログを再表示した際に、前回ダイアログを閉じる前のイベントリスナーが残っており複数回イベントハンドラがトリガーされてしまう問題を修正 ($.offメソッドを追加)
- その他の変更点
- 関数trimAをtrim2としてStringメソッドに変更
- 正規表現を用いて代替していたES2021のreplaceAllメソッドを、replaceAll2というStringメソッドとしてメソッド化
- Select2ドロップダウンのheightプロパティを指定し表示を多少改善
- WP:AN/Iの「YYYY年MM月DD日 - DD日新規報告」形式のセクション名の取得:
- ダイアログを再表示するごとに更新するように変更
- 報告前に再取得し、特定の条件下で古いセクションに報告することがないように、更新する機能を追加
- ダイアログ表示時にページから利用者名を拾う場合、typeドロップダウンをAPIを通さずに変更するようにし、立ち上げを高速化
- editPrep関数がインプットボックス内の利用者名、typeドロップダウンのtype名、重複入力された利用者名も返すようにコードを追加
- 「利用者名」インプットボックスの入力内容に重複がある場合、警告を表示する機能を追加
- 「報告」ボタンクリック後のプロシージャにおいて、試行中は回転スピナーが表示される機能を追加
- プレビューの表示機能において、ウィキテキストをHTML形式に変換する方法をGETリクエストからPOSTリクエストに変更、長い文字列も問題なくプレビューできるように改善
- その他変更点多数
- ブロック状態のチェック機能を追加
- Version 3.3.3RR
- LTA:AINOをリストに追加
- Version 3.3.3R
- LTA:EOHSをリストに追加
- Version 3.3.3
- v3.3.0で追加したVIP名称コピー機能のコードを上部に移動し、ロードにかかる時間を少しだけ短縮
- Version 3.3.2
- v3.2での変更点 (ハイフン → エンダッシュ) をリバート
- U+200E (赤字で表示される空白スペース) と空白を除去する関数 (trimA) を微修正
- Version 3.3.1
- WP:VIPの名称コピー機能において、値が初期値の場合コピーが行われないように修正
- Version 3.3
- WP:VIPの名称をクリップボードへコピーする機能を追加
- Version 3.2
- コードの可読性向上 (ネストの削減)
- 「追加」ボタンのデザインを少し大きいものに変更
- 報告対象が1名の場合に{{UserAN}}の横に挿入されるハイフンをエンダッシュに変更
- 要約を手動指定した場合エンダッシュが自動挿入されるように変更
- 「報告先を確認」のリンク先URLを変更するためのイベントハンドラを2つから1つに統一
- 要約を手動指定する際、「追加」ボタンで追加されたテキストボックスの内容が反映されないバグを修正
- 要約を手動指定する際、表示 → 非表示 → 再表示 のステップを踏むと要約の自動生成機能が動作しないバグを修正
- type=logid または type=diff を指定した後に新しい利用者名をコピペ入力すると特別ページの確認リンクが表示されたままになるバグを修正
- Version 3.1 - ダイアログデザインの大幅な見直し
- 背景色を変更
- 特定のスキンにおいてダイアログが大きすぎる問題を修正 (スキンごとに文字の大きさを調整)
- 特定のスキンにおいてテキストボックスの外枠などが表示されない問題を修正
- 特定のスキンにおいてボタンのアニメーションがなくなる問題を修正 ほか
- Version 3.0 - ANR-R002に対応
- プレビュー機能の追加
- 報告前の入力値チェック機能を関数化
- 報告後のメッセージ表示機能 (重複分) を関数化
- Version 2.3R
- LTA:HGTCHDPをリストに追加
- Version 2.3
- ANR-R006に対応 (ダイアログを開いた際にIPレンジも自動入力される機能を追加)
- Version 2.2
- v2.1で追加した差分表示機能をダイアログのボタンに割り当て
- 報告の施行後、特定の場合に報告先へ飛ぶためのダイアログボタンが表示される機能を追加
- 報告エラーメッセージ内のコピペ用タブを縮小
- 差分番号が取得できなかった際に、無視して次のコードを走らせるための記述を追加
- Version 2.1
- 報告に成功した場合差分リンクが表示される機能を追加
- Version 2.0
- WP:AN/Sへの報告に対応
既存のコードからの変更点
- APIの参照順序を parse → query → edit から query → parse → parse → edit に変更
- 編集要約の「/* セクション名 */」の追加方法を action=edit の際のconcatenation方式から事前代入方式に変更
- action=query の際にcurtimestampを取得できていなかったバグを修正
- basetimestampとstarttimestampを再定義し編集競合対策を見直し
- queryFailed() の関数を定義しAPI参照エラーが起きた際にメッセージを表示する部分のコードを集約、重複分を除去
- action=edit において節の最下部にテキストを付け足す方式から、節内のテキストを全取得し全て置き換える方式に変更
- あえて残していたテスト用 console.log を全て除去
- 「利用者名を隠す」機能においてlogidが存在しない場合エラーを検知できないバグを修正
- 上記のエラーが発生した際にチェックボックスがアンチェックされないバグを修正
- Logidの検索範囲をアカウント作成記録から全ログに変更
- ANR-R005に対応 (セクションを選択すると「報告先を確認」のリンク先がページではなくセクションになるように変更)
- 報告エラーメッセージにも報告先ページへのリンクを追加
- Version 1.6.2での変更に即してスキンごとに「報告」リンクの位置が変わるように変更 (Minervaスキンに対応)
- 外部スクリプトの読み込みが完了してからコードを読み込むように変更
- Version 1.6でのやり残し分に対応
- replaceAllメソッドに対応していないブラウザに対応
- Vandal ReporterからAN Reporterに名称を変更
- 実使用後大きなバグが確認されなかったためβ版を解除
- 「報告先」ドロップダウンの表示方法をWP:AN/I → Wikipedia:管理者伝言板/投稿ブロック、WP:AN/S → Wikipedia:管理者伝言板/投稿ブロック/ソックパペット、WP:AN/3RR → Wikipedia:管理者伝言板/3RRに変更
- ドロップダウンでの選択項目に対応して報告先のページが確認できるようにリンクを追加
- APIから取得したsection indexの返り値の確認方法をBoolean変数によるものからelseによるものに変更
- 利用者名を入力していない状態で要約を自動生成した際に「+」が入力されてしまうバグを修正
- if (res.query.pages[0].missing !== true) の条件分岐にelse文を追加 (通常、コードがこの条件分岐に辿り着くことはありません)