57 lines
1.8 KiB
Go
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
|
|
}
|