vangogh_integration

package
v0.3.74 Latest Latest
Warning

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

Go to latest
Published: Jan 6, 2026 License: AGPL-3.0 Imports: 26 Imported by: 23

Documentation

Index

Constants

View Source
const (
	Backups           pathways.AbsDir = "backups"
	Metadata          pathways.AbsDir = "metadata"
	Input             pathways.AbsDir = "input"
	Output            pathways.AbsDir = "output"
	Images            pathways.AbsDir = "images"
	DescriptionImages pathways.AbsDir = "description_images"
	Downloads         pathways.AbsDir = "downloads"
	Checksums         pathways.AbsDir = "checksums"
	Logs              pathways.AbsDir = "logs"
)
View Source
const (
	Redux          pathways.RelDir = "_redux"          // Metadata
	GitHubReleases pathways.RelDir = "github-releases" // Metadata
	Author         pathways.RelDir = "_author"         // Metadata
	WineBinaries   pathways.RelDir = "_wine-binaries"  // Downloads
	DLCs           pathways.RelDir = "dlc"             // Downloads
	Extras         pathways.RelDir = "extras"          // Downloads
)
View Source
const (
	GameProductType = "GAME"
	PackProductType = "PACK"
	DlcProductType  = "DLC"
)
View Source
const (
	DefaultSort = TitleProperty
	DefaultDesc = false
)
View Source
const (
	IdProperty = "id"

	LicencesProperty     = "licences"
	UserWishlistProperty = "user-wishlist"

	AccountPageProductsProperty = "account-page-products"
	CatalogPageProductsProperty = "catalog-page-products"
	OrderPageProductsProperty   = "order-page-products"

	TitleProperty                     = "title"
	DevelopersProperty                = "developers"
	PublishersProperty                = "publishers"
	ImageProperty                     = "image"
	VerticalImageProperty             = "vertical-image"
	ScreenshotsProperty               = "screenshots"
	HeroProperty                      = "hero"
	LogoProperty                      = "logo"
	IconProperty                      = "icon"
	IconSquareProperty                = "icon-square"
	BackgroundProperty                = "background"
	RatingProperty                    = "rating"
	ProductTypeProperty               = "product-type"
	IncludesGamesProperty             = "includes-games"
	IsIncludedByGamesProperty         = "is-included-by-games"
	RequiresGamesProperty             = "requires-games"
	IsRequiredByGamesProperty         = "is-required-by-games"
	ModifiesGamesProperty             = "modifies-games"
	IsModifiedByGamesProperty         = "is-modified-by-games"
	EditionsProperty                  = "editions"
	RootEditionsProperty              = "root-editions"
	GenresProperty                    = "genres"
	StoreTagsProperty                 = "store-tags"
	FeaturesProperty                  = "features"
	SeriesProperty                    = "series"
	ThemesProperty                    = "themes"
	GameModesProperty                 = "game-modes"
	TagIdProperty                     = "tag"
	TagNameProperty                   = "tag-name"
	VideoIdProperty                   = "video-id"
	VideoTitleProperty                = "video-title"
	VideoDurationProperty             = "video-duration"
	VideoErrorProperty                = "video-error"
	OperatingSystemsProperty          = "os"
	LanguageCodeProperty              = "lang-code"
	DownloadTypeProperty              = "download-type"
	NoPatchesProperty                 = "no-patches"
	SlugProperty                      = "slug"
	GOGReleaseDateProperty            = "gog-release-date"
	GOGOrderDateProperty              = "gog-order-date"
	GlobalReleaseDateProperty         = "global-release-date"
	LocalManualUrlProperty            = "local-manual-url"
	ManualUrlFilenameProperty         = "manual-url-filename"
	ManualUrlStatusProperty           = "manual-url-status"
	ManualUrlValidationResultProperty = "manual-url-validation-result"
	ProductValidationResultProperty   = "product-validation-result"
	DownloadStatusErrorProperty       = "download-status-error"
	DownloadQueuedProperty            = "download-queued"
	DownloadStartedProperty           = "download-started"
	DownloadCompletedProperty         = "download-completed"
	StoreUrlProperty                  = "store-url"
	ForumUrlProperty                  = "forum-url"
	SupportUrlProperty                = "support-url"
	ChangelogProperty                 = "changelog"
	DescriptionOverviewProperty       = "description-overview"
	DescriptionFeaturesProperty       = "description-features"
	AdditionalRequirementsProperty    = "additional-requirements"
	CopyrightsProperty                = "copyrights"
	InDevelopmentProperty             = "in-development"
	PreOrderProperty                  = "pre-order"
	ComingSoonProperty                = "coming-soon"
	BasePriceProperty                 = "base-price"
	PriceProperty                     = "price"
	IsFreeProperty                    = "is-free"
	IsDemoProperty                    = "is-demo"
	IsModProperty                     = "is-mod"
	IsDiscountedProperty              = "is-discounted"
	DiscountPercentageProperty        = "discount-percentage"
	SteamAppIdProperty                = "steam-app-id"
	LocalTagsProperty                 = "local-tags"

	SteamLastCommunityUpdateProperty = "steam-last-community-update"

	SteamReviewScoreProperty                  = "steam-review-score"
	SteamReviewScoreDescProperty              = "steam-review-score-desc"
	SteamDeckAppCompatibilityCategoryProperty = "steam-deck-app-compatibility-category"
	SteamOsAppCompatibilityCategoryProperty   = "steamos-app-compatibility-category" // no space in SteamOS

	SummaryRatingProperty  = "summary-rating"
	SummaryReviewsProperty = "summary-reviews"

	PcgwPageIdProperty = "pcgw-page-id"

	HltbIdProperty                  = "hltb-id"
	HltbHoursToCompleteMainProperty = "hltb-comp-main"
	HltbHoursToCompletePlusProperty = "hltb-comp-plus"
	HltbHoursToComplete100Property  = "hltb-comp-100"
	HltbReviewScoreProperty         = "hltb-review-score"
	HltbGenresProperty              = "hltb-genres"
	HltbPlatformsProperty           = "hltb-platforms"

	IgdbIdProperty         = "igdb-id"
	StrategyWikiIdProperty = "strategy-wiki-id"
	MobyGamesIdProperty    = "moby-games-id"
	WikipediaIdProperty    = "wikipedia-id"
	WineHQIdProperty       = "winehq-id"
	VndbIdProperty         = "vndb-id"
	IGNWikiSlugProperty    = "ign-wiki-slug"
	OpenCriticIdProperty   = "opencritic-id"
	OpenCriticSlugProperty = "opencritic-slug"

	EnginesProperty       = "engines"
	EnginesBuildsProperty = "engines-builds"

	CreditsProperty            = "credits"
	HasMultipleCreditsProperty = "has-multiple-credits"

	CreatorsProperty    = "creators"
	DirectorsProperty   = "directors"
	ProducersProperty   = "producers"
	DesignersProperty   = "designers"
	ProgrammersProperty = "programmers"
	ArtistsProperty     = "artists"
	WritersProperty     = "writers"
	ComposersProperty   = "composers"

	ProtonDBTierProperty       = "protondb-tier"
	ProtonDBConfidenceProperty = "protondb-confidence"

	RequiredAgeProperty       = "required-age"
	ControllerSupportProperty = "controller-support"
	ShortDescriptionProperty  = "short-description"
	WebsiteProperty           = "website"
	MetacriticScoreProperty   = "metacritic-score"
	MetacriticIdProperty      = "metacritic-id"
	SteamCategoriesProperty   = "steam-categories"
	SteamGenresProperty       = "steam-genres"
	SteamSupportUrlProperty   = "steam-support-url"
	SteamSupportEmailProperty = "steam-support-email"

	OpenCriticMedianScoreProperty     = "opencritic-median-score"
	OpenCriticTopCriticsScoreProperty = "opencritic-top-critics-score"
	OpenCriticPercentileProperty      = "opencritic-percentile"
	OpenCriticTierProperty            = "opencritic-tier"

	GetDataErrorDateProperty    = "get-data-error-date"
	GetDataErrorMessageProperty = "get-data-error-message"
	GetDataLastUpdatedProperty  = "get-data-last-updated"

	OwnedProperty      = "owned"
	TypesProperty      = "types"
	TopPercentProperty = "top-percent"

	DataSchemeVersionProperty = "data-scheme-version"

	SyncEventsProperty      = "sync-events"
	LastSyncUpdatesProperty = "last-sync-updates"

	DehydratedImageProperty = "dehydrated-image"
	RepColorProperty        = "rep-color"

	SortProperty       = "sort"
	DescendingProperty = "desc"
)
View Source
const (
	// property values
	TrueValue  = "true"
	FalseValue = "false"
)
View Source
const (
	RatingUnknown  = "Not Rated"
	RatingPositive = "Positive"
	RatingMixed    = "Mixed"
	RatingNegative = "Negative"
)
View Source
const (
	SyncInterruptedKey       = "sync-interrupted"
	SyncStartKey             = "sync-start"
	SyncDataKey              = "sync-data"
	SyncDescriptionImagesKey = "sync-description-images"
	SyncImagesKey            = "sync-images"
	SyncDehydrateKey         = "sync-dehydrate"
	SyncVideoMetadataKey     = "sync-video-metadata"
	SyncDownloadsKey         = "sync-downloads"
	SyncCleanupKey           = "sync-cleanup"
	SyncWineBinaries         = "sync-wine-binaries"
	SyncBackup               = "sync-backup"
	SyncCompleteKey          = "sync-complete"
)
View Source
const (
	UpdatesInstallers    = "files"
	UpdatesNewProducts   = "store"
	UpdatesReleasedToday = "today"
	UpdatesSteamNews     = "steam"
)
View Source
const DefaultDownloadsLayout = FlatDownloadsLayout

