summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Ostler <scottbot9000@gmail.com>2010-06-11 15:07:55 -0400
committerScott Ostler <scottbot9000@gmail.com>2010-06-11 15:07:55 -0400
commit28edab64f0553e9218cd211d797160da12db2abf (patch)
treed6b99f7ba8ac1977c45ce0e419847a035710ee4a
parent378ba01ba8a4b67fb5d01dd5adc57fb72e3c86a5 (diff)
parenta5076000b758641d459a301b3d0155fdf4c3a76c (diff)
Merge branch 'master' of ssh://dump.fm/pichat/repo
-rw-r--r--src/site.clj20
-rw-r--r--static/form_login/front.css2
-rw-r--r--static/registerr.html112
-rw-r--r--template/banner.st3
-rw-r--r--template/form_login.st2
-rw-r--r--template/profile.st2
-rw-r--r--template/search_files.st29
-rw-r--r--template/tagged_dumps.st1
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">&#9827; 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$&#9829; Profile</a>
<a href="http://dump.fm/directory"><img src="/static/img/directory.gif"width="20px" height="20px" />&#9824; Directory</a>
+ <a href="http://dump.fm/$user_nick$/favorites">&#10084; Favs</a>
<a href="http://dump.fm/browser"><img src="/static/img/image_draw.gif"/>&#9830; 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>