tracker

package
v0.15.9 Latest Latest
Warning

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

Go to latest
Published: Mar 12, 2021 License: MIT Imports: 28 Imported by: 2

Documentation

Index

Constants

View Source
const (
	EPUBFormat        = "15"
	ErrorUploadFailed = "upload failed"
)
View Source
const (
	UserTorrentsSnatched = "snatched"
	UserTorrentsLeeching = "leeching"
	UserTorrentsUploaded = "uploaded"
	UserTorrentsSeeding  = "seeding"
)
View Source
const (
	FormatFLAC = "FLAC"
	FormatMP3  = "MP3"
	FormatAAC  = "AAC"
	FormatAC3  = "AC3"
	FormatDTS  = "DTS"

	SourceCD         = "CD"
	SourceWEB        = "WEB"
	SourceDVD        = "DVD"
	SourceVinyl      = "Vinyl"
	SourceSoundboard = "Soundboard"
	SourceDAT        = "DAT"
	SourceCassette   = "Cassette"
	SourceBluRay     = "Blu-Ray"
	SourceSACD       = "SACD"

	Quality192           = "192"
	Quality256           = "256"
	Quality320           = "320"
	QualityAPS           = "APS (VBR)"
	QualityAPX           = "APX (VBR)"
	QualityV2            = "V2 (VBR)"
	QualityV1            = "V1 (VBR)"
	QualityV0            = "V0 (VBR)"
	QualityLossless      = "Lossless"
	Quality24bitLossless = "24bit Lossless"

	ReleaseAlbum       = "Album"
	ReleaseSoundtrack  = "Soundtrack"
	ReleaseEP          = "EP"
	ReleaseAnthology   = "Anthology"
	ReleaseCompilation = "Compilation"
	ReleaseSingle      = "Single"
	ReleaseLive        = "Live album"
	ReleaseRemix       = "Remix"
	ReleaseBootleg     = "Bootleg"
	ReleaseInterview   = "Interview"
	ReleaseMixtape     = "Mixtape"
	ReleaseDemo        = "Demo"
	ReleaseConcert     = "Concert Recording"
	ReleaseDJMix       = "DJ Mix"
	ReleaseUnknown     = "Unknown"

	RoleMain      = "Main"
	RoleGuest     = "Guest"
	RoleComposer  = "Composer"
	RoleConductor = "Conductor"
	RoleDJ        = "DJ / Compiler"
	RoleRemixer   = "Remixer"
	RoleProducer  = "Producer"

	TrackPattern   = `(.*[.flac|.FLAC|.mp3|.MP3]){{{(\d*)}}}`
	VariousArtists = "Various Artists"

	ClassUser            = "User"
	ClassMember          = "Member"
	ClassPowerUser       = "Power User"
	ClassElite           = "Elite"
	ClassTorrentMaster   = "Torrent Master"
	ClassPowerTM         = "Power TM"
	ClassEliteTM         = "Elite TM"
	ClassVIP             = "VIP"
	ClassModerator       = "Moderator"
	ClassSeniorModerator = "Senior Moderator"
	ClassAdministrator   = "Administrator"
	ClassDeveloper       = "Developer"
	ClassLegend          = "Legend"
	ClassSysOp           = "Sysop"
)

Variables

Functions

func CheckErrors

func CheckErrors(errs ...error) error

CheckErrors and return the first non-nil one.

func ExtractGroupID added in v0.15.0

func ExtractGroupID(urlOrID string) (int, error)

func ExtractTorrentID added in v0.15.0

func ExtractTorrentID(urlOrID string) (int, error)

func GazelleArtistRole added in v0.5.0

func GazelleArtistRole(value int) string

func GazelleArtistRoleByLabel added in v0.5.0

func GazelleArtistRoleByLabel(value string) int

func GazelleReleaseType added in v0.3.0

func GazelleReleaseType(value int) string

func GazelleReleaseTypeByLabel added in v0.5.0

func GazelleReleaseTypeByLabel(value string) int

func IsValidTorrentType added in v0.8.0

func IsValidTorrentType(tt string) bool

func MarshallResponse added in v0.8.0

func MarshallResponse(response interface{}) ([]byte, error)

func ShortEdition added in v0.2.0

func ShortEdition(edition string) string

func ShortEncoding added in v0.2.0

func ShortEncoding(encoding string) string

Types

type AddTag added in v0.9.0

type AddTag struct {
	Added    TagOrSlice `json:"added"`
	Rejected TagOrSlice `json:"rejected"`
	Voted    TagOrSlice `json:"voted"`
}

type AddTagResponse added in v0.9.0

type AddTagResponse struct {
	Status   string `json:"status"`
	Error    string `json:"error"`
	Response AddTag `json:"response"`
}

type Artist added in v0.8.0

type Artist struct {
	ID   int    `json:"id"`
	Name string `json:"name"`
}

type BibUploadForm

type BibUploadForm struct {
	TorrentFileField  string
	TitleField        string
	EditorsField      string
	ContributorsField string
	TranslatorsField  string
	PublishersField   string
	PagesField        string
	AuthorsField      string
	FormatField       string // EPUB == "15"
	IsbnField         string
	TagsField         string
	DescriptionField  string
	RetailField       string // retail == "1"
	NotifyField       string // default "1"
	LanguageField     string // english == "1"
	YearField         string
	ImageField        string
	AnonymousField    string // default "0"
	SupplementsField  string // default "0"
}

BibUploadForm tracks all of the upload form fields.

func NewDefaultBibUploadForm

func NewDefaultBibUploadForm() *BibUploadForm

func (*BibUploadForm) ShowInfo

func (uf *BibUploadForm) ShowInfo() string

ShowInfo returns a table with relevant information about a book.

type Bibliotik added in v0.3.0

type Bibliotik struct {
	Tracker
	RSSKey string
}

func NewBibliotik added in v0.3.0

func NewBibliotik(domain, user, password, cookieValue, rssKey, userAgent string) (*Bibliotik, error)

func (*Bibliotik) GetAnnounceURL added in v0.8.0

func (t *Bibliotik) GetAnnounceURL() error

func (*Bibliotik) Login added in v0.3.0

func (t *Bibliotik) Login() error

func (*Bibliotik) Search added in v0.3.0

func (t *Bibliotik) Search(args ...string) ([]string, error)

func (*Bibliotik) SearchBooks added in v0.13.0

func (t *Bibliotik) SearchBooks(args ...string) ([]*Book, error)

