[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: sb-yomiuri.el
より正確な日付
Ta-ku-ya II です。
でけたー。
しかし、一番時間をかけてしまったのは、match-string 系
ですねぇ...、「最後の search- 系, re-search- 系」の有効範囲って結構狭
いんでしょうか(;_;)
|From: Hideyuki SHIRAI (白井秀行) <shirai@rdmg.mgcs.mei.co.jp> さん
|Subject: [emacs-w3m:04424] Re: sb-yomiuri.el より正確な日付
|Date: Fri, 13 Dec 2002 18:30:00 +0900 (JST)
|Message-ID: <20021213.183000.74359313.shirai@rdmg.mgcs.mei.co.jp>
> # 何をいっているんですか、読売新聞じゃないと我が巨人軍の記事
> # が。。。(以下自粛)
(^^)
> おぉ、納得しました。
よかったぁ。
けど、
> で、こいつがそのうち、ファイル名(URL) が変わってしまうという問題
> なのですよね。(やっと理解出来ました)
> うーー、X-Shimbun-Id が変わると別記事と見なしちゃうんだよなぁ。
それは山岡さんがおっしゃったことに関連するので、ぼくは分かりません。
ぼくの言っているのは、URL も変わりません(ぼくの確認した限りでは...
/^^;)。URL と実際の日付とが一致しないまま、お亡くなりに(ウェブの一覧か
ら消える)なるようです(これまた、*多分* ですが)ので、
> このへんは新しい sb-yomiuri.el :-) を見させていただいてから考え
> ます。
考えていただかなくても結構...なはずですよ。
> 絶対とはいいませんけど、同じ記事を何度も取得しないように C-g に
> 対する耐性は結構強く作ってあります。
おぉ、(C-g を多用する人間としては)それは嬉しい。
けど、タブってましたけどね。もう消しちゃったし、再現するのは疲れるか
ら、止めときますが(爆。
で、試作がこんな感じ。
(*) がもっと綺麗にならないかな、と思っています。よい方法がありました
ら、ご指摘していただけたら、と思います(^^;;
(luna-define-method shimbun-make-contents ((shimbun shimbun-yomiuri) header)
(let ((case-fold-search t)
date year month day start)
(when (re-search-forward "\n<!-- honbun start -->\n" nil t)
(delete-region (point-min) (point)))
(when (re-search-forward "\n<!-- honbun end -->\n" nil t)
(delete-region (match-beginning 0) (point-max)))
(when (and shimbun-yomiuri-exact-date
(re-search-backward "(\\(1?[0-9]\\)月\\([1-3]?[0-9]\\)日" nil t);)
(setq start (match-beginning 0)) ; ) ;; (*)
(setq month (string-to-number (match-string 1))
day (string-to-number (match-string 2))
date (shimbun-header-date header)))
; (delete-region (match-beginning 0) (point-max)))
(when (eq shimbun-yomiuri-exact-date 'smart) ;; (*)
(delete-region start (point-max))) ;; (*)
(when (string-match "^[0-9]+ [A-Za-z]+ \\([0-9]+\\)" date)
(setq year (string-to-number (match-string 1 date)))
(if (and (= month 1) (= day 1)) (+1 year))
(setq date (replace-match
(format "%02d %s %04d"
day
(aref [nil "Jan" "Feb" "Mar" "Apr" "May" "Jun"
"Jul" "Aug" "Sep" "Oct" "Nov" "Dec"]
month)
year)
t t date))
(message "%s" date)
(shimbun-header-set-date header date)))
(when (re-search-backward "\n+" nil t) (replace-match ""))
(goto-char (point-min))
(insert "<html>\n<head>\n<base href=\""
(shimbun-header-xref header) "\">\n</head>\n<body>\n")
(goto-char (point-max))
(insert "\n</body>\n</html>\n"))
(shimbun-make-mime-article shimbun header)
(buffer-string))
--
Ta-ku-ya II <ayucat@pop21.odn.ne.jp> <ayucat@esprix.net>
http://esprix.net/~takuya2/
# もう少しテストしよう(^^;
# 今の時間だと該当記事は1件だけのようです。