Variables

View Source
var CurrentSyncEventsTitles = map[string]string{
	SyncInterruptedKey:       "Interrupted",
	SyncStartKey:             "Started sync",
	SyncDataKey:              "Updating data",
	SyncDescriptionImagesKey: "Updating descriptions",
	SyncImagesKey:            "Updating images",
	SyncDehydrateKey:         "Processing images",
	SyncVideoMetadataKey:     "Updating videos",
	SyncDownloadsKey:         "Downloading files",
	SyncCleanupKey:           "Cleaning up downloads",
	SyncWineBinaries:         "Updating WINE binaries",
	SyncBackup:               "Backing up data",
	SyncCompleteKey:          "Sync complete",
}
View Source
var ProductTypeProperties = map[ProductType][]string{
	Licences:                     GOGLicencesProperties(),
	UserWishlist:                 GOGUserWishlistProperties(),
	CatalogPage:                  GOGCatalogPageProperties(),
	OrderPage:                    GOGOrderPageProperties(),
	AccountPage:                  GOGAccountPageProperties(),
	ApiProducts:                  GOGApiProductProperties(),
	Details:                      GOGDetailsProperties(),
	GamesDbGogProducts:           GOGGamesDbProperties(),
	SteamAppDetails:              SteamAppDetailsProperties(),
	SteamAppReviews:              SteamAppReviewsProperties(),
	SteamDeckCompatibilityReport: SteamDeckCompatibilityReportProperties(),
	PcgwGogPageId:                PcgwPageIdProperties(),
	PcgwSteamPageId:              PcgwPageIdProperties(),
	PcgwRaw:                      PcgwRawProperties(),
	WikipediaRaw:                 WikipediaRawProperties(),
	HltbData:                     HltbDataProperties(),
	ProtonDbSummary:              ProtonDbSummaryProperties(),
	OpenCriticApiGame:            OpenCriticApiGameProperties(),
}
View Source
var UpdatesAtomTitles = map[string]string{
	UpdatesReleasedToday: "Released T-Day",
}
View Source
var UpdatesLongerTitles = map[string]string{
	UpdatesInstallers:    "Updated Installers",
	UpdatesNewProducts:   "New in Store",
	UpdatesReleasedToday: "Released on {month} {day}",
	UpdatesSteamNews:     "Steam News",
}
View Source
var UpdatesShorterTitles = map[string]string{
	UpdatesInstallers:    "Files",
	UpdatesNewProducts:   "Store",
	UpdatesReleasedToday: "T-Day",
	UpdatesSteamNews:     "Steam",
}