func (*Bibliotik) SearchBooksByRSS added in v0.14.0

func (t *Bibliotik) SearchBooksByRSS(args ...string) ([]*Book, error)

func (*Bibliotik) Upload added in v0.3.0

func (t *Bibliotik) Upload(uf *BibUploadForm) error

type Book added in v0.13.0

type Book struct {
	Title     string
	Link      string
	Authors   []string
	Publisher string
	Year      string
	IsRetail  bool
	Language  string
}

func (*Book) String added in v0.13.0

func (b *Book) String() string

type CollageInfo added in v0.8.0

type CollageInfo struct {
	ID          int    `json:"id"`
	Name        string `json:"name"`
	NumTorrents int    `json:"numTorrents"`
}

type ExtendedArtists added in v0.9.0

type ExtendedArtists struct {
	One []struct {
		Aliasid int    `json:"aliasid"`
		ID      int    `json:"id"`
		Name    string `json:"name"`
	} `json:"1"`
	Two []struct {
		Aliasid int    `json:"aliasid"`
		ID      int    `json:"id"`
		Name    string `json:"name"`
	} `json:"2"`
	Three []struct {
		Aliasid int    `json:"aliasid"`
		ID      int    `json:"id"`
		Name    string `json:"name"`
	} `json:"3"`
	Four []struct {
		Aliasid int    `json:"aliasid"`
		ID      int    `json:"id"`
		Name    string `json:"name"`
	} `json:"4"`
	Five []struct {
		Aliasid int    `json:"aliasid"`
		ID      int    `json:"id"`
		Name    string `json:"name"`
	} `json:"5"`
	Six []struct {
		Aliasid int    `json:"aliasid"`
		ID      int    `json:"id"`
		Name    string `json:"name"`
	} `json:"6"`
	Seven []struct {
		Aliasid int    `json:"aliasid"`
		ID      int    `json:"id"`
		Name    string `json:"name"`
	} `json:"7"`
}

func (*ExtendedArtists) UnmarshalJSON added in v0.9.0

func (w *ExtendedArtists) UnmarshalJSON(data []byte) error

UnmarshalJSON allows to unmarshall JSON with an empty slice as profile album, without throwing errors. Instead, the prfile album return an empty map.

type FillRequest added in v0.9.0

type FillRequest struct {
	Bounty      int    `json:"bounty"`
	Fillerid    int    `json:"fillerid"`
	Fillername  string `json:"fillername"`
	Requestid   int    `json:"requestid"`
	Requestname string `json:"requestname"`
	Torrentid   int    `json:"torrentid"`
}

type FillRequestResponse added in v0.9.0

type FillRequestResponse struct {
	Status   string      `json:"status"`
	Error    string      `json:"error"`
	Response FillRequest `json:"response"`
}

type Gazelle added in v0.3.0

type Gazelle struct {
	Tracker

	UserID int
	// contains filtered or unexported fields
}

Gazelle allows querying the Gazelle JSON API.

func NewGazelle added in v0.2.0

func NewGazelle(name, domain, user, password, cookieID, cookieValue, apiKey, userAgent string) (*Gazelle, error)

func (*Gazelle) AddForumPost added in v0.14.0

func (t *Gazelle) AddForumPost(threadID int, text string) error

func (*Gazelle) AddGroupTags added in v0.7.0

func (t *Gazelle) AddGroupTags(torrentGroupID int, tags []string) (*AddTag, error)

func (*Gazelle) AddGroupToCollage added in v0.11.0

func (t *Gazelle) AddGroupToCollage(collageID, torrentGroupID int) error
func (t *Gazelle) CollagePermaLink(collageID int) string

func (*Gazelle) CopyTagsFromRequest added in v0.7.0

func (t *Gazelle) CopyTagsFromRequest(requestID, torrentGroupID int, excludedTags []string) error

CopyTagsFromRequest without doing any checks on whether the two are related.

func (*Gazelle) Download added in v0.8.0

func (t *Gazelle) Download(id int, useFLToken bool, destinationFolder, torrentFilename string) error

func (*Gazelle) EditTorrentDescription added in v0.5.0

func (t *Gazelle) EditTorrentDescription(torrentID int, description string) error

func (*Gazelle) EditTorrentDescriptionFromStruct added in v0.15.0

func (t *Gazelle) EditTorrentDescriptionFromStruct(trt *GazelleTorrent) error

func (*Gazelle) EditTorrentGroupDescription added in v0.5.0

func (t *Gazelle) EditTorrentGroupDescription(torrentGroupID int, description, coverURL string) error

func (*Gazelle) FillRequest added in v0.5.0

func (t *Gazelle) FillRequest(requestID, torrentID int) (*FillRequest, error)
func (t *Gazelle) ForumThreadPermaLink(threadID int) string

func (*Gazelle) GetAllLeechingUserTorrents added in v0.8.0

func (t *Gazelle) GetAllLeechingUserTorrents(userID int) (*UserTorrents, error)

func (*Gazelle) GetAllSeedingUserTorrents added in v0.8.0

func (t *Gazelle) GetAllSeedingUserTorrents(userID int) (*UserTorrents, error)

func (*Gazelle) GetAllSnatchedUserTorrents added in v0.8.0

func (t *Gazelle) GetAllSnatchedUserTorrents(userID int) (*UserTorrents, error)

func (*Gazelle) GetAllUploadedUserTorrents added in v0.8.0

func (t *Gazelle) GetAllUploadedUserTorrents(userID int) (*UserTorrents, error)

func (*Gazelle) GetAllUserTorrents added in v0.8.0

func (t *Gazelle) GetAllUserTorrents(torrentType string, userID int) (*UserTorrents, error)

func (*Gazelle) GetArtist added in v0.3.0

func (t *Gazelle) GetArtist(artistID int) (*GazelleArtist, error)

func (*Gazelle) GetArtistFromName added in v0.14.2

func (t *Gazelle) GetArtistFromName(artistName string) (*GazelleArtist, error)

func (*Gazelle) GetCollage added in v0.8.0

func (t *Gazelle) GetCollage(id int) (*GazelleCollage, error)

func (*Gazelle) GetInbox added in v0.8.0

func (t *Gazelle) GetInbox(pageNumber int, inboxType string, sort bool, search, searchType string) (*GazelleInbox, error)

func (*Gazelle) GetInboxConversation added in v0.8.0

func (t *Gazelle) GetInboxConversation(convID int) (*GazelleInboxConversation, error)

