sakura-editor / sakura-editor.github.io

SAKURA Editor portal site
https://sakura-editor.github.io
11 stars 12 forks source link

旧掲示板 (SourceForge Cyclamen) の過去ログ検索機構の改善 #28

Closed kobake closed 5 years ago

kobake commented 6 years ago

SourceForge 時代の掲示板 のログ検索が使いにくい(数か月前のログを検索しようとすると年月とキーワードの両方を指定しなければならない)ので、もう少し検索しやすい仕組みを提供したいと考えています。

一応 Google 検索で掲示板の発言を探し出すこともできなくはないのですが、フレーム構成になっているせいか、Google 検索結果のリンクから該当発言に飛ぼうとしても失敗することがしばしばあります。

これまでの経緯が不明で議論が煮詰まることがしばしばあるので、経緯を調べる上でログ検索機構の整備は割と大事かと思います。

注意事項

対応案1: 検索CGIを自作

例えば http://sakura-editor.sourceforge.net/cgi-bin/cyclamen/cyclamen.cgi?log=dev&ol=200707&tree=s4890 のログは web.sourceforge.net:/home/project-web/sakura-editor/persistent/skreditor/dev/200707/sd24/4890.log に保管されている。

200706251033403"$1$xxxxxxxx$xxxxxxxxxxxxxxxxxxxxxx"ryoji"タブのグループ化(分離・結合)"グループ化機能を作成してみました。<br>ドラッグアンドドロップで分離・結合できるようになってます。<br><br>パッチ:Patches#1742505<br>テストバイナリ:<!-- al0:http://sakura.qp.land.to/?Junk%2F34 --><a href=http://sakura.qp.land.to/?Junk%2F34 target=&#95;top><nobr>http://<wbr>sakura.<wbr>qp.<wbr>land.<wbr>to/?<wbr>Junk%<wbr>2F34</nobr></a><!-- al1 -->"""111.111.111.111 xxx.xxx.xxx.xxx.jp"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SV1; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506; .NET CLR 1.1.4322; InfoPath.2)"1"0":"[4890]0""""""

所感

一応案としては挙げましたが、すごくめんどくさいので僕はやりたくないです。

対応案2: 掲示板発言を全件クロールして取得したHTMLを GitHub Pages に保管

http://sakura-editor.sourceforge.net/cgi-bin/cyclamen/cyclamen.cgi?log=dev&ol=200707&tree=s4890 であれば例えば https://sakura-editor.github.io/old-bbs-log/dev/200707/4890.html のような感じの場所に設置。

所感

この程度の対応であれば効果に対するコストはそれほど大きくないと思っています。

KageShiron commented 6 years ago

案2に関しても

がほぼ同一になったりして、それはそれで大変そう ログからどうにか静的なデータを生成できないものか:thinking:

よろしければ1月分のデータを送っていただけませんかね?今忙しいタイミングなのですぐには難しいかもしれませんが、可能かどうか試してみます。

kobake commented 6 years ago

よろしければ1月分のデータを送っていただけませんかね?今忙しいタイミングなのですぐには難しいかもしれませんが、可能かどうか試してみます。

ありがとうございます! 1か月分というかデータ全件を圧縮して persistent.zip として以下に配置しました。 https://sakura-editor.osdn.jp/

CGI 部も見たい場合には cgi-bin 配下の情報を見る必要がありますが、cgi-bin 配下にはたぶん認証情報とかが入ってるような気がする(想像ですが)ので直接 web 領域にバックアップを置くのはやめておきました。

上記サイトにメモを残しておいたのですが、直接 SCP で shell.osdn.net に繋げることで cgi-bin.zip を取得することができます。SCP 接続のためには OSDN に SSH 鍵を登録しておく必要があることにご注意ください。

案2に関しても http://sakura-editor.sourceforge.net/cgi-bin/cyclamen/cyclamen.cgi?log=dev&ol=200707&tree=s4890 http://sakura-editor.sourceforge.net/cgi-bin/cyclamen/cyclamen.cgi?log=dev&ol=200707&tree=s4891 がほぼ同一になったりして、それはそれで大変そう ログからどうにか静的なデータを生成できないものか🤔

