src/posts/post-db.lisp
(in-package :murja.posts.post-db)
(defqueries "post-fns")
(defun get-titles-by-year (&key allow-hidden?)
(mapcar (lambda (title)
(when (gethash "Tags" title)
(setf (gethash "Tags" title)
(parse (gethash "Tags" title))))
title)
(coerce
(get-titles-by-year* allow-hidden?) 'list)))
(defun fix-post (post)
(dolist (key (list "creator" "tags" "versions" "previously"))
(when (gethash key post)
(setf (gethash key post)
(parse (gethash key post)))))
(setf (gethash "previously" post)
(or
(remove-duplicates
(remove-if-not #'hash-table-p (coerce (gethash "previously" post) 'list))
:test 'equalp)
#()))
(setf (gethash "created_at" post)
(fix-timestamp (gethash "created_at" post)))
post)
;; still used in the outbound rss stuff
(defun get-page (page page-size &key allow-hidden? modified-since)
(let* ((page (if (< page 1)
1
page))
(resulting-page (coerce
(get-page* (* (1- page) page-size)
page-size allow-hidden? (if modified-since
modified-since
:null)) 'list)))
(mapcar #'fix-post
resulting-page)))