func (*Gazelle) GetIndex added in v0.8.0

func (t *Gazelle) GetIndex() (*GazelleIndex, error)

func (*Gazelle) GetLastUploadedToTorrentGroup added in v0.7.6

func (t *Gazelle) GetLastUploadedToTorrentGroup(torrentGroupID int) (int, error)

func (*Gazelle) GetLeechingUserTorrents added in v0.8.0

func (t *Gazelle) GetLeechingUserTorrents(userID, number, offset int) (*UserTorrents, error)

func (*Gazelle) GetLogScore added in v0.3.0

func (t *Gazelle) GetLogScore(logPath string) (*LogChecker, error)

func (*Gazelle) GetLoggedUserStats added in v0.3.0

func (t *Gazelle) GetLoggedUserStats() (*GazelleUserStats, error)

func (*Gazelle) GetRequest added in v0.5.0

func (t *Gazelle) GetRequest(requestID int) (*GazelleRequest, error)

GetRequest information from the API

func (*Gazelle) GetSeedingUserTorrents added in v0.8.0

func (t *Gazelle) GetSeedingUserTorrents(userID, number, offset int) (*UserTorrents, error)

func (*Gazelle) GetSnatchedUserTorrents added in v0.8.0

func (t *Gazelle) GetSnatchedUserTorrents(userID, number, offset int) (*UserTorrents, error)

func (*Gazelle) GetTorrent added in v0.3.0

func (t *Gazelle) GetTorrent(torrentID int) (*GazelleTorrent, error)

func (*Gazelle) GetTorrentByHash added in v0.7.5

func (t *Gazelle) GetTorrentByHash(hash string) (*GazelleTorrent, error)

func (*Gazelle) GetTorrentFromFile added in v0.7.5

func (t *Gazelle) GetTorrentFromFile(torrentPath string) (*GazelleTorrent, error)

func (*Gazelle) GetTorrentGroup added in v0.3.0

func (t *Gazelle) GetTorrentGroup(torrentGroupID int) (*GazelleTorrentGroup, error)

func (*Gazelle) GetUploadedUserTorrents added in v0.8.0

func (t *Gazelle) GetUploadedUserTorrents(userID, number, offset int) (*UserTorrents, error)

func (*Gazelle) GetUserStats added in v0.3.0

func (t *Gazelle) GetUserStats(userID int) (*GazelleUserStats, error)

func (*Gazelle) GetUserStatsFromUsername added in v0.15.0

func (t *Gazelle) GetUserStatsFromUsername(username string) (*GazelleUserStats, error)

func (*Gazelle) GetUserTorrents added in v0.8.0

func (t *Gazelle) GetUserTorrents(torrentType string, userID, number, offset int) (*UserTorrents, error)
func (t *Gazelle) GroupPermaLink(groupID int) string

func (*Gazelle) IsTorrentDeleted added in v0.3.0

func (t *Gazelle) IsTorrentDeleted(torrentID int) (bool, string, error)

func (*Gazelle) Login added in v0.3.0

func (t *Gazelle) Login() error

func (*Gazelle) ReportLossyWeb added in v0.15.9

func (t *Gazelle) ReportLossyWeb(torrentID int, link, text string) error
func (t *Gazelle) RequestPermaLink(requestID int) string

func (*Gazelle) Search added in v0.5.0

func (t *Gazelle) Search(artist, title string) (*GazelleSearch, error)

Search for releases from the API

func (*Gazelle) SearchRequest added in v0.5.0

func (t *Gazelle) SearchRequest(artist, title string) (*GazelleRequestSearch, error)

SearchRequest information from the API

func (t *Gazelle) TorrentPermaLink(torrentID int) string

func (*Gazelle) UploadMusic added in v0.5.0

func (t *Gazelle) UploadMusic(torrentPath string, logFile string, metadata *GazelleTorrent, requestID int) (*UploadResult, error)

func (*Gazelle) UploadMusicToExistingGroup added in v0.5.0

func (t *Gazelle) UploadMusicToExistingGroup(torrentGroupID int, torrentPath string, logFile string, metadata *GazelleTorrent, requestID int) (*UploadResult, error)

func (*Gazelle) UserSearch added in v0.15.0

func (t *Gazelle) UserSearch(name string) (*UserSearch, error)

type GazelleArtist added in v0.2.0

type GazelleArtist struct {
	Body                 string `json:"body"`
	HasBookmarked        bool   `json:"hasBookmarked"`
	ID                   int    `json:"id"`
	Image                string `json:"image"`
	Name                 string `json:"name"`
	NotificationsEnabled bool   `json:"notificationsEnabled"`
	Requests             []struct {
		Bounty     int    `json:"bounty"`
		CategoryID int    `json:"categoryId"`
		RequestID  int    `json:"requestId"`
		TimeAdded  string `json:"timeAdded"`
		Title      string `json:"title"`
		Votes      int    `json:"votes"`
		Year       int    `json:"year"`
	} `json:"requests"`
	SimilarArtists []struct {
		ArtistID  int    `json:"artistId"`
		Name      string `json:"name"`
		Score     int    `json:"score"`
		SimilarID int    `json:"similarId"`
	} `json:"similarArtists"`
	Statistics struct {
		NumGroups   int `json:"numGroups"`
		NumLeechers int `json:"numLeechers"`
		NumSeeders  int `json:"numSeeders"`
		NumSnatches int `json:"numSnatches"`
		NumTorrents int `json:"numTorrents"`
	} `json:"statistics"`
	Tags []struct {
		Count int    `json:"count"`
		Name  string `json:"name"`
	} `json:"tags"`
	Torrentgroup []GazelleArtistTorrentGroup `json:"torrentgroup"`
	VanityHouse  bool                        `json:"vanityHouse"`
}

type GazelleArtistResponse added in v0.8.0

type GazelleArtistResponse struct {
	Response GazelleArtist `json:"response"`
	Status   string        `json:"status"`
	Error    string        `json:"error"`
}

type GazelleArtistTorrent added in v0.14.3

