Documentation
¶
Overview ¶
Package protocol 集中维护 Pixiv 上游协议的静态约定。
它不读取配置、不执行网络请求;每个 Headers 函数都返回新的 map,调用方可以 安全地在本次请求上补充认证信息而不污染其他请求。
Index ¶
- Constants
- Variables
- func AppHeaders(accessToken string) map[string]string
- func OAuthHeaders() map[string]string
- func WebHeaders() map[string]string
- func WebIllustDetail(id int64) string
- func WebIllustPages(id int64) string
- func WebSearchArtworks(word string) string
- func WebUgoiraMetadata(id int64) string
- type Failure
- type FailureKind
- type TransportKind
Constants ¶
View Source
const ( AppSearchIllust = "/v1/search/illust" AppSearchNovel = "/v1/search/novel" AppSearchIllustOptions = "/v1/search/options" AppIllustDetail = "/v1/illust/detail" AppIllustRelated = "/v2/illust/related" AppIllustRanking = "/v1/illust/ranking" AppSearchUser = "/v1/search/user" AppUserDetail = "/v1/user/detail" AppIllustRecommended = "/v1/illust/recommended" AppNovelRecommended = "/v1/novel/recommended" AppUserRecommended = "/v1/user/recommended" AppTrendingTagsIllust = "/v1/trending-tags/illust" AppIllustFollow = "/v2/illust/follow" AppUserIllusts = "/v1/user/illusts" AppUserBookmarks = "/v1/user/bookmarks/illust" AppUserFollowing = "/v1/user/following" AppUgoiraMetadata = "/v1/ugoira/metadata" AppBookmarkAdd = "/v2/illust/bookmark/add" AppBookmarkDelete = "/v1/illust/bookmark/delete" AppFollowAdd = "/v1/user/follow/add" AppFollowDelete = "/v1/user/follow/delete" OAuthToken = "/auth/token" AppLogin = "/web/v1/login" AppOAuthStart = "/web/v1/users/auth/pixiv/start" WebRanking = "/ranking.php" )
View Source
const ( AppAPIBase = "https://app-api.pixiv.net" WebAPIBase = "https://www.pixiv.net" OAuthBase = "https://oauth.secure.pixiv.net" AppReferer = AppAPIBase + "/" AppUserAgent = "PixivAndroidApp/5.0.234 (Android 11; Pixel 5)" WebUserAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0 Safari/537.36" AppOS = "android" AppOSVersion = "11" AppVersion = "5.0.234" OAuthClientID = "MOBrBDS8blbauoSck0ZfDbtuzpyT" OAuthClientSecret = "lsACyCD94FhDUtGTXi3QzcFE2uU1hqtDaKeqrdwj" OAuthRedirectURI = AppAPIBase + "/web/v1/users/auth/pixiv/callback" )
Variables ¶
View Source
var ErrMalformedResponse = errors.New("pixiv upstream returned a malformed response")
Functions ¶
func AppHeaders ¶
func OAuthHeaders ¶
func WebHeaders ¶
func WebIllustDetail ¶
func WebIllustPages ¶
func WebSearchArtworks ¶
func WebUgoiraMetadata ¶
Types ¶
type Failure ¶
type Failure struct {
Kind FailureKind
TransportKind TransportKind
StatusCode int
RetryAfter time.Duration
HasRetryAfter bool
// contains filtered or unexported fields
}
Failure 是 adapter 向 facade 交付的脱敏失败。它绝不保存响应 body、URL、 header、token、cookie 或 Web envelope message;只有取消和 deadline 可作为 可 unwrap 的底层原因,以保留 Go 的 context 语义。
func HTTPStatus ¶
func HTTPStatusWithRetryAfter ¶ added in v0.5.0
func MalformedResponse ¶
func MalformedResponse() Failure
func UpstreamRejected ¶
func UpstreamRejected() Failure
type FailureKind ¶
type FailureKind string
const ( FailureHTTPStatus FailureKind = "http_status" FailureMalformed FailureKind = "malformed_response" FailureRejected FailureKind = "upstream_rejected" FailureForbidden FailureKind = "forbidden" FailureTransport FailureKind = "transport" )
type TransportKind ¶ added in v0.4.0
type TransportKind string
TransportKind 是 adapter 交付给 facade 的安全传输失败子类。
const ( TransportDNS TransportKind = "dns" TransportTLS TransportKind = "tls" TransportProxy TransportKind = "proxy" TransportConnectionRefused TransportKind = "connection_refused" TransportConnectionReset TransportKind = "connection_reset" TransportTimeout TransportKind = "timeout" TransportUnknown TransportKind = "unknown" )
Click to show internal directories.
Click to hide internal directories.