1 :
デフォルトの名無しさん :
03/03/04 10:51 乱立する2chブラウザですが、ログの形式がそれぞれ違う為に
移行するにしても過去ログを捨てなければいけません。
そこで共通のログコンバーターを作ろうというスレッドです。
ちなみに私はプログラムはVC++が出来ますが、
プロでもないし、それ程の実力も無いので協力者を募集します。
関連スレ
monazilla.org (w
http://www.monazilla.org/
どうせログは単純な変則CVSなんだから、 Perlとか使えば数日で完了するプロジェクトだと思うんだが。
3 :
デフォルトの名無しさん :03/03/04 11:04
>>2 その数日で終了することを誰も着手していないわけだが。
代表的なところで、かちゅ、ゾヌ1、ゾヌ2、Abone、Janeあたりの相互変換が
できると結構需要ありそうだね。
オープンソースで作って、対応ソフトを増やしていくと(・∀・)イイ!!かも。
datログだけではなく、それ以外の設定ファイルもありますし その内容やフォーマットも私一人では正直、解析ですら大変です。 フォルダもサーバー名だったり、板名だったり様々です。 これから出てくるブラウザにも柔軟に対応できるようなソフトを目指したいのです。
・・・。 今更ですがスレタイに「の」が一つ多かったですね。(;´д`)
個人的には直で変換するより間にXMLはさんでほしいな
で、最終的な変換はXSLTで。
面倒っちゃ面倒だが普通にやったらそれこそ
>>2 なので。
個人的な意見なんだが「それ以外の設定ファイル」の解析はそれなりにメンドクサイ。 とりあえず「ログだけ相互変換」で動くものを迅速にリリースしたほうがいいかも。
>>3 >>2 ができる奴は作り捨てでやっつけるし、できない奴はどうしようもないので諦める。
結果的に余り公開されて無いだけだと思うが。
公開したら公開したで仕様変わったときに対応迫られて面倒だしな。
9 :
デフォルトの名無しさん :03/03/04 11:27
>>7 同意。
そもそも、そんなにしょっちゅうソフトを変える人がそう沢山いるとは
思えないので、ユーザ名だのハンドル名だのはコンバートする意義が
少ないと思う。設定し直すのもたいした手間じゃないし。
ついてるに越したことはないが、それよりもコンバート対応ソフトを
一種類でも増やしたほうが有意義と思われ。
ではとりあえず、今のところ開発言語は置いておいて、それぞれのソフトで 最低限どんなファイルがあれば良いのか調べる必要がありますね。
プラグインで対応ログ形式を自由に増やせるようにしてください。
>>12 そんな大規模なソフトじゃないから意味ないw
単にVerUPでEXE差し替えで十分だと思われ。
なんか最低でも数種類は形式があるみたいだから、 内部的には何かの統一的な表現形式を採用したほうがいいんじゃない? XMLでログデータの受け渡しするんならプラグイン化も楽だと思うし。 (それこそ標準入力からXMLを読んで引数で指定したディレクトリにログを吐く exe形式のプラグインでもいいような。。。(素人考え)
>>13 プラグイン形式にしておけば他のソフトが利用しやすくなると思うのだが。
ひとりで全部作るなら別にいいけど。
>>14 内部的ではそうするだろうね
とりあえず叩き台が必要だな。
作ろうっていうくらいだから
>>1 が何か作れ。
データ解析で挫折しそう。
>>16-17 わかりました。
幼稚な上に汚くて叩き台にもならないかも知れませんが、
簡単なところでAbone→Janeでもやってみます。
余談ですがギコナビのidx(板リスト)ってバイナリなんですねぇ…。
>>18 言語はVC6と思っていいのけ?
それなら俺も力になれるかも。
需要は多いと思うので、がんがれ。
つーか、2chブラウザのログ形式一覧とかって、どっかにないのか? わざわざインストールして調べるのが鬱だ。 誰か必要最小限だけ張ってくれ。それを元にたぶんきっと誰かがなんか書くから。
>>19 私が持っているのはVC++6です。
.NETはソースで互換はあるかもしれませんが、よくわかりません。
あと、データ形式ですが、私はXML触ったこともないのでさっぱりです…。 もし仮に ・スレッドタイトル ・レス数 ・スレッド立てた日時 が項目として用意されていたとして、他の2chブラウザがバージョンアップし 新しい項目(仮にスレッド最終取得日時)が追加され、対応を余儀なくされた場合、 下位互換というのは楽に取れるものなのでしょうか? ログコンバーターの更にコンバーターを用意する羽目になるのは ミイラ取りがミイラになってしまうような物なので、XMLで独自に ログ形式を用意するのであれば慎重に考えないと駄目ですね。
能書きたれてないで取りあえずなんか作んないと駄目ですね。 少し時間かかるかも。
コンバータ作ったとして、 ぞぬ→かちゅ→ぞぬ と変換した場合に最初と最後が同じ物になるだろうか? いくつかの項目はリセットされてしまう気がする……
26 :
デフォルトの名無しさん :03/03/04 16:33
>>25 たとえばどういう項目がならないと思うの?
2chのスレ情報が
・サーバ(
http://pc2.2ch.net/ とか)
・カテゴリ(tech とか)
・スレ番号
んでスレ内の情報が
・番号
・ハンドル名
・メールアドレス
・投稿日
・発言内容
だけでしょ。抜けの発生する要素が思いつかないが・・・
先にソース公開されてるやつ落としてこい
<xml version="1.0">
<logs>
<category>
<name>tech</name>
<board>
<name>プログラム技術板</name>
<thread>
<id>1046742687</id>
<name>2chブラウザのログコンバータを作ろう</name>
<res>
<head>
<id>26</id>
<name>デフォルトの名無しさん</name>
<mailaddress>sage</mailaddress>
<date>03/03/04 16:08</date>
</head>
<body>
>>1 さん。これを拡張子xmlで保存して、IEでみるといいです。
</body>
</res>
</thread>
</board>
</category>
</logs>
</xml>
あ,
>>1 というところが変換されちゃってる(>_<)
消してやってください。
ああ、スレタイ入れ忘れてた。 投稿日も投稿”日時”が正しいな。もうだめぽ。
>>26 例えばゾヌのinfファイル読んでみたかい?
スレの文字の色設定できたり太字にできたり、「ココまで読んだ」があったりメモがあったり。
他のブラウザにはない、独自の機能のためのデータをどう保存する?
なんかcatogoryとboardが重複しとる。鬱だしのう。
もしかしてdatファイルだけの変換? だったら萎え お気に入りとかも変換してくれよ
>>31 ああなるほど、そういう意味ね。
俺は純粋に2chのログという意味だけで考えてたよ。
ハンドル名や書き込みログと同様、その手の独自データは
切り捨ててもかまわないんじゃないかと個人的には思うがなー。
>>33 それは近い将来にこなす課題なのではないかと。
いまやるべきことはlogの相互変換についてだと思うな。
それがなんていうか、スレタイからして、それがメインだよ。
う〜ん、そういう意図だったか。 純粋にログファイルだけの変換なら、別のブラウザに切り替えたときにまた取り直せばいい話だとおもうんだが。 (2chにはあんまり優しくないけどね) 透明あぼーんやら重要度やら既読フラグやらが別ブラウザでそのまま引き継げたら魅力的だと思う。 そのブラウザがそれらの機能をサポートしている必要があるけどw どっちかといえばログコンバータよりお気に入りコンバータのほうがよろこばれそうな気がしないでもない。
激しく脱線した。 ごめん。
>>37 してくれよ→しようよ
こういう意図で言ったんだけど書き方を誤ったな。・゚・(ノД`)・゚・。
>>36 んー 俺的には仕事柄(プログラマ)、今読み込めるログと同じぐらい
過去ログデータがかなり大事なんだよな。
たとえば xxx ってAPIについて調べたい!ってなった時に、過去ログからも
検索できるってのはかなり大きいから。
現在あるスレと違って、過去ログって見失うことあるし(ちなみに●は持ってる)
個人的な重要度は、
過去ログ>現在あるスレのログ>>>>お気に入り>透明あぼーんとかの付加情報
って感じだな。
まあ、人によって重要度は違ってくると思うが。
42 :
デフォルトの名無しさん :03/03/04 17:15
みんなsage進行にしてるけど、人集めるためには age進行のほうがいいんじゃないか? それとも1が叩き台出すまではsageでいく?
datのフォーマットはどうなってるん?
プラグインはどうしたほうがいいかな。 個人的にはプラグインには任意のファイル(基本的にはexe)が指定できるようにしておいて、 どの言語からでもプラグインを追加できるようにするのがいいと 思うんだよなぁ。 ログ <=解析プラグイン(hogeToXml.exe)=> XML <=出力プラグイン(xmlToPiyo.jar)=> 別形式のログ みたいにできないかな?
・それぞれのログの形式を XML のスキーマとして記述 ・それぞれのログから中間形式へ変換する XSLT ・中間形式からそれぞれのログへ変換する XSLT XSLT ではなく単なるプログラムでもいいが。 この場合、ログ形式に対して XSLTは高々 2n 種で済む。 ただし、中間形式が十分な記述力を持っていないと情報落ちする。
>>45 必須情報のみによって成り立つ最小のスキーマがあったとして、
致命的な設計ミスがなければ、情報落ちは(必須でない要素を追加していくことで)
あとから対策可能だと思うです。
>>46 というか、必須でない情報は別ファイルに追い出すとか。
かちゅのidx、ゾヌのinf……あと知らんけど、それら独特の情報は別ファイルに追い出して、
必要な情報があったらそれを使う。
コンバートのたびに情報量が増えるという欠点があるが……
そうすれば
>>25 の懸念も消えると思う。
プラグインはぜひともHTML出力プラグインが欲しいね。
どんなログからでもHTML形式にして吐き出せる。
自分が前に作ったスクリプトは、dat と idx を別々に変換する方式だった。
2ch とかちゅ〜しゃのログの相互変換しかできないけど。
>>46 それぞれのブラウザがログ(dat+idx)に記述する情報の集合を IDXi(IDX1,IDX2...) とすると、
IDX1 and IDX2 and IDX3... で表せる 「必須情報のみによって成り立つ最小のスキーマ」 では、
ユーザのニーズに応えられない。
IDX1 or IDX2 or IDX3 と、ひたすらに拡張することになる。
まあ、このスレで標準化して、ブラウザの方に準拠してもらうって考えもあるけど。
>>47 ソレダ!XHTML形式は激しく欲しい!
つーか、よく考えたら最小限のXMLで整頓してあるだけでも
かなり利用価値高いし(今さら
どうせプラグイン作るならコンバータだけでなく2chブラウザからも使えるようなプラグイン仕様がいいのかなぁ……と言ってみたり。 入力にもHTMLが使えたら過去ログ倉庫から読めたり となるとプラグインの入力先がローカルファイルだけでなくWWW上のリソースも……ああ…… ちょっとトイレでオナってくる
>>48 じゃあ、スキーマに数段階のレベルを持たせるというのはどうだろう。
XHTMLにStrictとそうでないものが数種あるように、
情報の再現性を基準に、定義のレベルを分けるという感じ。
こうしておけば、最小限のスキーマをもとに初期の開発は進むし、
より難しい要求は高次のスキーマが決まるとともに取りかかれるのではないかと。
あと、構造の変換だけじゃなくて、ログの内容も弄らないといけない。
http:// や >>n にログの段階でリンクをはっていたりいなかったりするので。
さらにいえば、ログ中の空白を除去するブラウザもある。
つまり、ブラウザで読んだ時点でデータが異なる。
実用上は別に問題ないけどね。テストがし辛いが。
同じこと考える人はやっぱりいるんだなぁw 俺も去年の終わりごろにちょっと作って放置してあるよ…… ゴミレススマソ
>>52 うん。もちろん正規表現を的確に利用するだけの技能が
必要になるんだろうね。
でも、それはたいしたことじゃないと思うな。
この段階で最も重要なのはインターフェイスなんじゃないだろうか。
プラグインがまっとうに動くことの保証があれば、
プラグインを書くひとはいると思うし、いずれ近いうちに揃っていくと思う。
おお なんかいつの間にか本格的な話になってるな でもVB厨の俺にはついていけなそうな悪寒
>>54 とりあえずは、各ブラウザでどんな情報をログに書き込んでるかの調査だね。
■ファイル・フォルダ構成 ログはかちゅ〜しゃをインストールしたフォルダの「log」フォルダ以下に保 存される。 /Hzb.exe本体 /config hzb.favお気に入り /logログフォルダ /(server)BBSのサーバ名 /(bbs)BBSのディレクトリ名 subject.txtスレ一覧 subject.infスレ一覧データ head.txtローカルルール (key).datログファイル (key).infスレッドデータファイル (key).txtメモ
あ、全然違う。
>
>>57 は無視してください。
ゾヌのやつだ……
>>56 MonazillaMLに仕様ください〜って流せば?
うお、邪悪なCコードコンテストに出されそうなプログラム組んでる間に 本格的な進展が…。 データ形式のことは前述の通りサッパリなので本格的な内容は 有志の皆様にお任せします。 情けない叩きプログラムは今日中に出来れば良いな、という程度で。 もう少々お待ちください…。(情けなひ) あとは軽くこのスレ用のサイト作りでもしますかね…。
叩いたら跡形もなくなったりして
>>62 それはそれでいいんじゃない?w
たとえ原型とどめなくなったとしても、やっぱベースになるものが
あるのと無いのじゃ、話の具体性がかなり違うよ
とりあえず1&ALLがんがれ!
JaneとABone、適当に比較調査サンプル対象スレッド。
yahooBB規制。。?
http://qb.2ch.net/test/read.cgi/sec2ch/1045039955/ ■メモ
・DATとSubject.txtは共通
・ABoneのBoard.ini 全て0KBで用途不明(飛ばし)
・Janeのidxの内容
------------------------------------------------
1045039955.idx(頭の行番号は投稿用に追加した物)
------------------------------------------------
001[スレタイ]:yahooBB規制。。?
002[日時]:Tue, 04 Mar 2003 09:25:18 GMT
003[レス]:13
004[不明]:0
005[不明]:
006[板URL]:
http://qb.2ch.net/sec2ch 007[不明]:0
008[不明]:0
009[不明]:
010[不明]:
011[不明]:0
012[不明]:1046805933
------------------------------------------------
■Logが格納されているフォルダ
OpenJane
\Logs\2ch\案内\2ch規制情報
Abone
\log\qb.2ch.net\sec2ch
1045039955.datのファイルサイズ かちゅ 12.1 KB (12,461 バイト) Zonu2 11.1 KB (11,418 バイト) Giko 11.1 KB (11,418 バイト) Abone 11.1 KB (11,418 バイト) Jane 11.1 KB (11,405 バイト) かちゅはhttp〜の部分に<a hrefタグが付くみたいです。 他のDATはついていません。
なんかJaneだけサイズ違う結果に… ディスク上のサイズでは12.0 KB (12,288 バイト)だから正しいんでしょうか? 一応目で追って比較したら内容に違いは無さそうなんですが…。
あ、癖でずっとsageっぱなしでしたね。 age推奨でお願いします。 クッキーの都合もあるので無理にとは言いませんが。
>>66 改行(LF/CRLF)とかじゃないかな?
>>1 Janeは改行コードがLF。
ABoneはGetResList.txtで既得スレが分かるけど、そのフォーマットは
バージョンを経て随分変わってるようなので、無視した方が良いかも。
あと、
>>18 で言ってるギコナビの板リストってスレリストのこと?(Folder.idx)
それだったら0x01区切り。
>>25 についてだけど、ログ(dat)だけに限って言えば、「かちゅ」、「えまのん」等は
2chのサーバにあるやつと同じ形式に戻せないから、かちゅ→何か→かちゅ は
単純には出来ない。確認するの面倒だから記憶で悪いんだけど、Ya2b、Gicko
は全レスを取得するようにブラウザで設定してないと無理。
他のやつはCRLFかLFの違いしかないから大丈夫かな。
datログに関してはこれくらいあれば変換できるかな? ・項目と順番(名前、日付など) ・項目の形式(日付は YYYY/MM/DD YY/MM/DD など) ・項目のデリミタ(, <> など) ・レコードのデリミタ(LF CRLF など) ・エスケープ文字 ・リンクの有無(>>n にリンクをつけるつけないなど) ・リンクの形式
さらに、メタ情報として必要なのは… ・ファイル名の命名規則 (unixtime など) ・拡張子 (.dat .d など) ・ディレクトリ構造 (サーバ名/板名/ など) あとなんだろう。
ログの保存位置に関する要素ってこれくらい? ・ルートディレクトリ(かちゅ〜しゃなら log/) ・サイト名 (2ch) ・カテゴリ名 (PC等) ・サーバ名 (pc3) ・板ディレクトリ名 (tech) ・板名 (プログラム技術) 共通形式のボードファイルがあれば情報はとってこれるね。
ボード一覧更新URLから採ってくるのが確実かな。
>>70 おお…!作者様自ら恐れ入ります。
かちゅの形式もぞぬの形式も調べ始めたばかりで
情報がかなり不足していますので涙が出るほど歓迎です。
ふと気になったことがあったんですが、 ボードが更新されてサーバー名が変わった場合 既存のログはどうなるんでしょうか? サーバー名使用されているのはABoneですが、 確認用に少ししか使っていないのでいまいちわからなかったり…。
鯖移転時には2chブラウザがログコピーしてくれますた。>ホットゾヌ1 コンバータだと納屋見所
かちゅ〜しゃでは、サーバ名が変われば読めなくなる。 ログを引き継ぎたい場合は、logmover などでログを移動させる。 katju88 ではボードエイリアス機能で、古いログもそのまま読めるようになってる。 他は知らない。
>>73 そこの50様。
スレ拝見いたしました。
よろしければご協力お願いします。
アカウント取ろうと思ってisweb申し込んだんですが Webスペース貰えるまでに結構時間掛かるみたいですね・・・。
晒しage
とりあえず設定は難しいと思うので ログだけの相互コンバーターを作って欲しい。 例えばぞぬ→かちゅ〜しゃ→ぞぬ となっても、ログだけが移行できてれば 設定は移行できなくてもいい。 もちろん将来的には設定も含めて欲しいが差しあたっては。
>>84 >>11 の一番上の作者です。
普段MFC使ってるんで、非MFC&Cライクの書き方はどうも違和感を覚えました。
DirectX使うときはそっちなんですけど、最近書いてないもんで。
さて、_THREADDATA構造体のresdataですが、レス数はMAX1001じゃないです。
ログ変換のルーチンがないので、とりあえずレベルかもしれませんが・・・
画面周りについては、主目的と外れるのでパス。
いずれにしても、今回のは肝心のログ変換部分がないので、これ以上は
何とも言えないです。
コーディングスタイルレベルではあると思いますけど、すんなりまとまる話
じゃないので、それはコーディングしてる人任せになっちゃいますね。
とりあえずのプロトタイプをAPIで作る人というのもも久々に見た気がする。 まあ、各プラグインは、エクスポート関数を呼んでもらうだけだろうから、 主画面はどう書いてもかまわないだろうけど。 ただ、核になる部分が、メンバ決め打ちの構造体というのがつらいかな。 IDはどうするんだとか、sageレスのフラグがあったりすると、柔軟に扱いづらい。 各ログ形式の最大公約数ではなく、最小公倍数の構成にしなければいけないから。 XMLがベストだけれど、それが大げさならハッシュでもいいかなと。 そのほうが面倒くさいかな?
ハッシュに同意。 要素のみから成るシンプルなXMLのDOMツリーなら、それで簡単に代用できる気がする。
90 :
デフォルトの名無しさん :03/03/05 07:48
91 :
デフォルトの名無しさん :03/03/05 09:04
セマンティックウェブを使うのはどう?
92 :
デフォルトの名無しさん :03/03/05 09:07
>>93 つか、ログのコンバートに関してはコンバータ作者も来ているようだし
そもそも、そこまで問題はないだろ。
XMLとかセマンティックウェブとかは、ログ毎のidxやinfファイルやその他の
設定ファイルをどう扱うか話してるんじゃないの?
95 :
デフォルトの名無しさん :03/03/05 11:49
ちょっと大きいけど、XMLのサンプル張っていいですか?
97 :
デフォルトの名無しさん :03/03/05 11:58
いいとも!!
<?xml version="1.0" encoding="Shift_JIS"?> <log> <!-- 拡張子xmlで保存後、IE5.0以上かMozillaで開くと、ツリーが見れるです。 --> <type>2ch</type> <url>htt://pc2.2ch.net/test/read.cgi</url> <category> <id>tech</id> <name><![CDATA[プログラム技術板]]></name> <thread> <id>1046742687</id> <title><![CDATA[2chブラウザのログコンバータ作ろう]]></title> <res> <head> <id>95</id> <name><![CDATA[デフォルトの名無しさん]]></name> <mailaddress>sage</mailaddress> <timestamp>2003-03-06T20:14:57+09:00</timestamp> </head> <body><![CDATA[ここに本文がはいるです。]]></body> </res> </thread> </category> </log>
あう、間違い。httじゃなくてhttpでした。 category,thread,resは、通常複数個含まれる要素のつもりです。
100 :
デフォルトの名無しさん :03/03/05 12:21
100get
まあ、元気がいいのは最初だけ。 1週間もすればdat落ちだな、このスレも(藁
.彡ハミ ( ゚∀゚) 週末に少し作ってみる鴨。
103 :
デフォルトの名無しさん :03/03/05 13:27
>>93 ハッシュっていうのはキーと値の集合で、連想配列とも呼ばれてるです。
一般的なハッシュの持つ特徴は、
1.操作はキーを指定して行う。 hash.put(key, value); hash.get(key); hash.remove(key);
2.ハッシュの内部ではキーの重複が許されず、キーが同じものを追加すると上書きされる。
3.出し入れの操作は非常に高速に行えるが、順序はまったく保証されない。
なのです。
ハッシュは、ライブラリの一部として提供されることが多いのです。
そこでこれに動的配列(vector、またはarraylistと呼ばれる)を組み合わせてあげると、
追加や削除に最適化された柔軟な構造体を作ることができるです。
>>103 書いてもいいですが、XML初心者なんでスキーマの文法覚えるのに少し時間がかかるかも。
思いついたことをだらだらと書いてみます。 サイト→カテゴリ→板→スレ→ログ と5段階あるわけだけど、この例では一つの XML 文書に複数のサイトのログが入らないよね? 別に他の文書の要素を参照してもいいんだし。 サイト(掲示板群)の掲示板の構造自体も XML にしておけば(2channel.brd みたいなもの)、 category 要素や category 要素下の name 要素の情報は、 そっちから取得できるよね。 XML で id というと他の要素から参照するための uid というイメージがある。 やや冗長気味でもきちんと名前付けしてほしい。 名前空間も適当につけとくといいと思う。
レスどうもです。 >複数サイトのログが入らない。 うっかりしてました。 サイトを表す要素を設けて、そのなかに入れた方がいいんでしょうか。 >そっちから取得できるよね。 トランスレート用の情報を参照を使った形式で持った場合、 プラグイン開発者側の負担が多くなる気もします。 参照なしのXMLをSAXで読みながら変換していくのと、 参照ありのXMLをDOMにして参照を解決しながら変換するのって、 あんまり変わらないんでしょうか。試してないんでよくわからないです。 それとも、プラグインへの受け渡し用と内部形式用のXMLを 別々に定義した方がいいんでしょうか。 >id 名前空間 要素(例:thread)内の要素(例:res)を一意に特定できるからidとしたんですが、 まずかったですか。考え直してみます。 名前空間はbbslogとかでいいですか?(超安易
ワラタ と。
なんで2chブラウザのツールを作ろうとしているのに ぁゃιぃテイストなのかと。
あれ・・・(笑 まぁ、配色は後で変えときます
カテゴリは階層とは考えないで、フラグとか属性として考えたほうが良い。 PCニュースみたいにニュースカテゴリとPC等カテゴリの属する、 複数のカテゴリに同一の板がある場合もあるからね。
1&開発者諸氏、マ板とはいえ、プログラムとかソース晒す以上 そろそろトリップつけたほうがよかないか。 偽者が現れて変なものうpしないとも限らん。
× マ板 ○ ム板 失礼。逝ってくる・・・
も少し考えればよかった…Λ||Λ
_mbsnccnt使えば解決しそう…。
>>114 すまんね。
てすと
>1さん トリップ決めたらうpろだの所にでも書いておいてくだされ。 ここで「このトリップにします」って宣言されても本物かどうか判別する手立てがないので。
>>1 さん、早速改訂版のXMLのアップに使わせてもらいました。サンクスです。
122 :
デフォルトの名無しさん :03/03/05 17:56
XMLをIEで見れないの俺だけ?
すいません。IEでの確認はやってなかったです。 あとで確認して訂正します。
無駄にXMLを使いたがってるやつらが多いが、 XMLなら文字コードは当然UTF-8だよな? XMLドキュメント内のencoding指定なんてクソの役にもたたないぜ。 金庫の中に金庫の開け方を書いた紙を入れておくようなもんだ。
>>125 ハァ?
糞の役にもたたんパーサ作ってる連中に言え
XML だと言語をあんまり気にしないで済むのが利点かと。 python でさくっとプロトタイプ書くなどもできるし。
いや、ちゃんと考えておかないと後で辻褄を合わせるのに大変かも。 2ちゃんは文字実体参照を使ってるケースも多いし、 パーサによって挙動が変わってくる可能性がある。
>>125 なんのためにEncoding指定を1行目に書かないとエラーになるか考えてみろ。
#まあ俺はUTF-8派だが
おお、ム板の「〜を作ろう」系スレにしては珍しく成果が出そう。 応援してます。OpenJane、VC++使ってますがXMLほとんど知らないし まあC++でXMLやろうスレをちょくちょく見てそろそろやろうとは思ってるんだけど、 力になれるかどうかわからないのでせめてテスターにでもなる所存です。
>>129 <?xml version="1.0"?>
でもエラーにはならない罠
それどころかxml宣言自体省略可能な罠
>>131 知ってるよ。
「(書くなら)1行目に書かないとエラーになる」だ。
それぐらい汲み取れよ。
>>113 重複して上げちゃってます。すみません。
ページを更新したら、上がっちゃった。
今戻り…。
>>95 すいません、お察しの通りで。
指摘ありがとうございます。
今後は確認するようにします。
>>100 オメ
>>101 そうですね。モチベーションと勢いは大事だと思います。
>>104 遅レス申し訳ないです。
一応ハッシュと言う物はそれとなく理解したつもりです。
・・・プログラムで作れるかどうかと言うのはまた別問題ですが。
わかりやすい解説ありがとう御座いました。
>>121 OKデス。
じゃんじゃん使ってください。
ウpされたのIEでエラー出てますが。
>>130 同じくOpenJaneとVC++使ってXML無知の
>>1 です。
>>1 必死だな とか言われても、必死です としか答えようの無い状況で頑張ってます。
>>133 とりあえずウpされたファイルを見てます。
特徴あると言うか…、文字列操作のプログラムなんて
組んだことも無かったんで、正直かなり稚拙な内容だと思います。
・・・にも関わらず読んで手直しして下さったのには非常に感謝してます。
と言うことで、もう少しプログラム見て研究します。
質問です。 今使われている有名2chブラウザの開発者が、そのブラウザのログ形式として このスレで議論されているログ形式を使用することは、大歓迎ですか?
>>135 ああ、up0005.zipのやつですが、
delete tmp;
→
delete [] tmp;
>>136 その2chブラウザだけならともかく、多くの2chブラウザが
同一ログ形式を取るようになったらすごく(・∀・)イイ!!
そのための第一歩として、どこかの2chブラウザがここで
議論されてるログ形式を採用してくれるのを俺は歓迎します。
>>136 私の個人的な意見では、歓迎です。が、
作者側としては他のブラウザに無い機能などを盛り込み
それぞれの特色を出す為や、自分が扱いやすい形にするなど
色々な思想があってこその独自形式だと思います。
他に保存しているフォルダの関係もありますし、フォーマットは共通と
言っても、Ctrl+ドラッグで簡単にログ移行という感じにはなりませんし。
形式のみでのサポートをするかどうかの判断は各作者にお任せします。
・・・という感じですね。
まぁ、共通の形式が使えたらそれ程魅力的なことは無いと思います。
>>129 でも、
>>125 の言うとおり、文字コードがわからないと1行目すら読めない。
「<?xml」という文字列は
Shift_JIS : 3c 3f 78 6d 6c
Unicode : 3c 00 3f 00 78 00 6d 00 6c 00
EBCDIC : 4c 6f e7 d4 d3
になる。
まあ、Shift_JIS も UTF-8 も ASCII 部は US-ASCII 互換だが。
(´-`).。oO( その話はいいかげんやめにしたほうが・・・ )
うにこーどかどうかはBOMでわかるんじゃないですか。
>>124 さんの張って下さったXMLを参考に手直しした
XMLをアップロードしました。変更点は、
1.site要素を追加し、categoryをboard要素内に持つように変更 (
>>112 2.なぜか抜け落ちてたname要素を追加
3.いくつかの要素名を、より適切と思われるものに変更
ツリー表示できないブラウザだとなんか味気ないので、
スタイルシート内包版もあわせてアップしてあります。
147 :
デフォルトの名無しさん :03/03/06 11:34
XMLこんなに名前空間つかう必要あるの?
>>147 突っ込み感謝です。なんか無駄に複雑ですね。
要素名の重複を無くして、名前空間を減らしてみます。
MSのXML Notepadって奴を使ってみたけど日本語入力しようとすると イリーガル言われて使い物にならない〜… なんか、こう、いい感じのXML対応のエディタ無いですか?
>>151 警告しておく
これ以上そのことについては詮索するな
生命にかかわる
>>153 無職引きこもり童貞パラサイトヲタクでつか?
156 :
デフォルトの名無しさん :03/03/06 18:00
_, ._ ( ゚ Д゚)
>>150 キーワード[XML エディター フリー]で探してみたけど、
これが定番だ!ってやつはあんまり見当たらなかったです。
IBMの記事で紹介されてるJava製、海外製のフリーソフトとか、
Vectorとかに登録されてる日本製のフリーソフトとか、
いくつか候補になりそうなのはあるみたいだけど。。。
ちなみに私はemacs(sgml-mode or xml-mode) 派でつ。
>>155 ( ´∀`) オマエガナー
>>150 schemaがある場合vs.net
無い場合そこら辺のテキストエディタ
monazilla.org(wに載ったよ
>>151 まぁ、春厨が旬の時期ですから。
こんなスレを気にするよりnyの47氏を先に気にしてくださいな。
>>157-158 eXeedとか良い感じですが、1000レスまで行くような
大きなXMLだと重くてかなり厳しいんですよ。
とりあえず贅沢言わずXML Notepadで確認、
EDLEAFあたりで編集という環境でやってみます。
>>159 わーお・・・。(;´Д`)
軽くて小さい expat に一票。
色々見た上でMSXML使うことにしました。
MSXML4を入れてしまったのでわからないですが、
#import "msxml.dll" named_guids raw_interfaces_only
using namespace MSXML;
このように書いたらMSXML4入って無くても
IE5さえあれば大丈夫ですよね…?
参考リンク
C++ アプリケーションから MSXML を使う
ttp://www.utj.co.jp/XML/dev/dom/dxdom1_1.html
JAVAJavaジャバじゃばー♪
168 :
デフォルトの名無しさん :03/03/07 07:46
JAVAに1票
169 :
デフォルトの名無しさん :03/03/07 08:15
確かにnavi2ch等のログのコンバートなどにはJavaやスクリプト言語が向いてるかも。 2chブラウザはさりげなくOSをまたいで存在してるから、環境に依存しない言語も使っていこう。 そんなわけで、PerlならXML::Parser、XML::Generaterなどが軽くておすすめです。
組み込みPythonの方が良い。
171 :
デフォルトの名無しさん :03/03/07 08:29
一挙に対応環境が増える予感!
172 :
デフォルトの名無しさん :03/03/07 08:31
VC++ならcでなくc++を使わないのか疑問。 (strcpy,vsprintf,strstr,charの使うの&方法が...)
173 :
デフォルトの名無しさん :03/03/07 08:51
JavaでXML使う場合何がいいの?
まぁ、XMLの仕様だけ先に決めちゃって各言語への対応は したいやつででしろと
>>167-168 それだとスレタイが「作ってください」に...。
>>172 すいません、プログラムもあまり詳しくないので
何言われてるのかよくわからないです。
何かまずかったですか?
>>173 JAXP (Java Api for Xml Processing) by SunMicrosystems
を使うのが良いかも。
Sunが嫌いならJakartaとかApacheとかのプロジェクトを探すと転がってるかと。
177 :
デフォルトの名無しさん :03/03/07 09:32
>>177 バッファーオーバーフローに関しては全然自信無いんで
まさしく指摘されている通りですね。
CStringも調べてみたら凄い便利そうなクラス。
VBみたいなノリで使えそうですね。
ちょうどMSXMLで使うBSTRの扱いにも困っていた所ですし…。
ありがとうございます。
で、どうやったらafx.hincludeできるかというDQNな真似を 1時間半もかけてやってしまったわけですが・・・。 やっとCString使えるよ
>>180 OKOK、おちつけ。
漏れもこんなスレ"読んでる側"なら全文同意だ。
気持ちは激しくわかる。
だが焦らずゆっくり待て。な?(;´∀`)
>>179 すさまじく切ない告白すんなよ。
応援すたくなっちまったじゃねーか!
ばんばれ。
VC++6プロジェクトファイル
http://logconverter.hp.infoseek.co.jp/cgi-bin/uploader/source/up0013.zip 大体CString、CFile化しました。
が、ちょっと問題があって調べてもいまいちわからない所が。
相変わらずCLogConv::ConvertのDATを抽出する部分なんですが
buf 1レス分丸ごとのデータ
div 区切り文字(<>)
として
buf.Mid(0,buf.Find(div))
と記述するとprintf("%s",buf)のように出すとちゃんと
抽出される(デバッグウィンドウの出力画面参照)のですが
CString str = new CString(buf.Mid(0,buf.Find(div)))
とこのように書くと上手く行かない罠。
Mid関数もCString型が返って来るので大丈夫なはずなんですが…。
後生ですから助けてください。
newつかうんなら CString *pstr = new CString(buf.Mid(0,buf.Find(div))); こうするべきじゃないか? CString str(buf.Mid(0,buf.Find(div))); または CString str = buf.Mid(0,buf.Find(div)); ってやるのが正解なんだろうけど。 ダイジョブ?
一歩間違うと
>>1 にXMLとMFCを教えるスレになっちゃうな
MFCどころかC++の基礎から教えることになりそうだ
すいません、書き方変だったようで。
しかもポインタ間違えたし。
typedef struct _RESDATA{
INTresno;//レス番号
CString*cName;//投稿者
CString*cMail;//メアド
CString*cResDate;//投稿日
CString*cID;//ID
CString*cMessage;//本文
_RESDATA*nextptr;//
_RESDATA*prevptr;//
}RESDATA,*LPRESDATA;
CStringbuf;
cfile.ReadString(buf); //datをopen済みのCFile
LPRESDATArd;
rd = new RESDATA;
rd->cName = new CString(buf.Mid(0,buf.Find(div)));
なので
> CString *pstr = new CString(buf.Mid(0,buf.Find(div)));
> こうするべきじゃないか?
そうしているつもりです…。
>>185-187 いや、正直に本音言うと自分でこんなにやる予定じゃなかったです。(;´Д`)
タブ潰されたΛ||Λ
立て逃げよりはマシさ。 スキルアップのためと思ってがんばれ。 ところでCStringのポインタって使ったことある? 文字列配列ならCStringArrayあるし、あんまり使う場面が……。
>>188 RESDATAの中でCString*型にする理由がよく分からんのだが。
typedef struct _RESDATA{ : : _RESDATA*nextptr;// _RESDATA*prevptr;// }RESDATA,*LPRESDATA; これってstd::vector<LPRESDATA>とかでまとめたくなるね。
構造体メンバはCStringでよくないか? 構造体ポインタの配列はCPtrArray使うとかリストならCPtrListとかあるし。 MFCでもSTLでも使うなら中途半端じゃなくがっつし使った方が。
>>193 俺もそう思う。
CStringにしておいても問題ないと思う。
これじゃmallocで実行時に動的に文字列用の配列を確保する昔からの方法と何ら変わりがない。
>>190 今のところ、ない。
引数で渡すときも汎用性を考えてLPCTSTR型にしてる。
>>189 個人的な意見ですが、無理に直す必要はないかと。
少なくともConvert関数は問題なかったと思います。
CStringのFindとMidは、内部で_tcsstrとmemcpy
を使ってるので、やってることは修正する前とほとんど同じです。
作ってるのは
>>1 さんなので、自分が慣れている
コーディングスタイルで良いと思います。
この機会に覚えるとかいうのなら別ですが・・・
1は何作ろうとしてんの? ただフィルターだったら、素直にperlで組んだほうが良いんじゃないの? 素人なので見当違いの事言ってたらすんましぇん
>>192 どっちかってーとstd::listの方が良いような良くないような。
Java か .net でぱぱっと書いちゃおうかと思ったが このスレの展開が楽しみなので止めた。
>>195 ツツかれると修正します。
何となく暗黙的にスタイルが修正されるのを感じつつ。
>>196 今のところ
>>44 の左側を作っている(つもり)です。
言語については私はVBとVC++以外からっきし駄目です。
あと、もう忘れてますがCASL1ぐらいなら。
>>198 私が待っている「
>>1 じゃ話にならん、俺に任せろ!」という神は
>>1 の愚行を楽しんでいるわけですね。
楽しんで頂いて何よりです('A`)
見守ってください。
このプロジェクトでは、各ブラウザのログインデックスファイルも読み込む(作成する)の?
202 :
デフォルトの名無しさん :03/03/07 23:21
>>199 rd = new RESDATA; // レスデータを確保
//memset(rd, 0, sizeof(RESDATA));//->これ
C++のstructはpublicなclass。
クラスのメンバはコンストラクタで初期化する(される)のが...。
rdをご丁寧にmemsetしてるから使うときに当然でーたは...。
>>201 最終的には設定も含めて変換できるようにしたい。
まずはログから。
各処理をもうちょっと細分化しても罰は当たらないと思田。
こういうのって誰か突っ走る人がいないと進まないんだよね。
>>202 !!!!
アアアー、まじですかー!!!!11223
動的に変数を取ったなら尚更初期化しましょうってのが
裏目に出て原因になってしまったわけですか…(鬱)
ありがとうございます。
ちゃんと動きました。
これはつまり、あれですか。 ぬるぽと言ってガッとやられるケース そ の ま ん ま ですね。
オノゾミドオリニ
( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←
>>208
(゚∀゚)まあほどほどにな
ところで、XMLの仕様って完成してるの?
>>1 の戯言を聞いてるだけじゃなんも進展がないわけで。
>>199 インフォシークに文句があるならxrea.com使えと。
いまならちょうど募集してますよ。
>>211 禿同。
仕様さえしっかり決めれば、あとはみんな同時進行で実装作業に入れる。
どうなるかわからない仕様のままだと、怖くて手を出せない。
単に
>>1 の成長を見守るスレに終わる。
>>149 に載ってるやつが最新版?
字句的にこれでOKとしても、まだ決めなきゃいけないことはあると思う。
>>149 sitetype,siteurl,boardurl,threadurl,threadtitle,resnumber
ではツリー構造の意味が・・・と感じたので
要素名の変更・一部属性化したものをうp、、しようと思ったのですが
なぜかできなかったので次のレスにコピペします。
<bbslog xmlns="
http://www.2ch.net/bbslog ">
<server url="
http://pc2.2ch.net/ " type="2ch">
<board name="tech">
<thread key="1046742687">
<title>title</title>
<res num="1"><!-- num はいらないかも -->
<name>name</name><mail>mail</mail>
<date>date</date><msg><![CDATA[msg]]></msg>
</res>
<res num="2" abone="abone">
<name>あぼ〜ん</name><mail>あぼ〜ん</mail>
<date>あぼ〜ん</date><msg>あぼ〜ん</msg>
</res>
</thread>
</board>
</server>
</bbslog>
res要素の省略可能なabone属性は
xml からログ(や xhtml, PDF)に変換する際の便宜上のものです。
「透明あぼーん」や「移転したよ」,「停止しました」
等々がログにどんな形で残るのか?or残らないのか?
あたりはまったく知らないので考慮に入れていません。
カテゴリ名の取得は
>>106 さんの方法に一票
ID要素が無い予感。
resとそれ以外の外側にそれぞれもう1つラッピングしたほうが良いかも。 それとserver, board, threadの寿命は短いほうが。こんな感じで <bbslog> <head> <server /> <board /> <thread /> <title /> </head> <body> <res /> <res /> <res /> </body> </bbslog>
質問です。 この xml の形式でデータを保存した場合、全部のデータは1個のファイルに 入れなきゃだめですか?スレッドごとに別な xml ファイルにしてもいいですか? もっと言えば、レスごとに別ファイルにしても、問題ないですか?
今日は知人のケコーン式に出席しなけりゃならんので
戯言のDQNレスは無い平和DAYです。
XMLのスキーマ(?)あたり話し合って頂けたら良いかなとか
思っております。では。
>>220 まだあまり決まっていない段階なので、問題と言うよりは
どんどん提案してくださった方が良いと思います。
>>220 この がどれのことなのか解らないんですが、
>>215 全データを1つのxmlで、
>>219 スレごとに1つのxmlで、
に向いてると思います。
このスレ的には
>>219 のが合ってそう。
223 :
&<>"' :03/03/08 12:03
<name>name</name> は CDATA使った方がいいぽ。
おまえらXMLっていいたいだけちゃうんかと
225 :
デフォルトの名無しさん :03/03/08 13:14
えっくすえむえる
DATは2ch形式でいいと思ふ。
つかdatが欲しけりゃサーバに取りに行けばいいだけの話で。
<!ELEMENTname- - CDATA>
<!ELEMENTmail- - CDATA>
<!ELEMENTid- - CDATA>
<!ELEMENTrh- 0 (name?, mail?, id?)>
<!ATTLISTrh
idID#REQUIRED-- レス番 --
dateCDATA #REQUIRED-- yyyy-mm-dd --
timeCDATA#REQUIRED-- hh:mm(:ss)? --
>
<!ELEMENTref- 0 EMPTY>
<!ATTLISTref
idIDREFS#REQUIRED-- レスの参照
>>1 --
>
<!ELEMENTbr- 0 EMPTY>
<!ELEMENT% inline"ref, br">
<!ELEMENTrb- -((%inline;)|PDATA)*>
<!ELEMENTres- - (rh, rb)>
<!-- sample <res> <rh id="223" date="2003/03/08" time="11:14"><name>&<>"'</name></rh> <rb>$lt;name>name</name> <br/>は<br/>CDATA使った方がいいぽ。</rb> </res> <res> <rh id="224" date="2003/03/08" time="16:54"><mail>sage</mail></rh> <rb><ref id="223"/>そうだね.</rb> </res> sample -->
Tabがきえて酷いことに・・・
<!ELEMENT name - - CDATA>
<!ELEMENT mail - - CDATA>
<!ELEMENT id - - CDATA>
<!ELEMENT rh - 0 (name?, mail?, id?)>
<!ATTLIST rh
id ID #REQUIRED -- レス番 --
date CDATA #REQUIRED -- yyyy-mm-dd --
time CDATA #REQUIRED -- hh:mm(:ss)? --
>
<!ELEMENT ref - 0 EMPTY>
<!ATTLIST ref
id IDREFS #REQUIRED -- レスの参照
>>1 --
>
<!ELEMENT br - 0 EMPTY>
<!ELEMENT % inline "ref, br">
<!ELEMENT rb - - ((%inline;)|PDATA)*>
<!ELEMENT res - - (rh, rb)>
233 :
デフォルトの名無しさん :03/03/08 17:41
スレ違いかもしれないけど DTDとスキーマってどっちがはやってるの?
流行りも何もDTDが主流だろ
>>233 流行という意味ではschema
というか上
>>229 ,232 にでてるDTDはSGMLのであってXMLのじゃない。
XML Schema はだるいので、RELAX-NG 希望。
すべてだるいので、マークアップだけ希望
238 :
デフォルトの名無しさん :03/03/08 21:17
すべてだるいので1が作り終わるまで待ちます
>>231 タブはヌル文字アタックでゲーハー板がForbidden攻撃などの結果
他の制御文字もろともフィルタリングされるようになりますた。
2ch 互換サイトはまた違うだろうね。
openjane→かちゅのコンバータの需要あります。もしかしたら 私一人かも知れませんが。がんばって作っていただけるとうれしいです。
>>242 gj
今のところXMLは
要素名、属性名は
>>215 、
ツリー構造は
>>219 、
res要素以下の構造は
>>215 か
>>230 ってところですかね。
で、その
>>215 と
>>230 で違っているのが.datの各フィールドを
そのまま保存するか、
パーシングして保存するか。
前者は楽チン、
後者はログコンバータとしては2度手間、だけどマークアップ的にはより良い。
例:日付フィールド
<date>03/03/05 10:06 ID:3TyuvqLs</date>
<rh date="03/03/05" time="10:06">
帰還。 | | ('A`) ハァ... / ̄ノ( ヘヘ ̄ ̄
何となくIO別冊のXML即効レッスンというのを買ってた。
よく読むと欲しかった情報があまり無かったり…。
>>242 CFileFindとGetProcAddressあたりに目から鱗が落ちた気分。
プラグインと言っても作り方、利用方法が漠然としてて
全然わからなかったので非常に参考なります。感謝。
>>238 待ってくれるだけ良いですね。('ー`)
他 2ch 形式の BBS までを考慮に入れた場合
構造は
ドメイン(2ch)
+- 板(プログラム)
+- スレッド(ログコンバータを作ろう)
+- レス(1-n)
この形で表現できると思う。
それを踏まえた上で、
ボトムアップでフォーマットを決めて行けば
色々と作業しやすいんじゃないだろうか?
お帰り
>>1
250 :
デフォルトの名無しさん :03/03/09 10:03
関係ないが、アプロダのup0002.xmlが水曜どうでしょうスレか・・・ 実は俺、道民。
252 :
242 ◆GsQAUnYIlM :03/03/09 16:56
>>247 朝帰りってまさか結婚式で出会った女性とちょめちょめしたんじゃないだろうな。
もしも
>>1 がそんなナンパな奴なら俺はこのプロジェクトを降りる!
まぁまぁ、もちつけおまいら。 下らないスレ違いの戯言だけどさ、聞いてくれよ。 2次会行ったんですよ、2次会。 それは楽しく終了して帰ろうと思って電車の時間を確認したら 終電の時間過ぎてたんですよ。えぇ。 してね、始発の時間を確認したら4時間あるんですよ。 その間どう過ごそうかと。 で、3次会行ったんですよ。3次会。 カラオケ2時間歌って閉店なので終了。 残り2時間くらいはまぁ、駅で過ごそうかと。そう思ったんですよ。 駅に戻ったら 鍵かかってたんですよ。 後ろ向いて繁華街だった場所を見直したんです。 適当なところで時間潰そうかと思って。 真っ暗なんです。 気温ですか?マイナス20度ですよ。 以下想像どおり。(場合によっては絶する)
>>254 疑ってすまなかった。参加させていただくます。
・・・なんて自らでスレの方向曲げてどうするのだと。 修正。 改めて参考になるような本を探してみたら XMLを扱っている参考書ではJavaやPerl、PHPばっかりで後は.NETぐらい。 MSXML4付属の英語マニュアル読めって事ですか…。 頑張るか('A`)
>>244 BBSによって記述が違うみたいです。
(Janeの2ch DAT)
03/02/28 10:01 ID:???
(JaneのしたらばJBBS DAT)
2002/05/13(月) 08:40 ID:???
こういう場合もありますし、そのままやった方が
良いのではないかと思います。
かちゅのログって、カンマ区切りにするために中身色々変更してるっ ぽいけど、あの辺の仕様って公開されてんの?
せめて各ログのサンプルをアプしてくれないかな・・・
このスレのログを各ブラウザでうpしたらどうだろう。 共通だし。
263 :
デフォルトの名無しさん :03/03/10 00:14
# ゾヌ1 \log\pc2.2ch.net\tech\1046742687.inf
DateTime=2003/03/10 00:14:37
Size=78075
Url=
http://pc2.2ch.net/tech/dat/1046742687.dat BOLD=0
REVERSE=0
COLOR=clWindowText
ABONE=0
INVISIBLE=0
READ=263
BBSTYPE=0
BOARDURL=
http://pc2.2ch.net/tech/ TOP=15981
READALL=0
PRIORITY=0
READ_POS=0
UPDCHECK=0
LAST_LOAD=03/03/10 00:44:13
TITLE=2chブラウザののログコンバーターを作ろう
LAST_SENT=03/03/08 02:02:19
あのあの。 中間形式を XML で持つんだったら、XPath とか XSLT とか使って レスのフィルタリング機能とか実装しませんか? 中間形式 XML のログ * フィルタリング情報 XML ファイル = フィルタリング済み HTML ログ よく2ちゃんのまとめサイトで、必要な情報や、より価値のあるレスだけを 抜き出してまとめて整理してあるところってあるじゃないですか。スレの杜とか。 そういう「選ぶ・まとめる・整理する」というのを自動化して、 フィルタリング結果を javadoc みたいに HTML にレンダリングできたら、 面倒くさくなくていいと思いません? 「有意義なレスを抽出する」作業を分散できるので、特定のサイト管理者が 全部やらなくちゃいけないこともなくなるから、2ちゃんの膨大な資源を みんなで効率良く発掘できる手段になると思うんですが・・。 まぁ必ずしも XML でやる必要もないでしょうけど。
考えてるフィルタリング情報は以下の通り。
selection
「いる/いらない」情報をもつフィルタ。
いわゆる荒らし対策のあぼ〜ん情報を保持するフィルタと考えてください。
score
「どれだけ価値があるか」情報。selection の上位版。
それぞれのレスに non-negative number のスコアを与えます。
0/1 の値だけを持つ score 情報は、selection と等価。
hierarchy(tree)
ベタ形式 → Tree 形式
先例はこちら:
http://nmgm.s2.xrea.com/x/class/ link
hierarchy の上位版? それぞれのレスに関連したレスの情報の情報を保持。
walkthrough
読む順番と関連レスを保持。
memo
レスに対するコメントや捕捉、メモなどの情報を保持。
フィルタリング自体は手でやるの? 自動化や共有をする?
フィルタリング情報の使い道のひとつに、これらの情報を組み合わせて
使うというのがあります。
たとえば、スレを斜め読みしたい人は、selection * hierarchy で
スレのだいたいの像がつかめます。
より有意義と思われる情報を読みたい人は、score + score で得点の高い
レスを目印に読み進めます。
そして、辞書的に使いたい人は、selection + link といった風です。
>>268 フィルタリングのやり方は、どういうフィルタを作りたいかという
価値観によって変わるでしょうか・・。
人の手が必要な場合もあるでしょうし、レスの tree 関係を抽出するだけなら、
http://nmgm.s2.xrea.com/x/class/ で示されているように '>>数字' を元に機械的に処理してもいいでしょうし。
もちろん '>>数字' に投稿者によるミスが含まれていたら、手動で直す
こともできるでしょうね。
>>268 さんのおっしゃるとおり、フィルタリング情報を共有することによって
ログのブラウズ作業がより効率化することにもつながると思います。
そのフィルタリング情報は、どんなファイル形式で持ってもいいと思います。
XML でもいいし、もっとコンパクトにシリアライズして、スレの締め 950-1000
あたりに「これがこのスレのハイライトでした」と貼りつけてもいいでしょうし。
もう少し言えば、例えば XPath や XSLT で抽出・HTML レンダリングを実装すれば、 フィルタリング情報ファイルを共有するアップローダを用意しさえすれば、 クライアントがローカルに HTML レンダリングできるので、CGI に HTML レンダリングさせてサーバに負荷をかけることはないと思います。
>244 date要素にID入ってていいの?
>>266 各monazillaツール互換以外にHTMLでの出力プラグインの話は前にも少し出てたよね。
そっちを作る話と一緒にすればいいかも。
あー、でもゾヌ2のしおりを出力するようなもんなのかな。
>>272 なるほど・・。既にそういう話はあったんですね。コメントありがとうございます。
中間形式 XML の書式が決まったら、既存の XSLT ツールで
レンダリングするのも簡単で柔軟な対応ができるでしょうから、ぜひ
このスレでもその点を考慮に入れてくださいませ。
しおりを共有できるのは面白いですね。
>>267 に追加させてください。
bookmark
しおりの情報を保持。
>>266 いいですね。
スキン対応とかも含めていいんでしょうか?(漏れだけ違う話かも…)
>>271 2ch のログ形式に依存してるよね。
2ch 中でも何もなかったり、ID だったり、リモートホストだったりと
板によって異なるからプラグイン側で面倒を見るべきかと。
晒しage忘れた
げ、IEで表示はされるけどソースが酷いことに(´Д`)
>>276 <res num="1">
じゃなくて
<res>
<num>1</num>
にすればいいじゃん。
ただ、dat自体もレス番号を保持していないし<num>は不要という話もある。
280 :
デフォルトの名無しさん :03/03/10 16:39
ここは2ちゃんをXMLで表現しようスレですか?
>>279 単なるDATを解析するついでに保持していたぐらいなので
言われてみれば確かにレス番号を保持する必要は無いかもしれません。
でも
>>266 のようなことをしたい人もいるでしょうし、XSLTを使う要素の一つとして
持つぐらいは良いんじゃないかなと思っています。
で、一応XSLTで利用しやすい形で<res num="1">なんですよね?
・・・と、私が皆さんに聞いてみたり。
ごめんなさい、XMLそのものを知って日が浅いので
私からは何とも言えないです。鬱('A`)
>>280 わかってるくせに。( ´ー`)σ)Д`)
>>280 私はそれでいいと思うんだけどな。
ちゃんとした仕様だけ決めてしまえばいい。
そしたら、思いもよらない使い方をするやつが現れたりするかも。
ある1つのデータ形式の書き方の違いで、2ch全体の全てのログを表すことも、
たった1つのレスを表すことも出来るようにすれば、友達同士でログ交換できるし。
2ch ブラウザ開発者が、もしかするとその形式に対応してくれるかもしれないし。
>>281 スレッドのタイトルをtitle要素にした方がよくない?
<title>2chブラウザののログコンバーターを作ろう</title>
>>284 ん?言ってる意味がわからない。
ハッシュコードについては理解しているつもりだが・・・。
いや、掲示板の p2p キャッシュになるなってこと。
>>286 よくわかんないけど、●買わなくてもよくなる、ってこと?
∧_∧ / ´∀) | U / ( ヽノ ノ>ノ ヒタヒタ . 三 しU ∧_∧ / ´∀`) < ぬるぽ | U / ( ヽノ ノ>ノ しU
わかった・・・(;´Д`)
「ID:」が本文までに含まれてしまうとID付きスレッドの処理と勘違いして
やっちまうらしい…。
まず区切りまでの部分を先に抽出しなきゃ駄目ね。
と言うことで叩かせて頂きます!!
( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←
>>290
それはそれとして、出力したXMLってソースで見ると改行無いから凄い見づらいです。 何とかならないかな…。
295 :
242 ◆GsQAUnYIlM :03/03/11 00:46
http://www.geocities.co.jp/Beautycare/4965/public/logconv.html XMLを
>>244 形式に近づけた。ただし<res>内はそのまんま出力。
まぁ、これ(OpenJaneToXml)はあくまでも動作確認用のプラグインなので、
実際の共通XML作成プログラムは
>>1 に任せるとする。
で、今回のバージョンの2chブラウザログコンバータ(仮)には
通知関数を付けてみた。
例えば、ログにtechのサーバはpc2.2ch.netと記録されてたとする。
ところがその後サーバがpc20.2ch.netに変更されたとする。
このとき、プラグインはコンバータ本体に問い合わせて、
正しいサーバを取得できるようにしてはどうかというもの。
コンバータ本体は最新の板一覧情報をプラグイン側に通知する。
今のところコンバータはSettingsフォルダに入ってるbbsinfo.iniから取得してるけど。
"tech"自体が変わっちゃったら意味ないけどな・・・
296 :
デフォルトの名無しさん :03/03/11 01:01
CDATAの特殊記号の扱いだけど <name>,<msg>,<mail>(?) でどうするん? 1)実体参照にするのか。 2)実体参照が指す文字にするのか。 3)その他。
>>95 の問題があるからOpenJaneから過去ログの正しい場所を探すのって不可能じゃない?
299 :
デフォルトの名無しさん :03/03/11 06:05
]]> → ]]&gt; に変換してからCDATAセクションに文字列を埋め込むのがXMLの仕様だから、読み取り時には出てこない。
300 :
デフォルトの名無しさん :03/03/11 07:01
Chalice for vimも仲間にいれてよ!!
302 :
デフォルトの名無しさん :03/03/11 10:50
<title>はCDATAにしなくていいの?
numとdate以外はCDATAだろうね。
serverとかにガバッと囲まれてるのは違和感あるので
>>219 の構造に一票なんだが。
>>215 のままでは date 要素に ID や remoteHost が入る問題
『そのままでいく』
>>258 この場合、要素名を変更するか、もしくは date の解釈を
レスの日付ではなくデータベースの日付フィールドにある値、とする(無理矢理)。
『回避』
>>271 ,
>>275 する場合、別途要素か属性を設る。
「あぼーん」や「Over 1000 Thread」等のメッセージもここに入ってくるので、
その場合も意味を通すために要素自体を省略するか、空白にする。
<res num="2" state="abone">
<name><![CDATA[あぼーん]]></name>
<mail>あぼーん</mail>
<date>あぼーん</date>
<msg><![CDATA[あぼーん]]></msg>
</res>
↓
<res num="2" state="abone" />
こうしておくと
>>266-270 のようなことをする場合に便利。。。というより
こうしておかないとXMLにした意味が薄れる。
他に、
server 要素の属性は
uri :
http://pc2.2ch.net/ name : pc2.2ch.net
どちらかよいか。
num の有無。
トリップの抽出は?
メッセージ内のアンカー情報保存
>>230 は?等々。
>>306 とりあえずトリップの抽出について
トリップを別に用意する場合、
>1 ◆LirUghTKBo
こんな感じの普通のトリップなら問題ないんですが
>ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★
こういう特殊な場合はどういう風にデータを持てば良いのか
という問題が。
あー、やっとアトリビュート付いたよママン!(つД`)
というわけで
>>305 ,244氏の内容に沿って作り直してみます。
ところでその中のXMLで一つ確認したいんですが、
<server uri="
http://pc2.2ch.net/ " type="2ch" />
urlではなく、uriは誤植ですか?それとも意味有りで正しいですか?
Uniform Resource Identifiers
で、駄レスでも。
>>294 ありがとうございます。
>>295 242 ◆GsQAUnYIlM氏
通知の流れがどういう順番で来てるのかわからなかったり…。
また後でソース読ませていただきます。
> 実際の共通XML作成プログラムは
>>1 に任せるとする。
このスレ読んでる9割近い人が凄い不安を感じてると思います。
というよりも、私が不安です。
>>300 全ての2chブラウザは平等です。
が、今まだ下地を作ってる段階なので待って下さい。
あと工作員の中の人も大変だなとか、Jane川必死だな(藁とか
('ー`)クスッと笑える程度なら結構ですが、それもほどほどに。
>>312 あの中に入ってるプラグインは通知関数を使ってないので見てもわかりにくいかも。
流れとしては、
コンバータが通知関数ポインタ(NotifyCallbackProc)を
プラグインのLogConv関数に渡す
↓
プラグインは渡された関数ポインタを使って問い合わせる
例)
BBSINFO bi;
lstrcpy(bi.szBoard, "tech"); // "tech"のサーバ名を問い合わせる例
lpNotifyCallback(hWnd, コマンド, &bi);
↓
コンバータの通知関数(NotifyCallbackProc)が呼び出される
int CALLBACK CLogconvDlg::NotifyCallbackProc(HWND hWnd, int nCommand, LPVOID pParam)
{
BBSINFO* pbi = (BBSINFO*)pParam;
if(lstrcmp(pbi->szBoard, "tech") == 0)
lstrcpy(pbi->szServer, "pc2.2ch.net"); // プラグイン側へサーバ名を渡す
}
みたいな感じ。要するにコールバック。
>>313-314 242 ◆GsQAUnYIlM氏
解説ありがとうございます。
OKです。大体わかりました。
近いうちに私の方で組んでいるプログラムを
これに従ってDLL化しようかと思ってます。
317 :
デフォルトの名無しさん :03/03/11 21:23
>>315 305のことだけど
1 </b>◆LirUghTKBo <b>
は
<b>1</b>◆LirUghTKBo <b></b>
じゃない?
>>315 の構造だけど
<monalog>
<log> or <thread> //ラップしておいたほうがmonalogに複数logをおけるかも
<head> //ヘッダ
<body> //内容
</log> or </thread>
</monalog>
>>315 の構造...
..以下
はなんか勘違いしてたんで無視して。
>>317 > ラップしておいたほうがmonalogに複数logをおけるかも
賛成です。
1氏の
>>315 の形式ですと、1ファイル内に1つのログしか置けないです。
代わりの案としては、
・body を thread に置き換えて、thread-id をその属性もしくは要素として持たせる
→ 1ファイル内に、1板の複数のスレのログを保持できる。
・<monabbs><head /><body /></monabbs> 相当の形式にする
→ 1ファイル内に、サーバとスレにかかわらずいくつもログを置ける
あと <head /> とか <body /> とか general 過ぎるタグ名使うのたるいんで、
http://logconvert.s28.xrea.com/cgi-bin/uploader/source/up0004.xml ↑みたいに、<head /> の代わりに <original /> とか、<body /> の代わりに
<postings /> や、あるいは <res-set />、<thread /> というように、
より具体的な名前を使って欲しいです。これは個人的な希望。
>>319 1つのファイルに複数のログを入れる必要ってあるのかな・・・
あんまり大きなサイズのXMLは避けたほうがいいと思うんだけど。
>>319 置き換えるよりもさらにラップするほうが簡単。
<monalogarchive>
<monalog>
</monalog>
<monalog>
</monalog>
</monalogarchive>
みたいな感じにすれば参照も楽々。
>>320 複数のログを入れてもいいし、入れなくてもいい。
なるべく必要のない制限は作らないスキーマがいいと思うけど。
>>320 ファイルサイズがでかくなるのがいやなだけなら、
外部実体にすればいいっしょ?
っていうか、ログって言葉気をつけないと、意味が不明。
板なのかスレなのかレスなのか。
皆様ぐもにん('A`)
現状でXMLのファイルをスレッド毎に保持しているのは
2chブラウザのDAT保存がそういう形になっているので
そうしているだけで、必ずしも分ける必要は無いかもしれないです。
スレッドのキー(番号)もXML側で持っていますからね。
で
>>320 はブラウザやエディタで開いた時の事を考えて
大きな一つのXMLは避けたいと言っているのだろうと勝手に解釈。
というわけで外部実体というのが現実的でしょうか?
・・・で、外部実体って何?
>>322 >>325 100M超えてるXMLのDOMなんか想像したくねぇぞーって事です
外部実体でも結局読むので同じかな
ちなみに
2月から使い始めたOpenJaneのログが既に120MB
マ板だけでも18MBあるのでかちゅな人とかじゃ死にそう
とおもちゃって、
でも323なのでアボーン>>俺
補足。
>>317 > <b>1</b>◆LirUghTKBo <b></b>
かちゅ〜しゃのログ形式だとそうですね。
今一生懸命XMLを勉強している者です。
外部実体については、「たのしいXML」というページで確認しました。
たしかにこれだと、巨大なDOMってことになっちゃいますね。
ということは、XMLレベルじゃなく、monalog のレベルで外部のファイルを
参照する方法が必要ということでしょうか?
「たのしいXML」
http://www.cityfujisawa.ne.jp/~yanai/xml/ 「外部エンティティ」という項があります。
・HTML の href のような ref="file://hoge/moge.xml" で参照 ・thread-id="0fda343fdsfa" で参照し、id から実体を得る方法は別途用意 ・2ch用ブラウザがやっているように、ログの配置を固定して、 ルートからの相対パスで参照 ref="/hoge/moge.xml"
・・・しばらく考え込んだ上で。
外部実体もa hrefみたいな感じかなと思っていたら丸ごと持ってくるようで、
>>329 で提案された方法もプログラム側としては構わないのですが、
スタイルシートから使うのは無理になってしまうのではないかと。
(可能なら以下の行は無視してください)
で、外部参照だったら
>>326 で言われている超巨大なDOMにはならず、
確認もルートのXMLをIEなどで開かない限りは大丈夫だろう、ということで
結局、外部参照に落ち着きそうな結論に達しました。
いずれにしろボードリストみたいな物は持っておかないと駄目ですね。
で、何か賛同なり反対なり改善案なりの意見が欲しい気分。
ちわ
またお昼を取りながら XML についていくつか書きます。
>>317-325 の複数スレッド保存について。
これ完全に忘れてました。。。
いくつか案が出てますが参考にしながら私も1つ書いてみます。
<monalog>
<thread server="pc2.2ch.net" board="tech" key="1046742687" type="2ch">
<title>2chブラウザののログコンバーターを作ろう</title>
<res-set />
</thread>
<thread server="hokkaido.machibbs.com" board="hokkaidou" key="1046404143" type="Machi-BBS">
<title>【札幌】ぱかぱかヒヒーン【競馬ファン】</title>
<res-set />
</thread>
<thread server="vip.bbspink.com" board="club" key="1037792310" type="bbspink">
<title>風俗で身を持ち崩してる男ども集まれ!4</title>
<res-set />
</thread>
</monalog>
うーん、ちょっと無理があるな(汁
まあ↑はさておき、
>>326 これは文書型作成時に考慮すべき問題ではないと思います。
プラグイン製作者さん達に丸投げで。
複数スレッド保存が可能なら
普段は単一スレッドで保存、
後で似たタイトルのスレッドをまとめて保存、
なんてこともできそうですし。
>>330 ちょっと言葉が混乱してるような。
外部参照って外部実体を参照するってことなんですよね?
>>321 なるほど〜!
>>244 さん
>>332 はなかなか良い案だと思います〜。
ひとつ質問なんですが、<thread> の属性 type はどういう時に使うんでしょうか。
元になったログが2ちゃんタイプだったとかまち BBS タイプだったとか
区別する必要はあるんでしょうか・・。
>242 ◆GsQAUnYIlM氏
本体の方に2chブラウザなどでよくあるステータス表示(下の方)する
エリアを用意できないでしょうか?
DLL側でメッセージを送信して色々表示できたら良いかなと。
…なんて自分でやろうとしてMFCよくわからなかったのはヒミツ。('A`)
>>333 ,244氏
> 外部参照って外部実体を参照するってことなんですよね?
そう、ですね。多分。
>>328 で紹介されている外部エンティティの内容そのままだと
思っていただければ。
>>335 表示するエリアだけ作っといて、あとはプラグイン作者に好きな文字列を
入れてもらうようにすればええんかな。
337 :
デフォルトの名無しさん :03/03/12 18:45
プラグイン.exe 入力ファイル [出力ファイル] 形式とか
そうですね。 表示するメッセージの内容はプラグイン側で用意するって形で。
>>337 exeならプラグインじゃなくて単体で配布すりゃいいって話も
340 :
デフォルトの名無しさん :03/03/12 19:01
なんで、こんな小さなものにプラグインが必要なのかが少し疑問 データ形式を統一して、exeとかで公開すれば良いだけかと?
>>340 そりゃ変換できるならどっちでもいい。
インターフェイスも統一されてればわかりやすいだろうなと、その程度のこと。
342 :
デフォルトの名無しさん :03/03/12 19:06
作業は、こんな感じ? 1 中間フォーマットの決定 2 各専用ブラウザ形式から中間フォーマットへのコンバータ 3 中間フォーマットからxhtmlへのコンバータ 4 2,3を制御するユーザインタフェースツール
1は、あんまりライバルがいると困るが、2,3,4は、ライバル同士で切磋琢磨していただくと
>>344 うん、まぁ、何を使っても良いだろうね。デザインとか、色々好みが出てくるだろうし。
あ、2の訂正、各専用ブラウザ<->中間フォーマット だね
1と2ができりゃあとはXML使いさんたちがいろいろやってくれると思うよ。
347 :
デフォルトの名無しさん :03/03/12 19:28
もれとしては、2をDLLにすると、4が少し固まり気味になるので、2をexeとかにして、4にも競争してもらいたいかなーと
>342 1の中間フォーマットって何? XMLってのはもう決まってんだから、適当にタグ付けして、 あとは実際の運用で決めていくしかないと思うけど。 4はGUIの事いってんの? フィルターなら一括処理できなきゃ意味が無い。 1が作った様な糞なGUIだったら不用。 DLLかコマンドラインツールで十分。 さっさと2を作っちまってください。
349 :
デフォルトの名無しさん :03/03/12 19:29
2にperlとかjavaとかも参入しやすいよね?
1については、ある程度で見切り発車しないと、 ぜんぜん進まない気がする。今までそうだったし。
4て例えば何?2をDLLにしたって2をexeで作る人もいるだろうし、 2,3,4で競争されることには変わりなりと思うんだけど。
352 :
デフォルトの名無しさん :03/03/12 19:32
>>348 1は、XML了解
2は、コマンドラインツールでもいいの?
DLLにメッセージとか言ってたので、少し気になったのだ。
>>342 の1は、形式をXMLに決めたとして、中身をどうするかという話?
354 :
デフォルトの名無しさん :03/03/12 19:34
_, ._ ( ゚ Д゚)…。
355 :
デフォルトの名無しさん :03/03/12 19:35
>>351 4の機能としては、
a プラグインの選択
b 変換元ファイルの選択
c 変換先ファイルの指定
かな?
DLLでもいいんだけど、そかいいかw
>>352 今出てる
>>1 のと
>>242 はあくまでも2用のツールの一つであって、
全員がそれを使えというわけではない。
2,3,4はみんなが自由に作ればいい。
357 :
デフォルトの名無しさん :03/03/12 19:37
JAVA最高
>>353 タグ付けが済んでりゃ中身なんかどうでもいいよ。
どうせ後でいくらでも修正できるんだし。
>>355 プラグインその他なんて、後で決めれば良い話。
今の時点で4の話やったって無駄。
2をperlでもCの関数でもいいからさっさと作ったほうがいい。
作ったもん勝ち。
とゆーわけで、元データをドカドカうぷキボン
>>355 つまり
1 今話し合ってるXMLの形式
2
>>1 が作ってるブラウザログからXMLへ変換するDLL
3 XSLTなどでできる
4
>>242 のコンバータツール
と言いたいのか?
先に出てるが、1さえできれば2はperlでもJavaでも作ってもいいし
2と4を合体させてもいいし、2,3,4の統合ツールでもいいし、
とにかく2,3,4は自由に作って公開すればよい。
>>359 あ、とりあえず、作業用の3,4が無いと、検証がめんどいかもね
XMLの検証ならそのへんのXML用ツールでいいと思うが
364 :
seven :03/03/12 19:52
--ここまで読んだ
まず2を作り始めるのが肝心。 1なんか今日中に決めちまえ。 後で1に修正が出ても、ゆっくり変えてけばいい。
まぁ作れ作れと言いながら動くのは
>>1 だけなんだが。
かちゅ〜しゃとかゾヌとかまだまだあるんだから口だけじゃなくて手を動かせ。
367 :
seven :03/03/12 20:01
いまあるコンバータは、 OpenJane->XML DLL(Win) だけですか?
納期は来週の月曜日。
369 :
seven :03/03/12 20:07
そうだね。仮にでも期間決めてやった方がいいね。
新人のOJTみたいだな。
まあ、3以降はXMLの偉い人や物好きにまかせるとして、 1,2を今週中なら妥当な作業かもな。
373 :
seven :03/03/12 20:16
元データはインスコしないと手に入らないつーのは、少しつらいです。
1時間経過。
375 :
デフォルトの名無しさん :03/03/12 21:30
XMLの仕様をしっかり決めてくれ。
ええと、 いまのところのだんかいのぽいんとで、 1 さんが作ったプログラムで吐き出したXMLは、どこで手に入れられますか? もしできることならかのうなら、もっかいどっかに貼ってほすぃ。 わたしC++とか動かせないので・・・。
落ち着いてきたかな?
そろそろ待ちきれない人が出てきたようで…。
仕切り直しと言うことで改めて状況説明。
>>342 で書かれている事を元に説明すると
1:基本的な形はまとまってきた所だが、不十分な所もまだ有り。
2:
>>356 で書かれている通り。
3:未着手
4:未着手
という状況です。
XMLの部分をもう少し話し合って決めようってのが今のところの現状。
JavaでもVBでもC#でもPrelでもDelphiでも
このスレに関係なく相互ログコンバータ作りました
と言うのであれば、それはそれで良いと思いますよ。
自分で勝手にやっちゃってください。
ごめんなさい。 アプロダに 「up0015.xml に改行いれたやつ。」というのを Upしたんだけど、 一旦DOMにして、ファイルに吐いたら、CDATA が外れちゃってました。
正直コンバータは any → dat → any でいいと思う・・ 各ブラウザが dat インポータ/エクスポータを作ればいいだけだと思うし、 必要だと思った人が作成してくれてますよね? Jane とかすごくいいインポータあるし。 ログのコンバートなんて1回しかやりませんし、performance はそれほど いらないと思います。 それよりも 1 氏の言うように XML の構造を早く決めてほしいデス♥
>>381 コンバートが目的なら Perl で ad-hoc に書けばおしまい。1000行もいらない。
けど、XML かませてプラグイン方式にしておけば、
誰か面白い利用法を考えつく余地がある。
そうだよなぁ。そもそもdatっていうのが大元にあるのに、 なんでわざわざ別形式にしているんだろう?
つまりこのスレは 2chブラウザのの標準ログ形式を作ろう なわけだ。
>>383-384 状況説明2!
何でXMLか。
各ブラウザの設定ファイル(.infや.idxなど)にも出来る限り対応する為。
<monalog>
<thread>
<setting>
<openjane />
<hotzonu />
</setting>
みたいな感じ♥
必ずしもXMLの必要は無いかもしれませんが、 相互変換を可能にする手段の一つだと思ってくだされば。
>>332 の続き。
その書き方は一つのXMLでまとめてしまうという事でしょうか?
それとも<res-set />を別のファイルに分けると言うことですか?
>>388 あまり得意じゃないから適当に書いたけど、どうすれば良い?
そういう
>>1 はどんな風に教えてもらいたいの?
進行役を買ってでるのは結構だけど、それなら「こんな風に進行させます」という
アナウンスをしておいた方がいいよ。
プログラミングスキルは別になくてもいいけど(もちろんあった方がいいけど)
スキルのなさと、行き当たりばったりな無計画さは違うからね〜。
リーダーシップもない、進行役もおぼつかない
>>1 はだめぽ。
わかりました。 まとめてきます。
あら、ちょっと言いすぎたかな。ゴメソ
ログコンバートが目的なら、「最終取得時刻」と「取得ログサイズ」もデータに入れておいた方がよいかも。 この2つは、2ちゃんブラウザの差分取得の起点(スレが更新されたかを判断する情報)なんだけど、 それぞれが独自形式で管理しているため、この部分が変換のネックとなるはず。 (あとはいわゆるdatファイルから情報を作り出すことができるんだが。)
>>394 あ〜、ついでに「元ファイルの名前」と「元ログ形式」も入れといてください。
<monalog>
<thread server="" board="" key="" default-name="">
<original>
<fileinfo last-modified="" filesize="" filename="" type="dat" />
</original>
<topic> ... </topic>
<res-set>
<res num="">
<name />
<trip />
<email />
<date />
<author-id />
<body>
<br />
<ref num="" />
<ref num="" uri=""> ... </ref>
<uri href="">
</body>
</res>
</res-set>
</thread>
<monalog>
こんな感じでいかがですか? ご意見よろしくお願いします。 <res-set /> はもしかしたらいらないかも。<thread /> 要素の下に 直接 <res /> があってもいいと思う。 あと <res /> も <body /> を使わないで直書きの方がいい? それとも CDATA とか使った方がいいの?
>>385 infやidxのスレッド固有情報は、元の形式を隠蔽してデータを抽象化したほうが扱いやすい気がします。
かちゅ〜しゃidxの14項目目やホットゾヌinfの「SIZE」をまとめて
<size>235434</size>
等で保持して、出力プラグインで振り分けしてもらう感じで。
いずれにしても各ブラウザ独自の仕様があれば要素の定義が最小公倍数的に増加してしまうわけですが。
CDATA について。 CDATAにするかどうか、ってのは、単に好みの問題なのかも。 CDATAにすれば、中に<や>が出てくるデータを楽に書けます、というだけで、 CDATA使わずに、< や > を使って書いても、意味的にはまったく同一。 ってことであってる? (ん!?スレちがい?)
て、書いてる間に
>>1 さんのサイトにまとめが。
XMLの定義ですが、03/03/11付けと書かれた仕様でおおかた問題ないと思います。
<name/>や<msg/>内の情報はdatそのままの状態がある意味で各ブラウザ作者さんに
とっての統一形式になっているのでパースする利点は薄いかと。
>>397 (1氏)
お!サイトいい感じですね!
よ〜し俺も負けないでがんばるぞ。
>>400 > <name/>や<msg/>内の情報はdatそのままの状態がある意味で各ブラウザ作者さんに
> とっての統一形式になっているのでパースする利点は薄いかと。
パージングしてタグ付けしとけば、ID とかトリップとかだけ抽出して
検索したい時に便利じゃない? それとも検索時にパージングするのですか?
という402さんが、「おれはちゃんとパースしたやつをつくる!」って言って、 いろんなXML形式がはびこり、各中間形式(XML)を調整するための中間形式 が必要になる罠。
共通形式は dat で OK。 XML にする意義は、情報をマークアップすることにあります。 たとえば XSLT でトリップの色を変えて出力したい場合、 トリップ情報が名前と分かれてる方がやりやすいです。 いちいち解析してもいいけど。
俺は超つくりたいんだ!
>>402 ,404
dat→XMLではなくて、dat+情報ファイル(idxとか)→XMLという考え方で、ログのコンバートで
障害となる各ブラウザごとの仕様の相違を吸収するのが一番の目的かと思っています。
datに関しては区切り文字とエスケープされた文字(「,」とか)の補正がかかれば充分で、XMLで
マークアップされるのは「ここまで読んだ」とかidx/inf内の情報が中心なのかなー、と。
最終的にこのXMLがコンバート以外の用途でも使用されるなら、
>>395 のような形式だといろいろ
使えそうで良いかもです。掲示板統一フォーマットみたいな方向性かな。
>>406 _, ._
( ゚ Д゚) ガシャ
( つ O. __
と_)_) (__()、;.o:。
いや、良いです。
調べて書いたソースが血となり肉となるなら。
やることはまだ他にも沢山ありますし。
というわけで今、設定ファイルなどの内容などかき集めてまとめてる最中。
>>398 で愛犬氏が言われているような要素がハッキリしない事には
作るにも作れないと思うんで。
>>407 (愛犬氏)
なるほど・・XML の使用目的に微妙な差異があるのですね。
・各ブラウザごとのログ仕様の相違を吸収し、コンバートする
>>407 >>394 ・各ブラウザの拡張機能を XML で保持
>>398 >>407 ・マークアップすることでログのデータベースとしての質の向上
>>402 ・ログをアーカイブ化してまとめるための手段としての XML
>>333 ・XSLT による表示のしやすさを重視
>>404 ・掲示板の一般的なフォーマットの探求
>>384 >>407 少しずつスレの方向性が見えてきたような・・。
XML って懐が深いから、いろんなニーズに応えてくれそうですネ。
>>409 のリストの中から、適当なものをいくつか拾ってこのスレの方向性を
決めてみてはいかがでしょうか。
>>1 氏 その他の方々
2ちゃん系ログを XML にするというのは、もう既に決まってるんですよね?
あとはどこに重点を置くか決めれば、おのずとフォーマットも決まると
思うのですけど・・
もう一度よく見直してみたのだけど、
>>332 さんのやつがわかりやすいなぁ。
簡単に書き直してみる。
<monalog>
<thread>
<title></title>
<res-set>
<res>
</res>
<res>
</res>
</res-set>
</thread>
</monalog>
これなら、たった1つのレスだけを含むこともできるし、たくさんのスレッドも保持できる。
柔軟性高そう。
エンコーディングはunicodeですか? shift jisの方がよいと思いますが。。。(dat形式って基本的にshift jisですよね?)
>>410 趣旨としては、DATと設定ファイル(.infや.idx)を含む相互変換なので
> ・各ブラウザごとのログ仕様の相違を吸収し、コンバートする
> ・各ブラウザの拡張機能を XML で保持
というのが主な目的です。
例:ぞぬ(dat+inf) -> 中間形式XML -> Jane(dat+idx)
>>413 その目的と例では、ぞぬ(dat+inf) ⇔ Jane(dat+idx) のコンバータを作れば
足りると思いますけど・・
そもそも XML にする必要はあるんでしょうか? 二度手間では?
415 :
デフォルトの名無しさん :03/03/13 16:47
>>411 みたいなことあるから
DTDは書いた方がいいと思うんだけど。
>>414 XMLにすることでそれを他の目的に利用する人が現れるかもしれないし、
コンバータということで言えば、仮に
・ゾヌ
・Jane
・Abone
があるとすると、さらにかちゅ〜しゃのコンバータを作ろうとした時
ゾヌ <-> かちゅ〜しゃ
Jane <-> かちゅ〜しゃ
Abone <-> かちゅ〜しゃ
と、対応ブラウザが一つ増えるたびにそれぞれのブラウザ用にコンバータを
作らなければならなくなる。これが中間形式を介する方法だと、
中間形式 <-> かちゅ〜しゃ
のコンバータを作るだけで他のブラウザとも相互変換ができるようになる。
>>416 XML でログを保持することの利点は理解しているつもりですが、
1 氏の主な目的が
>>413 だとすれば、彼がスレの方向転換をしたいという
意味で言ったのだと汲んだのですが・・でもおそらく 1 氏はスレの流れが
速過ぎてよく噛み砕いてないんだと思います。
>>417 おっしゃる通りだと思います。
XML 形式にすれば、既存のツールや強力なフレームワークが使えるので、
それは大きなメリットだと思います。
だからこそ、
>>409 にあるような事柄を、もっとよく議論すべきだと
思うのですけど・・。あと、
ぞぬ ⇔ XML
Jane ⇔ XML
Abone ⇔ XML
というルーチンを組むことを考えれば、労力は同じことではないでしょうか?
しかも、もしひとつのブラウザのログの仕様が変更になって、
中間形式である XML のフォーマットも変更しなくてはならなくなった時、
作業量がブラウザの数だけ増えると思います。
>>414 ぞぬ→かちゅはどうすんの?かちゅ→Janeは?
今後登場するアプリに関しては?
アプリ作る時は直接バイナリ書けば済むと思いますけど。cat > a.out
って言いたいのかい?
Shift_JISでいいと思う
>>418 XML→各ブラウザは一度作ればあとは流用できるでしょ。
新規ブラウザが出現したときの労力は単純見積もりで半分だよ。
それに、コンバータ開発者が自分の使用していないブラウザの仕様を
調べなくてもよくなるのは大きいんじゃないかな。
>>418 「さらに対応ブラウザが増えたとき」の労力のことを言ってるのだが。
最初に既存ブラウザ用を作る労力はあって当たり前。
>しかも、もしひとつのブラウザのログの仕様が変更になって、
>中間形式である XML のフォーマットも変更しなくてはならなくなった時、
俺はそういうことが嫌なので、中間形式にはブラウザの独自設定に依存するような
内容は極力入れない方がいいと思ってる。
ごめん。ちょっと取り違えてたね。
> しかも、もしひとつのブラウザのログの仕様が変更になって、
> 中間形式である XML のフォーマットも変更しなくてはならなくなった時、
というのは同じ工数がかかる可能性がある。基本的にそういうことが起こり得ない
仕様を策定すべきなんだろうけど。
>>409 に関しての議論をすべきという意見には同意。
ただ、ログのコンバート以外の用途ってそんなに需要あるかな…
>>423 ここまでのレスで少なくともHTML出力や特定部分のログだけを抜き出したいという
需要はある
仮のXMLはもう
>>1 が作ってるんだから、ここらでそれをXSLTで加工するデモを
誰かやってくれんか。
今日も盛大に荒れますなぁ(笑)
>>418 XMLを使ってから数日なので大それた事を言えないですが。
確かにXSLTなどからの利用を考えた上で話していた時もあります。
>>414 氏にはどういう風に見えたのかわかりませんが、
私の考えは
>>44 で書かれている事を一貫しています。
それだけは誤解の無きようお願いします。
凄くどうでもいいことだけれど、プラグインの拡張子はdllではなくて 2chぽいものにしたいなぁ。.dqnとか。
>>44 のは「プラグイン」とは言えないと思うけど(w
各プラットホームで統一XMLへの相互変換ができるのが重要であって
プラグイン形式は12氏が提唱したひとつの案なワケだ。それを具現化
させつつあるのが242氏?
>>428 そうそうその通りです。
俺も個人的にSJISの方がやりやすいな。
膨大なログをUnicodeに変換してさらにファイルサイズも増えると時間がかかって・・・
XML についてのメモ。 <?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-16"?> <?xml version="1.0" encoding="Shift_JIS"?> <?xml version="1.0" encoding="EUC-JP"?> monalog の形式をどうするか、という問題と、そのファイルでどの encoding を 用いるかってのは、別の問題。どんな encoding であっても、monalog は monalog。 上の4つのテキスト宣言のうちのどれかを、monalog の先頭の行に置けばいい。 もし、先頭行にテキスト宣言が無い場合は、UTF-8 か UTF-16 のどちらかとして扱われる。 UTF-8 か UTF-16 のどっちなんだ?→先頭のUnicode文字でわかる。
>>431 そうなんだけど、monalogのデフォルトエンコーディング(defacto encodingかな)は、shift jisがいいなあ、、、ということです。
コンバータプラグインとか作る側にとっての負担が下がるかも。
ところで、他の掲示板(ヤフーBBSとかスラドとか)はどうするの? ある程度共通なログ形式考えたほうがいいと思うんだけど
de facto encoding = Shift_JIS いいね。 2ch 以外の掲示板については、やりたい人が別スレでやる。ってことでいいのでは? と私は思う。
UnicodeとShiftJISについて。 色々調べてみたんですが、 同一のファイルを文字コード色々変更して保存しない限り、 扱いが統一されていればShiftJISでも問題は無いと思います。 ですが、XML読み出すときには、いずれにしろMSXMLなりexpatなりxercesなり 必要になると思いますし、出力した巨大なmonalogを テキストエディタなどで編集するのは考えにくいです。 Shift_JIS型にする利点は、DATからXMLに書き出すときに fprintfとかcoutで簡単に出力が出来ます。 というぐらいしか考えられないんですが、どうでしょう? いや、それほどUnicodeを保護推進しているわけでもないんですが…。
ついでにmsxmlでのget_〜はほとんどBSTR型なので Shift_JISだからと言ってchar型が来るわけじゃないです…。
>>436 パーサで読み出すときに誰もchar型を期待していないと思うが・・・
書き出すのが楽ってのが一番の理由だろう。
俺も何考えてたんだろ…Λ||Λ Shift_JISで。
Xalanを使って初めてXSLTを使ってみた。 IE6でも表示はできるけど、ファイル出力となるとXalanみたいなでかいプロセッサを 入れなければならないので、エンドユーザには敬遠されるかも。 XSLTの偉い人、ここで作られたXMLをHTMLまたは他のブラウザ形式ログに 変換するXSLTを書いてみてくださらんか。そうすればちょっとはXML+XSLTの すごさがわかってもらえるはず。そしてこのスレでやろうとしてることが具現化できるはず。
どうせ、一度XMLに変換するって時点でかなりのオーバーヘッド なんだから、ついでにUnicodeに変換する手間ぐらい どうってことないと思うけどね。
エンドユーザでも使いやすいXSLTプロセッサがあれば ブラウザdat (コンバータ→) 中間XML (XSLTプロセッサ+XSLT→) ブラウザdat で後半の矢印部分のコンバータを作る手間が省けるんだけどなぁ。
すげ、神々が現れた、もぅ、もれのやることは、ないかも。
>>442 みんなの力をあわせてこのコーンバタープロジェクトを遂行しよう
トリップが変わっているわけだが。
ひどい釣りだな…w
とりあえず複数のmonalogを格納する形としては
>>332 ,441で書かれている形で問題ないですか?
個人的にはスッキリした形で良いと思っています。
そして、必要であれば
>>394 で書かれている事や、
>>395 で提案されているような形に拡張と。
これをハッキリ決めとかないと先に進まないぽ
>>440 Palmでやろうとすると、unicodeエンコードはさすがにつらいのよ。
(素でトリップを間違ったなんて今更言えない・・・)
450 :
デフォルトの名無しさん :03/03/13 22:20
のが多くないか?
>>446 > とりあえず複数のmonalogを格納する形としては
そこで使われている monalog の意味は?
monalog 自体が複数の2chスレッドを保持できる element というのが
私の認識なのだが。
ところで、このプロジェクトやこのプロジェクトで議論されているログ形式
の事を呼ぶときには、Monalog と先頭を大文字で記すことを提唱したい。
んで、Monalog で使われる形式は XML で、その XML のルートエレメントが monalog と。
形式としては、
>>332 の方式に賛成。<head> や <body> がないやつね。
あと、どっかで出てきたと思うのだけど、日付日時IDのデータを格納するのに、
date というタグ名はいやだな。Schema のデータ型と名前がダブってるから。
しかも内容が全然違うし。
データ型に関しては、「たのしいXML」の「XML Schema(入門編)」「6. 単純型」
を参照。
「たのしいXML」
http://www.cityfujisawa.ne.jp/~yanai/xml/ >>450 そお?(笑)
今日中に
>>446 について何も無ければ可決と言うことで。
で、よく考えるとこの形にするとスレッド追加などは
どの道パーサーを挟まなければいけないんで、
Shift_JISでの手軽な出力が逆に手間掛かってしまいそうですが
無理にUnicodeする必要も無いので、とりあえずはShift_JISで様子見。
あ、かぶってしまった…(汗
訂正。
>>446 で書かれているmonalogは「
>>332 で書かれている」thread以下の物と同じ意味です。
もう。XMLでこんな手間取るなら他の形式でいいよ。
発言から3時間で締め切りというのも忙しいな(w
>>452 だからパーサ使ってる人はパーサでShif_JIS形式で吐き出せばいいじゃん。
MSXMLだって単にエンコーディング文字列指定するだけなんだし。
Commonaはボツだったか
>>446 外枠は
>>332 でいいと思います。
レスの中身は
>>395 みたいなのじゃないとxsltで扱い難いです。
monalog-030311はログコンバートのためだけの形式とみれば良いのですが、
別の事には向いてないっす。
というかCDATAは勘弁
ふむふむ。なるほど。
>>451 日付に関しては名称を変更します。
XMLの仕様に沿ってdate型に出来るかどうかは
プラグイン作者に任せる方向で今後検討。
>>458 わかってます、ごめんなさい。
それ以上突っ込まないで… (クA`)
>>459 だってとっつきにくいんだもんw
>>460 res-setの中身はそれでまとめてみます。
>>395 のbodyの中の要素は何の部分が入るのか
いまいちわからなかったりするのですが...。
あとbodyという名前も変更する必要がありますね。
>>461 理由書いて欲しいな。
>>462 無いです。
MSXMLの使い方ろくにわかってない
>>1 が出力したXMLなんで
消し方わかったら消します。特に問題は無いはず。
一つ質問。 トリップを持つ場合、 >ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ これはどこからどこまでトリップになるんでしょうか? <trip>3SHRUNYAXA</trip> <trip>◆3SHRUNYAXA</trip> <trip>◆3SHRUNYAXA @どうやら管理人 ★</trip> ちょっと悩み。
3SHRUNYAXA
次はプログラムでばしばし変換してって 巨大なDOMを吐き出すことだね。
>>466 ----(・∀・)----イイ
ただ、名前欄の名前部分とトリップ部分を分けるのは、大変な気がするっす。
分けてないデータは必ず持つようにして、分けてあるデータはオプションで
持っても良いことにはできないでしょうか。
あと、<author-id />の部分ですが、String 型で、IDという文字も含めて持つように
することを提案します。
削除依頼板とかに行くと、IDじゃなくて、HOSTってのがあるからです。
>>466 <br />はそのまま
<ref num=""/>は >>num これ
<ref num="" uri="">...</ref> 別スレ(uri)のnumへの参照?か何か。
<uri href="" />は<a href="
http://... ">
http://...</a >だと思う。
まあメッセージの中もちゃんと解析シル!ってことっしょ
こういうのがあると参照レスをポップアップ表示するHTMLも簡単に作れるし。
>>468 ならHost要素も作るべし
>>469 ううむ。
レスの内容までパースするのは必要かなぁ・・・。
プログラム板にいる人だから分かると思うけど、プログラムソース
が貼り付けられたときに、不必要なPOPUPが出現することもあるのは
知ってるでしょ。シフト演算子とか、比較演算子とかで。
そういうのも含まれちゃうし、結局信頼できるデータにはならないと思うんだよなぁ・・・。
全角の>>は含めるのか、とか。
そういうのは現行の2chブラウザに任せておいたら?。とおもう。
test :
>-1, >>-1 >0,
>>0 , >1001,
>>1001 , >1002,
>>1002 ;
>9999,
>>9999 , >99999,
>>99999 , >999999,
>>999999 > ならHost要素も作るべし
そうかもしれませんね。
IDとHOST以外には、無いのかな。確認しなきゃ。
IDやHOSTを分けるなら、その前に、date と time を分けたら、と思う。
>>468 名前欄に◆があれば以後10文字を含めてトリップであることが保証されると思う。
まあ、2ch系の板のみの仕様なので他の板で◆が含まれてたら妙なことに。
2ch以外にも対応できるように要素を増やすのもいいけど、2ch以外で障害がでない
要素わけも重要かと思われ。<trip/>の必要性も再考しますか。
おー、だいぶ進んでますね。
ちょっと上のほうとかまだ読めて無いので見当違いな事書いちゃいそうですが
>>471 その辺は thread の type 属性をみてプラグイン側で処理してもらうしか。
>>472 <author ID="" host="">デフォルトの名無しさん</author>
こんな風にもできますね
ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ なら
<author ID="" host="" cap="cap">ひろゆき<trip>3SHRUNYAXA</trip>@どうやら管理人</author>
こんな感じで。
>>473 ちょっとその構造は変じゃないか? 氏名情報がごっちゃになってる
発言者を<author/>で囲むなら、冗長だけど
<author>
<name/>
<mail/>
<trip/>
<id/>
<host/>
<cap/>
</author>
みたいになるのでわ。
>>474 あー、確かにそうですね。
ただ名前の外にトリップ出しちゃうと場所が分からなくなるので
入れ子じゃないと困るかなと。
>>471-475 んじゃこうしよ
<name cap="cap">ひろゆき<trip>3SHRUNYAXA</trip>@どうやら管理人</name>
id,hostはまた別で、トリップはこう
477 :
デフォルトの名無しさん :03/03/14 16:31
<name trip="3SHRUNYAXA"> ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ </name> でいいと思うんだけど・・
案。 765 名前: ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ [sage] 投稿日: 03/03/14 14:02 ID:UkdJEufW わたしはひろゆき]]>わたしはひろゆき <res num="765" state="normal"> <author> <name cap="true">ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★</name> <trip>3SHRUNYAXA</trip> <mail>sage<mail> <res-date>03/03/14</res-date> <res-time>14:02</res-time> <id type="ID">UkdJEufW</id> </author> <message> <![CDATA[わたしはひろゆき]]>わたしはひろゆき]]> </message> </author> 説明。 <name cap="X"> の X の所には、name の中に★があるかどうかに応じて、true または false が入る。 <res-date> と <res-time> を、わけてみた。分けないなら、<res-datetime> きぼんぬ。 <id type="X"> の X のところには、ID か HOST が入る。厳密に言えば、日付日時の 後ろにあるもののうちの、「:」(コロン)より前の部分。
あああ・・。こんなのもあるんだ・・・。 1001 名前: 1001 投稿日: Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。 <res-date> と <res-time> を分けちゃうと、これを扱えなくなるね・・・。
2chのログをパースする理由はなんだろう
トリップの扱いについては
>>476 で書かれている形式が良いなと思ったり。
>>478-479 news+などだとキャップの他にφが付いたりしますから
bool型だとまずいかなと。
normal=無し、cap="★"、journalist="φ ★"
これぐらい?
1000超えについては244氏がresにstateというのを用意しています。
内容はnormal,abone,tomeiabone,removal,over,threadstopが
11日付の内容で用意されています。下のコメント文になっているあたり。
http://logconvert.s28.xrea.com/monalog-030311.xsd と言うわけで1000Overだった場合、
<res num="1001" state="over" />
という記述が出来るはずなので大丈夫だと思います。
tima,dateについては、"/"を"-"に変えて秒を適当につけるぐらいなので
プラグイン側も大した作業ではないかと。
timaって何さ(´Д`) timeです・・・。
>>480 同意。
分解する意味わからん。
面倒になるだけじゃないのか
> <res num="1001" state="over" /> ↑こんなのから、 "1001<><>Over 1000 Thread<>このスレッドは1000を超えました。 <br> もう書けないので、新しいスレッドを立ててくださいです。。。 <>" という文字列を自動生成するってことですか?
2ch 以外では文句が違うだろうしね。 2ch でもよく変わるし。
同意。フィールドセパレータ(<>)、レコードセパレータ(\xd)程度でパースをやめておくのが正解では? 例:あぼーん、スレスト
>>1 さんに
シンプルにしとけよ馬鹿
という有名な言葉を贈ります。
>>487 じゃ俺からも
きっちりマークアップしてないXMLなんぞ無意味
>>488 前に誰かが書いてたが、マークアップされるのはdatの中身じゃないはず。
>>409 datをいくら解析したってログのコンバートは出来ないと思うけど?
それこそ「意味が無い」。
というか、どっちかというと意味が違うのか。datの中身をバラしたい香具師はXMLで
何がしたいのさ。統一フォーマットの策定なら別スレ立てれば。
この辺のはなしってずっと前から出てるけど
まだきまんねーの?
もうそのまま保存でいいだろ?
>>305 と
>>332 あわせりゃできあがり
>>493 逆に考えて欲しいな。
わざわざ state="over" なんていうスキーマ作ってまで、1001 番目のレス
を正しく再現できなくなるような仕様にする必要はあるのか?と、問うてるわけ。
ちなみに、1001で終わらないこともある。 祭り状態のスレだと1010あたりは行くらしい。
>>496 俺どっかのスレがバグって2000とか3000逝ってるの見た記憶あるな
まあnum付いてるからそれはまた別問題だが
でだ、1氏は
>>258 で理由はどうあれ
>>306 の『そのままでいく』を選んでるわけで
244氏も迷ったところとか書きながら結局作ったスキーマは『そのままでいく』方式なんだから
いい加減そっちで見切り発車しちゃえよ
>>494 それじゃまたdateにidがどうたらこうたら言い出す馬鹿が出てくるから
dateだけdateTimeIDHOSTとかにしとかなきゃ納得しないっぽいぞ(藁
>>497 >俺どっかのスレがバグって2000とか3000逝ってるの見た記憶あるな
それって大昔の2ちゃんのログではないのかえ?
>>498 うん 確かそう
そういや2chブラウザっていつからあるんじゃろ
1999年12月にオフラウ誕生が最初じゃないか。 現在の流れを築いたのは次の2chブラウザか。 そしてnavi2ch(かちゅプロトタイプ)、ギコナビと来て、 大ブレイクしたかちゅ〜しゃに続く、と。 mac版はしらん。
テスト , @` ?,
<?xml version="1.0" encoding="Shift_JIS" ?>
<monalog xmlns="
http://www.monazilla.org/monalog-030314 ">
<thread server="pc2.2ch.net" board="tech" key="1046742687" type="2ch">
<title><![CDATA[2chブラウザののログコンバータを作ろう]]></title>
<info last-modified="Sat, 15 Mar 2003 04:37:38 GMT" size="161404">
<res-set>
<res num="1" state="normal">
<name>1<trip>LirUghTKBo</trip></name>
<email><![CDATA[sage]]></email>
<res-date>03/03/15 13:37</res-date>
<author id="" host="" />
<message>
<![CDATA[monalog-030314サンプル]]>
</message>
</res>
</thread>
</monalog>
infoエレメント追加。ひとまずこんな所かな?
後は取得の工夫と適当な値埋め次第で設定ファイルも作れそう。
…ホットゾヌ2のinf内のETAGが意味不明なのを除けば。
Ya2bがちょっと癖ありそうな感じ。
てすと φ ★
「★自動立上★」でキャップの処理と混ざって いきなり名前がおかしくなってるのは見なかったことにして下さい。Λ||Λ
507 :
名無しさん@お腹いっぱい。 :03/03/16 00:44
名前と日付は解析してメールとメッセージはそのままの理由を教えてください
中途半端にキャップだのトリップだのIDだのを取り出されてもXSLTではそう大したはことできません
できても大げさなスキン程度です
>>244 から出てますが
やるなら全部
やらないなら何もやらない
の2択ではないんですか?
このスレは途中からくだらないことに捉われてまったく進んでないように見えます
どちらを選んでいるのか教えてください
>>507 同意。トリップの取り出しとかつまんないこと始めた時点で冷めた。
日付は RFC だかで形式決まってるし、 「文字列」 じゃなくて 「日付」 とした扱えるほうがいいんじゃない。 他は(日付を含めて全部でもいいけど)とりあえずプラグインに任せておいて、 よい表現方法があったら Ver.2 として取り込めばいい。
というか、結局「2ch」のdatやsubject.txtといったデータを 正規化してるだけ? もしそうだとしたら意味ないね 他の掲示板のデータも取り込めるくらいのを めざしてほしいところかな
>>507 かなり悩んだ末。
TRIPやCAP、ID、HOSTの抽出などあれこれ盛り込んでも
ラチが空かない上に、スレの趣旨とは少し違ってきている気がします。
MegaBBSなど他の掲示板に対しても無意味ですし。
日付に関しても賛否両論あるとは思いますが、
日付、ID、HOSTを全て含めて1項目(区切り<>で一つ)
という事にします。投稿文に関しても同様にそのまま。
DAT変換の為の中間形式を最優先です。
えまのん等、IDやHOST、TRIPなど分けている形式については
出力プラグインの方で操作する言う形で。
中途半端にしてもXLSTじゃロクに使えない上に無駄に
プラグイン作るのが面倒になってしまうのでは意味が無いです。
形式も依存してしまう内容かもしれませんが
もしバージョンアップする機会があれば、日付や本文なども含めて
パースしましょう、という結論です。
>>511 賛成です
次にXMLのサンプルが出ればそれのDTD書きます(XMLSchemaは解らないので・・・)
どっかにMonalogのバージョン入れないの? version="1.0"みたいな。
namespaceでの日付記述を取り、Version情報はthread内に付けてみました。
見た目ウザイかもしれませんが、バージョンが上がって形式が変わっても
monalog内に複数のバージョンを格納することが出来…るはずです。
<?xml version="1.0" encoding="Shift_JIS" ?>
<monalog xmlns="
http://www.monazilla.org/Monalog ">
<thread version="1.0" server="pc2.2ch.net" board="tech" key="1046742687" type="2ch">
<title><![CDATA[2chブラウザののログコンバータを作ろう]]></title>
<info last-modified="Sat, 15 Mar 2003 04:37:38 GMT" size="161404" />
<res-set>
<res num="1" state="normal">
<name><![CDATA[1 </b>◆LirUghTKBo <b>]]></name>
<email><![CDATA[sage]]></email>
<timestamp><![CDATA[03/03/04 10:51]]></timestamp>
<message><![CDATA[Monalog Ver1.0 サンプル]]></message>
</res>
</res-set>
</thread>
</monalog>
stateに関してはA Boneにあぼーん(abone)、弱あぼーん(aboneSE)、透明あぼーん(aboneEX)などの
機能がある為、残します。
これにそって出したXMLが以下の物になります。
http://logconvert.s28.xrea.com/cgi-bin/uploader/source/up0023.xml
>>514 threadにversion持たせるの?
monalogのとこじゃなくて?
monalogか、threadか、結構考えたんですが…。
なぜthreadにしたかと言う理由は
>>514 の上3行に書いてあります。
それはマズイ、と言うのであればご意見よろしくお願いします。
>>517 試しに作ってみたところIEでは表示できませんでした。
あと、自ら話を振っていて申し訳ないのですが、
複数のバージョンのMonalogを同時に持っても
内容が複雑になり、バグの要因を増やすだけに
なってしまいそうなので、やめておきます。
バージョンの記述については
>>517 氏の通りにしましょう。
複数のルートエレメント?
ルートは一つじゃないとだめでしょ・・・
バージョンとかルートエレメントとかはよくわからないけど、 <name><email><timestamp><message>に関しては、1さんの決定に賛成。 だって、わかりやすいもん。 CDATA なので、XML形式を出力するときに気にするべきことは、 ]]> という文字列が出てきたら、]]& に書き換えてあげること。
ゴメンナサイ...変えられました(汗 >えまのんの形式でさえ>に変換されてますので、 えまのんの形式でさえ&gt;に変換されてますので、
あ、説明不足。
>>523 で書かれているプラグインは、出力フォルダに
Monalog.xmlというファイルを作成します。
それにmsxml.dllでゴリゴリ書き込んでっています。
infoの中のsizeって何に使う? 元ブラウザのdatサイズを記録しても他のブラウザにとっては何の役にもたたないと 思うのだけど。
>>526 たしかに。
dat のサイズを記録するよりも、datに戻そうとしたときに1バイトの狂いも
出ないような厳密な仕様を記述することが大事。
あと、
]]> を ]]> に直すのは、CDATAの中なのだから、当然なのだけど、
ちょっと混乱中。
・文字列を全部なめて、> が出てきたらそれを > に変える。
・文字列を全部なめて、]]> が出てきたら、それを ]]> に変える。
これ、どっちがいいのだろう?
エスケープする’前’の文字列として、]]> ってのが出てきたとして、
これを何にもいじらないとすると、もとにもどす時に ]]> にされちゃう?
えー、
>>523 以前に590個のDATを変換し始めて、
2時間近く経過した今もまだ変換中の1です。
ある意味、動画エンコードよりもひどいとか思えてきたり。
いくらコンバーターでプログラムの速度はあまり関係無いとは言っても、
流石にまだコンバート中だと考え物です…。
>>526-527 あ、見落としてました。Size。
いくつかの設定ファイルでSIZEの項目があったので
必要かなと追加したんですが、CFleのGetLength()と
同じ値が取れるのであれば、DATを復元した後の
ファイルから取得すれば良い話ですね。
>>527 ]]> は ]]&gt; と保存され
]]&gt; は ]]&amp;gt; と保存されているみたいです。
あれ、じゃぁ524は何だったんだろ…。 &gt;てすと > >
Sizeは、ログファイルのサイズではなくて、「2ちゃんねる側で管理しているdatファイルのサイズ」だよ。 このサイズ-1したサイズ+取得時刻(if modified since)を送って、レスが増えたかどうかチェックするのが、2ちゃんブラウザの定石。 つまり、このサイズを間違えると、ログコンバート後にレス番号がずれたり、更新されたのに更新されていない、とか、不具合が発生する。
|д゚) マダヤッテルヨ・・・ (02:30経過) XML分けてない追記式の方法ですしね…。 大量になるとNodeListを取得するのに激しく時間が掛かる予感。 で、OpenJaneのSizeに関してデスガ、 SIZEの項目がある2chブラウザのホットゾヌが出した値と OpenJaneで読み込んだDATをCFileのGetLengthで出した 値が一緒だったので同じだという結論です。安直…? 一応このままSizeについてはXMLで持っておいた方が良いんでしょうか?
534 :
デフォルトの名無しさん :03/03/16 22:59
1の日記はここですか?
Open Janeのソースを見ましたが、保存してあるDatのサイズが そのままSize情報になるみたいです。
_| ̄|○ ヤットオワッターヨ...
Pentium3-800MHz
590個のDATで3時間。
44MのXMLです。
そして242氏のプラグインで別のXMLに出す方式。
10分。ファイルサイズは65メガ。
…ベンチマークですかって(笑
ちなみに44MのXMLをXML Notepadで開くと、撃墜。
秀丸で開いても恐ろしいぐらいスワップするので辞退。
とりあえず、一つのフォルダに展開したMonalogを
DATに復元するときにそれぞれに振り分けると言う方法にしますか…。
Monalog.xmlについてはプログラムでは実際に使わず、
外部エンティティを用いてボードリストにするぐらいで。(今は無くても良いかも)
>>534 自分のサイト放置してまで1をやってるから、否定も出来ない。
>>535 ありがとうございます!
かなり重要な情報。
…とすると、それはホットゾヌでもかちゅーしゃでも通用しますね。
>>536 ホットゾヌ/ギコナビとJaneのdatファイルサイズは違うよ。
>>537 あぁ・・・改行コードの違いかな・・・。
やはりsizeは持っておいた方が良いみたいですね。
あと、2chブラウザが突っ込んでるフォルダ全てから
]]>という文字列を全部検索してみたところ、見つかりませんでした。
そういうわけで、CDATAも大丈夫かなと。
疲れた。
改行コードの違いみたいですね。その分サイズがズレてました。 Open Janeは鯖側と一致します(逆に一致しないと取得に不具合がある)。 あとホットゾヌ1はローカルあぼーんすると実際にdatを書き換えるので、 さらにサイズがズレる事があるみたいです。 ゾヌ2ではあぼーん情報が別になったのでこの問題は無くなりましたけど、 dat形式の鯖側との同期についてはいまだ調整中みたいですね。
うーん、個人的には差分取得できるような.datはバグったらバグったで再取得シル! な考え何すけどそんな気にするようなことなのかな? 過去ログ倉庫逝きの.datが今使ってるブラウザで見れたらそれでいいっす
541 :
デフォルトの名無しさん :03/03/17 04:22
XMLの仕様が決まってるなら、 XMLにいちいち変換しなくても タグのデータに参照番号を決めて、 それを操作する入出力クラスを作ってしまえば 無駄な変換もパースもいらん。
>>541 >XMLにいちいち変換しなくても
( ´д)ヒソ(´д`)ヒソ(д` )
typeの"2ch"みたいな文字列はどういう基準で取得してるんだろう。 単にサーバがxx.2ch.netだったらってこと? xx.bbspink.comだったらtypeは2chじゃなくてbbspinkになるのかな? 2ch内の板であろうが無かろうが、サーバの文字列(2chとかbbspinkとか)が基準なのかな? typeとは具体的に何の「型」なのだろう。
>>544 ゾヌ2のinfにある、SITEIDに当たる物です。ゾヌ1だとBBSTYPE。
判断基準はそれぞれのブラウザにより異なると思います。
サポートしているBBSもしてないBBSもありますし。
typeの内容はだいたい以下の物になると思います。
1_5ch
15ch
212ch
2ch
2chKakolog
machibbs
megabbs
milkcafe
miniflo
mitinoku
shitaraba
後はUserが設置した物もありますが…。
上手い具合に判別方法が見つからず。
>>545 いやだからね、判断基準がばらばらなものを記録してどうするのって。
例えばあるブラウザがpinkbbsも2ちゃんねるの一部だから"2ch"タイプとしたとする。
別のブラウザはpinkbbsを"pinkbbs"タイプとしたとする。
そうすると同じものを表現してるXMLなのに二つのtypeができちゃうわけでしょ。
例えばXMLにtype="2ch"とあったとして、それをあるブラウザがどう判断するかも
決まってないわけでしょ。それがpinkbbsかもしれないし、2chかもしれないのに、
ブラウザからはそれが判断できないんだから。
547 :
seven :03/03/17 20:24
あのさー、そろそろVer.1.0の仕様は、決めちゃおーよ。 異論のあるのは、保留してVer.2以降で決めることにして。 共通仕様の話って、これが初めてじゃないんだよ。
>>546 結論を先に。
その辺のtypeの基準は、ホットゾヌを基準として考えています。
もしpinkbbsなどで処理の振り分けが必要だった場合は、
typeとドメインを出力プラグインに見てもらって判断してもらいます。
ドメインから推測してtypeも無くすことは可能でしょうが、
あまり信頼できる情報ではないかと思います。
typeがあればDAT復元するときや、ディレクトリの振り分けなどに使えますし、
無くしてしまうとユーザーが設置した互換掲示板のコンバートで
Monalogとしての判断基準が無くなってしまうわけで、残しています。
>>548 Janeやかちゅはどこからtypeを持ってくればよい?
>>549 まあ、ジェダイとかニュータイプ以外の人たちは
bbsmenu.htmlから判断すればいーんじゃねーの?
>>549 idxなりフォルダの階層なり判断はどうにでもなると思うのですが。
どこから判断するかはプラグインの作者次第ですし。
typeってそんな的外れで難しい事書いてますか?
わからないこと、ハッキリしないことは、 「ここから先はこの仕様では定めない」と ばっさり切っちゃってもええんやで。 普通の2chのログが普通に保存できるようになって、 1さんのプログラムを使う人が増えてくれば、 細かい仕様に対する要望もがんがん上がってくるでしょう。 (バグ報告もね)
>>1 不定要素のtypeはあくまでもoptionalであるべきなので、プラグイン側もそれを
信頼できない。ぶっちゃけ、おまけ。
あと基本的にプラグインはXMLと1つ〜複数のファイルの相互「変換」のみを受け持つ
形になると思う。スレをひとつずつ変換するのかフォルダごと変換するのかは、プラグ
イン呼び出すインタフェース側のアプリケーション次第。何度か出てきてるけど、
>>1 は
まだプラグインがどういうものか解ってないの?
確かにtypeはあれば便利というのはありますが、
その情報は絶対に信用できるかと言えば、無理ですね…。
とりあえず確実な方法が見つかるまでTypeは排除。
至ってシンプルなコンバートにしましょう。
>>554 今までただ何も考えずにブチ込む側の人だったので
プラグインの内容(仕組み)の理解は薄いです。
参考になりました。
作ってもらおうスレと勘違いしてる連中がちょろちょろ現れるねここ
>>556 Monazillaに掲載されてるからね
558 :
デフォルトの名無しさん :03/03/18 00:27
そこまでして過去ログを取っときたいのか?
取っときたいスレも確かにあるが それはdatで十分という話もある
ここはム板だよな? dat形式がいいと思うなら自分で作れ。
コンバーターなんて必要なのかねえ。
一人粘着がいる模様
ら?
激疲れ。
MSXMLは書き込むより読み込む方が面倒…。
DATをMonalogへ、MonalogからDATへ変換する機能を付けました。
フォルダごと変換ではなく、単一ファイルです。
今回DLLじゃなくて糞GUIのアレ。(VC++6ソース exe有り)
http://logconvert.s28.xrea.com/cgi-bin/uploader/source/up0026.zip プログラムももうそろそろ整理しないと大変なことになりそうな予感。
Aboneのスレッド倉庫に並べるくらいまで行きたかったんですが、
流石に無理。後日で…。
あと改行コードもCRLFになっているため、JaneのDATとは
完全に一致する物ではないです。念のため。
というか、LFで改行するにはどうすれば...
エスケープシーケンスでは無理?
ハンドル忘れた…
>>567 あぁ、なるほど…。
CStdioFile::WriteStringでは改行文字は0x0Aでも自動でCRLFになって
LFで書くためにはfopenでかつバイナリで書かないと駄目なのね…。
ありがとうございます。
okok,,, fopenじゃなくても、CFileをバイナリでオープンしてWriteダネ...。 お騒がせしてマス。Λ||Λ
このスレって死滅しちゃうの?
今セコセコ作ってるから安心しる。 Aboneのお気に入り操作するクラス作ってたら妙に時間掛かってマスガ。 つか戦争起きてるときに何のんきにこんな事やってんだろうね
どうも、A Boneの委員長です。 まだ半分ぐらいしか過去レス読めてないので、本格参加は後日に なりますが。 とりあえず何かお手伝い出来ることありますか? 「おめぇがコンバータ作れ!」は無しの方向で。(^-^;
>>572 委員長様、はじめまして。ヘタレの1です。
今、Aboneのお気に入り及びスレッド倉庫のtxtをツリー構造で操作する物ですが、
手間取っているのは単なる自分が出しているヌルポバグです。('A`)
それはさておき。
いくつか確認したいことがあります。
・過去ログを作成するにあたってDATの場所は見た通りでidxは無しで問題は無い
(あぼーん情報付けるにあたって必要になるが、今のところ非実装。)
・過去ログを見るためにはスレッド倉庫store.txt(またはお気に入り)に記述する
と言うだけでこちらの環境(Ver1.43)では表示されているのですが、
一応これで問題ないのか確認したいです。
それでは何かが足りなくて不具合が出る可能性もある、とか
過去ログを登録する望ましい形などあればご意見頂きたいかなと。
あと、お気に入りの最後の"0"についても教えて頂けたら良いかなと...
バグ取れた...。 これで自由に消したり追加したり出来る…。(つД`)
>>242 ◆GsQAUnYIlM氏
見ていてかつ余裕があればlogconv.exeの仕様変更をお願いします。
・プラグインに渡される入力パスはフルパスにする
単一のファイルパスやサブフォルダの検索などはlogconv.exeが管理。
でも今の所は単一ファイルは必要無いので、サブフォルダまでの検索でお願いします。
出力フォルダはそのままでOK。
復元時のプラグインはそれぞれ自分で階層掘っていく形になるかと。
・プラグイン側で検索する拡張子の指定ができる
上記の続きになりますが、DATだけではなくXMLからの復元も考えて
拡張子は「*.xml」(Monalog.xmlとも指定できるようにワイルドカード込み)と
指定できるようにして下さい。
・カテゴリ名から板名の取得(優先度低い)
現在はカテゴリ名からサーバーアドレスが取得できますが、
これに板名の取得も出来るように追加してください。
あと細かい点ですが、242氏が作ったMonalogへ変換するプラグインは
last-modifiedとmailで食い違いが出てますので修正お願いします。
…なんて書いてみるテスト。忙しければ後日対応で結構です。
「おめぇが変えろっ!」ってのは無しの方向で。
>>576 3番目はともかく1、2番目はプラグイン側でやることじゃなかろか。
1は入力フォルダが与えられてるんだからそこをルートに再帰でもして
サブフォルダを走査すればいいんだし(OpenJane to Monalogはそうしてる。)、
2はWin32APIでいうところのFindFirstFileに渡すパスを変えればいいだけだし。
あぁ・・・そうか。 単一ファイル変換だけにとらわれずに、 サブフォルダも検索する関数と、単一ファイルを変換する関数を 提供すれば問題は無い、か...。 失礼しました。 明日にはMonalog->Aboneのプラグインが出来そうな予感。
>573 > ・過去ログを作成するにあたってDATの場所は見た通りでidxは無しで問題は無い > (あぼーん情報付けるにあたって必要になるが、今のところ非実装。) そうですね、**********.datと**********.idxは対になってまして、各種あぼーんの情報やしおり情報、スレッド別のコテハン等の格納先となり、それらの操作が行われた際に作られます。 **********.datに関してはサイトにてまとめられている表の通りで間違いありません。 > ・過去ログを見るためにはスレッド倉庫store.txt(またはお気に入り)に記述する > と言うだけでこちらの環境(Ver1.43)では表示されているのですが、 過去ログを見る=A Boneにログを飲み込ませるという意味でしょうか? その前提で説明すると、ログファイル(**********.dat)とGetResList.txtへの登録が必要になり、これは必須です。 GetResList.txtに登録されれば、Aペイン(板一覧の所)にある[既得スレッド]に表示されるハズです。 お気に入り(BookMark.txt)とスレッド倉庫(Store.txt)は、あくまでもそれらのタブにて表示させる際に必要となるだけで、逆にいうと、それらのファイルに記述すると、そのスレッドはお気に入り登録(スレッド倉庫登録)されたスレッドということになります。 GetResList.txt、BookMark.txt、Store.txt の書式は次レスで。
■GetResList.txt(ログのIndexファイル) [A Bone.exe]\conf\[BBS名]\GetResList.txt (書式) datのURL=既得レス数[\t]datサイズ[\t]スレッドタイトル[\t]最終取得時間[\t]最終書込時間[\t]スレッドタイトル(別名) datのURL:2ちゃんねる内のdatファイルのURL 既得レス数:現在取得しているレス数 datサイズ:現在取得しているdatファイルのサイズ(CRLFではなくLFで計算) つまり、2ちゃんねるに準拠したサイズの為、実際に保存されている サイズとは違います。 スレッドタイトル:スレッドのタイトル 最終取得時間:文字通りの意味 最終書込時間:文字通りの意味(未書込みの場合、文字数0) スレッドタイトル(別名):A Boneではユーザーがタイトルを変更出来るため(未設定の場合、文字数0)
■BookMark.txt(お気に入りのIndexファイル) [A Bone.exe]\conf\[BBS名]\BookMark.txt (書式) フォルダの場合 [\t]タイプフラグ[\t]フォルダ名[\t][\t][\t]フラグ スレッドの場合 タイプフラグ:ノードのタイプフラグ(0=スレッド、1=フォルダフォルダ) スレッド名(フォルダ名): カテゴリ名:(フォルダの場合は文字数0) datのURL:(フォルダの場合は文字数0) フラグ:ノードの開閉フラグ(0=開、1=閉) (注) 各行の先頭の[\t]は行によって無かったり、複数あったりします。 先頭の[\t]の個数によって、ツリーの階層を表します。 (例) AAA [\t]BBB [\t][\t]CCC AAA ←レベル1(\tは0個) └BBB ←レベル2(\tは1個) └CCC ←レベル3(\tは2個) ■Store.txt(スレッド倉庫のIndexファイル) [A Bone.exe]\conf\[BBS名]\Store.txt 書式はBookMark.txtと同じ
失礼。 BookMark.txtのスレッドの場合の書式が抜けてました。(^-^; スレッドの場合 [\t]タイプフラグ[\t]スレッド名[\t]カテゴリ名[\t]datのURL[\t]フラグ です。 ということで、>574の解答は、ツリー表示する際に 子ノードを展開するかどうかというフラグです。
いいんちょフォーマット晒しアリガd。 >1がんがれー
>>579-582 委員長様。フォーマット解説ありがとう御座いました。大変助かります。
あと、GetResList.txtの動きを調べてみたらURLでソートされている
必要があるみたいですね。(同じカテゴリが連続するように)
CListCtrlあたり使えば簡単に出来るかな…
一応予定としては、GetResListへの登録(重複チェック含む)と
登録したスレッドを過去ログ倉庫と同列にフォルダを作りリストを作成
と言うところまでやってみます。
今日までに作れそうだと昨日ほざいてましたが、予定追加でもう少し掛かりそう。
>>583 アリガトウゴザイマス。
がんがります
つーかDLLってどうやってデバッグするの...('A`)
>>584 >DLLのデバッグ
デバッグするためのプログラムを指定できるので、logconv.exeを指定しる。
logconv.exeのプラグインフォルダには、デバッグしたいデバッグ版のDLLを入れとく。
>>OpenJaneToMonalog.dll 入力:OpenJaneのログフォルダ 出力:任意の展開フォルダ OpenJaneのログファイルをMonalog形式に変換します。 [Key].xmlとして一つのファイルにまとめて展開しますので ログ展開用のフォルダを用意して下さい。 なお、2ch以外BBSには対応していないのでご了承くださいまし。 >>MonalogToAbone.dll 入力:OpenJaneToMonalog.dllで展開したログが入っているフォルダ 出力:Abone.exeのあるルートフォルダ 色々制限ついてますが何とか形になった模様。 制限については以下の通り。 ・serverが2ch,bbspink以外のログは処理しません。 ・GetResList.txt,Store.txtの有無判定を行っていないので 必ず一度は「何かしらのレスを取得した状態」で行ってください。 エラー起きます。保証無し。 ・プログラムがヘタレに組んでしまった為にXMLの検索時、サブフォルダを認識できません。 一応GetResList.txt、Store.txtについては GetResList.txt.bakとStore.txt.bakでコピーを取っています。 が、バグなど含まれる可能性があるので、復旧できるなどの知識が無い方は使わないで下さい。
と言うことで、このスレ初の成果物らしいものが出来たわけですが 興味ある方お試しください。 もうだめぽ
補足、OpenJaneのプラグインの方はちゃんとサブフォルダも検索します。
漏れ話が読めてないんだが、 >>OpenJaneToMonalog.dll >>MonalogToAbone.dll という作りをするのか。てっきり >>OpenJaneToXML.dll >>MonalogToXML.dll >>XMLToMonalog.dll >>XMLToAbone.dll ってなるのかと思ってた。(ログ読み直すか。。)
A BoneとOpen Janeを併用しています。 コンバーターをテストしてみました。 が、Open JaneのログをMonalogに変換している途中で コンバーターが落ちてしまいます。 外部板のログがあったので 外部板のログを別にして変換しようとしたのですが、 同じでした。 OSは、WinXP Home SP1です。 それではコンバーターの完成を楽しみにしています。 (もっと詳しい動作報告が必要なときは、遠慮なくおっしゃってください)
>590 MonalogがXML形式の2chログってことだと思う。
>>590 近いうちにAboneからMonalogのDLLと、Janeに展開するDLLも作ろうかと思っています。
XMLへ変換するものばかり作るよりも何かしらのDATへ展開する方向を
優先するべきかと思ったのでAboneへのログ移動を作ってみた次第です。
>>591 動作確認ありがとうございます。
確かにMonalogへ変換するプラグインの方は外部板及びまちBBSへの対応が
まだ整っていないので不具合が出ると思います・・・。申し訳ないです。
こちらでもう少し十分なデバッグをし、再リリースしたいと思います。
ついでにソースも見直すと凄い事書いてるから手直ししてから出します…。
>>592 すまん。たしかにMonalogがXMLのことだね。
2週間もいるのに頭に入ってなかったよ。
>>590 は脳内あぼーんでおながい。
OpenJaneToMonalog.dll(logconv.exe用プラグイン)
http://logconvert.s28.xrea.com/cgi-bin/uploader/source/up0028.zip 以下のファイルが誤って読み取られるのを回避しました。
これでOpenJaneのルートを指定しても問題は無いはずです。
(OpenJaneのLogsフォルダを指定するのが前提だったのは説明不足な自分の責任)
・bbsmenu.dat(ボードリスト)
・favorites.dat(お気に入り)
・result.dat(鯖までお使いのファイル)
昨日の物でエラーが出た方はもう一度お試しあれ。
あと街BBSのXML変換は出来ていると思いますが、したらばなどの
それ以外の板ではまだ対応が終わっていません。
というわけでまだ2ch限定でよろしくお願いします。
報告歓迎。
昨日、コンバーターの動作報告をした者です。 dllを新しいものに入れ替えてテストしてみたのですが やはり変換の途中でコンバーターが落ちてしまいます。 (出力元のフォルダをLogsフォルダにしても、 Logsフォルダ内の2chフォルダにしても同様でした。) さらにOpen Janeのルートフォルダを指定すると 変換が始まる前に落ちてしまいました。 Janeをコンバーターと同じディレクトリに置いても同様です。
まぁXSLTで変換後の出力ファイルは.htmlで決め打ちだし、出力フォルダも 指定できないし(Monalogファイルと一緒のフォルダに出力される。)でぐだぐだなんだけど、 ブラウザのログからXSLTでの変換まで一気にやってみるテストなので許してください。 .xslを指定するダイアログをキャンセルしたら処理を中止するようにした方が良かったかも。 今のバージョンはキャンセルするとMonalogだけ吐きます。
わーからーないー。なして?
車のバッテリーあがってたのでジャンプするのも限界感じたので交換
と言う無駄な出費がかさんで鬱な1です。ご機嫌麗しゅう。
>>591 サン、少しデバッグでお世話になってもよろしいでしょうか。
その環境で動けばある程度は対応できると思われるヨカーン。
・使用しているブラウザ(Jane)を教えてください。
ちなみに私はOpenJaneDue(0.1.7.0)デス。
・OpenJaneのフォルダを「*.dat」で検索し、
出てきたファイルは
>>595 の物以外で存在するか。
・logconv.exeで実行し、エラーが起きた際に、
本体下記のステータス表示部分には何と表示されているか。
とりあえず以上の事を教えてください。
一応こちらとしても変換のトレースログをテキストで出力、
.idxファイルが存在しない場合の処理と、.datでも
ログファイルではないと思われる物をスキップする処理をつけます。
エラー処理を手抜きするとロクな事にならないですね…。
>>597 ,242 ◆GsQAUnYIlM氏
まぁ、寂れたとは言っても、決めるところはある程度決まって、
後は作る人が作って反応を見ると言う感じですから。
このぐらいのペースの方が気楽で良いかも。私は全力ですが(笑
XSLTの出力良い感じです。
中の仕組みがどうなってるのかいまいちわかりませんが感動してます。
全部CDATAでとっている為か、<や>が全部変えられ、
改行も効いてませんが技術的には非常にそそられますね。
今の段階のMonalogではDLLで直接HTML吐き出し、やってもCSSでデザイン
と言うところが限界っぽいですが…。
おはようございます。
>599
>・使用しているブラウザ(Jane)を教えてください。
私が使っているのは、Open Jane Doeの派生版の
Viewってやつです。
> ・OpenJaneのフォルダを「*.dat」で検索し、
> 出てきたファイルは
>>595 の物以外で存在するか。
last.datというのがありました。これは、
Doeの設定の「終了時に開いていた板・スレを次回起動時に開く」
という項目にチェックが入っていると、生成される物のようです。
ちなみに、ルートフォルダを指定してコンバーターを実行させた
時、このlast.datを一番最初に読み取りに行っていました。
> ・logconv.exeで実行し、エラーが起きた際に、
> 本体下記のステータス表示部分には何と表示されているか。
**********.dat処理中というメッセージが表示されています。
今、コンバーターを起動して確かめてみたら
どうやらいつも同じdatファイルでエラーが出て止まっているようです。
もし必要なら、問題のdatファイルをうpろだにあげておきますが
いかがでしょうか?
ではでは、1サン、ガンガレーヽ(´ー`)ノ
今、何気なくOpen Janeのフォルダを見たら command.datという外部コマンド用のdatファイルと mouse.datというマウスジェスチャー用 のdatファイルがみつかりました。
OpenJaneToMonalog.dll
http://logconvert.s28.xrea.com/cgi-bin/uploader/source/up0029.zip 最初の1行を読み取り、区切り文字「<>」が存在しない場合はスキップ。
また、.idxファイルが存在しない場合もスキップ。
とりあえず動作を信じてDebug用のファイル出力は止めてます...。
多分これで大丈夫。ダイジョウブ。ダイジョウブ・・・だと良いな。
あとserverの抽出も少し変えました。
後ろからスラッシュを検索していく形にし、したらばの場合、
server="jbbs.shitaraba.com/[ジャンル]" category="[数字]"
みたいな形になります。
が、ただやってみただけなので現段階では意味無し。
やはりファイル名直接指定して回避するのは利口なやり方ではないですね。 それでもエラーが出たらまだ粘着します。安定するまで。 それはそれとして、実家から 「じっちゃんがあぼーんしそうだから帰宅しる!」 と言われたので明日にでも帰るかもしれません...。 実家もネット環境無いわけではないのですが、 33Kbpsだかそこらのアナログな回線だったはず。 ノートPC持って行って、DLLぐらいなら頑張ればウpできるけど… どうしよう(´・ω・`)
>>604 おいおい、じっちゃんメインに考えろよ。
# nice -20 じっちゃん
# nice 19 ログコンバータ
1さん、お疲れ様でした。 コンバーターは問題なく動作しました。 今は、おじいさんの事を一番に考えてあげてください。
途中で止まるんですが。 せめてバグを直してから実家に帰ってください。
んなこと言われても私も好きで帰るわけではないですし・・・ 実家で直すので詳細キボンヌ(`・ω・´)
んなこたぁ良いから とっとと帰れよ
こんなスレどうでもいいから、 じっちゃんをまず優先しろ。
帰ってきてから完成させろ。 じっちゃんの名にかけて。
実家帰っていいよ。 もう戻ってこなくてもいいよ。
おまえらどうしてそんなに
>>1 を責めるんだ。
>>1 がいない間にどこが嫌なのか腹を割って話そうじゃないか。
1よ、応援してるぞ
618 :
デフォルトの名無しさん :03/03/25 17:49
乱立する2chブラウザですが、ログの形式がそれぞれ違う為に
移行するにしても過去ログを捨てなければいけません。
そこで共通のログコンバーターを作ろうというスレッドです。
ちなみに私はプログラムはVC++が出来ますが、
プロでもないし、それ程の実力も無いので協力者を募集します。
関連スレ
monazilla.org (w
http://www.monazilla.org/
619 :
デフォルトの名無しさん :03/03/25 17:50
つーか変換する必要なんてあるんだろうか
>>620 無いなら無いで、このスレにこなけりゃいいだけ。
>>620 プロフィール・チャット・掲示板しか無いサイトへ行って、
「つーかこのサイト存在する必要なんてあるんだろうか」
と書き込みしてまわってくれ。適任だろ。
623 :
デフォルトの名無しさん :03/03/25 21:37
1って大学生?
>>623 それか専門学生だろうね。春休みで暇そうだから。
ただの引篭もり童貞かもしれんが。
ガンガレ保守
>>627 ((((;゚Д゚)))) ガクガクブルブル
>>65 を見るかぎり、かちゅのみ特殊で、他は改行コードの違いのみなんだから、
kage作者にお願いして<a hrefタグなしでも、表示の際、置換できるような対応をお願いして、
後はidxの仕様を各作者に公開を求めるっつーことにすれば、ログコンバーター(idxコンバーターか?)
作るにしても相当楽になりそうなんだが。。。
お願いしまくりだな。
Monalogに無い情報が、ブラウザのidxに必須な情報だと、変換が不可能だよな?
名前空間分けて、そのブラウザ用のデータぶち込めば。
今度は各ブラウザ設定ぶち込み用XMLの仕様を決めますか。
早くもMonalog version="1.1"の策定開始でつか?
Monalog1.0はそのままだろ。今はブラウザ固有のデータの話。
つーかさ、infoタグ内の情報ってすべての2chブラウザから取得できるの? この際ブラウザ固有データと見なした方がいいような気がする。
>>633 その「ブラウザ用のデータ」はどっから持ってくる?
例えば、
Aのログがあったとして、それをBに変換するとき、
Bの固有の必須情報はいったいどこから。
>>639 仕様知らんからどれが必須か知らんけど、そういうことはありえないのかと
疑問に思うわけ。
>>640 俺はあり得ないと思うから、何に対して思ってるか具体例を教えて欲しいと思ってるわけ。
あり得ないならわざわざ名前空間分けてブラウザデータ用のものを作る必要はないと思うが。
一応過去ログ読んだけど、まだ「ブラウザA→Monalog→ブラウザB」って一つも実現されてないよね?
>>645 そのデフォルト値をブラウザ側で対応してくれれば(つまり、datさえあればidxは
必須ではない)、かちゅ〜しゃ以外のログは相互に移動できる気がするけど
かちゅ〜しゃ の 場合、Monalog から dat と idx を両方作れるんじゃないのか。 かちゅ〜しゃ固有のデフォルトはこれでいいと思う。 新着 = 0 最終取得 = 変換した時刻 最終書き込み = なし 表示位置 = スレの先頭 dat + idx ⇔ Monalog
>>648 かちゅ〜しゃに限らず、Monalogからその2ファイルが生成されなきゃ意味が無い
ちゃんとスレ読んでんのか、春厨?
>>649 別にかちゅ〜しゃだけの話をしてるようにも見えないが、
例えとしてかちゅ〜しゃを出しただけじゃないのか?
それに、
>かちゅ〜しゃに限らず、Monalogからその2ファイルが生成されなきゃ意味が無い
ともかぎらんぞ。
ギコナビはdatだけでOKだし、
逆にidxとdatだけじゃなく、あぼ〜ん情報のabnとか生成するソフトもあるし、
2ファイルと決まっているわけじゃない。
あ、そうでもないな。 648は分かってなさそうだな。
>>650 datだけだと、次から更新するとレス番号がずれるような、、、。
話はかわって、、、
monalogから、個々の2ちゃんブラウザが認識できるログデータ+管理ファイル(群)をつくるのが目標でそ。
ブラウザ"固有"のデータとしてmonalogに取り込むのは、あんまり意味ないようにおもうなあ。
データアイテムを追加する、このアイテムを持たないブラウザのデフォルト値はこれ、みたいなほうが良いのでは?
で、具体的なアイテムは何?
(実際調査しないとダメか。)
A. monalog は一切感知しない、プラグインが頑張る B. ある程度一般的な要素は monalog なり monaidx で規定する とりこぼれる分はプラグインが頑張る C. ブラウザごとにスキーマを作る。プラグインは補助データとして利用する
>かちゅ〜しゃに限らず、Monalogからその2ファイルが生成されなきゃ意味が無い 648はMonalogから管理情報を作るときのデフォルトを書いてるだけじゃないのかな 読めるようにするだけなら、648の捏造方式でいいと思う とりあえずブラウザごとの固有情報を並べてよう そうすれば共通項が見えてくる(かもしれない)
ところで、これが完成したらアイコンは のの の顔文字だよな?
>>655 なにをいまさら(;´Д`)
ちゃんとスレ読んでんのか、春厨?
各専用ブラウザ毎にデータファイルを入れるパス(ディレクトリ)名が異なるので、標準パス名も必要かもね。
lastmodifiedの形式は決まってた?
>>659 サーバから取得したLast-Modifiedをそのまま保存してないブラウザがあるってこと?
HTTP-dateに合致しない形式は調整したほうがいいだろな。
>>660 ABoneは 2003/03/30 14:37:48 な感じ。
Aboneってidxの形式とか、
>>661 とか身勝手な仕様が多いよな。
もっと他のブラウザ見習えよ>委員長
>>661 それってローカルマシンの取得時刻なのかな。
サーバの時刻と1秒でもズレてたら If-Modified-Since で不一致に
なる気がするけど。
Aboneの場合idxはいらないからidxの形式は無視してもよかろ
667 :
デフォルトの名無しさん :03/03/31 16:17
1はいなくなったの?
>>665 じゃあ、コンバートしないでdat移動させるだけでよかろ(w
>>669 したけりゃすれ。スレの主旨わかってないなら過去ログ読め。
671 :
242 ◆GsQAUnYIlM :03/04/01 00:33
>>674 だからAboneはidxが無くてもdatとGetResList.txtだけでコンバートできるんだって。
おまえこそ過去ログ読んだ上で言ってんだろうな。
676 :
デフォルトの名無しさん :03/04/01 14:16
俺基準で自分の立ち位置の説明を端折りまくって 何とか相手を空回りさせたがってる低脳が頑張るスレ
>>675 どっちかというとAboneは、dat(+idx)の他にGetResList.txtが必要という見方もできるね。
ところで
>>1 は帰ってこないけど、じいさん大丈夫なんだろうか…
>>678 よかった、スルーできる利口なのばかりだったらどうしようかと(w
春だねぇ
perlやjavaならすぐできるとか言ってた奴らどこ行ったんだろうな
>>684 別にどこ行ったっていいんじゃない?
自分が作るって言ってて消えたんなら腹立つが。
春だねぇ
最大公約数的な素のままだと、ほとんどなにもしなくて良くて、すぐできるんだけど、 仕様が日々刻々変化する各専用ブラウザを最小公倍数的にサポートしようとすると、ほとんど不可能。 で、その間で、どの部分を採用して、どの部分を不採用にするかというのが、とてもめんどいんです。 でも、最小公倍数的にやらないと、元データにもどせないしね。
>>2 以来すぐできるすぐできると言われて未だにできてないスレ
>>692 dat ⇔ one はすぐできるけど、
dat ⇔ XML や one ⇔ XML は、すぐできないと思う。
なぜなら、
・XML のフレームワーク・ツール群を有効に活用できるフォーマットを
探索したいという要望がある。
・ログの共通フォーマットを規定する必要があるかも知れない。
それは、できるだけ多くのブラウザのログの仕様を考慮したものにしたい。
・または、必要最小限の情報だけを保持するだけのかも知れない。
しかし必要最小限だけならば、dat 形式を使えば済むかも知れない。
見極めが難しく、単独個人での見切り発車コーディングが困難。
・マークアップの難しさ。
文脈依存である情報をマークアップする必要性の可能性。
・2ちゃんのプログラマは、単独でのコーディングは得意?だけど、
匿名掲示板の特性上チームワークを発揮するのが難しい。
・需要の少なさ。ログコンバータは走らせる機会が非常に少なく、
プログラミングへの動機につながりにくい。
つまり、dat ⇔ one は技術的に簡単だし、単独でコーディングを進められるけど、
dat ⇔ XML や one ⇔ XML は、隠れた困難さがあるんだと思います。
か、書けたよ…。ありがたや。 ホスト規制つらかった〜。どうして急に書けるようになったんだろ? まーいっか・・。
dat ⇔ one の複合体でも良かったわけだ。
となると最初にXMLとか言った6が戦犯ですか?
あ、ログフォルダの場所が変わってる場合のこと忘れてた。
時間が掛かろうがどうだろうが、続けているのは偉いと思う。 継続は力なりと言うし。 ただなぁ、のが多いんだよ・・・。
次スレ「Monalog1.1ワーキングドラフトを議論するスレ」
むしろ現段階のMonalog1.0をワーキングドラフトということにした方が。
>>697 なんだよ戦犯って・・知能低いな・・。
折角みんなで知恵出し合って協力しあってるのに・・。
OK。これでXMLの仕様はパーフェクトだ。 ∧_∧ ∧_∧ (´<_` ) 意外とすんなり決めたな。兄者。 ( ´_ゝ`) / ⌒i / \ | | / / ̄ ̄ ̄ ̄/ | __(__ニつ/ FMV / .| .|____ \/ / (u ⊃  ̄ ̄ ̄ ̄ ̄
>>703 なんだよムキになって・・知能低いな・・。
折角みんなでスレ止まらないよう協力しあってるのに・・。
既存の2chブラウザの全ての機能を有するブラウザがあるとする。 するとそのブラウザの仕様は、今ここで語っている ログコンバータの仕様としても特に問題は無いだろう。 またブラウザの仕様な訳だから、他のブラウザにとっても利用し易いものだろう。 要するに、このスレはその「全ての機能を有するブラウザ」の仕様を考えるスレな訳だ。 で、XMLとかデータ保存形式の話だが、 それ以外の仕様を煮詰めてからでないと2転3転するだけだと思うのだが…
なんだよ「全ての機能」って。わざわざ機能の限界点を決める必要があるのかよ。
現存する2ちゃんねるブラウザからのみ要件を吸い上げて仕様化するよりは、 今後出てくるであろうブラウザの要件にも沿えるように、仕様の「先取り」を目指そうっていう話でしょ。 今ある仕様のメンテナンスがちゃんとできるようになったら、そういう方向を目指してもいいと思うよ。
で、予想外の新機能が出てくるたびに仕様を2転3転させなきゃいけないわけか
上位互換性を持つ拡張仕様を策定すればいいだけ。 …と、思うのは安易かなぁ
>>710 正しい。そのためにMonalog versionがある。
712 :
デフォルトの名無しさん :03/04/03 17:35
現在「既存のブラウザのログをXMLで記述する」という流れだが これを「新しいブラウザの仕様を考えてみる」という方向にしてみてはどうかと。 つまり →datの保存場所はxxxにする →idxにはxxxの情報を記録し保存場所はxxxにする →xxx機能の情報はxxxファイルに保存し書式はxxxである …等のブラウザの仕様を決めていく。 目標は既存ブラウザの全ての機能を有するブラウザである。 こうして出来た仮想ブラウザの仕様は、結果としてログコンバータのデータ保存形式になる。 …と考えたのだが。
>>712 というのを作者さん込みでmonazzilaスレでやりたいね。
もう、コンバータなんてどうでもいいからさ。
XML なら、ある程度の予想外の仕様変更にも対応しやすいと思う。拡張しやすいし。 //monalog/thread[@server = "???" && @category="???" && @key="???"]/res[@num = ???] という構造がそうガラリと変わるというわけでもなさそうですし。 基本的な構造は変わりようがないとも思いますので、 ブラウザ作者さんたちは安心して monalog に依存することができると思います。 仕様を制定する側も、XML ならブラウザ作者側のアルゴリズムに影響を与えないように 新たな機能追加をすることが可能かと。 例えば、しおり機能をつける時、次のどちらの仕様も スレを特定したり、レス内容を抽出したりするアルゴリズムに影響を与えません。 //monalog/thread/res[@anchored = true] とやっても、 //monalog/thread/anchor[@num = ???] とやっても、元からあるデータ構造に影響を与えません。
俺が予言してやろう。 この話は頓挫する。
>>713 そりゃそんな仕様が実現すればコンバートする必要なくなるしな。
そして、どんな風に拡張/マークアップしても、DAT にあった情報は残り続けます。 <res num="" state=""> <name>aaa◆bbb</name> ... </res> としても、 <res num="" state=""> <name>aaa<trip><symbol>◆</symbol>bbb</trip></name> ... </res> としても、res/name/text() から得られる文字列にはある程度の普遍性があるはずです。
ブラウザ作者もコンバータ作者もいないのに話してもなぁ
ありゃ・・
>>714 →
>>717 ね。
つまり、情報をフォルダで分けたりファイル名で分けたりしてもいいですけど、
XML の方が楽なんじゃん? っつー話です。
だってはじめから DOM だし、改行やタブで区切った順序重視のテキストファイルの
パーザを書かなくて済むんだもん。
XPath が整ってくれば、ますます楽になります。
イマノウチに XML のフォーマットを考えておくのが吉かと。
結局のところそういう共通のブラウザ仕様に準拠するブラウザと 非準拠ブラウザのデータをコンバートする話が出てきそうな予感。
>>719 ブラウザ作者は全員XMLを使え、と。正直無理ぽ。
そりゃあブラウザ作者が全員XMLの共通仕様を採用すれば、データの移行も 加工も何の問題も無いが、理想でしかないと思う。 いや、実現すれば本当に便利なことだとは思うのよ。
>>721 じゃあ名無しで書き込むなよ、チキン野郎が!
っていうかDATについては生で保存すれば良いわけで XMLにコンバートするまでもない
〜すればいい、というのはもっともな意見だが、強制でない以上、 準拠ブラウザと非準拠ブラウザが存在してそれら同士のコンバート話は尽きない。
>>722 あ、そうですね…。
技術的な問題があるのなら、そのブラウザは DAT に対応するだけで
いいんじゃないでしょうか。
まぁ DAT のパージングができる技術があるなら、DOM も扱えると思うけど。
>>725 XML は拡張がしやすいし、DAT 由来の情報の透過性があるので有効です。
ただし、「コンバートする」という作業には、マークアップ作業が伴うので
それがこのスレでの最大の議論点です。
なぜなら、
>>725 さんの言う通り DAT は生で保存されているので、
マークアップすべき情報が文脈依存だからです。
ここのスレの議論を読んでいましたが、既に
>>242 さんがコンバータを
作られているのにスレの流れが滞っているのは、そういう問題があるからだと
思います。
私はマークアップ作業をしたければ人の手で行えばいいと思いますが、
さすがに疲れるので、XML の構造は至極単純なものでいいと思います。
あ… XML の構造は至極単純なものでいい、と書きましたが、 これは DAT 由来の情報を XML へコンバートする際には 至極単純なデータ構造だけ保存すればいいという話で、 XML の共通拡張フォーマットを突き詰めて考えることには また大きな意義があると思います。
C#製ブラウザの作者かな?
.datとして格納されているログはマークアップしなくてもいいじゃん、って話と、 いわゆる.idxとしてブラウザ独自で持っている情報(機能)をまとめあげて、 さらに将来作成が予想される情報(機能)をまとめあげて「共通仕様」をつくろう、 という話が混ざっているように感じるが、、、。 ともかく、datのほうは置いておいて、idxについて考えてみると、、、 ・スレ取得日時とサイズ(差分取得のために必要) ・取得先URI(不要かな?) ・スレファイル名とスレタイトル ・どこまでよんだかの情報(レス番号? バイト数?) ・ローカルあぼーんするレス番号のリスト ...なもんかな?
>>731 > .datとして格納されているログはマークアップしなくてもいいじゃん、って話と、
いや、マークアップのするかしないかではなく、
どれくらいの詳細さでマークアップするか、ということです。
DAT からコンバートする場合はゆるくマークアップして、
より高品質なログを作りたい時に、機械的にまたは人力で
さらに詳しくマークアップをしよう、というわけです。
また、
>>731 さんの言うような idx ファイルなどの拡張情報を組みこみたいときにも
XML の拡張しやすさ(XML ファイル解析アルゴリズムへの影響の少なさ)が
メリットになりますよね。
では、
>>731 さんの言うような情報をどのようにして XML で表せばいいか、
他にどのような情報を埋め込められれば役立つか、話して行きましょうか?
>>732 私は「datはdatのままでBLOBで扱い、気にしないのが正解かな?」派(?)なんで、ああいう書き方になったんです。
# ログは、2ちゃんブラウザの持ち物ではなく「2ちゃんねる(掲示板)」の持ち物って感じかな?
# マークアップするなら、それこそ2ちゃんねるから離れた「理想の掲示板としてあるべき
# 書き込みデータ仕様」を定義してからの方がいいと思う。2ちゃんねるの仕様に依存するのは
# (主催者側の都合によって変わる可能性があるので)危険すぎ。
...まあ、この部分は置いておいて、Aboneには
・最終書き込み時間
・そのスレで名乗るハンドル名
・ログタイプ
・所属カテゴリ
もあるのかな。(>580より)
>>733 > 私は「datはdatのままでBLOBで扱い、気にしないのが正解かな?」派(?)なんで、ああいう書き方になったんです。
私も dat は dat のままで扱って、XML はこのスレの副産物みたいなものという
位置付けで理解しています。
もともと私は、2ちゃん系掲示板のログを操作するのに XML 形式の
外部フィルター情報ファイルの使用を考えていましたので、
このスレでログの XML 形式の仕様が議論されているのを見かけて、
ログの標準 XML 形式が決まるなら、私のフィルター情報 XML ファイルにも
それにのっとったデザインを施そうと思ってたのです。
というわけで私は、ログのコンバータは one ⇔ the other のプラグインをそれぞれ
需要のあるだけ作る必要しかない、という意見です。
そして、one ⇔ the other のコンバートをする際に、必ずしも一方のブラウザのログ形式が
dat 形式にのっとっていない場合があるので、one ⇔ dat を作る必要が出てくると思います。
それを one ⇔ XML に置き換えても大して開発コストは変わらないんじゃないか
という意味で、副産物的 XML フォーマット規定を期待しています。
>>733 > # マークアップするなら、それこそ2ちゃんねるから離れた「理想の掲示板としてあるべき
> # 書き込みデータ仕様」を定義してからの方がいいと思う。
あ、2ちゃんは理想的な掲示板じゃないんですかねぇ、やっぱ?(笑)
理想の掲示板というと、PHP でガツガツに作られたフォーラム系の掲示板が
最も近いでしょうか?
2ちゃんもフローティングスレッド方式掲示板の範疇でいえばいい線いってると
思いますけどね。
> # 2ちゃんねるの仕様に依存するのは
> # (主催者側の都合によって変わる可能性があるので)危険すぎ。
同意です。でも、まぁ既存の2ちゃんブラウザは全て2ちゃんねる(や他の掲示板)の
仕様に依存しているので、そんなに危惧するほどでもないと思います。
仕様といっても1投稿あたり4フィールドしかない単純で普遍的なレコード形式の
基本を守ればログのパージングはできますし。
とりあえず考えておきたいのは、
>>731 や
>>733 で挙げてくださった情報についてです。
どんな種類の情報があると便利か・どこに格納するか、などです。
a) ブラウザをサポートする情報(取得サイズなど)
b) ユーザの2ちゃんサーフをサポートする情報(コテハン記録、しおり機能など)
c) ユーザがログを評価・操作する情報(ローカルあぼーんなど)
d) ログファイルの由来を示す情報(取得先 URI、ログタイプなど)
上記の中で、c) については、
>>266-270 あたりに述べた通りです。
こういった種類の情報を、idx に格納するか、XML 形式のログに埋めこむか、
共通拡張機能フォーマット XML を規定して、ログとは独立させて
外部ファイルとしてもつか、とかみんなで検討して欲しいです。
>>734 私の立場は、モバイル機向け2ちゃんねるブラウザの開発で、母艦の2ちゃんねるブラウザとの"データ同期"は、
喉から手が出るくらいほしい機能なんですよね。(実際に要望もありますし。)
で、2ちゃんねるブラウザすべてに対応するのはまず無理なんで、1つに絞るかど〜すっかなあ、
datはどうにかなるけど付加情報をどうすっかなあ、って時にここを知って発展させたい、と思っています。
# いつでもどこでも2ちゃんねる、などという、それこそニーズは限定される使い方にはなるんですけど...。
xmlにしたにしろ"2ちゃんねる管理のdat形式"にコンバートするのは必須でしょうから、これはできてアタリマエだと考えて
いるんですが、まず興味があるのは
・コンバート後のログを使って差分取得してもレス番号がずれないか?
・スレにレスを書き込みできるのか?(そのための情報に欠落がないのか?)
・コンバート時間は?
です。(これらは今のMonalogで、特に問題はないと考えてますが、検証したい項目です...。)
で、とりあえず。
>737の続きです。 で、とりあえず形式は別にして、2ちゃんねるブラウザが「共通に持つ情報」と「共通に持たない情報」とに分類してから、 と思ったのですが、どうでしょう? # そのためには、「今2ちゃんねるブラウザが持っている項目を具体的に挙げていきたい、と。 で、xmlはそれこそど〜とでもできる形式なんで、具体的にどこに置く、ってのは後回しでも良いかと思っていました。
ごめんなさい。まわりくどかった。 「スレ毎に持つ情報」 ・スレ取得日時とサイズ(差分取得のために必要) ・取得先URI(サーバ名+板名+キーで持つ?) ・スレファイル名(キーと同一?) ・スレタイトル ・どこまでよんだかの情報(レス番号? バイト数?) ・ローカルあぼーんするレス番号のリスト ・最終書き込み時間 ・そのスレで名乗るハンドル名 ・ログタイプ(ログの構造形式?) ・所属カテゴリ(格納ディレクトリ名?) 「ブラウザ全体で持つ情報」 ・取得済みスレリスト 以外に2ちゃんねるブラウザが持っている(持つべき)情報って、どんなのがありますか?
>>737-739 ログを取得するには、dat のどこまで取得済みかを記録しておけば良いそうです。(
>>531 )
レス動作に必要な情報は、カテゴリ名("tech")、スレ key("1046742687")、
時刻、そしてクッキー制御でしょうか?
コンバート時間は非力な CPU でも問題ないくらいだと思います。
ただ、XML を導入するなら、あまりにデカい DOM Tree はモバイル機のメモリには
つらいかも知れません。SAX 実装を使えばいいんでしょうけど・・。
「スレ毎に持つ情報」は、
>>739 にあるの以外思いつきませんけど、
「ブラウザ全体で持つ情報」は、板一覧とか、板毎のスレ一覧とかでしょうか。
ここらへんは他のブラウザをもう少し突っ込んで調査する必要がありそうですね。
委員長さんの記述
>>579-582 も参照
参考までに、OO 分析をする上での3つのアプローチ
1) 実際の世界を参考にし、オブジェクト構造を似せようとする
2) オブジェクトに責任を振り分けるように組み立てる
3) ユースケースを基にデザインする
>>731 さんの場合、やりたい事が決まっているので、3) が良いと予測します。
共通 XML 形式の仕様を決めるなら、2) のアプローチが良いと考えます。
↑つーか余計なお世話? でもなんか決定基準があったほうが納得しやすいんで。
>>740 このスレ的には、共通XML形式が決まって、それが特にブラウザのログコンバートで使われるようになるのが、成功だと思うのですが、どうでしょう?
# ここで同期手段についてのあれこれは、やるつもりはないですよ〜。
で、732さんの考える"オブジェクト"って何になりますか?
私だったら、「スレ」「板(掲示板)」「ブラウザ」の3つかなあ。
# 「板カテゴリ」というのもあってもよいかも。
スレ情報に追加。
・取得時にエラーになったかどうか
共通XML形式が決まったら、それに直接対応するブラウザも出てくる。 そしたら世の中の色んな掲示板のデータを共通XMLに変換するフィルタを作れば 掲示板ブラウザという新たなジャンルが
ふと、このスレ見てて思い出した事がある……。 何年も前に、ある会社のバイトで働いていた時に、 その会社が嫌になって、 ばあちゃんが倒れて、あぼーんしたのをきっかけに そのままトンズラこいた事があった…。
正直、コンバータ本体はどうでもいい・このスレでは作らなくてもいい、と思ってるが、 XML形式の話が出ると待ちきれなくなった馬鹿が煽ってる場面を何度も何度も見かけたし、 また出てきそうな悪寒がする
>正直、コンバータ本体はどうでもいい・このスレでは作らなくてもいい、と思ってるが なんでこのスレにいるのかが気になる
>>746 漏れも何故か気になって、ここを覗いてしまう。monazzila(初期)、gikozzilaの虎馬だろうか?
>>743 つーか「○○なのでしばらく書き込めません」は
そのまま失踪するときの定番パターン
俺もそうだったから、気持ちは良く分かるというか普通そう書くだろとか思うが。 重ねるのは z じゃなくて l です。 ツマラン突込みだなまったく
モナッヂラ。ギコッヂラ。
げげ、検索したらヒットしたので、、、(いいわけ)
モナヂッラ
>>752 あんまりしつこくすると、このスレ終わるぞ(おどし)
すでに終わってる罠
>>749 余計なことは何も書かない。これ最強。
最悪なのは「遅くとも今月末までには」とか期限を切ること。
見舞いから始まり線香まで終わり、何とか戻りました。 しばらく期間があいてしまいましたが 自分の居場所はもう用意されてない予感...。
居場所なんてモノは自分で作れ
いま>758がカコよさげだと思わせつつ実はあまり解決になってなさそうな事言った!
いや、確かに自分の居場所は用意されているものではないな。
実はあまり解決になってなさそうな事を言ったのは
>>757
なにはともあれ、とりあえずオカエソ
763 :
デフォルトの名無しさん :03/04/12 14:30
なんでXMLなんか使うの?
なんで1さんが帰ってきたとたんにスレが止まるの?
というかもうコンバーターはできたんじゃ?
スレの内容を保持する以外にも、外部機能をつけるという流れだったような。 しおり・ローカルあぼーんなどに対応とか・・・ まぁ誰か何か思いついたら書きこんでくださるでしょうし このままマターリしててもいいんじゃないでしょうか。
基本的に dat + 付加価値 という形で 完全に別に扱わないといけないところを同列に扱ってるようでは なんだか
終わったな
同列に扱える、それがXML。
770 :
デフォルトの名無しさん :03/04/14 00:45
2chをASP化しようぜ
>>769 だから、同列に扱っちゃダメだ と言っている。
datはdatで使うんだから。
XML分かってる? あーいや、逆にダメな理由を説明してくれまいか。
で、これのXMLの文書型はどこにあるの? まさかインスタンスだけ?
↓から、何事も無かったかのように再開してください。
次はできるだけニュースです
(^^)
778 :
デフォルトの名無しさん :03/04/17 22:07
梅宮アンナが極楽の山本にホの字っていうお話。
マジっすか
以上をもちまして、2chブラウザののログコンバーターを語ろうスレは終了とさせていただきます。
781 :
デフォルトの名無しさん :03/04/18 18:10
終了記念カキコ
−−−−−−−−−− 再開 −−−−−−−−−−−
784 :
デフォルトの名無しさん :03/04/18 21:02
でつ ↑を10秒以上見ていると…
スヌーピーだっけ?
786 :
デフォルトの名無しさん :03/04/18 21:04
でも、アトムはお茶ノ水博士が作ったわけではない。
>>787 アトムの作り親の出身地、出身大学、星座を述べよ
↓
789 :
デフォルトの名無しさん :03/04/19 00:36
完成したの?
∧_∧ ( ^^ )< ぬるぽ(^^)
( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←
>>1
792 :
デフォルトの名無しさん :03/04/24 20:10
793 :
デフォルトの名無しさん :03/05/04 22:29
これで友達に頼まれてログを保存するために、相手用のブラウザ入れておく必要が無くなりました。
すばらしいです。
俺開発できないのに
>>1 からずーと3時間くらいこのスレ読みふけってました。
皆さんお疲れ様です。
794 :
デフォルトの名無しさん :03/05/06 08:34
>>794 を実行したら
テキストファイルが物凄い勢いで生成されました
796 :
デフォルトの名無しさん :03/05/06 18:22
>>794 実行してみたら、もの凄い勢いでディスクにアクセスし始めました…。
10秒経っても表示されなかったからすぐ終了したけど、なんなの?
だからウィルスだっての チェックしとけ
>>798 (((((( ;゚Д゚)))))ガクガクブルブル!!!
もしかして自分は795に釣られたのか(;´д⊂
Rubyが800ゲット
>>799 なんかとにかくいっぱい「(・∀・)」とだけ書かれたテキストファイルが
何千個も。つりじゃ無しに。
>>801 本当だ。
*.TXTで検索したら、Cドライブのディスクトップに6000個ほどファイル(60MB)が出来てた(w
Dが起動ドライブだから気が付かなかった。
疑ってスマソ。。
>>802 ディスクトップってルートディレクトリのこと?
新しい解釈な感じ(笑)
>>803 ごめんようデスクトップね。
C:\WINDOWS\デスクトップ\xxx.txt
正直すまんかった
___
/;;;γ'⌒゙ヽ、
ギャー!! / ヽ
ギャー!! ◎ l ))
。∧_∧、 /,.;
(( と(・Д・;ll);ヾ、__,/彡・,ハイ、ツギ。
゚・ し'"γ'⌒;ヽ、`ミ゚;`'.∧∧ ∧∧
/,;;;;;;;'/ ヽ;'∵‘(゚ー゚*) (゚ー゚*) やめてくれー
(( i;;;;;;;;;;i ◎ ゙i ;' (| つ と つ ∧_∧
ヾ;;;;;;;,ヽ、 ノ | 〜 | 〜\(; ・∀・) ←
>>805 `ー--=ニ-ー' UU (/ヽ) ミ彡ミ彡ミ ズルズル
U___つつ ))
794はこれ作るためにテストやったんだろうね。 「(・∀・)」まみれになりながら。 ・・アホすぎる。
どうせ大量テキスト吐かせるならdatをDLするソフト作ればこのスレっぽかったのにな。
>>807 テストなんかしねえよ。
たかが5行のプログラムだし。
と言いつつこっそりテストしていた
>>794 であった
実は5個だけ作るように設定してテストしたけどな...。 動作確認してから10000回ループに変えました。 すみません。ヘタレです。
>>811 いや、テストは大事だよ。
ちゃんとテストしたと聞いてお前の将来に光が見えた。
ボケェ
で、結局何がしたかったんだ
でもさぁ、XMLにしてみたけど他の用途で使われてないよなぁ。 いろんな外観のHTMLに変換するXSLTは書いてみたんだけど、そんな需要も無いみたいだしなぁ。 ログに対して需要のある操作ってキーワードの検索の他にどんなのがあるだろう。 ○年○月○日○時頃の○板の○スレのログが欲しいとかかなぁ。
ここにぽんと置かれているだけだからねえ。 知名度が低い。
ま、まともなもんできてねーしな XMLも文書型無しでインスタンスだけだし こんなんで使うわけねーわな
>816 よくわからんけど、文書型っていうのがあると、用途が増えるの?
ログの需要っすか。 人類共通の財産として、P2Pとかで共有するときのリスト付きとか。
XMLって言いたいだけのヤツが多いな
XMLと言いたいだけのプロジェクトから罷り間違って何か成果ができちゃったらいいなぁということですよ
で、結果は? なにかデキタの?
全ては進行中である
Perl使えば何日かで出来るだろ。 ログの仕様が分からないと無理だけど。
825 :
デフォルトの名無しさん :03/05/25 00:19
826 :
デフォルトの名無しさん :03/05/26 00:21
827 :
デフォルトの名無しさん :03/05/27 16:52
>>242 さん。
ブラウザログ→Monalogは問題ないんだけど
Monalog→ブラウザログへの変換でエラーがでます。
エラーもスルーしてもらえればいいんだけど
Cornbutterが強制終了してしまいます。
ログコンバーターなんて不用。 2chのログがそんなに大事か?
>>828 =なんにでも首を突っ込んで余計な一言を言うため、
クラス中から嫌われてるヤシ。ただし自覚はない。
∧_∧ ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。 =〔~∪ ̄ ̄〕 = ◎――◎ 山崎渉
test
[スレタイ] 2chブラウザののログコンバーターを作ろう
[最終更新] Fri, 30 May 2003 11:49:50 GMT
[書込件数] 834
[表示位置] 829
[マーク] F
[板URL]
http://pc2.2ch.net/tech [状態] 0
[新着] 0
[コテハン名前] test
[コテハンMail] !sage
[最終書込 UnixTime] 1054327768
[最終取得 UnixTime] 1054327769
[既読位置]
ワラタ
ほしゅ
え?コンバーターって完全に完成してるんだよね?
>>1 さん、遅ればせながら乙 !
HPに特定スレの過去ログまとめて倉庫にする場合なんかに使える?
使えるよ。これでやる意味はなさそうだけど
842 :
デフォルトの名無しさん :03/07/01 14:08
>>839 ごめん、826は俺なんだが。悪いな、当てが外れて。
843 :
デフォルトの名無しさん :03/07/01 14:09
というか完成してるかどうか、ホントに分かってないんだが。 完成してるの?
>>843 してるような、してないような。。。
作者から正式なアナウンス欲しいな。。。
恐らくメインは完成してると思う。
後はプラグインの問題。
じいさんが倒れたのを口実にして逃亡した腑抜けな>>1に乾杯(´ー`)ノ▼
そういえばその後音沙汰無いな
__∧_∧_ |( ^^ )| <寝るぽ(^^) |\⌒⌒⌒\ \ |⌒⌒⌒~| 山崎渉 ~ ̄ ̄ ̄ ̄
__∧_∧_ |( ^^ )| <寝るぽ(^^) |\⌒⌒⌒\ \ |⌒⌒⌒~| 山崎渉 ~ ̄ ̄ ̄ ̄
849 :
デフォルトの名無しさん :03/07/29 16:13
janeのログって他のプラウザに変換できる?
>>849 Janeのログはシンプルで仕様も公開してるけど、
問題は他のブラウザの仕様かな。
まあ、たいていはさくっとコンバートできるけど。
(^^)
保守
(⌒V⌒) │ ^ ^ │<これからも僕を応援して下さいね(^^)。 ⊂| |つ (_)(_) 山崎パン
ほしゅ
まだぁ〜チンチン
夏草や兵どもが夢の跡 〜松尾芭蕉〜
まだぁ〜チンチンシュッシュッ
ほs
はやくしろ
彡 ビュウウウ… 彡 彡 .∧ ∧ 寂れてんな、オイ… ヾ(,,゚Д゚),) 人つゝ 人,, Yノ人 ノ ノノゞ⌒〜ゞ . ノ /ミ|\、 ノノ ( 彡 `⌒ .U~U`ヾ 丿
ほしゅ
はやくしろ
ほ
これでjaneのログを全部xmlにしてみたが…、 使い道が…。
867 :
デフォルトの名無しさん :03/12/15 23:33
ブラウザ乗り換えでログをどうしようかとコンバート関係を検索してたらここに辿り付いたのでカキコ なんでこんな煩わしい手順踏んでるだろうと思ったら>693が理由を述べてて解決
ちなみに最初から最後まで重要なのはdatの相互変換ではなく
設定ファイルの相互変換だったわけだが。ブラウザの乗換えを
容易にしたいという
>>1 の理念は勘違いどもに蹂躙され、スレも
廃墟と相成った…。
というか最初からちゃんとしたブラウザを選んでればいいわけだが。 そろそろ、開発ラッシュも終わってきたしさ。
とりあえずdatの相互変換さえしてくれれば、あとは手作業で何とかするよ
このコンバーターを再利用して、xmlでスレを保存して ゆくゆくはrssで…。 とかムリか…。
>>840 のようなhtmで過去ログ置いてるような所のを2chブラウザ用に変換できると
便利なんだがなあ。
大抵広告入ってたり手が加わってる、酷い物はスタイルシートのタグが沢山・・・
Perl で Template::Extract 使うと楽だよ。
876 :
デフォルトの名無しさん :04/02/11 14:58
保守上げ
このスレまだあったのか・・・ おかげでゾヌ2からjaneへ移行できますた。
ののたんログ
保守
ゾヌ2から「OpenJane」「Live2ch」゙「twintail」へ移行希望保守
最下層なのでage
ageるな!
884 :
デフォルトの名無しさん :04/08/11 17:48
このスレでXMLが何か、どう扱うのかを知った記念age
XSLTも
dll
プラグイン!
888!
!888
図らずも900を取ってしまったわけですが
10足りねーよ
未だに2chブラウザを移行したことがない俺って・・・
昔はかちゅ使ってたな。
今は?
OpenJane
かちゅ
openjane
katyu
unko
図らずも900を取ってしまったわけですが
901!
902!
unko
unkoなんて2chブラウザ無い。
俺が作る
906 :
デフォルトの名無しさん :04/08/16 00:42
パーサは何使ってるよ?MSXML?
msxml
ms×ml
完成まで後91レス
910 :
デフォルトの名無しさん :04/08/16 15:23
ハァ?90レスだろ
89
88
86
お前ら数も数えられないのか。正確には後85だ。
916 :
デフォルトの名無しさん :04/08/16 17:20
ん?84じゃね?
83
ここで81だろ?
んで80
79
ここが正しい79
RX-78
RX-77-2
924 :
デフォルトの名無しさん :04/08/17 17:14
南無
NASA!
928 :
デフォルトの名無しさん :04/08/18 23:16
何?
929 :
デフォルトの名無しさん :04/08/18 23:37
おれがperlで5分で作ってやるよ
931 :
デフォルトの名無しさん :04/08/18 23:50
かちゅ→ギコナビ の時につくったやつがあるよ
932 :
デフォルトの名無しさん :04/08/19 16:18
まだ?
今年中に1000逝くのかな?
今月中だな
今日中だな
936 :
デフォルトの名無しさん :04/08/19 19:51
今日の中の人だな
今日は終わりました。
今日は終わってませんがなにか?
昨日は終わりました。
940 :
デフォルトの名無しさん :04/08/20 17:10
悟空
おっす
943 :
デフォルトの名無しさん :04/08/22 17:37
944 :
デフォルトの名無しさん :04/08/22 18:18
OpenJaneも終わったことだし XMLベースで考えようぞ
おわってねーよ!
今何が一番使われてるわけ?
947 :
デフォルトの名無しさん :04/08/22 22:31
OpenJane
unkoブラウザ
そんなブラウザ、無い。
950!
ついでに951!
952 :
デフォルトの名無しさん :04/08/24 17:39
.NETなら簡単にXMLが使えるけど、やっぱ非.NETアプリの方を使いたがるだろうな。
次スレは何処?
次スレってなに?おいしい?