torrent

package
v0.0.0-...-522ee63 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 25, 2019 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// Base API Endpoint
	ENDPOINT_API = "%s/api/v2"

	// Authentication Endpoints
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#authentication
	ENDPOINT_AUTHENTICATION = ENDPOINT_API + "/auth/"

	// [GET] Login
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#login
	ENDPOINT_AUTHENTICATION_LOGIN = ENDPOINT_AUTHENTICATION + "login"

	// [GET] Logout
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#logout
	ENDPOINT_AUTHENTICATION_LOGOUT = ENDPOINT_AUTHENTICATION + "logout"

	// Application endpoints
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#application
	ENDPOINT_APPLICATION = ENDPOINT_API + "/app/"

	// [GET] Get application version
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#get-application-version
	ENDPOINT_APPLICATION_VERSION = ENDPOINT_APPLICATION + "version"

	// [GET] Get API version
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#get-api-version
	ENDPOINT_APPLICATION_API_VERSION = ENDPOINT_APPLICATION + "webapiVersion"

	// [GET] Get build info
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#get-build-info
	ENDPOINT_APPLICATION_BUILD_INFO = ENDPOINT_APPLICATION + "buildInfo"

	// [GET] Shutdown application
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#shutdown-application
	ENDPOINT_APPLICATION_SHUTDOWN = ENDPOINT_APPLICATION + "shutdown"

	// [GET] Get application preferences
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#get-application-preferences
	ENDPOINT_APPLICATION_PREFERENCES = ENDPOINT_APPLICATION + "preferences"

	// [POST] Set application preferences
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#set-application-preferences
	ENDPOINT_APPLICATION_SET_PREFERENCES = ENDPOINT_APPLICATION + "setPreferences"

	// [GET] Get default save path
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#get-default-save-path
	ENDPOINT_APPLICATION_DEFAULT_SAVE_PATH = ENDPOINT_APPLICATION + "defaultSavePath"

	// Log Endpoints
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#log
	ENDPOINT_LOG = ENDPOINT_API + "/log/"

	// [GET] Get log
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#get-log
	ENDPOINT_LOG_GET = ENDPOINT_LOG + "main"

	// [GET] Get peer log
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#get-peer-log
	ENDPOINT_LOG_PEERS = ENDPOINT_LOG + "peers"

	// Sync Endpoints
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#sync
	ENDPOINT_SYNC = ENDPOINT_API + "/sync/"

	// [GET] Get main data
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#get-main-data
	ENDPOINT_SYNC_MAIN = ENDPOINT_SYNC + "maindata"

	// [GET] Get torrent peers data
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#get-torrent-peers-data
	ENDPOINT_SYNC_TORRENT_PEERS = ENDPOINT_SYNC + "torrentPeers"

	// Transfer info
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#transfer-info
	ENDPOINT_TRANSFER = ENDPOINT_API + "transfer"

	// [GET] Get global transfer info
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#get-global-transfer-info
	ENDPOINT_TRANSFER_INFO = ENDPOINT_TRANSFER + "info"

	// [GET] Get alternative speed limits state
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#get-alternative-speed-limits-state
	ENDPOINT_TRANSFER_ALT_SPEED_LIMITS = ENDPOINT_TRANSFER + "speedLimitsMode"

	// [GET] Toggle alternative speed limits
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#toggle-alternative-speed-limits
	ENDPOINT_TRANSFER_TOGGLE_SPEED_LIMITS = ENDPOINT_TRANSFER + "toggleSpeedLimitsMode"

	// [GET] Get global download limit
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#get-global-download-limit
	ENDPOINT_TRANSFER_GET_DOWNLOAD_LIMIT = ENDPOINT_TRANSFER + "downloadLimit"

	// [POST] Set global download limit
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#set-global-download-limit
	ENDPOINT_TRANSFER_SET_DOWNLOAD_LIMIT = ENDPOINT_TRANSFER + "setDownloadLimit"

	// [GET] Get global upload limit
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#get-global-upload-limit
	ENDPOINT_TRANSFER_GET_UPLOAD_LIMIT = ENDPOINT_TRANSFER + "uploadLimit"

	// [POST] Set global upload limit
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#set-global-upload-limit
	ENDPOINT_TRANSFER_SET_UPLOAD_LIMIT = ENDPOINT_TRANSFER + "setUploadLimit"

	// [ANY] Ban peers
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#ban-peers
	ENDPOINT_TRANSFER_BAN_PEERS = ENDPOINT_TRANSFER + "banPeers"

	// Torrent Management Endpoint
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#torrent-management
	ENDPOINT_TORRENT = ENDPOINT_API + "/torrents/"

	// Get torrent list
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#get-torrent-list
	ENDPOINT_TORRENT_LIST = ENDPOINT_TORRENT + "info"

	// [GET] Get torrent generic properties
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#get-torrent-generic-properties
	ENDPOINT_TORRENT_PROPERTIES = ENDPOINT_TORRENT + "properties"

	// [GET] Get torrent trackers
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#get-torrent-trackers
	ENDPOINT_TORRENT_TRACKERS = ENDPOINT_TORRENT + "trackers"

	// [GET] Get torrent web seeds
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#get-torrent-web-seeds
	ENDPOINT_TORRENT_WEB_SEEDS = ENDPOINT_TORRENT + "webseeds"

	// [GET] Get torrent contents
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#get-torrent-contents
	ENDPOINT_TORRENT_CONTENTS = ENDPOINT_TORRENT + "files"

	// [GET] Get torrent pieces' states
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#get-torrent-pieces-states
	ENDPOINT_TORRENT_PIECES_STATES = ENDPOINT_TORRENT + "pieceStates"

	// [GET] Get torrent pieces' hashes
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#get-torrent-pieces-hashes
	ENDPOINT_TORRENT_PIECES_HASHES = ENDPOINT_TORRENT + "pieceHashes"

	// [POST] Pause torrents
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#pause-torrents
	ENDPOINT_TORRENT_PAUSE = ENDPOINT_TORRENT + "pause"

	// [POST] Resume torrents
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#resume-torrents
	ENDPOINT_TORRENT_RESUME = ENDPOINT_TORRENT + "resume"

	// [POST] Delete torrents
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#delete-torrents
	ENDPOINT_TORRENT_DELETE = ENDPOINT_TORRENT + "delete"

	// [POST] Recheck torrents
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#recheck-torrents
	ENDPOINT_TORRENT_RECHECK = ENDPOINT_TORRENT + "recheck"

	// [POST] Reannounce torrents
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#reannounce-torrents
	ENDPOINT_TORRENT_REANNOUNCE = ENDPOINT_TORRENT + "reannounce"

	// [POST] Add new torrent
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#add-new-torrent
	ENDPOINT_TORRENT_CREATE = ENDPOINT_TORRENT + "add"

	// [POST] Add trackers to torrent
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#add-trackers-to-torrent
	ENDPOINT_TORRENT_ADD_TRACKERS = ENDPOINT_TORRENT + "addTrackers"

	// [POST] Edit trackers
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#edit-trackers
	ENDPOINT_TORRENT_EDIT_TRACKERS = ENDPOINT_TORRENT + "editTracker"

	// [POST] Remove trackers
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#remove-trackers
	ENDPOINT_TORRENT_REMOVE_TRACKERS = ENDPOINT_TORRENT + "removeTrackers"

	// [POST] Add peers
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#add-peers
	ENDPOINT_TORRENT_ADD_PEERS = ENDPOINT_TORRENT + "addPeers"

	// [POST] Increase torrent priority
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#increase-torrent-priority
	ENDPOINT_TORRENT_INCREASE_PRIORITY = ENDPOINT_TORRENT + "increasePrio"

	// [POST] Decrease torrent priority
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#decrease-torrent-priority
	ENDPOINT_TORRENT_DECREASE_PRIORITY = ENDPOINT_TORRENT + "decreasePrio"

	// [POST] Maximal torrent priority
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#maximal-torrent-priority
	ENDPOINT_TORRENT_MAX_PRIORITY = ENDPOINT_TORRENT + "topPrio"

	// [POST] Minimal torrent priority
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#minimal-torrent-priority
	ENDPOINT_TORRENT_MIN_PRIORITY = ENDPOINT_TORRENT + "bottomPrio"

	// [POST] Set file priority
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#set-file-priority
	ENDPOINT_TORRENT_SET_FILE_PRIORITY = ENDPOINT_TORRENT + "filePrio"

	// [POST] Get torrent download limit
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#get-torrent-download-limit
	ENDPOINT_TORRENT_GET_DOWNLOAD_LIMIT = ENDPOINT_TORRENT + "downloadLimit"

	// [POST] Set torrent download limit
	// https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#set-torrent-download-limit
	ENDPOINT_TORRENT_SET_DOWNLOAD_LIMIT = ENDPOINT_TORRENT + "setDownloadLimit"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type ApplicationAPIVersion