まぁこのへんはうまく重複弾くスクリプトを組めば良いかな~と思っていました。 上述の persistent の中のデータを見ると分かると思いますが、正直自分で分析する気持ちは萎えるフォーマットと感じると思います(以前に Cyclamen のメンテをしていた経験があるという人であれば別かもしれませんが)。個人的には HTML 解析のほうが楽だと感じました。

今忙しいタイミングなのですぐには難しいかもしれませんが、可能かどうか試してみます。

僕も時間あれば手を付ける可能性ありますが、どっちが先に着手することになるか分からないですねw 2人で作業が被っちゃうのはもったいないので、先に着手した人は「着手しました」ってここで宣言することにしましょうか。

KageShiron commented 6 years ago

ダウンロードしましたー 一応、IPとリモートホストが含まれるので、そちらも直接置くのはやめたほうが良いかも・・・

kobake commented 6 years ago

おっと。そこは認識してませんでした。 ってか上で挙げてたデータサンプル引用にもIPとホスト名入ってますね・・・ ファイル避難とコメント修正しときます。まぁ上のは2007年のやつなのでそれほどクリティカルではないと思われますが。

kobake commented 6 years ago

避難&修正done

KageShiron commented 6 years ago

生ログを解析してツリー構造に従ってHTML吐くところまでいけました。 https://gist.github.com/KageShiron/964f752f2280c7736647052bd9952d9b

実際に容量の少ないマクロ掲示板を変換して見たやつ(個人情報などは含まれてません) http://esora.xyz/nopublic/sakuraeditor/macro.html

めちゃくちゃ素朴な実装ですが、8000レコードぐらいなら余裕でした。(遅かったらDBに突っ込もうとしてた)

ここまで来ちゃえばお好みの形で吐くのは簡単なのですが、どんなHTMLが見やすいでしょうか :thinking:

KENCHjp commented 6 years ago

どんなHTMLが見やすいでしょうか 🤔

スタティックにできる可能な限りいまのCGIに似たページ構成がいいのかなと思うのですがいかがでしょう? 欲張りすぎ?

kobake commented 6 years ago

@KageShiron

生ログを解析してツリー構造に従ってHTML吐くところまでいけました。 https://gist.github.com/KageShiron/964f752f2280c7736647052bd9952d9b

実際に容量の少ないマクロ掲示板を変換して見たやつ(個人情報などは含まれてません) http://esora.xyz/nopublic/sakuraeditor/macro.html

めちゃくちゃ素朴な実装ですが、8000レコードぐらいなら余裕でした。(遅かったらDBに突っ込もうとしてた)

ここまで来ちゃえばお好みの形で吐くのは簡単なのですが、どんなHTMLが見やすいでしょうか 🤔

ご対応ありがとうございます! 変換スクリプトまでは見切れていませんが、成果物HTMLについては今の体裁で良いのではないでしょうか。一旦これをたたき台として公開してしまい、CSS 等で綺麗にしたくなったら後から対応で十分だと思っています。

めちゃくちゃ素朴な実装ですが、8000レコードぐらいなら余裕でした。(遅かったらDBに突っ込もうとしてた)

GitHub Pages に配置する場合に限っては DB は使えないです。 ただ、件数的に DB は無くても良いかと。検索機能は Google エンジンにお任せということで。

個人情報などは含まれてません

個人情報って何か含まれてましたっけ? IP アドレスとかのことですか?

 

@KENCHjp

スタティックにできる可能な限りいまのCGIに似たページ構成がいいのかなと思うのですがいかがでしょう? 欲張りすぎ?

以前の掲示板と同じ見た目にしてしまうと、追加で投稿可能に見えてしまいかねないので、むしろ今 @KageShiron さんが準備いただいた html のように、旧掲示板をそのまま保管したわけではない、あくまでも「アーカイブ」に過ぎないことがぱっと見で分かる形式のほうが好ましいと自分は考えています。どうでしょうか。

