From 8a342848809a26e7e13933180b4df91d4a52f898 Mon Sep 17 00:00:00 2001 From: s Date: Tue, 25 Nov 2025 09:58:42 -0500 Subject: feat: add dns site check, services list, and additional twitter/x api endpoints --- internal/client/client.go | 4 +++ internal/client/dns.go | 15 ++++++++ internal/client/x.go | 90 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 109 insertions(+) (limited to 'internal/client') diff --git a/internal/client/client.go b/internal/client/client.go index eaf87cb..4aa6f06 100644 --- a/internal/client/client.go +++ b/internal/client/client.go @@ -126,3 +126,7 @@ func (c *Client) Patch(path string, body interface{}) ([]byte, error) { func (c *Client) Put(path string, body interface{}) ([]byte, error) { return c.doRequest(http.MethodPut, path, nil, body) } + +func (c *Client) ListServices() ([]byte, error) { + return c.Get("/", nil) +} diff --git a/internal/client/dns.go b/internal/client/dns.go index 9f9d4e8..96ae8e1 100644 --- a/internal/client/dns.go +++ b/internal/client/dns.go @@ -59,3 +59,18 @@ func (c *Client) CheckDNSTLDStream(params *models.DNSTLDParams, callback func(re return nil } + +func (c *Client) CheckDNSSite(siteURL string) (*models.DNSResponse, error) { + path := fmt.Sprintf("/dns/site/%s", url.PathEscape(siteURL)) + data, err := c.Get(path, nil) + if err != nil { + return nil, err + } + + var response models.DNSResponse + if err := json.Unmarshal(data, &response); err != nil { + return nil, fmt.Errorf("failed to parse DNS site response: %w", err) + } + + return &response, nil +} diff --git a/internal/client/x.go b/internal/client/x.go index b6ddba8..f385b9b 100644 --- a/internal/client/x.go +++ b/internal/client/x.go @@ -207,3 +207,93 @@ func (c *Client) SearchTweetsStream(query string, limit int, callback func(resul return nil } + +func (c *Client) CheckDeletedTweets(handle string) (*models.XResponse, error) { + path := fmt.Sprintf("/x/deleted-tweets/%s", url.PathEscape(handle)) + data, err := c.Get(path, nil) + if err != nil { + return nil, err + } + + var response models.XResponse + if err := json.Unmarshal(data, &response); err != nil { + return nil, fmt.Errorf("failed to parse deleted tweets response: %w", err) + } + + return &response, nil +} + +func (c *Client) CheckDomainAge(domain string) (*models.XResponse, error) { + path := fmt.Sprintf("/x/domain/%s", url.PathEscape(domain)) + data, err := c.Get(path, nil) + if err != nil { + return nil, err + } + + var response models.XResponse + if err := json.Unmarshal(data, &response); err != nil { + return nil, fmt.Errorf("failed to parse domain age response: %w", err) + } + + return &response, nil +} + +func (c *Client) GetHoldersMap(address string) (*models.XResponse, error) { + path := fmt.Sprintf("/x/holders/map/%s", url.PathEscape(address)) + data, err := c.Get(path, nil) + if err != nil { + return nil, err + } + + var response models.XResponse + if err := json.Unmarshal(data, &response); err != nil { + return nil, fmt.Errorf("failed to parse holders map response: %w", err) + } + + return &response, nil +} + +func (c *Client) GetTwitterID(handle string) (*models.XResponse, error) { + path := fmt.Sprintf("/x/id/%s", url.PathEscape(handle)) + data, err := c.Get(path, nil) + if err != nil { + return nil, err + } + + var response models.XResponse + if err := json.Unmarshal(data, &response); err != nil { + return nil, fmt.Errorf("failed to parse Twitter ID response: %w", err) + } + + return &response, nil +} + +func (c *Client) ReverseImageSearch(address string) (*models.XResponse, error) { + path := fmt.Sprintf("/x/image/%s", url.PathEscape(address)) + data, err := c.Get(path, nil) + if err != nil { + return nil, err + } + + var response models.XResponse + if err := json.Unmarshal(data, &response); err != nil { + return nil, fmt.Errorf("failed to parse image search response: %w", err) + } + + return &response, nil +} + +func (c *Client) GetTwitterUserID(handle string) (*models.XResponse, error) { + path := fmt.Sprintf("/x/user-id/%s", url.PathEscape(handle)) + data, err := c.Get(path, nil) + if err != nil { + return nil, err + } + + var response models.XResponse + if err := json.Unmarshal(data, &response); err != nil { + return nil, fmt.Errorf("failed to parse Twitter user ID response: %w", err) + } + + return &response, nil +} -- cgit v1.2.3