diff options
| author | tim b <timb@camcompu.home> | 2010-08-13 12:33:53 -0700 |
|---|---|---|
| committer | tim b <timb@camcompu.home> | 2010-08-13 12:33:53 -0700 |
| commit | f031cab0fd7db4ad11ea5b448fa2b4ecdf20ada7 (patch) | |
| tree | 198608ebef32f706495ce599542f1c866d7195d5 | |
| parent | db3d22ba1c1731e873a5a9296aad94071cdd163b (diff) | |
initial fullscreen image thing
| -rw-r--r-- | src/site.clj | 6 | ||||
| -rw-r--r-- | static/js/fullscreen.js | 62 | ||||
| -rw-r--r-- | template/fullscreen.st | 20 |
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 |