type ApplicationAPIVersion struct {
	Major uint64
	Minor uint64
}

type ApplicationBuildInfo

type ApplicationBuildInfo struct {
	Bitness    uint64 `json:"bitness"`
	Boost      string `json:"boost"`
	LibTorrent string `json:"libtorrent"`
	OpenSSL    string `json:"openssl"`
	QTVersion  string `json:"qt"`
	ZLib       string `json:"zlib"`
}

type ApplicationPreferences

type ApplicationPreferences struct {
	AddTrackers                        string          `json:"add_trackers"`
	AddTrackersEnabled                 bool            `json:"add_trackers_enabled"`
	AltDownloadLimit                   int64           `json:"alt_dl_limit"`
	AltUploadLimit                     int64           `json:"alt_up_limit"`
	AltWebUIEnabled                    bool            `json:"alternative_webui_enabled"`
	AltWebUIPath                       string          `json:"alternative_webui_path"`
	AnnounceIP                         string          `json:"announce_ip"`
	AnnounceToAllTiers                 bool            `json:"announce_to_all_tiers"`
	AnnounceToAllTrackers              bool            `json:"announce_to_all_trackers"`
	AnonymousMode                      bool            `json:"anonymous_mode"`
	AsyncIOThreads                     int64           `json:"async_io_threads"`
	AutoDeleteMode                     int64           `json:"auto_delete_mode"`
	AutoTMMEnabled                     bool            `json:"auto_tmm_enabled"`
	AutoRunEnabled                     bool            `json:"autorun_enabled"`
	AutoRunProgram                     string          `json:"autorun_program"`
	BannedIPs                          string          `json:"banned_IPs"`
	BittorrentProtocol                 int64           `json:"bittorrent_protocol"`
	BypassAuthSubnetWL                 string          `json:"bypass_auth_subnet_whitelist"`
	BypassAuthSubnetWLEnabled          bool            `json:"bypass_auth_subnet_whitelist_enabled"`
	BypassLocalAuth                    bool            `json:"bypass_local_auth"`
	CategoryChangedTMMEnabled          bool            `json:"category_changed_tmm_enabled"`
	CheckingMemoryUse                  int64           `json:"checking_memory_use"`
	CreateSubFolderEnabled             bool            `json:"create_subfolder_enabled"`
	CurrentInterfaceAddress            string          `json:"current_interface_address"`
	CurrentNetworkInterface            string          `json:"current_network_interface"`
	DHT                                bool            `json:"dht"`
	DiskCache                          int64           `json:"disk_cache"`
	DiskCacheTTL                       int64           `json:"disk_cache_ttl"`
	DownloadLimit                      int64           `json:"dl_limit"`
	DontCountSlowTorrents              bool            `json:"dont_count_slow_torrents"`
	DynDNSDomain                       string          `json:"dyndns_domain"`
	DynDNSEnabled                      bool            `json:"dyndns_enabled"`
	DynDNSPassword                     string          `json:"dyndns_password"`
	DynDNSService                      int64           `json:"dyndns_service"`
	DynDNSUsername                     string          `json:"dyndns_username"`
	EmbeddedTrackerPort                int64           `json:"embedded_tracker_port"`
	EnableCoalesceReadWrite            bool            `json:"enable_coalesce_read_write"`
	EnabledEmbeddedTracker             bool            `json:"enable_embedded_tracker"`
	EnableMultiConnFromSameIP          bool            `json:"enable_multi_connections_from_same_ip"`
	EnableOSCache                      bool            `json:"enable_os_cache"`
	EnableSuperSeeding                 bool            `json:"enable_super_seeding"`
	EnableUploadSuggestions            bool            `json:"enable_upload_suggestions"`
	Encryption                         int64           `json:"encryption"`
	ExportDirectory                    string          `json:"export_dir"`
	ExportDirectoryFin                 string          `json:"export_dir_fin"`
	FilePoolSize                       int64           `json:"file_pool_size"`
	IncompleteFilesExtension           bool            `json:"incomplete_files_ext"`
	IPFilterEnabled                    bool            `json:"ip_filter_enabled"`
	IPFilterPath                       string          `json:"ip_filter_path"`
	IPFilterTrackers                   bool            `json:"ip_filter_trackers"`
	LimitLanPeers                      bool            `json:"limit_lan_peers"`
	LimitTCPOverhead                   bool            `json:"limit_tcp_overhead"`
	LimitUTPRate                       bool            `json:"limit_utp_rate"`
	ListenPort                         int64           `json:"listen_port"`
	Locale                             string          `json:"locale"`
	LSD                                bool            `json:"lsd"`
	MailNotificationAuthEnabled        bool            `json:"mail_notification_auth_enabled"`
	MailNotificationEmail              string          `json:"mail_notification_email"`
	MailNotificationEnabled            bool            `json:"mail_notification_enabled"`
	MailNotificationPassword           string          `json:"mail_notification_password"`
	MailNotificationSender             string          `json:"mail_notification_sender"`
	MailNotificationSMTP               string          `json:"mail_notification_smtp"`
	MailNotificationSSLEnabled         bool            `json:"mail_notification_ssl_enabled"`
	MailNotificationUsername           string          `json:"mail_notification_username"`
	MaxActiveDownloads                 int64           `json:"max_active_downloads"`
	MaxActiveTorrents                  int64           `json:"max_active_torrents"`
	MaxActiveUploads                   int64           `json:"max_active_uploads"`
	MaxConnections                     int64           `json:"max_connec"`
	MaxConnectionPerTorrent            int64           `json:"max_connec_per_torrent"`
	MaxRatio                           int64           `json:"max_ratio"`
	MaxRatioACT                        int64           `json:"max_ratio_act"`
	MaxRatioEnabled                    bool            `json:"max_ratio_enabled"`
	MaxSeedingTime                     int64           `json:"max_seeding_time"`
	MaxSeedingTimeEnabled              bool            `json:"max_seeding_time_enabled"`
	MaxUploads                         int64           `json:"max_uploads"`
	MaxUploadsPerTorrent               int64           `json:"max_uploads_per_torrent"`
	OutgoingPortsMax                   int64           `json:"outgoing_ports_max"`
	OutgoingPortsMin                   int64           `json:"outgoing_ports_min"`
	PEX                                bool            `json:"pex"`
	PreAllocateAll                     bool            `json:"preallocate_all"`
	ProxyAuthEnabled                   bool            `json:"proxy_auth_enabled"`
	ProxyIP                            string          `json:"proxy_ip"`
	ProxyPassword                      string          `json:"proxy_password"`
	ProxyPeerConnection                bool            `json:"proxy_peer_connections"`
	ProxyPort                          int64           `json:"proxy_port"`
	ProxyTorrentsOnly                  bool            `json:"proxy_torrents_only"`
	ProxyType                          int64           `json:"proxy_type"`
	ProxyUsername                      string          `json:"proxy_username"`
	QueueingEnabled                    bool            `json:"queueing_enabled"`
	RandomPort                         bool            `json:"random_port"`
	ReCheckCompletedTorrents           bool            `json:"recheck_completed_torrents"`
	ResolvePeerCountries               bool            `json:"resolve_peer_countries"`
	RSSAutoDownloadingEnabled          bool            `json:"rss_auto_downloading_enabled"`
	RSSMaxArticlesPerFeed              int64           `json:"rss_max_articles_per_feed"`
	RSSProcessingEnabled               bool            `json:"rss_processing_enabled"`
	RSSRefreshInterval                 int64           `json:"rss_refresh_interval"`
	SavePath                           string          `json:"save_path"`
	SavePathChangedTMMEnabled          bool            `json:"save_path_changed_tmm_enabled"`
	SaveResumeDataInterval             int64           `json:"save_resume_data_interval"`
	ScanDirs                           map[string]bool `json:"scan_dirs"`
	ScheduleFromHour                   int64           `json:"schedule_from_hour"`
	ScheduleFromMinute                 int64           `json:"schedule_from_min"`
	ScheduleToHour                     int64           `json:"schedule_to_hour"`
	ScheduleToMinute                   int64           `json:"schedule_to_min"`
	SchedulerDays                      int64           `json:"scheduler_days"`
	SchedulerEnabled                   bool            `json:"scheduler_enabled"`
	SendBufferLowWatermark             int64           `json:"send_buffer_low_watermark"`
	SendBufferWatermark                int64           `json:"send_buffer_watermark"`
	SendBuffetWatermarkFactor          int64           `json:"send_buffer_watermark_factor"`
	SlowTorrentDownloadRateThreshold   int64           `json:"slow_torrent_dl_rate_threshold"`
	SlowTorrentInactiveTimer           int64           `json:"slow_torrent_inactive_timer"`
	SlowTorrentUploadRateThreshold     int64           `json:"slow_torrent_ul_rate_threshold"`
	SocketBacklogSize                  int64           `json:"socket_backlog_size"`
	StartPausedEnabled                 bool            `json:"start_paused_enabled"`
	TemporaryPath                      string          `json:"temp_path"`
	TemporaryPathEnabled               bool            `json:"temp_path_enabled"`
	TorrentChangedTMMEnabled           bool            `json:"torrent_changed_tmm_enabled"`
	UploadLimit                        int64           `json:"up_limit"`
	UploadChokingAlgorithm             int64           `json:"upload_choking_algorithm"`
	UploadSlotsBehavior                int64           `json:"upload_slots_behavior"`
	UPNP                               bool            `json:"upnp"`
	UseHTTP                            bool            `json:"use_https"`
	UTPTCPMixedMode                    int64           `json:"utp_tcp_mixed_mode"`
	WebUIAddress                       string          `json:"web_ui_address"`
	WebUIClickJackingProtectionEnabled bool            `json:"web_ui_clickjacking_protection_enabled"`
	WebUICSRFProtectionEnabled         bool            `json:"web_ui_csrf_protection_enabled"`
	WebUIDomainList                    string          `json:"web_ui_domain_list"`
	WebUIHostHeaderValidationEnabled   bool            `json:"web_ui_host_header_validation_enabled"`
	WebUIHttpsCertificatePath          string          `json:"web_ui_https_cert_path"`
	WebUIHttpsKeyPath                  string          `json:"web_ui_https_key_path"`
	WebUIPort                          int64           `json:"web_ui_port"`
	WebUISessionTimeout                int64           `json:"web_ui_session_timeout"`
	WebUIUPNP                          bool            `json:"web_ui_upnp"`
	WebUIUsername                      string          `json:"web_ui_username"`
}

