2850 lines
75 KiB
TypeScript
2850 lines
75 KiB
TypeScript
/**
|
|
* Generated by orval 🍺
|
|
* Do not edit manually.
|
|
* Twitter OpenAPI
|
|
* Twitter OpenAPI(Swagger) specification
|
|
* OpenAPI spec version: 0.0.1
|
|
*/
|
|
export type TypeName = (typeof TypeName)[keyof typeof TypeName]
|
|
|
|
export const TypeName = {
|
|
TimelineTweet: 'TimelineTweet',
|
|
TimelineTimelineItem: 'TimelineTimelineItem',
|
|
TimelineUser: 'TimelineUser',
|
|
TimelineTimelineCursor: 'TimelineTimelineCursor',
|
|
TweetWithVisibilityResults: 'TweetWithVisibilityResults',
|
|
ContextualTweetInterstitial: 'ContextualTweetInterstitial',
|
|
TimelineTimelineModule: 'TimelineTimelineModule',
|
|
TweetTombstone: 'TweetTombstone',
|
|
TimelinePrompt: 'TimelinePrompt',
|
|
TimelineMessagePrompt: 'TimelineMessagePrompt',
|
|
TimelineCommunity: 'TimelineCommunity',
|
|
TimelineTombstone: 'TimelineTombstone',
|
|
TimelineTrend: 'TimelineTrend',
|
|
TimelineNotification: 'TimelineNotification',
|
|
TimelineNotificationAggregateUserActions:
|
|
'TimelineNotificationAggregateUserActions',
|
|
TweetUnavailable: 'TweetUnavailable',
|
|
TweetPreviewDisplay: 'TweetPreviewDisplay',
|
|
Tweet: 'Tweet',
|
|
User: 'User',
|
|
UserUnavailable: 'UserUnavailable',
|
|
Community: 'Community',
|
|
CommunityDeleteActionUnavailable: 'CommunityDeleteActionUnavailable',
|
|
CommunityJoinAction: 'CommunityJoinAction',
|
|
CommunityJoinActionUnavailable: 'CommunityJoinActionUnavailable',
|
|
CommunityLeaveActionUnavailable: 'CommunityLeaveActionUnavailable',
|
|
CommunityTweetPinActionUnavailable: 'CommunityTweetPinActionUnavailable',
|
|
CommunityTweetUnpinActionUnavailable: 'CommunityTweetUnpinActionUnavailable',
|
|
CommunityInvitesUnavailable: 'CommunityInvitesUnavailable',
|
|
CommunityJoinRequestsUnavailable: 'CommunityJoinRequestsUnavailable',
|
|
CommunityUnavailable: 'CommunityUnavailable',
|
|
ApiImage: 'ApiImage',
|
|
TimelineRichTextUser: 'TimelineRichTextUser',
|
|
} as const
|
|
|
|
export type ClientEventInfoDetails = { [key: string]: unknown }
|
|
|
|
export interface ClientEventInfo {
|
|
component?: string
|
|
details?: ClientEventInfoDetails
|
|
element?: string
|
|
}
|
|
|
|
export type ContentEntryType =
|
|
(typeof ContentEntryType)[keyof typeof ContentEntryType]
|
|
|
|
export const ContentEntryType = {
|
|
TimelineTimelineItem: 'TimelineTimelineItem',
|
|
TimelineTimelineCursor: 'TimelineTimelineCursor',
|
|
TimelineTimelineModule: 'TimelineTimelineModule',
|
|
} as const
|
|
|
|
export interface TextHighlight {
|
|
endIndex: number
|
|
startIndex: number
|
|
}
|
|
|
|
export interface Highlight {
|
|
textHighlights: TextHighlight[]
|
|
}
|
|
|
|
export type ContentItemType =
|
|
(typeof ContentItemType)[keyof typeof ContentItemType]
|
|
|
|
export const ContentItemType = {
|
|
TimelineTweet: 'TimelineTweet',
|
|
TimelineTimelineCursor: 'TimelineTimelineCursor',
|
|
TimelineUser: 'TimelineUser',
|
|
TimelinePrompt: 'TimelinePrompt',
|
|
TimelineMessagePrompt: 'TimelineMessagePrompt',
|
|
TimelineCommunity: 'TimelineCommunity',
|
|
TimelineTombstone: 'TimelineTombstone',
|
|
TimelineTrend: 'TimelineTrend',
|
|
TimelineNotification: 'TimelineNotification',
|
|
} as const
|
|
|
|
export type TimelineGeneralContextContextType =
|
|
(typeof TimelineGeneralContextContextType)[keyof typeof TimelineGeneralContextContextType]
|
|
|
|
export const TimelineGeneralContextContextType = {
|
|
Follow: 'Follow',
|
|
Pin: 'Pin',
|
|
Like: 'Like',
|
|
Location: 'Location',
|
|
Sparkle: 'Sparkle',
|
|
Conversation: 'Conversation',
|
|
List: 'List',
|
|
Community: 'Community',
|
|
Facepile: 'Facepile',
|
|
} as const
|
|
|
|
export type SocialContextLandingUrlUrlType =
|
|
(typeof SocialContextLandingUrlUrlType)[keyof typeof SocialContextLandingUrlUrlType]
|
|
|
|
export const SocialContextLandingUrlUrlType = {
|
|
DeepLink: 'DeepLink',
|
|
UrtEndpoint: 'UrtEndpoint',
|
|
ExternalUrl: 'ExternalUrl',
|
|
} as const
|
|
|
|
export interface UrtEndpointRequestParams {
|
|
key: string
|
|
value: string
|
|
}
|
|
|
|
export interface UrtEndpointOptions {
|
|
requestParams: UrtEndpointRequestParams[]
|
|
title: string
|
|
}
|
|
|
|
export interface SocialContextLandingUrl {
|
|
url?: string
|
|
urlType?: SocialContextLandingUrlUrlType
|
|
urtEndpointOptions?: UrtEndpointOptions
|
|
}
|
|
|
|
export type SocialContextUnionType =
|
|
(typeof SocialContextUnionType)[keyof typeof SocialContextUnionType]
|
|
|
|
export const SocialContextUnionType = {
|
|
TimelineGeneralContext: 'TimelineGeneralContext',
|
|
TimelineTopicContext: 'TimelineTopicContext',
|
|
} as const
|
|
|
|
export interface TimelineGeneralContext {
|
|
contextImageUrls?: string[]
|
|
contextType?: TimelineGeneralContextContextType
|
|
landingUrl?: SocialContextLandingUrl
|
|
text?: string
|
|
type?: SocialContextUnionType
|
|
}
|
|
|
|
export type TimelineTopicContextFunctionalityType =
|
|
(typeof TimelineTopicContextFunctionalityType)[keyof typeof TimelineTopicContextFunctionalityType]
|
|
|
|
export const TimelineTopicContextFunctionalityType = {
|
|
Basic: 'Basic',
|
|
} as const
|
|
|
|
export interface TopicContext {
|
|
description?: string
|
|
following?: boolean
|
|
icon_url?: string
|
|
id?: string
|
|
name?: string
|
|
not_interested?: boolean
|
|
topic_id?: string
|
|
}
|
|
|
|
export interface TimelineTopicContext {
|
|
functionalityType?: TimelineTopicContextFunctionalityType
|
|
topic?: TopicContext
|
|
type?: SocialContextUnionType
|
|
}
|
|
|
|
export type SocialContextUnion = TimelineGeneralContext | TimelineTopicContext
|
|
|
|
export type TimelineTweetTweetDisplayType =
|
|
(typeof TimelineTweetTweetDisplayType)[keyof typeof TimelineTweetTweetDisplayType]
|
|
|
|
export const TimelineTweetTweetDisplayType = {
|
|
Tweet: 'Tweet',
|
|
SelfThread: 'SelfThread',
|
|
MediaGrid: 'MediaGrid',
|
|
CondensedTweet: 'CondensedTweet',
|
|
} as const
|
|
|
|
export interface ArticleCoverMediaColorInfoPaletteRGB {
|
|
blue: number
|
|
green: number
|
|
red: number
|
|
}
|
|
|
|
export interface ArticleCoverMediaColorInfoPalette {
|
|
percentage: number
|
|
rgb: ArticleCoverMediaColorInfoPaletteRGB
|
|
}
|
|
|
|
export interface ArticleCoverMediaColorInfo {
|
|
palette: ArticleCoverMediaColorInfoPalette[]
|
|
}
|
|
|
|
export interface ArticleCoverMediaInfo {
|
|
__typename?: TypeName
|
|
color_info: ArticleCoverMediaColorInfo
|
|
original_img_height: number
|
|
original_img_url: string
|
|
original_img_width: number
|
|
}
|
|
|
|
export interface ArticleCoverMedia {
|
|
id: string
|
|
/** @pattern ^[0-9]+$ */
|
|
media_id: string
|
|
media_info: ArticleCoverMediaInfo
|
|
media_key: string
|
|
}
|
|
|
|
export interface ArticleLifecycleState {
|
|
modified_at_secs: number
|
|
}
|
|
|
|
export interface ArticleMetadata {
|
|
first_published_at_secs: number
|
|
}
|
|
|
|
export type ArticleResultContentState = { [key: string]: unknown }
|
|
|
|
export interface ArticleResult {
|
|
content_state?: ArticleResultContentState
|
|
cover_media?: ArticleCoverMedia
|
|
id: string
|
|
is_grok_summary_eligible?: boolean
|
|
lifecycle_state?: ArticleLifecycleState
|
|
media_entities?: ArticleCoverMedia[]
|
|
metadata: ArticleMetadata
|
|
preview_text: string
|
|
/** @pattern ^[0-9]+$ */
|
|
rest_id: string
|
|
title: string
|
|
}
|
|
|
|
export interface ArticleResults {
|
|
result: ArticleResult
|
|
}
|
|
|
|
export interface Article {
|
|
article_results: ArticleResults
|
|
}
|
|
|
|
export type CommunityDeleteActionResultReason =
|
|
(typeof CommunityDeleteActionResultReason)[keyof typeof CommunityDeleteActionResultReason]
|
|
|
|
export const CommunityDeleteActionResultReason = {
|
|
Unavailable: 'Unavailable',
|
|
} as const
|
|
|
|
export interface CommunityDeleteActionResult {
|
|
__typename: TypeName
|
|
reason: CommunityDeleteActionResultReason
|
|
}
|
|
|
|
export type _CommunityJoinActionTypename =
|
|
(typeof _CommunityJoinActionTypename)[keyof typeof _CommunityJoinActionTypename]
|
|
|
|
export const _CommunityJoinActionTypename = {
|
|
CommunityJoinAction: 'CommunityJoinAction',
|
|
} as const
|
|
|
|
export interface CommunityJoinAction {
|
|
__typename: _CommunityJoinActionTypename
|
|
}
|
|
|
|
export type _CommunityJoinActionUnavailableTypename =
|
|
(typeof _CommunityJoinActionUnavailableTypename)[keyof typeof _CommunityJoinActionUnavailableTypename]
|
|
|
|
export const _CommunityJoinActionUnavailableTypename = {
|
|
CommunityJoinActionUnavailable: 'CommunityJoinActionUnavailable',
|
|
} as const
|
|
|
|
export type CommunityJoinActionUnavailableReason =
|
|
(typeof CommunityJoinActionUnavailableReason)[keyof typeof CommunityJoinActionUnavailableReason]
|
|
|
|
export const CommunityJoinActionUnavailableReason = {
|
|
ViewerRequestRequired: 'ViewerRequestRequired',
|
|
} as const
|
|
|
|
export interface CommunityJoinActionUnavailable {
|
|
__typename: _CommunityJoinActionUnavailableTypename
|
|
message: string
|
|
reason: CommunityJoinActionUnavailableReason
|
|
}
|
|
|
|
export type CommunityJoinActionResultUnion =
|
|
| CommunityJoinAction
|
|
| CommunityJoinActionUnavailable
|
|
|
|
export type CommunityLeaveActionResultReason =
|
|
(typeof CommunityLeaveActionResultReason)[keyof typeof CommunityLeaveActionResultReason]
|
|
|
|
export const CommunityLeaveActionResultReason = {
|
|
ViewerNotMember: 'ViewerNotMember',
|
|
} as const
|
|
|
|
export interface CommunityLeaveActionResult {
|
|
__typename: TypeName
|
|
message: string
|
|
reason: CommunityLeaveActionResultReason
|
|
}
|
|
|
|
export interface CommunityPinActionResult {
|
|
__typename: TypeName
|
|
}
|
|
|
|
export interface CommunityUnpinActionResult {
|
|
__typename: TypeName
|
|
}
|
|
|
|
export interface CommunityActions {
|
|
delete_action_result?: CommunityDeleteActionResult
|
|
join_action_result?: CommunityJoinActionResultUnion
|
|
leave_action_result?: CommunityLeaveActionResult
|
|
pin_action_result?: CommunityPinActionResult
|
|
unpin_action_result?: CommunityUnpinActionResult
|
|
}
|
|
|
|
export interface UserAvatar {
|
|
image_url: string
|
|
}
|
|
|
|
/**
|
|
* @pattern ^(Sun|Mon|Tue|Wed|Thu|Fri|Sat) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (0[1-9]|[12][0-9]|3[01]) (0[0-9]|1[0-9]|2[0-3])(: ?)([0-5][0-9])(: ?)([0-5][0-9]) ([+-][0-9]{4}) ([0-9]{4})$
|
|
*/
|
|
export type TwitterTimeFormat = string
|
|
|
|
export interface UserCore {
|
|
created_at: TwitterTimeFormat
|
|
name: string
|
|
screen_name: string
|
|
}
|
|
|
|
export interface UserDmPermissions {
|
|
can_dm: boolean
|
|
}
|
|
|
|
export interface UserHighlightsInfo {
|
|
can_highlight_tweets: boolean
|
|
highlighted_tweets: string
|
|
}
|
|
|
|
export type UserLegacyVerifiedType =
|
|
(typeof UserLegacyVerifiedType)[keyof typeof UserLegacyVerifiedType]
|
|
|
|
export const UserLegacyVerifiedType = {
|
|
Business: 'Business',
|
|
Government: 'Government',
|
|
} as const
|
|
|
|
export type UserLegacyEntities = { [key: string]: unknown }
|
|
|
|
export type UserLegacyProfileBannerExtensions = { [key: string]: unknown }
|
|
|
|
export type UserLegacyProfileImageExtensions = { [key: string]: unknown }
|
|
|
|
export interface UserLegacy {
|
|
blocked_by?: boolean
|
|
blocking?: boolean
|
|
can_dm?: boolean
|
|
can_media_tag?: boolean
|
|
created_at?: TwitterTimeFormat
|
|
default_profile: boolean
|
|
default_profile_image: boolean
|
|
description: string
|
|
entities: UserLegacyEntities
|
|
fast_followers_count: number
|
|
favourites_count: number
|
|
follow_request_sent?: boolean
|
|
followed_by?: boolean
|
|
followers_count: number
|
|
following?: boolean
|
|
friends_count: number
|
|
has_custom_timelines: boolean
|
|
is_translator: boolean
|
|
listed_count: number
|
|
location?: string
|
|
media_count: number
|
|
muting?: boolean
|
|
name?: string
|
|
normal_followers_count: number
|
|
notifications?: boolean
|
|
pinned_tweet_ids_str?: string[]
|
|
possibly_sensitive: boolean
|
|
profile_banner_extensions?: UserLegacyProfileBannerExtensions
|
|
profile_banner_url?: string
|
|
profile_image_extensions?: UserLegacyProfileImageExtensions
|
|
profile_image_url_https?: string
|
|
profile_interstitial_type: string
|
|
protected?: boolean
|
|
screen_name?: string
|
|
statuses_count: number
|
|
time_zone: string
|
|
translator_type: string
|
|
url?: string
|
|
utc_offset: number
|
|
verified?: boolean
|
|
verified_type?: UserLegacyVerifiedType
|
|
want_retweets?: boolean
|
|
withheld_description: string
|
|
withheld_in_countries?: string[]
|
|
withheld_scope: string
|
|
}
|
|
|
|
export type UserLegacyExtendedProfileBirthdateVisibility =
|
|
(typeof UserLegacyExtendedProfileBirthdateVisibility)[keyof typeof UserLegacyExtendedProfileBirthdateVisibility]
|
|
|
|
export const UserLegacyExtendedProfileBirthdateVisibility = {
|
|
Self: 'Self',
|
|
Public: 'Public',
|
|
MutualFollow: 'MutualFollow',
|
|
Followers: 'Followers',
|
|
Following: 'Following',
|
|
} as const
|
|
|
|
export type UserLegacyExtendedProfileBirthdateYearVisibility =
|
|
(typeof UserLegacyExtendedProfileBirthdateYearVisibility)[keyof typeof UserLegacyExtendedProfileBirthdateYearVisibility]
|
|
|
|
export const UserLegacyExtendedProfileBirthdateYearVisibility = {
|
|
Self: 'Self',
|
|
Public: 'Public',
|
|
MutualFollow: 'MutualFollow',
|
|
Followers: 'Followers',
|
|
Following: 'Following',
|
|
} as const
|
|
|
|
export interface UserLegacyExtendedProfileBirthdate {
|
|
day: number
|
|
month: number
|
|
visibility: UserLegacyExtendedProfileBirthdateVisibility
|
|
year?: number
|
|
year_visibility: UserLegacyExtendedProfileBirthdateYearVisibility
|
|
}
|
|
|
|
export interface UserLegacyExtendedProfile {
|
|
birthdate?: UserLegacyExtendedProfileBirthdate
|
|
}
|
|
|
|
export interface UserLocation {
|
|
location: string
|
|
}
|
|
|
|
export interface UserMediaPermissions {
|
|
can_media_tag: boolean
|
|
}
|
|
|
|
export type UserParodyCommentaryFanLabel =
|
|
(typeof UserParodyCommentaryFanLabel)[keyof typeof UserParodyCommentaryFanLabel]
|
|
|
|
export const UserParodyCommentaryFanLabel = {
|
|
None: 'None',
|
|
Parody: 'Parody',
|
|
Commentary: 'Commentary',
|
|
Fan: 'Fan',
|
|
} as const
|
|
|
|
export interface UserPrivacy {
|
|
protected: boolean
|
|
}
|
|
|
|
export interface UserProfessionalCategory {
|
|
icon_name: string
|
|
id: number
|
|
name: string
|
|
}
|
|
|
|
export type UserProfessionalProfessionalType =
|
|
(typeof UserProfessionalProfessionalType)[keyof typeof UserProfessionalProfessionalType]
|
|
|
|
export const UserProfessionalProfessionalType = {
|
|
Business: 'Business',
|
|
Creator: 'Creator',
|
|
} as const
|
|
|
|
export interface UserProfessional {
|
|
category?: UserProfessionalCategory[]
|
|
professional_type: UserProfessionalProfessionalType
|
|
/** @pattern ^[0-9]+$ */
|
|
rest_id: string
|
|
}
|
|
|
|
export interface ProfileBio {
|
|
description: string
|
|
}
|
|
|
|
export type UserProfileImageShape =
|
|
(typeof UserProfileImageShape)[keyof typeof UserProfileImageShape]
|
|
|
|
export const UserProfileImageShape = {
|
|
Circle: 'Circle',
|
|
Square: 'Square',
|
|
Hexagon: 'Hexagon',
|
|
} as const
|
|
|
|
export interface UserRelationshipPerspectives {
|
|
blocked_by?: boolean
|
|
blocking?: boolean
|
|
followed_by?: boolean
|
|
following?: boolean
|
|
}
|
|
|
|
export interface SuperFollowUserProfile {
|
|
is_active: boolean
|
|
}
|
|
|
|
export interface UserProfile {
|
|
super_follows_user_profile: SuperFollowUserProfile
|
|
}
|
|
|
|
export interface UserTipJarSettings {
|
|
bandcamp_handle?: string
|
|
bitcoin_handle?: string
|
|
cash_app_handle?: string
|
|
ethereum_handle?: string
|
|
gofundme_handle?: string
|
|
is_enabled?: boolean
|
|
patreon_handle?: string
|
|
pay_pal_handle?: string
|
|
venmo_handle?: string
|
|
}
|
|
|
|
export type UserVerificationVerifiedType =
|
|
(typeof UserVerificationVerifiedType)[keyof typeof UserVerificationVerifiedType]
|
|
|
|
export const UserVerificationVerifiedType = {
|
|
Business: 'Business',
|
|
Government: 'Government',
|
|
} as const
|
|
|
|
export interface UserVerification {
|
|
verified: boolean
|
|
verified_type?: UserVerificationVerifiedType
|
|
}
|
|
|
|
export type UserVerificationInfoReasonDescriptionEntitiesRefUrlType =
|
|
(typeof UserVerificationInfoReasonDescriptionEntitiesRefUrlType)[keyof typeof UserVerificationInfoReasonDescriptionEntitiesRefUrlType]
|
|
|
|
export const UserVerificationInfoReasonDescriptionEntitiesRefUrlType = {
|
|
ExternalUrl: 'ExternalUrl',
|
|
} as const
|
|
|
|
export interface UserVerificationInfoReasonDescriptionEntitiesRef {
|
|
url: string
|
|
url_type: UserVerificationInfoReasonDescriptionEntitiesRefUrlType
|
|
}
|
|
|
|
export interface UserVerificationInfoReasonDescriptionEntities {
|
|
from_index: number
|
|
ref: UserVerificationInfoReasonDescriptionEntitiesRef
|
|
to_index: number
|
|
}
|
|
|
|
export interface UserVerificationInfoReasonDescription {
|
|
entities: UserVerificationInfoReasonDescriptionEntities[]
|
|
text: string
|
|
}
|
|
|
|
export interface UserVerificationInfoReason {
|
|
description: UserVerificationInfoReasonDescription
|
|
override_verified_year?: number
|
|
/** @pattern ^-?[0-9]+$ */
|
|
verified_since_msec: string
|
|
}
|
|
|
|
export interface UserVerificationInfo {
|
|
is_identity_verified: boolean
|
|
reason?: UserVerificationInfoReason
|
|
}
|
|
|
|
export type UserAffiliatesHighlightedLabel = { [key: string]: unknown }
|
|
|
|
export type UserBusinessAccount = { [key: string]: unknown }
|
|
|
|
export interface User {
|
|
__typename: TypeName
|
|
affiliates_highlighted_label?: UserAffiliatesHighlightedLabel
|
|
avatar?: UserAvatar
|
|
business_account?: UserBusinessAccount
|
|
core?: UserCore
|
|
creator_subscriptions_count?: number
|
|
dm_permissions?: UserDmPermissions
|
|
has_graduated_access?: boolean
|
|
has_hidden_likes_on_profile?: boolean
|
|
has_hidden_subscriptions_on_profile?: boolean
|
|
has_nft_avatar?: boolean
|
|
highlights_info?: UserHighlightsInfo
|
|
/** @pattern ^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)?$ */
|
|
id: string
|
|
is_blue_verified: boolean
|
|
is_profile_translatable?: boolean
|
|
legacy: UserLegacy
|
|
legacy_extended_profile?: UserLegacyExtendedProfile
|
|
location?: UserLocation
|
|
media_permissions?: UserMediaPermissions
|
|
parody_commentary_fan_label?: UserParodyCommentaryFanLabel
|
|
premium_gifting_eligible?: boolean
|
|
privacy?: UserPrivacy
|
|
professional?: UserProfessional
|
|
profile_bio?: ProfileBio
|
|
profile_description_language?: string
|
|
profile_image_shape: UserProfileImageShape
|
|
profile_sort_enabled?: boolean
|
|
relationship_perspectives?: UserRelationshipPerspectives
|
|
/** @pattern ^[0-9]+$ */
|
|
rest_id: string
|
|
super_follow_eligible?: boolean
|
|
super_followed_by?: boolean
|
|
super_following?: boolean
|
|
super_follows_user_profile?: UserProfile
|
|
tipjar_settings?: UserTipJarSettings
|
|
user_seed_tweet_count?: number
|
|
verification?: UserVerification
|
|
verification_info?: UserVerificationInfo
|
|
verified_user_profiles?: UserProfile
|
|
}
|
|
|
|
export interface UserUnavailable {
|
|
__typename: TypeName
|
|
message?: string
|
|
reason: string
|
|
}
|
|
|
|
export type UserUnion = User | UserUnavailable
|
|
|
|
export interface UserResults {
|
|
result?: UserUnion
|
|
}
|
|
|
|
export type CommunityInvitesPolicy =
|
|
(typeof CommunityInvitesPolicy)[keyof typeof CommunityInvitesPolicy]
|
|
|
|
export const CommunityInvitesPolicy = {
|
|
MemberInvitesAllowed: 'MemberInvitesAllowed',
|
|
ModeratorInvitesAllowed: 'ModeratorInvitesAllowed',
|
|
} as const
|
|
|
|
export type CommunityInvitesResultReason =
|
|
(typeof CommunityInvitesResultReason)[keyof typeof CommunityInvitesResultReason]
|
|
|
|
export const CommunityInvitesResultReason = {
|
|
Unavailable: 'Unavailable',
|
|
} as const
|
|
|
|
export interface CommunityInvitesResult {
|
|
__typename: TypeName
|
|
message: string
|
|
reason: CommunityInvitesResultReason
|
|
}
|
|
|
|
export type CommunityJoinPolicy =
|
|
(typeof CommunityJoinPolicy)[keyof typeof CommunityJoinPolicy]
|
|
|
|
export const CommunityJoinPolicy = {
|
|
Open: 'Open',
|
|
RestrictedJoinRequestsRequireModeratorApproval:
|
|
'RestrictedJoinRequestsRequireModeratorApproval',
|
|
} as const
|
|
|
|
export interface CommunityJoinRequestsResult {
|
|
__typename: TypeName
|
|
}
|
|
|
|
export interface PrimaryCommunityTopic {
|
|
/** @pattern ^[0-9]+$ */
|
|
topic_id: string
|
|
topic_name: string
|
|
}
|
|
|
|
export type CommunityRole = (typeof CommunityRole)[keyof typeof CommunityRole]
|
|
|
|
export const CommunityRole = {
|
|
NonMember: 'NonMember',
|
|
} as const
|
|
|
|
export interface CommunityRule {
|
|
description?: string
|
|
name: string
|
|
/** @pattern ^[0-9]+$ */
|
|
rest_id: string
|
|
}
|
|
|
|
export interface CommunityUrlsPermalink {
|
|
url: string
|
|
}
|
|
|
|
export interface CommunityUrls {
|
|
permalink: CommunityUrlsPermalink
|
|
}
|
|
|
|
export type CommunityCustomBannerMedia = { [key: string]: unknown }
|
|
|
|
export type CommunityDefaultBannerMedia = { [key: string]: unknown }
|
|
|
|
export type CommunityViewerRelationship = { [key: string]: unknown }
|
|
|
|
export interface Community {
|
|
__typename: TypeName
|
|
actions?: CommunityActions
|
|
admin_results?: UserResults
|
|
created_at?: number
|
|
creator_results?: UserResults
|
|
custom_banner_media?: CommunityCustomBannerMedia
|
|
default_banner_media?: CommunityDefaultBannerMedia
|
|
description?: string
|
|
/** @pattern ^[0-9]+$ */
|
|
id_str?: string
|
|
invites_policy?: CommunityInvitesPolicy
|
|
invites_result?: CommunityInvitesResult
|
|
is_pinned?: boolean
|
|
join_policy?: CommunityJoinPolicy
|
|
join_requests_result?: CommunityJoinRequestsResult
|
|
member_count?: number
|
|
members_facepile_results?: UserResults[]
|
|
moderator_count?: number
|
|
name?: string
|
|
primary_community_topic?: PrimaryCommunityTopic
|
|
question?: string
|
|
role?: CommunityRole
|
|
rules?: CommunityRule[]
|
|
search_tags?: string[]
|
|
show_only_users_to_display?: string[]
|
|
urls?: CommunityUrls
|
|
viewer_relationship?: CommunityViewerRelationship
|
|
}
|
|
|
|
export interface CommunityUnavailable {
|
|
__typename: TypeName
|
|
}
|
|
|
|
export type CommunityUnion = Community | CommunityUnavailable
|
|
|
|
export interface CommunityResult {
|
|
result: CommunityUnion
|
|
}
|
|
|
|
export type AuthorCommunityRelationshipRole =
|
|
(typeof AuthorCommunityRelationshipRole)[keyof typeof AuthorCommunityRelationshipRole]
|
|
|
|
export const AuthorCommunityRelationshipRole = {
|
|
Member: 'Member',
|
|
Moderator: 'Moderator',
|
|
Admin: 'Admin',
|
|
NonMember: 'NonMember',
|
|
} as const
|
|
|
|
export interface AuthorCommunityRelationship {
|
|
community_results: CommunityResult
|
|
role?: AuthorCommunityRelationshipRole
|
|
user_results?: UserResults
|
|
}
|
|
|
|
export interface BirdwatchPivotCallToAction {
|
|
destinationUrl: string
|
|
prompt: string
|
|
title: string
|
|
}
|
|
|
|
export type BirdwatchEntityRefType =
|
|
(typeof BirdwatchEntityRefType)[keyof typeof BirdwatchEntityRefType]
|
|
|
|
export const BirdwatchEntityRefType = {
|
|
TimelineUrl: 'TimelineUrl',
|
|
TimelineRichTextHashtag: 'TimelineRichTextHashtag',
|
|
} as const
|
|
|
|
export type BirdwatchEntityRefUrlType =
|
|
(typeof BirdwatchEntityRefUrlType)[keyof typeof BirdwatchEntityRefUrlType]
|
|
|
|
export const BirdwatchEntityRefUrlType = {
|
|
ExternalUrl: 'ExternalUrl',
|
|
} as const
|
|
|
|
export interface BirdwatchEntityRef {
|
|
text?: string
|
|
type: BirdwatchEntityRefType
|
|
url?: string
|
|
urlType?: BirdwatchEntityRefUrlType
|
|
}
|
|
|
|
export interface BirdwatchEntity {
|
|
fromIndex: number
|
|
ref: BirdwatchEntityRef
|
|
toIndex: number
|
|
}
|
|
|
|
export interface BirdwatchPivotFooter {
|
|
entities: BirdwatchEntity[]
|
|
text: string
|
|
}
|
|
|
|
export type BirdwatchPivotFooterIconType =
|
|
(typeof BirdwatchPivotFooterIconType)[keyof typeof BirdwatchPivotFooterIconType]
|
|
|
|
export const BirdwatchPivotFooterIconType = {
|
|
BirdwatchEyeOff: 'BirdwatchEyeOff',
|
|
} as const
|
|
|
|
export type BirdwatchPivotIconType =
|
|
(typeof BirdwatchPivotIconType)[keyof typeof BirdwatchPivotIconType]
|
|
|
|
export const BirdwatchPivotIconType = {
|
|
BirdwatchV1Icon: 'BirdwatchV1Icon',
|
|
BirdwatchCameraVideo: 'BirdwatchCameraVideo',
|
|
} as const
|
|
|
|
export type GrokEntityRefType =
|
|
(typeof GrokEntityRefType)[keyof typeof GrokEntityRefType]
|
|
|
|
export const GrokEntityRefType = {
|
|
TimelineUrl: 'TimelineUrl',
|
|
TimelineRichTextHashtag: 'TimelineRichTextHashtag',
|
|
} as const
|
|
|
|
export type GrokEntityRefUrlType =
|
|
(typeof GrokEntityRefUrlType)[keyof typeof GrokEntityRefUrlType]
|
|
|
|
export const GrokEntityRefUrlType = {
|
|
ExternalUrl: 'ExternalUrl',
|
|
} as const
|
|
|
|
export interface GrokEntityRef {
|
|
display_url?: string
|
|
expanded_url?: string
|
|
text?: string
|
|
type: GrokEntityRefType
|
|
url?: string
|
|
url_type?: GrokEntityRefUrlType
|
|
}
|
|
|
|
export interface GrokEntity {
|
|
from_index: string
|
|
ref: GrokEntityRef
|
|
to_index: string
|
|
}
|
|
|
|
export interface GrokTranslatedCommunityNote {
|
|
destination_language: string
|
|
rich_text_entities?: GrokEntity[]
|
|
source_language: string
|
|
translation: string
|
|
translation_available: boolean
|
|
}
|
|
|
|
export interface GrokTranslatedCommunityNoteWithAvailability {
|
|
data?: GrokTranslatedCommunityNote
|
|
is_available: boolean
|
|
}
|
|
|
|
export interface BirdwatchPivotNote {
|
|
grok_translated_community_note_with_availability?: GrokTranslatedCommunityNoteWithAvailability
|
|
is_community_note_translatable?: boolean
|
|
language?: string
|
|
/** @pattern ^[0-9]+$ */
|
|
rest_id: string
|
|
}
|
|
|
|
export interface BirdwatchPivotSubtitle {
|
|
entities: BirdwatchEntity[]
|
|
text: string
|
|
}
|
|
|
|
export type BirdwatchPivotVisualStyle =
|
|
(typeof BirdwatchPivotVisualStyle)[keyof typeof BirdwatchPivotVisualStyle]
|
|
|
|
export const BirdwatchPivotVisualStyle = {
|
|
Default: 'Default',
|
|
Tentative: 'Tentative',
|
|
} as const
|
|
|
|
export interface BirdwatchPivot {
|
|
callToAction?: BirdwatchPivotCallToAction
|
|
destinationUrl: string
|
|
footer?: BirdwatchPivotFooter
|
|
footerIconType?: BirdwatchPivotFooterIconType
|
|
iconType: BirdwatchPivotIconType
|
|
note?: BirdwatchPivotNote
|
|
shorttitle?: string
|
|
subtitle?: BirdwatchPivotSubtitle
|
|
title: string
|
|
titleDetail?: string
|
|
visualStyle?: BirdwatchPivotVisualStyle
|
|
}
|
|
|
|
export interface TweetCardLegacyBindingValueDataImage {
|
|
alt?: string
|
|
height: number
|
|
url: string
|
|
width: number
|
|
}
|
|
|
|
export interface UserValue {
|
|
/** @pattern ^[0-9]+$ */
|
|
id_str: string
|
|
}
|
|
|
|
export type TweetCardLegacyBindingValueDataImageColorValue = {
|
|
[key: string]: unknown
|
|
}
|
|
|
|
export interface TweetCardLegacyBindingValueData {
|
|
boolean_value?: boolean
|
|
image_color_value?: TweetCardLegacyBindingValueDataImageColorValue
|
|
image_value?: TweetCardLegacyBindingValueDataImage
|
|
scribe_key?: string
|
|
string_value?: string
|
|
type: string
|
|
user_value?: UserValue
|
|
}
|
|
|
|
export interface TweetCardLegacyBindingValue {
|
|
key: string
|
|
value: TweetCardLegacyBindingValueData
|
|
}
|
|
|
|
export type TweetCardPlatformAudienceName =
|
|
(typeof TweetCardPlatformAudienceName)[keyof typeof TweetCardPlatformAudienceName]
|
|
|
|
export const TweetCardPlatformAudienceName = {
|
|
production: 'production',
|
|
} as const
|
|
|
|
export interface TweetCardPlatformAudience {
|
|
name: TweetCardPlatformAudienceName
|
|
}
|
|
|
|
export interface TweetCardPlatformDevice {
|
|
name: string
|
|
/** @pattern ^[0-9]+$ */
|
|
version: string
|
|
}
|
|
|
|
export interface TweetCardPlatform {
|
|
audience: TweetCardPlatformAudience
|
|
device: TweetCardPlatformDevice
|
|
}
|
|
|
|
export interface TweetCardPlatformData {
|
|
platform: TweetCardPlatform
|
|
}
|
|
|
|
export interface TweetCardLegacy {
|
|
binding_values: TweetCardLegacyBindingValue[]
|
|
card_platform?: TweetCardPlatformData
|
|
name: string
|
|
url: string
|
|
user_refs_results?: UserResults[]
|
|
}
|
|
|
|
export interface TweetCard {
|
|
legacy?: TweetCardLegacy
|
|
rest_id?: string
|
|
}
|
|
|
|
export type CommunityRelationshipModerationState = { [key: string]: unknown }
|
|
|
|
export interface CommunityRelationship {
|
|
actions: CommunityActions
|
|
id: string
|
|
moderation_state: CommunityRelationshipModerationState
|
|
/** @pattern ^[0-9]+$ */
|
|
rest_id: string
|
|
}
|
|
|
|
export interface ContentDisclosureAdvertisingDisclosure {
|
|
is_paid_promotion: boolean
|
|
}
|
|
|
|
export type ContentDisclosureAiGeneratedDisclosureAiGeneratedDetectionSource =
|
|
(typeof ContentDisclosureAiGeneratedDisclosureAiGeneratedDetectionSource)[keyof typeof ContentDisclosureAiGeneratedDisclosureAiGeneratedDetectionSource]
|
|
|
|
export const ContentDisclosureAiGeneratedDisclosureAiGeneratedDetectionSource =
|
|
{
|
|
C2paClient: 'C2paClient',
|
|
ContentDisclosureAiGeneratedDisclosure:
|
|
'ContentDisclosureAiGeneratedDisclosure',
|
|
UserDeclared: 'UserDeclared',
|
|
} as const
|
|
|
|
export interface ContentDisclosureAiGeneratedDisclosure {
|
|
ai_generated_detection_source?: ContentDisclosureAiGeneratedDisclosureAiGeneratedDetectionSource
|
|
can_edit: boolean
|
|
has_ai_generated_media: boolean
|
|
}
|
|
|
|
export interface ContentDisclosure {
|
|
advertising_disclosure?: ContentDisclosureAdvertisingDisclosure
|
|
ai_generated_disclosure?: ContentDisclosureAiGeneratedDisclosure
|
|
}
|
|
|
|
export interface UserResultCore {
|
|
user_results: UserResults
|
|
}
|
|
|
|
export interface TweetEditControlInitial {
|
|
/** @items.pattern ^[0-9]+$ */
|
|
edit_tweet_ids: string[]
|
|
/** @pattern ^[0-9]+$ */
|
|
editable_until_msecs: string
|
|
/** @pattern ^[0-9]+$ */
|
|
edits_remaining: string
|
|
is_edit_eligible: boolean
|
|
}
|
|
|
|
export interface TweetEditControl {
|
|
edit_control_initial?: TweetEditControlInitial
|
|
/** @items.pattern ^[0-9]+$ */
|
|
edit_tweet_ids?: string[]
|
|
/** @pattern ^[0-9]+$ */
|
|
editable_until_msecs?: string
|
|
/** @pattern ^[0-9]+$ */
|
|
edits_remaining?: string
|
|
/** @pattern ^[0-9]+$ */
|
|
initial_tweet_id?: string
|
|
is_edit_eligible?: boolean
|
|
}
|
|
|
|
export interface TweetEditPrespective {
|
|
favorited?: boolean
|
|
retweeted?: boolean
|
|
}
|
|
|
|
export interface GrokAnnotation {
|
|
is_image_editable_by_grok?: boolean
|
|
}
|
|
|
|
export interface AnalysisResults {
|
|
result: Tweet
|
|
}
|
|
|
|
export type GrokShareAttachmentItemDeepsearchHeadersItem = {
|
|
[key: string]: unknown
|
|
}
|
|
|
|
export interface GrokShareAttachmentItem {
|
|
analysis_post_id_results?: AnalysisResults
|
|
deepsearch_headers?: GrokShareAttachmentItemDeepsearchHeadersItem[]
|
|
media_urls: string[]
|
|
message: string
|
|
}
|
|
|
|
export interface GrokShareAttachment {
|
|
items: GrokShareAttachmentItem[]
|
|
}
|
|
|
|
export interface Hashtag {
|
|
[key: string]: unknown
|
|
}
|
|
|
|
export interface AdditionalMediaInfoCallToActionsUrl {
|
|
url: string
|
|
}
|
|
|
|
export interface AdditionalMediaInfoCallToActions {
|
|
visit_site?: AdditionalMediaInfoCallToActionsUrl
|
|
watch_now?: AdditionalMediaInfoCallToActionsUrl
|
|
}
|
|
|
|
export interface AdditionalMediaInfo {
|
|
call_to_actions?: AdditionalMediaInfoCallToActions
|
|
description?: string
|
|
embeddable?: boolean
|
|
monetizable: boolean
|
|
source_user?: UserResultCore
|
|
title?: string
|
|
}
|
|
|
|
export interface AllowDownloadStatus {
|
|
allow_download?: boolean
|
|
}
|
|
|
|
export type ExtMediaAvailabilityStatus =
|
|
(typeof ExtMediaAvailabilityStatus)[keyof typeof ExtMediaAvailabilityStatus]
|
|
|
|
export const ExtMediaAvailabilityStatus = {
|
|
Available: 'Available',
|
|
Unavailable: 'Unavailable',
|
|
} as const
|
|
|
|
export interface ExtMediaAvailability {
|
|
reason?: string
|
|
status?: ExtMediaAvailabilityStatus
|
|
}
|
|
|
|
export interface GrokImageAnnotation {
|
|
prompt: string
|
|
upsampled_prompt: string
|
|
}
|
|
|
|
export interface MediaResult {
|
|
grok_image_annotation?: GrokImageAnnotation
|
|
media_key: string
|
|
}
|
|
|
|
export interface MediaResults {
|
|
result: MediaResult
|
|
}
|
|
|
|
export interface MediaOriginalInfoFocusRect {
|
|
h: number
|
|
w: number
|
|
x: number
|
|
y: number
|
|
}
|
|
|
|
export interface MediaOriginalInfo {
|
|
focus_rects?: MediaOriginalInfoFocusRect[]
|
|
height: number
|
|
width: number
|
|
}
|
|
|
|
export interface SensitiveMediaWarning {
|
|
adult_content?: boolean
|
|
graphic_violence?: boolean
|
|
other?: boolean
|
|
}
|
|
|
|
export type MediaSizeResize =
|
|
(typeof MediaSizeResize)[keyof typeof MediaSizeResize]
|
|
|
|
export const MediaSizeResize = {
|
|
crop: 'crop',
|
|
fit: 'fit',
|
|
} as const
|
|
|
|
export interface MediaSize {
|
|
h: number
|
|
resize: MediaSizeResize
|
|
w: number
|
|
}
|
|
|
|
export interface MediaSizes {
|
|
large: MediaSize
|
|
medium: MediaSize
|
|
small: MediaSize
|
|
thumb: MediaSize
|
|
}
|
|
|
|
export type MediaType = (typeof MediaType)[keyof typeof MediaType]
|
|
|
|
export const MediaType = {
|
|
photo: 'photo',
|
|
video: 'video',
|
|
animated_gif: 'animated_gif',
|
|
} as const
|
|
|
|
export interface MediaVideoInfoVariant {
|
|
bitrate?: number
|
|
content_type: string
|
|
url: string
|
|
}
|
|
|
|
export interface MediaVideoInfo {
|
|
aspect_ratio: number[]
|
|
duration_millis?: number
|
|
variants: MediaVideoInfoVariant[]
|
|
}
|
|
|
|
export type MediaFeatures = { [key: string]: unknown }
|
|
|
|
export interface Media {
|
|
additional_media_info?: AdditionalMediaInfo
|
|
allow_download_status?: AllowDownloadStatus
|
|
display_url: string
|
|
expanded_url: string
|
|
ext_alt_text?: string
|
|
ext_media_availability: ExtMediaAvailability
|
|
features?: MediaFeatures
|
|
grok_post_id?: string
|
|
/** @pattern ^[0-9]+$ */
|
|
id_str: string
|
|
indices: number[]
|
|
media_key: string
|
|
media_results?: MediaResults
|
|
media_url_https: string
|
|
original_info: MediaOriginalInfo
|
|
sensitive_media_warning?: SensitiveMediaWarning
|
|
sizes: MediaSizes
|
|
/** @pattern ^[0-9]+$ */
|
|
source_status_id_str?: string
|
|
/** @pattern ^[0-9]+$ */
|
|
source_user_id_str?: string
|
|
type: MediaType
|
|
url: string
|
|
video_info?: MediaVideoInfo
|
|
}
|
|
|
|
export type SmarttagTagInfo = { [key: string]: unknown }
|
|
|
|
export interface SmarttagTag {
|
|
info: SmarttagTagInfo
|
|
}
|
|
|
|
export interface Smarttag {
|
|
indices: number[]
|
|
tag: SmarttagTag
|
|
text: string
|
|
}
|
|
|
|
export interface Symbol {
|
|
[key: string]: unknown
|
|
}
|
|
|
|
export interface Timestamp {
|
|
indices: number[]
|
|
seconds: number
|
|
text: string
|
|
}
|
|
|
|
export interface Url {
|
|
display_url: string
|
|
expanded_url?: string
|
|
indices: number[]
|
|
url: string
|
|
}
|
|
|
|
export interface UserMention {
|
|
[key: string]: unknown
|
|
}
|
|
|
|
export interface Entities {
|
|
hashtags?: Hashtag[]
|
|
media?: Media[]
|
|
smarttags?: Smarttag[]
|
|
symbols?: Symbol[]
|
|
timestamps?: Timestamp[]
|
|
urls?: Url[]
|
|
user_mentions?: UserMention[]
|
|
}
|
|
|
|
export type GrokTranslatedPostAssociatedData = { [key: string]: unknown }
|
|
|
|
export interface GrokTranslatedPost {
|
|
associated_data?: GrokTranslatedPostAssociatedData
|
|
destination_language?: string
|
|
entities?: Entities
|
|
preview_translation?: string
|
|
source_language?: string
|
|
translation?: string
|
|
}
|
|
|
|
export interface GrokTranslatedPostWithAvailability {
|
|
data?: GrokTranslatedPost
|
|
is_available: boolean
|
|
}
|
|
|
|
export interface MediaStats {
|
|
viewCount: number
|
|
}
|
|
|
|
export type MediaExtendedType =
|
|
(typeof MediaExtendedType)[keyof typeof MediaExtendedType]
|
|
|
|
export const MediaExtendedType = {
|
|
photo: 'photo',
|
|
video: 'video',
|
|
animated_gif: 'animated_gif',
|
|
} as const
|
|
|
|
export type MediaExtendedFeatures = { [key: string]: unknown }
|
|
|
|
export interface MediaExtended {
|
|
additional_media_info?: AdditionalMediaInfo
|
|
allow_download_status?: AllowDownloadStatus
|
|
display_url: string
|
|
expanded_url: string
|
|
ext_alt_text?: string
|
|
ext_media_availability?: ExtMediaAvailability
|
|
features?: MediaExtendedFeatures
|
|
grok_post_id?: string
|
|
/** @pattern ^[0-9]+$ */
|
|
id_str: string
|
|
indices: number[]
|
|
mediaStats?: MediaStats
|
|
media_key: string
|
|
media_results?: MediaResults
|
|
media_url_https: string
|
|
original_info: MediaOriginalInfo
|
|
sensitive_media_warning?: SensitiveMediaWarning
|
|
sizes: MediaSizes
|
|
/** @pattern ^[0-9]+$ */
|
|
source_status_id_str?: string
|
|
/** @pattern ^[0-9]+$ */
|
|
source_user_id_str?: string
|
|
type: MediaExtendedType
|
|
url: string
|
|
video_info?: MediaVideoInfo
|
|
}
|
|
|
|
export interface ExtendedEntities {
|
|
media: MediaExtended[]
|
|
}
|
|
|
|
export type TweetLegacyLimitedActions =
|
|
(typeof TweetLegacyLimitedActions)[keyof typeof TweetLegacyLimitedActions]
|
|
|
|
export const TweetLegacyLimitedActions = {
|
|
limited_replies: 'limited_replies',
|
|
non_compliant: 'non_compliant',
|
|
dynamic_product_ad: 'dynamic_product_ad',
|
|
stale_tweet: 'stale_tweet',
|
|
community_tweet_non_member_public_community:
|
|
'community_tweet_non_member_public_community',
|
|
community_tweet_non_member_closed_community:
|
|
'community_tweet_non_member_closed_community',
|
|
blocked_viewer: 'blocked_viewer',
|
|
} as const
|
|
|
|
export interface QuotedStatusPermalink {
|
|
display: string
|
|
expanded: string
|
|
url: string
|
|
}
|
|
|
|
export interface TweetLegacyScopes {
|
|
followers: boolean
|
|
}
|
|
|
|
export interface SelfThread {
|
|
/** @pattern ^[0-9]+$ */
|
|
id_str: string
|
|
}
|
|
|
|
export type TweetLegacyConversationControl = { [key: string]: unknown }
|
|
|
|
export type TweetLegacyPlace = { [key: string]: unknown }
|
|
|
|
export interface TweetLegacy {
|
|
bookmark_count: number
|
|
bookmarked: boolean
|
|
conversation_control?: TweetLegacyConversationControl
|
|
/** @pattern ^[0-9]+$ */
|
|
conversation_id_str: string
|
|
created_at: TwitterTimeFormat
|
|
display_text_range: number[]
|
|
entities?: Entities
|
|
extended_entities?: ExtendedEntities
|
|
favorite_count: number
|
|
favorited: boolean
|
|
full_text: string
|
|
/** @pattern ^[0-9]+$ */
|
|
id_str: string
|
|
in_reply_to_screen_name?: string
|
|
/** @pattern ^[0-9]+$ */
|
|
in_reply_to_status_id_str?: string
|
|
/** @pattern ^[0-9]+$ */
|
|
in_reply_to_user_id_str?: string
|
|
is_quote_status: boolean
|
|
lang: string
|
|
limited_actions?: TweetLegacyLimitedActions
|
|
place?: TweetLegacyPlace
|
|
possibly_sensitive?: boolean
|
|
possibly_sensitive_editable?: boolean
|
|
quote_count: number
|
|
/** @pattern ^[0-9]+$ */
|
|
quoted_status_id_str?: string
|
|
quoted_status_permalink?: QuotedStatusPermalink
|
|
reply_count: number
|
|
retweet_count: number
|
|
retweeted: boolean
|
|
retweeted_status_result?: ItemResult
|
|
scopes?: TweetLegacyScopes
|
|
self_thread?: SelfThread
|
|
/** @pattern ^[0-9]+$ */
|
|
user_id_str: string
|
|
}
|
|
|
|
export interface NoteTweetResultMediaInlineMedia {
|
|
index: number
|
|
/** @pattern ^[0-9]+$ */
|
|
media_id: string
|
|
}
|
|
|
|
export interface NoteTweetResultMedia {
|
|
inline_media: NoteTweetResultMediaInlineMedia[]
|
|
}
|
|
|
|
export type NoteTweetResultRichTextTagRichtextTypesItem =
|
|
(typeof NoteTweetResultRichTextTagRichtextTypesItem)[keyof typeof NoteTweetResultRichTextTagRichtextTypesItem]
|
|
|
|
export const NoteTweetResultRichTextTagRichtextTypesItem = {
|
|
Bold: 'Bold',
|
|
Italic: 'Italic',
|
|
} as const
|
|
|
|
export interface NoteTweetResultRichTextTag {
|
|
from_index: number
|
|
richtext_types: NoteTweetResultRichTextTagRichtextTypesItem[]
|
|
to_index: number
|
|
}
|
|
|
|
export interface NoteTweetResultRichText {
|
|
richtext_tags: NoteTweetResultRichTextTag[]
|
|
}
|
|
|
|
export interface NoteTweetResultData {
|
|
entity_set: Entities
|
|
/** @pattern ^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)?$ */
|
|
id: string
|
|
media?: NoteTweetResultMedia
|
|
richtext?: NoteTweetResultRichText
|
|
text: string
|
|
}
|
|
|
|
export interface NoteTweetResult {
|
|
result: NoteTweetResultData
|
|
}
|
|
|
|
export interface NoteTweet {
|
|
is_expandable?: boolean
|
|
note_tweet_results: NoteTweetResult
|
|
}
|
|
|
|
export type TweetPostCtaDisplayLocationsItem =
|
|
(typeof TweetPostCtaDisplayLocationsItem)[keyof typeof TweetPostCtaDisplayLocationsItem]
|
|
|
|
export const TweetPostCtaDisplayLocationsItem = {
|
|
TweetDetails: 'TweetDetails',
|
|
ForYouTimeline: 'ForYouTimeline',
|
|
RepliesTimeline: 'RepliesTimeline',
|
|
} as const
|
|
|
|
export interface PostCtaUserResultsAvatar {
|
|
image_url: string
|
|
}
|
|
|
|
export interface PostCtaUserResultsResult {
|
|
__typename: TypeName
|
|
avatar: PostCtaUserResultsAvatar
|
|
}
|
|
|
|
export interface PostCtaUserResults {
|
|
result: PostCtaUserResultsResult
|
|
}
|
|
|
|
export interface PostCtaTitleTextEntityRef {
|
|
__typename: TypeName
|
|
user_results?: PostCtaUserResults
|
|
}
|
|
|
|
export interface PostCtaTitleTextEntity {
|
|
fromIndex: number
|
|
ref: PostCtaTitleTextEntityRef
|
|
toIndex: number
|
|
}
|
|
|
|
export interface PostCtaTitleText {
|
|
entities: PostCtaTitleTextEntity[]
|
|
text: string
|
|
}
|
|
|
|
export interface PostCta {
|
|
action_url: string
|
|
background_color: string
|
|
show_chevron: boolean
|
|
stroke_color: string
|
|
title_text: PostCtaTitleText
|
|
}
|
|
|
|
export interface TweetPostCta {
|
|
display_locations: TweetPostCtaDisplayLocationsItem[]
|
|
post_cta: PostCta
|
|
scribe_id?: string
|
|
}
|
|
|
|
export interface TweetPreviousCounts {
|
|
bookmark_count: number
|
|
favorite_count: number
|
|
quote_count: number
|
|
reply_count: number
|
|
retweet_count: number
|
|
}
|
|
|
|
export interface QuotedRefResult {
|
|
result?: TweetUnion
|
|
}
|
|
|
|
export interface SuperFollowsReplyUserResultCore {
|
|
screen_name: string
|
|
}
|
|
|
|
export interface SuperFollowsReplyUserResultData {
|
|
__typename: TypeName
|
|
core?: SuperFollowsReplyUserResultCore
|
|
}
|
|
|
|
export interface SuperFollowsReplyUserResult {
|
|
result: SuperFollowsReplyUserResultData
|
|
}
|
|
|
|
export interface TrendResults {
|
|
/** @pattern ^[0-9]+$ */
|
|
rest_id: string
|
|
}
|
|
|
|
export type UnifiedCardCardFetchState =
|
|
(typeof UnifiedCardCardFetchState)[keyof typeof UnifiedCardCardFetchState]
|
|
|
|
export const UnifiedCardCardFetchState = {
|
|
NoCard: 'NoCard',
|
|
} as const
|
|
|
|
export interface UnifiedCard {
|
|
card_fetch_state: UnifiedCardCardFetchState
|
|
}
|
|
|
|
export type TweetViewState =
|
|
(typeof TweetViewState)[keyof typeof TweetViewState]
|
|
|
|
export const TweetViewState = {
|
|
Enabled: 'Enabled',
|
|
EnabledWithCount: 'EnabledWithCount',
|
|
} as const
|
|
|
|
export interface TweetView {
|
|
/** @pattern ^[0-9]+$ */
|
|
count?: string
|
|
state: TweetViewState
|
|
}
|
|
|
|
export type TweetQuickPromoteEligibility = { [key: string]: unknown }
|
|
|
|
export type TweetUnmentionData = { [key: string]: unknown }
|
|
|
|
export interface Tweet {
|
|
__typename?: TypeName
|
|
article?: Article
|
|
author_community_relationship?: AuthorCommunityRelationship
|
|
birdwatch_pivot?: BirdwatchPivot
|
|
card?: TweetCard
|
|
community_relationship?: CommunityRelationship
|
|
community_results?: CommunityResult
|
|
content_disclosure?: ContentDisclosure
|
|
core?: UserResultCore
|
|
edit_control?: TweetEditControl
|
|
edit_prespective?: TweetEditPrespective
|
|
grok_analysis_button?: boolean
|
|
grok_analysis_followups?: string[]
|
|
grok_annotations?: GrokAnnotation
|
|
grok_share_attachment?: GrokShareAttachment
|
|
grok_translated_post_with_availability?: GrokTranslatedPostWithAvailability
|
|
has_birdwatch_notes?: boolean
|
|
is_translatable?: boolean
|
|
legacy?: TweetLegacy
|
|
note_tweet?: NoteTweet
|
|
postCta?: TweetPostCta
|
|
post_image_description?: string
|
|
post_video_description?: string
|
|
previous_counts?: TweetPreviousCounts
|
|
quick_promote_eligibility?: TweetQuickPromoteEligibility
|
|
quotedRefResult?: QuotedRefResult
|
|
quoted_status_result?: ItemResult
|
|
/** @pattern ^[0-9]+$ */
|
|
rest_id: string
|
|
source?: string
|
|
superFollowsReplyUserResult?: SuperFollowsReplyUserResult
|
|
trend_results?: TrendResults
|
|
unified_card?: UnifiedCard
|
|
unmention_data?: TweetUnmentionData
|
|
views?: TweetView
|
|
}
|
|
|
|
export type TweetInterstitialTextEntityRefType =
|
|
(typeof TweetInterstitialTextEntityRefType)[keyof typeof TweetInterstitialTextEntityRefType]
|
|
|
|
export const TweetInterstitialTextEntityRefType = {
|
|
TimelineUrl: 'TimelineUrl',
|
|
} as const
|
|
|
|
export type TweetInterstitialTextEntityRefUrlType =
|
|
(typeof TweetInterstitialTextEntityRefUrlType)[keyof typeof TweetInterstitialTextEntityRefUrlType]
|
|
|
|
export const TweetInterstitialTextEntityRefUrlType = {
|
|
ExternalUrl: 'ExternalUrl',
|
|
} as const
|
|
|
|
export interface TweetInterstitialTextEntityRef {
|
|
type: TweetInterstitialTextEntityRefType
|
|
url: string
|
|
urlType: TweetInterstitialTextEntityRefUrlType
|
|
}
|
|
|
|
export interface TweetInterstitialTextEntity {
|
|
fromIndex: number
|
|
ref: TweetInterstitialTextEntityRef
|
|
toIndex: number
|
|
}
|
|
|
|
export interface TweetInterstitialText {
|
|
entities: TweetInterstitialTextEntity[]
|
|
rtl: boolean
|
|
text: string
|
|
}
|
|
|
|
export interface MediaVisibilityResultsBlurredImageInterstitial {
|
|
opacity: number
|
|
text: TweetInterstitialText
|
|
title: TweetInterstitialText
|
|
}
|
|
|
|
export interface MediaVisibilityResults {
|
|
blurred_image_interstitial: MediaVisibilityResultsBlurredImageInterstitial
|
|
}
|
|
|
|
export type TweetInterstitialDisplayType =
|
|
(typeof TweetInterstitialDisplayType)[keyof typeof TweetInterstitialDisplayType]
|
|
|
|
export const TweetInterstitialDisplayType = {
|
|
NonCompliant: 'NonCompliant',
|
|
EntireTweet: 'EntireTweet',
|
|
} as const
|
|
|
|
export interface TweetInterstitialRevealText {
|
|
entities: TweetInterstitialTextEntity[]
|
|
rtl: boolean
|
|
text: string
|
|
}
|
|
|
|
export interface TweetInterstitial {
|
|
__typename: TypeName
|
|
displayType: TweetInterstitialDisplayType
|
|
revealText: TweetInterstitialRevealText
|
|
text: TweetInterstitialText
|
|
}
|
|
|
|
export type TweetWithVisibilityResultsLimitedActionResults = {
|
|
[key: string]: unknown
|
|
}
|
|
|
|
export interface TweetWithVisibilityResults {
|
|
__typename: TypeName
|
|
limitedActionResults?: TweetWithVisibilityResultsLimitedActionResults
|
|
mediaVisibilityResults?: MediaVisibilityResults
|
|
tweet: Tweet
|
|
tweetInterstitial?: TweetInterstitial
|
|
}
|
|
|
|
export interface TweetTombstone {
|
|
__typename?: TypeName
|
|
[key: string]: unknown
|
|
}
|
|
|
|
export interface TweetUnavailable {
|
|
__typename?: TypeName
|
|
reason?: string
|
|
}
|
|
|
|
export type TweetPreviewDisplayCtaUrlUrlType =
|
|
(typeof TweetPreviewDisplayCtaUrlUrlType)[keyof typeof TweetPreviewDisplayCtaUrlUrlType]
|
|
|
|
export const TweetPreviewDisplayCtaUrlUrlType = {
|
|
DeepLink: 'DeepLink',
|
|
UrtEndpoint: 'UrtEndpoint',
|
|
ExternalUrl: 'ExternalUrl',
|
|
} as const
|
|
|
|
export interface TweetPreviewDisplayCtaUrl {
|
|
url: string
|
|
urlType: TweetPreviewDisplayCtaUrlUrlType
|
|
}
|
|
|
|
export interface TweetPreviewDisplayCta {
|
|
title: string
|
|
url: TweetPreviewDisplayCtaUrl
|
|
}
|
|
|
|
export type LimitedActionResultsDataAction =
|
|
(typeof LimitedActionResultsDataAction)[keyof typeof LimitedActionResultsDataAction]
|
|
|
|
export const LimitedActionResultsDataAction = {
|
|
Reply: 'Reply',
|
|
Retweet: 'Retweet',
|
|
QuoteTweet: 'QuoteTweet',
|
|
Like: 'Like',
|
|
React: 'React',
|
|
AddToBookmarks: 'AddToBookmarks',
|
|
AddToMoment: 'AddToMoment',
|
|
PinToProfile: 'PinToProfile',
|
|
ViewHiddenReplies: 'ViewHiddenReplies',
|
|
VoteOnPoll: 'VoteOnPoll',
|
|
ShowRetweetActionMenu: 'ShowRetweetActionMenu',
|
|
ReplyDownVote: 'ReplyDownVote',
|
|
SendViaDm: 'SendViaDm',
|
|
ViewPostEngagements: 'ViewPostEngagements',
|
|
} as const
|
|
|
|
export interface LimitedActionResultsData {
|
|
action: LimitedActionResultsDataAction
|
|
}
|
|
|
|
export interface TweetLimitedActionResults {
|
|
limited_actions: LimitedActionResultsData[]
|
|
}
|
|
|
|
export interface ArticlePreview {
|
|
article_id: number
|
|
cover_media?: ArticleCoverMedia
|
|
preview_text: string
|
|
title: string
|
|
}
|
|
|
|
export interface TweetPreviewDisplayTweetViewCount {
|
|
/** @pattern ^[0-9]+$ */
|
|
count: string
|
|
}
|
|
|
|
export type TweetPreviewDisplayTweetEntities = { [key: string]: unknown }
|
|
|
|
export interface TweetPreviewDisplayTweet {
|
|
article_preview?: ArticlePreview
|
|
bookmark_count: number
|
|
core: UserResultCore
|
|
created_at: TwitterTimeFormat
|
|
entities: TweetPreviewDisplayTweetEntities
|
|
favorite_count: number
|
|
quote_count: number
|
|
reply_count: number
|
|
/** @pattern ^[0-9]+$ */
|
|
rest_id: string
|
|
retweet_count: number
|
|
text: string
|
|
view_count: TweetPreviewDisplayTweetViewCount
|
|
}
|
|
|
|
export interface TweetPreviewDisplay {
|
|
__typename: TypeName
|
|
cta: TweetPreviewDisplayCta
|
|
limited_action_results: TweetLimitedActionResults
|
|
tweet: TweetPreviewDisplayTweet
|
|
}
|
|
|
|
export type TweetUnion =
|
|
| Tweet
|
|
| TweetWithVisibilityResults
|
|
| TweetTombstone
|
|
| TweetUnavailable
|
|
| TweetPreviewDisplay
|
|
|
|
export interface ItemResult {
|
|
__typename?: TypeName
|
|
result?: TweetUnion
|
|
}
|
|
|
|
export type TimelineTweetPromotedMetadata = { [key: string]: unknown }
|
|
|
|
export interface TimelineTweet {
|
|
__typename: TypeName
|
|
hasModeratedReplies?: boolean
|
|
highlights?: Highlight
|
|
itemType: ContentItemType
|
|
promotedMetadata?: TimelineTweetPromotedMetadata
|
|
socialContext?: SocialContextUnion
|
|
tweetDisplayType: TimelineTweetTweetDisplayType
|
|
tweet_results: ItemResult
|
|
}
|
|
|
|
export type CursorType = (typeof CursorType)[keyof typeof CursorType]
|
|
|
|
export const CursorType = {
|
|
Top: 'Top',
|
|
Bottom: 'Bottom',
|
|
ShowMore: 'ShowMore',
|
|
ShowMoreThreads: 'ShowMoreThreads',
|
|
Gap: 'Gap',
|
|
ShowMoreThreadsPrompt: 'ShowMoreThreadsPrompt',
|
|
} as const
|
|
|
|
export interface DisplayTreatment {
|
|
actionText: string
|
|
labelText?: string
|
|
}
|
|
|
|
export interface TimelineTimelineCursor {
|
|
__typename: TypeName
|
|
cursorType: CursorType
|
|
displayTreatment?: DisplayTreatment
|
|
entryType?: ContentEntryType
|
|
itemType?: ContentEntryType
|
|
stopOnEmptyResponse?: boolean
|
|
value: string
|
|
}
|
|
|
|
export type TimelineUserUserDisplayType =
|
|
(typeof TimelineUserUserDisplayType)[keyof typeof TimelineUserUserDisplayType]
|
|
|
|
export const TimelineUserUserDisplayType = {
|
|
User: 'User',
|
|
UserDetailed: 'UserDetailed',
|
|
SubscribableUser: 'SubscribableUser',
|
|
UserConcise: 'UserConcise',
|
|
} as const
|
|
|
|
export interface TimelineUser {
|
|
__typename: TypeName
|
|
itemType: ContentItemType
|
|
socialContext?: SocialContextUnion
|
|
userDisplayType: TimelineUserUserDisplayType
|
|
user_results: UserResults
|
|
}
|
|
|
|
export interface TimelinePrompt {
|
|
__typename?: TypeName
|
|
[key: string]: unknown
|
|
}
|
|
|
|
export interface TimelineMessagePrompt {
|
|
__typename?: TypeName
|
|
[key: string]: unknown
|
|
}
|
|
|
|
export interface TimelineCommunity {
|
|
__typename?: TypeName
|
|
[key: string]: unknown
|
|
}
|
|
|
|
export type TimelineTombstoneTombstoneDisplayType =
|
|
(typeof TimelineTombstoneTombstoneDisplayType)[keyof typeof TimelineTombstoneTombstoneDisplayType]
|
|
|
|
export const TimelineTombstoneTombstoneDisplayType = {
|
|
Inline: 'Inline',
|
|
} as const
|
|
|
|
export type TombstoneRefType =
|
|
(typeof TombstoneRefType)[keyof typeof TombstoneRefType]
|
|
|
|
export const TombstoneRefType = {
|
|
TimelineUrl: 'TimelineUrl',
|
|
} as const
|
|
|
|
export type TombstoneRefUrlType =
|
|
(typeof TombstoneRefUrlType)[keyof typeof TombstoneRefUrlType]
|
|
|
|
export const TombstoneRefUrlType = {
|
|
ExternalUrl: 'ExternalUrl',
|
|
} as const
|
|
|
|
export interface TombstoneRef {
|
|
type?: TombstoneRefType
|
|
url?: string
|
|
urlType?: TombstoneRefUrlType
|
|
}
|
|
|
|
export interface TombstoneEntity {
|
|
fromIndex?: number
|
|
ref?: TombstoneRef
|
|
toIndex?: number
|
|
}
|
|
|
|
export interface TombstoneRichText {
|
|
entities?: TombstoneEntity[]
|
|
rtl?: boolean
|
|
text?: string
|
|
}
|
|
|
|
export interface TombstoneInfo {
|
|
richText?: TombstoneRichText
|
|
text?: string
|
|
}
|
|
|
|
export interface TimelineTombstone {
|
|
__typename?: TypeName
|
|
itemType?: ContentItemType
|
|
tombstoneDisplayType?: TimelineTombstoneTombstoneDisplayType
|
|
tombstoneInfo?: TombstoneInfo
|
|
}
|
|
|
|
export interface TrendImage {
|
|
url?: string
|
|
}
|
|
|
|
export interface ThumbnailImage {
|
|
original_img_height?: number
|
|
original_img_url?: string
|
|
original_img_width?: number
|
|
}
|
|
|
|
export interface TrendMetadata {
|
|
url?: SocialContextLandingUrl
|
|
}
|
|
|
|
export interface TimelineTrend {
|
|
__typename: TypeName
|
|
images?: TrendImage[]
|
|
is_ai_trend?: boolean
|
|
itemType?: ContentItemType
|
|
name: string
|
|
social_context?: SocialContextUnion
|
|
thumbnail_image?: ThumbnailImage
|
|
trend_metadata: TrendMetadata
|
|
trend_url: SocialContextLandingUrl
|
|
}
|
|
|
|
export interface RichMessage {
|
|
rtl?: boolean
|
|
text?: string
|
|
}
|
|
|
|
export type NotificationTemplateFromUsersItem = { [key: string]: unknown }
|
|
|
|
export type NotificationTemplateTargetObjectsItem = { [key: string]: unknown }
|
|
|
|
export interface NotificationTemplate {
|
|
__typename?: TypeName
|
|
from_users?: NotificationTemplateFromUsersItem[]
|
|
target_objects?: NotificationTemplateTargetObjectsItem[]
|
|
}
|
|
|
|
export interface TimelineNotification {
|
|
__typename: TypeName
|
|
id: string
|
|
itemType: ContentItemType
|
|
notification_icon: string
|
|
notification_url: SocialContextLandingUrl
|
|
rich_message: RichMessage
|
|
template: NotificationTemplate
|
|
timestamp_ms: string
|
|
}
|
|
|
|
export type ItemContentUnion =
|
|
| TimelineTweet
|
|
| TimelineTimelineCursor
|
|
| TimelineUser
|
|
| TimelinePrompt
|
|
| TimelineMessagePrompt
|
|
| TimelineCommunity
|
|
| TimelineTombstone
|
|
| TimelineTrend
|
|
| TimelineNotification
|
|
|
|
export type TimelineTimelineItemFeedbackInfo = { [key: string]: unknown }
|
|
|
|
export interface TimelineTimelineItem {
|
|
__typename: TypeName
|
|
clientEventInfo?: ClientEventInfo
|
|
entryType: ContentEntryType
|
|
feedbackInfo?: TimelineTimelineItemFeedbackInfo
|
|
itemContent: ItemContentUnion
|
|
}
|
|
|
|
export type DisplayType = (typeof DisplayType)[keyof typeof DisplayType]
|
|
|
|
export const DisplayType = {
|
|
Vertical: 'Vertical',
|
|
VerticalConversation: 'VerticalConversation',
|
|
VerticalGrid: 'VerticalGrid',
|
|
Carousel: 'Carousel',
|
|
} as const
|
|
|
|
export interface FeedbackInfo {
|
|
clientEventInfo?: ClientEventInfo
|
|
feedbackKeys?: string[]
|
|
}
|
|
|
|
export interface ModuleEntry {
|
|
clientEventInfo?: ClientEventInfo
|
|
feedbackInfo?: FeedbackInfo
|
|
itemContent: ItemContentUnion
|
|
}
|
|
|
|
export interface ModuleItem {
|
|
dispensable?: boolean
|
|
/** @pattern ^(([a-zA-Z]+|[0-9]+|[0-9a-f]+)(-|$))+ */
|
|
entryId: string
|
|
item: ModuleEntry
|
|
}
|
|
|
|
export type TimelineTimelineModuleFooter = { [key: string]: unknown }
|
|
|
|
export type TimelineTimelineModuleHeader = { [key: string]: unknown }
|
|
|
|
export type TimelineTimelineModuleMetadata = { [key: string]: unknown }
|
|
|
|
export interface TimelineTimelineModule {
|
|
__typename: TypeName
|
|
clientEventInfo?: ClientEventInfo
|
|
displayType: DisplayType
|
|
entryType: ContentEntryType
|
|
feedbackInfo?: FeedbackInfo
|
|
footer?: TimelineTimelineModuleFooter
|
|
header?: TimelineTimelineModuleHeader
|
|
items?: ModuleItem[]
|
|
metadata?: TimelineTimelineModuleMetadata
|
|
}
|
|
|
|
export type ContentUnion =
|
|
| TimelineTimelineItem
|
|
| TimelineTimelineModule
|
|
| TimelineTimelineCursor
|
|
|
|
export interface TimelineAddEntry {
|
|
content: ContentUnion
|
|
/** @pattern ^(([a-zA-Z]+|[0-9]+|[0-9a-f]+)(-|$))+ */
|
|
entryId: string
|
|
/** @pattern [0-9]+$ */
|
|
sortIndex: string
|
|
}
|
|
|
|
export type InstructionType =
|
|
(typeof InstructionType)[keyof typeof InstructionType]
|
|
|
|
export const InstructionType = {
|
|
TimelineAddEntries: 'TimelineAddEntries',
|
|
TimelineAddToModule: 'TimelineAddToModule',
|
|
TimelineClearCache: 'TimelineClearCache',
|
|
TimelinePinEntry: 'TimelinePinEntry',
|
|
TimelineReplaceEntry: 'TimelineReplaceEntry',
|
|
TimelineShowAlert: 'TimelineShowAlert',
|
|
TimelineTerminateTimeline: 'TimelineTerminateTimeline',
|
|
TimelineShowCover: 'TimelineShowCover',
|
|
TimelineClearEntriesUnreadState: 'TimelineClearEntriesUnreadState',
|
|
TimelineMarkEntriesUnreadGreaterThanSortIndex:
|
|
'TimelineMarkEntriesUnreadGreaterThanSortIndex',
|
|
} as const
|
|
|
|
export interface TimelineAddEntries {
|
|
entries: TimelineAddEntry[]
|
|
type: InstructionType
|
|
}
|
|
|
|
export interface TimelineAddToModule {
|
|
moduleEntryId: string
|
|
moduleItems: ModuleItem[]
|
|
prepend?: boolean
|
|
type: InstructionType
|
|
}
|
|
|
|
export interface TimelineClearCache {
|
|
type: InstructionType
|
|
}
|
|
|
|
export interface TimelinePinEntry {
|
|
entry: TimelineAddEntry
|
|
type: InstructionType
|
|
}
|
|
|
|
export interface TimelineReplaceEntry {
|
|
entry: TimelineAddEntry
|
|
entry_id_to_replace: string
|
|
type: InstructionType
|
|
}
|
|
|
|
export type TimelineShowAlertAlertType =
|
|
(typeof TimelineShowAlertAlertType)[keyof typeof TimelineShowAlertAlertType]
|
|
|
|
export const TimelineShowAlertAlertType = {
|
|
NewTweets: 'NewTweets',
|
|
} as const
|
|
|
|
export type TimelineShowAlertDisplayLocation =
|
|
(typeof TimelineShowAlertDisplayLocation)[keyof typeof TimelineShowAlertDisplayLocation]
|
|
|
|
export const TimelineShowAlertDisplayLocation = {
|
|
Top: 'Top',
|
|
} as const
|
|
|
|
export type TimelineShowAlertColorConfig = { [key: string]: unknown }
|
|
|
|
export type TimelineShowAlertIconDisplayInfo = { [key: string]: unknown }
|
|
|
|
export type TimelineShowAlertRichTextEntitiesItem = { [key: string]: unknown }
|
|
|
|
export type TimelineShowAlertRichText = {
|
|
entities?: TimelineShowAlertRichTextEntitiesItem[]
|
|
text?: string
|
|
}
|
|
|
|
export interface TimelineShowAlert {
|
|
alertType?: TimelineShowAlertAlertType
|
|
clientEventInfo?: ClientEventInfo
|
|
colorConfig?: TimelineShowAlertColorConfig
|
|
displayDurationMs?: number
|
|
displayLocation?: TimelineShowAlertDisplayLocation
|
|
iconDisplayInfo?: TimelineShowAlertIconDisplayInfo
|
|
richText: TimelineShowAlertRichText
|
|
triggerDelayMs?: number
|
|
type: InstructionType
|
|
usersResults: UserResults[]
|
|
}
|
|
|
|
export type TimelineTerminateTimelineDirection =
|
|
(typeof TimelineTerminateTimelineDirection)[keyof typeof TimelineTerminateTimelineDirection]
|
|
|
|
export const TimelineTerminateTimelineDirection = {
|
|
Top: 'Top',
|
|
Bottom: 'Bottom',
|
|
TopAndBottom: 'TopAndBottom',
|
|
} as const
|
|
|
|
export interface TimelineTerminateTimeline {
|
|
direction: TimelineTerminateTimelineDirection
|
|
type: InstructionType
|
|
}
|
|
|
|
export type TimelineHalfCoverHalfCoverDisplayType =
|
|
(typeof TimelineHalfCoverHalfCoverDisplayType)[keyof typeof TimelineHalfCoverHalfCoverDisplayType]
|
|
|
|
export const TimelineHalfCoverHalfCoverDisplayType = {
|
|
Cover: 'Cover',
|
|
} as const
|
|
|
|
export interface Callback {
|
|
endpoint: string
|
|
}
|
|
|
|
export type CoverCtaButtonStyle =
|
|
(typeof CoverCtaButtonStyle)[keyof typeof CoverCtaButtonStyle]
|
|
|
|
export const CoverCtaButtonStyle = {
|
|
Primary: 'Primary',
|
|
} as const
|
|
|
|
export type CtaClientEventInfoAction =
|
|
(typeof CtaClientEventInfoAction)[keyof typeof CtaClientEventInfoAction]
|
|
|
|
export const CtaClientEventInfoAction = {
|
|
primary_cta: 'primary_cta',
|
|
} as const
|
|
|
|
export interface CtaClientEventInfo {
|
|
action: CtaClientEventInfoAction
|
|
}
|
|
|
|
export type TimelineCoverBehaviorType =
|
|
(typeof TimelineCoverBehaviorType)[keyof typeof TimelineCoverBehaviorType]
|
|
|
|
export const TimelineCoverBehaviorType = {
|
|
TimelineCoverBehaviorDismiss: 'TimelineCoverBehaviorDismiss',
|
|
TimelineCoverBehaviorNavigate: 'TimelineCoverBehaviorNavigate',
|
|
} as const
|
|
|
|
export type TimelineCoverBehaviorUrlUrlType =
|
|
(typeof TimelineCoverBehaviorUrlUrlType)[keyof typeof TimelineCoverBehaviorUrlUrlType]
|
|
|
|
export const TimelineCoverBehaviorUrlUrlType = {
|
|
ExternalUrl: 'ExternalUrl',
|
|
} as const
|
|
|
|
export interface TimelineCoverBehaviorUrl {
|
|
url: string
|
|
url_type: TimelineCoverBehaviorUrlUrlType
|
|
}
|
|
|
|
export interface TimelineCoverBehavior {
|
|
type: TimelineCoverBehaviorType
|
|
url?: TimelineCoverBehaviorUrl
|
|
}
|
|
|
|
export interface CoverCta {
|
|
Text?: string
|
|
buttonStyle?: CoverCtaButtonStyle
|
|
callbacks: Callback[]
|
|
clientEventInfo: CtaClientEventInfo
|
|
ctaBehavior: TimelineCoverBehavior
|
|
}
|
|
|
|
export type TextEntityRefType =
|
|
(typeof TextEntityRefType)[keyof typeof TextEntityRefType]
|
|
|
|
export const TextEntityRefType = {
|
|
TimelineUrl: 'TimelineUrl',
|
|
} as const
|
|
|
|
export type TextEntityRefUrlType =
|
|
(typeof TextEntityRefUrlType)[keyof typeof TextEntityRefUrlType]
|
|
|
|
export const TextEntityRefUrlType = {
|
|
ExternalUrl: 'ExternalUrl',
|
|
} as const
|
|
|
|
export interface TextEntityRef {
|
|
type: TextEntityRefType
|
|
url: string
|
|
urlType: TextEntityRefUrlType
|
|
}
|
|
|
|
export interface TextEntity {
|
|
fromIndex: number
|
|
ref: TextEntityRef
|
|
toIndex: number
|
|
}
|
|
|
|
export interface Text {
|
|
entities: TextEntity[]
|
|
text: string
|
|
}
|
|
|
|
export type TimelineHalfCoverType =
|
|
(typeof TimelineHalfCoverType)[keyof typeof TimelineHalfCoverType]
|
|
|
|
export const TimelineHalfCoverType = {
|
|
TimelineHalfCover: 'TimelineHalfCover',
|
|
} as const
|
|
|
|
export interface TimelineHalfCover {
|
|
dismissible: boolean
|
|
halfCoverDisplayType: TimelineHalfCoverHalfCoverDisplayType
|
|
impressionCallbacks: Callback[]
|
|
primaryCoverCta: CoverCta
|
|
primaryText: Text
|
|
secondaryText: Text
|
|
type: TimelineHalfCoverType
|
|
}
|
|
|
|
export interface TimelineShowCover {
|
|
clientEventInfo: ClientEventInfo
|
|
cover: TimelineHalfCover
|
|
type: InstructionType
|
|
}
|
|
|
|
export interface TimelineClearEntriesUnreadState {
|
|
type: InstructionType
|
|
}
|
|
|
|
export interface TimelineMarkEntriesUnreadGreaterThanSortIndex {
|
|
/** @pattern [0-9]+$ */
|
|
sort_index?: string
|
|
type: InstructionType
|
|
}
|
|
|
|
export type InstructionUnion =
|
|
| TimelineAddEntries
|
|
| TimelineAddToModule
|
|
| TimelineClearCache
|
|
| TimelinePinEntry
|
|
| TimelineReplaceEntry
|
|
| TimelineShowAlert
|
|
| TimelineTerminateTimeline
|
|
| TimelineShowCover
|
|
| TimelineClearEntriesUnreadState
|
|
| TimelineMarkEntriesUnreadGreaterThanSortIndex
|
|
|
|
export type TimelineMetadata = { [key: string]: unknown }
|
|
|
|
export type TimelineResponseObjects = { [key: string]: unknown }
|
|
|
|
export interface Timeline {
|
|
instructions: InstructionUnion[]
|
|
metadata?: TimelineMetadata
|
|
responseObjects?: TimelineResponseObjects
|
|
}
|
|
|
|
export interface TimelineResult {
|
|
id?: string
|
|
timeline?: Timeline
|
|
}
|
|
|
|
export interface ListTweetsTimelineList {
|
|
tweets_timeline: TimelineResult
|
|
}
|
|
|
|
export interface ListTweetsTimelineData {
|
|
list: ListTweetsTimelineList
|
|
}
|
|
|
|
export interface Tracing {
|
|
/** @pattern ^[0-9a-f]{16}$ */
|
|
trace_id: string
|
|
}
|
|
|
|
export interface ErrorExtensions {
|
|
code: number
|
|
kind: string
|
|
name: string
|
|
retry_after?: number
|
|
source: string
|
|
tracing: Tracing
|
|
}
|
|
|
|
export interface Location {
|
|
column: number
|
|
line: number
|
|
}
|
|
|
|
export interface ErrorResponse {
|
|
code: number
|
|
extensions: ErrorExtensions
|
|
kind: string
|
|
locations: Location[]
|
|
message: string
|
|
name: string
|
|
path: (string | number)[]
|
|
retry_after?: number
|
|
source: string
|
|
tracing: Tracing
|
|
}
|
|
|
|
export interface ListLatestTweetsTimelineResponse {
|
|
data: ListTweetsTimelineData
|
|
errors?: ErrorResponse[]
|
|
}
|
|
|
|
export interface SearchTimeline {
|
|
timeline: Timeline
|
|
}
|
|
|
|
export interface SearchByRawQuery {
|
|
search_timeline: SearchTimeline
|
|
}
|
|
|
|
export interface SearchTimelineData {
|
|
search_by_raw_query: SearchByRawQuery
|
|
}
|
|
|
|
export interface SearchTimelineResponse {
|
|
data: SearchTimelineData
|
|
errors?: ErrorResponse[]
|
|
}
|
|
|
|
export interface TweetDetailResponseData {
|
|
threaded_conversation_with_injections_v2?: Timeline
|
|
}
|
|
|
|
export interface TweetDetailResponse {
|
|
data: TweetDetailResponseData
|
|
errors?: ErrorResponse[]
|
|
}
|
|
|
|
export interface UserResponseData {
|
|
user?: UserResults
|
|
}
|
|
|
|
export interface UserResponse {
|
|
data: UserResponseData
|
|
errors?: ErrorResponse[]
|
|
}
|
|
|
|
export interface UserTweetsResultV1 {
|
|
__typename: TypeName
|
|
timeline: TimelineResult
|
|
}
|
|
|
|
export interface UserTweetsUser {
|
|
result: UserTweetsResultV1
|
|
}
|
|
|
|
export interface UserTweetsData {
|
|
user?: UserTweetsUser
|
|
}
|
|
|
|
export interface UserTweetsResponse {
|
|
data: UserTweetsData
|
|
errors?: ErrorResponse[]
|
|
}
|
|
|
|
export type GetListLatestTweetsTimelineParams = {
|
|
variables: {
|
|
count: number
|
|
listId: string
|
|
}
|
|
features: {
|
|
articles_preview_enabled: boolean
|
|
c9s_tweet_anatomy_moderator_badge_enabled: boolean
|
|
communities_web_enable_tweet_community_results_fetch: boolean
|
|
creator_subscriptions_quote_tweet_preview_enabled: boolean
|
|
creator_subscriptions_tweet_preview_api_enabled: boolean
|
|
freedom_of_speech_not_reach_fetch_enabled: boolean
|
|
graphql_is_translatable_rweb_tweet_is_translatable_enabled: boolean
|
|
longform_notetweets_consumption_enabled: boolean
|
|
longform_notetweets_inline_media_enabled: boolean
|
|
longform_notetweets_rich_text_read_enabled: boolean
|
|
payments_enabled: boolean
|
|
premium_content_api_read_enabled: boolean
|
|
profile_label_improvements_pcf_label_in_post_enabled: boolean
|
|
responsive_web_edit_tweet_api_enabled: boolean
|
|
responsive_web_enhance_cards_enabled: boolean
|
|
responsive_web_graphql_skip_user_profile_image_extensions_enabled: boolean
|
|
responsive_web_graphql_timeline_navigation_enabled: boolean
|
|
responsive_web_grok_analysis_button_from_backend: boolean
|
|
responsive_web_grok_analyze_button_fetch_trends_enabled: boolean
|
|
responsive_web_grok_analyze_post_followups_enabled: boolean
|
|
responsive_web_grok_community_note_auto_translation_is_enabled: boolean
|
|
responsive_web_grok_image_annotation_enabled: boolean
|
|
responsive_web_grok_imagine_annotation_enabled: boolean
|
|
responsive_web_grok_share_attachment_enabled: boolean
|
|
responsive_web_grok_show_grok_translated_post: boolean
|
|
responsive_web_jetfuel_frame: boolean
|
|
responsive_web_profile_redirect_enabled: boolean
|
|
responsive_web_twitter_article_tweet_consumption_enabled: boolean
|
|
rweb_tipjar_consumption_enabled: boolean
|
|
rweb_video_screen_enabled: boolean
|
|
standardized_nudges_misinfo: boolean
|
|
tweet_awards_web_tipping_enabled: boolean
|
|
tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled: boolean
|
|
verified_phone_label_enabled: boolean
|
|
view_counts_everywhere_api_enabled: boolean
|
|
}
|
|
}
|
|
|
|
export type GetSearchTimelineParams = {
|
|
variables: {
|
|
count: number
|
|
product: string
|
|
querySource: string
|
|
rawQuery: string
|
|
}
|
|
features: {
|
|
articles_preview_enabled: boolean
|
|
c9s_tweet_anatomy_moderator_badge_enabled: boolean
|
|
communities_web_enable_tweet_community_results_fetch: boolean
|
|
content_disclosure_ai_generated_indicator_enabled: boolean
|
|
content_disclosure_indicator_enabled: boolean
|
|
creator_subscriptions_tweet_preview_api_enabled: boolean
|
|
freedom_of_speech_not_reach_fetch_enabled: boolean
|
|
graphql_is_translatable_rweb_tweet_is_translatable_enabled: boolean
|
|
longform_notetweets_consumption_enabled: boolean
|
|
longform_notetweets_inline_media_enabled: boolean
|
|
longform_notetweets_rich_text_read_enabled: boolean
|
|
post_ctas_fetch_enabled: boolean
|
|
premium_content_api_read_enabled: boolean
|
|
profile_label_improvements_pcf_label_in_post_enabled: boolean
|
|
responsive_web_edit_tweet_api_enabled: boolean
|
|
responsive_web_enhance_cards_enabled: boolean
|
|
responsive_web_graphql_skip_user_profile_image_extensions_enabled: boolean
|
|
responsive_web_graphql_timeline_navigation_enabled: boolean
|
|
responsive_web_grok_analysis_button_from_backend: boolean
|
|
responsive_web_grok_analyze_button_fetch_trends_enabled: boolean
|
|
responsive_web_grok_analyze_post_followups_enabled: boolean
|
|
responsive_web_grok_annotations_enabled: boolean
|
|
responsive_web_grok_community_note_auto_translation_is_enabled: boolean
|
|
responsive_web_grok_image_annotation_enabled: boolean
|
|
responsive_web_grok_imagine_annotation_enabled: boolean
|
|
responsive_web_grok_share_attachment_enabled: boolean
|
|
responsive_web_grok_show_grok_translated_post: boolean
|
|
responsive_web_jetfuel_frame: boolean
|
|
responsive_web_profile_redirect_enabled: boolean
|
|
responsive_web_twitter_article_tweet_consumption_enabled: boolean
|
|
rweb_cashtags_composer_attachment_enabled: boolean
|
|
rweb_cashtags_enabled: boolean
|
|
rweb_conversational_replies_downvote_enabled: boolean
|
|
rweb_tipjar_consumption_enabled: boolean
|
|
rweb_video_screen_enabled: boolean
|
|
standardized_nudges_misinfo: boolean
|
|
tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled: boolean
|
|
verified_phone_label_enabled: boolean
|
|
view_counts_everywhere_api_enabled: boolean
|
|
}
|
|
}
|
|
|
|
export type GetTweetDetailParams = {
|
|
variables: {
|
|
focalTweetId: string
|
|
includePromotedContent: boolean
|
|
rankingMode: string
|
|
referrer: string
|
|
withBirdwatchNotes: boolean
|
|
withCommunity: boolean
|
|
withQuickPromoteEligibilityTweetFields: boolean
|
|
withVoice: boolean
|
|
with_rux_injections: boolean
|
|
}
|
|
features: {
|
|
articles_preview_enabled: boolean
|
|
c9s_tweet_anatomy_moderator_badge_enabled: boolean
|
|
communities_web_enable_tweet_community_results_fetch: boolean
|
|
content_disclosure_ai_generated_indicator_enabled: boolean
|
|
content_disclosure_indicator_enabled: boolean
|
|
creator_subscriptions_tweet_preview_api_enabled: boolean
|
|
freedom_of_speech_not_reach_fetch_enabled: boolean
|
|
graphql_is_translatable_rweb_tweet_is_translatable_enabled: boolean
|
|
longform_notetweets_consumption_enabled: boolean
|
|
longform_notetweets_inline_media_enabled: boolean
|
|
longform_notetweets_rich_text_read_enabled: boolean
|
|
post_ctas_fetch_enabled: boolean
|
|
premium_content_api_read_enabled: boolean
|
|
profile_label_improvements_pcf_label_in_post_enabled: boolean
|
|
responsive_web_edit_tweet_api_enabled: boolean
|
|
responsive_web_enhance_cards_enabled: boolean
|
|
responsive_web_graphql_skip_user_profile_image_extensions_enabled: boolean
|
|
responsive_web_graphql_timeline_navigation_enabled: boolean
|
|
responsive_web_grok_analysis_button_from_backend: boolean
|
|
responsive_web_grok_analyze_button_fetch_trends_enabled: boolean
|
|
responsive_web_grok_analyze_post_followups_enabled: boolean
|
|
responsive_web_grok_annotations_enabled: boolean
|
|
responsive_web_grok_community_note_auto_translation_is_enabled: boolean
|
|
responsive_web_grok_image_annotation_enabled: boolean
|
|
responsive_web_grok_imagine_annotation_enabled: boolean
|
|
responsive_web_grok_share_attachment_enabled: boolean
|
|
responsive_web_grok_show_grok_translated_post: boolean
|
|
responsive_web_jetfuel_frame: boolean
|
|
responsive_web_profile_redirect_enabled: boolean
|
|
responsive_web_twitter_article_tweet_consumption_enabled: boolean
|
|
rweb_cashtags_composer_attachment_enabled: boolean
|
|
rweb_cashtags_enabled: boolean
|
|
rweb_conversational_replies_downvote_enabled: boolean
|
|
rweb_tipjar_consumption_enabled: boolean
|
|
rweb_video_screen_enabled: boolean
|
|
standardized_nudges_misinfo: boolean
|
|
tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled: boolean
|
|
verified_phone_label_enabled: boolean
|
|
view_counts_everywhere_api_enabled: boolean
|
|
}
|
|
fieldToggles: {
|
|
withArticlePlainText: boolean
|
|
withArticleRichContentState: boolean
|
|
withArticleSummaryText: boolean
|
|
withArticleVoiceOver: boolean
|
|
withDisallowedReplyControls: boolean
|
|
withGrokAnalyze: boolean
|
|
}
|
|
}
|
|
|
|
export type GetUserByScreenNameParams = {
|
|
variables: {
|
|
screen_name: string
|
|
}
|
|
features: {
|
|
creator_subscriptions_tweet_preview_api_enabled: boolean
|
|
hidden_profile_subscriptions_enabled: boolean
|
|
highlights_tweets_tab_ui_enabled: boolean
|
|
profile_label_improvements_pcf_label_in_post_enabled: boolean
|
|
responsive_web_graphql_skip_user_profile_image_extensions_enabled: boolean
|
|
responsive_web_graphql_timeline_navigation_enabled: boolean
|
|
responsive_web_profile_redirect_enabled: boolean
|
|
responsive_web_twitter_article_notes_tab_enabled: boolean
|
|
rweb_tipjar_consumption_enabled: boolean
|
|
subscriptions_feature_can_gift_premium: boolean
|
|
subscriptions_verification_info_is_identity_verified_enabled: boolean
|
|
subscriptions_verification_info_verified_since_enabled: boolean
|
|
verified_phone_label_enabled: boolean
|
|
}
|
|
fieldToggles: {
|
|
withAuxiliaryUserLabels: boolean
|
|
withPayments: boolean
|
|
}
|
|
}
|
|
|
|
export type GetUserTweetsParams = {
|
|
variables: {
|
|
count: number
|
|
includePromotedContent: boolean
|
|
userId: string
|
|
withQuickPromoteEligibilityTweetFields: boolean
|
|
withVoice: boolean
|
|
}
|
|
features: {
|
|
articles_preview_enabled: boolean
|
|
c9s_tweet_anatomy_moderator_badge_enabled: boolean
|
|
communities_web_enable_tweet_community_results_fetch: boolean
|
|
content_disclosure_ai_generated_indicator_enabled: boolean
|
|
content_disclosure_indicator_enabled: boolean
|
|
creator_subscriptions_tweet_preview_api_enabled: boolean
|
|
freedom_of_speech_not_reach_fetch_enabled: boolean
|
|
graphql_is_translatable_rweb_tweet_is_translatable_enabled: boolean
|
|
longform_notetweets_consumption_enabled: boolean
|
|
longform_notetweets_inline_media_enabled: boolean
|
|
longform_notetweets_rich_text_read_enabled: boolean
|
|
post_ctas_fetch_enabled: boolean
|
|
premium_content_api_read_enabled: boolean
|
|
profile_label_improvements_pcf_label_in_post_enabled: boolean
|
|
responsive_web_edit_tweet_api_enabled: boolean
|
|
responsive_web_enhance_cards_enabled: boolean
|
|
responsive_web_graphql_skip_user_profile_image_extensions_enabled: boolean
|
|
responsive_web_graphql_timeline_navigation_enabled: boolean
|
|
responsive_web_grok_analysis_button_from_backend: boolean
|
|
responsive_web_grok_analyze_button_fetch_trends_enabled: boolean
|
|
responsive_web_grok_analyze_post_followups_enabled: boolean
|
|
responsive_web_grok_annotations_enabled: boolean
|
|
responsive_web_grok_community_note_auto_translation_is_enabled: boolean
|
|
responsive_web_grok_image_annotation_enabled: boolean
|
|
responsive_web_grok_imagine_annotation_enabled: boolean
|
|
responsive_web_grok_share_attachment_enabled: boolean
|
|
responsive_web_grok_show_grok_translated_post: boolean
|
|
responsive_web_jetfuel_frame: boolean
|
|
responsive_web_profile_redirect_enabled: boolean
|
|
responsive_web_twitter_article_tweet_consumption_enabled: boolean
|
|
rweb_cashtags_composer_attachment_enabled: boolean
|
|
rweb_cashtags_enabled: boolean
|
|
rweb_conversational_replies_downvote_enabled: boolean
|
|
rweb_tipjar_consumption_enabled: boolean
|
|
rweb_video_screen_enabled: boolean
|
|
standardized_nudges_misinfo: boolean
|
|
tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled: boolean
|
|
verified_phone_label_enabled: boolean
|
|
view_counts_everywhere_api_enabled: boolean
|
|
}
|
|
fieldToggles: {
|
|
withArticlePlainText: boolean
|
|
}
|
|
}
|
|
|
|
export type getListLatestTweetsTimelineResponse200 = {
|
|
data: ListLatestTweetsTimelineResponse
|
|
status: 200
|
|
}
|
|
|
|
export type getListLatestTweetsTimelineResponseSuccess =
|
|
getListLatestTweetsTimelineResponse200 & {
|
|
headers: Headers
|
|
}
|
|
|
|
export type getListLatestTweetsTimelineResponse =
|
|
getListLatestTweetsTimelineResponseSuccess
|
|
|
|
export const getGetListLatestTweetsTimelineUrl = (
|
|
params: GetListLatestTweetsTimelineParams,
|
|
pathQueryId: string = 'FVWmROVvhgjRPC-4jAUh8A',
|
|
) => {
|
|
const normalizedParams = new URLSearchParams()
|
|
|
|
Object.entries(params || {}).forEach(([key, value]) => {
|
|
if (value !== undefined) {
|
|
normalizedParams.append(key, value === null ? 'null' : String(value))
|
|
}
|
|
})
|
|
|
|
const stringifiedParams = normalizedParams.toString()
|
|
|
|
return stringifiedParams.length > 0
|
|
? `/graphql/${pathQueryId}/ListLatestTweetsTimeline?${stringifiedParams}`
|
|
: `/graphql/${pathQueryId}/ListLatestTweetsTimeline`
|
|
}
|
|
|
|
/**
|
|
* get tweet list of timeline
|
|
*/
|
|
export const getListLatestTweetsTimeline = async (
|
|
params: GetListLatestTweetsTimelineParams,
|
|
pathQueryId: string = 'FVWmROVvhgjRPC-4jAUh8A',
|
|
options?: RequestInit,
|
|
): Promise<getListLatestTweetsTimelineResponse> => {
|
|
const res = await fetch(
|
|
getGetListLatestTweetsTimelineUrl(params, pathQueryId),
|
|
{
|
|
...options,
|
|
method: 'GET',
|
|
},
|
|
)
|
|
|
|
const body = [204, 205, 304].includes(res.status) ? null : await res.text()
|
|
|
|
const data: getListLatestTweetsTimelineResponse['data'] = body
|
|
? JSON.parse(body)
|
|
: {}
|
|
return {
|
|
data,
|
|
status: res.status,
|
|
headers: res.headers,
|
|
} as getListLatestTweetsTimelineResponse
|
|
}
|
|
|
|
export type getSearchTimelineResponse200 = {
|
|
data: SearchTimelineResponse
|
|
status: 200
|
|
}
|
|
|
|
export type getSearchTimelineResponseSuccess = getSearchTimelineResponse200 & {
|
|
headers: Headers
|
|
}
|
|
|
|
export type getSearchTimelineResponse = getSearchTimelineResponseSuccess
|
|
|
|
export const getGetSearchTimelineUrl = (
|
|
params: GetSearchTimelineParams,
|
|
pathQueryId: string = 'Yw6L66Pw54NHKuq4Dp7b4Q',
|
|
) => {
|
|
const normalizedParams = new URLSearchParams()
|
|
|
|
Object.entries(params || {}).forEach(([key, value]) => {
|
|
if (value !== undefined) {
|
|
normalizedParams.append(key, value === null ? 'null' : String(value))
|
|
}
|
|
})
|
|
|
|
const stringifiedParams = normalizedParams.toString()
|
|
|
|
return stringifiedParams.length > 0
|
|
? `/graphql/${pathQueryId}/SearchTimeline?${stringifiedParams}`
|
|
: `/graphql/${pathQueryId}/SearchTimeline`
|
|
}
|
|
|
|
/**
|
|
* search tweet list. product:[Top, Latest, People, Photos, Videos]
|
|
*/
|
|
export const getSearchTimeline = async (
|
|
params: GetSearchTimelineParams,
|
|
pathQueryId: string = 'Yw6L66Pw54NHKuq4Dp7b4Q',
|
|
options?: RequestInit,
|
|
): Promise<getSearchTimelineResponse> => {
|
|
const res = await fetch(getGetSearchTimelineUrl(params, pathQueryId), {
|
|
...options,
|
|
method: 'GET',
|
|
})
|
|
|
|
const body = [204, 205, 304].includes(res.status) ? null : await res.text()
|
|
|
|
const data: getSearchTimelineResponse['data'] = body ? JSON.parse(body) : {}
|
|
return {
|
|
data,
|
|
status: res.status,
|
|
headers: res.headers,
|
|
} as getSearchTimelineResponse
|
|
}
|
|
|
|
export type getTweetDetailResponse200 = {
|
|
data: TweetDetailResponse
|
|
status: 200
|
|
}
|
|
|
|
export type getTweetDetailResponseSuccess = getTweetDetailResponse200 & {
|
|
headers: Headers
|
|
}
|
|
|
|
export type getTweetDetailResponse = getTweetDetailResponseSuccess
|
|
|
|
export const getGetTweetDetailUrl = (
|
|
params: GetTweetDetailParams,
|
|
pathQueryId: string = 'oCon7R-cgWRFy6EfZjaKfg',
|
|
) => {
|
|
const normalizedParams = new URLSearchParams()
|
|
|
|
Object.entries(params || {}).forEach(([key, value]) => {
|
|
if (value !== undefined) {
|
|
normalizedParams.append(key, value === null ? 'null' : String(value))
|
|
}
|
|
})
|
|
|
|
const stringifiedParams = normalizedParams.toString()
|
|
|
|
return stringifiedParams.length > 0
|
|
? `/graphql/${pathQueryId}/TweetDetail?${stringifiedParams}`
|
|
: `/graphql/${pathQueryId}/TweetDetail`
|
|
}
|
|
|
|
/**
|
|
* get TweetDetail
|
|
*/
|
|
export const getTweetDetail = async (
|
|
params: GetTweetDetailParams,
|
|
pathQueryId: string = 'oCon7R-cgWRFy6EfZjaKfg',
|
|
options?: RequestInit,
|
|
): Promise<getTweetDetailResponse> => {
|
|
const res = await fetch(getGetTweetDetailUrl(params, pathQueryId), {
|
|
...options,
|
|
method: 'GET',
|
|
})
|
|
|
|
const body = [204, 205, 304].includes(res.status) ? null : await res.text()
|
|
|
|
const data: getTweetDetailResponse['data'] = body ? JSON.parse(body) : {}
|
|
return {
|
|
data,
|
|
status: res.status,
|
|
headers: res.headers,
|
|
} as getTweetDetailResponse
|
|
}
|
|
|
|
export type getUserByScreenNameResponse200 = {
|
|
data: UserResponse
|
|
status: 200
|
|
}
|
|
|
|
export type getUserByScreenNameResponseSuccess =
|
|
getUserByScreenNameResponse200 & {
|
|
headers: Headers
|
|
}
|
|
|
|
export type getUserByScreenNameResponse = getUserByScreenNameResponseSuccess
|
|
|
|
export const getGetUserByScreenNameUrl = (
|
|
params: GetUserByScreenNameParams,
|
|
pathQueryId: string = 'IGgvgiOx4QZndDHuD3x9TQ',
|
|
) => {
|
|
const normalizedParams = new URLSearchParams()
|
|
|
|
Object.entries(params || {}).forEach(([key, value]) => {
|
|
if (value !== undefined) {
|
|
normalizedParams.append(key, value === null ? 'null' : String(value))
|
|
}
|
|
})
|
|
|
|
const stringifiedParams = normalizedParams.toString()
|
|
|
|
return stringifiedParams.length > 0
|
|
? `/graphql/${pathQueryId}/UserByScreenName?${stringifiedParams}`
|
|
: `/graphql/${pathQueryId}/UserByScreenName`
|
|
}
|
|
|
|
/**
|
|
* get user by screen name
|
|
*/
|
|
export const getUserByScreenName = async (
|
|
params: GetUserByScreenNameParams,
|
|
pathQueryId: string = 'IGgvgiOx4QZndDHuD3x9TQ',
|
|
options?: RequestInit,
|
|
): Promise<getUserByScreenNameResponse> => {
|
|
const res = await fetch(getGetUserByScreenNameUrl(params, pathQueryId), {
|
|
...options,
|
|
method: 'GET',
|
|
})
|
|
|
|
const body = [204, 205, 304].includes(res.status) ? null : await res.text()
|
|
|
|
const data: getUserByScreenNameResponse['data'] = body ? JSON.parse(body) : {}
|
|
return {
|
|
data,
|
|
status: res.status,
|
|
headers: res.headers,
|
|
} as getUserByScreenNameResponse
|
|
}
|
|
|
|
export type getUserTweetsResponse200 = {
|
|
data: UserTweetsResponse
|
|
status: 200
|
|
}
|
|
|
|
export type getUserTweetsResponseSuccess = getUserTweetsResponse200 & {
|
|
headers: Headers
|
|
}
|
|
|
|
export type getUserTweetsResponse = getUserTweetsResponseSuccess
|
|
|
|
export const getGetUserTweetsUrl = (
|
|
params: GetUserTweetsParams,
|
|
pathQueryId: string = '36rb3Xj3iJ64Q-9wKDjCcQ',
|
|
) => {
|
|
const normalizedParams = new URLSearchParams()
|
|
|
|
Object.entries(params || {}).forEach(([key, value]) => {
|
|
if (value !== undefined) {
|
|
normalizedParams.append(key, value === null ? 'null' : String(value))
|
|
}
|
|
})
|
|
|
|
const stringifiedParams = normalizedParams.toString()
|
|
|
|
return stringifiedParams.length > 0
|
|
? `/graphql/${pathQueryId}/UserTweets?${stringifiedParams}`
|
|
: `/graphql/${pathQueryId}/UserTweets`
|
|
}
|
|
|
|
/**
|
|
* get user tweets
|
|
*/
|
|
export const getUserTweets = async (
|
|
params: GetUserTweetsParams,
|
|
pathQueryId: string = '36rb3Xj3iJ64Q-9wKDjCcQ',
|
|
options?: RequestInit,
|
|
): Promise<getUserTweetsResponse> => {
|
|
const res = await fetch(getGetUserTweetsUrl(params, pathQueryId), {
|
|
...options,
|
|
method: 'GET',
|
|
})
|
|
|
|
const body = [204, 205, 304].includes(res.status) ? null : await res.text()
|
|
|
|
const data: getUserTweetsResponse['data'] = body ? JSON.parse(body) : {}
|
|
return {
|
|
data,
|
|
status: res.status,
|
|
headers: res.headers,
|
|
} as getUserTweetsResponse
|
|
}
|