Documentation
¶
Overview ¶
Package appapi 是签名 App API 的真实 Client 组合层。
根 Client 通过未导出类型别名嵌入 transport 与各 endpoint capability,使用 method promotion 提供公开 SDK `Client.API()` 当前可见的扁平方法集;不暴露可访问的 endpoint 字段, 不保留手写转发。具体协议实现位于 client、codec、media、model 与 endpoint 子包。
Index ¶
- Constants
- Variables
- func ActorPeriod(period string) string
- func AllPages(fetch func(page int) ([]map[string]any, error), maxPages int) ([]map[string]any, error)
- func BuildEntityFilter(kind, entityID, zone string, main []string) (string, error)
- func BuildSearchParams(keyword string, opt SearchOptions) map[string]string
- func BuildTagFilter(zone string, main, tags []string, year, month string) (string, error)
- func BuildTop250Params(zone, year string, startRank, page, limit int, ignoreWatched bool) (map[string]string, error)
- func FilterMagnets(items []map[string]any, cnsub, hd bool, minSize int) []map[string]any
- func LoadOrCreateDeviceUUID(path string) (string, error)
- func MagnetBetter(a, b map[string]any) bool
- func MagnetURI(item map[string]any) string
- func PickBestMagnet(items []map[string]any) map[string]any
- func RankingPeriod(period string) string
- func ResolveNumber(movies []map[string]any, number string) (string, error)
- func SearchTypeListKey(kind string) string
- type AuthRequired
- type AutoHostOptions
- type AutoHostProbe
- type AutoHostResult
- type BrowseOptions
- type Client
- type EntityMoviesOptions
- type Error
- type LoginResponse
- type Options
- type SearchOptions
- type SearchResult
Constants ¶
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 ¶
var ( Zones = model.Zones MainFlags = browse.MainFlags EntityLetters = browse.EntityLetters CollectionSpecs = user.CollectionSpecs )
这些变量保留原根包入口,并与 model/endpoint 使用同一底层 map。
Functions ¶
func AllPages ¶
func AllPages(fetch func(page int) ([]map[string]any, error), maxPages int) ([]map[string]any, error)
AllPages 对分页回调聚合并按 id 去重。
func BuildEntityFilter ¶
BuildEntityFilter 构建实体作品 filter_by mask。
func BuildSearchParams ¶
func BuildSearchParams(keyword string, opt SearchOptions) map[string]string
BuildSearchParams 构建搜索 query 参数。
func BuildTagFilter ¶
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 ¶
FilterMagnets 在本地按字幕、高清和大小过滤磁力。
func LoadOrCreateDeviceUUID ¶
LoadOrCreateDeviceUUID 读取或创建稳定 device UUID。
func MagnetBetter ¶ added in v0.7.2
MagnetBetter 报告磁力 a 是否优于 b(cnsub > hd > size > files_count)。
func PickBestMagnet ¶
PickBestMagnet 选择优先级最高的磁力。
func RankingPeriod ¶ added in v0.5.1
RankingPeriod 将 CLI 周期映射为 API 周期。
func ResolveNumber ¶
ResolveNumber 在搜索结果中解析番号。
func SearchTypeListKey ¶
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
自动选线类型是 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
自动选线类型是 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。
type EntityMoviesOptions ¶
type EntityMoviesOptions = model.EntityMoviesOptions
稳定类型通过 alias 从 model 暴露,保证 SDK、仓内调用方和根 Client 使用同一类型身份。
type LoginResponse ¶
type LoginResponse = model.LoginResponse
稳定类型通过 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 的稳定配置、响应和领域类型。 |