plugin - プラグインの紹介

# NAME

plugin - プラグインの紹介

# SYNOPSYS

# DESCRIPTION

img0chで最初から入っているプラグインの紹介

## Img0ch::Plugin::BBS::Coloring

名前欄にRGB()関数または名前欄の先頭に@(16進数の組合せ)@を入れることにより 色の付加を行うプラグインです。以下はルールと変換した値です。

      # 赤、緑、青の強さを示す三つの数字(0-255)を入れると自動的に16進数に変換する
      # なお、255よりも大きい数字が指定された場合255として認識される
      変換前: RGB(255,255,255)This is a test.
      変換後: <span style="color:#ffffff">This is a test.</span>

      # Webで利用されるシャープ(#:省略可能)と6つの16進数の数字の組合せはそのまま反映される
      # 英字部分は大小の区別を行わなず、変換時に小文字に統一される
      変換前: RGB(FF0000)This is a test.
      変換後: <span style="color:#ff0000">This is a test.</span>

      # RGB()関数は名前欄内に何回でも利用できる
      # また、RGBの英字部分は大小の区別を行わない
      変換前: RGB(FF0000)Foorgb(0000FF)BAR
      変換後: <span style="color:#ff0000">FOO</span><span style="color:#0000ff">BAR</span>

      # 上記のルールに反するRGB関数の使い方が行われている場合その部分は無視される
      # これを逆に利用して名前欄の文字色を元に戻すことが出来る
      変換前: RGB(-1,-1,-1)foorgb(invalid)bar
      変換後: foobar

      # 名前欄の先頭に#を除いた16進数の数字の組合せを@ではさんだ文字列を入れる
      # 英字部分は大小の区別を行わなず、変換時に小文字に統一される
      # RGB関数よりも優先的に適用され、名前欄中に1度しか利用できない
      変換前: @FfFfFf@test@000000@
      変換後: <span style="color:#ffffff">test@000000</span>

name

  上記の処理を行う関数です。

## Img0ch::Plugin::BBS::HTMLTag

標準では全てエスケープされるHTMLのタグを有効にするプラグインです。 本文のみ有効です。このプラグインを使用するには利用するサーバー側に HTML::Parserがインストールされている必要があります。

このプラグインはXSSの原因を作る危険性があります。 使用する場合はそのことを考慮してください。

タグ許可の記述ルールはini形式を用いて行います。 文法が間違っているとエラーが発生して書き込めなくなります。 configのTagsRuleConfigの項目を参照してください。

      # この行は無視されます
      ; この行も無視されます

      # (キー名)=(値)形式で記述します。
      # 値は1か0が入ります。1にすると許可、0にすると禁止を意味するようになります。
      # キー名または値前後の空白は無視されます。
      # なお、タグ記述ルールに入っていないタグ及び属性は全て無効とみなします。

      # [(タグ名)]よりも前にキー名(以下属性)と値を
      # 記述すると全てのタグに影響します。
      # この場合以下のタグに該当し、なおかつ属性に該当しない場合は
      # その属性が削除されることを意味します。
      # allとnoneは特別な意味が含まれています。説明は以下で。
      none = 1

      # E<lt>fontE<gt>タグに関する情報です。以下の場合はE<lt>fontE<gt>タグを
      # 有効にし、color属性またはsize属性があればタグとして表示することを
      # 許可することを意味します。
      [font]
      color = 1
      size  = 1

      # E<lt>bE<gt>タグに関する情報です。以下の場合はE<lt>bE<gt>タグを
      # 有効にしますが、属性を全て無効にすることを意味します。
      [b]
      none = 1

      # E<lt>s<gt>タグに関する情報です。以下の場合はE<lt>sE<gt>タグを
      # 有効にし、可能な限り属性を許可します。
      [s]
      all = 1

以下は強制的に無効にされるタグ及び属性情報です。

      style       = 0
      onmouseover = 0
      onclick     = 0
      onmouseout  = 0
      [a]
      all = 0
      [br]
      all = 0
      [blink]
      all = 0
      [hr]
      all = 0
      [marquee]
      all = 0
      [img]
      all = 0

parse

  上記の処理を行う関数です。

## Img0ch::Plugin::BBS::Icon

アイコン付きの投稿を行えるようにするプラグインです。 インストール方法はinstallのアイコンを利用可能にするを参照してください。

