Minor improvements to Twitter-Node

This commit is contained in:
Jan Oberhauser
2020-11-03 23:01:59 +01:00
parent 7c049fa858
commit 8eb1890f7f
3 changed files with 25 additions and 21 deletions

View File

@@ -12,7 +12,8 @@ import {
import { import {
IBinaryKeyData, IBinaryKeyData,
IDataObject, INodeExecutionData, IDataObject,
INodeExecutionData,
} from 'n8n-workflow'; } from 'n8n-workflow';
export async function twitterApiRequest(this: IExecuteFunctions | IExecuteSingleFunctions | ILoadOptionsFunctions | IHookFunctions, method: string, resource: string, body: any = {}, qs: IDataObject = {}, uri?: string, option: IDataObject = {}): Promise<any> { // tslint:disable-line:no-any export async function twitterApiRequest(this: IExecuteFunctions | IExecuteSingleFunctions | ILoadOptionsFunctions | IHookFunctions, method: string, resource: string, body: any = {}, qs: IDataObject = {}, uri?: string, option: IDataObject = {}): Promise<any> { // tslint:disable-line:no-any
@@ -68,7 +69,7 @@ export async function twitterApiRequestAllItems(this: IExecuteFunctions | ILoadO
return returnData; return returnData;
} }
export function chunks (buffer: Buffer, chunkSize: number) { export function chunks(buffer: Buffer, chunkSize: number) {
const result = []; const result = [];
const len = buffer.length; const len = buffer.length;
let i = 0; let i = 0;
@@ -81,9 +82,9 @@ export function chunks (buffer: Buffer, chunkSize: number) {
} }
export async function uploadAttachments(this: IExecuteFunctions, binaryProperties: string[], items: INodeExecutionData[], i: number) { export async function uploadAttachments(this: IExecuteFunctions, binaryProperties: string[], items: INodeExecutionData[], i: number) {
const uploadUri = 'https://upload.twitter.com/1.1/media/upload.json'; const uploadUri = 'https://upload.twitter.com/1.1/media/upload.json';
const media: IDataObject[] = []; const media: IDataObject[] = [];
for (const binaryPropertyName of binaryProperties) { for (const binaryPropertyName of binaryProperties) {
@@ -129,7 +130,7 @@ export async function uploadAttachments(this: IExecuteFunctions, binaryPropertie
media_type: binaryData[binaryPropertyName].mimeType, media_type: binaryData[binaryPropertyName].mimeType,
}; };
response = await twitterApiRequest.call(this, 'POST', '', {}, {}, uploadUri, { form: attachmentBody }); response = await twitterApiRequest.call(this, 'POST', '', {}, {}, uploadUri, { form: attachmentBody });
const mediaId = response.media_id_string; const mediaId = response.media_id_string;
@@ -174,10 +175,10 @@ export async function uploadAttachments(this: IExecuteFunctions, binaryPropertie
}, (check_after_secs as number) * 1000); }, (check_after_secs as number) * 1000);
}); });
} }
media.push(response); media.push(response);
} }
return media; return media;
} }
} }

View File

@@ -42,9 +42,9 @@ export const tweetOperations = [
] as INodeProperties[]; ] as INodeProperties[];
export const tweetFields = [ export const tweetFields = [
/* -------------------------------------------------------------------------- */ /* -------------------------------------------------------------------------- */
/* tweet:create */ /* tweet:create */
/* -------------------------------------------------------------------------- */ /* -------------------------------------------------------------------------- */
{ {
displayName: 'Text', displayName: 'Text',
name: 'text', name: 'text',
@@ -145,9 +145,10 @@ export const tweetFields = [
}, },
], ],
}, },
/* -------------------------------------------------------------------------- */
/* tweet:search */ /* -------------------------------------------------------------------------- */
/* -------------------------------------------------------------------------- */ /* tweet:search */
/* -------------------------------------------------------------------------- */
{ {
displayName: 'Search Text', displayName: 'Search Text',
name: 'searchText', name: 'searchText',
@@ -338,9 +339,10 @@ export const tweetFields = [
}, },
], ],
}, },
/* -------------------------------------------------------------------------- */
/* tweet:like */ /* -------------------------------------------------------------------------- */
/* -------------------------------------------------------------------------- */ /* tweet:like */
/* -------------------------------------------------------------------------- */
{ {
displayName: 'Tweet ID', displayName: 'Tweet ID',
name: 'tweetId', name: 'tweetId',
@@ -385,9 +387,10 @@ export const tweetFields = [
}, },
], ],
}, },
/* -------------------------------------------------------------------------- */
/* tweet:retweet */ /* -------------------------------------------------------------------------- */
/* -------------------------------------------------------------------------- */ /* tweet:retweet */
/* -------------------------------------------------------------------------- */
{ {
displayName: 'Tweet ID', displayName: 'Tweet ID',
name: 'tweetId', name: 'tweetId',

View File

@@ -157,7 +157,7 @@ export class Twitter implements INodeType {
const body: ITweet = { const body: ITweet = {
status: text, status: text,
}; };
if (additionalFields.inReplyToStatusId) { if (additionalFields.inReplyToStatusId) {
body.in_reply_to_status_id = additionalFields.inReplyToStatusId as string; body.in_reply_to_status_id = additionalFields.inReplyToStatusId as string;
body.auto_populate_reply_metadata = true; body.auto_populate_reply_metadata = true;
@@ -172,7 +172,7 @@ export class Twitter implements INodeType {
}); });
const medias = await uploadAttachments.call(this, attachmentProperties, items, i); const medias = await uploadAttachments.call(this, attachmentProperties, items, i);
body.media_ids = (medias as IDataObject[]).map((media: IDataObject) => media.media_id_string).join(','); body.media_ids = (medias as IDataObject[]).map((media: IDataObject) => media.media_id_string).join(',');
} }