トップページ⇒linux
976コメント637KB

Kita - 2ch client for KDE part2

■ このスレッドは過去ログ倉庫に格納されています
0001kitaの中の人 ◆KITAulkOso 04/07/16 00:31ID:IZzU7SYf
KitaはKDE用2ちゃんねるブラウザです。
名前の由来はKDEの'K'に「板(board)」を加えたのと、キターー(゜∀゜)ーー!!から来てます。

Kitaのウェブサイト
http://kita.sourceforge.jp/
http://sourceforge.jp/projects/kita/

Kita Wiki
http://kita.sourceforge.jp/cgi-bin/hiki/hiki.cgi

前スレ
Kita - 2ch client for KDE
http://pc5.2ch.net/test/read.cgi/linux/1069738960/

前々スレ(DAT落ち)
おいお前ら! GTK+使ってLinux版かちゅーしゃ作れや
http://pc.2ch.net/test/read.cgi/linux/1022744633/
045142104/11/04 00:02:57ID:Rso8CXWx
パッチ。kitaディレクトリで patch -po

ttp://www.geocities.co.jp/SiliconValley-Bay/7435/patch-1103.txt

内容は

・ライブドアしたらばへの書き込み、スレ立て対応

> まだ微妙に頭が痛い

いや、マジお大事に・・・
0452login:Penguin04/11/04 00:18:01ID:j2O9zaQd
>>444
逆にsupplementaryのKDE3.3.1 & automake1.9.2に上げるという手もある。
この組合せでためしにやってみたが、問題なくコンパイルまでいけた。
ただし、SUSE使いなら知ってると思うが、supplementaryは保証外のパッケージだが。
まあそんなこといったらKita自体もSUSEでは保証しないわけで。
0453login:Penguin04/11/04 14:40:34ID:oVttPLSP
こん**わ。
以前、したらばのやつが動かねえと質問投げたバカです。

>>451
さっそくいただき、cvsなソースにあてました。
Debian sargeですがautomakeが古いもんでエラーになります。
指示に従い、1.6系がいいだろうということで
automake1.6.3をgnu.orgから貰ってきてOKですた。

現在、いつも出かけてるしたらばのスレを全部登録して巡回&カキコ試してまつ。
今は仕事中なんでそれ系のスレしか行けないのですが
夜にはネタスレヲチスレ避難スレの類も登録していろいろ試してみます。
何かあったら報告します!
では!
0454443=69104/11/04 15:28:08ID:t2D9bZ2L
>>452

> 逆にsupplementaryのKDE3.3.1 & automake1.9.2に上げるという手もある。
> この組合せでためしにやってみたが、問題なくコンパイルまでいけた。

おかしいな?そんな事ありえないはずだけど
KDEのバージョン上げてもKitaのビルドスクリプトは更新されない
だからMakefile.cvsはautomake 1.6.xとautomake 1.7x以外は弾くはずだけど
ちなみにMakefile.cvsの実際の処理はadmin/cvs.shがしてて
check_autotool_versionと言う関数でバージョンチェックしてる

>>453

> Debian sargeですがautomakeが古いもんでエラーになります。
> 指示に従い、1.6系がいいだろうということで
> automake1.6.3をgnu.orgから貰ってきてOKですた。

$ apt-cache search automake
(略)
automake1.4 - A tool for generating GNU Standards-compliant Makefiles.
automake1.6 - A tool for generating GNU Standards-compliant Makefiles.
automake1.7 - A tool for generating GNU Standards-compliant Makefiles
automake1.8 - A tool for generating GNU Standards-compliant Makefiles
automake1.9 - A tool for generating GNU Standards-compliant Makefiles
(略)
と言うわけでDebianでautomakeのソースを使う必要はないのだが
>>442もこれくさいな

ところでそのDebianでKitaのパッケージをほぼポリシー準拠した形で作ったけど
需要ある?ありそうならこれから上げようと思うけど
045545304/11/04 18:01:52ID:oVttPLSP
>>454
>>と言うわけでDebianでautomakeのソースを使う必要はないのだが

うげ、今見たら確かにそうなってた OTL スマソ。

>>ところでそのDebianでKitaのパッケージをほぼポリシー準拠した形で作ったけど
>>需要ある?ありそうならこれから上げようと思うけど

需要あると思われ。
俺はしたらばパッチとか試したいんですぐには使えないが
パッケージになるなら是非使わせてもらいます。


0456kitaの中の人 ◆KITAulkOso 04/11/05 00:20:41ID:aTMLdh1y
>>435-437>>446>>451
をcommitしました。現在のところ大きな問題は、

まちBBSの一部の板(東京など)でsubject.txtが読めない(↓のログが出る)
kio (Filter): WARNING: KFilterDev::open: Couldn't open underlying device

くらい。いつ頃からおかしいかは調べてません。
まちBBS関連は多分自分が見ますがもし心当たりがあったら直してください。

多分今週末にsnapshot出します。
お気に入り整理のUIとBBS_MOVEDあたりはそれまでに何とかしたい。
045769104/11/05 00:22:33ID:IEG4uMSb
2ch復活記念カキコ

http://www.geocities.jp/tossi0x19/soft_arc.html#kita_debianized
KitaのDebianパッケージうpしました
ソースのみですが
0458rpmpointの中の人 04/11/05 00:25:51ID:UO2JcUgG
>>457
リンクさせてもらっていいでしょうか
045969104/11/05 00:36:59ID:IEG4uMSb
>>456

> kio (Filter): WARNING: KFilterDev::open: Couldn't open underlying device
KDE 3.3.1ではちゃんと読めます
おそらくHTTPが転送時にBzip2圧縮してる(Content-encoding: deflateだったかな?)のを解けないのが原因でしょう

>>458
> リンクさせてもらっていいでしょうか
どぞー
大した物ありませんが
046042104/11/05 00:42:41ID:MMRY6Hlj
鯖復活しましたね。また設定をミスったのかなw
でパッチ。cvsとの差分(というか上のパッチとは排他的)

ttp://www.geocities.co.jp/SiliconValley-Bay/7435/patch-1104.tar.gz

内容は

・ListViewItemで色の指定が出来るようにした(設定部は作ってない)

Kita::ListViewItemというクラスを作って、KListViewItem::paintCell()をオーバライドして
そこでテキストや背景色を設定。詳しくはKitaBoardView::showBoardList()あたりを見てください。
するとこんな感じに。テスト用に適当に色を付けたので激しくケバイですがw

ttp://www.geocities.co.jp/SiliconValley-Bay/7435/ss-1104.png

それとlistviewitem.{h,cpp}はとりあえずsrcの下に置いときましたが、適当な場所に移しても
構いません。
046142104/11/05 01:14:01ID:MMRY6Hlj
短期的な予定

とりあえず明日出す予定のKitaWriteView用のパッチ(書き込みウィンドウに改行数や
バイト数を表示させて制限を越えている時に書き込もうとするとダイアログを出して注意)
で現バージョンで私が拡張しようと思っていたことはとりあえず全部です。

あとは一番やっかいなKitaThreadViewクラスの整理に移ろうと思っていますが、
その前に上のクラス( KitaTabWidgetBase, KitaThreadTabWidget )の
整理の方を先にする予定です。

それらが終わったらバグ潰しモードに入る予定。
046245204/11/05 02:27:06ID:m45V2Ebp
>>454
うぎゃー
自分で大分前にautoconf1.7.9持ってきてたの忘れてたーー(しかもそっちにパス通ってる)
ということで>>442=444さん、ウソ言って申し訳なかったです。。。
それでは吊ってきますノシ
046346204/11/05 02:29:04ID:m45V2Ebp
う、autoconfじゃなくてautomakeだよ
嗚呼、人間やめたくなってきた。。。
0464login:Penguin04/11/05 02:52:43ID:MByfnExC
イキレ
0465login:Penguin04/11/05 13:16:57ID:HPcjPRXQ
む。CVS版で板一覧更新すると落ちる…?

