function check() {
  var creds = accounts[idx].creds;
  if (!creds) {
    console.log('ACCOUNT '.red, accounts[idx].username.yellow.bold, ' HAS NO CREDS'.red);
    idx++;
    return check();
  }

  var client = new Twitter(creds);

  client.get('account/verify_credentials', {skip_status: true}, function(err, resp) {
    if (err) {
      console.log('ACCOUNT '.red, accounts[idx].username.yellow.bold, ' IS F****D'.red);
    } else {
      console.log('CONFIRMED ACCOUNT '.green, accounts[idx].username.yellow.bold, ' IS GOOD');
    }

    idx++;
    if (idx > accounts.length - 1) {
      console.log('')
      console.log('DONE CHECKING ACCOUNTS!'.green.bold);
      return process.exit();
    }
    setTimeout(function(){
      check();
    }, 5000 + Math.floor(Math.random() * 5000));
  })
}
Esempio n. 2
0
function getTwitterData(inObj) {
    console.log("inObj", inObj);
    // console.log("config", config);

    var T = new Twitter(config);
    // Set up your search parameters
    var params = {
        q: '#bitcoin',
        count: maxCount,
        lang: 'en',
    }

    if (inObj) {
        if (inObj.until) {
            params.until = inObj.until;
        }
        if (inObj.max_id) {
            params.max_id = inObj.max_id;
        }
    }

    console.log("params", params);

    // Initiate your search using the above paramaters
    T.get('search/tweets', params, ((err, data, response)  => {
        // If there is no error, proceed
        if (!err) {
            processTwitResponse(data);
        } else {
            console.log("Error occurred", err);
        }
    }))
}
Esempio n. 3
0
    Posts.find({"publish_date": {$lt: _endDate }}, null, {limit: 10, sort: {publish_date: -1}},function (error, posts) {
        if (error) { console.log(error); }

        var params = {screen_name: 'liaodrake', count: 10};
        client.get('statuses/user_timeline', params, function(error, tweets, t_response){
            if (error) { console.log(error); }

            var RAW_activityfeed = {};
            for (var i=0,x=posts.length; i<x; i++) {
                RAW_activityfeed[ +new Date(posts[i].publish_date) ] = {
                    type: "post",
                    data: posts[i]
                };
            }
            for (var i=0,x=tweets.length; i<x; i++) {
                RAW_activityfeed[ +new Date(tweets[i].created_at) ] = {
                    type: "tweet",
                    data: tweets[i]
                };
            }
            var RAW_activityfeed_timestamps = Object.keys(RAW_activityfeed);
            RAW_activityfeed_timestamps.sort().reverse();

            var activityfeed = [];
            for (var i=0,x=10; i<x; i++) {
                activityfeed.push(RAW_activityfeed[RAW_activityfeed_timestamps[i]]);
            }

            cashedActivity = activityfeed;
        });
    });
 return new Promise((resolve, reject) => {
   // creates a new event that is an instance of EventInfo
   const newEvent = EventInfo();
   newEvent.twitterHandle = event;
   // search parameters for the Twitter request include the user's twitter handle
   const searchParams = {
     screen_name: newEvent.twitterHandle,
     exclude_replies: true,
     include_rts: true,
   };
   // now we search Twitter for this user (same as the getTruckTwitterInfo function)
   twitterClient.get('statuses/user_timeline', searchParams, (error, tweets) => {
     if (error) {
       console.log('Error retrieving tweets', error);
       reject(error);
     }
     // set the property of fullTweets to the data returned from the server
     newEvent.fullTweets = tweets;
     // allTweetMessages should only contain message strings
     (newEvent.fullTweets).forEach((tweet) => {
       newEvent.allMessages.push(tweet.text);
     });
     resolve(newEvent);
   });
 });
