2020-06-01 17:42:38 -07:00
import {
INodeProperties ,
2020-06-03 06:06:13 -07:00
} from 'n8n-workflow' ;
2020-06-01 17:42:38 -07:00
2021-12-03 00:44:16 -08:00
export const tweetOperations : INodeProperties [ ] = [
2020-06-01 17:42:38 -07:00
{
displayName : 'Operation' ,
name : 'operation' ,
type : 'options' ,
2022-05-20 14:47:24 -07:00
noDataExpression : true ,
2020-06-01 17:42:38 -07:00
displayOptions : {
show : {
resource : [
'tweet' ,
] ,
} ,
} ,
options : [
{
name : 'Create' ,
value : 'create' ,
2020-09-17 14:02:23 -07:00
description : 'Create or reply a tweet' ,
2022-07-10 13:50:51 -07:00
action : 'Create a tweet' ,
2020-06-01 17:42:38 -07:00
} ,
2021-02-06 07:08:47 -08:00
{
name : 'Delete' ,
value : 'delete' ,
description : 'Delete a tweet' ,
2022-07-10 13:50:51 -07:00
action : 'Delete a tweet' ,
2021-02-06 07:08:47 -08:00
} ,
2020-09-17 14:02:23 -07:00
{
name : 'Like' ,
value : 'like' ,
description : 'Like a tweet' ,
2022-07-10 13:50:51 -07:00
action : 'Like a tweet' ,
2020-09-17 14:02:23 -07:00
} ,
{
name : 'Retweet' ,
value : 'retweet' ,
description : 'Retweet a tweet' ,
2022-07-10 13:50:51 -07:00
action : 'Retweet a tweet' ,
2020-09-17 14:02:23 -07:00
} ,
2022-06-03 10:23:49 -07:00
{
name : 'Search' ,
value : 'search' ,
description : 'Search tweets' ,
2022-07-10 13:50:51 -07:00
action : 'Search for tweets' ,
2022-06-03 10:23:49 -07:00
} ,
2020-06-01 17:42:38 -07:00
] ,
default : 'create' ,
} ,
2021-12-03 00:44:16 -08:00
] ;
2020-06-01 17:42:38 -07:00
2021-12-03 00:44:16 -08:00
export const tweetFields : INodeProperties [ ] = [
2020-11-03 14:01:59 -08:00
/* -------------------------------------------------------------------------- */
/* tweet:create */
/* -------------------------------------------------------------------------- */
2020-06-01 17:42:38 -07:00
{
displayName : 'Text' ,
name : 'text' ,
type : 'string' ,
typeOptions : {
alwaysOpenEditWindow : true ,
} ,
required : true ,
default : '' ,
displayOptions : {
show : {
operation : [
'create' ,
] ,
resource : [
'tweet' ,
] ,
} ,
} ,
2022-05-06 14:01:25 -07:00
description : 'The text of the status update. URL encode as necessary. t.co link wrapping will affect character counts.' ,
2020-06-01 17:42:38 -07:00
} ,
{
displayName : 'Additional Fields' ,
name : 'additionalFields' ,
type : 'collection' ,
placeholder : 'Add Field' ,
default : { } ,
displayOptions : {
show : {
operation : [
'create' ,
] ,
resource : [
'tweet' ,
] ,
} ,
} ,
options : [
{
displayName : 'Attachments' ,
2020-06-07 15:54:45 -07:00
name : 'attachments' ,
type : 'string' ,
default : 'data' ,
2022-04-22 09:29:51 -07:00
description : 'Name of the binary properties which contain data which should be added to tweet as attachment. Multiple ones can be comma-separated.' ,
2020-06-01 17:42:38 -07:00
} ,
{
displayName : 'Display Coordinates' ,
name : 'displayCoordinates' ,
type : 'boolean' ,
default : false ,
2022-05-06 14:01:25 -07:00
description : 'Whether or not to put a pin on the exact coordinates a Tweet has been sent from' ,
2020-06-01 17:42:38 -07:00
} ,
2020-09-17 14:02:23 -07:00
{
displayName : 'In Reply to Tweet' ,
name : 'inReplyToStatusId' ,
type : 'string' ,
default : '' ,
2022-05-06 14:01:25 -07:00
description : 'The ID of an existing status that the update is in reply to' ,
2020-09-17 14:02:23 -07:00
} ,
2020-06-01 17:42:38 -07:00
{
displayName : 'Location' ,
name : 'locationFieldsUi' ,
type : 'fixedCollection' ,
placeholder : 'Add Location' ,
default : { } ,
2022-05-06 14:01:25 -07:00
description : 'Subscriber location information.n' ,
2020-06-01 17:42:38 -07:00
options : [
{
name : 'locationFieldsValues' ,
displayName : 'Location' ,
values : [
{
displayName : 'Latitude' ,
name : 'latitude' ,
type : 'string' ,
required : true ,
2022-05-06 14:01:25 -07:00
description : 'The location latitude' ,
2020-06-01 17:42:38 -07:00
default : '' ,
} ,
{
displayName : 'Longitude' ,
name : 'longitude' ,
type : 'string' ,
required : true ,
2022-05-06 14:01:25 -07:00
description : 'The location longitude' ,
2020-06-01 17:42:38 -07:00
default : '' ,
} ,
] ,
} ,
] ,
} ,
{
displayName : 'Possibly Sensitive' ,
name : 'possiblySensitive' ,
type : 'boolean' ,
default : false ,
2022-06-20 07:54:01 -07:00
description : 'Whether you are uploading Tweet media that might be considered sensitive content such as nudity, or medical procedures' ,
2020-06-01 17:42:38 -07:00
} ,
2020-10-22 06:46:03 -07:00
] ,
2020-06-01 17:42:38 -07:00
} ,
2020-11-03 14:01:59 -08:00
2021-02-06 07:08:47 -08:00
/* -------------------------------------------------------------------------- */
/* tweet:delete */
/* -------------------------------------------------------------------------- */
{
displayName : 'Tweet ID' ,
name : 'tweetId' ,
type : 'string' ,
required : true ,
default : '' ,
displayOptions : {
show : {
operation : [
'delete' ,
] ,
resource : [
'tweet' ,
] ,
} ,
} ,
2022-05-06 14:01:25 -07:00
description : 'The ID of the tweet to delete' ,
2021-02-06 07:08:47 -08:00
} ,
2020-11-03 14:01:59 -08:00
/* -------------------------------------------------------------------------- */
/* tweet:search */
/* -------------------------------------------------------------------------- */
2020-06-07 14:29:13 -07:00
{
displayName : 'Search Text' ,
name : 'searchText' ,
type : 'string' ,
typeOptions : {
alwaysOpenEditWindow : true ,
} ,
required : true ,
default : '' ,
displayOptions : {
show : {
operation : [
'search' ,
] ,
resource : [
'tweet' ,
] ,
} ,
} ,
2022-05-06 14:01:25 -07:00
description : 'A UTF-8, URL-encoded search query of 500 characters maximum, including operators. Queries may additionally be limited by complexity. Check the searching examples <a href="https://developer.twitter.com/en/docs/tweets/search/guides/standard-operators">here</a>.' ,
2020-06-07 14:29:13 -07:00
} ,
{
displayName : 'Return All' ,
name : 'returnAll' ,
type : 'boolean' ,
displayOptions : {
show : {
operation : [
'search' ,
] ,
resource : [
'tweet' ,
] ,
} ,
} ,
default : false ,
2022-05-06 14:01:25 -07:00
description : 'Whether to return all results or only up to a given limit' ,
2020-06-07 14:29:13 -07:00
} ,
{
displayName : 'Limit' ,
name : 'limit' ,
type : 'number' ,
displayOptions : {
show : {
operation : [
'search' ,
] ,
resource : [
'tweet' ,
] ,
returnAll : [
false ,
] ,
} ,
} ,
typeOptions : {
minValue : 1 ,
} ,
default : 50 ,
2022-05-06 14:01:25 -07:00
description : 'Max number of results to return' ,
2020-06-07 14:29:13 -07:00
} ,
{
displayName : 'Additional Fields' ,
name : 'additionalFields' ,
type : 'collection' ,
placeholder : 'Add Field' ,
default : { } ,
displayOptions : {
show : {
operation : [
'search' ,
] ,
resource : [
'tweet' ,
] ,
} ,
} ,
options : [
{
displayName : 'Include Entities' ,
name : 'includeEntities' ,
type : 'boolean' ,
default : false ,
2022-06-20 07:54:01 -07:00
description : 'Whether the entities node will be included' ,
2020-06-07 14:29:13 -07:00
} ,
{
2022-06-03 10:23:49 -07:00
displayName : 'Language Name or ID' ,
2020-06-07 14:29:13 -07:00
name : 'lang' ,
type : 'options' ,
typeOptions : {
loadOptionsMethod : 'getLanguages' ,
} ,
default : '' ,
2022-06-03 10:23:49 -07:00
description : 'Restricts tweets to the given language, given by an ISO 639-1 code. Language detection is best-effort. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/nodes/expressions.html#expressions">expression</a>.' ,
2020-06-07 14:29:13 -07:00
} ,
{
displayName : 'Location' ,
name : 'locationFieldsUi' ,
type : 'fixedCollection' ,
placeholder : 'Add Location' ,
default : { } ,
2022-05-06 14:01:25 -07:00
description : 'Subscriber location information.n' ,
2020-06-07 14:29:13 -07:00
options : [
{
name : 'locationFieldsValues' ,
displayName : 'Location' ,
values : [
{
displayName : 'Latitude' ,
name : 'latitude' ,
type : 'string' ,
required : true ,
2022-05-06 14:01:25 -07:00
description : 'The location latitude' ,
2020-06-07 14:29:13 -07:00
default : '' ,
} ,
{
displayName : 'Longitude' ,
name : 'longitude' ,
type : 'string' ,
required : true ,
2022-05-06 14:01:25 -07:00
description : 'The location longitude' ,
2020-06-07 14:29:13 -07:00
default : '' ,
} ,
{
displayName : 'Radius' ,
name : 'radius' ,
type : 'options' ,
options : [
{
name : 'Milles' ,
value : 'mi' ,
} ,
{
name : 'Kilometers' ,
value : 'km' ,
} ,
] ,
required : true ,
2022-05-06 14:01:25 -07:00
description : 'Returns tweets by users located within a given radius of the given latitude/longitude' ,
2020-06-07 14:29:13 -07:00
default : '' ,
} ,
{
displayName : 'Distance' ,
name : 'distance' ,
type : 'number' ,
typeOptions : {
minValue : 0 ,
} ,
required : true ,
default : '' ,
} ,
] ,
} ,
] ,
} ,
{
displayName : 'Result Type' ,
name : 'resultType' ,
type : 'options' ,
options : [
{
name : 'Mixed' ,
value : 'mixed' ,
2022-05-06 14:01:25 -07:00
description : 'Include both popular and real time results in the response' ,
2020-06-07 14:29:13 -07:00
} ,
{
name : 'Recent' ,
value : 'recent' ,
description : 'Return only the most recent results in the response' ,
} ,
{
name : 'Popular' ,
value : 'popular' ,
2022-05-06 14:01:25 -07:00
description : 'Return only the most popular results in the response' ,
2020-06-07 14:29:13 -07:00
} ,
] ,
default : 'mixed' ,
description : 'Specifies what type of search results you would prefer to receive' ,
} ,
2021-10-18 21:16:52 -07:00
{
displayName : 'Tweet Mode' ,
name : 'tweetMode' ,
type : 'options' ,
options : [
{
name : 'Compatibility' ,
value : 'compat' ,
} ,
{
name : 'Extended' ,
value : 'extended' ,
} ,
] ,
default : 'compat' ,
description : 'When the extended mode is selected, the response contains the entire untruncated text of the Tweet' ,
} ,
2020-06-07 14:29:13 -07:00
{
displayName : 'Until' ,
name : 'until' ,
type : 'dateTime' ,
default : '' ,
description : 'Returns tweets created before the given date' ,
} ,
] ,
} ,
2020-11-03 14:01:59 -08:00
/* -------------------------------------------------------------------------- */
/* tweet:like */
/* -------------------------------------------------------------------------- */
2020-09-17 14:02:23 -07:00
{
displayName : 'Tweet ID' ,
name : 'tweetId' ,
type : 'string' ,
required : true ,
default : '' ,
displayOptions : {
show : {
operation : [
'like' ,
] ,
resource : [
'tweet' ,
] ,
} ,
} ,
description : 'The ID of the tweet' ,
} ,
{
displayName : 'Additional Fields' ,
name : 'additionalFields' ,
type : 'collection' ,
placeholder : 'Add Field' ,
default : { } ,
displayOptions : {
show : {
operation : [
'like' ,
] ,
resource : [
'tweet' ,
] ,
} ,
} ,
options : [
{
2020-09-17 14:03:59 -07:00
displayName : 'Include Entities' ,
2020-09-17 14:02:23 -07:00
name : 'includeEntities' ,
type : 'boolean' ,
default : false ,
2022-06-20 07:54:01 -07:00
description : 'Whether the entities will be omitted' ,
2020-09-17 14:02:23 -07:00
} ,
] ,
} ,
2020-11-03 14:01:59 -08:00
/* -------------------------------------------------------------------------- */
/* tweet:retweet */
/* -------------------------------------------------------------------------- */
2020-09-17 14:02:23 -07:00
{
displayName : 'Tweet ID' ,
name : 'tweetId' ,
type : 'string' ,
required : true ,
default : '' ,
displayOptions : {
show : {
operation : [
'retweet' ,
] ,
resource : [
'tweet' ,
] ,
} ,
} ,
description : 'The ID of the tweet' ,
} ,
{
displayName : 'Additional Fields' ,
name : 'additionalFields' ,
type : 'collection' ,
placeholder : 'Add Field' ,
default : { } ,
displayOptions : {
show : {
operation : [
'retweet' ,
] ,
resource : [
'tweet' ,
] ,
} ,
} ,
options : [
{
displayName : 'Trim User' ,
name : 'trimUser' ,
type : 'boolean' ,
default : false ,
2022-06-20 07:54:01 -07:00
description : 'Whether each tweet returned in a timeline will include a user object including only the status authors numerical ID' ,
2020-09-17 14:02:23 -07:00
} ,
] ,
} ,
2021-12-03 00:44:16 -08:00
] ;