Debian sarge。checkinstallで煎れてる。
$HOME/.kde/share/apps/kitaを全部消しても効果なし。

$ kita >& logfile で起動すると以下のようになる。

kita: WARNING: KXMLGUIClient::setXMLFile: cannot find .rc file kitanaviui.rc

enroll 臨時地震 http://live18.2ch.net/eq/
:
:
enroll 撫子 http://jbbs.livedoor.jp/movie/1411/

enroll 臨時地震 http://live18.2ch.net/eq/
KCrash: Application 'kita' crashing...

「撫子」と書いてあるのがextbrd.confに書いてる奴なのでそこまでが起動時の板一覧取得だと思う。
板一覧の更新を選んで再び「臨時地震〜」が出た後に落ちるっぽい。

何か試すべき事はあるかな?
0466kitaの中の人 ◆KITAulkOso 04/11/05 22:00:21ID:aTMLdh1y
>>465
再現してバックトレースも取れました。
http://kita.sourceforge.jp/misc/bt-20041106.txt

421さんお願いします。
046742104/11/05 22:17:11ID:ka67t3/l
じゃあ早速w

>>465を直すついでに、予定を変更して板まわりのバグとかの修正パッチ。
>>460からの差分で kitaディレクトリで patch -p0

ttp://www.geocities.co.jp/SiliconValley-Bay/7435/patch-1105.txt

内容は

・.kde/share/apps/kita/board_list が無い状態の時に板リストが取得できないバグ修正

Boardクラスを廃止する過程で混入したバグ。KitaBoardView::downloadBoardList()や
KitaBoardView::getCategoryList()を若干修正して対応。簡易化して Category クラス
は廃止したので、libkita/category.{cpp,h} は削除して下さい。

なお近い将来、上のKitaBoardView::downloadBoardList()やKitaBoardView::getCategoryList()
は BoardManagerの方に移す予定。

・ついでに板移転処理の半自動化

BoardManager::enrollBoard()あたりをいじって半自動更新。
自動検知は出来ませんが、手動で板一覧の読み込みで更新したときに移転した板があるときは移転処理します。
キャッシュとかboard_listをいじった模擬テストでは問題無かったですが、実際の移転はまだ未テスト。

それと直すの忘れないようにメモ: 初めて開く板は2回クリックしないと開かない( ディレクトリ無いから )
046842104/11/05 22:26:02ID:ka67t3/l
書くの忘れてましたが、>>465の原因はBoardManager::clearBoardData()で
m_previousBoardData = NULL; するの忘れていたためデータベースの検索
関数のBoardManager::getBoardData()でセグフォを起こしたため。

ちなみにそこの if( m_previousBoardData != NULL ) 以下の数行は何をしてるかというと、
BoardManager::getBoardData()は同じURLで繰り返して呼び出される事が多いので、前回の
呼出で使った BoardData のアドレスを保存してサーチを高速化してます。まあキャッシュみたいな感じ。
0469kitaの中の人 ◆KITAulkOso 04/11/06 00:47:59ID:HTXC8lB1
お気に入りはとりあえずいい加減なUIのもとだけ作りました。

>>457
後でリンクさせてもらいます。

>>460>>467
マージしました。色設定はそのうちプリファレンスに入れます。
crashするバグも治ってるのを確認しました。
板移転もパネルが出ることだけは確認。見ていない板なのでディレクトリ構造は見てません。

> それと直すの忘れないようにメモ: 初めて開く板は2回クリックしないと開かない( ディレクトリ無いから )
>>456のsubject.txtが読めないのもこれが原因みたいですね。
手動でmkdirするとアクセスしにいくようになりました。
047042104/11/06 01:57:08ID:kN8KRB7/
> 色設定はそのうちプリファレンスに入れます。

ちなみに色の設定は文字、奇数行、偶数行、背景色の4つ必要です。それと
KitaSubjectView の KListViewItem も Kita::ListViewItem にする必要があり
ますが、KitaSubjectViewいじる予定が無いなら明日あたりでも私がやっときます。

> 手動でmkdirするとアクセスしにいくようになりました。

最初にクリックした瞬間にmkdirするようにすれば良いのかな。まあこれも
私がやっときます。kita_miscに再帰的にmkdirする関数を作る予定。
0471login:Penguin04/11/06 19:43:31ID:kkevDZC2
対処ありがとうございます。動作確認しました。
次々すみませんが、今度は先程いただいたCVSでスレ一覧が出なくなった板があります。