type ApplicationVersion

type ApplicationVersion struct {
	Major uint64
	Minor uint64
	Patch uint64
}

type Client

type Client struct {
	Authenticated bool
	// contains filtered or unexported fields
}

func Initialize

func Initialize() *Client

Initialize torrent client configuration

func (*Client) ApplicationAPIVersion

func (client *Client) ApplicationAPIVersion() (*ApplicationAPIVersion, error)

Get application api version

func (*Client) ApplicationBuildInformation

func (client *Client) ApplicationBuildInformation() (*ApplicationBuildInfo, error)

Get application build information

func (*Client) ApplicationDefaultSavePath

func (client *Client) ApplicationDefaultSavePath() (string, error)

Get default save path

func (*Client) ApplicationPreferences

func (client *Client) ApplicationPreferences() (*ApplicationPreferences, error)

Get application preferences

func (*Client) ApplicationVersion

func (client *Client) ApplicationVersion() (*ApplicationVersion, error)

Get application version

func (*Client) Authenticate

func (client *Client) Authenticate() error

Perform authentication procedure

func (*Client) LogEntries

func (client *Client) LogEntries(options map[string]string) (*LogEntry, error)

Get log

func (*Client) TorrentContents

func (client *Client) TorrentContents(hash string) (*TorrentContents, error)