Functions

func AbsAtomFeedPath

func AbsAtomFeedPath() string

func AbsChecksumPath added in v0.2.58

func AbsChecksumPath(absDownloadPath string) (string, error)

func AbsCookiePath

func AbsCookiePath() string

func AbsDescriptionImagePath added in v0.2.14

func AbsDescriptionImagePath(path string) (string, error)

func AbsImagesDirByImageId

func AbsImagesDirByImageId(imageId string) (string, error)

func AbsLocalImagePath

func AbsLocalImagePath(imageId string) (string, error)

func AbsLocalSlugDownloads added in v0.2.58

func AbsLocalSlugDownloads(slug string, dl DownloadsLayout) (map[string]any, error)

func AbsProductTypeDir added in v0.1.94

func AbsProductTypeDir(pt ProductType) (string, error)

func AbsReduxDir added in v0.3.72

func AbsReduxDir() string

func AbsSlugDownloadDir added in v0.2.58

func AbsSlugDownloadDir(slug string, dt DownloadType, layout DownloadsLayout) (string, error)

func AddLocalTags

func AddLocalTags(ids, tags []string, tpw nod.TotalProgressWriter) error

func AddTags

func AddTags(
	httpClient *http.Client,
	ids, tags []string,
	tpw nod.TotalProgressWriter) error

