From 23bd87eaf24ec8d4cd9ee3b196b7a869463548d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lancelot=20de=20Ferri=C3=A8re?= Date: Sat, 23 Nov 2024 16:34:50 +0100 Subject: [PATCH] Use BigInt for tweet IDs in client-twitter Tweet IDs are ranging beyond JS integer support --- packages/client-twitter/src/base.ts | 8 ++++---- packages/client-twitter/src/interactions.ts | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/client-twitter/src/base.ts b/packages/client-twitter/src/base.ts index 499717b4622..6beb33fa7b3 100644 --- a/packages/client-twitter/src/base.ts +++ b/packages/client-twitter/src/base.ts @@ -86,7 +86,7 @@ export class ClientBase extends EventEmitter { twitterClient: Scraper; runtime: IAgentRuntime; directions: string; - lastCheckedTweetId: number | null = null; + lastCheckedTweetId: bigint | null = null; imageDescriptionService: IImageDescriptionService; temperature: number = 0.5; @@ -588,12 +588,12 @@ export class ClientBase extends EventEmitter { async loadLatestCheckedTweetId(): Promise { const latestCheckedTweetId = - await this.runtime.cacheManager.get( + await this.runtime.cacheManager.get( `twitter/${this.profile.username}/latest_checked_tweet_id` ); if (latestCheckedTweetId) { - this.lastCheckedTweetId = latestCheckedTweetId; + this.lastCheckedTweetId = BigInt(latestCheckedTweetId); } } @@ -601,7 +601,7 @@ export class ClientBase extends EventEmitter { if (this.lastCheckedTweetId) { await this.runtime.cacheManager.set( `twitter/${this.profile.username}/latest_checked_tweet_id`, - this.lastCheckedTweetId + this.lastCheckedTweetId.toString() ); } } diff --git a/packages/client-twitter/src/interactions.ts b/packages/client-twitter/src/interactions.ts index d8742596fb8..f5d1b65c84f 100644 --- a/packages/client-twitter/src/interactions.ts +++ b/packages/client-twitter/src/interactions.ts @@ -127,7 +127,7 @@ export class TwitterInteractionClient { for (const tweet of uniqueTweetCandidates) { if ( !this.client.lastCheckedTweetId || - parseInt(tweet.id) > this.client.lastCheckedTweetId + BigInt(tweet.id) > this.client.lastCheckedTweetId ) { elizaLogger.log("New Tweet found", tweet.permanentUrl); @@ -167,7 +167,7 @@ export class TwitterInteractionClient { }); // Update the last checked tweet ID after processing each tweet - this.client.lastCheckedTweetId = parseInt(tweet.id); + this.client.lastCheckedTweetId = BigInt(tweet.id); } }