※萌えバナ( ttp://jbbs.livedoor.jp/movie/1259/ )
※萌えバナ退避( ttp://jbbs.livedoor.jp/game/1966/ )
(以前は読み書きのできた板です。既にお気に入りに登録してあるスレ自体は読み書きできるっぽい)
コンソールでkitaを動かすと以下のメッセージが出力されます。

kita: Requested OpenURL: "http://jbbs.livedoor.jp/movie/1259/"
kita: content type: ""
kita: service type: ""
kita: NewTab: no, reload: no
kio (Filter): WARNING: KFilterDev::open: Couldn't open underlying device

同じしたらばでも、以下は問題ないようです。
※TYPEMOON ( ttp://jbbs.livedoor.jp/otaku/995/ )
※葉鍵月猫揚板 ( ttp://jbbs.livedoor.jp/game/3290/ )
~/.kde/share/apps/kitaを削除してextbrd.confのみコピーしてもダメ、
UTF-8で書いてた板名称をUS-ASCIIで統一してもダメでした。
う〜む何が違うんだろ。メッセージ出てても意味がわからんから報告しかできねえ…。

ってろくでもねえ板ばっかだな俺 OTL
アレな人柱ですみません。
047247104/11/06 19:48:03ID:kkevDZC2
しまった、訂正です。

>>既にお気に入りに登録してあるスレ自体は読み書きできるっぽい

これ確認できてませんので不明です。もちつけ俺 OTL
失礼しました。
047342104/11/06 20:52:11ID:UJ5EKkD7
今日は朝から遊びまくってて1行もコード書いて無かったりしてw

>>471
それは単に>>470の

> 最初にクリックした瞬間にmkdirするようにすれば良いのかな。まあこれも
> 私がやっときます。kita_miscに再帰的にmkdirする関数を作る予定。

あたりの問題なので3時間後くらいにはたぶん直ってます。
047447104/11/06 20:55:03ID:kkevDZC2
>>473

了解です。ありがとうございます。
047542104/11/06 22:41:18ID:UJ5EKkD7
で、パッチ。>>470のmkdirのところ、及びちょっとだけデバッグ。 src フォルダで -p0

ttp://www.geocities.co.jp/SiliconValley-Bay/7435/patch-1106.txt

あと>>470の

> KitaSubjectView の KListViewItem も Kita::ListViewItem にする必要があり

もやっておこうと思ったのですが、クラスの継承が

ThreadListViewBase -> ThreadListView -> FavoriteListView, KitaSubjectView

と複雑になっていて、KitaSubjectView::loadBoard()とFavoriteListView::update()で
同じコードを2回書くのが面倒くさかったので今日はパス。ThreadListViewとFavoriteListViewを廃止して

ThreadListViewBase -> KitaSubjectView

として KitaSubjectView の内部パラメータで通常のサブジェクトビューかお気に入りビューかを分けた方が
すっきりして良い気が。まあたしかに上の方がオブジェクト指向っぽいですが。
047642104/11/06 23:33:20ID:UJ5EKkD7
もひとつおまけ。>>467の

> 手動で板一覧の読み込みで更新したときに移転した板があるときは移転処理します。

の処理をいきなりやるとバックアップとることも出来ないので、移転した板の一覧を
メッセージボックスに表示して移転作業するかどうか問い合わせるパッチ。
KitaBoardView::downloadBoardList()あたりをいじりました。

ttp://www.geocities.co.jp/SiliconValley-Bay/7435/patch-1106-2.txt
047742104/11/06 23:48:05ID:UJ5EKkD7
良く見るとKitaBoardView::showBoardList で
Kita::BoardManager::loadBBSHistory( boardURL ); を呼ぶのが抜けてますね。
いつの間にか間違って消しちゃったかな・・・

という訳で上のパッチを差し替えたので、もしダウンロード済みならもう一回落としてください。

で、特にバグが無ければ>>461の予定に入ります。
0478kitaの中の人 ◆KITAulkOso 04/11/07 00:01:29ID:gH9DHxFB
>>477
この時間であってます?

diff -rc src-org/kitaboardview.cpp src/kitaboardview.cpp
*** src-org/kitaboardview.cpp2004-11-06 23:27:33.739381456 +0900
--- src/kitaboardview.cpp2004-11-06 23:27:01.363303368 +0900
0479login:Penguin04/11/07 00:05:26ID:DaLSh21J
>>478
いや、遅かったですorz
-Rして下さい。

*** src-org/kitaboardview.cpp 2004-11-06 23:27:33.739381456 +0900
--- src/kitaboardview.cpp 2004-11-06 23:43:15.213255672 +0900
0480kitaの中の人 ◆KITAulkOso 04/11/07 00:07:42ID:gH9DHxFB
http://www.geocities.co.jp/SiliconValley-Bay/7435/patch-1106-2.txt
は>>478のままのような…
048142104/11/07 00:14:14ID:DaLSh21J
あ、ほんとだ。向こうの鯖の問題で同じファイル名だと更新されないみたいですね。ミラーのせいかな。
という訳で名前を変えました。

ttp://www.geocities.co.jp/SiliconValley-Bay/7435/patch-1106-3.txt

まあ違いは

***************
*** 232,237 ****
--- 264,270 ----
msg += oldURL +"\n->\n" + boardURL;
QMessageBox::warning( this, "Kita", msg );
}
+ Kita::BoardManager::loadBBSHistory( boardURL );
previousBoard = new Kita::ListViewItem( categoryItem, previousBoard, boardName, boardURL );
previousBoard->setColor( m_textColor, m_baseColor );
}

だけなんですが。
048242104/11/07 23:26:47ID:uKF3KYvs
今日も爆遊してたwので軽いパッチだけ。 cvsからの差分で kita ディレクトリで patch -p0

ttp://www.geocities.co.jp/SiliconValley-Bay/7435/patch-1107.txt

BoardManager::enrollBoard()の仕様を変えて戻り値をint型にして、板一覧を更新したとき
に新しい板があるときは表示するように。あと昨日のパッチでthread.cppのパッチを入れ忘れたので
それも追加。

ところでcvsで>>451のパッチが当たってないみたいです。
048342104/11/08 00:45:46ID:EZ4Er9zT
ひとつ上のパッチでひとつバグ発見。このままだと初回起動時に全ての板が表示されてダイアログボックスが
たいへんなことになります。という訳で下みたいにして、16個以上新板がある時は表示しないように変更。

*** src-org/kitaboardview.cpp 2004-11-08 00:40:20.312348832 +0900
--- src/kitaboardview.cpp 2004-11-08 00:37:22.798335064 +0900
***************
*** 168,174 ****
}
}

! if( newBoards != QString::null ){

QString msg = i18n( "New boards:\n\n" ) + newBoards;
QMessageBox::information( this, "Kita", msg );
--- 168,174 ----
}
}

! if( newBoards != QString::null && newBoards.contains( "\n" ) < 16 ){

QString msg = i18n( "New boards:\n\n" ) + newBoards;
QMessageBox::information( this, "Kita", msg );
0484login:Penguin04/11/08 09:04:35ID:KyO0k+LA
Hello guys ! I will write in english because I didn't finish setting IME up yet, sorry.
I tried to build kita-0.172.0 form src.rpm on SUSE9.2 in an Athlon64 PC. But, the build was failed wiht the error messages:

....
checking for Qt... configure: error: Qt (>= Qt 3.1.0) (library qt-mt) not found. Please check your installation!
For more details about this problem, look at the end of config.log.
Make sure that you have compiled Qt with thread support!
error: Bad exit status from /var/tmp/rpm-tmp.50175 (%build)
RPM build errors:
user ikemo does not exist - using root
group ikemo does not exist - using root
user ikemo does not exist - using root
group ikemo does not exist - using root
Bad exit status from /var/tmp/rpm-tmp.50175 (%build)

Ofcourse, I specified build prefix option at commondline as following:
# rpmbuild --define='_prefix /opt/kde3' --rebuild kita-0.172.0-1.src.rpm

SUSE9.2 is base on KDE 3.3.0, Qt 3.3.3, kernel 2.6.8, and so-on. I made it sure that what packages is installed coresponding with qt:
# rpm -qa|grep qt
qt3-devel-3.3.3-24\ qt3-3.3.3-24\ yast2-qt-2.10.12-2\ qt3-devel-tools-3.3.3-24\
qt3-non-mt-3.3.3-24\ freqtweak-0.6.1-3\ qt3-devel-doc-3.3.3-24\ uim-qt-0.1.9-3\
gtk-qt-engine-0.5-9\ php4-qtdom-4.3.8-8\ qt3-man-3.3.3-24\ qt3-mysql-3.3.3-24\
scim-qtimm-0.7.5-5\ gtk-qt-engine-32bit-9.2-200410061204\ qt3-devel-32bit-9.2-200410061204\
qt3-examples-3.3.3-24\ qt3-32bit-9.2-200410061204\

As indicated above, qt-mt has not been installed. But, I can't find a package of qt-mt in install mdedia of SUSE9.2 to try to install that.

Could you gyus advice to me ?
Regards
0485login:Penguin04/11/08 09:20:16ID:iquDcSWq
>>484
 >>183-190?
048648404/11/08 09:29:20ID:KyO0k+LA
Thanks 485,

But....

# rpm -qa|grep kdelibs
kdelibs3-doc-3.3.0-34
kdelibs3-32bit-9.2-200410061204
kdelibs3-3.3.0-34
kdelibs3-devel-3.3.0-34
kdelibs3-devel-doc-3.3.0-34

The reason of the fail is not due to missing kdelibs3-devel, maybe.


Hummm...



0487login:Penguin04/11/08 11:35:34ID:iquDcSWq
SuSEは使った事無いからよく分からんが、、
$QTDIR/lib/libqt-mt.so は有るんだよね?

もし有るなら依存チェックに問題がある(パッケージ名の違い?)だけだろうし、
SPECファイルのRequires:行を消してしまえばいいんでない?
超強引だけどね・・・
0488login:Penguin04/11/08 13:34:18ID:+MBNdg9b
>>487
>I tried to build kita-0.172.0 form src.rpm on SUSE9.2 in an Athlon64 PC. But, the build was failed wiht the error
見た限り64な環境だからlib64/を見えるようにするだけで解決しそう。

>>484
./configure --prefix=/opt/kde3 --enable-libsuffix=64 --with-qt-libraries=/usr/lib64/qt-3.3/lib
0489 ◆Zsh/ladOX. 04/11/08 16:36:25ID:5MmV3KkI
>>486
>>169で書いたけどディストリ違うからねぇ。

っていうかこのスレ全部くらいは読んだんだろうな?
0490login:Penguin04/11/08 16:45:21ID:+MBNdg9b
>>489
>>>169で書いたけどディストリ違うからねぇ。
>>149でSuSE9.1x86_64では使えてる。異なる部分は--prefixぐらい。SuSE9.2でもいけると思われ。
049144704/11/08 21:09:05ID:elFuysKi
以前、スレ内のリンクがブラウザで開けないと書いたものですが、
「ファイルの関連付けはきちんと行っています。」などと書いたにも関わらず、
実はきちんと設定できていないことがやっとわかりました。
以前は確かにリンクがブラウザで開けていたのですが、
何かの拍子で設定が変わったようです。

レスをくれた方々には大変申し訳ありませんでした。
049242104/11/08 22:34:35ID:mYBG93oZ
(1) パッチ。>>482,483のパッチとは排他的でcvsからの差分。kitaディレクトリで patch -p0

ttp://www.geocities.co.jp/SiliconValley-Bay/7435/patch-1108.txt

・KitaThreadPartクラス廃止

KitaThreadTabWidget::createView()のとこ。part/kitathreadpart.{cpp,h}は削除してください。

・書き込みウィンドウで行数、バイト数を表示

KitaWriteView::slotBodyTextChanged()のとこ。とりあえず板名のとこに表示してるので
表示形式とか位置は適当に変更して下さい。

・メニューのサブジェクトの項目とスレ一覧のタブの右クリックメニューに板看板画像表示メニュー追加

Show Title Image ってやつ。画像ビュアーに表示します。

とりあえず現バージョンで付けようと思った機能はこれで全部かな。で、あとは>>461の話をやろうと
思ったのですが、その前に>>343あたりで検討したParseMiscのkita_miscへの統合とBoardクラスの
完全廃止の作業を先にやります。

-------------------------

(2) ソースを見直したら次のコードは使用されてないので削除した方が良いです。

libkita/k2ch_articlefile.{h,cpp}
part/kitanavi.{h,cpp}
part/kitanaviui.rc
part/kitathreadviewui.rc
0493kitaの中の人 ◆KITAulkOso 04/11/09 01:32:10ID:1IX0qKqX
>>475>>476>>481>>482>>483>>492
merged.

tukareta...
0494login:Penguin04/11/09 01:46:35ID:OWpBKQff
>>493
∧_∧
( ´・ω・) 乙彼です。
( つ旦O
と_)_) 旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦
049548404/11/09 04:31:47ID:07gB+Rr5
ありがとう >>487-490