Get contents of a specific torrent

func (*Client) TorrentDecreasePriority

func (client *Client) TorrentDecreasePriority(hashes ...string) error

Decrease priority for specified torrents

func (*Client) TorrentDelete

func (client *Client) TorrentDelete(hashes ...string) error

Delete specified torrents

func (*Client) TorrentDeleteWithFiles

func (client *Client) TorrentDeleteWithFiles(hashes ...string) error

Delete specified torrents and all downloaded files

func (*Client) TorrentIncreasePriority

func (client *Client) TorrentIncreasePriority(hashes ...string) error

Increase priority for specified torrents

func (*Client) TorrentList

func (client *Client) TorrentList() (*Torrent, error)

Get list of active torrents

func (*Client) TorrentPause

func (client *Client) TorrentPause(hashes ...string) error

Pause specified torrents

func (*Client) TorrentPiecesHashes

func (client *Client) TorrentPiecesHashes(hash string) (*TorrentPiecesHashes, error)

Get pieces hashes of a specific torrent

func (*Client) TorrentPiecesState

func (client *Client) TorrentPiecesState(hash string) (*TorrentPiecesState, error)

Get pieces states of a specific torrent

func (*Client) TorrentProperties

func (client *Client) TorrentProperties(hash string) (*TorrentProperties, error)

