protocol

package
v0.4.2 Latest Latest
Warning

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

Go to latest
Published: Jul 19, 2026 License: MIT Imports: 9 Imported by: 0

Documentation

Overview

Package protocol 集中维护 Pixiv 上游协议的静态约定。

它不读取配置、不执行网络请求;每个 Headers 函数都返回新的 map,调用方可以 安全地在本次请求上补充认证信息而不污染其他请求。

Index

Constants

View Source
const (
	AppSearchIllust        = "/v1/search/illust"
	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 AppHeaders(accessToken string) map[string]string

func OAuthHeaders

func OAuthHeaders() map[string]string

func WebHeaders

func WebHeaders() map[string]string

func WebIllustDetail

func WebIllustDetail(id int64) string

func WebIllustPages

func WebIllustPages(id int64) string

func WebSearchArtworks

func WebSearchArtworks(word string) string

func WebUgoiraMetadata

func WebUgoiraMetadata(id int64) string

Types

type Failure

type Failure struct {
	Kind          FailureKind
	TransportKind TransportKind
	StatusCode    int
	// contains filtered or unexported fields
}

Failure 是 adapter 向 facade 交付的脱敏失败。它绝不保存响应 body、URL、 header、token、cookie 或 Web envelope message;只有取消和 deadline 可作为 可 unwrap 的底层原因,以保留 Go 的 context 语义。

func Forbidden

func Forbidden() Failure

func HTTPStatus

func HTTPStatus(status int) Failure

func MalformedResponse

func MalformedResponse() Failure

func Transport

func Transport(err error) Failure

func UpstreamRejected

func UpstreamRejected() Failure

func (Failure) Error

func (e Failure) Error() string

func (Failure) Is

func (e Failure) Is(target error) bool

func (Failure) Unwrap

func (e Failure) Unwrap() error

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"
	TransportUnknown           TransportKind = "unknown"
)

Jump to

Keyboard shortcuts

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