impl

package
v1.0.77 Latest Latest
Warning

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

Go to latest
Published: May 3, 2026 License: MIT Imports: 37 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DefaultBuilders

func DefaultBuilders(opts BuilderOptions) []fetcher.Builder

DefaultBuilders returns a list of default fetchers using the provided options

func NewAiccFetcher

func NewAiccFetcher(client *reqx.Client) fetcher.Fetcher

NewAiccFetcher create a new AICC fetcher

func NewCharacterTavernFetcher

func NewCharacterTavernFetcher(client *reqx.Client) fetcher.Fetcher

NewCharacterTavernFetcher creates a new CharacterTavern fetcher

func NewChubAIFetcher

func NewChubAIFetcher(client *reqx.Client) fetcher.Fetcher

NewChubAIFetcher creates a new ChubAI fetcher

func NewJannyAIFetcher

func NewJannyAIFetcher(client *reqx.Client, opts JannyAIOpts) fetcher.Fetcher

NewJannyAIFetcher creates a new JannyAI fetcher

func NewMockFetcher

func NewMockFetcher(config MockConfig, mockData MockData) fetcher.Fetcher

NewMockFetcher creates a new mock fetcher

func NewNyaiMeFetcher

func NewNyaiMeFetcher(client *reqx.Client) fetcher.Fetcher

NewNyaiMeFetcher create a new NyaiMe fetcher

func NewPephopFetcher

func NewPephopFetcher(client *reqx.Client) fetcher.Fetcher

NewPephopFetcher create a new PepHop fetcher

func NewPygmalionFetcher

func NewPygmalionFetcher(client *reqx.Client, opts PygmalionOpts) fetcher.Fetcher

NewPygmalionFetcher create a new Pygmalion fetcher

func NewWyvernChatFetcher

func NewWyvernChatFetcher(client *reqx.Client) fetcher.Fetcher

NewWyvernChatFetcher creates a new WyvernChat fetcher

Types

type AiccBuilder

type AiccBuilder struct{}

AiccBuilder builder for AICC fetcher

func (AiccBuilder) Build

func (b AiccBuilder) Build(client *reqx.Client) fetcher.Fetcher

Build creates a new AICC fetcher

type BaseFetcher

type BaseFetcher struct {
	fetcher.Fetcher
	// contains filtered or unexported fields
}

BaseFetcher embeddable struct for creating a new fetcher

func (*BaseFetcher) BaseURLs

func (f *BaseFetcher) BaseURLs() []fetcher.BaseURL

BaseURLs returns the base URLs of the fetcher

func (*BaseFetcher) CharacterID

func (f *BaseFetcher) CharacterID(rawCharacterID string) string

CharacterID hook for overriding the character ID NO-OP by default

func (*BaseFetcher) Close

func (f *BaseFetcher) Close()

Close closes the fetcher (no-op for convenience, override if needed)

func (*BaseFetcher) CreateBinder

func (f *BaseFetcher) CreateBinder(characterID string, response string) (*fetcher.MetadataBinder, error)

CreateBinder creates a MetadataBinder from the metadata response

func (*BaseFetcher) CreateBinderFromJSON

func (f *BaseFetcher) CreateBinderFromJSON(characterID string, response string, pathCharacterID ...any) (*fetcher.MetadataBinder, error)

CreateBinderFromJSON parses the JSON metadata response from the source, and creates a MetadataBinder Optionally, the path to the character ID can be specified, for overriding the character ID

func (*BaseFetcher) DirectURL

func (f *BaseFetcher) DirectURL(characterID string) string

DirectURL returns the direct URL for a character

func (*BaseFetcher) Extends

func (f *BaseFetcher) Extends(top fetcher.Fetcher)

Extends extends the fetcher with the given fetcher

func (*BaseFetcher) FetchBookResponses

func (f *BaseFetcher) FetchBookResponses(metadataBinder *fetcher.MetadataBinder) (*fetcher.BookBinder, error)

FetchBookResponses fetches the book responses from the source (no-op for convenience, override if needed)

func (*BaseFetcher) IsSourceUp

func (f *BaseFetcher) IsSourceUp() error

IsSourceUp checks if the source is up

func (*BaseFetcher) MainURL

func (f *BaseFetcher) MainURL() string

MainURL returns the main URL of the fetcher

func (*BaseFetcher) NormalizeURL

func (f *BaseFetcher) NormalizeURL(characterID string) string

NormalizeURL returns the normalized URL for a character

func (*BaseFetcher) SourceID

func (f *BaseFetcher) SourceID() source.ID

SourceID returns the source ID of the fetcher

func (*BaseFetcher) SourceURL

