Recent Changes

2010-05-04
2010-02-04
2010-01-31
2010-01-24
2010-01-23

Latest File Release

img0ch (3.1.11)2010-07-11 00:00
img0ch-stable (3.0.1)2009-04-09 23:51

Wiki Guide

Side Bar

img0ch が持つ拡張一覧

Outline
  1. img0ch が持つ拡張一覧
  2. Img0ch::Plugin::BBS::Coloring
      1. name
  3. Img0ch::Plugin::BBS::HTMLTag
      1. parse
  4. Img0ch::Plugin::BBS::FlowST
      1. raise
  5. Img0ch::Plugin::BBS::Icon
      1. add_tag_on_bbs
      2. add_tag_on_read
      3. save
      4. from_bbs
      5. from_read
  6. Img0ch::Plugin::BBS::RSS
      1. generate_ver_10
      2. generate_ver_20
      3. 配信するレス数
  7. Img0ch::Plugin::BBS::Random774
      1. rewrite
  8. Img0ch::Plugin::BBS::Reaper
      1. work
      2. 回数の割合
      3. プーリングする最終書込時からの経過日数の基準
      4. プーリングするレス数の基準
      5. プーリングするスレッドの位置の基準
      6. プーリングする勢いの基準
      7. 書き込み不可能なスレッドをプーリングする
  9. Img0ch::Plugin::BBS::UTF8Dat
      1. sync
      2. remove
      3. repair
  10. Img0ch::Plugin::BBS::VIP
      1. rewrite
  11. Img0ch::Plugin::BBS::VT
      1. init
      2. filter
      3. create
      4. 仮想スレッドの作成を強制化する
  12. Img0ch::Plugin::Filter::Akismet
      1. check
  13. Img0ch::Plugin::Filter::BanASCII
      1. is_ascii_only
  14. Img0ch::Plugin::Filter::DNSBL
      1. check_by_bbq
      2. check_by_bbx
      3. check_by_dsbl
      4. by_rbl
      5. by_spamcop
      6. by_spamhaus
      7. by_blitzed
      8. by_empty
      9. by_spamlookup
  15. Img0ch::Plugin::Filter::Host
      1. check
  16. Img0ch::Plugin::Filter::IP
      1. check
  17. Img0ch::Plugin::Filter::JPOnly
      1. check
  18. Img0ch::Plugin::Filter::NGWord
      1. check
  19. Img0ch::Plugin::Filter::NGWord2
      1. check
  20. Img0ch::Plugin::Filter::NoLink
      1. check
  21. Img0ch::Plugin::Filter::NoMail
      1. check
  22. Img0ch::Plugin::Filter::URLWhiteList
      1. check
  23. Img0ch::Plugin::Filter::UnNaturalLink
      1. check
  24. Img0ch::Plugin::Rewrite::AutoLink
      1. from_bbs
      2. from_read
      3. from_mobile
  25. Img0ch::Plugin::Rewrite::Image
      1. from_bbs
      2. from_read
      3. from_mobile
  26. Img0ch::Plugin::Rewrite::Movie
      1. from_mobile
  27. Img0ch::Plugin::Rewrite::Quotation
      1. from_bbs
      2. from_read
      3. from_mobile
  28. Img0ch::Plugin::Rewrite::StreamService::EbiTV
      1. from_bbs
      2. from_read
  29. Img0ch::Plugin::Rewrite::StreamService::FlipClip
      1. from_bbs
      2. from_read
  30. Img0ch::Plugin::Rewrite::StreamService::GoogleVideo
      1. from_bbs
      2. from_read
  31. Img0ch::Plugin::Rewrite::StreamService::NicoVideo
      1. from_bbs
      2. from_read
  32. Img0ch::Plugin::Rewrite::StreamService::Watchme
      1. from_bbs
      2. from_read
  33. Img0ch::Plugin::Rewrite::StreamService::YouTube
      1. from_bbs
      2. from_read
  34. Img0ch::Plugin::Rewrite::Truncate
      1. from_bbs
      2. from_mobile
  35. Img0ch::Plugin::Upload::ClamAV
      1. check
  36. Img0ch::Plugin::Upload::Expires
      1. at_post_upload
      2. from_read
  37. Img0ch::Plugin::Upload::MIME
      1. check
  38. Img0ch::Plugin::Upload::NoNude
      1. check
  39. Img0ch::Plugin::Upload::Node
      1. save
      2. from_bbs
      3. from_read
  40. Img0ch::Plugin::Upload::Thumbnail
      1. create
      2. repair
  41. Img0ch::Plugin::Upload::XCSV
      1. generate
      2. repair
  42. プラグインの作成
    1. プラグインのパッケージ名
    2. プラグインが実行されるタイミング
      1. bbs.init
      2. mobile.init
      3. read.init
      4. bbs.filter
      5. bbs.upload.pre
      6. bbs.upload.post
      7. bbs.write.pre
      8. bbs.write.post
      9. bbs.rewrite
      10. read.rewrite
      11. mobile.rewrite
    3. インストーラの作成

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::FlowST

