Example #1
0
    fs.readFile('token.txt', 'utf8', function(err, data) {
        if (err) {
            console.log(err);
        } else {
            json = JSON.parse(data);

            var twit = new Twitter({
                consumer_key : config.twitter.key,
                consumer_secret : config.twitter.secret,
                access_token_key : json.oauthAccessToken,
                access_token_secret : json.oauthAccessTokenSecret
            });

            if (filter === undefined) {
                filter = {};
            }

            twit.search(criteria, filter, function(err, data) {
                if (err) {
                    callback(err, null);
                } else {
                    callback(null, data);
                }
            });
        }
    });
Example #2
0
 var search = function() {
   var location = common.constants.CURRENT_LOCATION;
   var geocode = [location.lat, location.lon, location.radius].join(',');
   client.search(location.keyword, {
     geocode: geocode,
     result_type: 'recent'
   }, function(err, data) {
     if (err) {
       return console.error(err);
     }
     var ids = _.pluck(data.results, 'id_str');
     Post.findByExternalIds(ids, function(err, posts) {
       if (err) {
         return console.log(err);
       }
       console.log('checking twitter results');
       var existing = {};
       _.each(posts, function(post) {
         existing[post.externalId] = post;
       });
       _.each(data.results, function(tweet) {
         if (!existing[tweet.id_str]) {
           console.log('found tweet with id: ' + tweet.id_str);
           var post = new Post({
             type: common.constants.POST_TYPES.TWITTER.type,
             externalId: tweet.id_str,
             date: new Date(tweet.created_at),
             title: tweet.text
           });
           post.save();
         }
       });
     });
   });
 };
Example #3
0
    return function(stream, callback) {
        //setup the twitter api
        twitter = new ntwitter();

        //run the query
        twitter.search(stream.query, {}, function(err, data) {
            if(err) {
                console.log(err);
                callback(err);
            }

            var posts = [];

            if(data && data.results) {
                data.results.forEach(function(tweet) {
                    var content = {
                        groupId: stream.groupId,
                        url: 'twitter.com/' + tweet.from_user + '/status/' + tweet.id_str,
                        text: tweet.text,
                        createdAt: new Date(tweet.created_at),
                        importData: tweet,
                        type: 'twitter',
                        imported: true,
                        tags: stream.tags
                    };

                    posts.push(content);
                });
            }

            callback(null, posts);
        });
    };