type GazelleArtistTorrent struct {
	Encoding            string `json:"encoding"`
	FileCount           int    `json:"fileCount"`
	Format              string `json:"format"`
	FreeTorrent         bool   `json:"freeTorrent"`
	GroupID             int    `json:"groupId"`
	HasCue              bool   `json:"hasCue"`
	HasFile             int    `json:"hasFile"`
	HasLog              bool   `json:"hasLog"`
	ID                  int    `json:"id"`
	Leechers            int    `json:"leechers"`
	LogScore            int    `json:"logScore"`
	Media               string `json:"media"`
	RemasterRecordLabel string `json:"remasterRecordLabel"`
	RemasterTitle       string `json:"remasterTitle"`
	RemasterYear        int    `json:"remasterYear"`
	Remastered          bool   `json:"remastered"`
	Scene               bool   `json:"scene"`
	Seeders             int    `json:"seeders"`
	Size                int    `json:"size"`
	Snatched            int    `json:"snatched"`
	Time                string `json:"time"`
}

func (*GazelleArtistTorrent) Is100CD added in v0.14.3

func (gat *GazelleArtistTorrent) Is100CD() bool

func (*GazelleArtistTorrent) Is16bitWEBFLAC added in v0.14.3

func (gat *GazelleArtistTorrent) Is16bitWEBFLAC() bool

func (*GazelleArtistTorrent) Is24bitWEBFLAC added in v0.14.3

func (gat *GazelleArtistTorrent) Is24bitWEBFLAC() bool

func (*GazelleArtistTorrent) IsPerfectFLAC added in v0.14.3

func (gat *GazelleArtistTorrent) IsPerfectFLAC() bool

func (*GazelleArtistTorrent) IsWEBFLAC added in v0.14.3

func (gat *GazelleArtistTorrent) IsWEBFLAC() bool

type GazelleArtistTorrentGroup added in v0.14.3

type GazelleArtistTorrentGroup struct {
	Artists []struct {
		Aliasid int    `json:"aliasid"`
		ID      int    `json:"id"`
		Name    string `json:"name"`
	} `json:"artists"`
	ExtendedArtists      ExtendedArtists        `json:"extendedArtists"`
	GroupCatalogueNumber string                 `json:"groupCatalogueNumber"`
	GroupCategoryID      IntOrString            `json:"groupCategoryID"`
	GroupID              int                    `json:"groupId"`
	GroupName            string                 `json:"groupName"`
	GroupRecordLabel     string                 `json:"groupRecordLabel"`
	GroupVanityHouse     bool                   `json:"groupVanityHouse"`
	GroupYear            int                    `json:"groupYear"`
	HasBookmarked        bool                   `json:"hasBookmarked"`
	ReleaseType          int                    `json:"releaseType"`
	Tags                 []string               `json:"tags"`
	Torrent              []GazelleArtistTorrent `json:"torrent"`
	WikiImage            string                 `json:"wikiImage"`
}

func (*GazelleArtistTorrentGroup) HasPerfectFLAC added in v0.14.3

func (gatg *GazelleArtistTorrentGroup) HasPerfectFLAC() bool

func (*GazelleArtistTorrentGroup) HasWEBFLAC added in v0.14.3

func (gatg *GazelleArtistTorrentGroup) HasWEBFLAC() bool

type GazelleCollage added in v0.8.0

type GazelleCollage struct {
	CollageCategoryID   int      `json:"collageCategoryID"`
	CollageCategoryName string   `json:"collageCategoryName"`
	CreatorID           int      `json:"creatorID"`
	Deleted             bool     `json:"deleted"`
	Description         string   `json:"description"`
	HasBookmarked       bool     `json:"hasBookmarked"`
	ID                  int      `json:"id"`
	Locked              bool     `json:"locked"`
	MaxGroups           int      `json:"maxGroups"`
	MaxGroupsPerUser    int      `json:"maxGroupsPerUser"`
	Name                string   `json:"name"`
	SubscriberCount     int      `json:"subscriberCount"`
	TorrentGroupIDList  []string `json:"torrentGroupIDList"`
	Torrentgroups       []struct {
		CatalogueNumber string `json:"catalogueNumber"`
		CategoryID      string `json:"categoryId"`
		ID              string `json:"id"`
		MusicInfo       struct {
			Artists   []Artist `json:"artists"`
			Composers []Artist `json:"composers"`
			Conductor []Artist `json:"conductor"`
			Dj        []Artist `json:"dj"`
			Producer  []Artist `json:"producer"`
			RemixedBy []Artist `json:"remixedBy"`
			With      []Artist `json:"with"`
		} `json:"musicInfo"`
		Name        string `json:"name"`
		RecordLabel string `json:"recordLabel"`
		ReleaseType string `json:"releaseType"`
		TagList     string `json:"tagList"`
		Torrents    []struct {
			Encoding                string `json:"encoding"`
			FileCount               int    `json:"fileCount"`
			Format                  string `json:"format"`
			FreeTorrent             bool   `json:"freeTorrent"`
			HasCue                  bool   `json:"hasCue"`
			HasLog                  bool   `json:"hasLog"`
			Leechers                int    `json:"leechers"`
			LogScore                int    `json:"logScore"`
			Media                   string `json:"media"`
			RemasterCatalogueNumber string `json:"remasterCatalogueNumber"`
			RemasterRecordLabel     string `json:"remasterRecordLabel"`
			RemasterTitle           string `json:"remasterTitle"`
			RemasterYear            int    `json:"remasterYear"`
			Remastered              bool   `json:"remastered"`
			Reported                bool   `json:"reported"`
			Scene                   bool   `json:"scene"`
			Seeders                 int    `json:"seeders"`
			Size                    int    `json:"size"`
			Snatched                int    `json:"snatched"`
			Time                    string `json:"time"`
			Torrentid               int    `json:"torrentid"`
		} `json:"torrents"`
		VanityHouse string `json:"vanityHouse"`
		WikiImage   string `json:"wikiImage"`
		Year        string `json:"year"`
	} `json:"torrentgroups"`
}

func (*GazelleCollage) Anonymize added in v0.8.0

func (gc *GazelleCollage) Anonymize()

type GazelleCollageResponse added in v0.8.0

type GazelleCollageResponse struct {
	Status   string         `json:"status"`
	Error    string         `json:"error"`
	Response GazelleCollage `json:"response"`
}

type GazelleGenericResponse added in v0.2.0

type GazelleGenericResponse struct {
	Response interface{} `json:"response"`
	Status   string      `json:"status"`
	Error    string      `json:"error"`
}

type GazelleInbox added in v0.8.0

