Changeset 39056 for websites/twicli

Show
Ignore:
Timestamp:
10/24/11 00:00:11 (19 months ago)
Author:
NeoCat
Message:

search.js: Add RT checkbox (turn off to exclude:retweets) / add inculde_entities=true

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • websites/twicli/plugins/search.js

    r38882 r39056  
    1212writeCookie('twicli_search_list', tws_list.join("\n"), 3652); 
    1313function twsSearch(qn, no_switch) { 
    14         var myid = 'search-' + qn; 
    15         var colon = qn.indexOf(':'); 
    16         var name = qn; 
    17         var q = qn; 
     14        var exclude_rt = qn.substr(0,1) == '^'; 
     15        var qn2 = qn.substr(exclude_rt?1:0); 
     16        var myid = 'search-' + qn2; 
     17        var colon = qn2.indexOf(':'); 
     18        var name = qn2; 
     19        var q = qn2; 
    1820        if (colon > 0) { 
    19                 name = qn.substr(0, colon); 
    20                 q = qn.substr(colon+1); 
     21                name = qn2.substr(0, colon); 
     22                q = qn2.substr(colon+1); 
    2123        } 
     24        if (exclude_rt) q += ' exclude:retweets'; 
    2225        if (!$(myid)) { 
    2326                var tab = document.createElement('a'); 
     
    2831                tab.appendChild(document.createTextNode(name)); 
    2932                tab.href = '#'; 
    30                 tab.onclick = function() { twsSearch(qn); return false; }; 
     33                tab.onclick = function() { twsSearch(this.tws_qn); return false; }; 
    3134                $('menu2').appendChild(tab); 
    3235                if (no_switch) return; 
     
    3740        switchTo(myid); 
    3841        tws_update_timer = setInterval(function(){twsSearchUpdate(q)}, 1000*Math.max(updateInterval, 30)); 
    39  
    40         $('tw2h').innerHTML = '<div class="tabcmd tabclose"><a id="tws-closetab" href="#">[x] '+_('remove tab')+'</a></div>'; 
     42        var rt_checked = exclude_rt ? "" : " checked"; 
     43        $('tw2h').innerHTML = '<div class="tabcmd tabclose"><input id="tws-RT" type="checkbox"'+rt_checked+'><label for="tws-RT">RT</label> <a id="tws-closetab" href="#">[x] '+_('remove tab')+'</a></div>'; 
    4144        $('tws-closetab').onclick = function(){ closeSearchTab(myid); return false; }; 
    4245        tws_page = 0; 
     46        $('tws-RT').onclick = function() { twsSwitchRT(myid); }; 
    4347        xds.load_for_tab(tws_API + '?seq=' + (seq++) + 
    44                                                         '&q=' + encodeURIComponent(q) + '&rpp=' + tws_rpp, twsSearchShow); 
     48                                                        '&include_entities=true&q=' + encodeURIComponent(q) + '&rpp=' + tws_rpp, twsSearchShow); 
    4549        return false; 
    4650} 
    4751function twsSearchUpdate(q) { 
    4852        xds.load_for_tab(tws_API + '?seq=' + (seq++) + 
    49                                                         '&q=' + encodeURIComponent(q) + '&rpp=' + tws_rpp, twsSearchShow2); 
     53                                                        '&include_entities=true&q=' + encodeURIComponent(q) + '&rpp=' + tws_rpp, twsSearchShow2); 
    5054} 
    5155function closeSearchTab(myid) { 
     
    5963        switchTL(); 
    6064} 
     65function twsSwitchRT(myid) { 
     66        var target = $(myid); 
     67        var qn = target.tws_qn; 
     68        if ($('tws-RT').checked) 
     69                qn = qn.substr(1); 
     70        else 
     71                qn = '^' + qn; 
     72        for (var i = 0; i < tws_list.length; i++) 
     73                if (target.tws_qn == tws_list[i]) 
     74                        tws_list[i] = qn; 
     75        writeCookie('twicli_search_list', tws_list.join("\n"), 3652); 
     76        target.tws_qn = qn; 
     77        twsSearch(qn); 
     78} 
    6179function twsSearchShow2(res) { 
    6280        twsSearchShow(res, true); 
    63         var twNode = $('tw2c'); 
    6481} 
    6582function twsSearchShow(res, update) { 
    6683        var tmp = $("tmp"); 
    6784        if (tmp) tmp.parentNode.removeChild(tmp); 
     85        if (res.error) { error(res.error); return; } 
    6886        if (!update) tws_page++; 
    6987        var result = res.results.map(function(a){ 
     
    83101                get_next_func = function(){ 
    84102                        xds.load_for_tab(tws_API + res.next_page + 
    85                                                                 '&seq=' + (seq++) + '&rpp=' + tws_rpp, twsSearchShow); 
     103                                                                '&include_entities=true&seq=' + (seq++) + '&rpp=' + tws_rpp, twsSearchShow); 
    86104                } 
    87105        }