commit 7a24111228b17532667522f2f3b3aefc9c2c02aa
parent c91a5ca6a5c8c0a3ed2d2746017af29707e29397
Author: Tomas Hlavaty <tom@logand.com>
Date: Thu, 24 Oct 2013 01:08:57 +0200
download-rss added
Diffstat:
2 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/cl-rw.asd b/cl-rw.asd
@@ -41,12 +41,12 @@
(:file "xml")
(:file "email")
(:file "os")
- (:file "net")
(:file "concurrency")
(:file "css")
(:file "html")
(:file "socket")
(:file "uri")
(:file "http")
+ (:file "net")
(:file "calendar")
(:file "ui")))
diff --git a/net.lisp b/net.lisp
@@ -23,7 +23,8 @@
(defpackage :rw.net
(:use :cl)
(:export :curl
- :wget))
+ :wget
+ :download-rss))
(in-package :rw.net)
@@ -64,3 +65,13 @@
;;(curl "http://localhost:631/printers/" :response-file "printers.html")
;;(curl "http://localhost:631/jobs/82" :response-file "job-status.html")
+
+(defun download-rss (url)
+ (let ((body (nth-value 4 (rw.http:client url))))
+ (when body
+ (let ((rss (rw.xml:parse-xml body))) ;; TODO parse directly from socket/stream?
+ (when rss
+ (assert (eq :rss (if (atom rss) (car rss) (caar rss))))
+ rss)))))
+
+;;(download-rss "http://www.spiegel.de/international/index.rss")