Documentation
¶
Index ¶
- func ParseUID(raw string) (int64, error)
- type AccountAddRequest
- type AccountCheckRequest
- type AccountListResult
- type AccountResult
- type AccountService
- func (s AccountService) Add(ctx context.Context, request AccountAddRequest) (AccountResult, error)
- func (s AccountService) Check(ctx context.Context, userID int64) (AccountResult, error)
- func (s AccountService) CheckWithRequest(ctx context.Context, request AccountCheckRequest) (AccountResult, error)
- func (s AccountService) List() (AccountListResult, error)
- func (s AccountService) Remove(userID int64) (AccountResult, int64, error)
- func (s AccountService) Use(userID int64) (int64, error)
- type ClientRequest
- type ConfigMutationResult
- type ConfigService
- type ConfigStore
- type LoginCompleteRequest
- type LoginService
- type LoginStart
- type SDKClient
- type SDKClientFactory
- type SDKClientRequest
- type SDKService
- func (s SDKService) Client(req SDKClientRequest) (SDKClient, error)
- func (s SDKService) CurrentUserID(ctx context.Context, req SDKClientRequest) (SDKClient, int64, error)
- func (s SDKService) JSONOut(override *bool) (bool, error)
- func (s SDKService) OpenOperation(ctx context.Context, req SDKClientRequest) (SDKClient, error)
- func (s SDKService) Runtime() (config.RuntimeConfig, error)
- type Services
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type AccountAddRequest ¶
type AccountCheckRequest ¶
type AccountListResult ¶
type AccountListResult struct {
DefaultUserID int64
Accounts []AccountResult
}
type AccountResult ¶
type AccountService ¶
type AccountService struct {
SDK SDKService
RefreshTokenFromEnv func() (string, error)
}
AccountService 只适配 public SDK 的本地账号 API。账号文件、token rotation 和 OAuth 身份验证均由 SDK 维护,应用层不再复制另一份 auth store 调用链。
func (AccountService) Add ¶
func (s AccountService) Add(ctx context.Context, request AccountAddRequest) (AccountResult, error)
func (AccountService) Check ¶
func (s AccountService) Check(ctx context.Context, userID int64) (AccountResult, error)
func (AccountService) CheckWithRequest ¶
func (s AccountService) CheckWithRequest(ctx context.Context, request AccountCheckRequest) (AccountResult, error)
func (AccountService) List ¶
func (s AccountService) List() (AccountListResult, error)
func (AccountService) Remove ¶
func (s AccountService) Remove(userID int64) (AccountResult, int64, error)
type ClientRequest ¶
type ClientRequest struct {
UserID int64
RefreshToken string
HTTPSProxyOverride *string
DownloadPathOverride *string
FilenameTemplateOverride *string
JSONOverride *bool
NeedsAuth bool
}
ClientRequest 是 CLI 解析 flags 后的本地请求值。内容与下载命令会进一步转换为 SDKClientRequest;本类型不持有 Pixiv client,也不建立第二条认证或内容调用链。
type ConfigMutationResult ¶
type ConfigService ¶
type ConfigService struct {
Store ConfigStore
}
func (ConfigService) Get ¶
func (s ConfigService) Get(alias string) (config.SettingValue, error)
func (ConfigService) Path ¶
func (s ConfigService) Path() (string, error)
func (ConfigService) Set ¶
func (s ConfigService) Set(alias, raw string) (ConfigMutationResult, error)
func (ConfigService) Unset ¶
func (s ConfigService) Unset(alias string) (ConfigMutationResult, error)
type ConfigStore ¶
type ConfigStore interface {
Path() (string, error)
Get(string) (config.SettingValue, error)
Set(string, string) (ConfigMutationResult, error)
Unset(string) (ConfigMutationResult, error)
}
type LoginCompleteRequest ¶
type LoginService ¶
type LoginService struct {
SDK SDKService
LoadRuntime func() (config.RuntimeConfig, error)
}
LoginService 将浏览器交互同 public SDK 的一次性 LoginSession 连接起来。应用层不再 自行生成 PKCE、直连 OAuth 或写入 auth store。
func (LoginService) Complete ¶
func (s LoginService) Complete(ctx context.Context, start LoginStart, request LoginCompleteRequest) (AccountResult, error)
func (LoginService) Start ¶
func (s LoginService) Start(requests ...SDKClientRequest) (LoginStart, error)
type LoginStart ¶
type LoginStart struct {
AuthorizationURL string
// contains filtered or unexported fields
}
func (LoginStart) AcceptsCallbackURL ¶ added in v0.3.0
func (s LoginStart) AcceptsCallbackURL(rawURL string) bool
AcceptsCallbackURL 是浏览器、loopback 和手工 URL 输入的非消耗性校验入口。它把 state/verifier 保持在 public SDK 的不透明 LoginSession 内,调用方只能得到布尔结果。
type SDKClient ¶ added in v0.2.0
type SDKClient interface {
ImportAccount(context.Context, string) (*sdk.Account, error)
ListAccounts() (*sdk.AccountsResult, error)
SelectAccount(int64) error
RemoveAccount(int64) error
CheckAccount(context.Context, int64) (*sdk.Account, error)
CheckRefreshToken(context.Context, string) (*sdk.Account, error)
Refresh(context.Context) (*sdk.Account, error)
StartLogin() (*sdk.LoginSession, error)
CompleteLogin(context.Context, *sdk.LoginSession, string, sdk.LoginOptions) (*sdk.Account, error)
CurrentUserID(context.Context) (int64, error)
SearchIllust(context.Context, sdk.SearchIllustRequest) (*sdk.IllustListResult, error)
IllustDetail(context.Context, int64) (*sdk.IllustDetail, error)
IllustRelated(context.Context, sdk.IllustRelatedRequest) (*sdk.IllustListResult, error)
IllustRanking(context.Context, sdk.IllustRankingRequest) (*sdk.IllustListResult, error)
IllustRecommended(context.Context, sdk.IllustRecommendedRequest) (*sdk.IllustListResult, error)
MangaRecommended(context.Context, sdk.IllustRecommendedRequest) (*sdk.IllustListResult, error)
NovelRecommended(context.Context, sdk.NovelRecommendedRequest) (*sdk.NovelListResult, error)
UserRecommended(context.Context, sdk.UserRecommendedRequest) (*sdk.UserRecommendedResult, error)
UserDetail(context.Context, sdk.UserDetailRequest) (*sdk.UserDetailResult, error)
UserArtworks(context.Context, sdk.UserArtworksRequest) (*sdk.IllustListResult, error)
UserBookmarks(context.Context, sdk.UserBookmarksRequest) (*sdk.IllustListResult, error)
UserBookmarksCursor(context.Context, sdk.UserBookmarksRequest, int64) (sdk.Cursor, error)
UserFollowing(context.Context, sdk.UserFollowingRequest) (*sdk.UserListResult, error)
FollowingIllusts(context.Context, sdk.FollowingIllustsRequest) (*sdk.IllustListResult, error)
SearchUser(context.Context, sdk.SearchUserRequest) (*sdk.UserListResult, error)
TrendingTagsIllust(context.Context) (*sdk.TrendingTagsIllustResult, error)
UgoiraMetadata(context.Context, int64) (*sdk.UgoiraMetadataResult, error)
ParseResourceRef(string) (sdk.ResourceRef, error)
OpenResource(context.Context, sdk.OpenResourceRequest) (*sdk.ResourceResponse, error)
Download(context.Context, sdk.ResourceRef, string) error
AddBookmark(context.Context, sdk.AddBookmarkRequest) error
RemoveBookmark(context.Context, sdk.RemoveBookmarkRequest) error
FollowUser(context.Context, sdk.FollowUserRequest) error
UnfollowUser(context.Context, sdk.UnfollowUserRequest) error
}
SDKClient 是 CLI 数据命令所需的窄 facade。它刻意不复用或导出旧 Source 的大接口, 让 CLI 通过公共 SDK 获得 cursor、错误和路由语义。
type SDKClientFactory ¶ added in v0.2.0
type SDKClientFactory func(SDKClientRequest) (SDKClient, error)
type SDKClientRequest ¶ added in v0.2.0
type SDKClientRequest struct {
UserID int64
RefreshToken string
HTTPSProxyOverride *string
// AuthFilePath 允许 MCP 等长驻调用方把 OAuth rotation 固定到同一个受保护 store。
// 为空时继续使用 OpenDefault 的标准路径。
AuthFilePath string
}
SDKClientRequest 只携带 CLI 显式覆写;其余 config/auth 优先级由 OpenDefault 在每次 SDK 操作快照中处理。
type SDKService ¶ added in v0.2.0
type SDKService struct {
NewClient SDKClientFactory
LoadRuntime func() (config.RuntimeConfig, error)
}
func (SDKService) Client ¶ added in v0.2.0
func (s SDKService) Client(req SDKClientRequest) (SDKClient, error)
func (SDKService) CurrentUserID ¶ added in v0.2.0
func (s SDKService) CurrentUserID(ctx context.Context, req SDKClientRequest) (SDKClient, int64, error)
CurrentUserID 通过 SDK OAuth 快照获取真实身份。这样 --refresh-token 和环境 token 都不会被本地默认账号误替代。
func (SDKService) JSONOut ¶ added in v0.2.0
func (s SDKService) JSONOut(override *bool) (bool, error)
JSONOut 与既有 CLI config 语义一致:命令显式 --json 覆盖 runtime 配置。
func (SDKService) OpenOperation ¶ added in v0.2.0
func (s SDKService) OpenOperation(ctx context.Context, req SDKClientRequest) (SDKClient, error)
OpenOperation 让一个 CLI 命令的 self 身份解析和所有 cursor 页面共享同一个 OpenDefault 快照,避免 OAuth rotation 在命令进行中使旧 refresh token 失效。
func (SDKService) Runtime ¶ added in v0.3.0
func (s SDKService) Runtime() (config.RuntimeConfig, error)
Runtime 返回当前本地运行配置,供下载路径这类 SDK 之外的本地输出策略使用。
type Services ¶
type Services struct {
Account AccountService
Config ConfigService
Login LoginService
SDK SDKService
}
Services 只组合应用层的本地适配与 public SDK facade。