diff --git a/packages/backend/src/apps/twitter/info.json b/packages/backend/src/apps/twitter/info.json index 216ce9b5..829c59ae 100644 --- a/packages/backend/src/apps/twitter/info.json +++ b/packages/backend/src/apps/twitter/info.json @@ -218,8 +218,8 @@ ], "triggers": [ { - "name": "My Tweet", - "key": "myTweet", + "name": "My Tweets", + "key": "myTweets", "description": "Will be triggered when you tweet something new.", "substeps": [ { diff --git a/packages/backend/src/apps/twitter/triggers.ts b/packages/backend/src/apps/twitter/triggers.ts index 0162f6af..1575d012 100644 --- a/packages/backend/src/apps/twitter/triggers.ts +++ b/packages/backend/src/apps/twitter/triggers.ts @@ -1,15 +1,18 @@ import TwitterClient from './client'; import UserTweets from './triggers/user-tweets'; import SearchTweets from './triggers/search-tweets'; +import MyTweets from './triggers/my-tweets'; export default class Triggers { client: TwitterClient; userTweets: UserTweets; searchTweets: SearchTweets; + myTweets: MyTweets; constructor(client: TwitterClient) { this.client = client; this.userTweets = new UserTweets(client); this.searchTweets = new SearchTweets(client); + this.myTweets = new MyTweets(client); } } diff --git a/packages/backend/src/apps/twitter/triggers/my-tweet.ts b/packages/backend/src/apps/twitter/triggers/my-tweet.ts deleted file mode 100644 index db129064..00000000 --- a/packages/backend/src/apps/twitter/triggers/my-tweet.ts +++ /dev/null @@ -1,25 +0,0 @@ -import TwitterApi, { TwitterApiTokens } from 'twitter-api-v2'; -import { IJSONObject } from '@automatisch/types'; - -export default class MyTweet { - client: TwitterApi; - - constructor(connectionData: IJSONObject) { - this.client = new TwitterApi({ - appKey: connectionData.consumerKey, - appSecret: connectionData.consumerSecret, - accessToken: connectionData.accessToken, - accessSecret: connectionData.accessSecret, - } as TwitterApiTokens); - } - - async run() { - const response = await this.client.currentUser(); - const username = response.screen_name; - - const userTimeline = await this.client.v1.userTimelineByUsername(username); - const fetchedTweets = userTimeline.tweets; - - return fetchedTweets; - } -} diff --git a/packages/backend/src/apps/twitter/triggers/my-tweets.ts b/packages/backend/src/apps/twitter/triggers/my-tweets.ts new file mode 100644 index 00000000..dd88b69c --- /dev/null +++ b/packages/backend/src/apps/twitter/triggers/my-tweets.ts @@ -0,0 +1,25 @@ +import TwitterClient from '../client'; + +export default class MyTweets { + client: TwitterClient; + + constructor(client: TwitterClient) { + this.client = client; + } + + async run(lastInternalId: string) { + return this.getTweets(lastInternalId); + } + + async testRun() { + return this.getTweets(); + } + + async getTweets(lastInternalId?: string) { + const { username } = await this.client.getCurrentUser.run(); + const user = await this.client.getUserByUsername.run(username as string); + + const tweets = await this.client.getUserTweets.run(user.id, lastInternalId); + return tweets; + } +}