Esempio n. 5
0
// ====== TWITTER
function getTwitter() {
  var twitLogin = new twitter ({
    consumer_key: keys.twitterKeys.consumer_key,
    consumer_secret: keys.twitterKeys.consumer_secret,
    access_token_key: keys.twitterKeys.access_token_key,
    access_token_secret: keys.twitterKeys.access_token_secret
  });

  var params = {
      screen_name: "TGreen304",
      trim_user: true,
      count: 20 };
  //console.log(params);
  twitLogin.get("statuses/user_timeline", params, function(error, tweets, response) {
      if (!error) {
        for (i = 0; i < 20; i++)
          {
          console.log(tweets[i].text);
          console.log(tweets[i].created_at);
          console.log("\n================\n");
          }
      } /*else {
            console.log(error);
        };*/
  });
}
Esempio n. 6
0
function tweets(){
	var y = 0;
	var client = new Twitter(keys.twitterKeys)
	var params = {screen_name: 'RpatrkH'};
		client.get('statuses/user_timeline', params, function(error, tweets, response){
  			if (!error) {
  				console.log('========== Twitter Info: ==========');
  				console.log(' ')
  				//console.log(tweets);
  				for (i = 0; i < 20; i++){
  					y++;
    				var tweetText = tweets[i].text;
    				var tweetDate = tweets[i].created_at;
    					console.log('----------- Tweet ' + y + ' -----------');
    				console.log(tweetText);
    				console.log(tweetDate);
    				if (i < 9){
    					console.log('-------------------------------');
    				} else {
    					console.log('--------------------------------');
    				}
    				console.log(' ');
            logResult = "  " + "Tweet " + y + ": " + tweets[i].text + "  Time:" + tweets[i].user.created_at + "  ";
            logData(logResult);
    			}
    			console.log('===================================');
  			} else {
          console.log('Error');
        }
	});
}
Esempio n. 7
0
  client.get('moments/capsule/' + id, params, function(error, capsule, response) {
    var pageTweetIds = _.map(capsule['pages'], function(p) { return p['tweet_id']});
    var hydratedTweetIds = Object.keys(capsule['tweets'])
    console.log('hydratedTweetIds ' + hydratedTweetIds)
    console.log('pageTweetIds ' + pageTweetIds)
    var needHydrationIds = _.difference(pageTweetIds, hydratedTweetIds)
    console.log('needHydrationIds ' + needHydrationIds)

    if (needHydrationIds.length > 0) {
      var lookupParams = {
        id: needHydrationIds.join(','),
        include_cards: 1,
        cards_platform: 'iPhone-12',
      }
      console.log(lookupParams)

      client.get('statuses/lookup', lookupParams, function(error, tweets, response) {
        _.each(tweets, function(tweet) {
          capsule['tweets'][tweet['id_str']] = tweet;
        });
        res.json(capsule)
      })
    } else {
      res.json(capsule)
    }
  });
Esempio n. 8
0
setInterval(function(){
    console.log("Refreshing Twitter...")
    twitterclient.get('statuses/user_timeline', {
        screen_name: "ThursdayKnights",
        exclude_replies: true,
        trim_user: true,
        include_rts: false,
        since_id: last_tweet_id,
    }, function(error, params, response){
        if(error) {
            console.log("Twitter API error");
            console.log(error);
            console.log(params);
        } else {
            console.log("Found " + params.length + " new tweets");
            if (params.length > 0) {
                if (last_tweet_id != 1 && last_tweet_id != params[0].id) {
                    // Found a new tweet. Announce it!
                    announce_tweet(params[0].text, params[0].entities)
                    //console.log(params[0]);
                    //console.log(params[0].entities.media);
                    //console.log(params[0].extended_entities.media);
                }
                last_tweet_id = params[0].id;
                console.log("New most recent tweet id: " + last_tweet_id);
            }
        }

    });
}, twitter_interval);
Esempio n. 9
0
function myTweets() {
    var client = new twitter(keys.twitterKeys);
    // Twitter parameters
    var isInputNull = userInput === "" ? userInput = "ahmetburhan" : userInput = userInput;

    var params = {
        "screen_name": userInput,
        "count": 20
    }
    client.get("statuses/user_timeline", params, function (err, tweet, response) {
        if (err) {
            return console.log(err);
        } else {
            for (var i = 0; i < tweet.length; i++) {
                console.log(tweet[i].created_at);
                console.log(tweet[i].text);

                fs.appendFile("log.txt", "\n" + tweet[i].created_at + "\n" + tweet[i].text, function (err) {
                    if (err) {
                        console.log(err);
                    }
                })
            }
        }
    })
}
Esempio n. 10
0
router.get('/', function(req, res, next) {
    var tweets = '';
    var params = {
        q: '#dtla filter:media',
        geocode: '34.052234,-118.243685,2mi',
        include_entities: 'true'
    };
    
    twitterClient.get('search/tweets', params, function(error, tweets, response){
        if (!error) {
            res.render('index', { 
                title: 'Twitter Map', 
                params: params, 
                tweets: listTweets(tweets),
                tweetsRaw: tweets,
                mapbox_token: process.env.MAPBOX_ACCESS_TOKEN,
                mapbox_map_id: process.env.MAPBOX_MAP_ID,
                mapbox_style_id: process.env.MAPBOX_STYLE_ID
            });
        } else {
            res.render('index', { 
                title: 'Twitter Map', 
                tweets: error 
            });
        }
    });
  
});
Esempio n. 11
0
            function(error, oauth_access_token, oauth_access_token_secret, results) {
                if(error) {
                    next(new Error('Something broke: ' + util.inspect(error)));
                } else {
                    req.session.oauth.access_token = oauth_access_token;
                    req.session.oauth.access_token_secret = oauth_access_token_secret;

                    let twit = new twitter({
                        consumer_key: config.CONSUMER_KEY,
                        consumer_secret: config.CONSUMER_SECRET,
                        access_token_key: req.session.oauth.access_token,
                        access_token_secret: req.session.oauth.access_token_secret
                    });

                    twit.get('account/verify_credentials', { skip_status: true }, function(error, data) {
                        if(typeof(data) == 'undefined' || data == null) {
                            next(new Error('Error verifying credentials.'));
                        } else {
                            req.session.screen_name = data.screen_name;
                            res.redirect('/');
                        }
                    });

                }
            })
