Documentation
¶
Index ¶
- Constants
- Variables
- type Account
- type AccountInfoResponse
- type ActionResponse
- type ActionStatus
- type AlreadyLikedResponse
- type Config
- type LikeGraphQLResponse
- type LikeResponse
- type LikeStatus
- type MediaUploadResponse
- type RetweetGraphQLResponse
- type Tweet
- type TweetGraphQLResponse
- type TwitterConstants
- type UnlikeGraphQLResponse
- type UnretweetGraphQLResponse
- type UserResponse
Constants ¶
const ( QueryIDLike = "lI07N6Otwv1PhnEgXILM7A" QueryIDUnlike = "ZYKSe-w7KEslx3JhSIk5LA" QueryIDRetweet = "ojPdsZsimiJrUGLR1sjUtA" QueryIDUnretweet = "iQtK4dl5hBmXewYZLkNG9A" QueryIDTweet = "bDE2rBtZb3uyrczSZ_pI9g" )
Query IDs for different operations
const (
BearerToken = "Bearer AAAAAAAAAAAAAAAAAAAAANRILgAAAAAAnNwIzUejRCOuH5E6I8xnZz4puTs%3D1Zv7ttfk8LF81IUq16cHjhLTvJu4FA33AGWWjCpTnA"
)
API Constants
const (
UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"
)
User Agent
Variables ¶
var ( ErrAccountLocked = errors.New("account is temporarily locked") ErrAuthFailed = errors.New("authentication failed") ErrInvalidToken = errors.New("invalid token") ErrUnknown = errors.New("unable to complete operation") )
Common error types for Twitter operations
Functions ¶
This section is empty.
Types ¶
type Account ¶
type Account struct {
Ct0 string // CSRF token
AuthToken string // auth_token cookie
Proxy string // Format: "ip:port" or "user:pass@ip:port"
// Account Info
Username string
DisplayName string
UserID string
Email string
PhoneNumber string
IsVerified bool
CreatedAt string
FollowCount int
FollowerCount int
// Session Data
Cookies []*http.Cookie
// Optional fields
ProfileImageURL string
Bio string
Location string
Website string
Suspended bool
Locked bool
}
Account represents a Twitter account with all necessary credentials and information
type AccountInfoResponse ¶
type AccountInfoResponse struct {
ID int64 `json:"id"`
IDStr string `json:"id_str"`
Name string `json:"name"`
ScreenName string `json:"screen_name"`
Location string `json:"location"`
Description string `json:"description"`
FollowersCount int `json:"followers_count"`
FriendsCount int `json:"friends_count"`
ListedCount int `json:"listed_count"`
CreatedAt string `json:"created_at"`
FavouritesCount int `json:"favourites_count"`
StatusesCount int `json:"statuses_count"`
MediaCount int `json:"media_count"`
Protected bool `json:"protected"`
Verified bool `json:"verified"`
Suspended bool `json:"suspended"`
Following bool `json:"following"`
FollowedBy bool `json:"followed_by"`
FollowRequestSent bool `json:"follow_request_sent"`
}
AccountInfoResponse represents the response from Twitter's user lookup endpoint
type ActionResponse ¶
type ActionResponse struct {
Success bool
Error error
Status ActionStatus
}
ActionResponse represents the response from any Twitter action
type ActionStatus ¶
type ActionStatus int
ActionStatus represents the status of any Twitter action (like, retweet, etc.)
const ( StatusSuccess ActionStatus = iota StatusAlreadyDone // Already liked, already retweeted, etc. StatusLocked // Account is locked StatusNotFound // Tweet/User not found StatusRateLimited // Rate limit exceeded StatusAuthError // Authentication error StatusInvalidToken // Invalid token StatusUnknown // Unknown error )
type AlreadyLikedResponse ¶
type AlreadyLikedResponse struct {
Errors []struct {
Message string `json:"message"`
Locations []struct {
Line int `json:"line"`
Column int `json:"column"`
} `json:"locations"`
Path []string `json:"path"`
Extensions struct {
Name string `json:"name"`
Source string `json:"source"`
Code int `json:"code"`
Kind string `json:"kind"`
Tracing struct {
TraceID string `json:"trace_id"`
} `json:"tracing"`
} `json:"extensions"`
} `json:"errors"`
}
AlreadyLikedResponse represents the response when tweet is already liked
type Config ¶
type Config struct {
// HTTP Client settings
MaxRetries int
Timeout time.Duration
FollowRedirects bool
// Logging options
LogLevel utils.LogLevel // Level of logging detail
// Twitter Constants
Constants TwitterConstants
}
Config holds Twitter client configuration
type LikeGraphQLResponse ¶
type LikeGraphQLResponse struct {
Data struct {
FavoriteTweet string `json:"favorite_tweet"`
} `json:"data"`
Errors []struct {
Message string `json:"message"`
Locations []struct {
Line int `json:"line"`
Column int `json:"column"`
} `json:"locations"`
Path []string `json:"path"`
Extensions struct {
Name string `json:"name"`
Source string `json:"source"`
Code int `json:"code"`
Kind string `json:"kind"`
Tracing struct {
TraceID string `json:"trace_id"`
} `json:"tracing"`
} `json:"extensions"`
} `json:"errors"`
}
LikeGraphQLResponse represents the GraphQL response for a like action
type LikeResponse ¶
type LikeResponse struct {
Success bool
Error error
Status LikeStatus
}
LikeResponse represents the response from a like action
type LikeStatus ¶
type LikeStatus int
LikeStatus represents the status of a like action
const ( LikeStatusSuccess LikeStatus = iota LikeStatusAlreadyLiked LikeStatusTweetNotFound LikeStatusRateLimited LikeStatusAuthError LikeStatusUnknown )
type MediaUploadResponse ¶
type MediaUploadResponse struct {
MediaIDString string `json:"media_id_string"`
Size int `json:"size"`
ExpiresAfter int `json:"expires_after_secs"`
}
MediaUploadResponse represents the response from media upload
type RetweetGraphQLResponse ¶
type RetweetGraphQLResponse struct {
Data struct {
CreateRetweet struct {
RetweetResults struct {
Result struct {
RestID string `json:"rest_id"`
Legacy struct {
FullText string `json:"full_text"`
} `json:"legacy"`
} `json:"result"`
} `json:"retweet_results"`
} `json:"create_retweet"`
} `json:"data"`
Errors []struct {
Message string `json:"message"`
Locations []struct {
Line int `json:"line"`
Column int `json:"column"`
} `json:"locations"`
Path []string `json:"path"`
Extensions struct {
Name string `json:"name"`
Source string `json:"source"`
Code int `json:"code"`
Kind string `json:"kind"`
Tracing struct {
TraceID string `json:"trace_id"`
} `json:"tracing"`
} `json:"extensions"`
} `json:"errors"`
}
RetweetGraphQLResponse represents the GraphQL response for a retweet action
type Tweet ¶
type Tweet struct {
ID string
AuthorUsername string
AuthorID string
Text string
CreatedAt string
LikeCount int
RetweetCount int
QuoteCount int
ReplyCount int
IsLiked bool
IsRetweeted bool
IsQuoted bool
IsReply bool
ConversationID string
InReplyToUserID string
}
Tweet represents a Twitter tweet with its basic information
type TweetGraphQLResponse ¶
type TweetGraphQLResponse struct {
Data struct {
CreateTweet struct {
TweetResults struct {
Result struct {
RestID string `json:"rest_id"`
} `json:"result"`
} `json:"tweet_results"`
} `json:"create_tweet"`
} `json:"data"`
Errors []struct {
Message string `json:"message"`
Locations []struct {
Line int `json:"line"`
Column int `json:"column"`
} `json:"locations"`
Path []string `json:"path"`
Extensions struct {
Name string `json:"name"`
Source string `json:"source"`
Code int `json:"code"`
Kind string `json:"kind"`
Tracing struct {
TraceID string `json:"trace_id"`
} `json:"tracing"`
} `json:"extensions"`
} `json:"errors"`
}
TweetGraphQLResponse represents the GraphQL response for a tweet action
type TwitterConstants ¶
type TwitterConstants struct {
// API Constants
BearerToken string
UserAgent string
// Query IDs
QueryID struct {
Like string
Unlike string
Retweet string
Unretweet string
Tweet string
}
}
TwitterConstants holds all Twitter-specific constants
type UnlikeGraphQLResponse ¶
type UnlikeGraphQLResponse struct {
Data struct {
UnfavoriteTweet string `json:"unfavorite_tweet"`
} `json:"data"`
Errors []struct {
Message string `json:"message"`
Locations []struct {
Line int `json:"line"`
Column int `json:"column"`
} `json:"locations"`
Path []string `json:"path"`
Extensions struct {
Name string `json:"name"`
Source string `json:"source"`
Code int `json:"code"`
Kind string `json:"kind"`
Tracing struct {
TraceID string `json:"trace_id"`
} `json:"tracing"`
} `json:"extensions"`
} `json:"errors"`
}
UnlikeGraphQLResponse represents the GraphQL response for an unlike action
type UnretweetGraphQLResponse ¶
type UnretweetGraphQLResponse struct {
Data struct {
Unretweet struct {
SourceTweetResults struct {
Result struct {
RestID string `json:"rest_id"`
Legacy struct {
FullText string `json:"full_text"`
} `json:"legacy"`
} `json:"result"`
} `json:"source_tweet_results"`
} `json:"unretweet"`
} `json:"data"`
Errors []struct {
Message string `json:"message"`
Locations []struct {
Line int `json:"line"`
Column int `json:"column"`
} `json:"locations"`
Path []string `json:"path"`
Extensions struct {
Name string `json:"name"`
Source string `json:"source"`
Code int `json:"code"`
Kind string `json:"kind"`
Tracing struct {
TraceID string `json:"trace_id"`
} `json:"tracing"`
} `json:"extensions"`
} `json:"errors"`
}
UnretweetGraphQLResponse represents the GraphQL response for an unretweet action
type UserResponse ¶
type UserResponse struct {
ID int64 `json:"id"`
IDStr string `json:"id_str"`
Name string `json:"name"`
ScreenName string `json:"screen_name"`
Location string `json:"location"`
Description string `json:"description"`
URL any `json:"url"`
Protected bool `json:"protected"`
FollowersCount int `json:"followers_count"`
FriendsCount int `json:"friends_count"`
ListedCount int `json:"listed_count"`
CreatedAt string `json:"created_at"`
FavouritesCount int `json:"favourites_count"`
Verified bool `json:"verified"`
StatusesCount int `json:"statuses_count"`
MediaCount int `json:"media_count"`
Following bool `json:"following"`
FollowRequestSent bool `json:"follow_request_sent"`
Notifications bool `json:"notifications"`
Entities struct {
Description struct {
Urls []any `json:"urls"`
} `json:"description"`
} `json:"entities"`
}
UserResponse represents the response from Twitter's user-related endpoints