img0ch

PageLastUpdate:2007-08-11/today: - /yesterday: -
ファイルアップロード機能付きの2ch型掲示板。
ロリポップで設置中。とりあえず動いた。これから煮詰める。


なんかドキュメントが不親切

  • とりあえずconfigの設定で詰まる。絶対パスということに気づくのに2時間ぐらいかかった。
  • スキンの切り替えの仕方とかもマニュアルだと不備。うーん。
  • 2chの管理について知っている前提だ・・・0chの方を見てきたほうがいいかな。でもだいぶ独自になってるかも。
0ch 初心者講座 http://jspace.s26.xrea.com/

ロリポップ鯖においてみた構造

[701] 親ディレクトリ(/)
    ┗ [700] repos
    ┗ [700] session
    ┗ [755] img0ch
       ┣ [755] _system
       ┣ [755] _template
       ┣ [755] static
       ┣ [755] test
       ┃  ┣ [705] bbs.cgi
       ┃  ┣ [705] r.cgit
       ┃  ┣ [705] read.cgi
       ┃  ┣ [705] zeromin2.cgi
       ┃  ┗ [604] ...
       ┣ [755] 掲示板1 勝手に作られてパーミッションは755になった。
       ┣ [755] 掲示板2 勝手に作られてパーミッションは755になった。
       ┗ ...
とりあえず動いた。まだ煮詰めていないから、これだと緩いかも。

img0ch-config.cgiの設定

RepositoryRoot = /home/sites/lolipop.jp/users/xxx.jp-yyy/web/repos
Server = http://yyy.xxx.jp/img0ch/ スラッシュあるとダメっぽい
Server = http://yyy.xxx.jp/img0ch
BBSPath = ..
Static = ../static
SystemPath = ../_system
TemplatePath = ../_template

[zeromin2]
session_dir = /home/sites/lolipop.jp/users/xxx.jp-yyy/web/session



  • 一回認証すると管理者の名前が変えられなくなるから最初に変える。投稿前ならreposの中をクリアすることで初期状態に戻る。
投稿した後は試してないので不明。


typeテンプレートの使用方法

typeテンプレートはtDiary互換のXHTMLを出力するテンプレートです。
若干の作業が必要になるため、インストール直後からtypeテンプレートを利用することは出来ません。以下の手順を踏まえる必要があります。
[編集]STEP.1
http://www.tdiary.org のダウンロードからtdiary-full-x.x.x.tar.gzを入手します(x.x.xはバージョン番号)。
[編集]STEP.2
解凍したディレクトリの中のthemeディレクトリの中のファイル及びディレクトリを/static/tdiaryにコピーします。
[編集]STEP.3
掲示板設定から「使用するテンプレート名」(BBS_TEMPLATE)に「type」を指定します。
[編集]STEP.4
掲示板設定から「typeに適用するテーマ名(BBS_TEMPLATEをtypeにする必要があります。)」
(BBS_TYPE_TEMPLATE)の値に/static/tdiary内にある好きなテンプレート名
(ディレクトリ名)を指定します。指定されない場合はdefaultになります。
[編集]STEP.5
インデックスを更新するとBBS_TYPE_TEMPLATEに応じたデザインのHTMLが出力されます。
tdiaryのテーマによってはデザイン構成が崩れることがあります。
themaディレクトリごとアップロードして反映されなくてはまった。
正解は「themaディレクトリの中の各ディレクトリをtdiaryの下にアップロードする」
テーマサンプル http://tdiary2.tdiary.net/sample.rhtml

画像アップロードできるようにするには

掲示板管理 > インデックス > 掲示板設定 > アップロード設定

掲示板の形態 (BBS_MODE) を picture にする

