site

package
v0.1.8 Latest Latest
Warning

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

Go to latest
Published: Dec 8, 2023 License: AGPL-3.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CreateSiteHttpClient added in v0.1.1

func CreateSiteHttpClient(siteConfig *config.SiteConfigStruct, config *config.ConfigStruct) (*http.Client, error)

func DownloadTorrentByUrl added in v0.1.1

func DownloadTorrentByUrl(siteInstance Site, httpClient *http.Client, torrentUrl string, torrentId string) ([]byte, string, error)

general download torrent func

func Exit added in v0.1.6

func Exit()

called by main codes on program exit. clean resources

func GetConfigSiteNameByDomain added in v0.1.1

func GetConfigSiteNameByDomain(domain string) (string, error)

func GetConfigSiteNameByTypes added in v0.1.1

func GetConfigSiteNameByTypes(types ...string) (string, error)

func GetHttpHeaders added in v0.1.8

func GetHttpHeaders(siteInstance Site) map[string]string

func GetUa added in v0.1.8

func GetUa(siteInstance Site) string

return site ua from siteConfig and globalConfig

func PrintTorrents

func PrintTorrents(torrents []Torrent, filter string, now int64, noHeader bool, dense bool, scores map[string]float64)

func Purge added in v0.1.6

func Purge(siteName string)

Purge site cache

func Register

func Register(regInfo *RegInfo)

func SiteExists added in v0.1.6

func SiteExists(name string) bool

Types

type RegInfo

type RegInfo struct {
	Name    string
	Aliases []string
	Creator func(string, *config.SiteConfigStruct, *config.ConfigStruct) (Site, error)
}

func GetConfigSiteReginfo

func GetConfigSiteReginfo(name string) *RegInfo

type Site

type Site interface {
	GetName() string
	GetSiteConfig() *config.SiteConfigStruct
	// download torrent by id (eg. 12345), sitename.id (eg. mteam.12345), or absolute download url (eg. https://kp.m-team.cc/download.php?id=12345)
	DownloadTorrent(url string) (content []byte, filename string, err error)
	// download torrent by torrent id (eg. 12345)
	DownloadTorrentById(id string) (content []byte, filename string, err error)
	GetLatestTorrents(full bool) ([]Torrent, error)
	// sort: size|name|none(or "")
	GetAllTorrents(sort string, desc bool, pageMarker string, baseUrl string) (torrents []Torrent, nextPageMarker string, err error)
	SearchTorrents(keyword string, baseUrl string) ([]Torrent, error)
	GetStatus() (*Status, error)
	PurgeCache()
}

func CreateSite

func CreateSite(name string) (Site, error)

func CreateSiteInternal

func CreateSiteInternal(name string,
	siteConfig *config.SiteConfigStruct, config *config.ConfigStruct) (Site, error)

type SiteCreator

type SiteCreator func(*RegInfo) (Site, error)

type Status

type Status struct {
	UserName            string
	UserDownloaded      int64
	UserUploaded        int64
	TorrentsSeedingCnt  int64
	TorrentsLeechingCnt int64
}

func (*Status) IsOk added in v0.1.8

func (status *Status) IsOk() bool

check if (seems) as a valid site status

type Torrent

type Torrent struct {
	Name               string
	Description        string
	Id                 string // optional torrent id in the site
	InfoHash           string
	DownloadUrl        string
	DownloadMultiplier float64
	UploadMultiplier   float64
	DiscountEndTime    int64
	Time               int64 // torrent timestamp
	Size               int64
	IsSizeAccurate     bool
	Seeders            int64
	Leechers           int64
	Snatched           int64
	HasHnR             bool // true if has any type of HR
	IsActive           bool // true if torrent is as already downloading / seeding
	Paid               bool // "付费"种子: (第一次)下载或汇报种子时扣除魔力/积分
	Bought             bool // 适用于付费种子:已购买
	Neutral            bool // 中性种子:不计算上传、下载、做种魔力
}

func (*Torrent) MatchFilter added in v0.1.4

func (torrent *Torrent) MatchFilter(filter string) bool

func (*Torrent) MatchFiltersOr added in v0.1.7

func (torrent *Torrent) MatchFiltersOr(filters []string) bool

will match if any filter in list matches

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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