Node.js 使用Nodejs的Twitter流媒体问题;Twit“;
我只是试着用nodejs和“Twit”(npm)从twitter上传推文。我的代码如下所示Node.js 使用Nodejs的Twitter流媒体问题;Twit“;,node.js,twitter,Node.js,Twitter,我只是试着用nodejs和“Twit”(npm)从twitter上传推文。我的代码如下所示 stream = tweeter.stream('statuses/filter', { track: phrase, language: 'en' }); var testTweetCount = 0; stream.on('tweet', function (data) { var currentdate = new Date(); var datetime = "
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);
});
stream=tweeter.stream('status/filter',{track:phrase,language:'en'});
var testTweetCount=0;
stream.on('tweet',函数(数据){
var currentdate=新日期();
var datetime=“上次同步:“+currentdate.getDate()+”/”
+(currentdate.getMonth()+1)+“/”
+currentdate.getFullYear()+“@”
+currentdate.getHours()+“:”
+currentdate.getMinutes()+“:”
+currentdate.getSeconds();
log(“流以“+filterText+”-“+datetime”成功启动);
//socket.emit('gotweetss');
var tweetText=JSON.stringify(data.text);
如果(推文){
var Created_at=JSON.stringify(data.Created_at);
var User=JSON.stringify(data.User.screen\u name);
count({text:tweetText,user:user,Created_at:Created_at},函数(err,existdata){
/*console.log(“existdata:+existdata”)*/
如果(existdata>0){
log(“重复数据:+JSON.stringify(existdata));
}否则{
var tText=filterText.split(',');
var chekTrue=false;
对于(iix=0;iix-1)
{
console.log('true');
chekTrue='true';break;
}
}
如果(chekTrue=='true'){
插入([{text:tweetText,user:user,Created_at:Created_at}],{w:1},函数(错误){
如果(错误){
日志(“发生错误”+错误消息);
}否则{
//在完成之前请等待一秒钟,以确保已将项目写入磁盘
setTimeout(函数(){
//取文件
tweetCollection.findOne({text:tweetText},函数(err,item){
assert.equal(null,err);
如果(项!=null)
assert.equal(tweetText,item.text);
})
}, 1000);
}
});
}
}
});
}
//emit('gotweet');
});
stream.on('error',函数(error,code){
log(“我的错误:+error+”:“+code”);
/*如果(代码==“420”)
{
io.sockets.emit('gotweet');
}*/
});
stream.on('delete',函数(错误,代码){
log(“我的删除::”+代码);
});
这是开始流区的代码,用于使用
“twit”NPM。它在控制台中显示流媒体启动时同步的日期和时间,工作正常。但是有些时候推特没有得到正确的处理,当我在推特上推特时,这个流媒体没有得到那个推特。有什么解决办法吗 这是因为推特流中的语言:“en”
tweeter.stream('statuses/filter', { track: phrase, language: 'en' });
我只是删除了上面代码中的语言:“en”它的工作非常完美
tweeter.stream('statuses/filter', { track: phrase });