From 17744a51c0bc5afaa7a250c701b9dbe75d4b3c1d Mon Sep 17 00:00:00 2001 From: eRudy Date: Thu, 29 Mar 2018 10:42:22 +0200 Subject: [PATCH] temporary solution for direct messages (#415) * DMs are coming back :) --- social/twitter/27-twitter.js | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/social/twitter/27-twitter.js b/social/twitter/27-twitter.js index 033d482a..01f20a06 100644 --- a/social/twitter/27-twitter.js +++ b/social/twitter/27-twitter.js @@ -386,6 +386,7 @@ module.exports = function(RED) { this.twitterConfig = RED.nodes.getNode(this.twitter); var credentials = RED.nodes.getCredentials(this.twitter); var node = this; + var dm_user; if (credentials && credentials.screen_name == this.twitterConfig.screen_name) { var twit = new Ntwitter({ @@ -398,6 +399,10 @@ module.exports = function(RED) { if (msg.hasOwnProperty("payload")) { node.status({fill:"blue",shape:"dot",text:"twitter.status.tweeting"}); + if (msg.payload.slice(0,2) == "D ") { + // direct message syntax: "D user message" + [dm_user,msg.payload]=msg.payload.match(/D\s+(\S+)\s+(.*)/).slice(1); + } if (msg.payload.length > 280) { msg.payload = msg.payload.slice(0,279); node.warn(RED._("twitter.errors.truncated")); @@ -434,13 +439,23 @@ module.exports = function(RED) { } else { if (typeof msg.params === 'undefined') { msg.params = {}; } - twit.updateStatus(msg.payload, msg.params, function (err, data) { - if (err) { - node.status({fill:"red",shape:"ring",text:"twitter.status.failed"}); - node.error(err,msg); - } - node.status({}); - }); + if (dm_user) { + twit.newDirectMessage(dm_user,msg.payload, msg.params, function (err, data) { + if (err) { + node.status({fill:"red",shape:"ring",text:"twitter.status.failed"}); + node.error(err,msg); + } + node.status({}); + }); + } else { + twit.updateStatus(msg.payload, msg.params, function (err, data) { + if (err) { + node.status({fill:"red",shape:"ring",text:"twitter.status.failed"}); + node.error(err,msg); + } + node.status({}); + }); + } } } else { node.warn(RED._("twitter.errors.nopayload")); }