んー、エラーが出てしまいますよ。
img0ch I/O Exception at /_system/repng2jpeg :
Trace begun at img0ch/3/Img0ch/Plugin/Upload/Thumbnail.pm line 48
Img0ch::Plugin::Upload::Thumbnail::create('Img0ch::App::BBS=HASH(0x8146d88)', 46) called at img0ch/3/Img0ch/Plugin.pm line 134
Img0ch::Plugin::do('Img0ch::Plugin=HASH(0x8143cc4)', 'bbs.upload.post', 'Img0ch::App::BBS=HASH(0x8146d88)') called at img0ch/3/Img0ch/App/BBS.pm line 1058
Img0ch::App::BBS::_plugin('Img0ch::App::BBS=HASH(0x8146d88)', 'Img0ch::BBS=HASH(0x806ad44)', 'Img0ch::Config=HASH(0x80667a4)', 'bbs.upload.post', 'DisableBBSPostUploadPlugin') called at img0ch/3/Img0ch/App/BBS.pm line 1117
Img0ch::App::BBS::_upload('Img0ch::App::BBS=HASH(0x8146d88)', 8, 1175789831, 'Img0ch::BBS=HASH(0x806ad44)', 'Img0ch::Config=HASH(0x80667a4)', 'Img0ch::Request=HASH(0x81c715c)', 'Img0ch::Setting=HASH(0x8143a90)') called at img0ch/3/Img0ch/App/BBS.pm line 512
Img0ch::App::BBS::post('Img0ch::App::BBS=HASH(0x8146d88)') called at img0ch/3/Img0ch/App/BBS.pm line 88

http://hikarin.jp/com/devel/
で聞いてみる。
repng2jpegが入っていないまたは実行出来ないとしてエラーが発生しているようです。
repng2jpegを使わないのであればImageHandlerをPerlMagickに変更する手がありますが、
そうで無い場合はrepng2jpegが/_system/ディレクトリに入っており、バイナリが適切であり、
かつ実行可能であるかを確認してください。これはrepng2jpegのcheck.cgiで確認可能です。
とのこと。これからテスト。

まずさくっとやってみたら
img0ch I/O Exception at /_system/repng2jpeg :
Trace begun at img0ch/3/Img0ch/Plugin/Upload/Thumbnail.pm line 52
...以下同文 lineは48から52に変わったけど?
リトライ。

結局config.htmlに書かれている
repng2jpeg
repng2jpegを利用するにはrepng2jpegをSystemPathに配置し、なおかつ実行可能にする必要があります。 repng2jpegはhttp://sugachan.dip.jp/download/komono.php で入手可能です。
移植性が高く、サムネイルの画質が優れていますが、open()関数のパイプを経由してサムネイルを作成するため、セキュリティ的なリスクが他に比べると大きい問題があります。
セキュリティリスクが気になったので、PerlMagicを選択することに。img0ch-config.cgiに
ImageHandler = PerlMagick
の行を追加したらうまくいきました。

cyclamen BBSからdatへの変換ツールを作成しよう

移行準備開始。できたら公開するかな。
datの仕様 http://info.2ch.net/wiki/pukiwiki.php?monazilla%2Fdat%A4%CE%BB%C5%CD%CD

1 名前
2 E-mail
3 日付
4 本文
5 タイトル

1.インポート
2.lognoとresnoを分割
3.resno/logno順に並べ替える
4.resnoが0ならタイトルセット
5.0でなければレスアンカー生成[>>lesno]して+タイトル+改行+本文

過去ログの移行
img0chでの画像upload
スキン対応
サイドバーで本当にいいの?

cyclamenから2ch形式datへの変換ツール作成中

ツリーのソートアルゴリズムを考えてみる。常套手段があるんだろうけど、とりあえずこんな感じで。
各行は[ID]と[親ID]を持つ。[ID]がキー。
[ID]1からスタートして、自分の親IDと同じ親IDかIDを持つ行まで順位を上げる。
注意事項:親IDが0の記事がRootだけど、アルゴリズム上は自分と同じ値を入れといたほうがラク。
添付ファイルはどこに保存すりゃいいのよ。

そうかー。親子のツリーのソートは、通常のソートアルゴリズムじゃなくてコレクションでまさに親子のツリーを作ればいいのか。
再帰的に読み込む、と。ノード系の処理を流用できないかな・・・。
や、そこまでやらないでも、自分自身には親ツリー情報をもてるから上からループしてくし
ID PID TREE
1 1 \
2 2 \
3 1 \+1\
4 2 \+2\
5 3 \1\+3\
ってつくれるや。で、あとからTREEでSORTしてやればいいのか。
だけど1000記事で最悪4000字×1000行=8MB 馬鹿ルーチンだ (゚∇゚ ;)
マジメに再帰処理でやるかw

