[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

'w3m-antenna vs hns' problem and fix dump_head_source patch



From: TSUCHIYA Masatoshi <tsuchiya@pine.kuee.kyoto-u.ac.jp> さん曰く
Subject: [emacs-w3m:00386] Re: dump_head_source patch
Message-ID: <20010329090828D.1000@pine.kuee.kyoto-u.ac.jp>
Date: 29 Mar 2001 09:08:28 +0900

土> 予告通り、このパッチを適用した w3m を利用することによって、redirect さ
土> れた URL と、圧縮されているコンテンツなどに対応してみました。

土>     (setq w3m-mnc t)

早速使ってみました。今回の変更での問題点と、昨日、酔っぱらってい
たときに土屋さんに言った antenna の問題点の修正です。

問題点

(1) about://xxxx を表示したり、(setq w3m-mnc nil) で 'HTTP/1.1
 500' が発生するところでは w3m-current-url が設定されないので困っ
 てしまう。

以下は w3m-antenna で hns の人だけど、ダメな人の話。

(2) diary/di.cgi を公開していない(存在しない?)ところもある。も
 しかすると最近はそういうものなのかも。

% w3m -dump_source http://www.daionet.gr.jp/~knok/diary/di.cgi
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>404 Not Found</TITLE>
</HEAD><BODY>
<H1>Not Found</H1>
The requested URL /~knok/diary/di.cgi was not found on this server.<P>
</BODY></HTML>


(3) di.cgi の Last-modified: で time-parse に失敗するところもあ
 る。古い hns の人かな? (例にあげてごめんね)

% w3m -dump_source http://cgi.netlaputa.ne.jp/~kose/diary/di.cgi
<html>
<head>
<meta name="author" content="kose@yk.NetLaputa.ne.jp">
<title>過負荷な日々 -- 海賊版 --</title>
</head>
<body>
Last-modified: 2001, 27 03   GMT<br>
newest day is 2001/03/27
</body>
</html>

(format-time-string "%Y-%m-%d %T"
  (w3m-time-parse-string "2001, 27 03   GMT"))
=> "1999-11-30 09:00:00"
(timezone-fix-time "2001, 27 03   GMT" nil nil)
=> [2000 0 0 9 0 0 (32400 "JST")]

最近の hns と思われる高林さんの日記は

% w3m -dump_source http://namazu.org/~satoru/diary/di.cgi
<html>
<head>
<meta name="author" content="高林哲">
<title>いやな日記</title>
</head>
<body>
Last-Modified: Tue, 27 Mar 2001 12:43:16 GMT<br>
Newest Day is 2001/03/25.
</body>
</html>

(format-time-string "%Y-%m-%d %T"
  (w3m-time-parse-string "Tue, 27 Mar 2001 12:43:16 GMT"))
=> "2001-03-27 21:43:16"
(timezone-fix-time "Tue, 27 Mar 2001 12:43:16 GMT" nil nil)
=> [2001 3 27 21 43 16 (32400 "JST")]

となります。


で、ここからが解決策。

(1) w3m-current-url に nil が入らないように、

(defmacro w3m-real-url (url &optional no-cache)
  (` (or (nth 5 (w3m-attributes (, url) (, no-cache))) (, url))))

としました。

(2) w3m-antenna-hns-last-modified() に失敗したら、
 w3m-last-modified() を動かすようにしました。(*1)

(3) 古い "Last-Modified:" は無視するようにしました。
 
(4) w3m-antenna-sites で Normal を選択した site の 
 w3m-antenna-alist の nth 6 =>  "Time when size modification is detected"
 がいつまでたっても設定されないので、nil だったら current-time()
 を設定するようにしました。

(5) w3m-antenna-sites の Class に 'time を増やしました。hns じゃ
 ないけど、size の比較は必要ないところに使うと良いかも。また、
 (*1) のときも 'hns って設定するより 'time って設定する方が良い
 かも。
 
いじょ。

-- 
白井秀行 (mailto:shirai@rdmg.mgcs.mei.co.jp)