2014-07-11 29 views
0

我只是嘗試使用nodejs與「Twit」(npm)流式傳輸tweets表單twitter,我的代碼如下所示。使用Nodejs「Twit」的Twitter流問題

stream = tweeter.stream('statuses/filter', { track: phrase, language: 'en' }); 
    var testTweetCount = 0; 
    stream.on('tweet', function (data) { 
    var currentdate = new Date(); 
    var datetime = "Last Sync: " + currentdate.getDate() + "/" 
      + (currentdate.getMonth()+1) + "/" 
      + currentdate.getFullYear() + " @ " 
      + currentdate.getHours() + ":" 
      + currentdate.getMinutes() + ":" 
      + currentdate.getSeconds(); 
     console.log("stream started Successfully with "+filterText+"- "+datetime);  
     //socket.emit('gotTweetss'); 
     var tweetText = JSON.stringify(data.text); 
     if(tweetText){ 
      var Created_at=JSON.stringify(data.created_at); 
      var User=JSON.stringify(data.user.screen_name); 
      tweetCollection.count({text:tweetText,user:User,Created_at:Created_at}, function(err, existdata){ 
      /* console.log("existdata       :     " + existdata);*/ 
       if(existdata > 0){ 
        console.log("duplicate data : " + JSON.stringify(existdata)); 
       } else{ 

        var tText=filterText.split(','); 
        var chekTrue=false; 

        for(iix=0;iix<tText.length;iix++) 
        { 

         var twData=tweetText.toUpperCase(); 
         var txzt=tText[iix].trim(); 
         if(twData.indexOf(txzt.toUpperCase())>-1) 
          { 
           console.log('true'); 
           chekTrue='true';break; 
          } 

        } 
        if(chekTrue=='true'){ 

        tweetCollection.insert([{text:tweetText,user:User,Created_at:Created_at}], {w:1}, function (error) { 
         if (error){ 
          console.log("Error Occurred " + error.message); 
         } else{ 
          // Wait for a second before finishing up, to ensure we have written the item to disk 
          setTimeout(function() { 

           // Fetch the document 
           tweetCollection.findOne ({text:tweetText}, function (err, item) { 
            assert.equal(null, err); 
            if(item!=null) 
            assert.equal(tweetText, item.text); 

           }) 
          }, 1000); 
         } 
        }); 
        } 
       } 
      }); 
     } 
     // socket.emit('gotTweet'); 
    }); 
    stream.on('error', function(error, code) { 
     console.log("My error: " + error + ": " + code); 
     /*if(code=="420") 
     { 
      io.sockets.emit('gotTweet'); 
     }*/ 
    }); 
    stream.on('delete', function(error, code) { 
     console.log("My delete: : " + code); 
    }); 

這是開始的流面積越來越流爲這個我使用 「蠢」 NPM。其顯示在控制檯的日期和時間同步流傳輸的同時開始,它的做工精細的代碼。但有些時候tweets沒有得到正確的處理,當我在Twitter上發佈推文時,這個流媒體沒有收到推文。有什麼解決方案嗎?

回答

0

這個監守語言: '恩'在Twitter信息中

tweeter.stream('statuses/filter', { track: phrase, language: 'en' }); 

我只是刪除的語言: '恩' 在上面的代碼工作完全

tweeter.stream('statuses/filter', { track: phrase });