@@ -564,7 +564,7 @@ module.exports = function(RED) {
564
564
} ) ;
565
565
566
566
node . on ( "input" , function ( msg ) {
567
- if ( msg . hasOwnProperty ( "payload" ) ) {
567
+ if ( msg . hasOwnProperty ( "payload" ) || msg . hasOwnProperty ( "retweet" ) ) {
568
568
node . status ( { fill :"blue" , shape :"dot" , text :"twitter.status.tweeting" } ) ;
569
569
if ( msg . payload . slice ( 0 , 2 ) . toLowerCase ( ) === "d " ) {
570
570
var dm_user ;
@@ -605,6 +605,24 @@ module.exports = function(RED) {
605
605
node . error ( err , msg ) ;
606
606
node . status ( { fill :"red" , shape :"ring" , text :"twitter.status.failed" } ) ;
607
607
} )
608
+ } else if ( msg . retweet ) {
609
+ node . twitterConfig . post ( "https://api.twitter.com/1.1/statuses/retweet/" + msg . retweet , { } , msg . params || { } )
610
+ . then ( function ( result ) {
611
+ if ( result . status === 200 ) {
612
+ node . status ( { } ) ;
613
+ } else {
614
+ node . status ( { fill :"red" , shape :"ring" , text :"twitter.status.failed" } ) ;
615
+
616
+ if ( 'error' in result . body && typeof result . body . error === 'string' ) {
617
+ node . error ( result . body . error , msg ) ;
618
+ } else {
619
+ node . error ( result . body . errors [ 0 ] . message , msg ) ;
620
+ }
621
+ }
622
+ } ) . catch ( function ( err ) {
623
+ node . status ( { fill :"red" , shape :"ring" , text :"twitter.status.failed" } ) ;
624
+ node . error ( err , msg ) ;
625
+ } )
608
626
} else {
609
627
if ( msg . payload . length > 280 ) {
610
628
msg . payload = msg . payload . slice ( 0 , 279 ) ;
@@ -657,44 +675,6 @@ module.exports = function(RED) {
657
675
node . status ( { fill :"red" , shape :"ring" , text :"twitter.status.failed" } ) ;
658
676
node . error ( err , msg ) ;
659
677
} ) ;
660
- // if (msg.payload.length > 280) {
661
- // msg.payload = msg.payload.slice(0,279);
662
- // node.warn(RED._("twitter.errors.truncated"));
663
- // }
664
- // if (msg.media && Buffer.isBuffer(msg.media)) {
665
- // var apiUrl = "https://api.twitter.com/1.1/statuses/update_with_media.json";
666
- // var signedUrl = oa.signUrl(apiUrl,credentials.access_token,credentials.access_token_secret,"POST");
667
- // var r = request.post(signedUrl,function(err,httpResponse,body) {
668
- // if (err) {
669
- // node.error(err,msg);
670
- // node.status({fill:"red",shape:"ring",text:"twitter.status.failed"});
671
- // }
672
- // else {
673
- // var response = JSON.parse(body);
674
- // if (response.errors) {
675
- // var errorList = response.errors.map(function(er) { return er.code+": "+er.message }).join(", ");
676
- // node.error(RED._("twitter.errors.sendfail",{error:errorList}),msg);
677
- // node.status({fill:"red",shape:"ring",text:"twitter.status.failed"});
678
- // }
679
- // else {
680
- // node.status({});
681
- // }
682
- // }
683
- // });
684
- // var form = r.form();
685
- // form.append("status",msg.payload);
686
- // form.append("media[]",msg.media,{filename:"image"});
687
- //
688
- // } else {
689
- // if (typeof msg.params === 'undefined') { msg.params = {}; }
690
- // twit.updateStatus(msg.payload, msg.params, function (err, data) {
691
- // if (err) {
692
- // node.status({fill:"red",shape:"ring",text:"twitter.status.failed"});
693
- // node.error(err,msg);
694
- // }
695
- // node.status({});
696
- // });
697
- // }
698
678
}
699
679
}
700
680
} ) ;
0 commit comments