Coder Social home page Coder Social logo

chaika-abone-helper's Introduction

Chaika Abone Helper

配布場所: http://bbs2ch.osdn.jp/uploader/upload.php?page=all


⚠️ このアドオンはメンテナンスされていません。

  • 本アドオンの機能は、NGEx として chaika 1.7.0 にて取り込まれました。 Chaika Abone Helper ユーザーの方は、Chaika NGEx Converter を利用して設定を移行することができます。
  • Github にて公開したのは資料的意味合いであり、使用を推奨するものではありません。
  • 本アドオンの今後のメンテナンスの予定はありません。
  • もともと見切り発車で開発を始めた上、 途中で chaika 本体の開発に参画したことでリファクタリングを行うモチベーションが無くなったため、 コードはかなり汚いです。しかし、反省を込めてそのままの状態で公開します。

このアドオンについて

  • chaikaのあぼーん機能を強化します.

  • このアドオンは Firefox 3.6 - Firefox 21, chaika 1.3.0b1 - chaika 1.6.1 に対応しています.

  • chaika (最新リビジョン) on Firefox Aurora / chaika 1.3.0b1 (r304) on Firefox 3.6 で開発しています. それ以外のバージョン/リビジョンできちんと動作するかどうかは分かりません.

インストール方法

同梱の「chaika_abone_helper.xpi」をFirefoxにドラッグ&ドロップしてインストールして下さい.

インストール後またはバージョンアップ後の初回起動時に, thread.jsを自動で書き換える旨を知らせるダイアログが表示されます. 了承すると, 自動で書き換えが行われ, 成功すると「正常に書き換えが終了しました.」というダイアログが表示されます.

(注意)

  • 本拡張は, chaika の thread.js (extensions/[email protected]/modules/server/thread.js) を自動で書き換えます(警告付き). オリジナルのファイルは thread.js.org として同じフォルダに保存されます. なお, ver 0.0.19以下に存在した thread-mod.js は再び廃止されました.

  • thread.js に変更を加えている人(または, なんらかのパッチを当てたことのある人)は, 本拡張の自動書き換えにより不具合が発生することがあります.

  • 本拡張をアンインストールした後も, そのまま使い続けることができます (thread.js.org から復帰させる必要はありません).

  • ver 0.0.19以前を使っていた人は, ChaikaServer.js.org を ChaikaServer.js にリネームし上書きして下さい. ChaikaServer.js.org がない場合は, ChaikaServer.js 中にある

Components.utils.import("resource://cah/thread-mod.js");

Components.utils.import("resource://chaika-modules/server/thread.js");

へと書き換えて下さい.

機能について

