summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordumpfmprod <dumpfmprod@ubuntu.(none)>2010-10-03 07:16:04 -0400
committerdumpfmprod <dumpfmprod@ubuntu.(none)>2010-10-03 07:16:04 -0400
commit3cf4af29bc9744f34aed362113dd6f158ec19144 (patch)
treecc9fedcb41225c85b28978cdf27ccd4d502e950d /src
parent4cf2cb77fcbc00bb1100e9d0a25cb52c62ed56b8 (diff)
timb: added redis jar
Diffstat (limited to 'src')
-rw-r--r--src/site.clj3
-rw-r--r--src/tags.clj20
2 files changed, 22 insertions, 1 deletions
diff --git a/src/site.clj b/src/site.clj
index f28aae0..c25a18d 100644
--- a/src/site.clj
+++ b/src/site.clj
@@ -28,7 +28,8 @@
rooms
tags
scheduled-agent
- user))
+ user)
+ (:require redis))
; Create image directories if they don't exist.
(.mkdir (new File *image-directory*))
diff --git a/src/tags.clj b/src/tags.clj
index 299328d..01414e9 100644
--- a/src/tags.clj
+++ b/src/tags.clj
@@ -247,6 +247,21 @@ WHERE EXISTS
AND m.user_id = u.user_id
AND r.room_id = m.room_id"))
+(defnk fetch-dumps-by-message-id-query [:with-tags true :num-messages 1] (str
+" SELECT
+ m.content, m.message_id, m.created_on,
+ u.nick, u.avatar, r.key"
+ (if with-tags ",
+ array_to_string(ARRAY(SELECT nick || ' ' || tag
+ FROM tags, users
+ WHERE message_id = m.message_id AND tags.user_id = users.user_id), ' ') as tags " "")
+" FROM messages m, users u, rooms r
+ WHERE
+ m.message_id IN (" (str-join ", " (take num-messages (repeat "?"))) ") "
+ " AND m.user_id = u.user_id
+ AND r.room_id = m.room_id
+ ORDER BY m.message_id DESC"))
+
(defnk fetch-dumps-by-tag-query [:image-only true :message-user-id false :tag-user-id false :with-tags true :include-vip false] (str
" SELECT
@@ -331,6 +346,11 @@ WHERE EXISTS
(let [rows (do-select [query (maybe-parse-int m-id -1)])]
(first (map parse-tags-from-row-as-tag-map rows)))))
+(defn fetch-dumps-by-ids [ids]
+ (let [query (fetch-dumps-by-message-id-query :num-messages (count ids))
+ rows (do-select (vec (concat [query] ids)))]
+ (map parse-tags-from-row-as-tag-map rows)))
+
(defnk fetch-altars [:message-id 0 :user-id false :amount *dumps-per-page* :offset 0]
(let [message-id (maybe-parse-int message-id 0)
abs-m-id (if (neg? message-id) (- message-id) message-id)