client/js/main.js
author Romain <romain.vuillemot@gmail.com>
Tue, 21 Feb 2012 13:24:55 +0100
changeset 19 f3299dfd0eac
parent 14 1cc92b8c3a38
child 23 d473ebde73a3
permissions -rw-r--r--
ajout de la purge
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
10
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
     1
var myPodium,
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
     2
    myTweetSource,
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
     3
    myQueueManager;
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
     4
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
     5
function updateLastTweetList() {
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
     6
    var _filtered = myTweetSource.afterDate(startHour),
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
     7
        _txtFilter = $("#btv-cp-champ-filtre").val(),
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
     8
        _reFilter = null;
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
     9
    if (_txtFilter.length > 1) {
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    10
        _filtered = _filtered.search(_txtFilter);
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    11
        _reFilter = regexpFromText(_txtFilter);
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    12
    }
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    13
    $('#btv-cp-liste-tweets-tout').html(
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    14
        _filtered.reverse().slice(0,20).map(function(_t) {
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    15
            return '<li onclick="addTweetToSelection(\''
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    16
                + _t.id_str
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    17
                + '\'); return false;"><a title="Ajouter à la sélection" href="#"><span class="btv-cp-tweet-date">'
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    18
                + _t.created_at.match(/\d+:\d+:\d+/)[0]
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    19
                + '</span> <span class="btv-cp-tweet-from">'
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    20
                + ( _reFilter ? ('@' + _t.from_user).replace(_reFilter, '<span class="btv-cp-highlight">$1</span>') : ('@' + _t.from_user) )
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    21
                + '</span> <span class="btv-cp-tweet-text">'
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    22
                + ( _reFilter ? _t.text.replace(_reFilter, '<span class="btv-cp-highlight">$1</span>') : _t.text )
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    23
                + '</span><div class="btv-cp-tweet-button btv-cp-tweet-add"></div></a></li>'
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    24
        }).join('')
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    25
    );
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    26
}
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    27
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    28
function addTweetToSelection(tweetId) {
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    29
    var _t = myTweetSource.tweetById(tweetId);
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    30
    if (_t) {
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    31
        $("#btv-cp-liste-tweets-selection").prepend(
13
e42d9f11f6e2 regexp clean + "countup" + changed podium maxsize
veltr
parents: 10
diff changeset
    32
            '<li><a title="Afficher sur l\'écran" href="#" onclick="showTweetOnScreen(\''
e42d9f11f6e2 regexp clean + "countup" + changed podium maxsize
veltr
parents: 10
diff changeset
    33
            + _t.id_str
e42d9f11f6e2 regexp clean + "countup" + changed podium maxsize
veltr
parents: 10
diff changeset
    34
            + '\'); return false;"><span class="btv-cp-tweet-date">'
e42d9f11f6e2 regexp clean + "countup" + changed podium maxsize
veltr
parents: 10
diff changeset
    35
            + _t.created_at.match(/\d+:\d+:\d+/)[0]
e42d9f11f6e2 regexp clean + "countup" + changed podium maxsize
veltr
parents: 10
diff changeset
    36
            + '</span> <span class="btv-cp-tweet-from">@'
e42d9f11f6e2 regexp clean + "countup" + changed podium maxsize
veltr
parents: 10
diff changeset
    37
            + _t.from_user
e42d9f11f6e2 regexp clean + "countup" + changed podium maxsize
veltr
parents: 10
diff changeset
    38
            + '</span> <span class="btv-cp-tweet-text">'
e42d9f11f6e2 regexp clean + "countup" + changed podium maxsize
veltr
parents: 10
diff changeset
    39
            + _t.text
14
1cc92b8c3a38 changed visual aspect of remove button
veltr
parents: 13
diff changeset
    40
            + '</span><div class="btv-cp-tweet-button btv-cp-tweet-show"></div></a>'
1cc92b8c3a38 changed visual aspect of remove button
veltr
parents: 13
diff changeset
    41
            + '<a title="Supprimer de cette liste" href="#" onclick="$(this).parent().detach(); return false;"><div class="btv-cp-tweet-button btv-cp-tweet-remove"></div></a></li>'
10
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    42
        );
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    43
    }
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    44
}
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    45
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    46
function showTweetOnScreen(tweetId) {
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    47
    var _t = myTweetSource.tweetById(tweetId);
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    48
    console.log(_t);
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    49
    if (_t) {
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    50
        $("#btv-bigtweet").html('<img class="btv-bigtweet-image" src="'
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    51
        + _t.profile_image_url
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    52
        + '" /><p class="btv-bigtweet-screen-name">'
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    53
        + _t.from_user
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    54
        + '</p><p class="btv-bigtweet-name">'
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    55
        + _t.from_user_name
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    56
        +'</p><p class="btv-bigtweet-text">'
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    57
        + _t.text
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    58
        +'</p>').show();
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    59
        $(".btv-cp-hide-tweets").show();
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    60
    }
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    61
}
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    62
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    63
$(function() {
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    64
    setInterval(function() {
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    65
        var _t = Math.floor((new Date() - startHour)/1000),
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    66
            _s = _t % 60,
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    67
            _m = Math.floor(_t/60) % 60,
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    68
            _h = Math.floor(_t/3600);
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    69
        $("#btv-cp-temps").html(
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    70
            _h  + ':' + (_m < 10 ? '0' : '') + _m + ':' + (_s < 10 ? '0' : '') + _s
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    71
        )
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    72
    }, 500);
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    73
    myPodium = new Btv_Podium([0,0,0,0], { minHeight: 50 });
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    74
    
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    75
    
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    76
    $("#podium-labels").html(columnKeywords.map(function(_w) {
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    77
        return '<li>' + _w + '</li>'
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    78
    }).join(""));
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    79
    
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    80
    myTweetSource = new Btv_TweetSource({
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    81
        keywords: searchKeywords
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    82
    });
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    83
    
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    84
    myTweetSource.setOnNewTweets(function() {
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    85
        var _filtered = this.afterDate(startHour);
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    86
        $("#btv-cp-nb-tweets").html(_filtered.count());
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    87
        var _counts = [];
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    88
        for (var _i = 0; _i < columnKeywords.length; _i++) {
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    89
            _counts.push(_filtered.search(columnKeywords[_i]).count());
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    90
        }
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    91
        updateLastTweetList();
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    92
        myPodium.update(_counts);
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    93
        $("#podium-chiffres").html(_counts.map(function(_c) {
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    94
            return '<li>' + _c + '</li>'
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    95
        }).join(""));
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    96
    });
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    97
    myQueueManager = new Btv_TweetQueueManager(myTweetSource, function(_t) {
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    98
        var _cat = -1;
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
    99
        for (var i = 0; i < columnKeywords.length; i++) {
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
   100
            if (_t.text.search(regexpFromText(columnKeywords[i])) != -1) {
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
   101
                _cat = i;
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
   102
                break;
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
   103
            }
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
   104
        }
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
   105
        if (_cat != -1) {
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
   106
            if (_cat == 2) {
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
   107
                console.log(_t.text);
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
   108
            }
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
   109
            _t.cat = _cat;
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
   110
            createBallTweetForce(_t);
19
f3299dfd0eac ajout de la purge
Romain <romain.vuillemot@gmail.com>
parents: 14
diff changeset
   111
            checkSilos();
10
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
   112
        }
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
   113
});
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
   114
    
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
   115
    $("#btv-cp-champ-filtre").keyup(function() {
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
   116
        updateLastTweetList();
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
   117
    });
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
   118
    $("#btv-cp-clear-filtre").click(function() {
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
   119
        $("#btv-cp-champ-filtre").val("");
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
   120
        updateLastTweetList();
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
   121
        return false; 
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
   122
    });
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
   123
    $("#btv-bigtweet, .btv-cp-hide-tweets").click(function() {
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
   124
        $("#btv-bigtweet, .btv-cp-hide-tweets").hide();
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
   125
    });
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
   126
    $("#btv-cp-cont-pause-amont").click(function() {
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
   127
       if (myQueueManager.playPause()) {
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
   128
           $(this).removeClass("btv-cp-status-pause");
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
   129
           $(this).addClass("btv-cp-status-play");
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
   130
       } else {
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
   131
           $(this).addClass("btv-cp-status-pause");
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
   132
           $(this).removeClass("btv-cp-status-play");
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
   133
       }
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
   134
    });
dd7d86fbee70 Tweet Queue Algorithm + Counter
veltr
parents:
diff changeset
   135
});