func (f *BaseFetcher) SourceURL() string

SourceURL returns the source URL of the fetcher

type BuilderOptions

type BuilderOptions struct {
	PygmalionIdentityReader cred.IdentityReader
	ChromePath              func() string
}

BuilderOptions options for builders

type CharacterTavernBuilder

type CharacterTavernBuilder struct{}

CharacterTavernBuilder builder for CharacterTavern fetcher

func (CharacterTavernBuilder) Build

Build creates a new CharacterTavern fetcher

type ChubAIBuilder

type ChubAIBuilder struct{}

ChubAIBuilder builder for ChubAI fetcher

func (ChubAIBuilder) Build

func (b ChubAIBuilder) Build(client *reqx.Client) fetcher.Fetcher

Build creates a new ChubAI fetcher

type JannyAIBuilder

type JannyAIBuilder JannyAIOpts

JannyAIBuilder builder for JannyAI fetcher

func (JannyAIBuilder) Build

func (b JannyAIBuilder) Build(client *reqx.Client) fetcher.Fetcher

Build creates a new JannyAI fetcher

type JannyAIInterceptor

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

JannyAIInterceptor handles cookie extraction using chromedp for JannyAI.

func NewJannyAIInterceptor

func NewJannyAIInterceptor(chromePath func() string) *JannyAIInterceptor

NewJannyAIInterceptor creates a new JannyAI interceptor.

func (*JannyAIInterceptor) Apply

func (i *JannyAIInterceptor) Apply(r *req.Request) *req.Request

Apply sets the cookies and user agent on the request.

func (*JannyAIInterceptor) MaxRetries

func (i *JannyAIInterceptor) MaxRetries() int

MaxRetries returns the maximum number of recovery attempts.

func (*JannyAIInterceptor) Recover

func (i *JannyAIInterceptor) Recover(_ *reqx.Client, r *req.Response) error

Recover uses chromedp to pass the Cloudflare challenge and extract cookies.

func (*JannyAIInterceptor) ShouldIntercept

func (i *JannyAIInterceptor) ShouldIntercept(resp *req.Response, _ error) bool

ShouldIntercept returns true if the response indicates a Cloudflare challenge.

type JannyAIOpts

type JannyAIOpts struct {
	ChromePath func() string
}

JannyAIOpts JannyAI fetcher options

type MockBuilder

type MockBuilder struct {
	MockConfig
	MockData
}

MockBuilder builder for mock fetchers

func (MockBuilder) Build

func (b MockBuilder) Build(client *reqx.Client) fetcher.Fetcher

Build creates a new mock fetcher using the configured options

type MockConfig

type MockConfig struct {
	MockSourceID           source.ID
	MockDomain             string
	MockPath               string
	MockDirectURL          string
	MockAdditionalBaseURLs []fetcher.BaseURL
	IsUp                   bool
}

MockConfig contains the configuration for the mock fetcher

type MockData

type MockData struct {
	Response         *req.Response
	ResponseError    error
	CardInfo         *models.CardInfo
	CardInfoErr      error
	CreatorInfo      *models.CreatorInfo
	CreatorErr       error
	CharacterCard    *png.CharacterCard
	CharacterCardErr error
}

MockData contains the mock data to be returned by the fetcher

type NyaiMeBuilder

type NyaiMeBuilder struct{}

NyaiMeBuilder builder for NyaiMe fetcher

func (NyaiMeBuilder) Build

func (b NyaiMeBuilder) Build(client *reqx.Client) fetcher.Fetcher

Build creates a new NyaiMe fetcher

type PephopBuilder

type PephopBuilder struct{}

PephopBuilder builder for PepHop fetcher

func (PephopBuilder) Build

func (b PephopBuilder) Build(client *reqx.Client) fetcher.Fetcher

Build creates a new PepHop fetcher

type PygmalionBuilder

type PygmalionBuilder PygmalionOpts

PygmalionBuilder builder for Pygmalion fetcher

func (PygmalionBuilder) Build

func (b PygmalionBuilder) Build(client *reqx.Client) fetcher.Fetcher

Build creates a Pygmalion fetcher using the provided options

type PygmalionOpts

type PygmalionOpts struct {
	IdentityReader cred.IdentityReader
}

PygmalionOpts options for PygmalionBuilder

type WyvernChatBuilder

type WyvernChatBuilder struct{}

WyvernChatBuilder builder for WyvernChat fetcher

func (WyvernChatBuilder) Build

func (b WyvernChatBuilder) Build(client *reqx.Client) fetcher.Fetcher

Build creates a new WyvernChat fetcher

Jump to

Keyboard shortcuts

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