特殊スレッドを常時上げた状態にするためのプラグインです。

raise

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

Img0ch::Plugin::BBS::Icon

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

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 の 日本以外の投稿を禁止するの項目を参照してから有効にしてください。スクリプトのエラーが発生し、書き込みが出来なくなります。

この処理では先にリモートホストが .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::Filter::URLWhiteList

特定の URL 以外の URL が含まれる書き込みを拒否するプラグインです。URL を許可するには /_system/URL-whitelist.txt に以下のような書式で記述する必要があります。なお、正規表現を使うことは出来ません。

yahoo.co.jp
google.co.jp
sourceforge.jp/project/img0ch

これ以外に Server の値が自動的に入ります。/_system/URL-whitelist.txt が存在しない場合 Server の値以外の URL を含めることが出来なくなります。なお、このプラグインは全角文字を全角文字に変換してから チェックするため、全角文字で URL が貼られてもその URL を検出することが可能です。

check

上記の処理を行う関数です。なお、キャップの有無関係なくチェックされます。

Img0ch::Plugin::Filter::UnNaturalLink

aタグまたはBBコードの[URL]タグを持つリンクが含まれる書き込みを拒否するプラグインです。例えば以下のような書き込みが拒否対象になります。

<a href="http://localhost">foo</a>
[URL="http://localhost"]bar[/URL]

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 専用のリンクを作成するプラグインです。

※ 既にサービス自体がなくなっているため、3.1.6 以降廃止になりました。

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 専用のリンクを作成するプラグインです。

※ サービス停止されるため、3.1.6 以降廃止になりました。

from_bbs

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

from_read

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

Img0ch::Plugin::Rewrite::StreamService::NicoVideo

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

3.1.6 以降処理が変更され、動画情報を取得する代わりにクリックしてから動的に外部プレイヤーを生成するように変更されました。 また、nico.ms をリンク先に使うようにしています。

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 専用のリンクを作成するプラグインです。

3.1.6 以降処理が変更され、プレイヤーを事前に生成せず、代わりにクリックしてから動的に プレイヤーを生成するように変更されました。これは大量にリンクを作ることにより、 ブラウザクラッシャーになってしまうことに依ります。また、youtu.be をリンク先に使うようにしています。

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 を利用していることを明示するリンクを張り付ければ良いようです)

※ サービスが実質的に停止したため、 3.1.6 で廃止されました。

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

check

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

Img0ch::Plugin::Upload::Node

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

save

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

from_bbs

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

from_read

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

Img0ch::Plugin::Upload::Thumbnail

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

create

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

repair

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

Img0ch::Plugin::Upload::XCSV

アップロードされたファイルのインデックスを CSV として出力するプラグインです。これは read.html での image プラグインを利用するときにこのプラグインが出力するファイルが必要になります。ちなみに名前の先頭が X になっているのはプラグインの処理順序の関係で最後に処理されるように指定する為です。

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

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 から「プラグインの新規検索」を行うと自動的にプラグインが追加されます。