Esempio n. 12
0
 funicularData.twitterUsersToListenTo.forEach(function (screen_name) {
     //console.log(" - log: " + funicularData.twitterUsersData[screen_name].lastTweetID + " " + funicularData.twitterUsersData[screen_name].lastTweetIDstr);
     console.log("    └ for " + screen_name);
     // https://dev.twitter.com/rest/reference/get/statuses/user_timeline
     client.get('statuses/user_timeline', {
         screen_name: screen_name,
         since_id: funicularData.twitterUsersData[screen_name].lastTweetIDstr
     }, function (error, tweets, response) {
         if (!error) {
             if (tweets.length) {
                 // great! fishing has been good ☺
                 // TODO (!!!) Update last tweet information in funicularData
                 tweets.map(function (tweet) {
                     //console.dir(tweet.text);
                     funicularData.twitterUsersData[screen_name] = {};
                     funicularData.twitterUsersData[screen_name].lastTweetID = tweet.id;
                     funicularData.twitterUsersData[screen_name].lastTweetIDstr = tweet.id_str;
                     funicularData.twitterUsersData[screen_name].lastTweetCreateAt = tweet.created_at;
                     //writeToData(funicularData); // ?? Is cache enough for that ?
                     sendNewTweetToTelegram(tweet);
                 });
             } else {
                 // console.log("    └ no new status found for " + screen_name);
             }
         }
     });
 });
Esempio n. 13
0
function twitter(reqTwitterName){

	var Twitter = require('twitter');

	var client = new Twitter({
	  consumer_key: keyFile.twitterKeys.consumer_key,
	  consumer_secret: keyFile.twitterKeys.consumer_secret,
	  access_token_key: keyFile.twitterKeys.access_token_key,
	  access_token_secret: keyFile.twitterKeys.access_token_secret
	});

	var params = {screen_name: reqTwitterName , count:20};
	client.get('statuses/user_timeline', params, function(error, tweets, response){
	  	//uncomment below for error checking
	  	//console.log(tweets)
	    if (!error) {
	      console.log("\n---------------------------------------\n");
	  	  for(i = 0; i < params.count; i++){  	  	
		      console.log("@" + tweets[i].user.screen_name);
		      console.log("Tweet " + "#" + (i + 1) + ": " + tweets[i].text);
		      console.log("Created: " + tweets[i].created_at + "\n");
		  }
		  console.log("\n---------------------------------------\n");
	  	liriPrompter();
	  	}

	});

}
Esempio n. 14
0
  return new Promise(function (resolve, reject) {
    client.get('statuses/user_timeline', {
      screen_name: userName,
      exclude_replies: true,
      include_rts: true,
      contributor_details: false,
      trim_user: true,
      count: 200,
      max_id: max_id,
    }, function (error, tweets) {
      if (error) { return reject(error); }

      const texts = (tweets || []).map(function (tweet) {
        return tweet.text;
      });

      console.log("got", tweets.length, "tweets");

      return resolve({
        text: texts.join('\n'),
        max_id: tweets.reduce(function (acc, tweet) {
          if (!tweet.id) { return acc; }
          if (!acc || !acc.lessThan || acc.lessThan(tweet.id)) {
            return tweet.id;
          }
        }, undefined)
      });
    });
  });