func AddToLocalWishlist

func AddToLocalWishlist(
	ids []string,
	tpw nod.TotalProgressWriter) ([]string, error)

func AllProductTypes added in v0.2.9

func AllProductTypes() iter.Seq[ProductType]

func CreateTag

func CreateTag(httpClient *http.Client, tagName string) error

func CreditsProperties added in v0.2.74

func CreditsProperties() []string

func DehydratedImagesProperties

func DehydratedImagesProperties() []string

func DeleteTag

func DeleteTag(httpClient *http.Client, tagName, tagId string) error

func DetailsNotFoundErr added in v0.2.79

func DetailsNotFoundErr(id string) error

func DiffLocalTags

func DiffLocalTags(id string, newTags []string) (add []string, rem []string, err error)

func DiffTags

func DiffTags(id string, newTags []string) (add []string, rem []string, err error)

func DownloadTypesCloValues added in v0.3.13

func DownloadTypesCloValues() []string

func DownloadsLayoutsCloValues added in v0.3.13

func DownloadsLayoutsCloValues() []string

func DownloadsLifecycleProperties added in v0.2.88

func DownloadsLifecycleProperties() []string

func ExtractDescItems

func ExtractDescItems(desc string) []string
func ExtractGameLinks(desc string) []string

func FlagFromUrl

func FlagFromUrl(u *url.URL, arg string) bool

func FormatBytes added in v0.2.80

func FormatBytes(b int64) string

func GOGAccountPageProperties added in v0.2.3

func GOGAccountPageProperties() []string

func GOGApiProductProperties added in v0.2.3

func GOGApiProductProperties() []string

func GOGCatalogPageProperties added in v0.2.3

func GOGCatalogPageProperties() []string

func GOGDetailsProperties added in v0.2.3

func GOGDetailsProperties() []string

func GOGGamesDbProperties added in v0.2.3

func GOGGamesDbProperties() []string

func GOGLicencesProperties added in v0.2.13

func GOGLicencesProperties() []string

func GOGOrderPageProperties added in v0.2.3

func GOGOrderPageProperties() []string

