(in-package #:lolicore) (defmacro str (&rest strs) "Concatenate a list of strings `strs' to one string." `(concatenate 'string ,@strs)) (defun add-data (keyword key json) (cons keyword (jsown:val json key))) (defmacro add-booru (&rest args) `(push (make-instance 'booru ,@args) *boorus*)) (defun list-boorus () "List all of the exported boorus" (loop for booru in *boorus* collect (name booru))) (defun get-booru (name) "Get a specific `booru' from `*boorus*' by name" (loop for booru in *boorus* do (when (eql name (:name booru)) (return booru)) finally (error "No such booru")))