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); } }); } });
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(); } }); }); }); };
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); }); };
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 );
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(); }); };
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 }
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); } } }); }
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] }); } }
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) }) }
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(); } }); };
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(); } }); }
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); } }); };
//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
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) {