Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ErrNotSupported = errors.New("operation not supported by this source")
ErrNotSupported indicates a source does not support the requested operation. Callers should branch with errors.Is(err, ErrNotSupported) and degrade gracefully (hide the action, show a notice) rather than treat it as a failure.
Functions ¶
This section is empty.
Types ¶
type Capabilities ¶ added in v1.6.0
Capabilities reports which optional operations a source supports.
func CapabilitiesOf ¶ added in v1.6.0
func CapabilitiesOf(src ModSource) Capabilities
CapabilitiesOf returns src's capabilities, assuming full capability for sources that do not implement CapabilityReporter (all built-in sources).
type CapabilityReporter ¶ added in v1.6.0
type CapabilityReporter interface {
Capabilities() Capabilities
}
CapabilityReporter is implemented by sources that support only a subset of ModSource operations. Sources that do not implement it are assumed fully capable.
type DownloadHeaderProvider ¶ added in v1.7.0
DownloadHeaderProvider is implemented by sources whose file downloads need extra HTTP headers (e.g. header-mode API-key auth on a manifest source). Service.DownloadModToCache consults it before downloading. A nil map means no extra headers.
type ModSource ¶
type ModSource interface {
// Identity
ID() string
Name() string
// Authentication
AuthURL() string
ExchangeToken(ctx context.Context, code string) (*Token, error)
// Discovery
Search(ctx context.Context, query SearchQuery) (SearchResult, error)
GetMod(ctx context.Context, gameID, modID string) (*domain.Mod, error)
GetDependencies(ctx context.Context, mod *domain.Mod) ([]domain.ModReference, error)
// Downloads
GetModFiles(ctx context.Context, mod *domain.Mod) ([]domain.DownloadableFile, error)
GetDownloadURL(ctx context.Context, mod *domain.Mod, fileID string) (string, error)
// Updates
CheckUpdates(ctx context.Context, installed []domain.InstalledMod) ([]domain.Update, error)
}
ModSource is the interface for mod repositories
type Registry ¶
type Registry struct {
// contains filtered or unexported fields
}
Registry manages available mod sources
type SearchQuery ¶
type SearchQuery struct {
GameID string
Query string
Category string // Optional category filter (source-specific: ID or name)
Tags []string // Optional tag filters (source-specific)
Page int
PageSize int
}
SearchQuery contains parameters for searching mods.
Directories
¶
| Path | Synopsis |
|---|---|
|
Package custom implements user-defined mod sources configured declaratively via YAML files in <configDir>/sources/.
|
Package custom implements user-defined mod sources configured declaratively via YAML files in <configDir>/sources/. |
|
metadata
Package metadata extracts mod metadata from well-known files inside a mod directory (e.g.
|
Package metadata extracts mod metadata from well-known files inside a mod directory (e.g. |
|
Package httpclient is a thin JSON HTTP client used by mod-source SDKs (NexusMods, CurseForge, ...).
|
Package httpclient is a thin JSON HTTP client used by mod-source SDKs (NexusMods, CurseForge, ...). |