[Date Prev][Date Next][Thread Prev][][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件だけのようです。