※長いですが注意点等もありますのでできるだけお読み下さい

  • あぼーんマネージャに「高度な設定」タブを追加し, 名前/メール/日付/発信元(IPアドレス)/ホスト/ID/ BeID/Be基礎番号/レス内容/スレタイ/板URL/スレURLについて文字列/正規表現でNGワードを設定できるようにします. また, 複数の条件を「かつ」「または」で組み合わせて設定することができます.

    • あぼーんマネージャで登録する際,「登録」ボタンを押さないと変更が保存されないので注意.

      • 既存のNGワードと全く同じものを登録しようとすると, 重複していることが通知され登録できません.
    • 発信元, ホストはそれぞれ表示される板のみで有効です.

    • 発信元やホストが表示される板では, chaikaの処理の都合で日付のところにもそれらのデータが含まれています. そのため, 日付についてNGワードを設定する場合はその点もご留意下さい.

    • BeIDとBe基礎番号は別物です. 普通にスレを見た時にリンクが貼られているBeの番号はBeIDであり, ユーザー・スレッドごとに変化します. 一方, Be基礎番号は各ユーザー固有のものであり, いかなる場合でも変化しません. BeIDからBe基礎番号を求めるには, be 全ID生成・解析所 を使うと便利です.

    • 正規表現を「/」等で囲む必要はありませんが, 実装が手抜きなので, 文字列の場合は「"」を「"」に, 正規表現の場合は「/」を「/」へとエスケープする必要があります.

    • 条件の文字列/正規表現が不正な場合は登録時にアラートで警告されます. アラートが出た場合は, 画面上では登録されているように見えても実際には登録されていませんので, 条件を正しく訂正した上でもう一度登録し直して下さい.

    • 「かつ」「または」はJavaScriptの演算子優先順位に基づいて処理されます(「かつ」(&&) が「または」(||) より先に処理される).

    • 各条件については, 「含む」「含まない」「一致する」「一致しない」の中から選ぶことができます.

      • 正規表現の場合には, 「含む」と「一致する」, 「含まない」と「一致しない」はそれぞれ同じ挙動になります. 正規表現で完全一致をしたい場合には, 「^」と「$」を使って下さい.
    • 「大文字小文字を無視する」にチェックを入れると, 大文字小文字の違いは無視してあぼーんします. 正規表現の場合にはiフラグを指定したのと同じ挙動になります.

    • NGワードの有効期限を, 日時によって設定することができます. 有効期限を過ぎたNGワードはヒットしなくなります. また, 期限切れのものはFirefoxの起動時に自動で削除されます.

    • NGワードごとに, 「透明あぼーんにするかどうか」「連鎖あぼーんを行うかどうか」を設定することができます.

      • それぞれ「デフォルトの設定に従う」「する」「しない」から選ぶことができます. 「デフォルトの設定」とは, chaikaの設定画面にある設定を指します. 通常あぼーんは透明にしないが, スレッドあぼーんは透明あぼーんにする といったことが可能になります.
    • 自動NGID機能対応

      • あぼーん対象となったレスのIDを自動的にNGIDに追加します.
      • 自動NGIDで追加されたNGIDは自動的に有効期限が1日間にセットされます.
      • 透明あぼーんされたレスの場合は追加しますが, 連鎖あぼーんで連鎖してあぼーんされたレスの場合は追加しません.
    • 2ch側の仕様により, 以下の文字については通常と異なる指定をする必要がありますので注意して下さい.

      • \n (レス本文の改行) → <br> (&lt;br&gt; ではありません)
      • >&gt;
      • <&lt;
      • &&amp;
  • スレッドのあぼーん対応.

    • スレッドあぼーんの場合は, スレタイ/板URL/スレURLでのみあぼーんをすることが可能です.
    • あぼーんされたスレッドは, ***** ABONE ***** のように表示されます.
    • スレッドの透明あぼーんにも対応しています.
  • 何に反応してあぼーんされたのか(ヒットしたNGワード)を表示できるようにします.

    • ver0.0.15より, 対応しているスキンであれば, スキンを手動で修正しなくても表示できるようになりました. スキンの構造を解析し, 自動でをヘッダー(レス番号や名前などが表示される行)と思われるところに挿入します.
      • スキンの対応状況は以下の通りです. なお, http://bbs2ch.sourceforge.jp/?page=Skin%2F0.4.5 に載っているスキンは大方調査済みです.

        • 対応済み

          • Default, Default改
          • DefaultKaiKai -> config.jsで設定する必要があります. なお, このスキンは即時あぼーんにも対応しています.
          • smorgasboard-lego-ex
          • greenman_vorteX
          • peacock
          • PhantomPain2
          • gray
        • 仮対応

          • Bow: 表示されるが, デザインが多少崩れる
          • smorgasboard, smorgasboard-mix, smorgasboard-mix-thin: 表示されるが, デザインが多少崩れる
          • PhantomPain3 Beta1: 表示されるが, デザインが多少崩れる
        • 未対応

          • dhmo: デフォルトで透明あぼーんのため
          • LiveLite: 構造が簡単すぎて解析できないため
      • 具体的には, Res.html, NewRes.html, NGRes.html, NGNewRes.htmlなどにおいて, 以下に該当する要素にaboneWord属性を追加し, ページにskin-overlay.css(extensions > [email protected] > content > skin-overlay.css)を読み込ませて, CSSによりaboneWord属性の内容を表示しています.

        • resHeader, resNewHeader, rh, header のいずれかのクラスを持つ要素
        • <h2 class="ng"> に合致する要素 (for PhantomPain 3 bata 1)
        • <dd ondblclick="javascript:ChgFontstyle(event);"> に合致する要素 (for greenman_vorteX)

        ℹ️ スキン作者の方へ

        レスのヘッダ部分(レス番号, 名前, 日付など)を`resHeader`クラスを持つ要素で括る構造にする(例: smorgasboard-lego-ex)と,
        Abone Helper側・スキン側が個別に対応をしなくてもスキンの表示を崩さずに表示できる確率が高まります.
        
      • デザインが崩れる場合やデザインを修正したい場合には, skin-overlay.cssを直接編集するか, ユーザースタイルシート(userContent.css/Stylish)などで調整して下さい. 自動対応機能をOFFして, 自由な場所に<ABONEWORD/>を追加し表示する事もできます.

      • chaikaの稼働ポートを変えている人は, skin-overlay.cssを適宜変更して使用して下さい.

      • 未対応のスキンでこの機能を使用するためには, スキンを修正する必要があります.

        • NGRes.html, NGNewRes.html内で<ABONEWORD/>が使えるようにしています. <ABONEWORD/>はあぼーんされた時に反応したNGワードに置換されます. 適当なタグに aboneword="<ABONEWORD/>" のように属性を付加し, CSSなどで表示させると良いかと思います.

        • 参考までに, 修正済のデフォルトスキンを同梱しておきました. NGRes.html, NGNewRes.html, style.cssのみ変更しています.

      • この機能は, 設定よりOFFにすることができます(デフォルトはONです). OFFにした場合, スキンの自動修正を行わなくなります.

  • 右クリックメニューからNGワードを追加することが出来ます.

    • Cmdを押しながら複数の箇所を同時に選択した場合, 高度な設定以外では単純にそれらの文字列が結合されます. 高度な設定では選択箇所それぞれが別々の条件として追加されます.
    • 「登録」ボタンを押さないと登録が完了されないので注意.
  • chaika 1.5.6以下に存在する, BeIDがあるとIDの末尾に空白が付加されるバグを修正します.

  • 即時あぼーんにはスキン側の対応が必要です(以下技術者向け).

    • 追加・編集時にはNGタイプとして「99」, 内容としてあぼーんオブジェクトをJSON化したものが b2r-abone-data-addを通じてnotifyされます.
    • 削除時にはNGタイプとして「99」, 内容として削除されたあぼーんオブジェクトをJSON化がしたものが b2r-abone-data-removeを通じてnotifyされます.
  • 「高度な設定」タブで登録したNGワードは, NGadv.txt内にJSON形式で保存されています.

