mirror of
				https://github.com/node-red/node-red-nodes.git
				synced 2025-03-01 10:37:43 +00:00 
			
		
		
		
	Twitter-video-upload-ver01
I tried to write the code but it doesn't work. I would like to be able to upload a video or a larger gif file with this module.
This commit is contained in:
		| @@ -611,52 +611,74 @@ module.exports = function(RED) { | ||||
|                             node.warn(RED._("twitter.errors.truncated")); | ||||
|                         } | ||||
|                         var mediaPromise; | ||||
|                         if (msg.media && Buffer.isBuffer(msg.media)) { | ||||
|                             // var mediaType = fileType(msg.media); | ||||
|                             // if (mediaType === null) { | ||||
|                             //     node.status({fill:"red",shape:"ring",text:"twitter.status.failed"}); | ||||
|                             //     node.error("msg.media is not a valid media object",msg); | ||||
|                             //     return; | ||||
|                             // } | ||||
|                             mediaPromise = node.twitterConfig.post("https://upload.twitter.com/1.1/media/upload.json",null,null,{ | ||||
|                                 media: msg.media | ||||
|                             }).then(function(result) { | ||||
|                                 if (result.status === 200) { | ||||
|                                     return result.body.media_id_string; | ||||
|                                 } else { | ||||
|                                     throw new Error(result.body.errors[0]); | ||||
|                                 } | ||||
|                             }); | ||||
|                     if (msg.media && Buffer.isBuffer(msg.media)) { | ||||
|  | ||||
|                         } else { | ||||
|                             mediaPromise = Promise.resolve(); | ||||
|                         } | ||||
|                         mediaPromise.then(function(mediaId) { | ||||
|                             var params = msg.params || {}; | ||||
|                             params.status = msg.payload; | ||||
|                             if (mediaId) { | ||||
|                                 params.media_ids = mediaId; | ||||
|                         mediaPromise = node.twitterConfig.post("https://upload.twitter.com/1.1/media/upload.json",{   | ||||
|                             command: "INIT", | ||||
|                             total_bytes: msg.mediaSize, | ||||
|                             media_type: msg.mediaType | ||||
|                         }).then(function(result) { | ||||
|                             if (result.status === 200) { | ||||
|                                 return result.body.media_id_string; | ||||
|                             } else { | ||||
|                                 throw new Error(result.body.errors[0]); | ||||
|                             } | ||||
|                             node.twitterConfig.post("https://api.twitter.com/1.1/statuses/update.json",{},params).then(function(result) { | ||||
|                                 if (result.status === 200) { | ||||
|                                     node.status({}); | ||||
|                                 } else { | ||||
|                                     node.status({fill:"red",shape:"ring",text:"twitter.status.failed"}); | ||||
|                                      | ||||
|                                     if ('error' in result.body && typeof result.body.error === 'string') { | ||||
|                                         node.error(result.body.error,msg); | ||||
|                                     } else { | ||||
|                                         node.error(result.body.errors[0].message,msg); | ||||
|                                     } | ||||
|                                 } | ||||
|                             }).catch(function(err) { | ||||
|                         }); | ||||
|  | ||||
|  | ||||
|                         mediaPromise = node.twitterConfig.post("https://upload.twitter.com/1.1/media/upload.json",{   | ||||
|                             command: "APPEND", | ||||
|                             media_id: mediaId, | ||||
|                             media: msg.media, | ||||
|                             segment_index: 0 | ||||
|                         }).then(function(result) { | ||||
|                             if (result.status === 200) { | ||||
|                                 return result.media_id; | ||||
|                             } else { | ||||
|                                 throw new Error(result.body.errors[0]); | ||||
|                             } | ||||
|                         }); | ||||
|                          | ||||
|                         mediaPromise = node.twitterConfig.post("https://upload.twitter.com/1.1/media/upload.json",{   | ||||
|                             command: "FINALIZE", | ||||
|                             media_id: mediaId | ||||
|                         }).then(function(result) { | ||||
|                             if (result.status === 200) { | ||||
|                                 return result.media_id; | ||||
|                             } else { | ||||
|                                 throw new Error(result.body.errors[0]); | ||||
|                             } | ||||
|                         }); | ||||
|                   | ||||
|                     } else { | ||||
|                         mediaPromise = Promise.resolve(); | ||||
|                     } | ||||
|                     mediaPromise.then(function(mediaId) { | ||||
|                         var params = msg.params || {}; | ||||
|                         params.status = msg.payload; | ||||
|                         if (mediaId) { | ||||
|                             params.media_ids = mediaId; | ||||
|                         } | ||||
|                         node.twitterConfig.post("https://api.twitter.com/1.1/statuses/update.json",{},params).then(function(result) { | ||||
|                             if (result.status === 200) { | ||||
|                                 node.status({}); | ||||
|                             } else { | ||||
|                                 node.status({fill:"red",shape:"ring",text:"twitter.status.failed"}); | ||||
|                                 node.error(err,msg); | ||||
|                             }) | ||||
|                                  | ||||
|                                 if ('error' in result.body && typeof result.body.error === 'string') { | ||||
|                                     node.error(result.body.error,msg); | ||||
|                                 } else { | ||||
|                                     node.error(result.body.errors[0].message,msg); | ||||
|                                 } | ||||
|                             } | ||||
|                         }).catch(function(err) { | ||||
|                             node.status({fill:"red",shape:"ring",text:"twitter.status.failed"}); | ||||
|                             node.error(err,msg); | ||||
|                         }); | ||||
|                         }) | ||||
|                     }).catch(function(err) { | ||||
|                         node.status({fill:"red",shape:"ring",text:"twitter.status.failed"}); | ||||
|                         node.error(err,msg); | ||||
|                     }); | ||||
|                         // if (msg.payload.length > 280) { | ||||
|                         //     msg.payload = msg.payload.slice(0,279); | ||||
|                         //     node.warn(RED._("twitter.errors.truncated")); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user