From ba644ed21427afba75a8a578dda3e267c11c81f9 Mon Sep 17 00:00:00 2001 From: tim b Date: Thu, 10 Jun 2010 07:20:27 -0700 Subject: hacky search --- src/site.clj | 22 +++++++++++++ template/search_files.st | 80 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 102 insertions(+) create mode 100644 template/search_files.st diff --git a/src/site.clj b/src/site.clj index 9a5cda3..2e4180c 100644 --- a/src/site.clj +++ b/src/site.clj @@ -795,6 +795,25 @@ FROM users u favs (reduce (fn [m fav] (assoc m (str (fav :message_id)) (fav :content))) {} raw-favs)] (str "RawFavs=" (json-str favs)))) +(defn ghetto-search-query [] + (str "select + content from messages, rooms + where messages.room_id=rooms.room_id + and content ilike ? and content like '%http://%' + and admin_only = 'f' + order by message_id desc + limit 100;")) + +(def *ghetto-search-regex* #"^[A-Za-z0-9\-_]*$") + +(defn json-ghetto-search [searchterm] + ( if (re-matches *ghetto-search-regex* searchterm) + (let [searchterm (str "%" searchterm "%") + query (ghetto-search-query) + rows (do-select [query searchterm])] + (str "searchResult(" (json-str rows) ")")) + (str "searchError('sorry, no fancy characters')"))) + ;; Account resets (defn reset-request-page [session] @@ -1001,6 +1020,9 @@ FROM users u (POST "/cancel-mute" (handle-cancel-mute! session params)) (GET "/profile-test/:t" (profile session "ryder" "0" (params :t))) + (GET "/cmd/ghettosearch/:searchterm" (json-ghetto-search (params :searchterm))) + (GET "/search" (serve-template "search_files" session)) + ;; Footer pages (GET "/about_us" (serve-template "about_us" session)) (GET "/goodies" (serve-template "goodies" session)) diff --git a/template/search_files.st b/template/search_files.st new file mode 100644 index 0000000..ebe4d39 --- /dev/null +++ b/template/search_files.st @@ -0,0 +1,80 @@ + + + dump.fm image search + $head()$ + + + + +
+
+ + + + + + \ No newline at end of file -- cgit v1.2.3-70-g09d2