Get properties of a specific torrent

func (*Client) TorrentReAnnounce

func (client *Client) TorrentReAnnounce(hashes ...string) error

Re-Announce specified torrents

func (*Client) TorrentReCheck

func (client *Client) TorrentReCheck(hashes ...string) error

Re-Check specified torrents

func (*Client) TorrentResume

func (client *Client) TorrentResume(hashes ...string) error

Resume specified torrents

func (*Client) TorrentSetFilePriority

func (client *Client) TorrentSetFilePriority(hash string, priority uint64, files ...string) error

Set lowest priority for specified torrents

func (*Client) TorrentSetHighestPriority

func (client *Client) TorrentSetHighestPriority(hashes ...string) error

Set highest priority for specified torrents

func (*Client) TorrentSetLowestPriority

func (client *Client) TorrentSetLowestPriority(hashes ...string) error

Set lowest priority for specified torrents

func (*Client) TorrentTrackers

func (client *Client) TorrentTrackers(hash string) (*TorrentTrackers, error)

Get trackers of a specific torrent

type LogEntry

type LogEntry []struct {
	ID        uint64 `json:"id"`
	Message   string `json:"message"`
	Timestamp uint64 `json:"timestamp"`
	Type      uint64 `json:"type"`
}

type Torrent

type Torrent []struct {
	AddedOn            int64   `json:"added_on"`
	AmountLeft         int64   `json:"amount_left"`
	AutoTMM            bool    `json:"auto_tmm"`
	Availability       float64 `json:"availability"`
	Category           string  `json:"category"`
	Completed          int64   `json:"completed"`
	CompletionOn       int64   `json:"completion_on"`
	DownloadLimit      int64   `json:"dl_limit"`
	DownloadSpeed      int64   `json:"dlspeed"`
	Downloaded         int64   `json:"downloaded"`
	DownloadedSession  int64   `json:"downloaded_session"`
	EstimatedTimeLeft  int64   `json:"eta"`
	FLPiecePrio        bool    `json:"f_l_piece_prio"`
	ForceStart         bool    `json:"force_start"`
	Hash               string  `json:"hash"`
	LastActivity       int64   `json:"last_activity"`
	MagnetURI          string  `json:"magnet_uri"`
	MaxRatio           int64   `json:"max_ratio"`
	MaxSeedingTime     int64   `json:"max_seeding_time"`
	Name               string  `json:"name"`
	NumComplete        int64   `json:"num_complete"`
	NumIncomplete      int64   `json:"num_incomplete"`
	NumberOfLeechers   int64   `json:"num_leechs"`
	NumberOfSeeders    int64   `json:"num_seeds"`
	Priority           int64   `json:"priority"`
	Progress           float64 `json:"progress"`
	Ratio              int64   `json:"ratio"`
	RatioLimit         int64   `json:"ratio_limit"`
	SavePath           string  `json:"save_path"`
	SeedingTimeLimit   int64   `json:"seeding_time_limit"`
	SeenComplete       int64   `json:"seen_complete"`
	SequentialDownload bool    `json:"seq_dl"`
	Size               int64   `json:"size"`
	State              string  `json:"state"`
	SuperSeeding       bool    `json:"super_seeding"`
	Tags               string  `json:"tags"`
	TimeActive         int64   `json:"time_active"`
	TotalSize          int64   `json:"total_size"`
	Tracker            string  `json:"tracker"`
	UploadLimit        int64   `json:"up_limit"`
	Uploaded           int64   `json:"uploaded"`
	UploadedSession    int64   `json:"uploaded_session"`
	UploadSpeed        int64   `json:"upspeed"`
}

