diff options
| -rw-r--r-- | src/site.clj | 20 | ||||
| -rw-r--r-- | static/form_login/front.css | 2 | ||||
| -rw-r--r-- | static/registerr.html | 112 | ||||
| -rw-r--r-- | template/banner.st | 3 | ||||
| -rw-r--r-- | template/form_login.st | 2 | ||||
| -rw-r--r-- | template/profile.st | 2 | ||||
| -rw-r--r-- | template/search_files.st | 29 | ||||
| -rw-r--r-- | template/tagged_dumps.st | 1 |
8 files changed, 150 insertions, 21 deletions
diff --git a/src/site.clj b/src/site.clj index a476638..55bc0f0 100644 --- a/src/site.clj +++ b/src/site.clj @@ -793,22 +793,24 @@ 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 [] +(defn ghetto-search-query [num-tokens] (str "select content from messages, rooms where messages.room_id=rooms.room_id - and content ilike ? and content like '%http://%' + and content ilike " (str-join " and content ilike " (take num-tokens (repeat "?"))) " + and content like '%http://%' and admin_only = 'f' order by message_id desc limit 250;")) -(def *ghetto-search-regex* #"^[A-Za-z0-9\-_]*$") +(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])] +(defn json-ghetto-search [undecoded-url-searchterms] + ( if (re-matches *ghetto-search-regex* undecoded-url-searchterms) + (let [tokens (map url-decode (re-split #"\+" undecoded-url-searchterms)) + tokens (map #(str "%" %1 "%") tokens) + query (ghetto-search-query (count tokens)) + rows (do-select (vec (concat [query] tokens)))] (str "searchResult(" (json-str rows) ")")) (str "searchError('sorry, no fancy characters')"))) @@ -1019,7 +1021,7 @@ 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 "/cmd/ghettosearch/:searchterm" (json-ghetto-search (undecoded-url-piece (request-url request) 2))) (GET "/search" (serve-template "search_files" session)) ;; Footer pages diff --git a/static/form_login/front.css b/static/form_login/front.css index 05d23ac..444c54b 100644 --- a/static/form_login/front.css +++ b/static/form_login/front.css @@ -118,7 +118,7 @@ filter: progid:DXImageTransform.Microsoft.dropShadow(color=#ccc, offX=3, offY=4, #signin_menu p a { color:#27B!important; } -#signin-submitform { +#signin-submit { display:inline-block; width:90px; height:35px; diff --git a/static/registerr.html b/static/registerr.html new file mode 100644 index 0000000..3111cf7 --- /dev/null +++ b/static/registerr.html @@ -0,0 +1,112 @@ +<html> +<head> + <title>dump.fm</title> + <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> + <META NAME="keywords" CONTENT="dump.fm, image chat, realtime, internet 3.0, dump, dump fm, image dump, pictures, image links, image board"> + <META NAME="description" CONTENT="Talk with pictures!"> + <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script> + <script type="text/javascript" src="/static/js/sha1.js"></script> + <script type="text/javascript" src="/static/js/home.js"></script> + <link rel="stylesheet" href="/static/css/top.css" type="text/css" media="screen" /> + <link rel="shortcut icon" href="/static/favicon.ico"> + <script src="/static/js/loopedslider.js" type="text/javascript" charset="utf-8"></script> + <script> + $(document).ready(initLoginForm); + </script> +<script type="text/javascript"> +jQuery(window).load(function() { + jQuery('#slider').nivoSlider({ + effect:'random', + slices:15, + animSpeed:500, + pauseTime:5000, + startSlide:0, //Set starting Slide (0 index) + directionNav:false, //Next & Prev + directionNavHide:false, //Only show on hover + controlNav:false, //1,2,3... + controlNavThumbs:false, //Use thumbnails for Control Nav + controlNavThumbsSearch: '.jpg', //Replace this with... + controlNavThumbsReplace: '_thumb.jpg', //...this in thumb Image src + keyboardNav:false, //Use left & right arrows + pauseOnHover:false, //Stop animation while hovering + manualAdvance:false, //Force manual transitions + captionOpacity:0.8, //Universal caption opacity + beforeChange: function(){}, + afterChange: function(){}, + slideshowEnd: function(){} //Triggers after all slides have been shown + }); +}); +</script> +</head> +<body> + +<div id="rapper"> +<div id="toplogo"> +<img style="visibility:hidden;width:0px;height:0px;"/><style type='text/css'> + +</style> +<a class="img_roll" href="/register"></a> +<div id="lilflag"> +HOME OF THE SLOTHGOTH!!!!! +</div> +</div> + +<div id="bottomcontainer"> +<div id="wtf"> +<a href="/register"><div id="wtftxt"> +Click here to Register! +</div> +<a href="/chat"><div id="previewdump"> +preview dump.fm! +</div> +</a> +<div id="loopedSlider"> + <div class="container"> + dlkhjdfsgkhjgdhjklgsdfdgfjlhkdfg + </div> + +</div> + + +</div> + +<div id="signin"> +<div id="membertxt">Already a member?</div><br><br> + <input type="text" id="nickInput" size="17" /><br> + <input id="passwordInputLabel" name="passwordInputLabel" size="17" type="text" class="invisible"> + <input type="password" id="passwordInput" size="17" /><br /> + + <input id="signin-submit" value="Sign In!" /> + <div id="remember"><label> + <input checked="checked" type="checkbox" name="rememberme" id="remembermeInput" /> + Remember Me + </label> + <br> + <a href="/reset-request">Lost password?</a><br> +</div> +</div> +</div> + <div id="footer"> +@2010 <a href="/">dump.fm</a> +<a href="/about_us"><span style="word-spacing:normal;">About Us</span></a> +<a href="/terms">Terms</a> +<a href="/privacy">Privacy</a></div> +</div> + + + <div id="preload"> + <img src="/static/img/cursors/osx.hand.gif" class="no-cursor invisible" id="cursor-big"> + </div> + + <script type="text/javascript"> + var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); + document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); + </script> + <script type="text/javascript"> + try { + var pageTracker = _gat._getTracker("UA-12364576-1"); + pageTracker._trackPageview(); + } catch(err) {} + </script> +</body> +</html> diff --git a/template/banner.st b/template/banner.st index 3339fc2..ea7c826 100644 --- a/template/banner.st +++ b/template/banner.st @@ -33,6 +33,7 @@ a.img_roll:hover{ <a href="http://dump.fm/log" ><img src="/static/img/log.gif"width="20px" height="20px">♣ Log</a> <a href="http://dump.fm/$user_nick$">$if(user_avatar)$<img src="$user_avatar$" width="19px" height="19px" />$else$<img src="/static/img/profile.gif"width="22px" height="22px" />$endif$♥ Profile</a> <a href="http://dump.fm/directory"><img src="/static/img/directory.gif"width="20px" height="20px" />♠ Directory</a> + <a href="http://dump.fm/$user_nick$/favorites">❤ Favs</a> <a href="http://dump.fm/browser"><img src="/static/img/image_draw.gif"/>♦ Image Search</a> $else$ @@ -50,7 +51,7 @@ a.img_roll:hover{ <div id="topic"></div> - <div id="dumplist"> dump.fm - let pictures do the talking $if(user_nick)$- <a href="http://dump.fm/$user_nick$/favorites">my favorite pics</a> -<a href="http://bieber.dump.fm"> - justin bieber </a>$endif$ $if(isadmin)$ + <div id="dumplist"> dump.fm - let pictures do the talking $if(user_nick)$<a href="http://bieber.dump.fm"> - justin bieber </a>$endif$ $if(isadmin)$ <a href="http://news.dump.fm">- news</a> - <a href="http://gossip.dump.fm">gossip</a> - <a href="http://art.dump.fm">art</a> - <a href="http://gif.dump.fm">gif</a> - <a href="http://design.dump.fm">design</a> - <a href="http://fashion.dump.fm">fashion</a> diff --git a/template/form_login.st b/template/form_login.st index 33d240d..4d78b20 100644 --- a/template/form_login.st +++ b/template/form_login.st @@ -19,7 +19,7 @@ <p class="remember"><br> -<input id="signin-submitform" value="Sign in" tabindex="6" type="submit"> +<input id="signin-submit" value="Sign in" tabindex="6" type="submit"> <br><br> <label> <input type="checkbox" name="rememberme" id="remembermeInput" checked="checked"/> diff --git a/template/profile.st b/template/profile.st index 97394aa..33d9b40 100644 --- a/template/profile.st +++ b/template/profile.st @@ -73,7 +73,7 @@ <br> - <a href="http://dump.fm/u/$nick$/favorites"><h7>$nick$'s <br>Favorite Pix</h7></a> + <a href="http://dump.fm/$nick$/favorites"><h7>$nick$'s <br>Favorite Pix</h7></a> <div id="date"> <div type="text" id="datepicker"></div></div> diff --git a/template/search_files.st b/template/search_files.st index f726364..d3deea5 100644 --- a/template/search_files.st +++ b/template/search_files.st @@ -9,7 +9,7 @@ </head> <body> - <center>search dumps: <input type="text" name="search-query" id="search-query" /></center> + <center>search dumps: <input type="text" name="search-query" id="search-query" /></center><br><br> <center><div id="message"></div><br><br></center> <div id="content"></div> @@ -72,8 +72,15 @@ var imageUrl = imageUrls[i]; if (imageUrl in alreadyGot) continue; alreadyGot[imageUrl] = true - if (imageUrl.indexOf(term) > -1) - images.push(imageUrl) + var validImage = true; + for(var t = 0; t<tokens.length; t++){ + if (imageUrl.toLowerCase().indexOf(tokens[t]) == -1) { + validImage = false; + break; + } + } + if (validImage) + images.push(imageUrl); } } if (images.length == 0) { @@ -83,13 +90,21 @@ } } + var tokens = [] + function doSearch(){ - term = jQuery("#search-query").val().trim() - if (term.length < 3) { + term = jQuery("#search-query").val().trim().toLowerCase() + var rawTokens = term.split(" ") + tokens = [] + for(var t = 0; t < rawTokens.length; t++) { + if (rawTokens[t].length > 2) + tokens.push(rawTokens[t]) + } + if (tokens.length == 0) { setMessage("search query too small") } else { - setMessage("searching for '"+term+"'") - addScript(term) + setMessage("searching for '"+tokens.join(" and ")+"'") + addScript(tokens.join("+")) } } diff --git a/template/tagged_dumps.st b/template/tagged_dumps.st index 4bc271d..f1fd4ad 100644 --- a/template/tagged_dumps.st +++ b/template/tagged_dumps.st @@ -21,7 +21,6 @@ <img style="padding-top: 5px;" height="50" width="50" src="$avatar$"></img> </div> </div> - <hr> $endif$ <h8>$page_title$<br></h8><br> </div> |
