[Date Prev][Date Next][Thread Prev][Thread Next][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)