2007/04/22 骨格は完成

上のバカ案は捨てて、マジメに自分自身をプロパティにコレクションとして持つLogNodeクラスを自作して対応。
読み込みと吐き出しまではオーケー。あとは
  • 文字コード 2007/04/22終了
  • レス記号 2007/04/22終了
  • 添付ファイルへのリンク コレがダメだ
  • ファイル名・・・どうしよう。
  • ログ中に埋め込まれてしまったリンクタグをはずさないといけないようだ

2007/04/30

なんかcyclamenがアンダースコアを_に置き換える処理をやっていて、これが「ダ」「雲」「点」などの2バイト目が&とマッチする文字まで全部置き換えてしまっている。
おかげでVB.netのEncoding周りの便利な機能が使えない。やむなくバイナリで読み出してバイト配列に対してパターンマッチをかけて置き換えるという強攻策にw
おかげさまでバイト配列とか使い方を覚えたけど、原因究明から研究・実装まで丸一日近くかかった。

バージョンの違いについて

2007/05/11 追記
readmeフォルダの中にversion.htmlがあるのに気がついた。index.htmlから辿れないから気が付かなかった。version.html見るのが一番いいです。
2007/05/05
公式サイトより抜粋1 http://hikarin.jp/com/test/read.cgi/devel/1111587496/

672 名前:◆hikArinCL2 [sage] 投稿日:2006/04/08(土) 23:32:35 ID:emZtu1hs0
@今後の予定
一回欠番した3.0.0を安定版(現時点で1.2.5)ベースのバージョンとして
リリースする。4.0ではデータベースを使うが3.0は安定版を元にしているので
必要ない。以下は現時点における1.2.5と3.0との変更点

#*ログ保存方法の変更によりスレッドごとに書き込みログを作成するようにした
(1.xはホスト情報がHOSTs.cgiに集中しているため、HOSTs.cgiが大きくなると
書き込み処理速度が低下する問題があった。また、書き込まれる情報が
限られていたため、詳しい情報が得にくかった)
4.0と同様変換ユーティリティを用意
#*スレッドログの仕様変更により2chと同じスレッド規制方法を採用
(これにより従来のスレッド規制がより厳しくなることになります。
4.0では既にこの方法が採用されています)
#*indexと携帯の設定を別々に分割
#*jpgの縮小画像作成にImage::Epegが利用できるようになる
サイズ取得のみImage::Imlib2も利用可能になる
(ただし現時点では「サムネイル生成の方法」がGDの場合のみ)
Image::Epegはjpgに特化されたライブラリ。高速な動作と省メモリが強み