KENCHjp commented 6 years ago

あくまでも「アーカイブ」に過ぎないことがぱっと見で分かる形式のほうが好ましいと自分は考えています。

なるほどです。 それも一瞬脳内で考えてうまく表現できなかったので下げましたが、それでもいいですね。

それであれば 会議室別に1ページいい感じ(ブラウザいちページで重くない件数)でページ分けして、indexつくって掲載ですかね。 8000件で1htmlなのかな、AndroidのChromeがしぬwww

kobake commented 6 years ago

8000件で1htmlなのかな、AndroidのChromeがしぬwww

スレッド1件につき1個のHTMLで良いかなーと思いました。 もちろんindexページは作る前提として。

KageShiron commented 6 years ago

DBはTSVの代わりにプログラム中で使うと変換する速度が改善するというお話でした。現状の木構造構築が全部オンメモリ+総当たりなので、書いてる途中ではもっと時間がかかるかと思ってました。

どちらにせよ公開するのは変換後のHTMLなのであまり関係ありませんが^^;

個人情報って何か含まれてましたっけ?

ホスト、ユーザーエージェント、メールアドレスあたりです。メールは隠す必要はないにしても、2000年代のアドレスを公開しておくのはスパムの温床になるだけかなぁと。投稿者に連絡を取りたい場合は管理者が調べて回答するで良いと思います。

スレッド1件につき1個のHTMLで良いかなーと思いました。

約1000件とか、年ごとぐらいに1ページにしたほうが一覧性は高いものの、Google先生に頼りきるというのが現代では正しい気がしますね。手動検索はgit cloneしてgrepすればよさそう。

KageShiron commented 6 years ago

WIP

https://github.com/KageShiron/CyclamenArchiver

来週ぐらいまでには完了します

KageShiron commented 5 years ago

遅くなりましたが、暫定版です。データが小さいマクロ掲示板をとりあえず。 http://esora.xyz/nopublic/sakuraeditor/macro/

デザインとかHTMLの内容についてご意見いただきたいです。あまりコミット履歴を汚したくないので、ある程度固めた後に修正してプルリク投げますね。

今後の修正で差分を取ることを考えるとHTMLのコード整形をかました方が良いのかなぁ・・・

KENCHjp commented 5 years ago

文字化けしません?

KENCHjp commented 5 years ago

ちな、IEだと、表示した後エンコードをUnicode(UTF-8)にすると文字化け解消、 Firefoxは初期表示で大丈夫、Chrome系は今エンコードがデフォルトで変更できないんですよねぇ。。。Edgeも文字化け。

で、インデックページですが、

400 相対パスにある同名のCもしくはHファイルを開く 

こんな感じなってますが、元のBBSの、

<8429>Re2:開発・管理向け掲示板移行の... kobake 〔5/29(Tue) 11:14〕

発言者が(できれば発言日時)ついてるといいのかなぁと。ただ情報に漏れが無ければ最後はGoogle先生に見つけてもらえばいいだけかと思うので今のままでもいいかもしれません。

KageShiron commented 5 years ago

index.htmlにmeta入れ忘れてました(Firefoxユーザーなので気づかず)。 今度修正します。(というかindex.htmlが現状ツリー並べただけの粗末なものですが^^;) こちらには発信者名と日時があったほうが良さそうですね。

デザインに関しても各ページどのようにするかは結構困ってます。 どのようにすれば見やすいのか(もしくは、どうやっても見にくいのか)

ネストが深いといろいろ読みにくいですが、もはやしょうがないきもする http://esora.xyz/nopublic/sakuraeditor/macro/155.html

KENCHjp commented 5 years ago

@KageShiron さん、欲を言えばきりがないのと見た目はきりがなさそうなので、情報の漏れが無ければ、後は体力とのバーターでいいんじゃないかと思います。 この目的は「Google先生にもれなく見つけてもらう」かと思いますので。