Example #4
0
setInterval(function() {
  console.log("reload twit");
  twit.search('nomecensaron OR #nomecensaron', function(err, data) {
  if (err) {
    console.log('Twitter search failed!');
  }
  else {
    count = 0;
    for(i = 0; i < data.results.length; i++){
      str = data.results[i].text;
      str = str.toLowerCase();
      ini = str.indexOf("nomecensaron") + "nomecensaron".length;
      ini = str.indexOf("#", ini) +1;
      fin = str.indexOf(" ", ini);
      if (fin < 0)
        fin = str.length;
      if(!isNaN(parseInt(str.substr(ini, fin-ini))))
        // esto lo coloco por si alguien empieza a trolear
        // despues le voy a dar otra vuelta para filtrar por usuario
        if(parseInt(str.substr(ini, fin-ini)) < 10)
          count += parseInt(str.substr(ini, fin-ini));
        else
          count++;
      else
        count++;
      }
    }
  });
}, 10000 );
Example #5
0
var twit = function(bot, data, nick, args, end) {
	
	bot.message('Confie no sábio!');
	
	twitter.search('hax0rson', {result_type:'mixed', count:4}, function(err, data) {
		if(err){
			bot.message(err);
			end();
		}
		bot.message(data);
		end();
	});
	
};                     
Example #6
0
module.exports.getVines = function(keywords, callback) {
	var query = "vine.co/v/ AND ("+keywords+")";
	var vines = [];

	twit.search(query, params, function(err, data) {
		if(err) {
			callback(err);
			return;
		} else {
			params.since_id = data.max_id;
			var remaining = data.results.length;

			data.results.forEach(function(tweet){
				var vine_url = null;
				tweet.entities.urls.forEach(function(url){
					if( url.expanded_url.split("//")[1].indexOf("vine.co/v/") > -1 ) {
						vine_url = url.expanded_url+"/card";
					}
				});
				if(!vine_url) return;

				request(vine_url, function (error, response, body) {	
					if (error) {
						console.log("Error fetching "+vine_url+": "+error);
					} else {
						var matches = body.match(/<source src="([^"]+)"/i);
						if(matches) {
							var vine = {
								user: tweet.from_user
								, link: vine_url
								, video: matches[1]
								, user_name: tweet.from_user_name
								, text: tweet.text
								, created_at: tweet.created_at
								, keywords: keywords
							};
							vines.push( vine );
						} else {
							console.log("Couldn't find video link on "+vine_url);
						}

						if(--remaining==0) {
							callback(null, vines);
						}
					}
				});
			});  // end loop through data.results
		} 
	}); // end of twit.search
}
Example #7
0
function fetchTweets(hashtag, list, latest) {
	twit.search(hashtag,{'since_id': latest}, function(err, data) {
		latest = data.search_metadata.max_id;
		for(var i=data.statuses.length-1;i>=0;i--) {
			var line = {
				text: data.statuses[i].text.replace(hashtag, '').trim(),
				user: data.statuses[i].user.screen_name
			}
			if(list.indexOf(line) === -1) {
				latest = data.statuses[i].id;
				list.push(line);
			}
		}
	});
}
Example #8
0
app.get('/:word', function(req, res) {
    var followWord = req.params.word;
    if(listWordsToObserve.indexOf(followWord) == -1){
        twit.search(followWord, {rpp: 100}, function(err, data) {
            latestTwitsHash[followWord] = data.results;
            show();
        });
    }else{
        show();
    }
    function show(){
        res.render('public/ejs/wallLayout.ejs', {
            latest: latestTwitsHash[followWord],
            wordToObserve:followWord,
            host: HOST,
            wordFollowers:wordFollowers[followWord]
        });
    }
}
Example #9
0
  function tweetsearch(){
    twit.search('NodeDublin',{},function(err,data){
      var list = data.results || []
      exports.foundtweets = []
      list.forEach(function(item){
	var tweet = {
	  id: item.id,
	  user: {
	    avatar: item.profile_image_url,
	    screen_name: item.from_user
	  },
	  text: item.text
	}
	//console.dir(tweet)
        exports.foundtweets.push(tweet)
	//twitStream.emit('tweet', tweet);
      })
      console.log('foundtweets:'+exports.foundtweets.length)
    })
  }
Example #10
0
exports.twitstock = function(req, res){
  console.log(req.body.stockname);
  var call_letter = "$"+req.body.stockname;
  twit.search(call_letter, function(err, data) {
    if (err) {
      console.log('Twitter search failed!');
    }
    else {
     // console.log('Search results:');
      //for(var x = 0 ; x< 5; x++ ){
      //console.dir(data.results);
      res.writeHead(200,'text/html');
      res.write(JSON.stringify(data));
      res.end();
    }
    
  });
  
  
};
Example #11
0
 function getTweets(cb){
   twit.search('', {rpp: 100, max_id: id_str, geocode: language.coords[1] + ',' + language.coords[0] + ',50mi'}, function(e, data) {
     requestCount++;
     if(data.results && data.results.length > 1){
       id_str = data.results[data.results.length - 1].id_str;
       async.forEachSeries(data.results, processTweet, function(e){
         //find out how many tweets we have in that language
         Tweet
           .where('trained', true)
           .where('trained_language', language.code)
           .count(function(e, count){
             tweetCount = count;
             cb();
           });
       });
     } else {
       noMoreTweets = true;
       cb();
     }
   });
 }
Example #12
0
		var search = function() {

			var twitter = require('ntwitter');

			var twit = new twitter({
				consumer_key: "7mxhEcnEpHbCEZL2fUoJ8cld3",
				consumer_secret: "APnoPquFx4YjIZR32vpfrydiGi05IBlpqc3cB132rv2oes9WO0",
				access_token_key: "861737564-7RydBknodZez0OBL9GwcmzFVsZLZWbS9Aywf1goe",
				access_token_secret: "vfVJfAVfn2yEyl418n9SlSl22YniuywNrtzwzgMSah4l0"
			});

			twit.search('nodejs OR #javascript', {}, function(err, data) {
				if (err) {
					console.log('Twitter search failed!');
					console.error(err);
				}

				if (data !== undefined) {
					socket.emit('tweets', data);
				}
			});
		};
Example #13
0
//Timer 
function tweetTimer()
{
	
/*-------------------------------------------
Begin Twitter Stream
---------------------------------------------*/
//274136860928929800 = id for clockpareil is up...
//this works in browser: https://twitter.com/search/?q=clockpareil&since_id=274136860928929800

	//saveTweet = false;
	twit.search(searchPhrase, {'since_id':lastId}, function(err, data) {

	console.log("data results: " + data);
	
	//if(typeof data.results[0].id != "undefined"){
	if(typeof data.results != 'undefined'){
			if(typeof data.results[0] != 'undefined'){
	
			if(data.results[0].id>lastId && tcBacklog < MAX_BACKLOG){
			tcBacklog++;			
			saveTweet = true;
			}
		
			lastId = data.results[0].id;
			fromUser =data.results[0].from_user;
			fromUserID=data.results[0].from_user_id;	
			tweetText=data.results[0].text;	
	
			}
	
	}	
	});


//Save tweet to Cloudant
/*-------------------------------------------
cradle & cloudant
https://github.com/cloudhead/cradle
---------------------------------------------*/

var conn = new(cradle.Connection)('HOST', 443,{
cache: true,
raw: false,
auth: {
username:"******", //cloudant generated key
password:"******"  //cloudant generated password
}	
	});
	
var db = conn.database('DBNAME');	
//var authdb = conn.database('clockpareilauth');	





if(saveTweet == true){
db.save(tweetID.toString(),{twituser: fromUser, twituserid: fromUserID, tweetid:tweetID, tweet:tweetText}, function (err, util){
	  if (err) {
	     console.log('cradle db error' + err);
	  } else {
	   console.log('success');
	  }

	});
saveTweet = false;	
}
			tweetID=lastId;

/*-------------------------------------------
End Twitter Search
---------------------------------------------*/

}// end timer function
Example #14
0
var recent_tweets = new Array(10);
var recent_tweets_index = -1;

twit.search('#nodephilly OR @NodePhilly', function(err, data) {
    if (err) { return; }
    
    for (var i=0; i<data.results.length; i++) {
        recent_tweets[++recent_tweets_index] = {
        	id: data.results[i].id,
            user: {
            	screen_name: data.results[i].from_user
            },            
            text: data.results[i].text
        };
    }
    
    twit.stream('statuses/filter', { track: '#nodephilly' }, function(stream) {
	    stream.on('data', function(data) {
			if (recent_tweets_index == recent_tweets.length-1) {
				recent_tweets_index = -1;
			}
			recent_tweets[++recent_tweets_index] = data;
			 
	        io.sockets.emit('tweet', data);
	    });
	});
});

app.listen(3000);

io.sockets.on('connection', function(socket) {