Changeset 38491 for lang/javascript

Show
Ignore:
Timestamp:
09/19/10 08:46:22 (3 years ago)
Author:
anekos
Message:

複数のストリームで同じツイートがでてこないようにした

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/javascript/vimperator-plugins/trunk/twittperator.js

    r38490 r38491  
    12311231    let startTime; 
    12321232 
     1233    // 極めて適当につくってます。 
     1234    // ステータスに対してユニークな文字列を返せばよい 
     1235    // XXX s.id でも良い? 
     1236    function getStatusHash(s) { 
     1237      let result = ''; 
     1238      for (let [k, v] in Iterator(s)) 
     1239        result += k + '\t' + (v && typeof v === 'object' ? getStatusHash(v) : v) + '\n'; 
     1240      return result; 
     1241    } 
     1242 
    12331243    function restart() { 
    12341244      stop(); 
     
    13191329 
    13201330          let data = sis.read(len); 
    1321           liberator.log(name + ':\n' + data); 
    13221331          let lines = data.split(/\r\n|[\r\n]/); 
    13231332          if (lines.length >= 2) { 
     
    13521361 
    13531362    function onMsg(msg, raw) { 
     1363      let hash = getStatusHash(msg) 
     1364      if (recentTweets.some(function (it) it === hash)) 
     1365        return false; 
     1366 
     1367      recentTweets.unshift(hash); 
     1368      if (recentTweets.length > 10) 
     1369        recentTweetsistory.splice(10); 
     1370 
    13541371      listeners.forEach(function(listener) liberator.trapErrors(function() listener(msg, raw))); 
    13551372 
     
    20302047    }); 
    20312048 
     2049  let recentTweets = []; // 複数の Stream で同じものが出現するのを防ぐもの 
    20322050  let statusRefreshTimer; 
    20332051  let expiredStatus = true;