site

package
v0.1.9 Latest Latest
Warning

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

Go to latest
Published: Mar 8, 2024 License: AGPL-3.0 Imports: 14 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, globalConfig *config.ConfigStruct) (
	*azuretls.Session, [][]string, error)

func DownloadTorrentByUrl added in v0.1.1

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

General download torrent func. Return torrentContent, filename, err

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 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
	// default sent http request headers
	GetDefaultHttpHeaders() [][]string
	GetSiteConfig() *config.SiteConfigStruct
	// download torrent by id (e.g.: 12345), sitename.id (e.g.: mteam.12345),
	// or absolute download url (e.g.: https://kp.m-team.cc/download.php?id=12345).
	DownloadTorrent(url string) (content []byte, filename string, id string, err error)
	// download torrent by torrent id (e.g.: "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)
	// can use "%s" as keyword placeholder in baseUrl
	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) MatchFiltersAndOr added in v0.1.9

func (torrent *Torrent) MatchFiltersAndOr(filtersArray [][]string) bool

Matches if every list of filtersArray is successed with MatchFiltersOr(). If filtersArray is empty, return true.

func (*Torrent) MatchFiltersOr added in v0.1.7

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

matches 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