注意事項

  • 総じてテスト不足なので, 致命的な不具合があるかもしれません. 何が起きても大丈夫という人だけ自己責任でお使い下さい.

  • Uploader bbs2chreader にて配布しています. 自動更新はされませんので, 定期的にアップローダーを確認することをおすすめします. なお, 設定画面より手動にて更新の有無を確認する事ができます.

履歴

2013/06/22 22:00 - 0.0.26

  • IDが???の場合には自動的にNGIDに追加しないようにした
  • 同一スレ内で複数のNGワードがヒットした際に, ヒットしたNGワードの表示が全て最初にヒットしたものになるバグを修正

2013/06/17 15:00 - 0.0.25

  • chaika 1.6.1 でヒットしたNGワードが表示されないバグを修正
  • Chaika Abone Helper をアンインストールした後もそのまま使い続けることができるようにした

2013/05/09 9:00 - 0.0.24

  • タイトルを手動で設定したNGワードには「自動」にチェックを入れないようにした
  • 条件のデフォルトを本文に変更
  • 有効期限が切れたNGワードを削除する際に, 対象でないNGワードを誤削除することがあるバグを修正

2013/05/07 23:00 - 0.0.23

  • chaika r491 に対応

2013/02/28 12:00 - 0.0.22

  • chaika r479 に対応

2013/02/19 13:00 - 0.0.21

  • chaika 1.6.0に対応
  • 右クリックあぼーんの「高度な設定」が動いていなかったバグを修正

2013/02/03 0:00 - 0.0.20

  • chaika 1.5.8に対応
  • thread-mod.js を廃止し, thread.jsを直接書き換える方式に変更 それに伴い, 「BeIDがあるとIDの末尾に空白が付加されるバグ」以外のchaika本体のバグを修正するコードを削除 (chaika 1.5.7以降で修正されています)
  • 自動NGIDの時は自動的に有効期限を当日中限りに設定するようにした
  • 登録した有効期限が正しく表示されていなかったバグを修正(設定自体は正しく行われていた)
  • 登録した「透明あぼーん」「連鎖あぼーん」「自動NGID」の項目が正しく表示されていなかったバグを修正(設定自体は正しく行われていた)
  • 「今日中のみ有効にする」ボタン(有効期限を翌日の0:00に設定するボタン)を追加した
  • 連鎖あぼーんが正しく動かないことがあるバグを修正
  • NGワードを削除した際, インデックス番号ではなくJSON化したあぼーんオブジェクトを通知するようにした

2012/11/26 19:30 - 0.0.19

  • 連鎖あぼーんの処理を高速化
  • 不正な条件かどうかのチェックを厳しくした
  • 登録しようとした条件が不正だった時に一覧のタイトルを更新しないようにした
  • 「高度な設定」で一番上の項目を選択した時背景色が変わらないバグを修正
  • Be基礎番号でスレッドあぼーんしようとするとスレ一覧が表示されなくなるバグを修正

2012/11/20 22:00 - 0.0.18

  • Be基礎番号であぼーんできるようにした
  • 各NGワードごとに「透明あぼーん」「連鎖あぼーん」の処理をするかどうか選択できるようにした
  • ヒットしたレスのIDを自動でNGIDにする機能を追加
  • >>1-10のような範囲指定があるアンカーが含まれるレスが正しく連鎖あぼーんしていなかったバグを修正 (chaika本体のバグ)
  • したらばであぼーん元のNGワード表示機能が動作していなかったのを修正
  • マッチ処理をわずかに高速化

2012/08/13 17:00 - 0.0.17

  • 特定の文字を含む文字列をNGワードに指定すると, bad escaped character エラーが出てスレが閲覧できなくなるバグを修正
  • 反応したNGワード表示にスキンを自動対応させる機能にgray/PhantomPain3 Beta1を仮対応させた

2012/07/27 19:00 - 0.0.16

  • ChaikaServer.js を自動で書き換えるようにした
  • skin-overlay.css がスキンを自動で対応させる機能がOFFの時も読み込まれてしまうバグを修正
  • 「一致」「不一致」によるあぼーんができるようにした
  • NGワードの有効期限を設定できるようにした
  • 大文字小文字を無視するかどうか設定できるようにした
  • NGワードのタイトルの付け方を修正
  • スレURLであぼーんできるようにした
  • 更新チェックで更新が見つかった場合に, 更新内容の詳細を表示するようにした

2012/03/22 21:00 - 0.0.15

  • スキンを修正しなくても反応したNGワードを表示できるようにした
  • 反応したNGワードを表示するかどうか, スキンを修正せずにNGワードを表示できるようにする機能を有効にするかどうかの設定を追加
  • 「高度な設定」タブに設定画面を開くボタンを追加
  • バージョン部分が2桁の時に, 更新チェックが正しく働かないバグを修正
  • スレッドあぼーんの処理を多少高速化

2012/03/22 00:30 - 0.0.14

  • 透明あぼーんを有効にした状態でスレッドあぼーんが発生するとスレッドが1件も表示されなくなるバグを修正

2012/03/21 23:25 - 0.0.13

  • 日付/発信元/ホストであぼーんできるようにした
  • thread-mod.jsに「BeIDが付いているとIDの末尾に余分なスペースが付加されるのを修正するパッチ」と 「JBBSの歯抜け問題を修正するパッチ」(オリジナル: 642.zip)を適用した

2012/03/19 22:15 - 0.0.12

  • 右クリックあぼーんで, あぼーんマネージャを開いたときにワードが入力されていないバグを修正

2012/03/19 21:30 - 0.0.11

  • Firefox 11対応
  • page-mod.xulを廃止
  • thread-mod.js復活
  • 「条件を含まない」オプションを追加
  • あぼーんマネージャで条件が多いときにウィンドウからはみ出してしまうバグを修正

2010/09/08 17:55 - 0.0.10

  • 完了ボタンを押さないでデフォルトのまま登録されているデータを, マネージャを閉じた時に削除するようにした

2010/09/03 17:20 - 0.0.9

  • マッチ処理を高速化
  • 登録時に条件の正当性をチェックするようにした

2010/09/02 20:00 - 0.0.8

  • マッチ処理を高速化

2010/08/31 13:35 - 0.0.7

  • 右クリックあぼーん機能追加
  • BeIDであぼーんできるようにした
  • タイトルが「自動」の時, 条件を消去した際にタイトルが更新されないバグを修正

2010/08/20 19:00 - 0.0.6

  • 連鎖あぼーんが動いていなかったバグを修正
  • thread-mod.jsを廃止(thread.jsを書き換えるパッチなどとの互換性が向上)

2010/08/19 10:40 - 0.0.5

  • 条件に日本語が入っているとマッチしなくなるバグを修正(0.0.2での修正が不十分だった)
  • 条件を評価するのにevalのかわりにevalInSandboxを使うようにした

2010/08/18 16:00 - 0.0.4

  • 手動で変更しなければいけない部分をなくした

2010/08/18 10:20 - 0.0.3

  • 何に反応してあぼーんされたのかを表示する機能がJBBSで動作していなかったバグを修正
  • 何に反応してあぼーんされたのかを表示するかどうかのオプションを廃止
  • 従来のNGワードについて, あぼーんされた理由を表示するためにファイルを手動で書き換える必要をなくした

2010/08/17 18:00 - 0.0.2

  • 条件に日本語が入っているとマッチしなくなるバグを修正
  • あぼーんマネージャで, NGワードのタイトルをデフォルトで自動設定するようにした

2010/08/17 14:00 - 0.0.1

  • とりあえず動く

chaika-abone-helper's People

Contributors

nodaguti avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.