appapi

package
v0.7.2 Latest Latest
Warning

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

Go to latest
Published: Aug 18, 2026 License: MIT Imports: 14 Imported by: 0

Documentation

Overview

Package appapi 是签名 App API 的真实 Client 组合层。

根 Client 通过未导出类型别名嵌入 transport 与各 endpoint capability,使用 method promotion 提供公开 SDK `Client.API()` 当前可见的扁平方法集;不暴露可访问的 endpoint 字段, 不保留手写转发。具体协议实现位于 client、codec、media、model 与 endpoint 子包。

Index

Constants

View Source
const (
	// AppVersion 是请求使用的 App 版本字符串。
	AppVersion = model.AppVersion
	// AppVersionNumber 是请求使用的数值版 App 版本。
	AppVersionNumber = model.AppVersionNumber
	// UserAgent 是 App API 使用的 User-Agent。
	UserAgent = model.UserAgent
	// HostMirror 是默认的 JavDB API 镜像地址。
	HostMirror = model.HostMirror
	// HostMain 是 JavDB 主站地址。
	HostMain = model.HostMain
)

Variables

View Source
var (
	Zones           = model.Zones
	MainFlags       = browse.MainFlags
	EntityLetters   = browse.EntityLetters
	CollectionSpecs = user.CollectionSpecs
)

这些变量保留原根包入口,并与 model/endpoint 使用同一底层 map。

Functions

func ActorPeriod

func ActorPeriod(period string) string

ActorPeriod 是 RankingPeriod 的兼容别名。

func AllPages

func AllPages(fetch func(page int) ([]map[string]any, error), maxPages int) ([]map[string]any, error)

AllPages 对分页回调聚合并按 id 去重。

func BuildEntityFilter

func BuildEntityFilter(kind, entityID, zone string, main []string) (string, error)

BuildEntityFilter 构建实体作品 filter_by mask。

func BuildSearchParams

func BuildSearchParams(keyword string, opt SearchOptions) map[string]string

BuildSearchParams 构建搜索 query 参数。

func BuildTagFilter

func BuildTagFilter(zone string, main, tags []string, year, month string) (string, error)

BuildTagFilter 构建分类浏览 filter_by mask。

func BuildTop250Params

func BuildTop250Params(zone, year string, startRank, page, limit int, ignoreWatched bool) (map[string]string, error)

BuildTop250Params 构建 TOP250 query 参数。

func FilterMagnets

func FilterMagnets(items []map[string]any, cnsub, hd bool, minSize int) []map[string]any

FilterMagnets 在本地按字幕、高清和大小过滤磁力。

func LoadOrCreateDeviceUUID

func LoadOrCreateDeviceUUID(path string) (string, error)

LoadOrCreateDeviceUUID 读取或创建稳定 device UUID。

func MagnetBetter added in v0.7.2

func MagnetBetter(a, b map[string]any) bool

MagnetBetter 报告磁力 a 是否优于 b(cnsub > hd > size > files_count)。

func MagnetURI

func MagnetURI(item map[string]any) string

MagnetURI 从磁力记录构建 magnet URI。

func PickBestMagnet

func PickBestMagnet(items []map[string]any) map[string]any

PickBestMagnet 选择优先级最高的磁力。

func RankingPeriod added in v0.5.1

func RankingPeriod(period string) string

RankingPeriod 将 CLI 周期映射为 API 周期。

func ResolveNumber

func ResolveNumber(movies []map[string]any, number string) (string, error)

ResolveNumber 在搜索结果中解析番号。

func SearchTypeListKey

func SearchTypeListKey(kind string) string

SearchTypeListKey 将实体类型映射到搜索响应 key。

Types

type AuthRequired

type AuthRequired = model.AuthRequired

稳定类型通过 alias 从 model 暴露,保证 SDK、仓内调用方和根 Client 使用同一类型身份。

type AutoHostOptions added in v0.6.0

type AutoHostOptions = route.SelectorOptions

自动选线类型是 route capability 的 alias,供公开 SDK facade 在只导入根 appapi 的前提下使用。

type AutoHostProbe added in v0.6.0

type AutoHostProbe = route.Probe

自动选线类型是 route capability 的 alias,供公开 SDK facade 在只导入根 appapi 的前提下使用。

func NewAutoHostProbe added in v0.6.0

func NewAutoHostProbe(opts AutoHostOptions) (AutoHostProbe, error)

NewAutoHostProbe 构造零重试的 /startup 自动选线探测函数。probe 共享同一 effective 网络选项与稳定 device UUID,不携带 bearer token。

type AutoHostResult added in v0.6.0

type AutoHostResult = route.Result

自动选线类型是 route capability 的 alias,供公开 SDK facade 在只导入根 appapi 的前提下使用。

func SelectAutoHost added in v0.6.0

func SelectAutoHost(ctx context.Context, opts AutoHostOptions, probe AutoHostProbe) (AutoHostResult, error)

SelectAutoHost 执行并发动态线路选择,供公开 SDK facade 调用。probe 由调用方经 NewAutoHostProbe 构造,便于注入可控探测。

type BrowseOptions

type BrowseOptions = model.BrowseOptions

稳定类型通过 alias 从 model 暴露,保证 SDK、仓内调用方和根 Client 使用同一类型身份。

type Client

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

Client 是真实组合层,嵌入 transport 与各 capability,仅构造一次 transport。

func New

func New(opts Options) (*Client, error)

New 按固定顺序构造 transport 与各 endpoint capability 并组合成根 Client。

type EntityMoviesOptions

type EntityMoviesOptions = model.EntityMoviesOptions

稳定类型通过 alias 从 model 暴露,保证 SDK、仓内调用方和根 Client 使用同一类型身份。

type Error

type Error = model.Error

稳定类型通过 alias 从 model 暴露,保证 SDK、仓内调用方和根 Client 使用同一类型身份。

type LoginResponse

type LoginResponse = model.LoginResponse

稳定类型通过 alias 从 model 暴露,保证 SDK、仓内调用方和根 Client 使用同一类型身份。

type Options

type Options = model.Options

稳定类型通过 alias 从 model 暴露,保证 SDK、仓内调用方和根 Client 使用同一类型身份。

type SearchOptions

type SearchOptions = model.SearchOptions

稳定类型通过 alias 从 model 暴露,保证 SDK、仓内调用方和根 Client 使用同一类型身份。

type SearchResult

type SearchResult = model.SearchResult

稳定类型通过 alias 从 model 暴露,保证 SDK、仓内调用方和根 Client 使用同一类型身份。

Directories

Path Synopsis
Package client 持有签名 App API 的 HTTP transport 与公共请求处理。
Package client 持有签名 App API 的 HTTP transport 与公共请求处理。
Package codec 负责 App API 的 JSON、JWT、用户 ID 和响应数组解析。
Package codec 负责 App API 的 JSON、JWT、用户 ID 和响应数组解析。
endpoint
auth
Package auth 负责登录、启动信息和用户身份解析 endpoint。
Package auth 负责登录、启动信息和用户身份解析 endpoint。
route
Package route 实现 JavDB App /startup 动态 API 域名的解密、候选提取与线路选择。
Package route 实现 JavDB App /startup 动态 API 域名的解密、候选提取与线路选择。
Package model 定义 JavDB App API 的稳定配置、响应和领域类型。
Package model 定义 JavDB App API 的稳定配置、响应和领域类型。

Jump to

Keyboard shortcuts

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