func GOGUserWishlistProperties added in v0.2.13

func GOGUserWishlistProperties() []string

func GetDataProperties added in v0.2.77

func GetDataProperties() []string

func HltbDataProperties added in v0.2.8

func HltbDataProperties() []string

func IdsFromUrl

func IdsFromUrl(u *url.URL) ([]string, error)

func ImagePropertyUrls

func ImagePropertyUrls(imageIds []string, it ImageType) ([]*url.URL, error)

func ImageTypeDehydrationSamples

func ImageTypeDehydrationSamples(it ImageType) int

func ImageTypesCloValues added in v0.3.13

func ImageTypesCloValues() []string

func InitPathways added in v0.3.72

func InitPathways() error

func IsDetailsNotFound added in v0.2.79

func IsDetailsNotFound(err error) bool

func IsNilDetails added in v0.2.79

func IsNilDetails(err error) bool

func IsValidImageType

func IsValidImageType(it ImageType) bool

func LanguageCodesFromUrl added in v0.2.55

func LanguageCodesFromUrl(u *url.URL) []string

func LocalDownloadDirs

func LocalDownloadDirs() (map[string]any, error)

func LocalImageIds

func LocalImageIds() (map[string]any, error)

func LocalProperties added in v0.2.21

func LocalProperties() []string

func MapDownloads

func MapDownloads(
	ids []string,
	rdx redux.Readable,
	operatingSystems []OperatingSystem,
	langCodes []string,
	downloadTypes []DownloadType,
	excludePatches bool,
	dlProcessor DownloadsListProcessor,
	tpw nod.TotalProgressWriter) error

func NilDetailsErr added in v0.2.79

func NilDetailsErr(id string) error

func OpenCriticApiGameProperties added in v0.2.45

func OpenCriticApiGameProperties() []string

func OperatingSystemsCloValues added in v0.3.13

func OperatingSystemsCloValues() []string

func PcgwPageIdProperties added in v0.2.7

func PcgwPageIdProperties() []string

func PcgwRawProperties added in v0.2.50

func PcgwRawProperties() []string

func PrintParams

func PrintParams(
	ids []string,
	operatingSystems []OperatingSystem,
	langCodes []string,
	downloadTypes []DownloadType,
	noPatches bool)

func ProductTypeId added in v0.2.77

func ProductTypeId(pt ProductType, id string) (string, error)

func ProductTypesCloValues added in v0.3.13

func ProductTypesCloValues() []string

func PropertiesFromUrl

func PropertiesFromUrl(u *url.URL) []string

func PropertyFromImageType

func PropertyFromImageType(it ImageType) string

func PropertyFromUrl

func PropertyFromUrl(u *url.URL) string

func PropertyListsFromIdSet

func PropertyListsFromIdSet(
	ids []string,
	propertyFilter map[string][]string,
	properties []string,
	rdx redux.Readable) (map[string][]string, error)

func ProtonDbSummaryProperties added in v0.2.4

func ProtonDbSummaryProperties() []string

func RatingDesc added in v0.2.31

func RatingDesc(ri int64) string

func ReducedProperties added in v0.2.13

func ReducedProperties() []string

func ReduxProperties

func ReduxProperties() []string

func RemoveFromLocalWishlist

func RemoveFromLocalWishlist(
	ids []string,
	tpw nod.TotalProgressWriter) ([]string, error)

func RemoveLocalTags

func RemoveLocalTags(ids, tags []string, tpw nod.TotalProgressWriter) error

func RemoveTags

func RemoveTags(
	httpClient *http.Client,
	ids, tags []string,
	tpw nod.TotalProgressWriter) error

func SinceFromUrl

func SinceFromUrl(u *url.URL) (int64, error)

func SizeToEstimatedBytes

func SizeToEstimatedBytes(size string) int64

func SortStrIntMap

func SortStrIntMap(m map[string]int, desc bool) []string

func SteamAppDetailsProperties added in v0.2.1

func SteamAppDetailsProperties() []string

