temporary solution for direct messages (#415)

* DMs are coming back :)
This commit is contained in:
eRudy 2018-03-29 10:42:22 +02:00 committed by Dave Conway-Jones
parent 4a8f071c91
commit 17744a51c0
1 changed files with 22 additions and 7 deletions

View File

@ -386,6 +386,7 @@ module.exports = function(RED) {
this.twitterConfig = RED.nodes.getNode(this.twitter); this.twitterConfig = RED.nodes.getNode(this.twitter);
var credentials = RED.nodes.getCredentials(this.twitter); var credentials = RED.nodes.getCredentials(this.twitter);
var node = this; var node = this;
var dm_user;
if (credentials && credentials.screen_name == this.twitterConfig.screen_name) { if (credentials && credentials.screen_name == this.twitterConfig.screen_name) {
var twit = new Ntwitter({ var twit = new Ntwitter({
@ -398,6 +399,10 @@ module.exports = function(RED) {
if (msg.hasOwnProperty("payload")) { if (msg.hasOwnProperty("payload")) {
node.status({fill:"blue",shape:"dot",text:"twitter.status.tweeting"}); 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) { if (msg.payload.length > 280) {
msg.payload = msg.payload.slice(0,279); msg.payload = msg.payload.slice(0,279);
node.warn(RED._("twitter.errors.truncated")); node.warn(RED._("twitter.errors.truncated"));
@ -434,13 +439,23 @@ module.exports = function(RED) {
} }
else { else {
if (typeof msg.params === 'undefined') { msg.params = {}; } if (typeof msg.params === 'undefined') { msg.params = {}; }
twit.updateStatus(msg.payload, msg.params, function (err, data) { if (dm_user) {
if (err) { twit.newDirectMessage(dm_user,msg.payload, msg.params, function (err, data) {
node.status({fill:"red",shape:"ring",text:"twitter.status.failed"}); if (err) {
node.error(err,msg); node.status({fill:"red",shape:"ring",text:"twitter.status.failed"});
} node.error(err,msg);
node.status({}); }
}); 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")); } else { node.warn(RED._("twitter.errors.nopayload")); }