Esempio n. 15
0
app.post('/twitter', function(req,res){
    var params = {
        q: req.body.hashtag,
        count:1
    };
    client.get('search/tweets', params, function(error, tweets, response){
      if (!error) {
          var data = {};
          for(var k in tweets.statuses){
              console.log(tweets.statuses[k]);
            
                data[k] = {
                     time: tweets.statuses[k].created_at,
                     text: tweets.statuses[k].text,
                     user: tweets.statuses[k].user.screen_name,
                     name: tweets.statuses[k].user.name,
                     followers: tweets.statuses[k].user.followers_count,
                     friends: tweets.statuses[k].user.friends_count,
                     image: tweets.statuses[k].user.profile_image_url
                 }; 
                 
          }
          res.json(data);
      }
    });
    

});
Esempio n. 16
0
function myTweets(){
		var client = new Twitter({
			consumer_key: keys.twitterKeys.consumer_key,
			consumer_secret:  keys.twitterKeys.consumer_secret,
  			access_token_key: keys.twitterKeys.access_token_key,
  			access_token_secret: keys.twitterKeys.access_token_secret
  		});
  
 //twitter function parameters: 
  	var parameters = {
  		twitterHandle: 'thecomparatist', 
  		count: 20
  	};
  	//get method to get statuses from twitter
  	client.get("statuses/user_timeline", parameters, function(error, tweets, response){
  		if (!error && response.statusCode == 200) {
  			for(var i = 0; i < tweets.length; i++){
  				console.log(tweets[i].text + "Created on:" + tweets[i].created_at + "\n");
  			}
  			console.log("================" + "\n");
  		} else {
  			console.log(error);
  		}

  	});
 };
Esempio n. 17
0
// Twitter function
function showTweets(){

    var twitterKeys = keysFile.twitterKeys;

    var client = new Twitter(twitterKeys);

    var params = {
        screen_name: 'anghelramona30',
        count: "20"
    };

    client.get('statuses/user_timeline', params, function(error, tweets, response) {

        if(error) {
            throw error;
        }

        for(var i = 0; i < tweets.length; i++){
                tweetText = tweets[i].text;
                tweetTime = tweets[i].created_at;

                console.log(tweetText + " Posted on: " + tweetTime);
        }
    })
}
Esempio n. 18
0
  app.get('/', function(req, res) {
      function do_render(tweets) {
        res.render('index', {
            copy: (new Date()).getFullYear(),
            lang: 'en',
            page: req.query.page || 'main',
            title: 'The Awesome Feed',
            tweets: tweets
          });
      }

      // get the tweets
      if (__debug) {
        __twitter_client = require('./js/sample-twitter-feed');
        do_render(__twitter_client.data);
      } else {
        __twitter_client = new twitter(__profile);
        __twitter_client.get(
            'https://api.twitter.com/1.1/statuses/user_timeline.json' +
              '?screen_name=' + (__params.screen || 'hrobertking') + 
              '&count=' + (__params.count || 10),
            function(error, tweets, response) {
               do_render(tweets);
            }
          );
      }
    });
Esempio n. 19
0
  return new Promise((resolve, reject) => {
    // See: https://dev.twitter.com/rest/reference/get/search/tweets
    const payload = {
      q: query, count: MAX_TWEETS, lang: TWEET_LANG
    };
    client.get('search/tweets', payload, (err, data) => {
      if (err) { return reject(err); }

      // Only extract the fields we want to use!
      const tweets = [];
      for (let i = 0; i < data.statuses.length; i++) {
        const tweet = data.statuses[i];
        tweets.push({
          createdAt: tweet.created_at,
          id: tweet.id_str,
          text: tweet.text,
          user: {
            createdAt: tweet.user.created_at,
            id: tweet.user.id_str,
            screenName: tweet.user.screen_name
          }
        });
      }
      return resolve(tweets);
    });
  });