Athlon64、SUSE9.2 という自分にとって初物どうしの組み合わせが災いし、
その後、kita 以外の部分でも引っかかりまくって挫折して、今放置プレイ中です。

Prescott イジリにあきたら、またやってみようと思います。
0496kitaの中の人 ◆KITAulkOso 04/11/09 08:39:22ID:1IX0qKqX
>>494
(・∀・)つ旦旦旦 いただきまつ
0497login:Penguin04/11/09 21:26:20ID:+qYL4RZo
きちんと確証がとれてないのですが、
書き込みで「はぁと」を入れると以下の書き込みが途切れる気がします。

えっと、 ♥

入ったかな?
049849704/11/09 21:28:11ID:+qYL4RZo
あれ、入りますね。
したらばで長文レスしてたら「&hearts;」のセミコロンのとこで切れてしまったので
あれっと思ったのですが。

失礼しました。
0499login:Penguin04/11/09 22:17:49ID:bCZPt9sr
kita
050042104/11/09 23:05:48ID:vN6zY7BW
なんか毎日のようにパッチ出してますが、それは来週からまた忙しくなるので
やれるうちにやれるるとこまでやっておこうと思ってるからだったりします・・・

という訳でパッチ。cvsからの差分でsrcフォルダで -p0。サイズはでかいですが、
ほとんどがParseMisc::->Kita::への変換だけです。

http://www.geocities.co.jp/SiliconValley-Bay/7435/patch-1109.txt

(1)ParseMiscのkita_miscへの統合

移しただけ。ただしparseURL()をgetDatURL()に、datToThread()をgetThreadURL()
みたいに一部の関数名を変更してます。 parsemisc.cppは消してください。

(2)連鎖あぼーんや参照ツリーの表示がうまくいかないときがあるバグを修正

例えば

>>123
2ch

みたいなアンカーの場合にうまくいきません。レス内に張られてるアンカーのリストを
作成する関数 DatInfo::setAncList()の/* remove HTML tags */の下に
line.replace( "<br>", "\n" );の一行を追加して解決。つまりbrタグを消してたせいで
上の例だと>>1232chみたいに文字列がくっついて、123番じゃなくて1232番にアンカーを
張っていると誤判定してた訳で。

(3)その他、DatInfo 等の整理

具体的にはDatInfo::updateThreadInfo()を消して、ThreadIndex経由で情報を保存する場所を
DatInfo::slotFinishLoad()の/* save thread information */ 以下一ヶ所にまとめました。
その他、読み込み数も記録するためThreadIndex::setReadNum()という関数を追加したり
DatInfoList DatManager::m_datInfoをDatInfoList DatManager::m_datInfoListにしたり等。
0501kitaの中の人 ◆KITAulkOso 04/11/09 23:38:07ID:1IX0qKqX
先越されたorz

せっかく作ったのでsnapshot.
http://kita.sourceforge.jp/snapshot/kita-20041109.tar.gz

>>500はそのまま当たるのだけ確認してます。
今のところまずいバグは見つかってないですが一応バックアップをおすすめ。
050242104/11/09 23:51:03ID:vN6zY7BW
>>501
乙です。中の人も書いてますが、板の移転処理のとこで下手するとログが
消えるのでsnapshotを使うときはキャッシュのバックアップをおすすめ。
もちろん人柱は大歓迎w
0503kitaの中の人 ◆KITAulkOso 04/11/10 00:03:54ID:Xt4sLoMr
>>500のパッチコンパイルできない…libkita以外がごっそり抜けてるぽい
050442104/11/10 00:22:46ID:Wm6USiH2
>>503
ひょっとしてlibkita/parsemisc.hも消してませんか。
parsemisc.hは上のクラスとの橋渡しのために暫定的に残しています。
0505kitaの中の人 ◆KITAulkOso 04/11/10 01:06:47ID:Xt4sLoMr
一応今後の予定。先月と一緒ですがw
11/20 feature freeze
11/27 code freeze.
11/29 release.

お気に入り整理はほとんどコード書いてないので次のバージョンに入るかどうか微妙。

>>504
> ひょっとしてlibkita/parsemisc.hも消してませんか。
失礼しますたorz
050642104/11/10 01:25:46ID:Wm6USiH2
FC3のダウンロードしようと思ったけどDVDイメージ落とすの面倒くさくなったので雑誌待ちかな・・・

>>505
私の予定ですが、さっきも書きましたが来週から忙しくなるのと、金曜からしばらく不在に
なるってことで週末以降はパッチの数がガクっと減ると思います。

という訳で、parsemisc.hとboard.{cpp,h}の削除を明日か明後日あたりに強行するかも。
あとさっき書き忘れましたがpart/kitathreadpart.{cpp,h}は消してOKです。
0507login:Penguin04/11/10 05:12:57ID:doFU/neL
fc3で問題なく動きますた
0508rpmpointの中身04/11/10 08:03:11ID:gUQXX0Sw
Kita Snapshotを>>501に差し替えです。
050969104/11/10 21:55:19ID:VTVL5cC4
>>501のdebianパッケージを作成しました
>>500のパッチと>>506での削除も含んでます

http://www.geocities.jp/tossi0x19/soft_arc.html#kita_debianized

>>500
parsemisc.cppはただ消してもダメで
Makefile.amからも消しとかないとコンパイルに失敗します

>>506のpart/kitathreadpart.{cpp,h}も同様なので>>500を使う時は気を付けて

