diff options
| author | s <[email protected]> | 2025-11-08 02:44:13 -0500 |
|---|---|---|
| committer | s <[email protected]> | 2025-11-08 02:44:13 -0500 |
| commit | dfcf52f30cdbde3a4e1400024b0c27451d179e5d (patch) | |
| tree | cdcac72f0d58b0689777644c771e80d53b502434 /internal/client/x.go | |
| parent | 486a369f05125a3b86d663ea94684466e0658099 (diff) | |
| download | dborg-dfcf52f30cdbde3a4e1400024b0c27451d179e5d.tar.gz dborg-dfcf52f30cdbde3a4e1400024b0c27451d179e5d.zip | |
feat: add unauthenticated client support and new osint/x commands
Diffstat (limited to 'internal/client/x.go')
| -rw-r--r-- | internal/client/x.go | 30 |
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 |