module.exports = (text, num, callback) => {
  const twit = new Twitter(config);
  
  twit.get('search/tweets', {q: text, count: num}, (error, tweets, response) => {
    callback(tweets.statuses);
  });
}
Esempio n. 21
0
        .exec(function(err, tweets){
            if (err) return next(err);

            var reqIds = _.map(tweets, function(tweet){return tweet.id_str}).toString();

            twClient.get('statuses/lookup', {id: reqIds, include_entities: true}, function(err, tweets, response){
                if (err) return next(err);


                if(response.statusCode == 429){
                    console.log('No requests left');
                    res.status(429).send('Слишком много запросов');
                }else{
                    //Update db info
                    tweets.forEach(function(element, i){
                        Tweet
                            .update(
                                {id_str: element.id_str},
                                {
                                    $set:{
                                        favorite_count: element.favorite_count,
                                        retweet_count: element.retweet_count
                                    }
                                },
                                function(err){
                                    if(err) return next(err);
                                }
                            );
                    });
                    //Sort descending by retweets + likes
                    tweets = _.sortBy(tweets, function(tweet){return(-(tweet.retweet_count + tweet.favorite_count))});
                    res.status(200).send(tweets);
                }
            });
        });
Esempio n. 22
0
 return function(fn) {
   client.get('statuses/user_timeline', { user_id: user_id, exclude_replies: true, count: 200 }, function(err, data, res) {
     if (err) fn(err, null);
     if (res.headers['x-rate-limit-remaining'] < 1) fn([{ code: 88, message: 'About to exceed rate limit' }], null);
     fn(null, { data: data, res: res });
   });
 };
Esempio n. 23
0
//twitter function
function twitterCall() {
    var client = new twitter({
        consumer_key: twitterKeys.twitterKeys.consumer_key,
        consumer_secret: twitterKeys.twitterKeys.consumer_secret,
        access_token_key: twitterKeys.twitterKeys.access_token_key,
        access_token_secret: twitterKeys.twitterKeys.access_token_secret
    });
    var twitterUser = '******';
    twitterUser = params[1];
    params = { screen_name: twitterUser };
    client.get('statuses/user_timeline', params, function(error, data, response) {
        if (error) {
            throw error;
        }
        for (var i = 0; i < data.length; i++) {
            var twitterResults =
                "@" + data[i].user.screen_name + ": " +
                data[i].text + "\r\n" +
                data[i].created_at + "\r\n" +
                "------- End Tweet -------" + "\r\n";
            console.log(twitterResults);
            logData(twitterResults);
        }
    })
};
Esempio n. 24
0
 return function(fn) {
   client.get('friends/list', { screen_name: screen_name, cursor: cursor, count: 200, skip_status: true }, function(err, data, res) {
     if (err) fn(err, null);
     if (res.headers['x-rate-limit-remaining'] < 1) fn([{ code: 88, message: 'About to exceed rate limit' }], null);
     fn(null, { data: data, res: res });
   });
 };
