summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortim b <timb@camcompu.home>2010-08-13 12:33:53 -0700
committertim b <timb@camcompu.home>2010-08-13 12:33:53 -0700
commitf031cab0fd7db4ad11ea5b448fa2b4ecdf20ada7 (patch)
tree198608ebef32f706495ce599542f1c866d7195d5
parentdb3d22ba1c1731e873a5a9296aad94071cdd163b (diff)
initial fullscreen image thing
-rw-r--r--src/site.clj6
-rw-r--r--static/js/fullscreen.js62
-rw-r--r--template/fullscreen.st20
3 files changed, 86 insertions, 2 deletions
diff --git a/src/site.clj b/src/site.clj
index 4cde45d..b3aae51 100644
--- a/src/site.clj
+++ b/src/site.clj
@@ -1106,8 +1106,10 @@ order by count desc limit ? offset ?")
(do-upload-avatar session image)))))
(defn serve-meme [session meme]
- (if-let [st (fetch-template meme session)]
- (.toString st)
+ (if-let [st (fetch-template meme session)]
+ (let [now (System/currentTimeMillis)]
+ (.setAttribute st "timestamp" now)
+ (.toString st))
(unknown-page)))
(defn hall-of-fame [session]
diff --git a/static/js/fullscreen.js b/static/js/fullscreen.js
new file mode 100644
index 0000000..78ef904
--- /dev/null
+++ b/static/js/fullscreen.js
@@ -0,0 +1,62 @@
+function initFullscreen(){
+ Room = "dumpfm";
+ refresh()
+ ImageCache = []
+ SeenImages = {}
+}
+
+function scanMessagesForImages(messages){
+ for(var m=0; m<messages.length; m++) {
+ var images = getImagesAsArray(messages[m].content)
+ for (var i = 0; i<images.length; i++){
+ NextImage = new Image()
+ NextImage.onload = displayImage
+ NextImage.src = images[i]
+ }
+ }
+}
+
+function displayImage(){
+ $("#big-image").attr("src", this.src)
+}
+
+function refresh() {
+ var onSuccess = function(json) {
+ try {
+ if (json.messages && json.messages.length)
+ scanMessagesForImages(json.messages)
+
+ Timestamp = json.timestamp;
+
+/*
+ var messages = $.grep(
+ json.messages,
+ function(m) { return !isDuplicateMessage(m) });
+ updateUI(messages, json.users, json.favs);
+ if (typeof UnseenMsgCounter !== 'undefined' && !HasFocus) {
+ UnseenMsgCounter += messages.length;
+ }
+*/
+ } catch(e) {
+// if (window.console) {
+// console.error(e);
+// }
+ }
+ setTimeout(refresh, 1000);
+ };
+
+ var onError = function(resp, textStatus, errorThrown) {
+ setTimeout(refresh, 1000);
+ };
+
+ $.ajax({
+ type: 'GET',
+ timeout: 5000,
+ url: '/refresh',
+ data: { 'room': Room, 'since': Timestamp },
+ cache: false,
+ dataType: 'json',
+ success: onSuccess,
+ error: onError
+ });
+} \ No newline at end of file
diff --git a/template/fullscreen.st b/template/fullscreen.st
new file mode 100644
index 0000000..ccda851
--- /dev/null
+++ b/template/fullscreen.st
@@ -0,0 +1,20 @@
+<html>
+<head>
+<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
+<script src="$domain$/static/js/pichat.js"></script>
+<script src="$domain$/static/js/fullscreen.js"></script>
+<style>
+html, body, div, img { margin: 0; padding: 0; border: 0; overflow: hidden; }
+#controls { display: none; }
+#big-image { width: 100%; height: 100%; }
+</style>
+</head>
+<body>
+<img id="big-image"></img>
+<div id="controls"></div>
+<script>
+Timestamp = $timestamp$;
+initFullscreen()
+</script>
+</body>
+</html> \ No newline at end of file