【发布时间】:2014-04-30 07:31:39
【问题描述】:
我想刷新一条推特流。
我有一个使用 npm 模块 Twit 制作的 Twitter 流(你可以在这里找到它:https://github.com/ttezel/twit)。
这是我的代码:
Researches.find().observeChanges({
added: function(){
hashArray = Researches.find().fetch();
hashCount = Researches.find().count();
for(i=0; i<hashCount; i++){
hashArray[i]= hashArray[i].hashtag;
}
}
});
stream = T.stream('statuses/filter', {track: hashArray});
//Launch stream
stream.on('tweet', Meteor.bindEnvironment(function(tweet) {
//Get the hashtag of the tweet
tweetText = tweet.text;
tweetText = tweetText.toLowerCase();
//Get the hashtag of the current tweet
for(i=0; i<hashCount; i++){
var hashCompare = hashArray[i];
hashCompare = hashCompare.toLowerCase();
var isInString = tweetText.search(hashCompare);
if(isInString>=0)
goodHash = hashArray[i];
}
// Get the tweet informations
tweetToInsert = {
user: tweet.user.screen_name,
tweet: tweet.text,
picture: tweet.user.profile_image_url,
date: new Date().getTime(),
hashtag: goodHash
};
matchTweet = Tweets.findOne({tweet:tweetToInsert.tweet});
//Store tweets
if(matchTweet || (lastTweet.user == tweetToInsert.user) || (lastTweet.tweet == tweetToInsert.tweet)){
} else {
console.log(tweetToInsert.tweet);
Tweets.insert(tweetToInsert, function(error) {
if(error)
console.log(error);
});
}
//Store last tweet
lastTweet = {
user: tweetToInsert.user,
tweet: tweetToInsert.tweet
}
//Delete tweet overflow
nbTweet = Tweets.find({hashtag: goodHash}).count();
tweetToDelete = nbTweet-25;
if(nbTweet>25){
for(i=0; i<tweetToDelete;i++){
idDelete = Tweets.findOne({hashtag: goodHash});
Tweets.remove(idDelete._id);
}
}
}));
如您所见,我在我的研究收藏中有一个观察,我用它制作了一个包含所有主题标签的数组。然后,我使用这个数组创建了我的流来跟踪每个主题标签。
现在,这是我的问题。当我的收藏有一个新的标签时,我的数组会用新的标签更新自己,这很好。问题是流不更新自己。
我尝试过的
根据 Twit 文档,我尝试 .stop() 流(这工作正常),但是当我尝试使用 .start() 重新启动他时,它不起作用。
这是我尝试过的代码:
Researches.find().observeChanges({
added: function(){
hashArray = Researches.find().fetch();
hashCount = Researches.find().count();
for(i=0; i<hashCount; i++){
hashArray[i]= hashArray[i].hashtag;
}
if(stream){
stream.stop();
stream.start();
}
}
});
那么,您是否知道每次将主题标签添加到集合时如何刷新/更新 Twit 流或删除并创建一个新流。 谢谢
【问题讨论】:
标签: node.js api twitter stream meteor