@@ -218,74 +218,67 @@ export class ClientBase extends EventEmitter {
218
218
await this . populateTimeline ( ) ;
219
219
}
220
220
221
- async fetchHomeTimeline ( count : number ) : Promise < Tweet [ ] > {
222
- elizaLogger . debug ( "fetching home timeline " ) ;
221
+ async fetchOwnPosts ( count : number ) : Promise < Tweet [ ] > {
222
+ elizaLogger . debug ( "fetching own posts " ) ;
223
223
const homeTimeline = await this . twitterClient . getUserTweets (
224
224
this . profile . id ,
225
225
count
226
226
) ;
227
-
228
- // console.dir(homeTimeline, { depth: Infinity });
229
-
230
227
return homeTimeline . tweets ;
231
- // .filter((t) => t.__typename !== "TweetWithVisibilityResults")
232
- // .map((tweet) => {
233
- // // console.log("tweet is", tweet);
234
- // const obj = {
235
- // id: tweet.id,
236
- // name:
237
- // tweet.name ??
238
- // tweet. ?.user_results?.result?.legacy.name,
239
- // username:
240
- // tweet.username ??
241
- // tweet.core?.user_results?.result?.legacy.screen_name,
242
- // text: tweet.text ?? tweet.legacy?.full_text,
243
- // inReplyToStatusId:
244
- // tweet.inReplyToStatusId ??
245
- // tweet.legacy?.in_reply_to_status_id_str,
246
- // createdAt: tweet.createdAt ?? tweet.legacy?.created_at,
247
- // userId: tweet.userId ?? tweet.legacy?.user_id_str,
248
- // conversationId:
249
- // tweet.conversationId ??
250
- // tweet.legacy?.conversation_id_str,
251
- // hashtags: tweet.hashtags ?? tweet.legacy?.entities.hashtags,
252
- // mentions:
253
- // tweet.mentions ?? tweet.legacy?.entities.user_mentions,
254
- // photos:
255
- // tweet.photos ??
256
- // tweet.legacy?.entities.media?.filter(
257
- // (media) => media.type === "photo"
258
- // ) ??
259
- // [],
260
- // thread: [],
261
- // urls: tweet.urls ?? tweet.legacy?.entities.urls,
262
- // videos:
263
- // tweet.videos ??
264
- // tweet.legacy?.entities.media?.filter(
265
- // (media) => media.type === "video"
266
- // ) ??
267
- // [],
268
- // };
269
- // // console.log("obj is", obj);
270
- // return obj;
271
- // });
272
228
}
273
229
274
- async fetchFeedTimeline ( count : number ) : Promise < string > {
230
+ async fetchHomeTimeline ( count : number ) : Promise < Tweet [ ] > {
275
231
elizaLogger . debug ( "fetching home timeline" ) ;
276
232
const homeTimeline = await this . twitterClient . fetchHomeTimeline ( count , [ ] ) ;
277
- return homeTimeline
278
- . filter ( tweet => tweet . text || tweet . legacy ?. full_text )
279
- . sort ( ( a , b ) => {
280
- const timestampA = new Date ( a . createdAt ?? a . legacy ?. created_at ) . getTime ( ) ;
281
- const timestampB = new Date ( b . createdAt ?? b . legacy ?. created_at ) . getTime ( ) ;
282
- return timestampB - timestampA ;
283
- } )
284
- . slice ( 0 , count )
285
- . map ( tweet =>
286
- `@${ tweet . username || tweet . core ?. user_results ?. result ?. legacy ?. screen_name } : ${ tweet . text ?? tweet . legacy ?. full_text ?? '' } `
287
- )
288
- . join ( '\n' ) ;
233
+
234
+ elizaLogger . debug ( homeTimeline , { depth : Infinity } ) ;
235
+ const processedTimeline = homeTimeline
236
+ . filter ( ( t ) => t . __typename !== "TweetWithVisibilityResults" ) // what's this about?
237
+ . map ( ( tweet ) => {
238
+ //console.log("tweet is", tweet);
239
+ const obj = {
240
+ id : tweet . id ,
241
+ name :
242
+ tweet . name ??
243
+ tweet ?. user_results ?. result ?. legacy . name ,
244
+ username :
245
+ tweet . username ??
246
+ tweet . core ?. user_results ?. result ?. legacy . screen_name ,
247
+ text : tweet . text ?? tweet . legacy ?. full_text ,
248
+ inReplyToStatusId :
249
+ tweet . inReplyToStatusId ??
250
+ tweet . legacy ?. in_reply_to_status_id_str ??
251
+ null ,
252
+ timestamp : new Date ( tweet . legacy ?. created_at ) . getTime ( ) / 1000 ,
253
+ createdAt : tweet . createdAt ?? tweet . legacy ?. created_at ?? tweet . core ?. user_results ?. result ?. legacy . created_at ,
254
+ userId : tweet . userId ?? tweet . legacy ?. user_id_str ,
255
+ conversationId :
256
+ tweet . conversationId ??
257
+ tweet . legacy ?. conversation_id_str ,
258
+ permanentUrl : `https://x.com/${ tweet . core ?. user_results ?. result ?. legacy ?. screen_name } /status/${ tweet . rest_id } ` ,
259
+ hashtags : tweet . hashtags ?? tweet . legacy ?. entities . hashtags ,
260
+ mentions :
261
+ tweet . mentions ?? tweet . legacy ?. entities . user_mentions ,
262
+ photos :
263
+ tweet . photos ??
264
+ tweet . legacy ?. entities . media ?. filter (
265
+ ( media ) => media . type === "photo"
266
+ ) ??
267
+ [ ] ,
268
+ thread : tweet . thread || [ ] ,
269
+ urls : tweet . urls ?? tweet . legacy ?. entities . urls ,
270
+ videos :
271
+ tweet . videos ??
272
+ tweet . legacy ?. entities . media ?. filter (
273
+ ( media ) => media . type === "video"
274
+ ) ??
275
+ [ ] ,
276
+ } ;
277
+ //console.log("obj is", obj);
278
+ return obj ;
279
+ } ) ;
280
+ //elizaLogger.debug("process homeTimeline", processedTimeline);
281
+ return processedTimeline ;
289
282
}
290
283
291
284
async fetchTimelineForActions ( count : number ) : Promise < Tweet [ ] > {
0 commit comments