summaryrefslogtreecommitdiffstats
path: root/internal/client/x.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/client/x.go')
-rw-r--r--internal/client/x.go30
1 files changed, 30 insertions, 0 deletions
diff --git a/internal/client/x.go b/internal/client/x.go
index 6c899ad..bd16692 100644
--- a/internal/client/x.go
+++ b/internal/client/x.go
@@ -26,6 +26,36 @@ func (c *Client) SearchTwitterHistory(username string) (*models.XResponse, error
return &response, nil
}
+func (c *Client) GetFirstFollowers(username string) (*models.FirstFollowersResponse, error) {
+ path := fmt.Sprintf("/x/first/%s", url.PathEscape(username))
+ data, err := c.Get(path, nil)
+ if err != nil {
+ return nil, err
+ }
+
+ var response models.FirstFollowersResponse
+ if err := json.Unmarshal(data, &response); err != nil {
+ return nil, fmt.Errorf("failed to parse first followers response: %w", err)
+ }
+
+ return &response, nil
+}
+
+func (c *Client) GetNotableFollowers(username string) (*models.NotableFollowersResponse, error) {
+ path := fmt.Sprintf("/x/nfl/%s", url.PathEscape(username))
+ data, err := c.Get(path, nil)
+ if err != nil {
+ return nil, err
+ }
+
+ var response models.NotableFollowersResponse
+ if err := json.Unmarshal(data, &response); err != nil {
+ return nil, fmt.Errorf("failed to parse notable followers response: %w", err)
+ }
+
+ return &response, nil
+}
+
func (c *Client) FetchTweetsStream(username string, callback func(result json.RawMessage) error) error {
path := fmt.Sprintf("/x/tweets/%s", url.PathEscape(username))
fullURL := c.config.BaseURL + path