[bknr-cvs] hans changed trunk/projects/quickhoney/src/
BKNR Commits
bknr at bknr.net
Thu Sep 18 10:11:51 UTC 2008
Revision: 3917
Author: hans
URL: http://bknr.net/trac/changeset/3917
Redirect visitors coming to an image from ffffound to the image
HTML page.
U trunk/projects/quickhoney/src/handlers.lisp
U trunk/projects/quickhoney/src/webserver.lisp
Modified: trunk/projects/quickhoney/src/handlers.lisp
===================================================================
--- trunk/projects/quickhoney/src/handlers.lisp 2008-09-18 06:12:23 UTC (rev 3916)
+++ trunk/projects/quickhoney/src/handlers.lisp 2008-09-18 10:11:50 UTC (rev 3917)
@@ -5,7 +5,7 @@
(defparameter *editable-keywords* '(:explicit :buy-file :buy-print :buy-t-shirt)
"List of keywords that are image keywords which can be edited through the CMS")
-(defclass quickhoney-image-handler (page-handler)
+(defclass quickhoney-image-dependent-handler (page-handler)
()
(:documentation "Mixin for handlers whose response only depend on
quickhoney images. The HANDLE :AROUND method of this handler
@@ -16,13 +16,25 @@
single-object handlers. Deletion is not properly handled
presently."))
-(defmethod handle :around ((handler quickhoney-image-handler))
+(defmethod handle :around ((handler quickhoney-image-dependent-handler))
(let ((time (last-image-upload-timestamp)))
(handle-if-modified-since time)
(setf (header-out :last-modified) (rfc-1123-date time)
(header-out :cache-control) "max-age=15"))
(call-next-method))
+(defclass quickhoney-image-handler (image-handler)
+ ()
+ (:documentation "Application dependent image handler with specific
+ referer based actions."))
+
+(defmethod handle-object :before ((handler quickhoney-image-handler) (image quickhoney-image))
+ (when (cl-ppcre:scan "^http://ffffound.com/image/" (hunchentoot:header-in* :referer))
+ (redirect (format nil "/~(~A/~A~)/~A"
+ (quickhoney-image-category image)
+ (quickhoney-image-subcategory image)
+ (store-image-name image)))))
+
(defclass random-image-handler (object-handler)
())
@@ -41,7 +53,7 @@
(blob-to-stream (quickhoney-animation-image-animation animation)
(send-headers)))))
-(defclass json-image-info-handler (object-handler quickhoney-image-handler)
+(defclass json-image-info-handler (object-handler quickhoney-image-dependent-handler)
()
(:default-initargs :query-function #'store-image-with-name))
@@ -74,7 +86,7 @@
(with-object-element ("image")
(image-to-json image))))
-(defclass json-image-query-handler (object-handler quickhoney-image-handler)
+(defclass json-image-query-handler (object-handler quickhoney-image-dependent-handler)
())
(defun images-in-category-sorted-by-time (cat-sub)
@@ -216,7 +228,7 @@
(blob-to-stream image s)))))
t t))))
-(defclass json-buttons-handler (prefix-handler quickhoney-image-handler)
+(defclass json-buttons-handler (prefix-handler quickhoney-image-dependent-handler)
())
(defun preproduced-buttons (category subcategory)
Modified: trunk/projects/quickhoney/src/webserver.lisp
===================================================================
--- trunk/projects/quickhoney/src/webserver.lisp 2008-09-18 06:12:23 UTC (rev 3916)
+++ trunk/projects/quickhoney/src/webserver.lisp 2008-09-18 10:11:50 UTC (rev 3917)
@@ -38,6 +38,7 @@
("/json-news-archive" json-news-archive-handler)
("/json-news" json-news-handler)
("/shutdown" shutdown-handler)
+ ("/image" quickhoney-image-handler)
user
images
("/static" directory-handler
More information about the Bknr-cvs
mailing list