git.fiddlerwoaroof.com
Browse code

miscellaneous updates/bugfixes

fiddlerwoaroof authored on 08/08/2016 18:45:17
Showing 3 changed files
... ...
@@ -117,6 +117,19 @@
117 117
             ((:feed) :atom)
118 118
             (t root-node-name)))))
119 119
 
120
+(defgeneric get-random-item (feed)
121
+  (:method ((feed feed))
122
+    (let* ((items (copy-seq (items feed)))
123
+           (num-items (length items)))
124
+      (elt items
125
+           (random num-items)))))
126
+
127
+(defgeneric get-latest-item (feed)
128
+  (:method ((feed feed))
129
+    (let ((items (copy-seq (items feed))))
130
+      (car (sort items
131
+                 #'local-time:timestamp>
132
+                 :key #'date)))))
120 133
 
121 134
 ;(defun generate-xml (feed &key (feed-type :rss))
122 135
 ;  (%generate-xml feed feed-type))
... ...
@@ -5,13 +5,13 @@
5 5
   (:export #:define-data-class))
6 6
 
7 7
 (defpackage #:alimenta2
8
-  (:use #:cl #:alexandria #:serapeam #:fw.lu #:should-test))
8
+  (:use #:cl #:alexandria #:serapeum #:fw.lu #:should-test))
9 9
 
10 10
 (defpackage #:alimenta
11 11
   (:use #:cl #:should-test #:lquery #:plump #:alexandria #:anaphora)
12 12
   (:export #:to-feed #:generate-xml #:feed #:title #:link #:items #:feed-link
13 13
            #:doc #:source-type #:id #:date #:content #:item #:description
14
-           #:%generate-xml #:%to-feed #:%get-items #:make-item #:complex-value
14
+           #:%generate-xml #:%to-feed #:get-items #:make-item #:complex-value
15 15
            #:primary-value))
16 16
 
17 17
 (defpackage #:alimenta.rss
... ...
@@ -97,7 +97,7 @@
97 97
      (combine (text) (attr "domain"))
98 98
      (map-apply #'make-category)))
99 99
 
100
-(defmethod get-items (xml-dom (feed-type (eql :rss)))
100
+(defmethod alimenta::get-items (xml-dom (feed-type (eql :rss)))
101 101
   ($ (inline xml-dom) "channel > item"))
102 102
 
103 103
 (defmethod generate-xml ((item item) (feed-type (eql :rss)) &key partial)