src/posts/post-db.lisp

DOWNLOAD
(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)))