From aaf93ab587c9615d35f36284edcbbb4b018728f0 Mon Sep 17 00:00:00 2001 From: Nick O'Leary Date: Thu, 7 Jun 2018 12:07:01 +0100 Subject: [PATCH] Handle upgrade from old to new twitter node better --- social/twitter/27-twitter.js | 39 ++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/social/twitter/27-twitter.js b/social/twitter/27-twitter.js index edf72140..de89376e 100644 --- a/social/twitter/27-twitter.js +++ b/social/twitter/27-twitter.js @@ -5,6 +5,7 @@ module.exports = function(RED) { var OAuth= require('oauth').OAuth; var request = require('request'); var twitterRateTimeout; + var retry = 60000; // 60 secs backoff for now function TwitterCredentialsNode(n) { RED.nodes.createNode(this,n); @@ -57,7 +58,7 @@ module.exports = function(RED) { this.twitterConfig = RED.nodes.getNode(this.twitter); var credentials = RED.nodes.getCredentials(this.twitter); - if (credentials) { + if (credentials && credentials.consumer_key && credentials.consumer_secret && credentials.access_token && credentials.access_token_secret) { var twit = new Ntwitter({ consumer_key: credentials.consumer_key, consumer_secret: credentials.consumer_secret, @@ -248,7 +249,6 @@ module.exports = function(RED) { twit.stream(thing, st, function(stream) { //console.log("ST",st); node.stream = stream; - var retry = 60000; // 60 secs backoff for now stream.on('data', function(tweet) { if (tweet.user !== undefined) { var where = tweet.user.location; @@ -358,25 +358,24 @@ module.exports = function(RED) { node.error(err); } } - } - else { + this.on('close', function() { + if (this.tout) { clearTimeout(this.tout); } + if (this.tout2) { clearTimeout(this.tout2); } + if (this.stream) { + this.restart = false; + this.stream.removeAllListeners(); + this.stream.destroy(); + } + if (this.poll_ids) { + for (var i=0; i