[64] | 1 | (use srfi-1) |
---|
| 2 | (use srfi-19) |
---|
| 3 | (use sxml.serializer) |
---|
| 4 | |
---|
| 5 | (define lambda-news (lambda () |
---|
| 6 | (call-with-input-file "news.dat" |
---|
| 7 | (lambda (in) |
---|
| 8 | (let ((news (read in))) |
---|
| 9 | (map (lambda (ns) |
---|
| 10 | (let ((y (list-ref (car ns) 0)) |
---|
| 11 | (m (list-ref (car ns) 1)) |
---|
| 12 | (d (list-ref (car ns) 2)) |
---|
| 13 | (h (list-ref (car ns) 3)) |
---|
| 14 | (i (list-ref (car ns) 4)) |
---|
| 15 | (s 1)) |
---|
| 16 | (let ((dt (make-date 0 s i h d m y 0))) |
---|
| 17 | `(entry |
---|
| 18 | (title ,(date->string dt "~Y/~m/~d(~a)")) |
---|
| 19 | (id ,(string-append "http://scheme-users.jp/index.html#news" (date->string dt "~Y~m~d~H~M~S"))) |
---|
| 20 | (link (@ (href ,(string-append "http://scheme-users.jp/index.html#news" (date->string dt "~Y~m~d~H~M~S"))))) |
---|
| 21 | (updated ,(date->string dt "~Y-~m-~dT~H:~M:~SZ")) |
---|
| 22 | (content (@ (type "html")) |
---|
| 23 | ,(call-with-output-string |
---|
| 24 | (lambda (out) |
---|
| 25 | (srl:sxml->xml (cons 'p (cdr ns)) out)))))))) |
---|
| 26 | (take news 20))))))) |
---|
| 27 | |
---|
| 28 | (define main (lambda (args) |
---|
| 29 | (srl:parameterizable |
---|
| 30 | `(feed (@ (xmlns "http://www.w3.org/2005/Atom")) |
---|
| 31 | (title "Scheme-users.jp") |
---|
| 32 | (link (@ (href "http://scheme-users.jp/"))) |
---|
| 33 | (updated ,(date->string (current-date) "~Y-~m-~dT~H:~M:~SZ")) |
---|
| 34 | (auther (name "Scheme-users.jp")) |
---|
| 35 | (id "http://scheme-users.jp/") |
---|
| 36 | ,@(lambda-news)) |
---|
| 37 | "atom.xml" |
---|
| 38 | '(omit-xml-declaration . #f) |
---|
| 39 | '(cdata-section-elements . (content))) |
---|
| 40 | 0)) |
---|