<?xml version="1.0" encoding="utf-8" ?>
<rdf:RDF
  xmlns="http://purl.org/rss/1.0/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
 >

  <channel rdf:about="http://sourceforge.jp/projects/img0ch/wiki/!feeds/diff">
    <title>Updates of img0ch Wiki</title>
    <link>http://sourceforge.jp/projects/img0ch/wiki/!feeds/diff</link>
    <description>
      SourceForge.jp Wiki page updates for img0ch project.    </description>
        <dc:date>2010-05-04T23:09:57+09:00</dc:date>
        <items>
      <rdf:Seq>
                <rdf:li rdf:resource="http://sourceforge.jp/projects/img0ch/wiki/Usage" />
                <rdf:li rdf:resource="http://sourceforge.jp/projects/img0ch/wiki/Externals" />
                <rdf:li rdf:resource="http://sourceforge.jp/projects/img0ch/wiki/Tips" />
                <rdf:li rdf:resource="http://sourceforge.jp/projects/img0ch/wiki/Install" />
                <rdf:li rdf:resource="http://sourceforge.jp/projects/img0ch/wiki/API" />
                <rdf:li rdf:resource="http://sourceforge.jp/projects/img0ch/wiki/Plugins" />
                <rdf:li rdf:resource="http://sourceforge.jp/projects/img0ch/wiki/Plugins" />
                <rdf:li rdf:resource="http://sourceforge.jp/projects/img0ch/wiki/Tips" />
                <rdf:li rdf:resource="http://sourceforge.jp/projects/img0ch/wiki/FrontPage" />
                <rdf:li rdf:resource="http://sourceforge.jp/projects/img0ch/wiki/Usage" />
              </rdf:Seq>
    </items>
  </channel>

    <item rdf:about="http://sourceforge.jp/projects/img0ch/wiki/Usage">
    <title>Usage</title>
    <link>http://sourceforge.jp/projects/img0ch/wiki/Usage</link>
    <dc:identifier>Usage</dc:identifier>
    <dc:date>2010-05-04T23:09:57+09:00</dc:date>
          <description>
      <![CDATA[実は重要なことを書き忘れていたような気がする (by hikarin)
]]>
    </description>
    <content:encoded>
      <![CDATA[<p>実は重要なことを書き忘れていたような気がする (by hikarin)</p><pre>@@ -11,9 +11,9 @@
   3. エラーが無ければそのまま投稿が反映され、レス中にファイルのURLまたは画像が表示されるようになる
 
 = メール経由による画像の添付投稿 =
 
-メール経由の投稿はブラウザからのアップロードが出来ない携帯電話から投稿できるようにするためにあります。よって、携帯電話以外のメールアドレスは拒否されます。
+メール経由の投稿はブラウザからのアップロードが出来ない携帯電話から投稿できるようにするためにあります。よって、携帯電話以外のメールアドレスは拒否されます。また、'''「携帯からﾒｰﾙで投稿する」のリンクが無い場合はメール投稿は出来ません'''。
 
   1. r.cgiから投稿したいスレッドを読み込み、「携帯からﾒｰﾙで投稿する」をクリックする
   2. 「本文をここに入れてください」を削除し、本文を書いてファイルを添付して送信する
   3. メールを送信し終わったら「更」をクリックしてメールを取り込む
</pre>]]>
    </content:encoded>
      </item>
    <item rdf:about="http://sourceforge.jp/projects/img0ch/wiki/Externals">
    <title>Externals</title>
    <link>http://sourceforge.jp/projects/img0ch/wiki/Externals</link>
    <dc:identifier>Externals</dc:identifier>
    <dc:date>2010-01-31T23:43:21+09:00</dc:date>
          <description>
      <![CDATA[開発資料のリンクをつけた (by hikarin)
]]>
    </description>
    <content:encoded>
      <![CDATA[<p>開発資料のリンクをつけた (by hikarin)</p><pre>@@ -1,8 +1,12 @@
 = 専用ブラウザ開発者向け情報 =
 
 2ch 互換を謳っているので、スクリプト名、SETTING.TXT や subject.txt やスレッドのログ (dat) も可能な限り同じ形式をとっています。
 ただし画像添付が可能な場合若干追加する形で変化します。ここでは主に画像添付が可能なケースでどのような情報が入るかを開示しています。
+
+2ch に関する開発資料はここを参照してください。
+ * [http://www.monazilla.org/index.php?e=192 monazilla.org::2ちゃんねる開発資料]
+ * [http://age.s22.xrea.com/talk2ch/ と〜く２ちゃんねる] (こちらは古い)
 
 [[PageOutline]]
 
 = 掲示板設定 (SETTING.TXT) =
</pre>]]>
    </content:encoded>
      </item>
    <item rdf:about="http://sourceforge.jp/projects/img0ch/wiki/Tips">
    <title>Tips</title>
    <link>http://sourceforge.jp/projects/img0ch/wiki/Tips</link>
    <dc:identifier>Tips</dc:identifier>
    <dc:date>2010-01-31T23:39:41+09:00</dc:date>
          <description>
      <![CDATA[互換掲示板スクリプトを配布しているサイトを載せた (by hikarin)
]]>
    </description>
    <content:encoded>
      <![CDATA[<p>互換掲示板スクリプトを配布しているサイトを載せた (by hikarin)</p><pre>@@ -28,4 +28,9 @@
      my $bbs    = $iFIP->{_bbs};
      my ( $i1, $i2, $i3, $i4 ) = split '\.', $ip;
 }}}
 
+== img0ch 以外の 2ch 互換掲示板を作るスクリプト ==
+
+ * [http://0ch.mine.nu] img0ch はここからフォークしました
+ * [http://mewlog.sakura.ne.jp/scripts/] 2ch互換スクリプト] 様々なスクリプト (流出スクリプト、17氏スクリプト、Global Note Script) が保管されています
+ * !http://cradle.s34.xrea.com/maybe/ <= ここを2ch専用ブラウザで登録して閲覧してみれば lv3 スクリプトが再配布されているサイトが見つかります。ただし、現在もスクリプトが配布されているかは不明
</pre>]]>
    </content:encoded>
      </item>
    <item rdf:about="http://sourceforge.jp/projects/img0ch/wiki/Install">
    <title>Install</title>
    <link>http://sourceforge.jp/projects/img0ch/wiki/Install</link>
    <dc:identifier>Install</dc:identifier>
    <dc:date>2010-01-31T23:28:15+09:00</dc:date>
          <description>
      <![CDATA[カテゴリ分けしてみた (by hikarin)
]]>
    </description>
    <content:encoded>
      <![CDATA[<p>カテゴリ分けしてみた (by hikarin)</p><pre>@@ -24,19 +24,28 @@
  * [Install_Change_Permissions パーミッションの設定]
 
 = 特定の機能を利用するために =
 
+== 画像表示あるいは投稿 ==
+ * [Install_Mail_Post メール経由によるファイルのアップロード機能を有効にする]
  * [Install_Thumbnail サムネイル生成を有効にする]
- * [Install_VT 仮想スレッドを有効にする]
+ * [Install_Lightbox 画像表示に LightBox を使用する]
+
+== スレッド表示 ==
+ * [Install_Icon アイコン機能を有効にする]
  * [Install_tDiary_Themes tDiary のテーマを使用する]
  * [Install_Read_Html read.cgi の代替に read.html を使用する]
- * [Install_Lightbox 画像表示に LightBox を使用する]
- * [Install_Google_Gears Google Gears を使ってファイルの転送負荷を減らす]
- * [Install_Mail_Post メール経由によるファイルのアップロード機能を有効にする]
+
+== スパム対策 ==
  * [Install_Jponly 日本以外の投稿を禁止させる]
- * [Install_Vip_Quality VIP クオリティ機能を有効にする]
- * [Install_Oekaki_Applet お絵描きアプレットでお絵描き機能を有効にする]
- * [Install_Icon アイコン機能を有効にする]
+
+== 高速化 ==
  * [Install_Mod_Perl mod_perl でスクリプトを高速化させる]
  * [Install_Fast_CGI FastCGI でスクリプトを高速化させる]
  * [Install_SpeedyCGI SpeedyCGI でスクリプトを高速化させる]
  * [Install_PSGI PSGI でスクリプトを高速化させる]
+
+== その他 ==
+ * [Install_Oekaki_Applet お絵描きアプレットでお絵描き機能を有効にする]
+ * [Install_VT 仮想スレッドを有効にする]
+ * [Install_Vip_Quality VIP クオリティ機能を有効にする]
+
</pre>]]>
    </content:encoded>
      </item>
    <item rdf:about="http://sourceforge.jp/projects/img0ch/wiki/API">
    <title>API</title>
    <link>http://sourceforge.jp/projects/img0ch/wiki/API</link>
    <dc:identifier>API</dc:identifier>
    <dc:date>2010-01-24T01:41:45+09:00</dc:date>
          <description>
      <![CDATA[ (by hikarin)
]]>
    </description>
    <content:encoded>
      <![CDATA[<p> (by hikarin)</p><pre>@@ -1,7 +1,7 @@
 [[PageOutline]]
 
-== bbs.cgi ==
+= bbs.cgi =
 
 パラメータに js=1 または xml=1 をつけるとそれぞれ JSON または XML 形式で返ってきます。
 成功または失敗したか判断をするには ok の値が 1 であるかどうかを確認すればよいです。
 
@@ -37,13 +37,12 @@
   <ok>0</ok>
 </response>
 }}}
 