879 名前:◆hikArinCL2 [sage] 投稿日:2006/10/20(金) 23:53:13 ID:YfwJX6NE0
実はあまり深い意味合いは持っていないかもしれません。実験的要素です。
元々ななかスクリプトに触発されて開発したのがver.4なので。
[ ななかスクリプトに関しては http://www6.atwiki.jp/fix2ch/ ]

=head1 COMMENT

現行開発版は開発が進むにつれて初期設計のわるさから
保守しづらいコードになり始めていったため、現在暫定ver.5を開発しています。
コードやテーブルを再度設計し直したため、現行開発版(4.x)とは互換性がありませんが、
今度はおそらく保守可能なものとなりうるでしょう。
これを元に完全にフラットファイルベースのver.3への開発への足掛かりとしています。
(5のAPIは3のAPIとほぼ同一の予定で、プラグインも5でも3でも動作出来るようにする)
開発途中ですが、ソースコードがもし欲しいのであればアップロードします。
ただしまだZerominが実装途中なので操作できる要素がかなり限定的で、
ドキュメントもソースコード以外相当とぼしいものです。

予定としてはsourceforge.jpにプロジェクトを立ち上げる予定で、
ホームページをXREAから移行し、ソフトウェア(img0ch)のライセンスを
定めるため、いくつかの0chが元となっている画像等を削除して
Apache Software License 2.0に基づいて配布出来るようする。

=cut

917 名前:softbank219044224005.bbtec.net ◆hikArinCL2 [sage] 投稿日:2006/12/15(金) 00:08:05 ID:yakOrWuF0
そろそろsf.jpがデータセンター移行により一時停止するので、しばらくsf.jpへのコミットが出来なくなります。
img0ch.sourceforge.jpも前述によりしばらく閲覧が不可能の状態になります。

1.xとの互換性はwikiでは取れないとかかれていますが、設定の変更と処理速度の犠牲である程度互換性が
取れるようにする作業をsf.jp停止中に行う予定です。これによって、前バージョンを停止させず、
移行の手間をかけずにmaple(2.1.x-3.xのバージョンの名前のことです)への移行が出来るようになります。

974 名前:softbank219044224005.bbtec.net ◆hikArinCL2 [sage] 投稿日:2007/02/09(金) 23:29:47 ID:???0
#>>972
それならRepositoryRootの指定はあっています。
#>>967からZerominのログイン画面が出ずにインストール作業画面のままになっていますか?

忘れないようにするための思い付いたことと考えていることをメモ
#*JavaScriptを使わないZerominはまだ考案の段階のまま。
#*度重なる機能変更とスレッド作成時に画像アップロードが出来ていないことからスレッド作成確認画面を廃止し、
代わりにその確認画面のルールをHTMLにしてテンプレートレベルからリンクするようにする予定。
#*お絵書きアプレットの対応は次バージョンで対応(過去のバージョンとの互換性をある程度保っています)。
そろそろコミット分に入ります。
#*スレッド作成した人がそのスレッドをある程度管理することが出来る仮想スレッド管理機能をつけたい考え。
スレッドそのものの停止や再開、スレッド作成者のレスの削除と編集、独自の掲示板設定の適用、
制限つきながらNGワード規制やホスト規制とか。


84 名前:Anonymous[] 投稿日:2007/04/03(火) 01:57:13 ID:lmh/ZS3s0
せんせ~!
ver1~と、2~と、3~と、4~の違いが分かりません
以前のサイトには書いていた気がしたんですが、もう無くなったんですか?
wikiのページは分かりづらいです・・・以前の普通のサイトのようには戻せませんか

現在img0ch 1.2.5を利用しているのですが最新バージョンのimg0ch-2.1.7とは
ログの共有は出来るのでしょうか

90 名前:softbank219044224005.bbtec.net ◆hikArinCL2 [sage] 投稿日:2007/04/03(火) 23:34:53 ID:???0
#>>84
wiki形式にしたのは多くの理由がありますが、その中でもサイトがばらばらになってしまったことと
ブログだと更新処理の負荷の大きさと手軽に編集しづらいという問題があったためです。
前のサイトに関しては基本的にほとんど変更していません。とりあえずURLを列挙しておきます。
http://hkrn.s44.xrea.com/
http://img0ch.hikarin.aikotoba.jp/
http://img0ch.hikarin.aikotoba.jp/4.x/

2.1.7は互換性のため1.2.5のデータを利用することが出来ますが、1.2.5とのデータ同期はしません。
2.1.7は1.2.5のデータを上書きすることはありませんが、1.2.5用のデータは出力しません。

不具合等

2007/05/05
以下のタグ以外を拡張して利用する場合は$zApp->read_template_tagメソッドを利用してください。」
Templateにあるこの記述は2007/05/05現在は利用できない。 http://hikarin.jp/com/test/read.cgi/devel/1171288888/202n

うう、サポート掲示板に投稿できない


書込み中・・・

ERROR!
ERROR!
エラーが発生したため、書き込みは中断されました。   連続投稿ですか??         ホスト: xxx.yyy.zzz.jp
   名前: 204
   E-mail: 
   内容:
どうかな?書けるかな?・・・書けました!<br><br>>>226<br>じゃぁテーマがんばります。<br><br>1点、要望として、<br/>→<br>の処理をいま勝手に書き換えたxbreakプラグインでやってます。<br>まあこれも一緒に配布すればいいんですが、img0chがテンプレート対応を謳うには、ユーザー<br>が簡単に指定できたほうがいい気がしています。<br>気が向きましたら機能として取り込んでいただけるとありがたいです。
   こちらから書き込み元の掲示板に戻ることが出来ます。   
  
img0ch(CGI)/2.1

comment

このページの記述で聞きたいこととか間違ってることとかありましたらコメントを。
名前:
コメント:

すべてのコメントを見る

最終更新:2007年08月11日 09:29