Esempio n. 25
0
router.get('/dictionary/:wordId', function (req, res, next) {
  console.log('second route (Twitter)');
  var word = res.wordData.word;
  res.wordData.twitter = {};
  var twitSearch = "https://api.twitter.com/1.1/search/tweets.json?";
  twitSearch += "q=";
  twitSearch += "lang%3Aen%20"   // 'lang:en '
  twitSearch += "%23" + word;     // '#word'
  twitSearch += "&result_type=recent";
  console.log('second route About to call Twitter.get() with' + twitSearch );
  twitClient.get(twitSearch, twitParams, function (error, tweets, response) {
    console.log('second route Inside twitter callback ...');
    if (error) {
      console.error("Twitter FAIL!");
      console.error(error);
    }
    else {
      console.log('second route Twitter SUCCESS!  ...');
      res.wordData.twitter = tweets;
    }
    console.log('second route Done with twitter, returning to client ...');
    res.status(200).json(res.wordData);
  });

});
Esempio n. 26
0
module.exports = function(callback) {

  tw.get('application/rate_limit_status', {
    resources: 'search'
  }, callback)

}
Esempio n. 27
0
function getTweet(id){

  var options = { screen_name: 'RealDonaldTrump', count: 200 };

  // If we've sent an ID to page from, use it
  if(id) 
    options.max_id = id;
  
  client.get('statuses/user_timeline', options, function(err, tweets, response){
    if(err) console.log(err);
  
    // If we're past the first request, we'll need to shift off the first element,
    // because it's duplicated from the final item of the previous request
    if(id)
      tweets.shift()
  
    // Add new tweets to ammassed array    
    allTweets = allTweets.concat(tweets);
    console.log(allTweets.length);
    
    // If we've hit the limit, shut it down
    if(allTweets.length > 3200)
      return true;

    // Write to file
    fs.writeFileSync("culmulative.json", JSON.stringify(allTweets));
   
    // Dive back in
    getTweet(tweets[tweets.length - 1].id_str);
  });
}
Esempio n. 28
0
var job2 = new CronJob('0 */1 * * * *', function() {
 
   console.log('checking polls');

   client.get('statuses/user_timeline', {screen_name: "ghostwhovotes", exclude_replies: true, count: 40}, function(error, tweets, response) {
      for (var i=0; i<tweets.length; i++) {
         if ((String(tweets[i].text)).match(regex)) {
            // Name of Poll
            var pollname = (String(tweets[i].text).match(regex3))[0];
            // Each Party
            var parties = String(tweets[i].text).match(regex2);
            var partyResults = {};
            var otherResult = 100.0;
            for(var j=0; j<parties.length; j++) {
               partyResults[parties[j].match(regex4)[0]] = parties[j].match(regex4)[1];
            }
            for (var key in partyResults) {
               otherResult -= partyResults[key];
            }
            partyResults['Other'] = otherResult;
            var result = {poll:pollname, info:partyResults};
            jsonCreated.push(result);
         }
      }
      fs.writeFile('polls.json', JSON.stringify(jsonCreated), (err) => {
         if (err) throw err;
         console.log('Polls retrieved\t\t' + (new Date()).toTimeString());
      });
      jsonCreated = [];
   });

}, null, false, 'Australia/Melbourne');
Esempio n. 29
0
File: main.js Progetto: zn/Kureha
  vertifyCredentials: (callback) => {
    Client.get('account/verify_credentials', (error, event, response) => {
      if (error) {
        // retry vertifyCredentials if limit
        if (error.code == 'ENOTFOUND') {
          App.showMsgBox('인터넷 또는 서버가 불안정합니다. 자동으로 서버에 접속을 시도합니다', 'tomato', 3000);
          return setTimeout(() => App.vertifyCredentials(callback), 1000);
        } else if (error[0].code == 88) {
          App.showMsgBox('API 리밋으로 연결이 지연되고 있습니다. 잠시만 기다려 주세요', 'tomato', 12000);
          return setTimeout(() => App.vertifyCredentials(callback), 10000);
        } else {
          App.showMsgBox('알 수 없는 문제로 연결이 지연되고 있습니다. 잠시만 기다려 주세요', 'tomato', 12000);
          return setTimeout(() => App.vertifyCredentials(callback), 10000);
        }
      } else {
        App.clearMsgBox();
        App.id_str = event.id_str;
        App.name = event.name;
        App.screen_name = event.screen_name;
      }

      if (callback)
        callback(error);
    });
  },
Esempio n. 30
0
function getMentions(handle, callback) {
  if (handle[0] != '@') {
    handle = '@' + handle;
  }
  params = {q: handle, count: 100};
  twitterClient.get('search/tweets', params, function(errors, response){
    if (errors) {
      // twitter likes to send back an array of objects that aren't actually Error instances.. and there's usually just one object
      if (!Array.isArray(errors)) {
        errors = [errors];
      }
      var messages = errors.map(function(err){ return err.message }).join('\n');
      var e = new Error(messages);
      e.code = errors[0].code;
      e.errors = errors;
      return callback(e)
    }

    var tweets = response['statuses']
      .filter(englishAndNoRetweet)
      .map(toContentItem);

    if (tweets.length == 0) {
      var e2 = new Error('No suitable mentions found for @' + handle);
      e2.error = 'content-is-empty';
      e2.code = 400;
      return callback(e2);
    }

    callback(null, toText(tweets))
  });
}