berryzplus commented 5 years ago

元の構造がしっかりHTMLしてるならBootstrapでデザインしやすくなるかもです。

Webデザイン初心者でもできる、Bootstrapの使い方超入門

スマホから見たときにもなんとなくいい感じになるあたり、さすがtwitterという。

KENCHjp commented 5 years ago

@berryzplus さん Bootstrap 結構しんどいんですよねぇ(笑)

berryzplus commented 5 years ago

@KENCHjp さん 色々こだわらなければ少ない手間で外枠とかカッコよくなるあたりが素敵・・・w < Bootstrap

KageShiron commented 5 years ago

👢Bootstrapだとサイドバーとかツリーへの対応が多分いまいちなので、結局迷ってるところは変化なさそう

主に閲覧するのは開発メンバーだと思うので、こういう方が嬉しいよがあれば反映しようと思います。デザインや機能面についてはあとから直せばいいのですが、大幅なページ構造の変更があるとGoogleが混乱するのでとりあえずそこが最優先ですかね。

それ以外についてはいろいろ落ち着いた8月後半ぐらいにいじり直すことになりそうです。

あと、他にも文字化けとかインデント崩れとかを発見したらお願いします。ログファイルが変なエスケープがかかっており、すべて直したと思ってますが。。。

kobake commented 5 years ago

@KageShiron さん、ご対応ありがとうございます!良い感じですね~~

大幅なページ構造の変更があるとGoogleが混乱するのでとりあえずそこが最優先ですかね。

ここ大事ですが、自分としては今のURL構造で良さそう、と持っています。 ここでブレがなければ今の状態で公開してしまっても良いのでは、と思います。

置き場所は GitHub Pages 側になる、という認識で合ってますか?

公開後に見た目の調整をする場合は GitHub Pages 側に各々から PR 出す感じで良いのでしょうか。それともコンバータとの兼ね合いも考える必要があったりしますか?

KageShiron commented 5 years ago

@kobake さん

置き場所は GitHub Pages 側になる、という認識で合ってますか?

そのつもりです。 site:https://sakura-editor.github.io/bbs/ hoge で掲示板を貫き検索しやすいようにhttps://sakura-editor.github.io/bbs/macro とかですかね。

公開後に見た目の調整をする場合は GitHub Pages 側に各々から PR 出す感じで良いのでしょうか。それともコンバータとの兼ね合いも考える必要があったりしますか?

基本はPRを適当に出せば良いと思います。大規模な文字化けとか、引用部分に色つけたいみたいなことが出てきたらコンバータから再生成したほうが良いかもしれませんが。

HTMLにprettier噛ませて見たものの、white-space:preによってもろ整形の影響を受けてしまう・・・

あと、掲示板内のURLを置き換える処理を挟むのを忘れていた

kobake commented 5 years ago

今ある過去ログがこんな感じになってます。

これに並行する形で旧掲示板ログを置くとしたら

みたいな感じ……ですかね? cyclamen という固有名詞もなんだか微妙な気もしますがw

KageShiron commented 5 years ago

数週間放置してすいませんでした:cry: 無事進学決まりました&夏の重量級タスクが終了したのでやっと夏休みです:smile:

とりあえず、若干の調整を加えて自分のリポジトリにコミットしました。cyclamenはスペル間違えそうなので、sfでどうでしょう。 あと、dataとdevがわかりにくいので、generalとansiに差し替えてみました。(でも、アーカイブを見る人を考えるとそのままの方がいい気もしてきた)

https://github.com/KageShiron/sakura-editor.github.io/tree/master/bbslog/sf https://kageshiron.github.io/sakura-editor.github.io/bbslog/sf/general/

かなり適当なので、リンクがおかしいところとか、見にくいところがあればご指摘ください。

検討

ファイル数が4000を超えるので、差分の肥大化を防ぐためにもある程度満足できる状態でマージしたいですね。

KENCHjp commented 5 years ago

無事進学決まりました

おめでとうございます。 ひとまず。