2790 lines
76 KiB
TypeScript
2790 lines
76 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;
|
|
};
|