-== upload.csv ==
+= upload.csv =
 
-アップロードされたファイル情報を収めたCSVファイル。サムネイル表示可能数 = 行数のため、
-全てのアップロードされたファイル情報を取得することは出来無い。また、拡張である
-Img0ch::Plugin::Upload::XCSV が有効な掲示板に限るため、あまり有用ではない。
+アップロードされたファイル情報を収めたCSVファイル。これまではプラグインの有無に依存していたが、
+3.1.6 以降は常時出力されるように変更され、全てのアップロードされたファイルの情報を取得出来るようになった。
 
  * パス
 {{{
 /[掲示板ディレクトリ]/img/[スレッドキー]/upload.csv
@@ -53,136 +52,120 @@
 {{{ code csv
 [レス番号],[拡張子],[元画像の幅],[元画像の高さ],[ファイルのMD5値],[サムネイルの幅],[サムネイルの高さ]
 }}}
 
-== 現在実装を予定している API (策定中) ==
+= Zeromin2 API =
 
- * REST 形式
- * 成功か失敗かは HTTP のステータスコードを見る必要がある
-   * 200 (更新系は 201) が成功
-   * クライアントのリクエストに問題がある場合は 4xx 系を返す
- * メソッド名はパラメータ名 _method で代用可能
- * #{variable} は変数を表す
-   * #{bbs} は掲示板のディレクトリ
-   * #{thread} はスレッドキー
-   * #{resno} はレス番号
-   * #{plugin} はプラグイン ID
+3.1.6 から既に実装している JSON の API を元に拡張する形で公開しました。
+ただしドキュメントは現状まだほとんど整備されていません。
 
-=== GET /api/plugins ===
-プラグイン一覧を取得する
+ * 必要なパラメータ
+   * class
+   * method
+   * js (常に 1 を指定する)
+ * 初回ログイン時のみ
+   * user
+   * pass
 
-=== PUT /api/plugin/#{plugin} ===
-プラグインの有効無効をシステムレベルで設定する
+例えば呼び出したい処理を bbs.load_threads とするなら、class に bbs を、method に load_threads を指定する。
 
-=== PUT /api/banner/main ===
-掲示板のバナーを更新する
+== 共通事項 ==
+ * データフォーマットは JSON のみ
+ * セッション式なため、zeromin_session という名前の持つ cookie を取得してログイン中はこれを使うこと
+ * 何かしら影響の与えるもののある操作については token が必要。これが無いと処理に失敗する
+   * 例えば更新あるいは削除関連がそれに該当する。取得だけであれば token は必要ない
+   * 取得処理も含め、token は毎回異なる値が生成される
 
-=== PUT /api/banner/sub ===
-掲示板のサブバナーを更新する
+=== リクエスト成功時 ===
+ok が 1 であるかを確認する。また、ログインが成功しているかは loginOK が 1 であるかを確認する。
+version は Zeromin2 の API のバージョンであり、エラー発生時でも出力される。
 
-=== GET /api/#{bbs}/pooled ===
-プール済みのスレッド一覧を取得する
+{{{ code javascript
+{
+  ok => 1,
+  loginOK => 1,
+  data => "何かしらのデータ",
+  token => "ABCDEF",
+  version => 1
+}
+}}}
 
-=== GET /api/#{bbs}/archived ===
-過去ログに変換済みのスレッド一覧を取得する
+=== エラー発生時 ===
+ok が 0 であるかを確認する。エラー内容は error の値から取得可能。
 
-=== GET /api/#{bbs}/setting/main ===
-主要設定を取得する
+{{{ code javascript
+{
+  ok => 0,
+  loginOK => 0,
+  error => "例外の内容",
+  version => 1
+}
+}}}
 
-=== GET /api/#{bbs}/setting/design ===
-デザイン設定を取得する
+== bbs.load_threads ==
+生存中のスレッドを取得する
 
-=== GET /api/#{bbs}/setting/restriction ===
-制限設定を取得する
+== bbs.load_special_threads ==
+特殊なスレッド(スレッドキーが924で始まるもの)を取得する
 
-=== GET /api/#{bbs}/setting/others
-その他の設定を取得する
+== bbs.load_pooled_threads ==
+プール(DAT落ち)されたスレッドを取得する
 
-=== GET /api/#{bbs}/setting/img0ch
-img0ch 特有の設定を取得する
+== bbs.load_archived_threads ==
+過去ログスレッドを取得する
 
-=== GET /api/#{bbs}/errors ===
-エラーログを取得する
+== bbs.remove_thread ==
+指定されたスレッドを削除する
 
-=== GET /api/#{bbs}/hosts ===
-スレッドログを取得する
+== bbs.move_thread ==
+指定されたスレッドを移転する
 
-=== GET /api/#{bbs}/plugins ===
-プラグイン一覧を取得する
+== bbs.stop_thread ==
+指定されたスレッドを停止する
 
-=== PUT /api/#{bbs}/header ===
-掲示板のヘッダーを更新する
+== bbs.restart_thread ==
+指定されたスレッドを再開する
 
-=== PUT /api/#{bbs}/meta ===
-掲示板のメタデータを更新する
+== bbs.remove_res ==
+指定されたスレッドのレスを通常削除する
 
-=== PUT /api/#{bbs}/footer ===
-掲示板のフッターを更新する
+== bbs.erase_res ==
+指定されたスレッドのレスを透明削除する
 
-=== PUT /api/#{bbs}/plugins/#{plugin} ===
-プラグインの有効無効を掲示板レベルで設定する
+== bbs.remove_file ==
+指定されたスレッドのレスに添付されたファイルのみを削除する
 
-=== GET /api/#{bbs}/#{thread}/setting ===
-仮想スレッドの設定を取得する
+== bbs.freeze_file ==
+指定されたスレッドのレスに添付されたファイルを凍結(ダウンロード不可)する
 
-=== GET /api/#{bbs}/#{thread}/access ===
-仮想スレッドのアクセス設定を取得する
+== bbs.release_file ==
+指定されたスレッドのレスに添付されたファイルを開放(ダウンロード可能)する
 
-=== GET /api/#{bbs}/#{thread}/ngword ===
-仮想スレッドのNGワード設定を取得する
+== bbs.pool_thread ==
+指定されたスレッドをプーリングする
 
-=== GET /api/#{bbs}/#{thread/tags ===
-タグ一覧を取得する
+== bbs.restore_pool ==
+指定されたプールスレッドを復帰させる
 
-=== GET /api/#{bbs}/#{thread}/ngtags ===
-NGタグ一覧を取得する
+== bbs.remove_pool ==
+指定されたプールスレッドを削除する
 
-=== PUT /api/#{bbs}/#{thread}/ngtags ===
-NGタグを更新する
+== bbs.create_archive ==
+指定されたプールスレッドを過去ログに変換する
 
-=== PUT /api/#{bbs}/#{thread}/stop ===
-スレッドを停止する
+== bbs.update_archive ==
+過去ログ一覧を更新する
 
-=== PUT /api/#{bbs}/#{thread}/restart ===
-スレッドを再開する
+== bbs.remove_archive ==
+指定された過去ログを削除する
 
-=== PUT /api/#{bbs}/#{thread}/setting ===
-仮想スレッドの設定を更新する
+== setting.load ==
+掲示板の設定を非公開のものも含んで全て取得する
 
-=== PUT /api/#{bbs}/#{thread}/access ===
-仮想スレッドのアクセス設定を更新する
-
-=== PUT /api/#{bbs}/#{thread}/ngword ===
-仮想スレッドのNGワード設定を更新する
-
-=== DELETE /api/#{bbs}/#{thread} ===
-指定されたスレッドを削除する
-
-=== PUT /api/#{bbs}/#{thread}/#{resno} ===
-指定されたレスを編集する
-
-=== PUT /api/#{bbs}/#{thread}/#{resno}/freeze ===
-指定されたレスに添付されたファイルを凍結させる
-
-=== PUT /api/#{bbs}/#{thread}/#{resno}/release ===
-指定されたレスに添付されたファイルを復活させる
-
-=== DELETE /api/#{bbs}/#{thread}/#{resno} ===
-指定されたレスを通常削除する
-
-=== DELETE /api/#{bbs}/#{thread}/#{resno}/erase ===
-指定されたレスを透明削除する
-
-=== DELETE /api/#{bbs}/#{thread}/#{resno}/fileonly ===
-指定されたレスに添付されたファイルのみを削除する
-
-=== DELETE /api/#{bbs}/#{thread}/pool ===
-指定されたプールスレッドを削除する
-
-=== DELETE /api/#{bbs}/#{thread}/archive ===
-指定された過去ログを削除する
+== system.load ==
+システム情報を取得する
 
-=== 実装戦略 ===
+== system.reload_modules ==
+メモリ上のモジュールを全て読み直す(mod_perlで有効)
 
-これらは Zeromin2::App::* にあるものを土台とする。Zeromin2::App のふりをする
-モジュール (Zeromin2::API) を作って入力と出力のみを加工する。また、
-セッションを作成するAPIを実装する予定は無いので、ユーザ名とパスワードは毎回要求する。
+== system.test_connect_pop3 ==
+POP3 サーバの接続テストを実行する
</pre>]]>
    </content:encoded>
      </item>
    <item rdf:about="http://sourceforge.jp/projects/img0ch/wiki/Plugins">
    <title>Plugins</title>
    <link>http://sourceforge.jp/projects/img0ch/wiki/Plugins</link>
    <dc:identifier>Plugins</dc:identifier>
    <dc:date>2010-01-23T22:38:32+09:00</dc:date>
          <description>
      <![CDATA[URLWhiteList に ! は必要なかった (by hikarin)
]]>
    </description>
    <content:encoded>
      <![CDATA[<p>URLWhiteList に ! は必要なかった (by hikarin)</p><pre>@@ -442,9 +442,9 @@
 === check ===
 
 上記の処理を行う関数です。「投稿時の量にかかわる制限の解除」の権限を持つキャップグループに所属するキャップをつけた人の書き込みはエラー無しで通過します。
 
-= Img0ch::Plugin::Filter::!URLWhiteList =
+= Img0ch::Plugin::Filter::URLWhiteList =
 
 特定の URL 以外の URL が含まれる書き込みを拒否するプラグインです。URL を許可するには
 /_system/URL-whitelist.txt に以下のような書式で記述する必要があります。なお、正規表現を使うことは出来ません。
 
</pre>]]>
    </content:encoded>
      </item>
    <item rdf:about="http://sourceforge.jp/projects/img0ch/wiki/Plugins">
    <title>Plugins</title>
    <link>http://sourceforge.jp/projects/img0ch/wiki/Plugins</link>
    <dc:identifier>Plugins</dc:identifier>
    <dc:date>2010-01-23T22:36:51+09:00</dc:date>
          <description>
      <![CDATA[3.1.6 以降のプラグイン情報を書いた (by hikarin)
]]>
    </description>
    <content:encoded>
      <![CDATA[<p>3.1.6 以降のプラグイン情報を書いた (by hikarin)</p><pre>@@ -441,8 +441,27 @@
 
 === 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]タグを持つリンクが含まれる書き込みを拒否するプラグインです。例えば以下のような書き込みが拒否対象になります。
@@ -520,8 +539,10 @@
 
 = Img0ch::Plugin::Rewrite::!StreamService::EbiTV =
 
 本文に ebitv.jp のリンクがあれば ebitv.jp 専用のリンクを作成するプラグインです。
+
+※ 既にサービス自体がなくなっているため、3.1.6 以降廃止になりました。
 
 === from_bbs ===
 
 上記の処理を index.html 生成時に行う関数です。
@@ -544,8 +565,25 @@
 
 = 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 生成時に行う関数です。
@@ -553,9 +591,9 @@
 === from_read ===
 
 上記の処理を read.cgi による html 生成時に行う関数です。
 
-= Img0ch::Plugin::Rewrite::!StreamService::!Watchme =
+= Img0ch::Plugin::Rewrite::!StreamService::Watchme =
 
 本文にwatchme.tvのリンクがあれば watchme.tv専用のリンクを作成するプラグインです。
 
 === from_bbs ===
@@ -568,8 +606,12 @@
 
 = Img0ch::Plugin::Rewrite::!StreamService::!YouTube =
 
 本文に youtube.com のリンクがあれば youtube.com 専用のリンクを作成するプラグインです。
+
+3.1.6 以降処理が変更され、プレイヤーを事前に生成せず、代わりにクリックしてから動的に
+プレイヤーを生成するように変更されました。これは大量にリンクを作ることにより、
+ブラウザクラッシャーになってしまうことに依ります。また、youtu.be をリンク先に使うようにしています。
 
 === from_bbs ===
 
 上記の処理を index.html 生成時に行う関数です。
@@ -636,8 +678,10 @@
 
 = Img0ch::Plugin::Upload::!NoNude =
 
 裸体の画像を排除するプラグインです。 TryNT の API を利用しますので、有効にする際は必ず利用規程を参照してください。 (以下の URL から TryNT を利用していることを明示するリンクを張り付ければ良いようです)
+
+※ サービスが実質的に停止したため、 3.1.6 で廃止されました。
 
 http://www.trynt.com/attribution/
 
 === check ===
</pre>]]>
    </content:encoded>
      </item>
    <item rdf:about="http://sourceforge.jp/projects/img0ch/wiki/Tips">
    <title>Tips</title>
    <link>http://sourceforge.jp/projects/img0ch/wiki/Tips</link>
    <dc:identifier>Tips</dc:identifier>
    <dc:date>2010-01-17T18:51:26+09:00</dc:date>
          <description>
      <![CDATA[ (by hikarin)
]]>
    </description>
    <content:encoded>
      <![CDATA[<p> (by hikarin)</p><pre>@@ -1 +1,31 @@
+[[PageOutline]]
+
+== PCSV を弾く処理 ==
+ezweb の PCSV は何故か端末 ID をもらうことが出来ないのでいっそのこと全て弾くという大胆な処理を行うようなコード。
+正直入れるかどうかでまだ決まっていないので、暫定的にここにメモります。
+
+{{{ code diff
+Index: test/img0ch/3/Img0ch/Filter/IP.pm
+===================================================================
+--- test/img0ch/3/Img0ch/Filter/IP.pm (revision 1901)
++++ test/img0ch/3/Img0ch/Filter/IP.pm (working copy)
+@@ -35,6 +35,17 @@
+
+ sub write_ok {
+     my ( $iFIP, $ip ) = @_;
++
++    # PCSV を一斉に弾く処理
++    my @pcsv_ip = (
++        '222.15.68.192/26',   '59.135.39.128/27',
++        '118.152.214.160/27', '118.152.214.128/27',
++        '222.1.136.96/27',    '222.1.136.64/27',
++        '59.128.128.0/20',
++    );
++    defined $Net::CIDR::Lite::VERSION or require Net::CIDR::Lite;
++    Net::CIDR::Lite->new(@pcsv_ip)->find($ip) and return 0;
++
+     my $iRepos = $iFIP->{_rs};
+     my $bbs    = $iFIP->{_bbs};
+     my ( $i1, $i2, $i3, $i4 ) = split '\.', $ip;
+}}}
 
</pre>]]>
    </content:encoded>
      </item>
    <item rdf:about="http://sourceforge.jp/projects/img0ch/wiki/FrontPage">
    <title>FrontPage</title>
    <link>http://sourceforge.jp/projects/img0ch/wiki/FrontPage</link>
    <dc:identifier>FrontPage</dc:identifier>
    <dc:date>2010-01-17T18:45:36+09:00</dc:date>
          <description>
      <![CDATA[ (by hikarin)
]]>
    </description>
    <content:encoded>
      <![CDATA[<p> (by hikarin)</p><pre>@@ -23,5 +23,6 @@
   * API について知りたい
     * => [API img0ch が持つ API]
   * 専用ブラウザ開発者向けの情報
     * => [Externals 専用ブラウザ開発者向け情報]
-
+  * 開発メモ
+    * => [Tips 開発メモ]
</pre>]]>
    </content:encoded>
      </item>
    <item rdf:about="http://sourceforge.jp/projects/img0ch/wiki/Usage">
    <title>Usage</title>
    <link>http://sourceforge.jp/projects/img0ch/wiki/Usage</link>
    <dc:identifier>Usage</dc:identifier>
    <dc:date>2010-01-11T01:07:59+09:00</dc:date>
          <description>
      <![CDATA[ (by hikarin)
]]>
    </description>
    <content:encoded>
      <![CDATA[<p> (by hikarin)</p><pre>@@ -1,4 +1,8 @@
+= img0ch で作成された掲示板の使い方 =
+
+[[PageOutline]]
+
 = 画像(及びファイル)の添付投稿 =
 
 2chに対して作られた専用ブラウザである [http://v2c.s50.xrea.com/ V2C] ([http://v2c.s50.xrea.com/manual/userdefinedboard.html 詳細])、[http://koreawatcher.at.infoseek.co.jp/janexeno.htm JaneXeno] ([http://koreawatcher.at.infoseek.co.jp/janenida/history.htm 詳細:Nida050911を参照])、[http://www.geocities.jp/jview2000/ JaneView] ([http://www.geocities.jp/nanasi_san_exe/online_help/ref-name/imageservers.html 詳細]) は画像投稿に対応しています (それ以外は未対応)。前者2つは基本的に板を追加するだけで対応可能です。
 
@@ -42,8 +46,36 @@
 
 この場合ニュース、実況、速報がタグとして設定されます。
 
 検索アプリであるimg0ch-sf.cgiでいずれかのタグを単語検索すると上記のレスに添付された画像またはファイル及びそのタグで設定された関連する画像またはファイルが検索結果として表示されます。
+
+= read.cgi のパラメータ =
+
+img0ch の read.cgi はかなり細かいパラメータでも受け付けます。ここでは次のパラメータを与えた場合どのように動作が変化するかを示す表です。
+ここではスレッドのレス数が 1000 あるケースでレスの表示範囲を決定しています。
+
+|| パラメータ || レスの表示範囲 ||
+|| /l10 || 1, 990-1000 ||
+|| /l10n || 990-1000 ||
+|| /330-455 || 1, 330-455 ||
+|| /639-424 || 1, 424-639 ||
+|| /864-797n || 797-864 ||
+|| /608 || 608 ||
+|| /844n || 844 ||
+|| /6- || 1, 6-1000 ||
+|| /29-n || 29-1000 ||
+|| /-521 || 1-521 ||
+|| /-784n || 1-784 ||
+|| /67731-68855 || 1, 1000 ||
+|| /1+6+9+14+19 || 1, 6, 9, 14, 19 ||
+|| /1+5+5+10 || 1, 5, 10 ||
+|| /1,4,7,11,15 || 1, 4, 7, 11, 15 ||
+|| /8,8,20,25 || 1, 8, 20, 25 ||
+|| /9,33-51 || 1, 9, 33-51 ||
+|| /390,471-415n || 390, 415-471 ||
+|| /62,853- || 1, 62, 853-1000 ||
+|| /533,751-n || 533, 751-1000 ||
+|| /922,-784n || 1-784,922 ||
 
 = 仮想スレッドの作成 =
 
 スレッド作成時に本文中に@VT:から始まるキーワードを用いて仮想スレッドを作成することが出来ます。仮想スレッドの作成に対応しているかどうかは板によって異なりますのでその板の管理人に聞いてください。下記の例ではユーザ名をfoo、パスワードをbarにして仮想スレッドを作成します。
</pre>]]>
    </content:encoded>
      </item>
  </rdf:RDF>

