Documentation
¶
Index ¶
- func GetRootTweetID(tweetID string, tweetDetailsRes *TweetDetailsResponse) string
- func IsReply(tweetID string, tweetDetailsRes *TweetDetailsResponse) bool
- type Client
- func (c *Client) CreateTweet(tweetContent string, opts *TweetOptions) (*CreateTweetResponse, error)
- func (c *Client) FavoriteTweet(tweetID string) error
- func (c *Client) GetTweetDetails(tweetID string) (*TweetDetailsResponse, error)
- func (c *Client) ParseSearchTimelineResponse(res *SearchTimelineResponse) ([]*ParsedTweet, error)
- func (c *Client) ParseTweet(res *TweetDetailsResponse) (*ParsedTweet, error)
- func (c *Client) ParseTweetReplies(res *TweetDetailsResponse, userIDFilter string) ([]ParsedTweet, error)
- func (c *Client) SearchReplies(username string, limit int) (*SearchTimelineResponse, error)
- func (c *Client) SearchTimeline(accounts []string) (*SearchTimelineResponse, error)
- type CreateTweetFeatures
- type CreateTweetRequest
- type CreateTweetResponse
- type CreateTweetVariables
- type FavoriteTweetRequest
- type FavoriteTweetResponse
- type ParsedTweet
- type SearchTimelineResponse
- type TweetDetailsResponse
- type TweetOptions
- type TwitterCredential
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetRootTweetID ¶
func GetRootTweetID(tweetID string, tweetDetailsRes *TweetDetailsResponse) string
GetRootTweetID gets the tweet ID of the root tweet of a conversation
func IsReply ¶
func IsReply(tweetID string, tweetDetailsRes *TweetDetailsResponse) bool
IsReply checks if a tweet is a reply to another tweet
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
func (*Client) CreateTweet ¶
func (c *Client) CreateTweet(tweetContent string, opts *TweetOptions) (*CreateTweetResponse, error)
CreateTweet creates a tweet
func (*Client) FavoriteTweet ¶
FavoriteTweet favorites a tweet
func (*Client) GetTweetDetails ¶
func (c *Client) GetTweetDetails(tweetID string) (*TweetDetailsResponse, error)
GetTweetDetails gets the details of a tweet
func (*Client) ParseSearchTimelineResponse ¶
func (c *Client) ParseSearchTimelineResponse(res *SearchTimelineResponse) ([]*ParsedTweet, error)
func (*Client) ParseTweet ¶
func (c *Client) ParseTweet(res *TweetDetailsResponse) (*ParsedTweet, error)
ParseTweet parses a single tweet from a TweetDetailsResponse
func (*Client) ParseTweetReplies ¶
func (c *Client) ParseTweetReplies(res *TweetDetailsResponse, userIDFilter string) ([]ParsedTweet, error)
ParseTweetReplies parses the replies of a tweet. userIDFilter is the user ID of the user whose replies we want to parse. If userIDFilter is empty, all replies are parsed.
func (*Client) SearchReplies ¶
func (c *Client) SearchReplies(username string, limit int) (*SearchTimelineResponse, error)
SearchReplies searches for replies to the specified user
func (*Client) SearchTimeline ¶
func (c *Client) SearchTimeline(accounts []string) (*SearchTimelineResponse, error)
SearchTimeline searches the timeline for tweets from the given accounts
type CreateTweetFeatures ¶
type CreateTweetFeatures struct { CommunitiesWebEnableTweetCommunityResultsFetch bool `json:"communities_web_enable_tweet_community_results_fetch"` C9STweetAnatomyModeratorBadgeEnabled bool `json:"c9s_tweet_anatomy_moderator_badge_enabled"` ResponsiveWebEditTweetAPIEnabled bool `json:"responsive_web_edit_tweet_api_enabled"` GraphqlIsTranslatableRwebTweetIsTranslatableEnabled bool `json:"graphql_is_translatable_rweb_tweet_is_translatable_enabled"` ViewCountsEverywhereAPIEnabled bool `json:"view_counts_everywhere_api_enabled"` LongformNotetweetsConsumptionEnabled bool `json:"longform_notetweets_consumption_enabled"` ResponsiveWebTwitterArticleTweetConsumptionEnabled bool `json:"responsive_web_twitter_article_tweet_consumption_enabled"` TweetAwardsWebTippingEnabled bool `json:"tweet_awards_web_tipping_enabled"` CreatorSubscriptionsQuoteTweetPreviewEnabled bool `json:"creator_subscriptions_quote_tweet_preview_enabled"` LongformNotetweetsRichTextReadEnabled bool `json:"longform_notetweets_rich_text_read_enabled"` LongformNotetweetsInlineMediaEnabled bool `json:"longform_notetweets_inline_media_enabled"` ArticlesPreviewEnabled bool `json:"articles_preview_enabled"` RwebVideoTimestampsEnabled bool `json:"rweb_video_timestamps_enabled"` ProfileLabelImprovementsPcfLabelInPostEnabled bool `json:"profile_label_improvements_pcf_label_in_post_enabled"` RwebTipjarConsumptionEnabled bool `json:"rweb_tipjar_consumption_enabled"` ResponsiveWebGraphqlExcludeDirectiveEnabled bool `json:"responsive_web_graphql_exclude_directive_enabled"` VerifiedPhoneLabelEnabled bool `json:"verified_phone_label_enabled"` FreedomOfSpeechNotReachFetchEnabled bool `json:"freedom_of_speech_not_reach_fetch_enabled"` StandardizedNudgesMisinfo bool `json:"standardized_nudges_misinfo"` TweetWithVisibilityResultsPreferGqlLimitedActionsPolicyEnabled bool `json:"tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled"` ResponsiveWebGraphqlSkipUserProfileImageExtensionsEnabled bool `json:"responsive_web_graphql_skip_user_profile_image_extensions_enabled"` ResponsiveWebEnhanceCardsEnabled bool `json:"responsive_web_enhance_cards_enabled"` }
type CreateTweetRequest ¶
type CreateTweetRequest struct { Variables CreateTweetVariables `json:"variables,omitempty"` Features CreateTweetFeatures `json:"features,omitempty"` QueryID string `json:"queryId,omitempty"` }
type CreateTweetResponse ¶
type CreateTweetResponse struct { Data struct { CreateTweet struct { TweetResults struct { Result struct { RestID string `json:"rest_id"` Core struct { UserResults struct { Result struct { Typename string `json:"__typename"` ID string `json:"id"` RestID string `json:"rest_id"` AffiliatesHighlightedLabel struct { } `json:"affiliates_highlighted_label"` HasGraduatedAccess bool `json:"has_graduated_access"` IsBlueVerified bool `json:"is_blue_verified"` ProfileImageShape string `json:"profile_image_shape"` Legacy struct { Following bool `json:"following"` CanDm bool `json:"can_dm"` CanMediaTag bool `json:"can_media_tag"` CreatedAt string `json:"created_at"` DefaultProfile bool `json:"default_profile"` DefaultProfileImage bool `json:"default_profile_image"` Description string `json:"description"` Entities struct { Description struct { Urls []any `json:"urls"` } `json:"description"` } `json:"entities"` FastFollowersCount int `json:"fast_followers_count"` FavouritesCount int `json:"favourites_count"` FollowersCount int `json:"followers_count"` FriendsCount int `json:"friends_count"` HasCustomTimelines bool `json:"has_custom_timelines"` IsTranslator bool `json:"is_translator"` ListedCount int `json:"listed_count"` Location string `json:"location"` MediaCount int `json:"media_count"` Name string `json:"name"` NeedsPhoneVerification bool `json:"needs_phone_verification"` NormalFollowersCount int `json:"normal_followers_count"` PinnedTweetIdsStr []string `json:"pinned_tweet_ids_str"` PossiblySensitive bool `json:"possibly_sensitive"` ProfileImageURLHTTPS string `json:"profile_image_url_https"` ProfileInterstitialType string `json:"profile_interstitial_type"` ScreenName string `json:"screen_name"` StatusesCount int `json:"statuses_count"` TranslatorType string `json:"translator_type"` Verified bool `json:"verified"` WantRetweets bool `json:"want_retweets"` WithheldInCountries []any `json:"withheld_in_countries"` } `json:"legacy"` TipjarSettings struct { IsEnabled bool `json:"is_enabled"` BitcoinHandle string `json:"bitcoin_handle"` } `json:"tipjar_settings"` } `json:"result"` } `json:"user_results"` } `json:"core"` UnmentionData struct { } `json:"unmention_data"` EditControl struct { EditTweetIds []string `json:"edit_tweet_ids"` EditableUntilMsecs string `json:"editable_until_msecs"` IsEditEligible bool `json:"is_edit_eligible"` EditsRemaining string `json:"edits_remaining"` } `json:"edit_control"` IsTranslatable bool `json:"is_translatable"` Views struct { State string `json:"state"` } `json:"views"` Source string `json:"source"` Legacy struct { BookmarkCount int `json:"bookmark_count"` Bookmarked bool `json:"bookmarked"` CreatedAt string `json:"created_at"` ConversationIDStr string `json:"conversation_id_str"` DisplayTextRange []int `json:"display_text_range"` Entities struct { Hashtags []any `json:"hashtags"` Symbols []any `json:"symbols"` Timestamps []any `json:"timestamps"` Urls []any `json:"urls"` UserMentions []struct { IDStr string `json:"id_str"` Name string `json:"name"` ScreenName string `json:"screen_name"` Indices []int `json:"indices"` } `json:"user_mentions"` } `json:"entities"` FavoriteCount int `json:"favorite_count"` Favorited bool `json:"favorited"` FullText string `json:"full_text"` InReplyToScreenName string `json:"in_reply_to_screen_name"` InReplyToStatusIDStr string `json:"in_reply_to_status_id_str"` InReplyToUserIDStr string `json:"in_reply_to_user_id_str"` IsQuoteStatus bool `json:"is_quote_status"` Lang string `json:"lang"` QuoteCount int `json:"quote_count"` ReplyCount int `json:"reply_count"` RetweetCount int `json:"retweet_count"` Retweeted bool `json:"retweeted"` UserIDStr string `json:"user_id_str"` IDStr string `json:"id_str"` } `json:"legacy"` UnmentionInfo struct { } `json:"unmention_info"` } `json:"result"` } `json:"tweet_results"` } `json:"create_tweet"` } `json:"data"` }
type CreateTweetVariables ¶
type CreateTweetVariables struct { TweetText string `json:"tweet_text,omitempty"` Reply *struct { InReplyToTweetID string `json:"in_reply_to_tweet_id,omitempty"` ExcludeReplyUserIds []any `json:"exclude_reply_user_ids,omitempty"` } `json:"reply,omitempty"` DarkRequest bool `json:"dark_request,omitempty"` Media struct { MediaEntities []any `json:"media_entities,omitempty"` PossiblySensitive bool `json:"possibly_sensitive,omitempty"` } `json:"media,omitempty"` SemanticAnnotationIds []any `json:"semantic_annotation_ids,omitempty"` DisallowedReplyOptions any `json:"disallowed_reply_options,omitempty"` }
type FavoriteTweetRequest ¶
type FavoriteTweetResponse ¶
type FavoriteTweetResponse struct { Data struct { FavoriteTweet string `json:"favorite_tweet,omitempty"` } `json:"data,omitempty"` }
type ParsedTweet ¶
type ParsedTweet struct { // User Info UserID string `json:"user_id,omitempty"` UserName string `json:"user_name,omitempty"` DisplayName string `json:"display_name,omitempty"` // Tweet Info TweetCreatedAt int64 `json:"tweet_created_at,omitempty"` TweetID string `json:"tweet_id,omitempty"` TweetConversationID string `json:"tweet_conversation_id,omitempty"` TweetText string `json:"tweet_text,omitempty"` TweetImages []string `json:"tweet_images,omitempty"` TweetLinks []string `json:"tweet_links,omitempty"` TweetReplies []ParsedTweet `json:"reply_tweets,omitempty"` InReplyToTweetID string `json:"in_reply_to_tweet_id,omitempty"` InReplyToScreenName string `json:"in_reply_to_screen_name,omitempty"` }
type SearchTimelineResponse ¶
type SearchTimelineResponse struct { Data struct { SearchByRawQuery struct { SearchTimeline struct { Timeline struct { Instructions []struct { Type string `json:"type"` Entries []struct { EntryID string `json:"entryId"` SortIndex string `json:"sortIndex"` Content struct { EntryType string `json:"entryType"` Typename string `json:"__typename"` ItemContent struct { ItemType string `json:"itemType"` Typename string `json:"__typename"` TweetResults struct { Result struct { Typename string `json:"__typename"` RestID string `json:"rest_id"` Core struct { UserResults struct { Result struct { Typename string `json:"__typename"` ID string `json:"id"` RestID string `json:"rest_id"` AffiliatesHighlightedLabel struct { } `json:"affiliates_highlighted_label"` HasGraduatedAccess bool `json:"has_graduated_access"` IsBlueVerified bool `json:"is_blue_verified"` ProfileImageShape string `json:"profile_image_shape"` Legacy struct { FollowedBy bool `json:"followed_by"` Following bool `json:"following"` CanDm bool `json:"can_dm"` CanMediaTag bool `json:"can_media_tag"` CreatedAt string `json:"created_at"` DefaultProfile bool `json:"default_profile"` DefaultProfileImage bool `json:"default_profile_image"` Description string `json:"description"` Entities struct { Description struct { Urls []struct { DisplayURL string `json:"display_url"` ExpandedURL string `json:"expanded_url"` URL string `json:"url"` Indices []int `json:"indices"` } `json:"urls"` } `json:"description"` URL struct { Urls []struct { DisplayURL string `json:"display_url"` ExpandedURL string `json:"expanded_url"` URL string `json:"url"` Indices []int `json:"indices"` } `json:"urls"` } `json:"url"` } `json:"entities"` FastFollowersCount int `json:"fast_followers_count"` FavouritesCount int `json:"favourites_count"` FollowersCount int `json:"followers_count"` FriendsCount int `json:"friends_count"` HasCustomTimelines bool `json:"has_custom_timelines"` IsTranslator bool `json:"is_translator"` ListedCount int `json:"listed_count"` Location string `json:"location"` MediaCount int `json:"media_count"` Name string `json:"name"` NormalFollowersCount int `json:"normal_followers_count"` PinnedTweetIdsStr []string `json:"pinned_tweet_ids_str"` PossiblySensitive bool `json:"possibly_sensitive"` ProfileBannerURL string `json:"profile_banner_url"` ProfileImageURLHTTPS string `json:"profile_image_url_https"` ProfileInterstitialType string `json:"profile_interstitial_type"` ScreenName string `json:"screen_name"` StatusesCount int `json:"statuses_count"` TranslatorType string `json:"translator_type"` URL string `json:"url"` Verified bool `json:"verified"` WantRetweets bool `json:"want_retweets"` WithheldInCountries []interface{} `json:"withheld_in_countries"` } `json:"legacy"` Professional struct { RestID string `json:"rest_id"` ProfessionalType string `json:"professional_type"` Category []struct { ID int `json:"id"` Name string `json:"name"` IconName string `json:"icon_name"` } `json:"category"` } `json:"professional"` TipjarSettings struct { IsEnabled bool `json:"is_enabled"` EthereumHandle string `json:"ethereum_handle"` } `json:"tipjar_settings"` SuperFollowEligible bool `json:"super_follow_eligible"` } `json:"result"` } `json:"user_results"` } `json:"core"` UnmentionData struct { } `json:"unmention_data"` EditControl struct { EditTweetIds []string `json:"edit_tweet_ids"` EditableUntilMsecs string `json:"editable_until_msecs"` IsEditEligible bool `json:"is_edit_eligible"` EditsRemaining string `json:"edits_remaining"` } `json:"edit_control"` IsTranslatable bool `json:"is_translatable"` Views struct { Count string `json:"count"` State string `json:"state"` } `json:"views"` Source string `json:"source"` Legacy struct { BookmarkCount int `json:"bookmark_count"` Bookmarked bool `json:"bookmarked"` CreatedAt string `json:"created_at"` ConversationIDStr string `json:"conversation_id_str"` DisplayTextRange []int `json:"display_text_range"` Entities struct { Hashtags []interface{} `json:"hashtags"` Media []struct { DisplayURL string `json:"display_url"` ExpandedURL string `json:"expanded_url"` IDStr string `json:"id_str"` Indices []int `json:"indices"` MediaKey string `json:"media_key"` MediaURLHTTPS string `json:"media_url_https"` Type string `json:"type"` URL string `json:"url"` ExtMediaAvailability struct { Status string `json:"status"` } `json:"ext_media_availability"` Features struct { Large struct { Faces []struct { X int `json:"x"` Y int `json:"y"` H int `json:"h"` W int `json:"w"` } `json:"faces"` } `json:"large"` Medium struct { Faces []struct { X int `json:"x"` Y int `json:"y"` H int `json:"h"` W int `json:"w"` } `json:"faces"` } `json:"medium"` Small struct { Faces []struct { X int `json:"x"` Y int `json:"y"` H int `json:"h"` W int `json:"w"` } `json:"faces"` } `json:"small"` Orig struct { Faces []struct { X int `json:"x"` Y int `json:"y"` H int `json:"h"` W int `json:"w"` } `json:"faces"` } `json:"orig"` } `json:"features"` Sizes struct { Large struct { H int `json:"h"` W int `json:"w"` Resize string `json:"resize"` } `json:"large"` Medium struct { H int `json:"h"` W int `json:"w"` Resize string `json:"resize"` } `json:"medium"` Small struct { H int `json:"h"` W int `json:"w"` Resize string `json:"resize"` } `json:"small"` Thumb struct { H int `json:"h"` W int `json:"w"` Resize string `json:"resize"` } `json:"thumb"` } `json:"sizes"` OriginalInfo struct { Height int `json:"height"` Width int `json:"width"` FocusRects []struct { X int `json:"x"` Y int `json:"y"` W int `json:"w"` H int `json:"h"` } `json:"focus_rects"` } `json:"original_info"` AllowDownloadStatus struct { AllowDownload bool `json:"allow_download"` } `json:"allow_download_status"` MediaResults struct { Result struct { MediaKey string `json:"media_key"` } `json:"result"` } `json:"media_results"` } `json:"media"` Symbols []interface{} `json:"symbols"` Timestamps []interface{} `json:"timestamps"` Urls []interface{} `json:"urls"` UserMentions []struct { IDStr string `json:"id_str"` Name string `json:"name"` ScreenName string `json:"screen_name"` Indices []int `json:"indices"` } `json:"user_mentions"` } `json:"entities"` ExtendedEntities struct { Media []struct { DisplayURL string `json:"display_url"` ExpandedURL string `json:"expanded_url"` IDStr string `json:"id_str"` Indices []int `json:"indices"` MediaKey string `json:"media_key"` MediaURLHTTPS string `json:"media_url_https"` Type string `json:"type"` URL string `json:"url"` ExtMediaAvailability struct { Status string `json:"status"` } `json:"ext_media_availability"` Features struct { Large struct { Faces []struct { X int `json:"x"` Y int `json:"y"` H int `json:"h"` W int `json:"w"` } `json:"faces"` } `json:"large"` Medium struct { Faces []struct { X int `json:"x"` Y int `json:"y"` H int `json:"h"` W int `json:"w"` } `json:"faces"` } `json:"medium"` Small struct { Faces []struct { X int `json:"x"` Y int `json:"y"` H int `json:"h"` W int `json:"w"` } `json:"faces"` } `json:"small"` Orig struct { Faces []struct { X int `json:"x"` Y int `json:"y"` H int `json:"h"` W int `json:"w"` } `json:"faces"` } `json:"orig"` } `json:"features"` Sizes struct { Large struct { H int `json:"h"` W int `json:"w"` Resize string `json:"resize"` } `json:"large"` Medium struct { H int `json:"h"` W int `json:"w"` Resize string `json:"resize"` } `json:"medium"` Small struct { H int `json:"h"` W int `json:"w"` Resize string `json:"resize"` } `json:"small"` Thumb struct { H int `json:"h"` W int `json:"w"` Resize string `json:"resize"` } `json:"thumb"` } `json:"sizes"` OriginalInfo struct { Height int `json:"height"` Width int `json:"width"` FocusRects []struct { X int `json:"x"` Y int `json:"y"` W int `json:"w"` H int `json:"h"` } `json:"focus_rects"` } `json:"original_info"` AllowDownloadStatus struct { AllowDownload bool `json:"allow_download"` } `json:"allow_download_status"` MediaResults struct { Result struct { MediaKey string `json:"media_key"` } `json:"result"` } `json:"media_results"` } `json:"media"` } `json:"extended_entities"` FavoriteCount int `json:"favorite_count"` Favorited bool `json:"favorited"` FullText string `json:"full_text"` InReplyToScreenName string `json:"in_reply_to_screen_name,omitempty"` InReplyToStatusIDStr string `json:"in_reply_to_status_id_str,omitempty"` IsQuoteStatus bool `json:"is_quote_status"` Lang string `json:"lang"` PossiblySensitive bool `json:"possibly_sensitive"` PossiblySensitiveEditable bool `json:"possibly_sensitive_editable"` QuoteCount int `json:"quote_count"` ReplyCount int `json:"reply_count"` RetweetCount int `json:"retweet_count"` Retweeted bool `json:"retweeted"` UserIDStr string `json:"user_id_str"` IDStr string `json:"id_str"` } `json:"legacy"` } `json:"result"` } `json:"tweet_results"` TweetDisplayType string `json:"tweetDisplayType"` } `json:"itemContent"` ClientEventInfo struct { Component string `json:"component"` Element string `json:"element"` Details struct { TimelinesDetails struct { ControllerData string `json:"controllerData"` } `json:"timelinesDetails"` } `json:"details"` } `json:"clientEventInfo"` } `json:"content"` } `json:"entries"` } `json:"instructions"` } `json:"timeline"` } `json:"search_timeline"` } `json:"search_by_raw_query"` } `json:"data"` }
type TweetDetailsResponse ¶
type TweetDetailsResponse struct { Data struct { ThreadedConversationWithInjectionsV2 struct { Instructions []struct { Type string `json:"type,omitempty"` Entries []struct { EntryID string `json:"entryId,omitempty"` SortIndex string `json:"sortIndex,omitempty"` Content struct { EntryType string `json:"entryType,omitempty"` Typename string `json:"__typename,omitempty"` ItemContent struct { ItemType string `json:"itemType,omitempty"` Typename string `json:"__typename,omitempty"` TweetResults struct { Result struct { Typename string `json:"__typename,omitempty"` RestID string `json:"rest_id,omitempty"` HasBirdwatchNotes bool `json:"has_birdwatch_notes,omitempty"` Core struct { UserResults struct { Result struct { Typename string `json:"__typename,omitempty"` ID string `json:"id,omitempty"` RestID string `json:"rest_id,omitempty"` AffiliatesHighlightedLabel struct { } `json:"affiliates_highlighted_label,omitempty"` HasGraduatedAccess bool `json:"has_graduated_access,omitempty"` IsBlueVerified bool `json:"is_blue_verified,omitempty"` ProfileImageShape string `json:"profile_image_shape,omitempty"` Legacy struct { FollowedBy bool `json:"followed_by,omitempty"` Following bool `json:"following,omitempty"` CanDm bool `json:"can_dm,omitempty"` CanMediaTag bool `json:"can_media_tag,omitempty"` CreatedAt string `json:"created_at,omitempty"` DefaultProfile bool `json:"default_profile,omitempty"` DefaultProfileImage bool `json:"default_profile_image,omitempty"` Description string `json:"description,omitempty"` Entities struct { Description struct { Urls []struct { DisplayURL string `json:"display_url,omitempty"` ExpandedURL string `json:"expanded_url,omitempty"` URL string `json:"url,omitempty"` Indices []int `json:"indices,omitempty"` } `json:"urls,omitempty"` } `json:"description,omitempty"` URL struct { Urls []struct { DisplayURL string `json:"display_url,omitempty"` ExpandedURL string `json:"expanded_url,omitempty"` URL string `json:"url,omitempty"` Indices []int `json:"indices,omitempty"` } `json:"urls,omitempty"` } `json:"url,omitempty"` } `json:"entities,omitempty"` FastFollowersCount int `json:"fast_followers_count,omitempty"` FavouritesCount int `json:"favourites_count,omitempty"` FollowersCount int `json:"followers_count,omitempty"` FriendsCount int `json:"friends_count,omitempty"` HasCustomTimelines bool `json:"has_custom_timelines,omitempty"` IsTranslator bool `json:"is_translator,omitempty"` ListedCount int `json:"listed_count,omitempty"` Location string `json:"location,omitempty"` MediaCount int `json:"media_count,omitempty"` Name string `json:"name,omitempty"` NormalFollowersCount int `json:"normal_followers_count,omitempty"` PinnedTweetIdsStr []string `json:"pinned_tweet_ids_str,omitempty"` PossiblySensitive bool `json:"possibly_sensitive,omitempty"` ProfileBannerURL string `json:"profile_banner_url,omitempty"` ProfileImageURLHTTPS string `json:"profile_image_url_https,omitempty"` ProfileInterstitialType string `json:"profile_interstitial_type,omitempty"` ScreenName string `json:"screen_name,omitempty"` StatusesCount int `json:"statuses_count,omitempty"` TranslatorType string `json:"translator_type,omitempty"` URL string `json:"url,omitempty"` Verified bool `json:"verified,omitempty"` WantRetweets bool `json:"want_retweets,omitempty"` WithheldInCountries []any `json:"withheld_in_countries,omitempty"` } `json:"legacy,omitempty"` Professional struct { RestID string `json:"rest_id,omitempty"` ProfessionalType string `json:"professional_type,omitempty"` Category []struct { ID int `json:"id,omitempty"` Name string `json:"name,omitempty"` IconName string `json:"icon_name,omitempty"` } `json:"category,omitempty"` } `json:"professional,omitempty"` TipjarSettings struct { IsEnabled bool `json:"is_enabled,omitempty"` EthereumHandle string `json:"ethereum_handle,omitempty"` } `json:"tipjar_settings,omitempty"` SuperFollowEligible bool `json:"super_follow_eligible,omitempty"` } `json:"result,omitempty"` } `json:"user_results,omitempty"` } `json:"core,omitempty"` UnmentionData struct { } `json:"unmention_data,omitempty"` EditControl struct { EditTweetIds []string `json:"edit_tweet_ids,omitempty"` EditableUntilMsecs string `json:"editable_until_msecs,omitempty"` IsEditEligible bool `json:"is_edit_eligible,omitempty"` EditsRemaining string `json:"edits_remaining,omitempty"` } `json:"edit_control,omitempty"` IsTranslatable bool `json:"is_translatable,omitempty"` Views struct { Count string `json:"count,omitempty"` State string `json:"state,omitempty"` } `json:"views,omitempty"` Source string `json:"source,omitempty"` Legacy struct { BookmarkCount int `json:"bookmark_count,omitempty"` Bookmarked bool `json:"bookmarked,omitempty"` CreatedAt string `json:"created_at,omitempty"` ConversationIDStr string `json:"conversation_id_str,omitempty"` DisplayTextRange []int `json:"display_text_range,omitempty"` Entities struct { Hashtags []any `json:"hashtags,omitempty"` Media []struct { DisplayURL string `json:"display_url,omitempty"` ExpandedURL string `json:"expanded_url,omitempty"` IDStr string `json:"id_str,omitempty"` Indices []int `json:"indices,omitempty"` MediaKey string `json:"media_key,omitempty"` MediaURLHTTPS string `json:"media_url_https,omitempty"` Type string `json:"type,omitempty"` URL string `json:"url,omitempty"` ExtMediaAvailability struct { Status string `json:"status,omitempty"` } `json:"ext_media_availability,omitempty"` Features struct { Large struct { Faces []any `json:"faces,omitempty"` } `json:"large,omitempty"` Medium struct { Faces []any `json:"faces,omitempty"` } `json:"medium,omitempty"` Small struct { Faces []any `json:"faces,omitempty"` } `json:"small,omitempty"` Orig struct { Faces []any `json:"faces,omitempty"` } `json:"orig,omitempty"` } `json:"features,omitempty"` Sizes struct { Large struct { H int `json:"h,omitempty"` W int `json:"w,omitempty"` Resize string `json:"resize,omitempty"` } `json:"large,omitempty"` Medium struct { H int `json:"h,omitempty"` W int `json:"w,omitempty"` Resize string `json:"resize,omitempty"` } `json:"medium,omitempty"` Small struct { H int `json:"h,omitempty"` W int `json:"w,omitempty"` Resize string `json:"resize,omitempty"` } `json:"small,omitempty"` Thumb struct { H int `json:"h,omitempty"` W int `json:"w,omitempty"` Resize string `json:"resize,omitempty"` } `json:"thumb,omitempty"` } `json:"sizes,omitempty"` OriginalInfo struct { Height int `json:"height,omitempty"` Width int `json:"width,omitempty"` FocusRects []struct { X int `json:"x,omitempty"` Y int `json:"y,omitempty"` W int `json:"w,omitempty"` H int `json:"h,omitempty"` } `json:"focus_rects,omitempty"` } `json:"original_info,omitempty"` AllowDownloadStatus struct { AllowDownload bool `json:"allow_download,omitempty"` } `json:"allow_download_status,omitempty"` MediaResults struct { Result struct { MediaKey string `json:"media_key,omitempty"` } `json:"result,omitempty"` } `json:"media_results,omitempty"` } `json:"media,omitempty"` Symbols []struct { Indices []int `json:"indices,omitempty"` Text string `json:"text,omitempty"` } `json:"symbols,omitempty"` Timestamps []any `json:"timestamps,omitempty"` Urls []struct { DisplayURL string `json:"display_url,omitempty"` ExpandedURL string `json:"expanded_url,omitempty"` URL string `json:"url,omitempty"` Indices []int `json:"indices,omitempty"` } `json:"urls,omitempty"` UserMentions []struct { IDStr string `json:"id_str,omitempty"` Name string `json:"name,omitempty"` ScreenName string `json:"screen_name,omitempty"` Indices []int `json:"indices,omitempty"` } `json:"user_mentions,omitempty"` } `json:"entities,omitempty"` ExtendedEntities struct { Media []struct { DisplayURL string `json:"display_url,omitempty"` ExpandedURL string `json:"expanded_url,omitempty"` IDStr string `json:"id_str,omitempty"` Indices []int `json:"indices,omitempty"` MediaKey string `json:"media_key,omitempty"` MediaURLHTTPS string `json:"media_url_https,omitempty"` Type string `json:"type,omitempty"` URL string `json:"url,omitempty"` ExtMediaAvailability struct { Status string `json:"status,omitempty"` } `json:"ext_media_availability,omitempty"` Features struct { Large struct { Faces []any `json:"faces,omitempty"` } `json:"large,omitempty"` Medium struct { Faces []any `json:"faces,omitempty"` } `json:"medium,omitempty"` Small struct { Faces []any `json:"faces,omitempty"` } `json:"small,omitempty"` Orig struct { Faces []any `json:"faces,omitempty"` } `json:"orig,omitempty"` } `json:"features,omitempty"` Sizes struct { Large struct { H int `json:"h,omitempty"` W int `json:"w,omitempty"` Resize string `json:"resize,omitempty"` } `json:"large,omitempty"` Medium struct { H int `json:"h,omitempty"` W int `json:"w,omitempty"` Resize string `json:"resize,omitempty"` } `json:"medium,omitempty"` Small struct { H int `json:"h,omitempty"` W int `json:"w,omitempty"` Resize string `json:"resize,omitempty"` } `json:"small,omitempty"` Thumb struct { H int `json:"h,omitempty"` W int `json:"w,omitempty"` Resize string `json:"resize,omitempty"` } `json:"thumb,omitempty"` } `json:"sizes,omitempty"` OriginalInfo struct { Height int `json:"height,omitempty"` Width int `json:"width,omitempty"` FocusRects []struct { X int `json:"x,omitempty"` Y int `json:"y,omitempty"` W int `json:"w,omitempty"` H int `json:"h,omitempty"` } `json:"focus_rects,omitempty"` } `json:"original_info,omitempty"` AllowDownloadStatus struct { AllowDownload bool `json:"allow_download,omitempty"` } `json:"allow_download_status,omitempty"` MediaResults struct { Result struct { MediaKey string `json:"media_key,omitempty"` } `json:"result,omitempty"` } `json:"media_results,omitempty"` } `json:"media,omitempty"` } `json:"extended_entities,omitempty"` FavoriteCount int `json:"favorite_count,omitempty"` Favorited bool `json:"favorited,omitempty"` FullText string `json:"full_text,omitempty"` IsQuoteStatus bool `json:"is_quote_status,omitempty"` Lang string `json:"lang,omitempty"` PossiblySensitive bool `json:"possibly_sensitive,omitempty"` PossiblySensitiveEditable bool `json:"possibly_sensitive_editable,omitempty"` QuoteCount int `json:"quote_count,omitempty"` ReplyCount int `json:"reply_count,omitempty"` RetweetCount int `json:"retweet_count,omitempty"` Retweeted bool `json:"retweeted,omitempty"` UserIDStr string `json:"user_id_str,omitempty"` IDStr string `json:"id_str,omitempty"` InReplyToScreenName string `json:"in_reply_to_screen_name,omitempty"` InReplyToStatusIDStr string `json:"in_reply_to_status_id_str,omitempty"` } `json:"legacy,omitempty"` QuickPromoteEligibility struct { Eligibility string `json:"eligibility,omitempty"` } `json:"quick_promote_eligibility,omitempty"` } `json:"result,omitempty"` } `json:"tweet_results,omitempty"` TweetDisplayType string `json:"tweetDisplayType,omitempty"` HasModeratedReplies bool `json:"hasModeratedReplies,omitempty"` } `json:"itemContent,omitempty"` Items []struct { EntryID string `json:"entryId,omitempty"` Item struct { ItemContent struct { ItemType string `json:"itemType,omitempty"` Typename string `json:"__typename,omitempty"` TweetResults struct { Result struct { Typename string `json:"__typename,omitempty"` RestID string `json:"rest_id,omitempty"` HasBirdwatchNotes bool `json:"has_birdwatch_notes,omitempty"` Core struct { UserResults struct { Result struct { Typename string `json:"__typename,omitempty"` ID string `json:"id,omitempty"` RestID string `json:"rest_id,omitempty"` AffiliatesHighlightedLabel struct { } `json:"affiliates_highlighted_label,omitempty"` HasGraduatedAccess bool `json:"has_graduated_access,omitempty"` IsBlueVerified bool `json:"is_blue_verified,omitempty"` ProfileImageShape string `json:"profile_image_shape,omitempty"` Legacy struct { FollowedBy bool `json:"followed_by,omitempty"` Following bool `json:"following,omitempty"` CanDm bool `json:"can_dm,omitempty"` CanMediaTag bool `json:"can_media_tag,omitempty"` CreatedAt string `json:"created_at,omitempty"` DefaultProfile bool `json:"default_profile,omitempty"` DefaultProfileImage bool `json:"default_profile_image,omitempty"` Description string `json:"description,omitempty"` Entities struct { Description struct { Urls []struct { DisplayURL string `json:"display_url,omitempty"` ExpandedURL string `json:"expanded_url,omitempty"` URL string `json:"url,omitempty"` Indices []int `json:"indices,omitempty"` } `json:"urls,omitempty"` } `json:"description,omitempty"` URL struct { Urls []struct { DisplayURL string `json:"display_url,omitempty"` ExpandedURL string `json:"expanded_url,omitempty"` URL string `json:"url,omitempty"` Indices []int `json:"indices,omitempty"` } `json:"urls,omitempty"` } `json:"url,omitempty"` } `json:"entities,omitempty"` FastFollowersCount int `json:"fast_followers_count,omitempty"` FavouritesCount int `json:"favourites_count,omitempty"` FollowersCount int `json:"followers_count,omitempty"` FriendsCount int `json:"friends_count,omitempty"` HasCustomTimelines bool `json:"has_custom_timelines,omitempty"` IsTranslator bool `json:"is_translator,omitempty"` ListedCount int `json:"listed_count,omitempty"` Location string `json:"location,omitempty"` MediaCount int `json:"media_count,omitempty"` Name string `json:"name,omitempty"` NormalFollowersCount int `json:"normal_followers_count,omitempty"` PinnedTweetIdsStr []string `json:"pinned_tweet_ids_str,omitempty"` PossiblySensitive bool `json:"possibly_sensitive,omitempty"` ProfileBannerURL string `json:"profile_banner_url,omitempty"` ProfileImageURLHTTPS string `json:"profile_image_url_https,omitempty"` ProfileInterstitialType string `json:"profile_interstitial_type,omitempty"` ScreenName string `json:"screen_name,omitempty"` StatusesCount int `json:"statuses_count,omitempty"` TranslatorType string `json:"translator_type,omitempty"` URL string `json:"url,omitempty"` Verified bool `json:"verified,omitempty"` WantRetweets bool `json:"want_retweets,omitempty"` WithheldInCountries []any `json:"withheld_in_countries,omitempty"` } `json:"legacy,omitempty"` Professional struct { RestID string `json:"rest_id,omitempty"` ProfessionalType string `json:"professional_type,omitempty"` Category []struct { ID int `json:"id,omitempty"` Name string `json:"name,omitempty"` IconName string `json:"icon_name,omitempty"` } `json:"category,omitempty"` } `json:"professional,omitempty"` TipjarSettings struct { IsEnabled bool `json:"is_enabled,omitempty"` EthereumHandle string `json:"ethereum_handle,omitempty"` } `json:"tipjar_settings,omitempty"` SuperFollowEligible bool `json:"super_follow_eligible,omitempty"` } `json:"result,omitempty"` } `json:"user_results,omitempty"` } `json:"core,omitempty"` UnmentionData struct { } `json:"unmention_data,omitempty"` EditControl struct { EditTweetIds []string `json:"edit_tweet_ids,omitempty"` EditableUntilMsecs string `json:"editable_until_msecs,omitempty"` IsEditEligible bool `json:"is_edit_eligible,omitempty"` EditsRemaining string `json:"edits_remaining,omitempty"` } `json:"edit_control,omitempty"` IsTranslatable bool `json:"is_translatable,omitempty"` Views struct { Count string `json:"count,omitempty"` State string `json:"state,omitempty"` } `json:"views,omitempty"` Source string `json:"source,omitempty"` Legacy struct { BookmarkCount int `json:"bookmark_count,omitempty"` Bookmarked bool `json:"bookmarked,omitempty"` CreatedAt string `json:"created_at,omitempty"` ConversationIDStr string `json:"conversation_id_str,omitempty"` DisplayTextRange []int `json:"display_text_range,omitempty"` Entities struct { Media []struct { DisplayURL string `json:"display_url"` ExpandedURL string `json:"expanded_url"` IDStr string `json:"id_str"` Indices []int `json:"indices"` MediaKey string `json:"media_key"` MediaURLHTTPS string `json:"media_url_https"` Type string `json:"type"` URL string `json:"url"` ExtMediaAvailability struct { Status string `json:"status"` } `json:"ext_media_availability"` Features struct { Large struct { Faces []struct { X int `json:"x"` Y int `json:"y"` H int `json:"h"` W int `json:"w"` } `json:"faces"` } `json:"large"` Medium struct { Faces []struct { X int `json:"x"` Y int `json:"y"` H int `json:"h"` W int `json:"w"` } `json:"faces"` } `json:"medium"` Small struct { Faces []struct { X int `json:"x"` Y int `json:"y"` H int `json:"h"` W int `json:"w"` } `json:"faces"` } `json:"small"` Orig struct { Faces []struct { X int `json:"x"` Y int `json:"y"` H int `json:"h"` W int `json:"w"` } `json:"faces"` } `json:"orig"` } `json:"features"` Sizes struct { Large struct { H int `json:"h"` W int `json:"w"` Resize string `json:"resize"` } `json:"large"` Medium struct { H int `json:"h"` W int `json:"w"` Resize string `json:"resize"` } `json:"medium"` Small struct { H int `json:"h"` W int `json:"w"` Resize string `json:"resize"` } `json:"small"` Thumb struct { H int `json:"h"` W int `json:"w"` Resize string `json:"resize"` } `json:"thumb"` } `json:"sizes"` OriginalInfo struct { Height int `json:"height"` Width int `json:"width"` FocusRects []struct { X int `json:"x"` Y int `json:"y"` W int `json:"w"` H int `json:"h"` } `json:"focus_rects"` } `json:"original_info"` AllowDownloadStatus struct { AllowDownload bool `json:"allow_download"` } `json:"allow_download_status"` MediaResults struct { Result struct { MediaKey string `json:"media_key"` } `json:"result"` } `json:"media_results"` } `json:"media"` Hashtags []any `json:"hashtags,omitempty"` Symbols []any `json:"symbols,omitempty"` Timestamps []any `json:"timestamps,omitempty"` Urls []struct { DisplayURL string `json:"display_url,omitempty"` ExpandedURL string `json:"expanded_url,omitempty"` URL string `json:"url,omitempty"` Indices []int `json:"indices,omitempty"` } `json:"urls,omitempty"` UserMentions []struct { IDStr string `json:"id_str,omitempty"` Name string `json:"name,omitempty"` ScreenName string `json:"screen_name,omitempty"` Indices []int `json:"indices,omitempty"` } `json:"user_mentions,omitempty"` } `json:"entities,omitempty"` FavoriteCount int `json:"favorite_count,omitempty"` Favorited bool `json:"favorited,omitempty"` FullText string `json:"full_text,omitempty"` InReplyToScreenName string `json:"in_reply_to_screen_name,omitempty"` InReplyToStatusIDStr string `json:"in_reply_to_status_id_str,omitempty"` InReplyToUserIDStr string `json:"in_reply_to_user_id_str,omitempty"` IsQuoteStatus bool `json:"is_quote_status,omitempty"` Lang string `json:"lang,omitempty"` PossiblySensitive bool `json:"possibly_sensitive,omitempty"` PossiblySensitiveEditable bool `json:"possibly_sensitive_editable,omitempty"` QuoteCount int `json:"quote_count,omitempty"` ReplyCount int `json:"reply_count,omitempty"` RetweetCount int `json:"retweet_count,omitempty"` Retweeted bool `json:"retweeted,omitempty"` UserIDStr string `json:"user_id_str,omitempty"` IDStr string `json:"id_str,omitempty"` } `json:"legacy,omitempty"` QuickPromoteEligibility struct { Eligibility string `json:"eligibility,omitempty"` } `json:"quick_promote_eligibility,omitempty"` } `json:"result,omitempty"` } `json:"tweet_results,omitempty"` TweetDisplayType string `json:"tweetDisplayType,omitempty"` } `json:"itemContent,omitempty"` ClientEventInfo struct { Details struct { ConversationDetails struct { ConversationSection string `json:"conversationSection,omitempty"` } `json:"conversationDetails,omitempty"` TimelinesDetails struct { ControllerData string `json:"controllerData,omitempty"` } `json:"timelinesDetails,omitempty"` } `json:"details,omitempty"` } `json:"clientEventInfo,omitempty"` } `json:"item,omitempty"` } } `json:"content,omitempty"` } `json:"entries,omitempty"` Direction string `json:"direction,omitempty"` } `json:"instructions,omitempty"` Metadata struct { ReaderModeConfig struct { IsReaderModeAvailable bool `json:"is_reader_mode_available,omitempty"` } `json:"reader_mode_config,omitempty"` } `json:"metadata,omitempty"` } `json:"threaded_conversation_with_injections_v2,omitempty"` } `json:"data,omitempty"` }
type TweetOptions ¶
type TweetOptions struct {
ReplyToTweetID string // ID of tweet to reply to, if this is a reply
}
TweetOptions contains optional parameters for creating a tweet