x-twitter-scraper 0.7.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -0
- package/README.md +6 -0
- package/package.json +1 -1
- package/resources/shared.d.mts +382 -15
- package/resources/shared.d.mts.map +1 -1
- package/resources/shared.d.ts +382 -15
- package/resources/shared.d.ts.map +1 -1
- package/resources/support/tickets.d.mts +19 -19
- package/resources/support/tickets.d.mts.map +1 -1
- package/resources/support/tickets.d.ts +19 -19
- package/resources/support/tickets.d.ts.map +1 -1
- package/resources/trends.d.mts +12 -0
- package/resources/trends.d.mts.map +1 -1
- package/resources/trends.d.ts +12 -0
- package/resources/trends.d.ts.map +1 -1
- package/resources/x/account-connection-challenges.d.mts +1 -1
- package/resources/x/account-connection-challenges.d.mts.map +1 -1
- package/resources/x/account-connection-challenges.d.ts +1 -1
- package/resources/x/account-connection-challenges.d.ts.map +1 -1
- package/resources/x/accounts.d.mts +40 -3
- package/resources/x/accounts.d.mts.map +1 -1
- package/resources/x/accounts.d.ts +40 -3
- package/resources/x/accounts.d.ts.map +1 -1
- package/resources/x/communities/communities.d.mts +2 -12
- package/resources/x/communities/communities.d.mts.map +1 -1
- package/resources/x/communities/communities.d.ts +2 -12
- package/resources/x/communities/communities.d.ts.map +1 -1
- package/resources/x/communities/communities.js.map +1 -1
- package/resources/x/communities/communities.mjs.map +1 -1
- package/resources/x/communities/tweets.d.mts +4 -8
- package/resources/x/communities/tweets.d.mts.map +1 -1
- package/resources/x/communities/tweets.d.ts +4 -8
- package/resources/x/communities/tweets.d.ts.map +1 -1
- package/resources/x/index.d.mts +1 -1
- package/resources/x/index.d.mts.map +1 -1
- package/resources/x/index.d.ts +1 -1
- package/resources/x/index.d.ts.map +1 -1
- package/resources/x/index.js.map +1 -1
- package/resources/x/index.mjs.map +1 -1
- package/resources/x/lists.d.mts +2 -4
- package/resources/x/lists.d.mts.map +1 -1
- package/resources/x/lists.d.ts +2 -4
- package/resources/x/lists.d.ts.map +1 -1
- package/resources/x/tweets/index.d.mts +1 -1
- package/resources/x/tweets/index.d.mts.map +1 -1
- package/resources/x/tweets/index.d.ts +1 -1
- package/resources/x/tweets/index.d.ts.map +1 -1
- package/resources/x/tweets/index.js.map +1 -1
- package/resources/x/tweets/index.mjs.map +1 -1
- package/resources/x/tweets/tweets.d.mts +301 -22
- package/resources/x/tweets/tweets.d.mts.map +1 -1
- package/resources/x/tweets/tweets.d.ts +301 -22
- package/resources/x/tweets/tweets.d.ts.map +1 -1
- package/resources/x/tweets/tweets.js +5 -8
- package/resources/x/tweets/tweets.js.map +1 -1
- package/resources/x/tweets/tweets.mjs +5 -8
- package/resources/x/tweets/tweets.mjs.map +1 -1
- package/resources/x/users/users.d.mts +10 -20
- package/resources/x/users/users.d.mts.map +1 -1
- package/resources/x/users/users.d.ts +10 -20
- package/resources/x/users/users.d.ts.map +1 -1
- package/resources/x/users/users.js.map +1 -1
- package/resources/x/users/users.mjs.map +1 -1
- package/resources/x/x.d.mts +14 -3
- package/resources/x/x.d.mts.map +1 -1
- package/resources/x/x.d.ts +14 -3
- package/resources/x/x.d.ts.map +1 -1
- package/resources/x/x.js.map +1 -1
- package/resources/x/x.mjs.map +1 -1
- package/skills/x-twitter-scraper/SKILL.md +8 -4
- package/skills/x-twitter-scraper/metadata.json +1 -1
- package/skills/x-twitter-scraper/references/mcp-setup.md +12 -5
- package/skills/x-twitter-scraper/references/mcp-tools.md +7 -1
- package/skills/x-twitter-scraper/references/types-x-api.md +62 -12
- package/skills/x-twitter-scraper/skill-card.md +2 -2
- package/skills/x-twitter-scraper/skillspector-report.md +4 -1
- package/src/resources/shared.ts +514 -16
- package/src/resources/support/tickets.ts +19 -19
- package/src/resources/trends.ts +15 -0
- package/src/resources/x/account-connection-challenges.ts +1 -1
- package/src/resources/x/accounts.ts +59 -3
- package/src/resources/x/communities/communities.ts +2 -14
- package/src/resources/x/communities/tweets.ts +4 -8
- package/src/resources/x/index.ts +1 -0
- package/src/resources/x/lists.ts +2 -4
- package/src/resources/x/tweets/index.ts +1 -0
- package/src/resources/x/tweets/tweets.ts +393 -22
- package/src/resources/x/users/users.ts +10 -20
- package/src/resources/x/x.ts +17 -2
- package/src/version.ts +1 -1
- package/version.d.mts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/version.mjs +1 -1
package/src/resources/shared.ts
CHANGED
|
@@ -23,11 +23,6 @@ export namespace ContentDisclosure {
|
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
export interface AIGenerated {
|
|
26
|
-
/**
|
|
27
|
-
* Whether the disclosure can be edited on X.
|
|
28
|
-
*/
|
|
29
|
-
canEdit?: boolean;
|
|
30
|
-
|
|
31
26
|
/**
|
|
32
27
|
* Source of the AI-generated media disclosure.
|
|
33
28
|
*/
|
|
@@ -62,11 +57,26 @@ export interface EmbeddedTweet {
|
|
|
62
57
|
|
|
63
58
|
viewCount: number;
|
|
64
59
|
|
|
60
|
+
/**
|
|
61
|
+
* Article metadata attached to a tweet.
|
|
62
|
+
*/
|
|
63
|
+
article?: EmbeddedTweet.Article;
|
|
64
|
+
|
|
65
65
|
/**
|
|
66
66
|
* X user profile with bio, follower counts, and verification status.
|
|
67
67
|
*/
|
|
68
68
|
author?: UserProfile;
|
|
69
69
|
|
|
70
|
+
/**
|
|
71
|
+
* Public card metadata attached to a tweet.
|
|
72
|
+
*/
|
|
73
|
+
card?: EmbeddedTweet.Card;
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Community Note presentation metadata returned by X.
|
|
77
|
+
*/
|
|
78
|
+
communityNote?: EmbeddedTweet.CommunityNote;
|
|
79
|
+
|
|
70
80
|
/**
|
|
71
81
|
* Content disclosure metadata shown by X when a tweet is labeled as paid
|
|
72
82
|
* partnership content or AI-generated media.
|
|
@@ -79,6 +89,11 @@ export interface EmbeddedTweet {
|
|
|
79
89
|
|
|
80
90
|
displayTextRange?: Array<number>;
|
|
81
91
|
|
|
92
|
+
/**
|
|
93
|
+
* Edit history metadata returned by X.
|
|
94
|
+
*/
|
|
95
|
+
edit?: EmbeddedTweet.Edit;
|
|
96
|
+
|
|
82
97
|
entities?: { [key: string]: unknown };
|
|
83
98
|
|
|
84
99
|
inReplyToId?: string;
|
|
@@ -95,15 +110,167 @@ export interface EmbeddedTweet {
|
|
|
95
110
|
|
|
96
111
|
isReply?: boolean;
|
|
97
112
|
|
|
113
|
+
isTranslatable?: boolean;
|
|
114
|
+
|
|
98
115
|
lang?: string;
|
|
99
116
|
|
|
100
117
|
media?: Array<TweetMedia>;
|
|
101
118
|
|
|
119
|
+
/**
|
|
120
|
+
* Complete Note Tweet content and rich-text metadata.
|
|
121
|
+
*/
|
|
122
|
+
noteTweet?: EmbeddedTweet.NoteTweet;
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Public place metadata attached to a tweet.
|
|
126
|
+
*/
|
|
127
|
+
place?: EmbeddedTweet.Place;
|
|
128
|
+
|
|
129
|
+
possiblySensitive?: boolean;
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Engagement counts retained from a prior tweet edit.
|
|
133
|
+
*/
|
|
134
|
+
previousCounts?: EmbeddedTweet.PreviousCounts;
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Quoted or retweeted tweet context. Every object includes id, text, and
|
|
138
|
+
* engagement metrics. A zero metric can mean X did not report the count. Author,
|
|
139
|
+
* media, and conversation fields appear when available.
|
|
140
|
+
*/
|
|
141
|
+
quoted_tweet?: EmbeddedTweet;
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Quoted or retweeted tweet context. Every object includes id, text, and
|
|
145
|
+
* engagement metrics. A zero metric can mean X did not report the count. Author,
|
|
146
|
+
* media, and conversation fields appear when available.
|
|
147
|
+
*/
|
|
148
|
+
retweeted_tweet?: EmbeddedTweet;
|
|
149
|
+
|
|
102
150
|
source?: string;
|
|
103
151
|
|
|
104
152
|
type?: string;
|
|
105
153
|
|
|
106
154
|
url?: string;
|
|
155
|
+
|
|
156
|
+
viewState?: string;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
export namespace EmbeddedTweet {
|
|
160
|
+
/**
|
|
161
|
+
* Article metadata attached to a tweet.
|
|
162
|
+
*/
|
|
163
|
+
export interface Article {
|
|
164
|
+
id?: string;
|
|
165
|
+
|
|
166
|
+
coverMediaUrl?: string;
|
|
167
|
+
|
|
168
|
+
previewText?: string;
|
|
169
|
+
|
|
170
|
+
title?: string;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* Public card metadata attached to a tweet.
|
|
175
|
+
*/
|
|
176
|
+
export interface Card {
|
|
177
|
+
id?: string;
|
|
178
|
+
|
|
179
|
+
bindingValues?: { [key: string]: unknown };
|
|
180
|
+
|
|
181
|
+
name?: string;
|
|
182
|
+
|
|
183
|
+
url?: string;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* Community Note presentation metadata returned by X.
|
|
188
|
+
*/
|
|
189
|
+
export interface CommunityNote {
|
|
190
|
+
id?: string;
|
|
191
|
+
|
|
192
|
+
destinationUrl?: string;
|
|
193
|
+
|
|
194
|
+
footer?: string;
|
|
195
|
+
|
|
196
|
+
shortTitle?: string;
|
|
197
|
+
|
|
198
|
+
subtitle?: string;
|
|
199
|
+
|
|
200
|
+
title?: string;
|
|
201
|
+
|
|
202
|
+
visualStyle?: string;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
/**
|
|
206
|
+
* Edit history metadata returned by X.
|
|
207
|
+
*/
|
|
208
|
+
export interface Edit {
|
|
209
|
+
editableUntilMsecs?: string;
|
|
210
|
+
|
|
211
|
+
editTweetIds?: Array<string>;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* Complete Note Tweet content and rich-text metadata.
|
|
216
|
+
*/
|
|
217
|
+
export interface NoteTweet {
|
|
218
|
+
text: string;
|
|
219
|
+
|
|
220
|
+
id?: string;
|
|
221
|
+
|
|
222
|
+
entities?: { [key: string]: unknown };
|
|
223
|
+
|
|
224
|
+
isExpandable?: boolean;
|
|
225
|
+
|
|
226
|
+
richtextTags?: Array<NoteTweet.RichtextTag>;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
export namespace NoteTweet {
|
|
230
|
+
export interface RichtextTag {
|
|
231
|
+
fromIndex: number;
|
|
232
|
+
|
|
233
|
+
toIndex: number;
|
|
234
|
+
|
|
235
|
+
types: Array<string>;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
/**
|
|
240
|
+
* Public place metadata attached to a tweet.
|
|
241
|
+
*/
|
|
242
|
+
export interface Place {
|
|
243
|
+
id?: string;
|
|
244
|
+
|
|
245
|
+
boundingBox?: { [key: string]: unknown };
|
|
246
|
+
|
|
247
|
+
country?: string;
|
|
248
|
+
|
|
249
|
+
countryCode?: string;
|
|
250
|
+
|
|
251
|
+
fullName?: string;
|
|
252
|
+
|
|
253
|
+
name?: string;
|
|
254
|
+
|
|
255
|
+
placeType?: string;
|
|
256
|
+
|
|
257
|
+
url?: string;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
/**
|
|
261
|
+
* Engagement counts retained from a prior tweet edit.
|
|
262
|
+
*/
|
|
263
|
+
export interface PreviousCounts {
|
|
264
|
+
bookmarkCount?: number;
|
|
265
|
+
|
|
266
|
+
likeCount?: number;
|
|
267
|
+
|
|
268
|
+
quoteCount?: number;
|
|
269
|
+
|
|
270
|
+
replyCount?: number;
|
|
271
|
+
|
|
272
|
+
retweetCount?: number;
|
|
273
|
+
}
|
|
107
274
|
}
|
|
108
275
|
|
|
109
276
|
/**
|
|
@@ -378,11 +545,10 @@ export type EventType =
|
|
|
378
545
|
| 'profile.unavailable.changed';
|
|
379
546
|
|
|
380
547
|
/**
|
|
381
|
-
* Paginated
|
|
382
|
-
*
|
|
383
|
-
*
|
|
384
|
-
*
|
|
385
|
-
* 402 insufficient_credits.
|
|
548
|
+
* Paginated tweets. Source visibility, filters, or remaining credits can reduce
|
|
549
|
+
* results. An empty filtered page can still have has_next_page true. Follow
|
|
550
|
+
* next_cursor while has_next_page is true. Zero affordable results returns 402
|
|
551
|
+
* insufficient_credits.
|
|
386
552
|
*/
|
|
387
553
|
export interface PaginatedTweets {
|
|
388
554
|
has_next_page: boolean;
|
|
@@ -428,11 +594,26 @@ export interface SearchTweet {
|
|
|
428
594
|
|
|
429
595
|
viewCount: number;
|
|
430
596
|
|
|
597
|
+
/**
|
|
598
|
+
* Article metadata attached to a tweet.
|
|
599
|
+
*/
|
|
600
|
+
article?: SearchTweet.Article;
|
|
601
|
+
|
|
431
602
|
/**
|
|
432
603
|
* X user profile with bio, follower counts, and verification status.
|
|
433
604
|
*/
|
|
434
605
|
author?: UserProfile;
|
|
435
606
|
|
|
607
|
+
/**
|
|
608
|
+
* Public card metadata attached to a tweet.
|
|
609
|
+
*/
|
|
610
|
+
card?: SearchTweet.Card;
|
|
611
|
+
|
|
612
|
+
/**
|
|
613
|
+
* Community Note presentation metadata returned by X.
|
|
614
|
+
*/
|
|
615
|
+
communityNote?: SearchTweet.CommunityNote;
|
|
616
|
+
|
|
436
617
|
/**
|
|
437
618
|
* Content disclosure metadata shown by X when a tweet is labeled as paid
|
|
438
619
|
* partnership content or AI-generated media.
|
|
@@ -451,6 +632,11 @@ export interface SearchTweet {
|
|
|
451
632
|
*/
|
|
452
633
|
displayTextRange?: Array<number>;
|
|
453
634
|
|
|
635
|
+
/**
|
|
636
|
+
* Edit history metadata returned by X.
|
|
637
|
+
*/
|
|
638
|
+
edit?: SearchTweet.Edit;
|
|
639
|
+
|
|
454
640
|
/**
|
|
455
641
|
* Parsed search-result entities including URLs, mentions, hashtags, and media
|
|
456
642
|
* markers
|
|
@@ -492,6 +678,8 @@ export interface SearchTweet {
|
|
|
492
678
|
*/
|
|
493
679
|
isReply?: boolean;
|
|
494
680
|
|
|
681
|
+
isTranslatable?: boolean;
|
|
682
|
+
|
|
495
683
|
/**
|
|
496
684
|
* Search result language code.
|
|
497
685
|
*/
|
|
@@ -502,6 +690,23 @@ export interface SearchTweet {
|
|
|
502
690
|
*/
|
|
503
691
|
media?: Array<TweetMedia>;
|
|
504
692
|
|
|
693
|
+
/**
|
|
694
|
+
* Complete Note Tweet content and rich-text metadata.
|
|
695
|
+
*/
|
|
696
|
+
noteTweet?: SearchTweet.NoteTweet;
|
|
697
|
+
|
|
698
|
+
/**
|
|
699
|
+
* Public place metadata attached to a tweet.
|
|
700
|
+
*/
|
|
701
|
+
place?: SearchTweet.Place;
|
|
702
|
+
|
|
703
|
+
possiblySensitive?: boolean;
|
|
704
|
+
|
|
705
|
+
/**
|
|
706
|
+
* Engagement counts retained from a prior tweet edit.
|
|
707
|
+
*/
|
|
708
|
+
previousCounts?: SearchTweet.PreviousCounts;
|
|
709
|
+
|
|
505
710
|
/**
|
|
506
711
|
* Quoted or retweeted tweet context. Every object includes id, text, and
|
|
507
712
|
* engagement metrics. A zero metric can mean X did not report the count. Author,
|
|
@@ -527,6 +732,125 @@ export interface SearchTweet {
|
|
|
527
732
|
* Search result permalink.
|
|
528
733
|
*/
|
|
529
734
|
url?: string;
|
|
735
|
+
|
|
736
|
+
viewState?: string;
|
|
737
|
+
}
|
|
738
|
+
|
|
739
|
+
export namespace SearchTweet {
|
|
740
|
+
/**
|
|
741
|
+
* Article metadata attached to a tweet.
|
|
742
|
+
*/
|
|
743
|
+
export interface Article {
|
|
744
|
+
id?: string;
|
|
745
|
+
|
|
746
|
+
coverMediaUrl?: string;
|
|
747
|
+
|
|
748
|
+
previewText?: string;
|
|
749
|
+
|
|
750
|
+
title?: string;
|
|
751
|
+
}
|
|
752
|
+
|
|
753
|
+
/**
|
|
754
|
+
* Public card metadata attached to a tweet.
|
|
755
|
+
*/
|
|
756
|
+
export interface Card {
|
|
757
|
+
id?: string;
|
|
758
|
+
|
|
759
|
+
bindingValues?: { [key: string]: unknown };
|
|
760
|
+
|
|
761
|
+
name?: string;
|
|
762
|
+
|
|
763
|
+
url?: string;
|
|
764
|
+
}
|
|
765
|
+
|
|
766
|
+
/**
|
|
767
|
+
* Community Note presentation metadata returned by X.
|
|
768
|
+
*/
|
|
769
|
+
export interface CommunityNote {
|
|
770
|
+
id?: string;
|
|
771
|
+
|
|
772
|
+
destinationUrl?: string;
|
|
773
|
+
|
|
774
|
+
footer?: string;
|
|
775
|
+
|
|
776
|
+
shortTitle?: string;
|
|
777
|
+
|
|
778
|
+
subtitle?: string;
|
|
779
|
+
|
|
780
|
+
title?: string;
|
|
781
|
+
|
|
782
|
+
visualStyle?: string;
|
|
783
|
+
}
|
|
784
|
+
|
|
785
|
+
/**
|
|
786
|
+
* Edit history metadata returned by X.
|
|
787
|
+
*/
|
|
788
|
+
export interface Edit {
|
|
789
|
+
editableUntilMsecs?: string;
|
|
790
|
+
|
|
791
|
+
editTweetIds?: Array<string>;
|
|
792
|
+
}
|
|
793
|
+
|
|
794
|
+
/**
|
|
795
|
+
* Complete Note Tweet content and rich-text metadata.
|
|
796
|
+
*/
|
|
797
|
+
export interface NoteTweet {
|
|
798
|
+
text: string;
|
|
799
|
+
|
|
800
|
+
id?: string;
|
|
801
|
+
|
|
802
|
+
entities?: { [key: string]: unknown };
|
|
803
|
+
|
|
804
|
+
isExpandable?: boolean;
|
|
805
|
+
|
|
806
|
+
richtextTags?: Array<NoteTweet.RichtextTag>;
|
|
807
|
+
}
|
|
808
|
+
|
|
809
|
+
export namespace NoteTweet {
|
|
810
|
+
export interface RichtextTag {
|
|
811
|
+
fromIndex: number;
|
|
812
|
+
|
|
813
|
+
toIndex: number;
|
|
814
|
+
|
|
815
|
+
types: Array<string>;
|
|
816
|
+
}
|
|
817
|
+
}
|
|
818
|
+
|
|
819
|
+
/**
|
|
820
|
+
* Public place metadata attached to a tweet.
|
|
821
|
+
*/
|
|
822
|
+
export interface Place {
|
|
823
|
+
id?: string;
|
|
824
|
+
|
|
825
|
+
boundingBox?: { [key: string]: unknown };
|
|
826
|
+
|
|
827
|
+
country?: string;
|
|
828
|
+
|
|
829
|
+
countryCode?: string;
|
|
830
|
+
|
|
831
|
+
fullName?: string;
|
|
832
|
+
|
|
833
|
+
name?: string;
|
|
834
|
+
|
|
835
|
+
placeType?: string;
|
|
836
|
+
|
|
837
|
+
url?: string;
|
|
838
|
+
}
|
|
839
|
+
|
|
840
|
+
/**
|
|
841
|
+
* Engagement counts retained from a prior tweet edit.
|
|
842
|
+
*/
|
|
843
|
+
export interface PreviousCounts {
|
|
844
|
+
bookmarkCount?: number;
|
|
845
|
+
|
|
846
|
+
likeCount?: number;
|
|
847
|
+
|
|
848
|
+
quoteCount?: number;
|
|
849
|
+
|
|
850
|
+
replyCount?: number;
|
|
851
|
+
|
|
852
|
+
retweetCount?: number;
|
|
853
|
+
}
|
|
530
854
|
}
|
|
531
855
|
|
|
532
856
|
/**
|
|
@@ -545,13 +869,121 @@ export interface TweetMedia {
|
|
|
545
869
|
*/
|
|
546
870
|
url: string;
|
|
547
871
|
|
|
872
|
+
/**
|
|
873
|
+
* X media entity ID.
|
|
874
|
+
*/
|
|
875
|
+
id?: string;
|
|
876
|
+
|
|
877
|
+
/**
|
|
878
|
+
* Whether X permits direct media download.
|
|
879
|
+
*/
|
|
880
|
+
allowDownload?: boolean;
|
|
881
|
+
|
|
882
|
+
/**
|
|
883
|
+
* Accessibility text supplied for the media.
|
|
884
|
+
*/
|
|
885
|
+
altText?: string;
|
|
886
|
+
|
|
887
|
+
/**
|
|
888
|
+
* Video aspect ratio as width and height.
|
|
889
|
+
*/
|
|
890
|
+
aspectRatio?: Array<number>;
|
|
891
|
+
|
|
892
|
+
/**
|
|
893
|
+
* Media availability state reported by X.
|
|
894
|
+
*/
|
|
895
|
+
availabilityStatus?: string;
|
|
896
|
+
|
|
897
|
+
/**
|
|
898
|
+
* Display-friendly media URL reported by X.
|
|
899
|
+
*/
|
|
900
|
+
displayUrl?: string;
|
|
901
|
+
|
|
902
|
+
/**
|
|
903
|
+
* Video duration in milliseconds.
|
|
904
|
+
*/
|
|
905
|
+
durationMillis?: number;
|
|
906
|
+
|
|
907
|
+
/**
|
|
908
|
+
* Expanded X media URL.
|
|
909
|
+
*/
|
|
910
|
+
expandedUrl?: string;
|
|
911
|
+
|
|
912
|
+
/**
|
|
913
|
+
* Face-aware crop rectangles grouped by media size.
|
|
914
|
+
*/
|
|
915
|
+
faceRects?: { [key: string]: Array<TweetMedia.FaceRect> };
|
|
916
|
+
|
|
917
|
+
/**
|
|
918
|
+
* Suggested image crops reported by X.
|
|
919
|
+
*/
|
|
920
|
+
focusRects?: Array<TweetMedia.FocusRect>;
|
|
921
|
+
|
|
922
|
+
/**
|
|
923
|
+
* Original media height.
|
|
924
|
+
*/
|
|
925
|
+
height?: number;
|
|
926
|
+
|
|
927
|
+
/**
|
|
928
|
+
* Media entity offsets in the tweet text.
|
|
929
|
+
*/
|
|
930
|
+
indices?: Array<number>;
|
|
931
|
+
|
|
932
|
+
/**
|
|
933
|
+
* Stable X media key.
|
|
934
|
+
*/
|
|
935
|
+
mediaKey?: string;
|
|
936
|
+
|
|
937
|
+
/**
|
|
938
|
+
* Whether X reports the media as monetizable.
|
|
939
|
+
*/
|
|
940
|
+
monetizable?: boolean;
|
|
941
|
+
|
|
942
|
+
/**
|
|
943
|
+
* Named media renditions and resize modes.
|
|
944
|
+
*/
|
|
945
|
+
sizes?: { [key: string]: TweetMedia.Sizes };
|
|
946
|
+
|
|
548
947
|
/**
|
|
549
948
|
* Available video encodings, ordered as returned
|
|
550
949
|
*/
|
|
551
950
|
videoVariants?: Array<TweetMedia.VideoVariant>;
|
|
951
|
+
|
|
952
|
+
/**
|
|
953
|
+
* Original media width.
|
|
954
|
+
*/
|
|
955
|
+
width?: number;
|
|
552
956
|
}
|
|
553
957
|
|
|
554
958
|
export namespace TweetMedia {
|
|
959
|
+
export interface FaceRect {
|
|
960
|
+
h: number;
|
|
961
|
+
|
|
962
|
+
w: number;
|
|
963
|
+
|
|
964
|
+
x: number;
|
|
965
|
+
|
|
966
|
+
y: number;
|
|
967
|
+
}
|
|
968
|
+
|
|
969
|
+
export interface FocusRect {
|
|
970
|
+
h: number;
|
|
971
|
+
|
|
972
|
+
w: number;
|
|
973
|
+
|
|
974
|
+
x: number;
|
|
975
|
+
|
|
976
|
+
y: number;
|
|
977
|
+
}
|
|
978
|
+
|
|
979
|
+
export interface Sizes {
|
|
980
|
+
h: number;
|
|
981
|
+
|
|
982
|
+
resize: string;
|
|
983
|
+
|
|
984
|
+
w: number;
|
|
985
|
+
}
|
|
986
|
+
|
|
555
987
|
export interface VideoVariant {
|
|
556
988
|
contentType: string;
|
|
557
989
|
|
|
@@ -571,9 +1003,14 @@ export interface UserProfile {
|
|
|
571
1003
|
|
|
572
1004
|
username: string;
|
|
573
1005
|
|
|
1006
|
+
/**
|
|
1007
|
+
* Organization affiliation label shown on an X profile.
|
|
1008
|
+
*/
|
|
1009
|
+
affiliatesHighlightedLabel?: UserProfile.AffiliatesHighlightedLabel;
|
|
1010
|
+
|
|
574
1011
|
automatedBy?: string;
|
|
575
1012
|
|
|
576
|
-
|
|
1013
|
+
businessAccountAffiliatesCount?: number;
|
|
577
1014
|
|
|
578
1015
|
/**
|
|
579
1016
|
* Community role when returned by community member reads
|
|
@@ -584,6 +1021,8 @@ export interface UserProfile {
|
|
|
584
1021
|
|
|
585
1022
|
createdAt?: string;
|
|
586
1023
|
|
|
1024
|
+
creatorSubscriptionsCount?: number;
|
|
1025
|
+
|
|
587
1026
|
description?: string;
|
|
588
1027
|
|
|
589
1028
|
favouritesCount?: number;
|
|
@@ -594,6 +1033,20 @@ export interface UserProfile {
|
|
|
594
1033
|
|
|
595
1034
|
hasCustomTimelines?: boolean;
|
|
596
1035
|
|
|
1036
|
+
hasGraduatedAccess?: boolean;
|
|
1037
|
+
|
|
1038
|
+
hasHiddenSubscriptionsOnProfile?: boolean;
|
|
1039
|
+
|
|
1040
|
+
/**
|
|
1041
|
+
* Profile highlight availability and count metadata.
|
|
1042
|
+
*/
|
|
1043
|
+
highlightsInfo?: UserProfile.HighlightsInfo;
|
|
1044
|
+
|
|
1045
|
+
/**
|
|
1046
|
+
* Identity verification metadata displayed by X.
|
|
1047
|
+
*/
|
|
1048
|
+
identityVerification?: UserProfile.IdentityVerification;
|
|
1049
|
+
|
|
597
1050
|
isAutomated?: boolean;
|
|
598
1051
|
|
|
599
1052
|
/**
|
|
@@ -601,6 +1054,8 @@ export interface UserProfile {
|
|
|
601
1054
|
*/
|
|
602
1055
|
isBlueVerified?: boolean;
|
|
603
1056
|
|
|
1057
|
+
isProfileTranslatable?: boolean;
|
|
1058
|
+
|
|
604
1059
|
isTranslator?: boolean;
|
|
605
1060
|
|
|
606
1061
|
/**
|
|
@@ -612,6 +1067,8 @@ export interface UserProfile {
|
|
|
612
1067
|
|
|
613
1068
|
mediaCount?: number;
|
|
614
1069
|
|
|
1070
|
+
parodyCommentaryFanLabel?: string;
|
|
1071
|
+
|
|
615
1072
|
pinnedTweetIds?: Array<string>;
|
|
616
1073
|
|
|
617
1074
|
possiblySensitive?: boolean;
|
|
@@ -626,8 +1083,18 @@ export interface UserProfile {
|
|
|
626
1083
|
*/
|
|
627
1084
|
profileBannerUrl?: string;
|
|
628
1085
|
|
|
1086
|
+
profileDescriptionLanguage?: string;
|
|
1087
|
+
|
|
1088
|
+
profileImageShape?: string;
|
|
1089
|
+
|
|
1090
|
+
profileInterstitialType?: string;
|
|
1091
|
+
|
|
629
1092
|
profilePicture?: string;
|
|
630
1093
|
|
|
1094
|
+
profileSortEnabled?: boolean;
|
|
1095
|
+
|
|
1096
|
+
profileTranslatorType?: string;
|
|
1097
|
+
|
|
631
1098
|
/**
|
|
632
1099
|
* Whether the profile protects its posts
|
|
633
1100
|
*/
|
|
@@ -635,6 +1102,8 @@ export interface UserProfile {
|
|
|
635
1102
|
|
|
636
1103
|
statusesCount?: number;
|
|
637
1104
|
|
|
1105
|
+
superFollowEligible?: boolean;
|
|
1106
|
+
|
|
638
1107
|
unavailable?: boolean;
|
|
639
1108
|
|
|
640
1109
|
unavailableReason?: string;
|
|
@@ -645,15 +1114,44 @@ export interface UserProfile {
|
|
|
645
1114
|
|
|
646
1115
|
verifiedType?: string;
|
|
647
1116
|
|
|
1117
|
+
withheldInCountries?: Array<string>;
|
|
1118
|
+
}
|
|
1119
|
+
|
|
1120
|
+
export namespace UserProfile {
|
|
1121
|
+
/**
|
|
1122
|
+
* Organization affiliation label shown on an X profile.
|
|
1123
|
+
*/
|
|
1124
|
+
export interface AffiliatesHighlightedLabel {
|
|
1125
|
+
badgeUrl?: string;
|
|
1126
|
+
|
|
1127
|
+
description?: string;
|
|
1128
|
+
|
|
1129
|
+
url?: string;
|
|
1130
|
+
|
|
1131
|
+
urlType?: string;
|
|
1132
|
+
|
|
1133
|
+
userLabelDisplayType?: string;
|
|
1134
|
+
|
|
1135
|
+
userLabelType?: string;
|
|
1136
|
+
}
|
|
1137
|
+
|
|
648
1138
|
/**
|
|
649
|
-
*
|
|
1139
|
+
* Profile highlight availability and count metadata.
|
|
650
1140
|
*/
|
|
651
|
-
|
|
1141
|
+
export interface HighlightsInfo {
|
|
1142
|
+
canHighlightTweets?: boolean;
|
|
1143
|
+
|
|
1144
|
+
highlightedTweets?: string;
|
|
1145
|
+
}
|
|
652
1146
|
|
|
653
1147
|
/**
|
|
654
|
-
*
|
|
1148
|
+
* Identity verification metadata displayed by X.
|
|
655
1149
|
*/
|
|
656
|
-
|
|
1150
|
+
export interface IdentityVerification {
|
|
1151
|
+
description?: string;
|
|
657
1152
|
|
|
658
|
-
|
|
1153
|
+
isIdentityVerified?: boolean;
|
|
1154
|
+
|
|
1155
|
+
verifiedSinceMsec?: string;
|
|
1156
|
+
}
|
|
659
1157
|
}
|