type GazelleInbox struct {
	CurrentPage int `json:"currentPage"`
	Messages    []struct {
		Avatar        string `json:"avatar"`
		ConvID        int    `json:"convId"`
		Date          string `json:"date"`
		Donor         bool   `json:"donor"`
		Enabled       bool   `json:"enabled"`
		ForwardedID   int    `json:"forwardedId"`
		ForwardedName string `json:"forwardedName"`
		SenderID      int    `json:"senderId"`
		Sticky        bool   `json:"sticky"`
		Subject       string `json:"subject"`
		Unread        bool   `json:"unread"`
		Username      string `json:"username"`
		Warned        bool   `json:"warned"`
	} `json:"messages"`
	Pages int `json:"pages"`
}

type GazelleInboxConversation added in v0.8.0

type GazelleInboxConversation struct {
	ConvID   int `json:"convId"`
	Messages []struct {
		Avatar     string `json:"avatar"`
		BbBody     string `json:"bbBody"`
		Body       string `json:"body"`
		MessageID  int    `json:"messageId"`
		SenderID   int    `json:"senderId"`
		SenderName string `json:"senderName"`
		SentDate   string `json:"sentDate"`
	} `json:"messages"`
	Sticky  bool   `json:"sticky"`
	Subject string `json:"subject"`
}

type GazelleInboxConversationResponse added in v0.8.0

type GazelleInboxConversationResponse struct {
	Response GazelleInboxConversation `json:"response"`
	Status   string                   `json:"status"`
	Error    string                   `json:"error"`
}

type GazelleInboxResponse added in v0.8.0

type GazelleInboxResponse struct {
	Response GazelleInbox `json:"response"`
	Status   string       `json:"status"`
	Error    string       `json:"error"`
}

type GazelleIndex added in v0.2.0

type GazelleIndex struct {
	APIVersion    string `json:"api_version"`
	Authkey       string `json:"authkey"`
	ID            int    `json:"id"`
	Notifications struct {
		Messages         int  `json:"messages"`
		NewAnnouncement  bool `json:"newAnnouncement"`
		NewBlog          bool `json:"newBlog"`
		NewSubscriptions bool `json:"newSubscriptions"`
		Notifications    int  `json:"notifications"`
	} `json:"notifications"`
	Passkey   string `json:"passkey"`
	Username  string `json:"username"`
	UserStats struct {
		Class         string  `json:"class"`
		Downloaded    int     `json:"downloaded"`
		Ratio         float64 `json:"ratio"`
		RequiredRatio float64 `json:"requiredratio"`
		Uploaded      int     `json:"uploaded"`
	} `json:"userstats"`
}

type GazelleIndexResponse added in v0.8.0

type GazelleIndexResponse struct {
	Response GazelleIndex `json:"response"`
	Status   string       `json:"status"`
	Error    string       `json:"error"`
}

type GazelleRequest added in v0.8.0

type GazelleRequest struct {
	BbDescription   string   `json:"bbDescription"`
	BitrateList     []string `json:"bitrateList"`
	CanEdit         bool     `json:"canEdit"`
	CanVote         bool     `json:"canVote"`
	CatalogueNumber string   `json:"catalogueNumber"`
	CategoryID      int      `json:"categoryId"`
	CategoryName    string   `json:"categoryName"`
	CommentPage     int      `json:"commentPage"`
	CommentPages    int      `json:"commentPages"`
	Comments        []struct {
		AddedTime      string `json:"addedTime"`
		AuthorID       int    `json:"authorId"`
		Avatar         string `json:"avatar"`
		Class          string `json:"class"`
		Comment        string `json:"comment"`
		Donor          bool   `json:"donor"`
		EditedTime     string `json:"editedTime"`
		EditedUserID   int    `json:"editedUserId"`
		EditedUsername string `json:"editedUsername"`
		Enabled        bool   `json:"enabled"`
		Name           string `json:"name"`
		PostID         int    `json:"postId"`
		Warned         bool   `json:"warned"`
	} `json:"comments"`
	Description  string   `json:"description"`
	FillerID     int      `json:"fillerId"`
	FillerName   string   `json:"fillerName"`
	FormatList   []string `json:"formatList"`
	Image        string   `json:"image"`
	IsBookmarked bool     `json:"isBookmarked"`
	IsFilled     bool     `json:"isFilled"`
	LastVote     string   `json:"lastVote"`
	LogCue       string   `json:"logCue"`
	MediaList    []string `json:"mediaList"`
	MinimumVote  int      `json:"minimumVote"`
	MusicInfo    struct {
		Artists   []Artist `json:"artists"`
		Composers []Artist `json:"composers"`
		Conductor []Artist `json:"conductor"`
		Dj        []Artist `json:"dj"`
		Producer  []Artist `json:"producer"`
		RemixedBy []Artist `json:"remixedBy"`
		With      []Artist `json:"with"`
	} `json:"musicInfo"`
	Oclc            string   `json:"oclc"`
	RecordLabel     string   `json:"recordLabel"`
	ReleaseName     string   `json:"releaseName"`
	ReleaseType     int      `json:"releaseType"`
	RequestID       int      `json:"requestId"`
	RequestorID     int      `json:"requestorId"`
	RequestorName   string   `json:"requestorName"`
	Tags            []string `json:"tags"`
	TimeAdded       string   `json:"timeAdded"`
	TimeFilled      string   `json:"timeFilled"`
	Title           string   `json:"title"`
	TopContributors []struct {
		Bounty   int    `json:"bounty"`
		UserID   int    `json:"userId"`
		UserName string `json:"userName"`
	} `json:"topContributors"`
	TorrentID   int `json:"torrentId"`
	TotalBounty int `json:"totalBounty"`
	VoteCount   int `json:"voteCount"`
	Year        int `json:"year"`
}

type GazelleRequestResponse added in v0.8.0

type GazelleRequestResponse struct {
	Response GazelleRequest `json:"response"`
	Status   string         `json:"status"`
	Error    string         `json:"error"`
}

type GazelleRequestSearch added in v0.8.0

type GazelleRequestSearch struct {
	CurrentPage int                   `json:"currentPage"`
	Pages       int                   `json:"pages"`
	Results     []RequestSearchResult `json:"results"`
}

type GazelleRequestSearchResponse added in v0.8.0

type GazelleRequestSearchResponse struct {
	Response GazelleRequestSearch `json:"response"`
	Status   string               `json:"status"`
	Error    string               `json:"error"`
}

type GazelleSearch added in v0.8.0

