Tuboroid2についていろいろ

思いっきりサボってたけど、装備が弱すぎてジンオウガがきついので余暇時間をTuboroidに回す生活に戻ってきた。


■機能検討
前回から特に進展無し。
基本的にはTuboroid1とあんまり変わらないはず。
大きめの機能は、画像ビューアが根底から変更、書き込み履歴とそれを利用した機能、まっとうなNG管理、Be、実況、あたりかな。
VIPPER向けの機能は付けたいんだけど俺自身がVIPに全くと言っていいほど出入りしないのでなぁ。VIPPERって2chをどういう風に使ってるんだろうね。
最大人口を誇るであろうニュー速系はもっと分からない。どういうのがあったら便利なんだろう。
スレ埋め立てのための自動連投機能とか、スレをチェックボックスで複数選択して片っ端から同じ書き込みする機能とか、どうよ。うん、この時点で俺がニュー速系をどう認識しているかがよく分かる。もちろん付けないよ。
AA支援機能とかはあってもいいのかなとは思ってたりはする。
そういえばdatMateってunkarとか使ってるのかな。あの機能を付けるべきかどうかがすごく悩んでる。作ること自体は簡単でTuboroidでも●を実装した時点で追加出来るような仕組みにはしてあったんだけど、出来るかどうかよりもしていいのかどうかが分からない。
クックパッド利用者のために便利ツールを作るみたいなのと違って完全に一方的な寄生なわけだから開発者倫理的には限りなくアウトだし、そもそも論的には●売りビジネスを妨害すること自体も2chブラウザ作者としての一線超えまくってる。
でも既に横行してるしヘラヘラとか言いながら付けちゃう可能性はある……。
共有NGについて。2chMateが搭載したようなのだけど、DBはどこで管理してるんだろう。独自管理?
Script Assassinの共有NGは嫌儲限定っぽいし
でもID単位での共有NGは実はあんまり有効性感じないんだよねぇ。どちらかというと画像のグロ避けをどうするかの方が問題だと思ってる。単純にグロという文字列の入ったアンカーが付けられたら暫定グロ認定みたいな原始的処理でもいいんだけど。
■内部実装についての検討
掲示板サイトからのfetch→datファイルに追記→掲示板別parser→オンメモリキャッシュ→Adapter→画面
という階層。
従来ではfetch時点で掲示板別parser通して内部用の共通dat形式に変換し、読み込む時は共通処理を使っていたのだけど、datはなるべくオリジナルを残すように変更。
実は動作速度的には不利なんだけど、DB管理外のdatファイルを野良で突っ込むのに対応しようとするとこれ必須になっちゃう。
レスをdatファイルでのみ管理する方式から、レスごとの情報を管理できるメタデータファイルを隣に作るようにする。
バイナリファイルにすべきかテキストファイルにすべきか迷ったけど、フォーマットの拡張性を考えるとテキストかな。例によってパフォーマンスが不利になるけど仕方あるめえ。
ここではレス個別のNGとか画像あぼーんの状態とかを管理させる。
実はTuboroid 0.1系(現在は非公開、最終版は2010年1月の0.1.4.7、日本のAndroidユーザが今の1/100くらいしか居なかった頃の幻のアプリ)では全レスをDB上で管理していたのだけど、完全にフロムスクラッチでリライトされた0.2系(現行のClassic系)ではdatファイルオンリーになってる。
Tuboroid2ではdatファイル+DBとdatファイル+管理ファイルの2種類を検討したんだけど、前者の方が設計的には綺麗だけど後者の方が色々メリットが大きいかなという感じ。
スレ覧はこれまで1スレ開くごとに1Activity開いてたけどスレ覧Activityはアプリ内で1個にする
これまでガン無視してきたSETTING.TXTの解釈を行う。また板表紙の連投規制値の取得も行った方がいいかな。これにより連投規制待ちをある程度クライアント側で管理出来るようになる。
SETTING.TXTの仕様見てて気づいたんだけど、実は2005年からは暦で遊ぶのを止めていたようなので日付はちゃんとparseできそうだ。コンマ区切りで板暦がつくことがあるのでコンマがあったらそれより前を捨てるという仕様をさっき知った。
(従来の2chの書き込み時刻は管理側の気分次第でしばしばデタラメな表記になっていたので、文字列としてそのまま扱うことはできるがparseしてUNIX timeに変換する安全な手順がなかった)
でも今SETTING.TXTの仕様見てみたらなんかこれ読む意味ない気もする……
時刻を管理出来るようになればNG処理が日付単位で管理出来るようになるため大幅な改善が見込める。
画像関連については完全に別物。ビューア部分については根こそぎ別物で書くと長くなるので割愛。
問題はサムネイルを自動ロードするかどうかで、最近拡張子が画像っぽいけど踏むとIPアドレスやUSER_AGENTを記録するトラップみたいなのが2chのあちこちで横行してるんだよね。だいぶ前に俺がサムネ自動ロードしたくないって言った問題がやっぱ出てきちゃってる。
サムネ自動ロードってことはこういうトラップを問答無用で踏むことになるけどいいかなぁ。
スレごとに切り替えってことにしてデフォルトオフでもいいんだけどさ。ファイルNG機能は共有NGがないと自分が一度踏んでから登録することになるんだよね……。
前述したけどグロ注意レスがついたら暫定NG扱いという手もあるけど、グロ注意レスが付く前にレス読み込んじゃってドーンということもあるわけだから、書き込みから10分以内のレスは自動ロードしないといった工夫も必要かもしれないね。
板移転はいつだって2chブラウザ作者の頭痛の種。Janeも板移転処理無茶苦茶だし、アドホックな対応しか取りようがないのだと思う。
幸いなこと。
Tuboroid開発当時存在すら知らなかったrep2のソースが手元にある。
これは2ch公式p2と全く同じコードベースと思われるものなので、内部実装が2ch公式の想定している動作にかなり近い物になっていると思われる。
monazillaは有用だけど情報不足が否めないので、具体的な実装が(Delphiとか俺が読みにくい言語でなく)存在していることは有り難い。
(追記)
内部構造の件、メタデータは別ファイル保存と書いたけど、DB保存(少なくともローカルストレージ保存)じゃないとまずいかもしれない。
SDカードには事実上セキュリティが存在しない。一方メタデータには「自分の書き込み」マークは付けるつもりでいる。他アプリからSDカードが読まれてそれまで読んだことのあるスレの一覧がバレるのはもうある程度仕方ないかな(ログを全部内蔵ストレージに入れる以外に回避不能)と思ってるけど、さすがに「その人が書き込んだ履歴」が読まれる危険があるのは俺のセキュリティ感覚では容認できない。
SDカードに保存する情報を暗号化する手もないことはないけど、そうなるとランダムに生成した鍵を本体ストレージ側に保持しておく必要があり、それはつまり再インストールすると暗号化した部分はロストするわけだからSDカードに保持しておく利点の大半は失われてしまう。
datの移動はサポートするけどインポート時点でメタデータはロストするよ、という仕様にするしかないのではないかと思う。
2chMateがSDカードにテキスト形式でメタデータを持ってるけど、これ大丈夫なんだろうか。

コメント 1 件

  1. ei より:

    Sync2chに対応する予定はありますか?

コメントを残す

メールアドレスが公開されることはありません。

question razz sad evil exclaim smile redface biggrin surprised eek confused cool lol mad twisted rolleyes wink idea arrow neutral cry mrgreen

CAPTCHA

*