messages: Speed up recent-bugs by using mumimu.
[software/mumi.git] / mumi / messages.scm
index af76ef5772f20e81f023773aad2eb1ab887f28a3..cce28140967ef69fc83d5610168ec1a6a61df02c 100644 (file)
@@ -31,6 +31,7 @@
   #:use-module (debbugs bug)
   #:use-module (email email)
   #:use-module (mumi config)
+  #:use-module (mumimu)
   #:export (search-bugs
             fetch-bug
             recent-bugs
@@ -217,30 +218,10 @@ result for a while."
 
 (define (recent-bugs amount)
   "Return up to AMOUNT bugs with most recent activity."
-  ;; "search-est" does not return unique items, so we have to take
-  ;; more and then filter the results.  To allow for caching we round
-  ;; off the current time to the start of the hour.
-  (let* ((matches-activity
-          (soap-invoke* (%config 'debbugs)
-                        search-est
-                        ""
-                        #:max 50
-                        #:attributes
-                        `((package string-prefix "guix")
-                          (@cdate >= ,(time-second (ago 'months 1))))))
-         (matches-new
-          (soap-invoke* (%config 'debbugs)
-                        search-est
-                        ""
-                        #:max 50
-                        #:attributes
-                        `((package string-prefix "guix")
-                          (date >= ,(time-second (ago 'months 1))))))
-         (unique (delete-duplicates
-                  (filter-map (lambda (item)
-                                (assoc-ref item "id"))
-                              (append matches-new matches-activity))))
-         (ids (take unique (min amount (length unique)))))
+  (let* ((recent-ids
+          (delete-duplicates
+           (map mu:bugid (mu:message-list (string-append "date:1m..")))))
+         (ids (take recent-ids (min amount (length recent-ids)))))
     (status-with-cache ids)))
 
 (define (easy-bugs)