func SteamAppNewsProperties added in v0.2.61

func SteamAppNewsProperties() []string

func SteamAppReviewsProperties added in v0.2.3

func SteamAppReviewsProperties() []string

func SteamDeckCompatibilityReportProperties added in v0.2.4

func SteamDeckCompatibilityReportProperties() []string

func SteamGridImageFilename

func SteamGridImageFilename(shortcutId uint32, imageType ImageType) string

func SteamGridLogoPositionFilename added in v0.3.49

func SteamGridLogoPositionFilename(shortcutId uint32) string

func SyncProperties

func SyncProperties() []string

func TagIdByName

func TagIdByName(tagName string) (string, error)

func UnmarshalDetails added in v0.2.19

func UnmarshalDetails(id string, kvDetails kevlar.KeyValues) (*gog_integration.Details, error)

func ValueFromUrl

func ValueFromUrl(u *url.URL, arg string) string

func ValuesFromUrl

func ValuesFromUrl(u *url.URL, arg string) []string

func VideoProperties

func VideoProperties() []string

func WikipediaRawProperties added in v0.2.70

func WikipediaRawProperties() []string

Types

type Download

type Download struct {
	ManualUrl      string
	ProductTitle   string
	Name           string
	Version        string
	Date           string
	Type           string
	Info           int
	OS             OperatingSystem
	LanguageCode   string
	DownloadType   DownloadType
	EstimatedBytes int64
}

func (*Download) String

func (dl *Download) String() string

type DownloadStatus added in v0.3.62

type DownloadStatus int
const (
	DownloadStatusValidated DownloadStatus = iota
	DownloadStatusDownloaded
	DownloadStatusUnknown
	DownloadStatusQueued
	DownloadStatusDownloading
	DownloadStatusInterrupted
)

func ParseDownloadStatus added in v0.3.62

func ParseDownloadStatus(dss string) DownloadStatus

func (DownloadStatus) HumanReadableString added in v0.3.62

func (ds DownloadStatus) HumanReadableString() string

func (DownloadStatus) String added in v0.3.62

func (ds DownloadStatus) String() string

type DownloadType

type DownloadType int
const (
	AnyDownloadType DownloadType = iota
	Installer
	Movie
	DLC
	Extra
)

func AllDownloadTypes

func AllDownloadTypes() []DownloadType

func DownloadTypesFromUrl

func DownloadTypesFromUrl(u *url.URL) []DownloadType

func ParseDownloadType

func ParseDownloadType(downloadType string) DownloadType

func ParseManyDownloadTypes

func ParseManyDownloadTypes(dtStrings []string) []DownloadType

func (DownloadType) HumanReadableString added in v0.3.32

func (dt DownloadType) HumanReadableString() string

func (DownloadType) String

func (dt DownloadType) String() string

type DownloadValidationStatus added in v0.3.51

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

func NewManualUrlDvs added in v0.3.62

func NewManualUrlDvs(manualUrl string, rdx redux.Readable) *DownloadValidationStatus

func NewProductDvs added in v0.3.62

func NewProductDvs(id string, rdx redux.Readable) *DownloadValidationStatus

func (*DownloadValidationStatus) DownloadStatus added in v0.3.62

func (dvs *DownloadValidationStatus) DownloadStatus() DownloadStatus

func (*DownloadValidationStatus) HumanReadableString added in v0.3.51

func (dvs *DownloadValidationStatus) HumanReadableString() string

func (*DownloadValidationStatus) ValidationStatus added in v0.3.62

func (dvs *DownloadValidationStatus) ValidationStatus() ValidationStatus

type DownloadsLayout added in v0.2.52

type DownloadsLayout int
const (
	UnknownDownloadsLayout DownloadsLayout = iota
	ShardedDownloadsLayout                 // order is important here given this will be used for clo default parameter
	FlatDownloadsLayout
)

func AllDownloadsLayouts added in v0.2.52

func AllDownloadsLayouts() []DownloadsLayout

func DownloadsLayoutFromUrl added in v0.2.52

