[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
sb-yomiuri.el
より正確な日付
- From: Ta-ku-ya II <ayucat@xxxxxxxxxxxxxxx>
- Date: Thu, 12 Dec 2002 17:01:25 +0900 (JST)
- X-ml-name: emacs-w3m
- X-mail-count: 04412
README.shimbun.ja のサンプルを試していたら、ウェブページ側で、日付が
ズレていたので、それを正確に取得するものを書いてみました。
shimbun もまだよく分かってない上に、elisp さえ分かってないので、適当
なのですが、動いているようです。
# 二度も記事本文を取りに行くのは無駄すぎるんでしょうが、本文取得時に、
# shimbun-header をいじれないような気がした(見てないですが)ので、こう
# なってしまいました。
より無駄の少ないやり方ってありますでしょうか。
ズレるのは深夜の記事だけで、数もあまり多くないので、気にしなくてもい
いかもしれませんが、ソートするときに困るような気がしたので。
# ソートするほどの日数は使っていないのですが(^^;
ところで、ファイル先頭に "-*- coding: iso-2022-7bit -*-" って付けな
くても大丈夫なんでしょうか?
--
Ta-ku-ya II <ayucat@pop21.odn.ne.jp> <ayucat@esprix.net>
http://esprix.net/~takuya2/
# (string-match "hoge" bar) の後での、
# (match-string 0 bar) と (match-beginning 0) ;; (match-end 0) も?
# との順番に 2日も悩んでいました(^^;; 順番ってあるんですね。
*** sb-yomiuri.el.orig Wed Aug 22 03:13:16 2001
--- sb-yomiuri.el Thu Dec 12 16:35:22 2002
***************
*** 51,56 ****
--- 51,60 ----
(defvar shimbun-yomiuri-expiration-days 7)
+ (defvar shimbun-yomiuri-exact-date nil)
+ (defvar shimbun-yomiuri-exact-date-hour-beg 0)
+ (defvar shimbun-yomiuri-exact-date-hour-end 3)
+
(luna-define-method shimbun-index-url ((shimbun shimbun-yomiuri))
(concat (shimbun-url-internal shimbun)
(cdr (assoc (shimbun-current-group-internal shimbun)
***************
*** 93,106 ****
(progn (search-forward "<br>" nil t) (point)))
"<[^>]+>")
""))
! date)
(when (string-match "^◆" subject)
(setq subject (substring subject (match-end 0))))
! (if (string-match "(\\([0-9][0-9]:[0-9][0-9]\\))$" subject)
! (setq date (shimbun-make-date-string
! year month day (match-string 1 subject))
! subject (substring subject 0 (match-beginning 0)))
! (setq date (shimbun-make-date-string year month day)))
(push (shimbun-make-header
0
(shimbun-mime-encode-string subject)
--- 97,122 ----
(progn (search-forward "<br>" nil t) (point)))
"<[^>]+>")
""))
! date hour hm)
(when (string-match "^◆" subject)
(setq subject (substring subject (match-end 0))))
! (when (string-match "(\\(\\([0-9][0-9]\\):[0-9][0-9]\\))$" subject)
! (setq hour (string-to-number (match-string 2 subject))
! hm (match-string 1 subject)
! subject (substring subject 0 (match-beginning 0))))
! (if (and shimbun-yomiuri-exact-date
! (>= hour shimbun-yomiuri-exact-date-hour-beg)
! (<= hour shimbun-yomiuri-exact-date-hour-end))
! (with-temp-buffer
! (shimbun-retrieve-url
! (concat (shimbun-url-internal shimbun) url) 'reload)
! (when (re-search-forward "\\([0-9]?[0-9]\\)月\\([0-9]?[0-9]\\)日" nil t)
! (message "Checking exact date...")
! (setq month (string-to-number (match-string 1))
! day (string-to-number (match-string 2)))
! (if (and (= month 1) (= day 1)) (+1 year))
! (message "Checking exact date...done"))))
! (setq date (shimbun-make-date-string year month day hm))
(push (shimbun-make-header
0
(shimbun-mime-encode-string subject)