type GazelleSearch struct {
	CurrentPage int `json:"currentPage"`
	Pages       int `json:"pages"`
	Results     []struct {
		Artist      string   `json:"artist"`
		Bookmarked  bool     `json:"bookmarked"`
		Cover       string   `json:"cover"`
		GroupID     int      `json:"groupId"`
		GroupName   string   `json:"groupName"`
		GroupTime   string   `json:"groupTime"`
		GroupYear   int      `json:"groupYear"`
		MaxSize     int      `json:"maxSize"`
		ReleaseType string   `json:"releaseType"`
		Tags        []string `json:"tags"`
		Torrents    []struct {
			Artists []struct {
				Aliasid int    `json:"aliasid"`
				ID      int    `json:"id"`
				Name    string `json:"name"`
			} `json:"artists"`
			CanUseToken             bool   `json:"canUseToken"`
			EditionID               int    `json:"editionId"`
			Encoding                string `json:"encoding"`
			FileCount               int    `json:"fileCount"`
			Format                  string `json:"format"`
			HasCue                  bool   `json:"hasCue"`
			HasLog                  bool   `json:"hasLog"`
			HasSnatched             bool   `json:"hasSnatched"`
			IsFreeleech             bool   `json:"isFreeleech"`
			IsNeutralLeech          bool   `json:"isNeutralLeech"`
			IsPersonalFreeleech     bool   `json:"isPersonalFreeleech"`
			Leechers                int    `json:"leechers"`
			LogScore                int    `json:"logScore"`
			Media                   string `json:"media"`
			RemasterCatalogueNumber string `json:"remasterCatalogueNumber"`
			RemasterTitle           string `json:"remasterTitle"`
			RemasterYear            int    `json:"remasterYear"`
			Remastered              bool   `json:"remastered"`
			Scene                   bool   `json:"scene"`
			Seeders                 int    `json:"seeders"`
			Size                    int    `json:"size"`
			Snatches                int    `json:"snatches"`
			Time                    string `json:"time"`
			TorrentID               int    `json:"torrentId"`
			VanityHouse             bool   `json:"vanityHouse"`
		} `json:"torrents"`
		TotalLeechers int  `json:"totalLeechers"`
		TotalSeeders  int  `json:"totalSeeders"`
		TotalSnatched int  `json:"totalSnatched"`
		VanityHouse   bool `json:"vanityHouse"`
	} `json:"results"`
}

type GazelleSearchResponse added in v0.8.0

type GazelleSearchResponse struct {
	Response GazelleSearch `json:"response"`
	Status   string        `json:"status"`
	Error    string        `json:"error"`
}

type GazelleTorrent added in v0.2.0

type GazelleTorrent struct {
	Group struct {
		BbBody          string `json:"bbBody"`
		CatalogueNumber string `json:"catalogueNumber"`
		CategoryID      int    `json:"categoryId"`
		CategoryName    string `json:"categoryName"`
		ID              int    `json:"id"`
		IsBookmarked    bool   `json:"isBookmarked"`
		MusicInfo       struct {
			Artists   []Artist `json:"artists"`
			Composers []Artist `json:"composers"`
			Conductor []Artist `json:"conductor"`
			Dj        []Artist `json:"dj"`
			Producer  []Artist `json:"producer"`
			RemixedBy []Artist `json:"remixedBy"`
			With      []Artist `json:"with"`
		} `json:"musicInfo"`
		Name        string   `json:"name"`
		RecordLabel string   `json:"recordLabel"`
		ReleaseType int      `json:"releaseType"`
		Tags        []string `json:"tags"`
		Time        string   `json:"time"`
		VanityHouse bool     `json:"vanityHouse"`
		WikiBody    string   `json:"wikiBody"`
		WikiImage   string   `json:"wikiImage"`
		Year        int      `json:"year"`
	} `json:"group"`
	Torrent struct {
		Description             string `json:"description"`
		DynamicRange            string `json:"dynamicrange"`
		Encoding                string `json:"encoding"`
		FileCount               int    `json:"fileCount"`
		FileList                string `json:"fileList"`
		FilePath                string `json:"filePath"`
		Format                  string `json:"format"`
		Grade                   string `json:"grade"`
		HasCue                  bool   `json:"hasCue"`
		HasLog                  bool   `json:"hasLog"`
		HasSnatched             bool   `json:"has_snatched"`
		ID                      int    `json:"id"`
		InfoHash                string `json:"infoHash"`
		Leechers                int    `json:"leechers"`
		Lineage                 string `json:"lineage"`
		LogScore                int    `json:"logScore"`
		LossyMasterApproved     bool   `json:"lossyMasterApproved"`
		LossyWebApproved        bool   `json:"lossyWebApproved"`
		Matrixorrunout          string `json:"matrixorrunout"`
		Media                   string `json:"media"`
		RemasterCatalogueNumber string `json:"remasterCatalogueNumber"`
		RemasterRecordLabel     string `json:"remasterRecordLabel"`
		RemasterTitle           string `json:"remasterTitle"`
		RemasterYear            int    `json:"remasterYear"`
		Remastered              bool   `json:"remastered"`
		Reported                bool   `json:"reported"`
		SampleRate              string `json:"samplerate"`
		Scene                   bool   `json:"scene"`
		Seeders                 int    `json:"seeders"`
		Size                    int    `json:"size"`
		Snatched                int    `json:"snatched"`
		Time                    string `json:"time"`
		Trumpable               bool   `json:"trumpable"`
		UserID                  int    `json:"userId"`
		Username                string `json:"username"`
	} `json:"torrent"`
}

func (*GazelleTorrent) Is16bitFLAC added in v0.15.0

func (gt *GazelleTorrent) Is16bitFLAC() bool

func (*GazelleTorrent) Is24bitFLAC added in v0.15.0

func (gt *GazelleTorrent) Is24bitFLAC() bool

func (*GazelleTorrent) IsAcceptable added in v0.15.0

func (gt *GazelleTorrent) IsAcceptable(excludedUploaders, excludedTags []string) bool

func (*GazelleTorrent) IsFLAC added in v0.15.0

func (gt *GazelleTorrent) IsFLAC() bool

func (*GazelleTorrent) IsOlderThan added in v0.15.0

func (gt *GazelleTorrent) IsOlderThan(duration time.Duration) bool

func (*GazelleTorrent) IsPerfectFLAC added in v0.15.1

func (gt *GazelleTorrent) IsPerfectFLAC() bool

func (*GazelleTorrent) IsSingleSeeded added in v0.15.0

func (gt *GazelleTorrent) IsSingleSeeded() bool

func (*GazelleTorrent) IsSmallerThan added in v0.15.0