func DownloadsLayoutFromUrl(u *url.URL) DownloadsLayout

func ParseDownloadsLayout added in v0.2.52

func ParseDownloadsLayout(downloadsLayout string) DownloadsLayout

func (DownloadsLayout) String added in v0.2.52

func (dl DownloadsLayout) String() string

type DownloadsList

type DownloadsList []Download

func FromDetails

func FromDetails(det *gog_integration.Details, rdx redux.Readable) (DownloadsList, error)

func (DownloadsList) Only

func (list DownloadsList) Only(
	operatingSystems []OperatingSystem,
	langCodes []string,
	downloadTypes []DownloadType,
	excludePatches bool) DownloadsList

func (DownloadsList) TotalBytesEstimate

func (list DownloadsList) TotalBytesEstimate() int64

func (DownloadsList) TotalGBsEstimate

func (list DownloadsList) TotalGBsEstimate() float64

type DownloadsListProcessor

type DownloadsListProcessor interface {
	Process(id string, slug string, downloadsList DownloadsList) error
}

type ImageType

type ImageType int
const (
	UnknownImageType ImageType = iota
	Image
	Screenshots
	VerticalImage
	Hero
	Icon
	IconSquare
	Background
)

func AllImageTypes

func AllImageTypes() []ImageType

func ImageTypeFromProperty

func ImageTypeFromProperty(property string) ImageType

func ImageTypesFromUrl

func ImageTypesFromUrl(u *url.URL) []ImageType

func ParseImageType

func ParseImageType(imageType string) ImageType

func (ImageType) String

func (it ImageType) String() string

type OperatingSystem

type OperatingSystem int
const (
	AnyOperatingSystem OperatingSystem = iota
	Windows
	MacOS
	Linux
)

func AllOperatingSystems

func AllOperatingSystems() []OperatingSystem

func OperatingSystemsFromUrl

func OperatingSystemsFromUrl(u *url.URL) []OperatingSystem

func ParseManyOperatingSystems

func ParseManyOperatingSystems(osStrings []string) []OperatingSystem

func ParseOperatingSystem

func ParseOperatingSystem(operatingSystem string) OperatingSystem

func (OperatingSystem) ErrUnsupported added in v0.2.86

func (os OperatingSystem) ErrUnsupported() error

func (OperatingSystem) String

func (os OperatingSystem) String() string

type ProductDetails added in v0.2.64

type ProductDetails struct {
	Id               string               `json:"id"`
	Slug             string               `json:"slug"`
	SteamAppId       string               `json:"steam-app-id,omitempty"`
	Title            string               `json:"title"`
	ProductType      string               `json:"product-type"`
	OperatingSystems []OperatingSystem    `json:"operating-systems"`
	Developers       []string             `json:"developers"`
	Publishers       []string             `json:"publishers"`
	Images           ProductImages        `json:"images"`
	DownloadLinks    ProductDownloadLinks `json:"download-links,omitempty"`
	IncludesGames    []string             `json:"includes-games,omitempty"`
	RequiresGames    []string             `json:"requires-games,omitempty"`
}
type ProductDownloadLink struct {
	ManualUrl        string           `json:"manual-url"`
	Name             string           `json:"name"`
	DownloadStatus   DownloadStatus   `json:"download-status"`
	ValidationStatus ValidationStatus `json:"validation-status"`
	LocalFilename    string           `json:"local-filename"`
	Md5              string           `json:"md5"`
	OperatingSystem  OperatingSystem  `json:"os"`
	DownloadType     DownloadType     `json:"download-type"`
	LanguageCode     string           `json:"language-code"`
	Version          string           `json:"version"`
	EstimatedBytes   int64            `json:"estimated-bytes"`
}
type ProductDownloadLinks []ProductDownloadLink

func (ProductDownloadLinks) FilterDownloadTypes added in v0.2.64

func (mdl ProductDownloadLinks) FilterDownloadTypes(downloadTypes ...DownloadType) ProductDownloadLinks

