[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Shimbun backend for FFII
At Mon, 07 Feb 2005 11:18:13 +0900,
TSUCHIYA Masatoshi wrote:
> I received the attached message. I will be willing to add sb-ffii.el
> to our CVS repository. Before adding it, I would like to mention
> several suggestions.
Thanks for looking at my code. I have to apologize for my crappy
module. An improved version is attached.
> I have just checked the WEB page <http://www.ffii.org/news/rss/>, and
> found more RSS feeds than the current sb-ffii.el supports. Can you
> add other RSS feeds and improve group names?
Done.
> You can remove `shimbun-ffii-content-start' and
> `shimbun-ffii-content-end' safely. When they are not specified,
> Shimbun library will remove no snippet from retrieved pages when
> makeing articles.
I already tried removing them before I submitted my first version. The
problem is that when I leave away "shimbun-ffii-content-start" and
"shimbun-ffii-content-end", then I get the following error message with
all messages that I tried to read:
byte-code: Wrong type argument: stringp, nil
> You can remove `shimbun-ffii-server-name' also.
I put it in there so that the return address looks a bit nicer.
> You should add a copyright header to the file as follows:
>
> Copyright (C) 2005 ....
Done.
BTW, there's one problem that I didn't solve yet. In the feed named
ffii.Informations-Infrastruktur-Nachrichten
there is an item "<dc:date></dc:date>". When I try to synchronize
message from that feed, then I get the following error message:
if: Wrong type argument: stringp, nil
Perhaps you have a suggestion on how to solve that problem?
--
Felix E. Klee
===File ~/projects/emacs/sb-ffii.el=========================
;;; sb-ffii.el --- shimbun backend for <http://www.ffii.org/news/rss/>
;; Copyright (C) 2004, 2005
;; Felix E. Klee <felix.klee@inka.de>
;; Andreas Seltenreich <seltenreich@gmx.de>
;; Authors:
;; * Felix E. Klee <felix.klee@inka.de>
;; * Andreas Seltenreich <seltenreich@gmx.de> (author of sb-n24-de.el
;; which was used as a base for this module)
;; Keywords: news
;; Created: Feb 07, 2005
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 2, or (at your option)
;; any later version.
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with this program; if not, you can either send email to this
;; program's maintainer or write to: The Free Software Foundation,
;; Inc.; 59 Temple Place, Suite 330; Boston, MA 02111-1307, USA.
;;; Code:
(require 'shimbun)
(require 'sb-rss)
(luna-define-class shimbun-ffii (shimbun-rss) ())
(defvar shimbun-ffii-groups-alist
'(("Software Patent News: All Sources" . "SwpatcninoEn")
("Software Patent News: FFII" . "SwpatcninoEn-ffii")
("Softwarepatent-Nachrichten: Alle Quellen" . "SwpatcninoDe")
("Softwarepatent-Nachrichten: FFII" . "SwpatcninoDe-ffii")
("Nouvelles sur les Brevets Logiciels: toutes sources" . "SwpatcninoFr")
("Nouvelles sur les Brevets Logiciels: FFII" . "SwpatcninoFr-ffii")
("Laatste Nieuws: wereld" . "SwpatcninoNl")
("Laatste Nieuws: FFII" . "SwpatcninoNl-ffii")
("Information Infrastructure News" . "FfiinewsEn")
("Informations-Infrastruktur-Nachrichten" . "FfiinewsDe")
("FFII Project News" . "FfiiprojNewsEn")))
(defvar shimbun-ffii-groups
(mapcar 'car shimbun-ffii-groups-alist))
(defvar shimbun-ffii-content-start "<html>")
(defvar shimbun-ffii-content-end "</html>")
(defvar shimbun-ffii-server-name "FFII")
(defvar shimbun-ffii-from-address "info@ffii.org")
(luna-define-method shimbun-headers :before ((shimbun shimbun-ffii)
&rest range)
shimbun)
(luna-define-method shimbun-groups ((shimbun shimbun-ffii))
shimbun-ffii-groups)
;; Returns a Message-ID created from the URL url and the date date.
(luna-define-method shimbun-rss-build-message-id
((shimbun shimbun-ffii) url date)
(let (page host datedesc)
; Sometimes URLs are broken (e.g. I've seen something like http:http://x/).
; The following expression tries to deal with cases like this.
(unless (string-match "[^:]*:\\/\\/\\([^\/]+\\)\\([^@<>]*\\)" url)
(error "Cannot parse URL for message-id base"))
(setq
host (match-string-no-properties 1 url)
page (match-string-no-properties 2 url))
; Sometimes dates are broken, therefore the following expression is very
; fault tolerant.
(unless (string-match
"\\([^@<>]*\\)"
date)
(error "Cannot parse date for message-id base"))
(setq datedesc (concat (match-string-no-properties 1 date)
(match-string-no-properties 2 date)
(match-string-no-properties 3 date)
(match-string-no-properties 4 date)
(match-string-no-properties 5 date)))
(format "<%s%%%s@%s>" datedesc page host)))
(luna-define-method
shimbun-index-url ((shimbun shimbun-ffii))
(concat "http://www.ffii.org/news/rss/"
(cdr (assoc (shimbun-current-group-internal shimbun)
shimbun-ffii-groups-alist))
".rss"))
(provide 'sb-ffii)
;;; sb-ffii.el ends here
============================================================