>>中の人
ソースアーカイブにadmin/CVSが紛れ込んでます
できれば削除お願いします
0510login:Penguin04/11/10 21:57:58ID:ZcvfsTx1
>>509
ぬぬぬ
2,3日忙しいので、暇ができたらやってみます。
051142104/11/10 22:23:30ID:Wn46hKqd
パッチ。>>500からの差分でkitaディレクトリで patch -p0。

ttp://www.geocities.co.jp/SiliconValley-Bay/7435/patch-1110.txt

・Board クラス廃止

board.cpp, board.h は消してください。

・.kde/share/apps/kita/cache 廃止

スレの情報管理を完全にidxファイルに移しました。その影響で既読数の情報が
一時的に壊れますが、ログ自体が消える訳ではないので実害は無いと思います。
これでKitaThreadInfoクラスはいつでもThreadに統合して廃止できるようになったはず。

具体的には KitaMainWindow::loadCache() と KitaMainWindow::saveCache()
を消して、BoardManager::getThreadList()である板のスレリストを取得する際に、
新設のBoardManager::getThreadInfoFromIdx()を呼び出してその中でidxファイルから
既読数を読みこんでスレ情報のデータベース( Threadクラス )にセットます。ただし毎回
idxファイルを読んでるとオーバーヘッドが大きいのでその板を初めて開いたときだけidxを
読むようにしてます( BoardData::m_readIdx がFALSEの時だけidxを読み込む )。
同様にお気に入りスレの登録関数( FavoriteThreads::processThreadNode() )でも
idxから情報を取得するように変更しています。まとめると

(1) idxにスレ情報を保存する場所(タイミング)
→ DatInfo::slotFinishLoad() で鯖からログを取得直後
ここまで読んだはDatManager::setKokoyonNum()で直接

(2) idxからスレ情報を取得する場所(タイミング)
→BoardManager::getThreadList()である板のスレリストを取得するとき(初回のみ)
BoardManager::getCachedThreadList()でdat落ちログのリストを取得するとき
及びFavoriteThreads::readFromXML()でお気に入りスレを登録するとき
0512login:Penguin04/11/11 00:35:35ID:NNQ3GHT3
>>お気に入り整理はほとんどコード書いてないので次のバージョンに入るかどうか微妙。

( ´・ω・`) ショボーン
0513AA test04/11/11 09:37:52ID:tEXjfMhn
       ∧_∧  ┌─────────
      (   ・) < ひとつ言わせてくれ。
      ( ○  )  └─────────
      | | |
       (___(__)

               从从从从从从从从从从从从
      ∧_∧      ) 
      ( ・∀・)彡  く  ( ・∀・)< kitaっていいな。最新のスナップショットでは、ところどころ英語なところがあるが。
      (    9    ) 
      |  | |      WWWWWWWWWWWW
      (___)._)
0514login:Penguin04/11/11 10:32:52ID:Zt1EQGhK
しかし素晴らしい。
当初はnavi2chと並走で人柱モードだった俺だけど
今はむしろkitaだけで見てる事が多い。
使いだしてからほんの二週間くらいのはずなんだが。

おいら個人的には外部板関連の充実がすごく嬉しい。
いや、外部/2ch比が9:1以上で外部だったりするので
おいらの逝く2ch形式掲示板でもはや閲覧できないのは、
もはやOOo日本ユーザー会だけになってしまった。
すごい!
0515login:Penguin04/11/11 11:55:27ID:tEXjfMhn
ところで、外部掲示板を取り込む方法って、どうするんです?
厨な俺はなにをどうさわってもわからないんですが。
0516login:Penguin04/11/11 14:19:16ID:Zt1EQGhK
>>515

>>245を参照。
まだメニューにはなっちょらんようだ。

なお正しいのかたまたま動いちゃってるのか知らないが、
板名に多バイトを使いたい時はUTF-8にするとばっちり。俺はそうしてる。
KDE環境ならKateあたりで書いてUTF-8で保存すればお手軽。
少し前のバージョンだが、うっかりEUC-JPで書いたらコケたw
0517login:Penguin04/11/11 20:49:06ID:tEXjfMhn
ところで、スナップショットに乗り換えてから、動作がもっさり重いんですよね。(Suse9.1 KDE3.3.1 rpmpointさん提供のrpm使用)
なんてことを思ってる矢先、 レスツリーを表示しようとしたらクラッシュしてしまいました。

バックトレースにでた ものを ここに張ると、中の人とかの尾役に立ちますでしょうか?
0518kitaの中の人 ◆KITAulkOso 04/11/11 23:30:32ID:7ThW6ZlP
>>47のM/Bに続いて今度はHDDが壊れましたorz
バックアップ取ってたのでとりあえず新しいHDDに移行させましたが。

>>509
> parsemisc.cppはただ消してもダメで
> Makefile.amからも消しとかないとコンパイルに失敗します
そういえばそうでした。Makefile.amの編集は脳内補完してるので気づかなかった。

> ソースアーカイブにadmin/CVSが紛れ込んでます
> できれば削除お願いします
了解。影響はないので一応優先度は低め。

>>511
> スレの情報管理を完全にidxファイルに移しました。その影響で既読数の情報が
> 一時的に壊れますが、ログ自体が消える訳ではないので実害は無いと思います。
cache -> idxへの移行を別ツールで対応させようと思ってたんですが、
どれくらい需要あるかなぁ。
# KitaThreadInfoとKita::ThreadIndexだけ使えばいいので
# KDEの勉強にいいかも、とか言ってみる。

>>513
今のところ翻訳はリリース前にまとめてやってます。

>>514
自分は外部板使ってないなぁ。板探すのすら('A`)マンドクセ
OOo対応は一応TODOに入れておきます。

>>517
メソッド名とか詳しく載ってるなら多分役立つのでとりあえず貼ってもらえると助かります。
051942104/11/12 01:47:04ID:BTVDHZ0i
> 動作がもっさり重い

デバック情報の表示をしまくっているのでコンソールから起動すると重いです。

> cache -> idxへの移行を別ツール

それよりはキャッシュ内のログを全部検索して、idxが無いかidx内の項目が足りてないときは
idxを作る関数みたいなのを作った方が良いかも。

> OOo対応

さっきFlash CGI/Mini Thread スクリプト読み込み対応と、ついでにまちBBSとJBBSの
更新時の逐次表示対応をやって一応出来ましたが、明日からしばらく不在でテストもしてないので
完成するのは来週の初めくらいかなあ。
0520login:Penguin04/11/12 01:52:02ID:p62KLcdr
>>518
ごくろうさまです。要望ばかりですみません。

OOo日本ユーザ会のURLはこれです。
ttp://oooug.jp/cgi-bin/bbs/users/
現状は「壊れてます」メッセージがいっぱい出ます。

けど俺以外に誰も声あげないようならこれは対応する必要性ゼロかも。
単によその2chブラウザで閲覧できるものを片っ端から試してみたというだけで
したらば等のように多数の板があるわけでもありませんし。

動作がもっさりしてきたという方の意見には俺も同意です。
しかし現状、単に当方のフォント絡みなのか通信部分なのか区別がついていません。

では。
0521login:Penguin04/11/12 02:17:01ID:p62KLcdr
うわ、リロードしてなかった。

>>519
OOo対応にかかっていただきありがとうございます。
520に書いてた事と少し矛盾しますが、正直動くと大変うれしいです。
お手間をとらせてすみません。
よろしくお願いいたします。

知ってるとこで試してないBBSがなくなっちまいました。
セリオ板やTS板なんていう誰も知らないマイナーなサーバでもバリバリ使えてます。
俺の知る限りではありますが、現時点でnavi2chやp2の対応範囲にも負けてないと思う。
かなりヘビーなp2ユーザだったんですが、こちらからの移行も完了しました。
正直脱帽です。本当に感謝します。