add_tag_on_bbs

  利用可能なアイコンの配列をテンプレートタグで利用可能にする関数です。 このテンプレートタグは以下のように使います。

        <TMPL_IF NAME=Icon>
          アイコン：<select name="icon"><option value="" selected>なし</option>
          <TMPL_LOOP NAME=Icons><option value="<TMPL_VAR NAME=id>"><TMPL_VAR NAME=name></option>
          </TMPL_LOOP>
          </select><br>
        </TMPL_IF>

add_tag_on_read

  上記(add_tag_on_bbs)の処理をread.cgiの呼出し時に行う関数です。

save

  アイコンの投稿情報を本文に付加する関数です。

from_bbs

  index.html生成時にアイコンのリンクを作成する関数です。

from_read

  read.cgiによるhtml生成時にアイコンのリンクを作成する関数です。

## Img0ch::Plugin::BBS::RSS

最後に書き込みした記録をRSSとして出力するプラグインです。 現在バージョン1.0と2.0に対応しています。

Zerominからクラス名(Img0ch::Plugin::BBS::RSS)をクリックし、 「配信するレス数」を変更することによってRSSで配信するレス数を 掲示板単位で変更することが出来ます。デフォルトは10です。

generate_ver_10

  RSSのバージョン1.0のxmlを出力する関数です。

generate_ver_20

  RSSのバージョン2.0のxmlを出力する関数です。

Zerominからクラス名(Img0ch::Plugin::BBS::RSS)をクリックし、 変更できるパラメータです。

設定変更には「掲示板設定関連」の「基本的で重要な設定」の権限が必要です。

配信するレス数

  RSSで配信するレス数を変更することが出来ます。 掲示板単位で変更可能です。 デフォルトは10です。

## Img0ch::Plugin::BBS::Random774

名無しをルールにあわせてランダムに表示させて変更するプラグインです。

このプラグインを利用するにはconfigの[random774]を設定する必要があります。 詳しくはconfigを参照してください。

変更された名前欄はトリップやfusianasanと同じように細い文字で表示されます。

rewrite

  上記の処理を行う関数です。

## Img0ch::Plugin::BBS::Reaper

書き込みの勢いが少ないスレッドを対象にプーリングを自動化するプラグインです。

work

  上記の処理を行う関数です。

Zerominからクラス名(Img0ch::Plugin::BBS::Reaper)をクリックし、 変更できるパラメータです。

設定変更には「プール関連」の「作成」の権限が必要です。

回数の割合

  何回の割合で自動プーリングを実行するかを指定します。 掲示板単位で変更可能です。 デフォルトは16です。

プーリングする最終書込時からの経過日数の基準

  スレッドの最終書き込み時からの経過日数以上経過した場合にプーリングする 基準の日数を指定します。0または空欄を指定するとこの基準を無効にする (この基準でプーリングされなくなる)ことが出来ます。 掲示板単位で変更可能です。 デフォルトは30です。

プーリングするレス数の基準

  スレッドのレス数が一定以上あった場合にプーリングする基準のレス数を指定します。 0または空欄を指定するとこの基準を無効にする(この基準でプーリングされなくなる) ことが出来ます。 掲示板単位で変更可能です。 デフォルトは1000です。

プーリングするスレッドの位置の基準

  スレッドがsubject.txtから見て一定位置以下にあった場合にプーリングする 基準の位置を指定します。0または空欄を指定するとこの基準を無効にする (この基準でプーリングされなくなる)ことが出来ます。 掲示板単位で変更可能です。 デフォルトは500です。

プーリングする勢いの基準

  スレッドの勢いが一定以下の場合にプーリングする基準の勢いを指定します。 0または空欄を指定するとこの基準を無効にする (この基準でプーリングされなくなる)ことが出来ます。 掲示板単位で変更可能です。 デフォルトは0.5です。

書き込み不可能なスレッドをプーリングする

  レス数またはサイズが一定以上、停止または移転状態のスレッドを プーリングするかを指定します。 掲示板単位で変更可能です。

## Img0ch::Plugin::BBS::UTF8Dat

utf8に変換したdatを生成するプラグインです。 Ajaxによる読み込みに対応したread.htmlの組合せで使います。

このプラグインは有効にしてから次の書き込みが成功した時点でファイルが生成されます。

sync

  utf8に変換したdatを生成する関数です。 Unicode::Japaneseを使用します。

