UNPKG

node-red-contrib-twitter-media

Version:
53 lines (39 loc) 1.54 kB
var Twit = require('twit'); module.exports = function(RED) { 'use strict'; function TwitterMedia(n) { RED.nodes.createNode(this,n); var node = this; node.on('input', function (msg) { var creds = RED.nodes.getNode(n.creds), payload = typeof msg.payload === 'object' ? msg.payload : {}; var attrs = ['tweet']; for (var attr of attrs) { if (n[attr]) { payload[attr] = n[attr]; } } payload.id = payload.tweet; var T = new Twit({ consumer_key: creds.consumer_key, consumer_secret: creds.consumer_secret, access_token: creds.access_token_key, access_token_secret: creds.access_token_secret }); var videoFile = msg.media; var message= msg.topic; T.postMediaChunked({ file_path: videoFile }, function (err, data, response) { if (!err) { var mediaId = data.media_id_string; var tweet = { status: message, media_ids: [mediaId] }; T.post('statuses/update', tweet, function (err, tweet, response) { if (!err) { node.send(tweet); } }); } }); }); } RED.nodes.registerType('twitter-media', TwitterMedia); };