続けていぢり倒してるので何か気づいたことあったらまた書きます。
では。
0522login:Penguin04/11/12 22:25:43ID:ozf6g45w
mandrakeでのRPMのにぎり方を教えて下さい
0523mami ◆mamiFD..V2 04/11/12 22:49:38ID:k5A3NXnH
前 Mini Thread についてちょっと調べたんですが、
.dat の <> で区切った各フィールドはこんな感じでした。
参考まで。

0: 名前欄
1: メール欄
2: 投稿日時
3: 本文
4: スレタイトル
5: URL 欄
6: 削除パスワード (暗号化されている)
削除済みのときは削除者の名前?
7: リモホ (ID の算出には salt が必要)
8: 等幅 (<tt>) 表示フラグ
9: スレストフラグ
10: キャップの名前欄の文字色
11: アップロードファイル?
12: 未使用?
13: 未使用?
0524kitaの中の人 ◆KITAulkOso 04/11/13 11:13:41ID:v2vemVEg
>>500
merged.

>>511
以下の2つの大きな問題があるのでcommitしてません。

・お気に入り板が表示されない
kita.cppのloadFavoriteBoard()の位置を変えたのが原因なので、
"board_list"を読み込む前に移動したらうまくいきました。

・idxに既読数の情報があっても既読数が"1"になってしまう。
内容は詳しく見てませんが、該当スレのidxファイルが正しいのは確認済み。

>>519
> それよりはキャッシュ内のログを全部検索して、idxが無いかidx内の項目が足りてないときは
> idxを作る関数みたいなのを作った方が良いかも。
既読情報は"cache"にしかないので両方必要だと思います。
あと起動中だといろいろ整合性取るのが大変そうな気もします。
0525login:Penguin04/11/13 13:58:12ID:lAs9oZ3q
質問です。
CVS版ですが、たぶんそうじゃなくても発生するかもしれない。
ttp://penguin.s4.xrea.com/imgboard/img-box/img20041113114918.jpg
(ガイドライン板、ネコミミモードスレより。右のnavi2chの表示がたぶん正しい)

なんか「>>番号」とAAが混在すると重なって出る事があるみたい。
他に出てる報告がないので、フォント設定とかのローカルな問題かと思ってたのですが、
いろいろ変えてみても変化がないのでためしに投げてみました。
俺の設定ミスならごめんなさい。
052648404/11/13 15:03:54ID:hzWjW35l
SUSE9.2 professional AMD64 (x86_64) で kita 0.172.0、 make 出来ました。
やったのはこれだけ。
./configure --enable-libsuffix=64 --prefix=/opt/kde3
make
make install

ついでにいうと、Atok なんかインスールしなくても
SCIM + UIM-Anthy で、KDE3.3 上の kita 0.172.0 から
こうして普通に日本語書き込めます。知らなかった....

別の SUSE9.2 を入れた Pentium4 マシンでは、
rpmbuild --rebuild kita-0.172.0.src.rpm
だけでビルドできました。SUSE対応ありがとう。

ついでといっては何ですが、次のバージョンから x86_64 対応も
自動化してくれるとうれしいなぁ.....
052742104/11/14 21:22:25ID:85izyi2Z
帰ってきました。

>>524
> ・お気に入り板が表示されない
それは単にloadFavorites()が内部で板情報を使うためm_boardTab->showBoardList()
の後にloadFavoriteBoards()と一緒にコピペしたら読み込まなくなったっていう超凡ミスなので
board_listを読み込む前に戻せば直ります。

> ・idxに既読数の情報があっても既読数が"1"になってしまう。
こっちは状況が良く分からないのですが、ログはあるけどidxファイルにReadNumの項目が無いときは
既読数が1になります。一回スレを開けば直ります。例えばこのスレの正しいidxファイルはこんな感じ。
ReadNumの項目があるのに1になるならバグですので直します。

ReadNum=526
ResNum=526
Subject=Kita - 2ch client for KDE part2
ViewPos=519

>既読情報は"cache"にしかないので両方必要
"cache"の中にはURLと既読数しか登録されていないため、どちらにしろ名前とレス数はsubject.txtかdat
自体から取る必要があるのと、idxに既読数の情報が無いときは上に書いたように一時的に1にリセットしますが、
ログ自体が消える訳ではなく特に害は無いということから、"cache"は必要ない(むしろインテグリティの面から
有害)と判断しました。

>あと起動中だといろいろ整合性取るのが大変そうな気もします。
起動中に毎回やってると大変なので、ファイルメニューあたりに「インデックス作成」みたいなメニューを作った
方が良いと思います。他の2chブラウザからのログの移動もそれで兼ねることが出来ますし。

>>525
それはKDE側のバグなのでどうしようもないというか、直す気がないというか。誰か直してw
0528kitaの中の人 ◆KITAulkOso 04/11/14 23:25:50ID:rcXAR16G
>>527
> こっちは状況が良く分からないのですが、ログはあるけど
> idxファイルにReadNumの項目が無いときは既読数が1になります。
.idxにReadNumがないのを確認しました。
既存のファイルに影響はないようなので、>>511のパッチは取り込む予定。
(お気に入りの修正を含めて)

> ログ自体が消える訳ではなく特に害は無いということから
既読情報がなくなるのはやっぱり害だと思います。少なくとも自分は混乱したので。
http://kita.sourceforge.jp/cgi-bin/hiki/hiki.cgi?%A5%E1%A5%E2+-+%A5%A4%A5%F3%A5%C7%A5%C3%A5%AF%A5%B9%A5%D5%A5%A1%A5%A4%A5%EB%A4%D8%A4%CE%B0%DC%B9%D4
特に問題がなければ↑の方法で行こうと考えています。

…ってここまで書いてて気づいたのですが、ReadNumとResNumって常に同じ値になりません?
スレッド一覧に表示する既読数については"ViewPos"を使えば良さそうな気もします。
# そもそもidxの案では"ReadNum"はなかったし…
052942104/11/14 23:57:33ID:85izyi2Z
> ReadNumとResNumって常に同じ値になりません

現在は>>511で書いたタイミングでidxに保存しているため同じ値になりますが、将来的には
オフラインモードやdat落ちしたときのことも考えてsubject.txtから(ログのあるスレの)
レス数を取得したタイミングでレス数だけセーブするつもりなので、異なる値になる場合がある
ため今のうちに項目を別にしておきました。ViewPosも既読数つまりログの取得数とは異なる
ので別にした方が良いと思います。

> 既読情報がなくなるのはやっぱり害だと思います

私はどっちかというとユーザの都合よりもプログラムの都合を優先させてコードを書く悪癖が
あるので、ユーザが混乱するとかそういうことはあまり考えてなかったりしてw あとhikiの

> 起動時に"cache"ファイルの存在をチェックし、存在する場合は上の関数を実行

の方法も一度考えたんですが、一度しか使わない関数を書くのが面倒臭かったので
やめたという経緯もあったりしてw

まあ、この辺はリリース日までにもう少し仕様を詰める必要がありますね。
053042104/11/15 00:00:45ID:7NGKoUqL
で、パッチ。一応>>511からの差分で src で-p0。

ttp://www.geocities.co.jp/SiliconValley-Bay/7435/patch-1114.txt

(1) 2ch以外のBBSの更新時も逐次表示するように

Access::emitDatLineList()という関数を新設して、そこで入力されたデータを行単位で
2chタイプのdat形式データに変換してDatInfo::slotReceiveData()に行単位のリスト形式で
送るようにしました。これによってAccessクラスで各BBSのスクリプト間の差が吸収されるため、
DatInfo以上のクラスではスクリプトが2chなのか他のスクリプトなのかを気にしなくても済むようにしました。

(2) Flash CGI/Mini Thread の読み込みに内部対応 ( 書き込みは未テスト )

