blob: dae8e2ed87e8fcd6bfa37b090d4fb527cdf76c18 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
;;; (planet feed) --- internal feed representation
(declare (module (planet feed))
(import scheme (chicken base)
(chicken time posix)
uri-common)
(export feed make-feed feed?
feed-url feed-title feed-updated feed-meta feed-items)
(export item make-item item?
item-link item-title item-updated item-meta item-content)
(export attachment make-attachment attachment?
attachment-url attachment-size attachment-mimetype))
(define-record-type feed
(make-feed url
title
updated
meta
items)
feed?
(url feed-url (setter feed-url)) ; URI
(title feed-title (setter feed-title)) ; String
(updated feed-updated (setter feed-updated)) ; Date
(meta feed-meta (setter feed-meta)) ; Alist: String -> String (?)
(items feed-items (setter feed-items)) ; Items
)
(define-record-type item
(make-item link
title
updated
meta
content
attachments)
item?
(link item-link (setter item-link)) ; URI
(title item-title (setter item-title)) ; String
(updated item-updated (setter item-updated)) ; Date
(meta item-meta (setter item-meta)) ; Alist: String -> String
(content item-content (setter item-content)) ; String
(attachments item-attachments (setter item-attachments)) ; List: Attachment*
)
(define-record-type attachment
;; Basically RSS <enclosure>
(make-attachment url size mimetype)
attachment?
(url attachment-url (setter attachment-url))
(size attachment-size (setter attachment-size))
(mimetype attachment-mimetype (setter attachment-mimetype)))
|