func (gt *GazelleTorrent) IsSmallerThan(maxSize int) bool

func (*GazelleTorrent) MainArtists added in v0.15.0

func (gt *GazelleTorrent) MainArtists() []string

func (*GazelleTorrent) WasUploadedBy added in v0.15.0

func (gt *GazelleTorrent) WasUploadedBy(user string) bool

type GazelleTorrentGroup added in v0.2.0

type GazelleTorrentGroup struct {
	Group struct {
		BbBody          string        `json:"bbBody"`
		CatalogueNumber string        `json:"catalogueNumber"`
		CategoryID      int           `json:"categoryId"`
		CategoryName    string        `json:"categoryName"`
		Collages        []CollageInfo `json:"collages"`
		ID              int           `json:"id"`
		IsBookmarked    bool          `json:"isBookmarked"`
		MusicInfo       struct {
			Artists   []Artist `json:"artists"`
			Composers []Artist `json:"composers"`
			Conductor []Artist `json:"conductor"`
			Dj        []Artist `json:"dj"`
			Producer  []Artist `json:"producer"`
			RemixedBy []Artist `json:"remixedBy"`
			With      []Artist `json:"with"`
		} `json:"musicInfo"`
		Name             string        `json:"name"`
		PersonalCollages []CollageInfo `json:"personalCollages"`
		RecordLabel      string        `json:"recordLabel"`
		ReleaseType      int           `json:"releaseType"`
		Tags             []string      `json:"tags"`
		Time             string        `json:"time"`
		VanityHouse      bool          `json:"vanityHouse"`
		WikiBody         string        `json:"wikiBody"`
		WikiImage        string        `json:"wikiImage"`
		Year             int           `json:"year"`
	} `json:"group"`
	Torrents []struct {
		Description             string `json:"description"`
		Encoding                string `json:"encoding"`
		FileCount               int    `json:"fileCount"`
		FileList                string `json:"fileList"`
		FilePath                string `json:"filePath"`
		Format                  string `json:"format"`
		FreeTorrent             bool   `json:"freeTorrent"`
		HasCue                  bool   `json:"hasCue"`
		HasLog                  bool   `json:"hasLog"`
		HasSnatched             bool   `json:"has_snatched"`
		ID                      int    `json:"id"`
		Leechers                int    `json:"leechers"`
		LogScore                int    `json:"logScore"`
		LossyMasterApproved     bool   `json:"lossyMasterApproved"`
		LossyWebApproved        bool   `json:"lossyWebApproved"`
		Media                   string `json:"media"`
		RemasterCatalogueNumber string `json:"remasterCatalogueNumber"`
		RemasterRecordLabel     string `json:"remasterRecordLabel"`
		RemasterTitle           string `json:"remasterTitle"`
		RemasterYear            int    `json:"remasterYear"`
		Remastered              bool   `json:"remastered"`
		Reported                bool   `json:"reported"`
		Scene                   bool   `json:"scene"`
		Seeders                 int    `json:"seeders"`
		Size                    int    `json:"size"`
		Snatched                int    `json:"snatched"`
		Time                    string `json:"time"`
		Trumpable               bool   `json:"trumpable"`
		UserID                  int64  `json:"userId"`
		Username                string `json:"username"`
	} `json:"torrents"`
}

func (*GazelleTorrentGroup) AlreadySnatched added in v0.8.0

func (gtg *GazelleTorrentGroup) AlreadySnatched() bool

func (*GazelleTorrentGroup) Anonymize added in v0.8.0

func (gtg *GazelleTorrentGroup) Anonymize()

type GazelleTorrentGroupResponse added in v0.8.0

type GazelleTorrentGroupResponse struct {
	Response GazelleTorrentGroup `json:"response"`
	Status   string              `json:"status"`
	Error    string              `json:"error"`
}

type GazelleTorrentResponse added in v0.8.0

type GazelleTorrentResponse struct {
	Response GazelleTorrent `json:"response"`
	Status   string         `json:"status"`
	Error    string         `json:"error"`
}

type GazelleUserStats added in v0.2.0

type GazelleUserStats struct {
	Avatar    string `json:"avatar"`
	Community struct {
		ArtistsAdded    int   `json:"artistsAdded"`
		ArtistComments  int   `json:"artistComments"`
		BountyEarned    int   `json:"bountyEarned"`
		BountySpent     int64 `json:"bountySpent"`
		CollageComments int   `json:"collageComments"`
		CollagesContrib int   `json:"collagesContrib"`
		CollagesStarted int   `json:"collagesStarted"`
		Groups          int   `json:"groups"`
		GroupVotes      int   `json:"groupVotes"`
		Invited         int   `json:"invited"`
		Leeching        int   `json:"leeching"`
		PerfectFlacs    int   `json:"perfectFlacs"`
		Posts           int   `json:"posts"`
		RequestComments int   `json:"requestComments"`
		RequestsFilled  int   `json:"requestsFilled"`
		RequestsVoted   int   `json:"requestsVoted"`
		Seeding         int   `json:"seeding"`
		Snatched        int   `json:"snatched"`
		TorrentComments int   `json:"torrentComments"`
		Uploaded        int   `json:"uploaded"`
	} `json:"community"`
	IsFriend bool `json:"isFriend"`
	Personal struct {
		Class        string `json:"class"`
		Donor        bool   `json:"donor"`
		Enabled      bool   `json:"enabled"`
		Paranoia     int    `json:"paranoia"`
		ParanoiaText string `json:"paranoiaText"`
		Passkey      string `json:"passkey"`
		Warned       bool   `json:"warned"`
	} `json:"personal"`
	ProfileAlbum ProfileAlbum `json:"profileAlbum,omitempty"`
	ProfileText  string       `json:"profileText"`
	Ranks        struct {
		Artists    int         `json:"artists"`
		Bounty     int         `json:"bounty"`
		Downloaded int         `json:"downloaded"`
		Overall    interface{} `json:"overall"`
		Posts      int         `json:"posts"`
		Requests   int         `json:"requests"`
		Uploaded   int         `json:"uploaded"`
		Uploads    int         `json:"uploads"`
	} `json:"ranks"`
	Stats struct {
		Buffer        int64   `json:"buffer"`
		Downloaded    uint64  `json:"downloaded"`
		JoinedDate    string  `json:"joinedDate"`
		LastAccess    string  `json:"lastAccess"`
		Ratio         float64 `json:"ratio"`
		RequiredRatio float64 `json:"requiredRatio"`
		Uploaded      uint64  `json:"uploaded"`
	} `json:"stats"`
	Username string `json:"username"`
}