で、Kita::ParseFlashCGIOneLine()という関数を作って、とりあえずテスト用に
oooug.jp が外部板に登録されてたら Flash CGI 型のスクリプトと認識するようにしました
( BoardManager::parseBoardURLの/* test for Flash CGI/Mini Thread */のところ )。
というかextbrd.confの仕様もぽちぽち決めないとなあ。

以下、非2chスクリプトの掲示板を表示させるための改造方法についてメモ。基本的にはこんな感じで。

(1) boardmanager.hの/* type of board */ のとこにタイプを登録して
(2) BoardData::setHostName(),BoardData::createKeys()、
BoardManager::readSubjectTxt()、Kita::convertURL()をタイプに合わせて更新して
(3) kita_misc.cppにKita::ParseFlashCGIOneLine()みたいなパース関数を追加して
(4) Access::emitDatLineList()でデータを2ch型dat形式に変換する
(5) BBSのrawmode.cgiみたいに特殊なスクリプトを使わなければいけないときは
Access::getupdate()も変更
053142104/11/15 00:17:54ID:7NGKoUqL
> (5) BBSのrawmode.cgi

いちいち書かなくても良い気がしますが、「(5) JBBSのrawmode.cgi」の間違いです。

あと書き忘れた気がするので書きますが、>>511のパッチをあてると、お気に入り
スレ情報のXMLファイルが0.172.0以前のファイルと互換性が無くなるので注意して
下さい(これもインテグリティの問題でスレ名とかレス数とかのノードを消した)。
まあ、これも過渡期の間はXMLファイルの互換性を持たせるために
FavoriteThreads::toXML()を元に戻した方が良いかも。

とまあ、こんな風にいま内部をかなり変えてるところなので、軽い気持ちでcvs
とかsnapshotをインストールすると泣くはめになるので気を付けて下さいw
バックアップは基本。
053242104/11/15 23:00:32ID:7NGKoUqL
パッチ。>>530からの差分でkitaで-p0。

ttp://www.geocities.co.jp/SiliconValley-Bay/7435/patch-1115.txt

・>>1-1000みたいなリンクが張ってあると、レスの参照ツリー表示のときにいちいちその
レスが参照されるのがウザかったので、20個以上のスレにリンクを張ってるときはそのリンクを
無視することに( DatInfo::checkRes() のとこ)

・Flash CGI/Mini Threadへの書き込み、スレ立て対応

最新版のスクリプトがローカルで動かなかったのでVer3.21aでテスト。


ちなみにあるスクリプトの書き込み、スレ立て対応をする手順は次の通り。

(1) KitaWriteView::KitaWriteView()で
書き込みスクリプトのアドレス(m_bbscgi)を設定して

(2) KitaWriteView::slotPostMessage() で
スクリプト別に投稿メッセージを作って(setPostStr()みたいに)

(3) KitaWriteView::resultCode()やKitaWriteView::resultMessage()で
スクリプトのレスポンスからリザルトコードやメッセージを取得

一番難しいのは(3)で、デバッグ出力でスクリプトのレスポンスをみながら調整する必要があります。
0533kitaの中の人 ◆KITAulkOso 04/11/15 23:40:23ID:LCbJtlpL
# ちょっとお怒りモード

>>531
> まあ、これも過渡期の間はXMLファイルの互換性を持たせるために
> FavoriteThreads::toXML()を元に戻した方が良いかも。
こういうことは先に言ってください。>>511の後元に戻したらお気に入りが消えましたorz
# まあバックアップ取ったので問題ではないですが…

>>511のパッチはrejectします。
・お気に入り板が読めない問題
・XMLファイルの互換性
・既読数が1になってしまう問題
を解決しないと取り込めません。
最後は"ReadNum"でなく"ViewPos"を使う案でいいので、パッチを再作成してください。
0534kitaの中の人 ◆KITAulkOso 04/11/16 00:00:57ID:HUHW5Lx0
パッチは>>511からの差分でもいいです。というかその方が見やすい。
053542104/11/16 00:00:59ID:zE/fWQoP
>>533
> ・お気に入り板が読めない問題

これは>>527で書いたようにただの凡ミスなので簡単に直ります。

> ・XMLファイルの互換性

favorites.xmlはQDomDocument()を使って作っているため、FavoriteThreads::toXML()を
元に戻すだけでいつでも元のファイル形式に戻す事ができるため特に問題は無いと思います。
やっぱりしばらくは互換性持たせた方が良いかな。

> ・既読数が1になってしまう問題

これはHikiに書いてあるようにcache->idx変換関数を書けば解決できますが、書いた方が
良いのかな。

まあいずれにしろ後でなんとかできる問題ばかりなのでとりあえずマージしちゃって後で調節
して行くって方法をとりたいのですが・・・
0536kitaの中の人 ◆KITAulkOso 04/11/16 00:24:31ID:HUHW5Lx0
>>535
> やっぱりしばらくは互換性持たせた方が良いかな。
少なくとも、「古いバージョンから新しいバージョンへ移行」
「新しいバージョンから古いバージョンへ移行」したときに取り返しの
付かない問題が起きないようにすることが必須です。
少なくともバックアップファイルを作成する必要があります。

# 新→旧を入れてるのは大きなトラブルがあったときとかに元に戻せるようにするため。

あと、favorites.xmlについてはブックマーク整理のUI作るときに
別のフォーマットに移行させます。なので今変えてもあまり意味ないです。

> まあいずれにしろ後でなんとかできる問題ばかりなのでとりあえずマージしちゃって後で調節
> して行くって方法をとりたいのですが・・・
それなら>>511>>530>>532を当てた状態でさらに当てるパッチを出してください。
全部当てた状態でテストしますので。

こっちもパッチの調整ばかりしてるの嫌なんですよ…。
0537kitaの中の人 ◆KITAulkOso 04/11/16 00:36:01ID:HUHW5Lx0
↑の発言は一旦撤回します。ちょっとまって。
053842104/11/16 01:11:34ID:zE/fWQoP
いやあ何か混乱させて申し訳ないですorz

ちなみに私がパッチを小出しで出すのは

(1) 物理的に一日の作業時間がそんなに取れない
(2) 大きいパッチを一気に当てると細かい説明をするのが面倒になる(というか
最初の方で修正した項目を忘れるw)
(3) 小刻みにチェックポイントを作りたい
(4) パッチ単位で修正点などの意見を聞いて柔軟に調節したい

のが理由です。まあ(1)が主な理由なんですが。

> # 新→旧を入れてるのは大きなトラブルがあったときとかに元に戻せるようにするため。
> あと、favorites.xmlについてはブックマーク整理のUI作るときに
> 別のフォーマットに移行させます。なので今変えてもあまり意味ないです。

了解です。FavoriteThreads::toXML()は元に戻す方向で、cacheは(情報は使わない
けど)しばらくは既読情報を保存する方向で調整します。
053942104/11/16 01:15:25ID:zE/fWQoP
書いた直後に思いついたけど・・・

> cacheは(情報は使わないけど)しばらくは既読情報を保存する方向で調整します。

idxにReadNumの項がない時は1にするんじゃなくてcacheから既読数を取得するよう
にすれば良いのか。これなら簡単かつ自然にcache->idxへの移行が出来るかな。
0540kitaの中の人 ◆KITAulkOso 04/11/16 01:21:33ID:HUHW5Lx0
> いやあ何か混乱させて申し訳ないですorz
こちらこそすみませんorz

えっと、>>511>>530>>532のパッチのマージ&
> ・お気に入り板が読めない問題
> ・XMLファイルの互換性
> ・既読数が1になってしまう問題
のfixやってしまいました。CVS版に入っています。
既読数が1になってるのは"ViewPos"を使うことで対応してます。

お気に入りの情報がおかしいですが…これも何とかしないとまずいな。
054142104/11/16 03:18:35ID:zE/fWQoP
仕事しててまだ起きてたりして・・・orz