remove

  utf8に変換されたdatを削除する関数です。 スレッド削除時に呼び出されます。

repair

  存在する全てのスレッドに対してutf8に変換したdatを生成し、 存在しないスレッドのutf8のdatを削除する関数です。 サブジェクト再生成が実行された時に呼び出されます。

## Img0ch::Plugin::BBS::VIP

外部モジュールVIPクオリティ http://www.nullpo.org/pablic_html/vip_quality/vip_quality.html を 使用してレスに変化をつけるプラグインです。 使用可能な記述方法は上記のURLを参照してください。 日時及びIDの変更がプラグイン側で出来ないため、 !noidといったIDの変更を行うコマンドは使用できません。

インストール方法はconfigのVIPクオリティを利用可能にするを参照してください

rewrite

  上記の処理を行う関数です。

## Img0ch::Plugin::BBS::VT

Img0ch::Thread::Virtualを使ってスレッドごとに独自の掲示板設定やNGワード、 規制アドレスを設けることが出来るようにするためのプラグインです。

このプラグインを利用するには予め掲示板設定のBBS_ENABLE_ANNOTATIONを 有効にしておく必要があります。

init

  スレッドごとに設定された独自の掲示板設定を読み込む処理を行います。 スレッドが存在するときのみ読み込まれます。

filter

  スレッドごとに設定されたNGワードや規制アドレスによって振り分けする処理を行います。 スレッドが存在するときのみ読み込まれます。

  「PROXY経由での書き込みの許可」の権限を持つキャップグループに所属する キャップをつけた人の書き込みはエラー無しで通過します。

create

  スレッド作成時にアノテーションからスレッドごとの設定を作成する処理を行います。 以下は利用できるアノテーションです。

@VT:USER

  ユーザー名を設定します。必須項目です。

@VT:PASS

  パスワードを設定します。必須項目です。

@VT:INHERIT

  書き込むスレッドが存在する掲示板内の設定を継承するスレッドのスレッドキーを設定します。 継承元のスレッドが設定していたユーザー名とパスワードを一致させる必要があります。

@VT:NGWORD

  NGワードを設定します。カンマ区切りで複数の単語をNGワードにすることが出来ます。 正規表現は使うことが出来ません。

@VT:(SETTING.TXTのキー名)

  掲示板設定を設定します。利用できるキーは以下の通りです。

        BBS_COLUMN_NUMBER
        BBS_DATMAX
        BBS_LINE_NUMBER
        BBS_MAIL_COUNT
        BBS_MESSAGE_COUNT
        BBS_NAME_COUNT
        BBS_RES_MAX

Zerominからクラス名(Img0ch::Plugin::BBS::VT)のうち createの項目をクリックすることで変更できるパラメータです。

設定変更には「掲示板設定関連」の「基本的で重要な設定」の権限が必要です。

仮想スレッドの作成を強制化する

  スレッド作成時に上記の@VT:USERと@VT:PASSが利用されていない場合に エラーを発生させるかを設定します。エラーが起きた場合は NO_VIRTUAL_THREAD_IDが記録されます。

## Img0ch::Plugin::Filter::Akismet

投稿情報をAkismetを経由してスパム等の投稿を排除するプラグインです。 Akismetはwordpress他ブログ等で利用されますが、かなり効果が高いとされています。

このプラグインはAkismetにIPアドレスが送信されます。また、 以下の設定次第ではメールアドレス及びリファラー情報を送信します。 このプラグインを利用するときは http://www.wordpress.com の APIキーを取得し、img0ch-config.cgiに以下のように記述する必要があります。

      [akismet]
      apikey = (wordpress.comで取得したAPIキー)
      # メールアドレスを送信する場合は次の行の#を削除する
      # mail = 1
      # リファラー情報を送信する場合は次の行の#を削除する
      # referer = 1

なお、メールアドレスに含むキャップパスは事前に処理されて削除されるため、 キャップパスがAkismetに送信されることはありません(mailが有効の場合に限る)。

Akismetの利用は基本的に個人利用でかつ利益をあまり上げていない場合無料ですが、 個人利用で一定額の利益を上げているまたは商用利用の場合は有料です。 詳細は Akismet ( http://www.akismet.com ) で確認してください。

このプラグインを使用するには利用するサーバー側にLWPが インストールされている必要があります。

check

  上記の処理を行う関数です。 「PROXY経由での書き込みの許可」の権限を持つキャップグループに所属する キャップをつけた人の書き込みはエラー無しで通過します。

## Img0ch::Plugin::Filter::BanASCII

英字のみで構成される本文をエラーとして排除するプラグインです。 使用順はEncode、Unicode::Japaneseの順です。

is_ascii_only

  上記の処理を行う関数です。 この関数は例外で全ての権限を持つキャップグループに所属する キャップの書き込みでも通過せずに処理します。

## Img0ch::Plugin::Filter::DNSBL

IPアドレスをDNSBLに問い合わせて書き込みの可否を行うプラグインです。

以下の関数は「PROXY経由での書き込みの許可」の権限を持つキャップグループに 所属するキャップをつけた人の書き込みはエラー無しで通過します。

check_by_bbq

  niku.2ch.netに問い合わせて書き込みの可否を行う関数です。

check_by_bbx

  bbx.2ch.netに問い合わせて書き込みの可否を行う関数です。

check_by_dsbl

  list.dsbl.orgに問い合わせて書き込みの可否を行う関数です。

by_rbl

  all.rbl.jpに問い合わせて書き込みの可否を行う関数です。

by_spamcop

  spamcop.netに問い合わせて書き込みの可否を行う関数です。

by_spamhaus

  sbl-xbl.spamhaus.orgに問い合わせて書き込みの可否を行う関数です。

by_blitzed

  opm.blitzed.orgに問い合わせて書き込みの可否を行う関数です。 (opm.blitzed.orgはサービスを停止したため、この関数は利用しても拒否を行いません)

by_empty

  bsb.empty.usに問い合わせて書き込みの可否を行う関数です。

by_spamlookup

  bsb.spamlookup.netに問い合わせて書き込みの可否を行う関数です。

## Img0ch::Plugin::Filter::Host

あらかじめZerominに登録された拒否ホストの投稿を エラーとして排除するプラグインです。

check

  上記の処理を行う関数です。 「PROXY経由での書き込みの許可」の権限を持つキャップグループに所属する キャップをつけた人の書き込みはエラー無しで通過します。

## Img0ch::Plugin::Filter::IP

あらかじめZerominに登録された拒否IPアドレスの投稿を エラーとして排除するプラグインです。

check

  上記の処理を行う関数です。 「PROXY経由での書き込みの許可」の権限を持つキャップグループに所属する キャップをつけた人の書き込みはエラー無しで通過します。

## Img0ch::Plugin::Filter::JPOnly

リモートホストが日本のものであれば無条件で通過させ、 それ以外の国であれば書き込みを禁止するプラグインです。 まず先にinstallの Img0ch::Plugin::Filter::JPOnlyを使う の項目を参照してから有効にしてください。 スクリプトのエラーが発生し、書き込みが出来なくなります。

この処理では先にリモートホストが.jpで終了しているかを見ます。 それからIP::Countryでリモートホストの国籍を割り出します。 さらにこれがJPでなければHOST-jp.iniから例外を見ます。 例外に該当しなかった場合は偽を返し、エラーとして扱います。

check

  上記の処理を行う関数です。 「PROXY経由での書き込みの許可」の権限を持つキャップグループに所属する キャップをつけた人の書き込みはエラー無しで通過します。

## Img0ch::Plugin::Filter::NGWord

あらかじめZerominに登録されたNGワードを含む投稿を エラーとして排除するプラグインです。

※注意 現在このプラグインはインストールされず、利用も非推奨となっています。 代わりにImg0ch::Plugin::Filter::NGWord2を利用してください。

check

  上記の処理を行う関数です。 「PROXY経由での書き込みの許可」の権限を持つキャップグループに所属する キャップをつけた人の書き込みはエラー無しで通過します。

## Img0ch::Plugin::Filter::NGWord2

あらかじめZerominに登録されたNGワードを含む投稿を エラーとして排除するプラグインです。 以下の点でImg0ch::Plugin::Filter::NGWordと動作が異なります

正規表現を用いず、単純一致のみ

  Img0ch::Plugin::Filter::NGWordは正規表現を扱っていましたが、 これは扱いが難しく、スクリプト側でのエラーの原因になりました。 そこでindex関数による単純一致に処理を置き換え、 柔軟性を犠牲にする代わりに高速化を図っています。

NGワードの対象となる範囲指定が可能

  Img0ch::Plugin::Filter::NGWordは全体に適用するため、規制範囲の細かい制御が 出来ませんでした。このプラグインでは範囲指定が可能になっています。

check

  上記の処理を行う関数です。 「PROXY経由での書き込みの許可」の権限を持つキャップグループに所属する キャップをつけた人の書き込みはエラー無しで通過します。

## Img0ch::Plugin::Filter::NoLink

本文にプロトコルがhttpまたはhttpsから始まるリンクを載せた場合に 「フォームが正しく読めないです」のエラーを出力するプラグインです。 本文にリンクを記載するスパムに有効です。

check

  上記の処理を行う関数です。 「投稿時の量にかかわる制限の解除」の権限を持つキャップグループに所属する キャップをつけた人の書き込みはエラー無しで通過します。

## Img0ch::Plugin::Filter::NoMail

メール欄にメールアドレスを載せた場合に「フォームが正しく読めないです」のエラーを 出力するプラグインです。普通に考えれば本末転倒な感じのプラグインですが、 2ch型のスレッドフロート型掲示板においてメール欄にメールアドレスを記述することが あまり無いことから作られたものです。メールアドレスを載せるスパムに有効です。

check

  上記の処理を行う関数です。 「投稿時の量にかかわる制限の解除」の権限を持つキャップグループに所属する キャップをつけた人の書き込みはエラー無しで通過します。

## Img0ch::Plugin::Rewrite::AutoLink

本文のhttp://、https://、ftp://の部分を <a>タグに変換してリンクさせるプラグインです。 configのEnableIDNの項目を参照してください。

from_bbs

  上記の処理をindex.html生成時に行う関数です。

from_read

  上記の処理をread.cgiによるhtml生成時に行う関数です。

from_mobile

  上記の処理をr.cgiによるhtml生成時に行う関数です。

## Img0ch::Plugin::Rewrite::Image

アップロードされた画像ファイルのリンクを<img>タグに変換して 画像表示をさせるプラグインです。 それ以外のファイルでも特別なリンクに変換します。

このプラグインはImg0ch::Plugin::Rewrite::AutoLinkを 有効にする必要があります。

from_bbs

  上記の処理をindex.html生成時に行う関数です。

from_read

  上記の処理をread.cgiによるhtml生成時に行う関数です。

from_mobile

  上記の処理をr.cgiによるhtml生成時に行う関数です。

## Img0ch::Plugin::Rewrite::Movie

アップロードされた動画ファイルのリンクをfileseek.netの外部リンクまたは <object>タグに変換して動画再生を行えるようにするプラグインです。

拡張子がmpg,avi,wmv,wma,mp3,wavであればfileseek.netに対する 外部リンクを作成します。また、拡張子が3g2,3gp,amcであれば <object>で直接再生するためのリンクを作成します。

このプラグインはImg0ch::Plugin::Rewrite::AutoLinkを 有効にする必要があります。

from_mobile

  上記の処理をr.cgiによるhtml生成時に行う関数です。

## Img0ch::Plugin::Rewrite::Quotation

引用部分(>>)をリンクに変換させるプラグインです。

from_bbs

  上記の処理をindex.html生成時に行う関数です。

from_read

  上記の処理をread.cgiによるhtml生成時に行う関数です。

from_mobile

  上記の処理をr.cgiによるhtml生成時に行う関数です。

## Img0ch::Plugin::Rewrite::StreamService::EbiTV

本文にebitv.jpのリンクがあれば ebitv.jp専用のリンクを作成するプラグインです。

from_bbs

  上記の処理をindex.html生成時に行う関数です。

from_read

  上記の処理をread.cgiによるhtml生成時に行う関数です。

## Img0ch::Plugin::Rewrite::StreamService::FlipClip

本文にflipclip.netのリンクがあれば flipclip.net専用のリンクを作成するプラグインです。

from_bbs

  上記の処理をindex.html生成時に行う関数です。

from_read

  上記の処理をread.cgiによるhtml生成時に行う関数です。

## Img0ch::Plugin::Rewrite::StreamService::GoogleVideo

本文にvideo.google.comのリンクがあれば video.google.com専用のリンクを作成するプラグインです。

from_bbs

  上記の処理をindex.html生成時に行う関数です。

from_read

  上記の処理をread.cgiによるhtml生成時に行う関数です。

## Img0ch::Plugin::Rewrite::StreamService::Watchme

本文にwatchme.tvのリンクがあれば watchme.tv専用のリンクを作成するプラグインです。

from_bbs

  上記の処理をindex.html生成時に行う関数です。

from_read

  上記の処理をread.cgiによるhtml生成時に行う関数です。

## Img0ch::Plugin::Rewrite::StreamService::YouTube

本文にyoutube.comのリンクがあれば youtube.com専用のリンクを作成するプラグインです。

from_bbs

  上記の処理をindex.html生成時に行う関数です。

from_read

  上記の処理をread.cgiによるhtml生成時に行う関数です。

## Img0ch::Plugin::Rewrite::Truncate

本文を長文であれば一部に切り取って再表示させるプラグインです。

from_bbs

  上記の処理をindex.html生成時に行う関数です。

from_mobile

  上記の処理をr.cgiによるhtml生成時に行う関数です。

## Img0ch::Plugin::Upload::ClamAV

アップロードされるファイルをClamAVを使って検査するプラグインです。 このモジュールを利用するにはClamAV::Clientのインストールが必要になります。 勿論ClamAVをインストールする必要があります。

ClamAV側に設定を行った上(デーモンとして立ち上げる必要がある)で img0ch-config.cgiに以下の設定を行う必要があります。

      [clamav]
      # Unixドメインを利用する場合はsocket_nameに
      # パスを指定する必要がある。デフォルトは値の通り
      socket_name = /var/run/clamav/clamd.ctl
      # TCPを利用する場合はtcp_hostとtcp_portに
      # それぞれアドレスとポート番号を指定する必要がある。
      # デフォルトは値の通り
      tcp_host = 127.0.0.1
      tcp_port = 3310

check

  上記の処理を行う関数です。

## Img0ch::Plugin::Upload::Expires

アップロードファイルを一定の時間を経過している場合に削除するプラグインです。 利用できる関数はそれぞれ処理内容が同一ですが、呼び出されるタイミングが異なります。 有効にする場合は書き込み及びアップロードされる頻度に合わせてどちらかひとつを有効にしてください。

有効にした後掲示板設定で「ファイルの有効期限(BBS_IMG_EXPIRES)」の設定が必要になります。 これを設定しない限りアップロードされたファイルはレスまたはスレッドが削除されるまで保持し続けます。

at_post_upload

  上記の処理をアップロードされた後に行う関数です。

from_read

  上記の処理を書き込み後に行う関数です。

## Img0ch::Plugin::Upload::MIME

アップロードされるファイルをFile::MMagicを使って検査するプラグインです。 ファイル名とファイルの中身が一致しない場合はエラーにし、アップロードを中止させます。 このプラグインは特に設定を行わなくても利用することが出来ます。

check

  上記の処理を行う関数です。

## Img0ch::Plugin::Upload::NoNude

裸体の画像を排除するプラグインです。 TryNTのAPIを利用しますので、有効にする際は必ず利用規程を参照してください。 (以下のURLからTryNTを利用していることを明示するリンクを張り付ければ良いようです)

http://www.trynt.com/attribution/

check

  上記の処理を行う関数です。

## Img0ch::Plugin::Upload::Node

お絵書き投稿の支援とお絵書きアプレットに対するリンク生成を行うプラグインです。 installの「お絵書きアプレットを利用可能にする」を参照してください。

save

  お絵書きしたファイルをアップロードファイルとして処理する関数です。

from_bbs

  「続きを描く」と「アニメーション」のリンク生成処理をindex.html生成時に行う関数です。

from_read

  「続きを描く」と「アニメーション」のリンク生成処理をread.cgiによるhtml生成時に行う関数です。

## Img0ch::Plugin::Upload::Thumbnail

アップロードファイルを画像であれば自動的に縮小させるプラグインです。 Img0ch::Plugin::Rewrite::Imageとの組合せで使います。 configのImageHandlerの項目を参照してください。

create

  上記の処理を行う関数です。

repair

  掲示板またはスレッド内の全ての画像に対してサムネイルを生成する関数です。 アップロードデータ修復が実行されたときに呼び出されます。

## Img0ch::Plugin::Upload::XCSV

アップロードされたファイルのインデックスをCSVとして出力するプラグインです。 これはread.htmlでのimageプラグインを利用するときにこのプラグインが 出力するファイルが必要になります。

このプラグインは有効にしてから次の書き込みが成功した時点でファイルが生成されます。

generate

  上記の処理を行う関数です。

repair

  掲示板またはスレッドに対してgenerate()を呼び出す関数です。 アップロードデータ修復が実行されたときに呼び出されます。

# プラグインの作成

img0chの2.1.x以降からプラグイン機構が導入され、 プラグインによってさまざまな機能を自ら取り入れることが可能になります。 ここではプラグイン作成の説明を行います。

## プラグインのパッケージ名

Img0ch::Pluginで始まる必要があります。 それ以降は任意ですが、なるべく自ら作成したプラグインは

      Img0ch::Plugin::MyPlugin

として標準で導入されているプラグインと自ら作成したプラグインが 分かるようにパッケージ名を決定してください。

## プラグインが実行されるタイミング

プラグインが実行されるタイミングは以下のようになります。

### bbs.init

スレッドを読み込む前

### mobile.init

r.cgiにおいてスレッドを読み込む前

### read.init

read.cgiにおいてスレッドを読み込む前

### bbs.filter

名前欄やメール欄などの入力チェックが完了して書き込みチェックを行う前

$iApp

  第一引数はImg0ch::App::BBSオブジェクト

### bbs.upload.pre

アップロードする前(アップロードするファイルがある場合のみ)

$iApp

  第一引数はImg0ch::App::BBSオブジェクト

### bbs.upload.post

アップロードした後(アップロードするファイルがある場合のみ)

$iApp

  第一引数はImg0ch::App::BBSオブジェクト

### bbs.write.pre

書き込む前(アップロードした後)

$iApp

  第一引数はImg0ch::App::BBSオブジェクト

### bbs.write.post

書き込みが完了した後

$iApp

  第一引数はImg0ch::App::BBSオブジェクト

### bbs.rewrite

index.html生成時にレスごとに本文を書き換える場合 これを実行するプラグインには必ずコンストラクタを実装する必要がある

$iObject

  第一引数はプラグインのオブジェクト

$key

  第二引数は現在のスレッドキー

$count

  第三引数は現在のスレッドのレス数

$resno

  第四引数は現在のスレッドのレス番号

$text

  第五引数は第四引数に対応する本文のリファレンス

### read.rewrite

read.cgiからスレッドが読み込まれた時にレスごとに本文を書き換える場合 これを実行するプラグインには必ずコンストラクタを実装する必要がある

$iObject

  第一引数はプラグインのオブジェクト

$key

  第二引数は現在のスレッドキー

$count

  第三引数は現在のスレッドのレス数

$resno

  第四引数は現在のスレッドのレス番号

$text

  第五引数は第四引数に対応する本文のリファレンス

### mobile.rewrite

r.cgiからスレッドが読み込まれた時にレスごとに本文を書き換える場合 これを実行するプラグインには必ずコンストラクタを実装する必要がある

$iObject

  第一引数はプラグインのオブジェクト

$key

  第二引数は現在のスレッドキー

$count

  第三引数は現在のスレッドのレス数

$resno

  第四引数は現在のスレッドのレス番号

$text

  第五引数は第四引数に対応する本文のリファレンス

$param

  第六引数は呼び出されたときの拡張パラメータ

## インストーラの作成

プラグインのインストーラとなるモジュールを作成します。 モジュール名は先頭にImg0ch::Pluginではじまり、最後にInstallとなるようにしてください。 また、このファイルは/test/img0ch/3/Img0ch/Plugin/ディレクトリ以下に配置してください。

以下の例では/test/img0ch/3/Img0ch/Plugin/MyPlugin/Install.pmとなります。

      package Img0ch::Plugin::MyPlugin::Install

      use strict;

      # Install.pmはinstall()とuninstall()の2つの関数が使用できる。
      # install()には$zPlugin(Zeromin::Plugin)のメソッドとして定義されている
      # install()を、uninstall()には$zPlugin(Zeromin::Plugin)のメソッドとして
      # 定義されているuninstall()をそれぞれ使用する。
      sub install {
          my ($zPlugin) = @_;
          # "package"はプラグインのパッケージ名を指定する
          # "method"はプラグインが持つ関数を列記する
          # "from_bbs"は関数名、"bbs.rewrite"は実行するタイミング
          $zPlugin->install(
              {   package => 'Img0ch::Plugin::Rewrite::XBreak',
                  method  => {
                      'from_bbs'  => 'bbs.rewrite',
                      'from_read' => 'read.rewrite',
                  },
              }
          );
      }
      sub uninstall {
          my ($zPlugin) = @_;
          #$zPlugin->uninstall(
          #    {   package => 'Img0ch::Plugin::Rewrite::XBreak',
          #        method  => {
          #            'from_bbs'  => 'bbs.rewrite',
          #            'from_read' => 'read.rewrite',
          #        },
          #    }
          #);
      }

Zerominから「プラグインの新規検索」を行うと自動的にプラグインが追加されます。

# SEE ALSO

Img0ch::Plugin

http://img0ch.sourceforge.jp

# AUTHOR

hkrn <hikarin at users dot sourceforge dot jp>

plugin - プラグインの紹介

# INDEX

- $count
- $iApp
- $iObject
- $key
- $param
- $resno
- $text
- @VT:(SETTING.TXTのキー名)
- @VT:INHERIT
- @VT:NGWORD
- @VT:PASS
- @VT:USER
- AUTHOR
- DESCRIPTION
- Img0ch::Plugin::BBS::Coloring
- Img0ch::Plugin::BBS::HTMLTag
- Img0ch::Plugin::BBS::Icon
- Img0ch::Plugin::BBS::RSS
- Img0ch::Plugin::BBS::Random774
- Img0ch::Plugin::BBS::Reaper
- Img0ch::Plugin::BBS::UTF8Dat
- Img0ch::Plugin::BBS::VIP
- Img0ch::Plugin::BBS::VT
- Img0ch::Plugin::Filter::Akismet
- Img0ch::Plugin::Filter::BanASCII
- Img0ch::Plugin::Filter::DNSBL
- Img0ch::Plugin::Filter::Host
- Img0ch::Plugin::Filter::IP
- Img0ch::Plugin::Filter::JPOnly
- Img0ch::Plugin::Filter::NGWord
- Img0ch::Plugin::Filter::NGWord2
- Img0ch::Plugin::Filter::NoLink
- Img0ch::Plugin::Filter::NoMail
- Img0ch::Plugin::Rewrite::AutoLink
- Img0ch::Plugin::Rewrite::Image
- Img0ch::Plugin::Rewrite::Movie
- Img0ch::Plugin::Rewrite::Quotation
- Img0ch::Plugin::Rewrite::StreamService::EbiTV
- Img0ch::Plugin::Rewrite::StreamService::FlipClip
- Img0ch::Plugin::Rewrite::StreamService::GoogleVideo
- Img0ch::Plugin::Rewrite::StreamService::Watchme
- Img0ch::Plugin::Rewrite::StreamService::YouTube
- Img0ch::Plugin::Rewrite::Truncate
- Img0ch::Plugin::Upload::ClamAV
- Img0ch::Plugin::Upload::Expires
- Img0ch::Plugin::Upload::MIME
- Img0ch::Plugin::Upload::NoNude
- Img0ch::Plugin::Upload::Node
- Img0ch::Plugin::Upload::Thumbnail
- Img0ch::Plugin::Upload::XCSV
- NAME
- NGワードの対象となる範囲指定が可能
- SEE ALSO
- SYNOPSYS
- add_tag_on_bbs
- add_tag_on_read
- at_post_upload
- bbs.filter
- bbs.init
- bbs.rewrite
- bbs.upload.post
- bbs.upload.pre
- bbs.write.post
- bbs.write.pre
- by_blitzed
- by_empty
- by_rbl
- by_spamcop
- by_spamhaus
- by_spamlookup
- check
- check_by_bbq
- check_by_bbx
- check_by_dsbl
- create
- filter
- from_bbs
- from_mobile
- from_read
- generate
- generate_ver_10
- generate_ver_20
- init
- is_ascii_only
- mobile.init
- mobile.rewrite
- name
- parse
- read.init
- read.rewrite
- remove
- repair
- rewrite
- save
- sync
- work
- インストーラの作成
- プラグインが実行されるタイミング
- プラグインのパッケージ名
- プラグインの作成
- プーリングするスレッドの位置の基準
- プーリングするレス数の基準
- プーリングする勢いの基準
- プーリングする最終書込時からの経過日数の基準
- 仮想スレッドの作成を強制化する
- 回数の割合
- 書き込み不可能なスレッドをプーリングする
- 正規表現を用いず、単純一致のみ
- 配信するレス数

plugin - プラグインの紹介