type GazelleUserStatsResponse added in v0.8.0

type GazelleUserStatsResponse struct {
	Response GazelleUserStats `json:"response"`
	Status   string           `json:"status"`
	Error    string           `json:"error"`
}

type IntOrString added in v0.9.2

type IntOrString int

IntOrString is defined because the response should be an int, but is sometimes a string.

func (*IntOrString) UnmarshalJSON added in v0.9.2

func (w *IntOrString) UnmarshalJSON(data []byte) error

UnmarshalJSON allows to unmarshall JSON with an int field sometimes returned as string.

type LogChecker added in v0.8.0

type LogChecker struct {
	Issues []string `json:"issues"`
	Score  int      `json:"score"`
}

func (*LogChecker) String added in v0.8.0

func (lc *LogChecker) String() string

type LogCheckerResponse added in v0.8.0

type LogCheckerResponse struct {
	Status   string     `json:"status"`
	Error    string     `json:"error"`
	Response LogChecker `json:"response"`
}

type ProfileAlbum added in v0.8.1

type ProfileAlbum struct {
	ID     string `json:"id"`
	Name   string `json:"name"`
	Review string `json:"review"`
}

ProfileAlbum is defined because the response is either this struct, or an empty slice.

func (*ProfileAlbum) UnmarshalJSON added in v0.8.1

func (w *ProfileAlbum) UnmarshalJSON(data []byte) error

UnmarshalJSON allows to unmarshall JSON with an empty slice as profile album, without throwing errors. Instead, the prfile album return an empty map.

type RequestSearchResult added in v0.5.0

type RequestSearchResult struct {
	Artists [][]struct {
		ID   IntOrString `json:"id"`
		Name string      `json:"name"`
	} `json:"artists"`
	BitrateList     []string `json:"bitrateList"`
	Bounty          int      `json:"bounty"`
	CatalogueNumber string   `json:"catalogueNumber"`
	CategoryID      int      `json:"categoryId"`
	CategoryName    string   `json:"categoryName"`
	Description     string   `json:"description"`
	FillerID        int      `json:"fillerId"`
	FillerName      string   `json:"fillerName"`
	FormatList      []string `json:"formatList"`
	Image           string   `json:"image"`
	IsFilled        bool     `json:"isFilled"`
	LastVote        string   `json:"lastVote"`
	LogCue          string   `json:"logCue"`
	MediaList       []string `json:"mediaList"`
	RecordLabel     string   `json:"recordLabel"`
	ReleaseType     string   `json:"releaseType"`
	RequestID       int      `json:"requestId"`
	RequestorID     int      `json:"requestorId"`
	RequestorName   string   `json:"requestorName"`
	TimeAdded       string   `json:"timeAdded"`
	TimeFilled      string   `json:"timeFilled"`
	Title           string   `json:"title"`
	TorrentID       int      `json:"torrentId"`
	VoteCount       int      `json:"voteCount"`
	Year            int      `json:"year"`
}

func (*RequestSearchResult) IsWebLosslessFLAC added in v0.5.0

func (rsr *RequestSearchResult) IsWebLosslessFLAC() bool

type TagOrSlice added in v0.15.6

type TagOrSlice []string

TagOrSlice is defined because the response should be a []string or a struct

func (*TagOrSlice) UnmarshalJSON added in v0.15.6

func (w *TagOrSlice) UnmarshalJSON(data []byte) error

UnmarshalJSON allows to unmarshall JSON for tags

type Tracker

type Tracker struct {
	sync.Mutex
	Name          string
	DomainURL     string
	User          string
	Password      string
	SessionCookie *http.Cookie
	APIKey        string
	Client        *http.Client

	UserAgent string // "name/version"
	Passkey   string
	LoginURL  string
	AuthKey   string
	// contains filtered or unexported fields
}

Tracker to do things with trackers.

func (*Tracker) Init

func (t *Tracker) Init(name, domain, user, password, cookieID, cookieValue, cookieDomain, apiKey, userAgent, loginURL string, rateLimited bool) error

func (*Tracker) RateLimiter

func (t *Tracker) RateLimiter()

func (*Tracker) SetRateLimiter added in v0.9.0

func (t *Tracker) SetRateLimiter(numCall, period int) error

func (*Tracker) StartRateLimiter added in v0.8.0

func (t *Tracker) StartRateLimiter()

type UploadResult added in v0.9.0

type UploadResult struct {
	Private   bool `json:"private"`
	Source    bool `json:"source"`
	RequestID int  `json:"requestid"`
	TorrentID int  `json:"torrentid"`
	GroupID   int  `json:"groupid"`
}

type UploadResultResponse added in v0.9.0

type UploadResultResponse struct {
	Status   string       `json:"status"`
	Error    string       `json:"error"`
	Response UploadResult `json:"response"`
}

type UserSearch added in v0.15.0

type UserSearch struct {
	CurrentPage int64 `json:"currentPage"`
	Pages       int64 `json:"pages"`
	Results     []struct {
		Avatar   string `json:"avatar"`
		Class    string `json:"class"`
		Donor    bool   `json:"donor"`
		Enabled  bool   `json:"enabled"`
		UserID   int    `json:"userId"`
		Username string `json:"username"`
		Warned   bool   `json:"warned"`
	} `json:"results"`
}

type UserSearchResponse added in v0.15.0

type UserSearchResponse struct {
	Status   string     `json:"status"`
	Error    string     `json:"error"`
	Response UserSearch `json:"response"`
}

type UserTorrent added in v0.8.0

type UserTorrent struct {
	ArtistID   int    `json:"artistId"`
	ArtistName string `json:"artistName"`
	GroupID    int    `json:"groupId"`
	Name       string `json:"name"`
	TorrentID  int    `json:"torrentId"`
}

type UserTorrents added in v0.8.0

type UserTorrents struct {
	Seeding  []UserTorrent `json:"seeding"`
	Leeching []UserTorrent `json:"leeching"`
	Uploaded []UserTorrent `json:"uploads"`
	Snatched []UserTorrent `json:"snatched"`
}

type UserTorrentsResponse added in v0.8.0

type UserTorrentsResponse struct {
	Status   string       `json:"status"`
	Error    string       `json:"error"`
	Response UserTorrents `json:"response"`
}

Jump to

Keyboard shortcuts

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