>>540
乙です。

> 既読数が1になってるのは"ViewPos"を使うことで対応してます。

idxが無いログではうまく働かないと思うので、>>539の仕組みも
同時に入れとこうと思います。こんな感じで

(1) idxからReadNum読む
(2) 無かったらViewPosを読む
(3) 無かったらcacheから取得

> お気に入りの情報がおかしいですが

明日辺り私も見ときます。
0542kitaの中の人04/11/16 22:07:46ID:HUHW5Lx0
今Windowsで作業中なのでトリップなし(多分ID一緒だからいいでしょう)。
>>541
(1)(2)は逆にしてください。もしくはcolumnを追加。
「既得数」でなくあくまで「既読数」なので。

面倒ならその順序でパッチ出してください。自分がやります。
054342104/11/16 22:20:26ID:jQaZyowR
> (1)(2)は逆にしてください。もしくはcolumnを追加。
> 「既得数」でなくあくまで「既読数」なので。

ちょっと遅かったですw いまパッチを書いて簡単なテストが終わったとこなので、
とりあえずそのまま出しますが、後で説明するように ThreadIndex::getResNum()
や ThreadIndex::getReadNum()で>>541の作業をするようにしたので変更するなら
その辺をいじって下さい。

でパッチ。cvsからの差分でkitaディレクトリで-po。
あれこれやってるうちに何時の間にかfeature freezeの日も近付いてきたのでデカいパッチは
一応これで最後にしてあとは調整とデバッグに移ります。

ttp://www.geocities.co.jp/SiliconValley-Bay/7435/patch-1116.txt

内容は主に昨日話した旧バージョンとの互換問題の解決+アルファ。board.{cpp,h}は消しても良いです。
もうちょっと詳しく説明すると

(1) KitaMainWindow::loadCache() と KitaMainWindow::saveCache() を復活させて
cacheの情報も使うようにした。具体的には ThreadIndex::getResNum() や
ThreadIndex::getReadNum()を変更して、idxがないか、又はidxにその項目が無いときは
KitaMainWindow::loadCache()で読み込んでおいたcacheの情報を使ってidxの項目
を作ります。idxにその項目があるときはidxから読み取った数値が使われます。また既読数は
KitaMainWindow::saveCache()でcacheにも保存されるので旧バージョンとの互換性もあり。

(2) BoardManager::readSubjectTxt()の拡張。BoardManager::getThreadInfoFromIdx()を
統合してやや速度向上。BoardManager::readSubjectTxt()でセッション中に初めて板を開いたとき
(つまりbdata->readIdx() == FALSE のとき)にidxから既読数やレス数を取得。

つづく
054442104/11/16 22:25:17ID:jQaZyowR
つづき

(3) Thread::m_cached という変数を追加してそのスレがキャッシュに存在するかどうかを
Thread::m_cached が TRUE か FALSE で判定することに。KitaThreadInfo::readNum()==0
でも判定できますが、いちいちQMapで検索するのはオーバーヘッドがでかいのと将来的にKitaThreadInfo
は廃止する事からとりあえず別パラメータにしときましたが、この辺りは仕様変更が若干あるかも。
なおthread->setCached( TRUE )によってThread::m_cachedをTRUEにセットする場所とタイミングは

・BoardManager::getCachedThreadList(): dat落ちしたログのリストを取得したとき
・BoardManager::readSubjectTxt(): セッション中に初めて板を開いたとき
・DatInfo::saveIndex(): キャッシュにあるログの表示やスレのロードが終わったときに
DatInfo::initPrivate() や DatInfo::slotFinishLoad()の中から呼ばれる

の3箇所。逆にFALSEにするのは DatInfo::deleteCache() の一ヶ所。

(4) subject.txtを読み込んだとき、subject.txtから読み取ったレス数とidxのResNumの値が
違っていたら新しいレス数をidxにセーブするようにした。具体的にはBoardManager::readSubjectTxt()の
/* update res num */ 以下の部分で、スレッドがキャッシュされていて( thread->isCached() == TRUE )
かつ旧レス数( oldNum )と新しいレス数( newNum )が違うときはThreadIndex::setResNum()を呼んで
新しいレス数をセーブするという仕組み。これによってidxのResNumとReadNumは基本的に違う値になる。

とりあえず私的には

ResNum・・・サーバ上のレスの数
ReadNum・・・ローカルキャッシュ上のレスの数(既得数)
ViewPos・・・ここまで読んだの位置

という感じでやってましたが、この辺は適当に調整しておいて下さい。
054542104/11/16 23:48:59ID:jQaZyowR
相変わらず仕事中orz

ところで

> もしくはcolumnを追加。

ということから察するに、スレ一覧の「既読数」にViewPosの値をセットしたいということ
でしょうか。となると現在DatManager::getKokoyonNum()では直接idxからViewPosを
取得しているため非常にパフォーマンスが悪いので、ViewPosをメモリにキャッシュ
しておいて読み込むときはメモリから読むような機構にしておきますが・・・
0546rpmpoint no naka no hito04/11/17 00:10:10ID:FGWV9h+I
doumo
rpmpoint no naka no hito desu.
tetigai kara SuSE ga kidou sinaku narimasita node
korekara 1syuukan gurai no uti ni Snapshot ga riri-su sarete mo
kousin ga dekimasen node go yousya kudasai

orz
0547kitaの中の人 ◆KITAulkOso 04/11/17 01:44:22ID:qx23v2F3
パーティションいじってたらWindowsが起動しなくなって大変でしたorz

>>545
> ということから察するに、スレ一覧の「既読数」にViewPosの値をセットしたいということでしょうか。
そういうことです。

> ResNum・・・サーバ上のレスの数
> ReadNum・・・ローカルキャッシュ上のレスの数(既得数)
> ViewPos・・・ここまで読んだの位置
の解釈でいいと思いますが、普段使う分にはViewPosで、ReadNumは見える必要はないと思うので。
やっぱりReadNumも見えた方がいいというのなら、項目を追加する方向で行きます。
という意味でかきますた。

> 非常にパフォーマンスが悪いので
そんなにパフォーマンス悪くなります?実測で明らかに遅いなら入れてもいいですが…。

>>546
お大事に…。
054842104/11/17 02:09:56ID:9xOg/LBj
>>547
> > ということから察するに、スレ一覧の「既読数」にViewPosの値をセットしたいということでしょうか。
> そういうことです。

了解しました。

> そんなにパフォーマンス悪くなります?

>>543のパッチで修正していますが、cvsのKitaSubjectView::loadBoardだと
int readNum = Kita::DatManager::getKokoyonNum( datURL ); と
なっていましたが板を開く早さがうちのPCだと5倍位違いました。Linux板は普段なら
setting.txtをダウンロードした後1秒程度で開くのですが、DatManager::getKokoyonNum
を使うと5秒以上かかります。やっぱりいちいちHDDにアクセスしてファイルを
オープンするのは禿げ遅ですなあ。

つう訳で明日あたりこの辺の話のことをやろうかと思います・・・。Threadクラスをちょっと
拡張するだけなのでそんなに大変じゃないかな。

>>546
私もFC3入れたいけど時間がないなあ・・・
0549login:Penguin04/11/17 11:19:11ID:Keq27Qk9
「お気に入り」タブで「板のリロード」を実行しても
「レス数」「既読数」「未読」の数字が変化しないのですが、
皆様のところではいかがでしょうか?

kita の 20041109 のスナップショットを Fedora Core2 で使っています。
0550login:Penguin04/11/17 15:53:25ID:ERm6Yf8o
>>549
>>397,398,399,403,405,505,512
0551login:Penguin04/11/17 17:00:37ID:g2zTluWp
>>549

>>418も♪
■ このスレッドは過去ログ倉庫に格納されています