Navi2ch for Emacs (Part 21)

■ このスレッドは過去ログ倉庫に格納されています
1名無しさん@お腹いっぱい。
垢版 |
2014/07/12(土) 10:06:10.24
Emacsen で動く 2ch 専用ブラウザ、Navi2ch のスレッドです。

Navi2ch Project Home Page
http://navi2ch.sourceforge.net/

開発版
% cvs -z3 -d:pserver:anonymous@navi2ch.cvs.sourceforge.net:/cvsroot/navi2ch co navi2ch

過去ログ
>> ~/.navi2ch/etc.txt
> navi2ch
> http://navi2ch.sourceforge.net/log/
> navi2ch

前スレ
Navi2ch for Emacs (Part 20)
http://peace.2ch.net/test/read.cgi/unix/1265413075/
2015/11/23(月) 19:19:58.57
なんかログレベルあげてたら再現した
事実はある程度判明したけど直し方はわからないのでアドバイスよろしくです

bg20.2ch.netは以下で定義してnavi2ch-net-connect-checkで使われている
(defvar navi2ch-net-fall-back-host "bg20.2ch.net")
(defun navi2ch-net-connect-check (connection-data)
推測: いきなりfall-backしているのはkakoフラグが立ってしまっているのか?
でkako/...gzをnavi2chが要求して正しいデータ(kakoじゃないやつ)をとってきてもらってscrapingまで正常
で、データがgzip圧縮されているけどファイル名は.datになっていて文字化けしている
疑問: 圧縮しているのが誰でファイル名を決めているのが誰か、という話だろうか

[5] HTTP: 127.0.0.1 | GET http://bg20.2ch.net/test/r.so/peace.2ch.net/win/1446756620/
[5] HTTP: 500 Can't connect to bg20.2ch.net:80 | GET http://bg20.2ch.net/test/r.so/peace.2ch.net/win/1446756620/
[5] PROXY: change response
[5] HTTP: finish connection.
[0] HTTP: request received.
[6] HTTP: 127.0.0.1 | GET http://peace.2ch.net/win/kako/1446/14467/1446756620.dat.gz
[6] SCRAPING: rewrite_uri: http://peace.2ch.net/test/read.cgi/win/1446756620/
[6] HTTP: HTTP/1.1 200 OK | GET http://peace.2ch.net/test/read.cgi/win/1446756620/
[6] PROXY: change response
[6] PROXY: change response
[6] SCRAPING: add Last-Modified header
[6] SCRAPING: charset: Guess
[6] HTML2DAT: convert html to dat
[6] HTML2DAT: res_number: 1
[6] HTML2DAT: res_number: 807
2015/11/23(月) 21:09:12.57
navi2ch-net-connect-checkって何やってるんだ?
bg20.2ch.netって過去の遺物?
bg20.2ch.netにアクセスするとタイムアウトするからkako取りに行って結果化けてるみたいだけど
falling-backせずに単にsleepしてればいいの?
2015/11/24(火) 04:28:03.96
navi2ch-net-connect-checkはボボンハウスだっけかの連投だか頻繁取得規制に引っかか
らないためのウェイト入れてやるんじゃなかったかな。
で、内部かどこかののウェイトに引っかった時点で取得順が 
dat -> bg20(懲罰サーバ?) -> kakoログ倉庫 ってなるけど、どれも管理人変更
で死んだサービスになってるから2chproxyがおかしなデータ返す、でそれを受けて
navi2ch側が死亡認定して自前datをgzip圧縮、ローカルストレージに過去ログとして保存
だと思った。kakoフラグは2chサーバのhttpヘッダーにあるので、2chproxyでエミュ
レートしてる可能性もあり

そもそも論で言えばbg20にフォールバックするのなんて実況スレで連投するときしか起き
ないと思うので、何かが変といえば変
kakoフラグ立ったら再取得に行かないので C-cC-r でリセットしてやるバッドノウハウが
あるくらいのでkakoフラグでdat取得に行ってたらそれも変
2015/11/24(火) 06:31:45.01
>>627
解説ありがとうございます
navi2ch-net-connect-checkでbg20を見に行くことにすると現状ではエラーになるのでとりあえずsleepしとけばいいということか、それともsleepも不要なのかな
bg20でエラーにならなければkakoを見に行くこともなさそうだし

文字化け対策としては2chproxy.plで以下の設定を変えるだけでいいのかも
DISABLE_GZIP_COMPRESS => 0, #過去ログ(.dat.gz)へのアクセスをスクレイピングした際も
#圧縮せずにテキストのまま返す
#0で無効、1で有効
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。