type TorrentContents

type TorrentContents []struct {
	Availability int64   `json:"availability"`
	IsSeed       bool    `json:"is_seed"`
	Name         string  `json:"name"`
	PieceRange   []int64 `json:"piece_range"`
	Priority     int64   `json:"priority"`
	Progress     float64 `json:"progress"`
	Size         int64   `json:"size"`
}

type TorrentPiecesHashes

type TorrentPiecesHashes []string

type TorrentPiecesState

type TorrentPiecesState []int64

type TorrentProperties

type TorrentProperties struct {
	AdditionDate           int64  `json:"addition_date"`
	Comment                string `json:"comment"`
	CompletionDate         int64  `json:"completion_date"`
	CreatedBy              string `json:"created_by"`
	CreationDate           int64  `json:"creation_date"`
	DownloadLimit          int64  `json:"dl_limit"`
	DownloadSpeed          int64  `json:"dl_speed"`
	DownloadSpeedAverage   int64  `json:"dl_speed_avg"`
	EstimatedTimeLeft      int64  `json:"eta"`
	LastSeen               int64  `json:"last_seen"`
	ConnectionsCount       int64  `json:"nb_connections"`
	ConnectionsLimit       int64  `json:"nb_connections_limit"`
	Peers                  int64  `json:"peers"`
	PeersTotal             int64  `json:"peers_total"`
	PieceSize              int64  `json:"piece_size"`
	PiecesHave             int64  `json:"pieces_have"`
	PiecesNumber           int64  `json:"pieces_num"`
	Reannounce             int64  `json:"reannounce"`
	SavePath               string `json:"save_path"`
	SeedingTime            int64  `json:"seeding_time"`
	Seeds                  int64  `json:"seeds"`
	SeedsTotal             int64  `json:"seeds_total"`
	ShareRatio             int64  `json:"share_ratio"`
	TimeElapsed            int64  `json:"time_elapsed"`
	TotalDownloaded        int64  `json:"total_downloaded"`
	TotalDownloadedSession int64  `json:"total_downloaded_session"`
	TotalSize              int64  `json:"total_size"`
	TotalUploaded          int64  `json:"total_uploaded"`
	TotalUploadedSession   int64  `json:"total_uploaded_session"`
	TotalWasted            int64  `json:"total_wasted"`
	UploadLimit            int64  `json:"up_limit"`
	UploadSpeed            int64  `json:"up_speed"`
	UploadSpeedAverage     int64  `json:"up_speed_avg"`
}

type TorrentTrackers

type TorrentTrackers []struct {
	Message       string `json:"msg"`
	NumDownloaded int64  `json:"num_downloaded"`
	LeechesCount  int64  `json:"num_leeches"`
	PeersCount    int64  `json:"num_peers"`
	SeedersCount  int64  `json:"num_seeds"`
	Status        int64  `json:"status"`
	//Tier                    int64       `json:"tier"` // TODO: so they can give back either INT or STRING, WTF?
	URL string `json:"url"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL