tweetcast/nodejs/client/js/script.js
author Raphael Velt <raph.velt@gmail.com>
Fri, 14 Oct 2011 17:35:49 +0200
changeset 314 0f1e6ce19b6d
child 325 7d9c576bfaac
permissions -rw-r--r--
Ajout d une branche NodeJS
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
314
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
     1
var socket,
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
     2
    tweets = [],
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
     3
    waitoldtweets = true,
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
     4
    tl,
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
     5
    tc;
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
     6
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
     7
function tweetToHtml(tweet) {
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
     8
	html = '<li class="tweet';
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
     9
	for (var i in tweet.annotations) {
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    10
		html += ' a_' + tweet.annotations[i]
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    11
	}
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    12
	html += '" id="tweet_' + tweet.id + '">';
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    13
	a_user = '<a href="http://twitter.com/' + tweet.user.screen_name + '" target="_blank" title="' + tweet.user.name + '">';
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    14
	if (tweet.user.profile_image_url) {
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    15
		html += a_user + '<img class="tweet_profile_image" src="' + tweet.user.profile_image_url + '" /></a>';
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    16
	}
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    17
	html += '<h4>' + a_user + '@' + tweet.user.screen_name + '</a></h4><p class="tweet_created_at">' + tweet.created_at + '</p><p>';
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    18
	lastend = 0;
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    19
	txt = '';
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    20
	entities = [];
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    21
	for (var i in tweet.entities.hashtag) {
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    22
	    entities.push({
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    23
	        "start" : tweet.entities.hashtag[i].indices[0],
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    24
	        "end" : tweet.entities.hashtag[i].indices[1],
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    25
	        "html" : '<a href="http://twitter.com/search?q=%23' + tweet.entities.hashtag[i].text + '" target="_blank">#' + tweet.entities.hashtag[i].text + '</a>'
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    26
	    });
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    27
	}
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    28
	for (var i in tweet.entities.urls) {
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    29
	    entities.push({
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    30
	        "start" : tweet.entities.urls[i].indices[0],
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    31
	        "end" : tweet.entities.urls[i].indices[1],
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    32
	        "html" : '<a href="' + tweet.entities.urls[i].expanded_url + '" target="_blank">' + tweet.entities.urls[i].display_url + '</a>'
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    33
	    });
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    34
	}
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    35
	for (var i in tweet.entities.user_mentions) {
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    36
	    entities.push({
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    37
	        "start" : tweet.entities.user_mentions[i].indices[0],
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    38
	        "end" : tweet.entities.user_mentions[i].indices[1],
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    39
	        "html" : '<a href="http://twitter.com/' + tweet.entities.user_mentions[i].screen_name + '" target="_blank" title="' + tweet.entities.user_mentions[i].name + '">@' + tweet.entities.user_mentions[i].screen_name + '</a>'
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    40
	    });
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    41
	}
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    42
 	entities.sort(function(a, b) { return a.start - b.start });
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    43
    for (var i in entities) {
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    44
 		txt += tweet.text.substring(lastend, entities[i].start) + entities[i].html;
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    45
        lastend = entities[i].end;
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    46
    }
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    47
	txt += tweet.text.substring(lastend);
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    48
	html += txt + '</p></li>';
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    49
	return html;
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    50
}
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    51
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    52
function discardTweets() {
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    53
    if (tweets.length) {
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    54
        while (tl.height() - (tc.scrollTop() + tc.height()) > 1000) {
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    55
 	        tl.children().last().detach();
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    56
            tweets.pop();
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    57
        }
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    58
    }
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    59
}
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    60
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    61
// function scheduleTweets() {
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    62
// 	var tl = $("#tweetlist"), tc = $("#tweetcontainer");
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    63
// 	if (tweets.length != tl.children().length) {
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    64
// 		console.log("Tweet count error");
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    65
// 	}
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    66
// 	if (tweets.length) {
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    67
// 		while (tl.height() - (tc.scrollTop() + tc.height()) > 1000) {
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    68
// 			tl.children().last().detach();
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    69
// 			tweets.pop();
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    70
// 		}
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    71
// 		if (tl.height() - (tc.scrollTop() + tc.height()) < 120) {
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    72
// 			getTweets({
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    73
// 				before_id : tweets[tweets.length - 1].id,
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    74
// 				limit : 5
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    75
// 			});
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    76
// 		}
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    77
// 		getTweets({
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    78
// 			after_id : tweets[0].id
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    79
// 		});
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    80
// 	} else {
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    81
// 		getTweets({
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    82
// 			limit: 15
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    83
// 		});
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    84
// 	}
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    85
// }
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    86
// 
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    87
// function getTweets(params) {
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    88
// 	$.getJSON("http://" + document.location.hostname + ":8888/?callback=?", params, function(data, a, b) {
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    89
// 		if (data.tweets && data.tweets.length) {
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    90
// 			var tl = $("#tweetlist"), tc = $("#tweetcontainer");
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    91
// 			html = '';
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    92
// 			for (var i in data.tweets) {
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    93
// 				html += tweetToHtml(data.tweets[i]);
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    94
// 			}
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    95
// 			if (params.before_id) {
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    96
// 				tl.append(html);
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    97
// 				tweets = tweets.concat(data.tweets);
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    98
// 			} else {
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    99
// 				var pos = tc.scrollTop(), fixScroll = (pos > 80);
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   100
// 				pos -= tl.height();
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   101
// 				tl.prepend(html);
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   102
// 				tweets = data.tweets.concat(tweets);
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   103
// 				if (fixScroll) {
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   104
// 					tc.scrollTop(tl.height() + pos);
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   105
// 				}
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   106
// 			}
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   107
// 		}
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   108
// 	});
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   109
// }
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   110
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   111
$(document).ready(function() {
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   112
    tl = $("#tweetlist");
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   113
    tc = $("#tweetcontainer");
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   114
    socket = io.connect('http://' + S_IO_HOST + ':' + S_IO_PORT );
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   115
    socket.on('tweets', function (data) {
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   116
        tweets = data;
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   117
        data.reverse();
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   118
        html = '';
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   119
        for (var i in data) {
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   120
            html += tweetToHtml(data[i]);
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   121
        }
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   122
        $("#tweetlist").html(html);
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   123
        discardTweets();
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   124
    });
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   125
    socket.on('oldtweets', function (data) {
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   126
        tweets = tweets.concat(data);
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   127
        html = '';
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   128
        for (var i = data.length - 1; i >= 0; i--) {
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   129
            html += tweetToHtml(data[i]);
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   130
        }
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   131
        $("#tweetlist").append(html);
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   132
        discardTweets();
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   133
        waitoldtweets = true;
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   134
    });
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   135
    socket.on('newtweet', function (data) {
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   136
        tweets.splice(0,0,data);
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   137
        html = tweetToHtml(data);
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   138
        var scrollpos = tc.scrollTop(),
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   139
            fixScroll = (scrollpos > 80);
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   140
        scrollpos -= tl.height();
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   141
        $("#tweetlist").prepend(html);
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   142
        if (fixScroll) {
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   143
    		tc.scrollTop(tl.height() + scrollpos);
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   144
		}
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   145
        discardTweets();
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   146
    });
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   147
    $("#tweetcontainer").scroll(function() {
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   148
        if ( waitoldtweets && tl.height() - (tc.scrollTop() + tc.height()) < 120 ) {
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   149
            socket.emit('tweetsbefore', tweets[tweets.length-1].id );
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   150
            waitoldtweets = false;
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   151
        }
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   152
    });
0f1e6ce19b6d Ajout d une branche NodeJS
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
   153
});