func (ProductDownloadLinks) FilterLanguageCodes added in v0.2.64

func (mdl ProductDownloadLinks) FilterLanguageCodes(languageCodes ...string) ProductDownloadLinks

func (ProductDownloadLinks) FilterOperatingSystems added in v0.2.64

func (mdl ProductDownloadLinks) FilterOperatingSystems(operatingSystems ...OperatingSystem) ProductDownloadLinks

type ProductImages added in v0.2.64

type ProductImages struct {
	VerticalImage string `json:"vertical-image,omitempty"`
	Image         string `json:"image,omitempty"`
	Hero          string `json:"hero,omitempty"`
	Icon          string `json:"icon,omitempty"`
	IconSquare    string `json:"icon-square,omitempty"`
	Background    string `json:"background,omitempty"`
}

type ProductType

type ProductType int
const (
	UnknownProductType ProductType = iota

	CatalogPage
	AccountPage
	UserWishlist
	Details
	ApiProducts
	Licences
	OrderPage
	UserAccessToken

	GamesDbGogProducts

	SteamAppList
	SteamAppDetails
	SteamAppNews
	SteamAppReviews
	SteamDeckCompatibilityReport

	PcgwGogPageId
	PcgwSteamPageId
	PcgwRaw

	WikipediaRaw

	HltbRootPage
	HltbData

	ProtonDbSummary

	OpenCriticApiGame
)

func ParseProductType

func ParseProductType(productType string) ProductType

func ProductTypeFromUrl

func ProductTypeFromUrl(u *url.URL) ProductType

func ProductTypesFromUrl added in v0.2.23

func ProductTypesFromUrl(u *url.URL) []ProductType

func (ProductType) String

func (pt ProductType) String() string

type ValidationChunk

type ValidationChunk struct {
	XMLName xml.Name `xml:"chunk"`
	ID      int      `xml:"id,attr"`
	From    int      `xml:"from,attr"`
	To      int      `xml:"to,attr"`
	Method  string   `xml:"method,attr"`
	Value   string   `xml:",innerxml"`
}

type ValidationFile

type ValidationFile struct {
	XMLName             xml.Name          `xml:"file"`
	Name                string            `xml:"name,attr"`
	Available           int               `xml:"available,attr"`
	NotAvailableMessage string            `xml:"notavailablemsg,attr"`
	MD5                 string            `xml:"md5,attr"`
	Chunks              int               `xml:"chunks,attr"`
	Timestamp           string            `xml:"timestamp,attr"`
	TotalSize           int               `xml:"total_size,attr"`
	ValidationChunks    []ValidationChunk `xml:"chunk"`
}

type ValidationStatus added in v0.3.62

type ValidationStatus int
const (
	ValidationStatusSuccess ValidationStatus = iota
	ValidationStatusUnknown
	ValidationStatusQueued
	ValidationStatusValidating
	ValidationStatusMissingChecksum
	ValidationStatusUnresolvedManualUrl
	ValidationStatusMissingLocalFile
	ValidationStatusError
	ValidationStatusChecksumMismatch
)

func ParseValidationStatus added in v0.3.62

func ParseValidationStatus(vrs string) ValidationStatus

func WorstValidationStatus added in v0.3.62

func WorstValidationStatus(vrs ...ValidationStatus) ValidationStatus

func (ValidationStatus) HumanReadableString added in v0.3.62

func (vr ValidationStatus) HumanReadableString() string

func (ValidationStatus) IsValidated added in v0.3.63

func (vr ValidationStatus) IsValidated() bool

func (ValidationStatus) String added in v0.3.62

func (vr ValidationStatus) String() string

type WineBinaryDetails added in v0.3.11

type WineBinaryDetails struct {
	Title    string          `json:"title"`
	OS       OperatingSystem `json:"os"`
	Version  string          `json:"version"`
	Digest   string          `json:"digest,omitempty"`
	Filename string          `json:"filename"`
}

Jump to

Keyboard shortcuts

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