62 lines
1.6 KiB
Go
62 lines
1.6 KiB
Go
package qbittorrent_application
|
|
|
|
import (
|
|
"github.com/rs/zerolog"
|
|
"net/http"
|
|
qbittorrent_model "seanime/internal/torrent_clients/qbittorrent/model"
|
|
qbittorrent_util "seanime/internal/torrent_clients/qbittorrent/util"
|
|
)
|
|
|
|
type Client struct {
|
|
BaseUrl string
|
|
Client *http.Client
|
|
Logger *zerolog.Logger
|
|
}
|
|
|
|
func (c Client) GetAppVersion() (string, error) {
|
|
var res string
|
|
if err := qbittorrent_util.GetInto(c.Client, &res, c.BaseUrl+"/version", nil); err != nil {
|
|
return "", err
|
|
}
|
|
return res, nil
|
|
}
|
|
|
|
func (c Client) GetAPIVersion() (string, error) {
|
|
var res string
|
|
if err := qbittorrent_util.GetInto(c.Client, &res, c.BaseUrl+"/webapiVersion", nil); err != nil {
|
|
return "", err
|
|
}
|
|
return res, nil
|
|
}
|
|
|
|
func (c Client) GetBuildInfo() (*qbittorrent_model.BuildInfo, error) {
|
|
var res qbittorrent_model.BuildInfo
|
|
if err := qbittorrent_util.GetInto(c.Client, &res, c.BaseUrl+"/buildInfo", nil); err != nil {
|
|
return nil, err
|
|
}
|
|
return &res, nil
|
|
}
|
|
|
|
func (c Client) GetAppPreferences() (*qbittorrent_model.Preferences, error) {
|
|
var res qbittorrent_model.Preferences
|
|
if err := qbittorrent_util.GetInto(c.Client, &res, c.BaseUrl+"/preferences", nil); err != nil {
|
|
return nil, err
|
|
}
|
|
return &res, nil
|
|
}
|
|
|
|
func (c Client) SetAppPreferences(p *qbittorrent_model.Preferences) error {
|
|
if err := qbittorrent_util.Post(c.Client, c.BaseUrl+"/setPreferences", p); err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (c Client) GetDefaultSavePath() (string, error) {
|
|
var res string
|
|
if err := qbittorrent_util.GetInto(c.Client, &res, c.BaseUrl+"/defaultSavePath", nil); err != nil {
|
|
return "", err
|
|
}
|
|
return res, nil
|
|
}
|