go-client/debrid.go
Deivid Soto f6f24c2c3f
Some checks failed
CI / Test (push) Failing after 1s
CI / Test-1 (push) Failing after 1s
CI / Test-2 (push) Failing after 1s
CI / Lint (push) Failing after 1s
CI / Vet (push) Failing after 1s
feat: implement TorrentClaw Go API client v0.1.0
2026-03-28 11:28:48 +01:00

57 lines
1.8 KiB
Go

package torrentclaw
import "context"
// DebridCheckCacheRequest is the request body for checking debrid cache.
type DebridCheckCacheRequest struct {
InfoHashes []string `json:"infoHashes"`
}
// DebridCheckCacheResponse contains the cache status for each info hash.
type DebridCheckCacheResponse struct {
Cached map[string]bool `json:"cached"`
}
// DebridAddMagnetRequest is the request body for adding a magnet to debrid.
type DebridAddMagnetRequest struct {
InfoHash string `json:"infoHash"`
}
// DebridAddMagnetResponse contains the result of adding a magnet.
type DebridAddMagnetResponse struct {
ID string `json:"id"`
Cached bool `json:"cached"`
Name string `json:"name,omitempty"`
}
// DebridCheckCache checks which info hashes are cached in the user's debrid
// service. Requires a Pro tier API key.
func (c *Client) DebridCheckCache(ctx context.Context, provider, debridKey string, infoHashes []string) (*DebridCheckCacheResponse, error) {
body := DebridCheckCacheRequest{InfoHashes: infoHashes}
headers := map[string]string{
headerDebridProvider: provider,
headerDebridKey: debridKey,
}
var resp DebridCheckCacheResponse
if err := c.doPost(ctx, "/api/v1/debrid/check-cache", body, &resp, headers); err != nil {
return nil, err
}
return &resp, nil
}
// DebridAddMagnet adds a magnet link to the user's debrid service.
// Requires a Pro tier API key.
func (c *Client) DebridAddMagnet(ctx context.Context, provider, debridKey, infoHash string) (*DebridAddMagnetResponse, error) {
body := DebridAddMagnetRequest{InfoHash: infoHash}
headers := map[string]string{
headerDebridProvider: provider,
headerDebridKey: debridKey,
}
var resp DebridAddMagnetResponse
if err := c.doPost(ctx, "/api/v1/debrid/add-magnet", body, &resp, headers); err != nil {
return nil, err
}
return &resp, nil
}