summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/email.clj4
-rw-r--r--src/site.clj51
-rw-r--r--template/profile.st7
3 files changed, 56 insertions, 6 deletions
diff --git a/src/email.clj b/src/email.clj
index e2a5f1f..2997827 100644
--- a/src/email.clj
+++ b/src/email.clj
@@ -59,8 +59,8 @@
(base-mail :user "info@dump.fm"
:password "UHR4Moghu5a2"
:host "smtpout.secureserver.net"
- :port 25
- :ssl false
+ :port 465
+ :ssl true
:to [(join to ",")]
:subject subject
:text text
diff --git a/src/site.clj b/src/site.clj
index 45057b7..11b6859 100644
--- a/src/site.clj
+++ b/src/site.clj
@@ -154,7 +154,6 @@
(assoc m "topic" topic)
m)))
-
(defn count-messages-by-room [room-id image-only]
(let [query (str "SELECT COUNT(*)
FROM messages m, users u
@@ -334,7 +333,7 @@
(set-cookie *login-token-key* "dummy"
:expires "Thu, 01-Jan-1970 00:00:01 GMT"
:domain ".dump.fm")
- (redirect-to "/")])
+ (redirect-to "http://dump.fm/")])
;; Registration
@@ -370,6 +369,48 @@
[(session-assoc-from-db db-user)
(resp-success "OK")])))))
+;; Fav scores
+
+(def *score-query* "
+SELECT u.nick,
+ COUNT(*) AS cnt
+FROM tags t,
+ messages m,
+ users u
+WHERE t.message_id = m.message_id
+ AND m.user_id != t.user_id
+ AND m.user_id = u.user_id
+GROUP BY u.nick
+ORDER BY cnt DESC;
+")
+
+(def *scores-resfresh-period-sec* (* 30 60))
+
+(defn compute-scores []
+ (let [res (do-select [*score-query*])]
+ (zipmap (map :nick res)
+ (map :cnt res))))
+
+(def *user-scores*
+ (scheduled-agent (no-args-adaptor compute-scores)
+ *scores-resfresh-period-sec*
+ {}))
+
+(def *piece-map*
+ (zipmap
+ [:pawn :knight :bishop :rook :queen :king]
+ ["♟" "♞" "♝" "♜" "♛" "♚"]))
+
+(defn score-to-piece [score]
+ (cond (= score 0) :pawn
+ (< score 50) :knight
+ (< score 150) :bishop
+ (< score 300) :rook
+ (< score 1000) :queen
+ :else :king))
+
+(def score-to-entity (comp *piece-map* score-to-piece))
+
;; Profile
(def *zoeee-query* "
@@ -403,7 +444,7 @@ ORDER BY created_on DESC;
(if (non-empty-string? v) (escape-html v)))))
(.setAttribute st "dumps" dumps)
(.toString st)))
-
+
(defn profile [session profile-nick offset]
(if-let [user-info (fetch-nick profile-nick)]
(let [st (fetch-template "profile" session)
@@ -413,6 +454,7 @@ ORDER BY created_on DESC;
is-home (and nick (= nick profile-nick))
has-avatar (non-empty-string? (user-info :avatar))
offset (maybe-parse-int offset 0)
+ score (or ((poll *user-scores*) profile-nick) 0)
dump-offset (* offset *dumps-per-page*)
raw-dumps (logger tags/fetch-dumps-by-nick
:nick profile-nick
@@ -431,6 +473,7 @@ ORDER BY created_on DESC;
(.setAttribute st "dumps" dumps))
(if (> (count raw-dumps) *dumps-per-page*)
(.setAttribute st "next" (inc offset)))
+ (.setAttribute st "score_ent" (score-to-entity score))
(if (not= offset 0)
(.setAttribute st "prev" (max (dec offset) 0)))
(.setAttribute st "debug_log_items" (logger))
@@ -898,7 +941,7 @@ ORDER BY msg_count DESC")
(let [info (fetch-nick nick)]
(update-nick-hash nick hash)
[(session-assoc-from-db info)
- (redirect-to "/")])
+ (redirect-to "http://dump.fm/")])
[200 "BAD_REQUEST"])))
;; Upload
diff --git a/template/profile.st b/template/profile.st
index 0fe12c9..482665b 100644
--- a/template/profile.st
+++ b/template/profile.st
@@ -66,6 +66,13 @@
<div><img id="bio" src="/static/img/noinfo.png"></div>
$endif$
+ $if(score_ent)$
+ <div id="score" style="font-size: 500%">
+ <h3>score</h3>
+ $score_ent$
+ </div>
+ $endif$
+
$if(is_home)$
<br>
<div id="edit-toggle"><a href="#">edit profile</a></div>