gog_integration

package
v0.1.36 Latest Latest
Warning

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

Go to latest
Published: Dec 27, 2023 License: MIT Imports: 15 Imported by: 6

Documentation

Index

Constants

View Source
const (
	AccountSortByTitle        AccountSortOrder = "title"
	AccountSortByPurchaseDate                  = "date_purchased"
	AccountSortByTags                          = "tags"
	AccountSortByOldestFirst                   = "release_date_asc"
	AccountSortByNewestFirst                   = "release_date_asc"
)
View Source
const (
	CatalogProductStateDefault     = "default"
	CatalogProductStateComingSoon  = "coming-soon"
	CatalogProductStateEarlyAccess = "early-access"
	CatalogProductStatePreOrder    = "pre-order"
)
View Source
const (
	Ascending  = "asc"
	Descending = "desc"
)
View Source
const (
	PngExt = ".png"
	JpgExt = ".jpg"
)
View Source
const (
	OrderStatusGiftByMe  = "gift_by_me"
	OrderStatusGiftForMe = "gift_for_me"
	OrderStatusPurchase  = "purchase"
	OrderStatusRefund    = "refund"
)
View Source
const (
	GogHost    = "gog.com"
	WwwGogHost = "www." + GogHost

	ItemsHost   = "items." + GogHost
	CatalogHost = "catalog." + GogHost
)

hosts

View Source
const GameMedia = "game"

Variables

This section is empty.

Functions

func AccountPageUrl

func AccountPageUrl(
	page string,
	sortOrder AccountSortOrder,
	updated bool,
	hidden bool) *url.URL

func AddTagUrl

func AddTagUrl(productId, tagId string) *url.URL

func AddToWishlist

func AddToWishlist(
	httpClient *http.Client,
	ids ...string) error

func AddToWishlistUrl

func AddToWishlistUrl(id string) *url.URL

func ApiProductV1Url

func ApiProductV1Url(id string) *url.URL

func ApiProductV2Url

func ApiProductV2Url(id string) *url.URL

func AuthHostUrl

func AuthHostUrl() *url.URL

func CatalogOrder

func CatalogOrder(sortBy CatalogSortOrder, desc bool) string

func CatalogPageUrl

func CatalogPageUrl(page string, sortBy CatalogSortOrder, desc bool) *url.URL

func CreateTagUrl

func CreateTagUrl(name string) *url.URL

func DefaultAccountPageUrl

func DefaultAccountPageUrl(page string) *url.URL

func DefaultCatalogPageUrl

func DefaultCatalogPageUrl(page string) *url.URL

func DefaultLicencesUrl

func DefaultLicencesUrl(_ string) *url.URL

func DefaultOrdersPageUrl

func DefaultOrdersPageUrl(page string) *url.URL

func DefaultUserWishlistUrl

func DefaultUserWishlistUrl(_ string) *url.URL

func DeleteTagUrl

func DeleteTagUrl(tagId string) *url.URL

func DetailsUrl

func DetailsUrl(id string) *url.URL

func ImageId

func ImageId(imageUrl string) string

func ImageUrl

func ImageUrl(imageId, ext string) (*url.URL, error)

func LicencesUrl

func LicencesUrl() *url.URL

func LoggedIn

func LoggedIn(client *http.Client) (bool, error)

func Login

func Login(client *http.Client, username, password string, requestText func(string) string) error

Login to GOG.com for account formData queries using username and password

Overall flow is: - Get auth token from the page (this would check for reCaptcha as well) - Post username, password and token for check - Check for presence of second step auth token - (Optional) Post 4 digit second step auth code

func LoginCheckUrl

func LoginCheckUrl() *url.URL

func LoginHostUrl

func LoginHostUrl() *url.URL

func LoginTwoStepUrl

func LoginTwoStepUrl() *url.URL

func ManualDownloadUrl

func ManualDownloadUrl(manualDownload string) *url.URL

func OnLoginSuccessUrl

func OnLoginSuccessUrl() *url.URL

func OrdersPageUrl

func OrdersPageUrl(page string, canceled, completed, inProgress, notRedeemed, pending, redeemed bool) *url.URL

func ReCaptchaUrl

func ReCaptchaUrl() *url.URL

func RemoveFromWishlist

func RemoveFromWishlist(
	httpClient *http.Client,
	ids ...string) error

func RemoveFromWishlistUrl

func RemoveFromWishlistUrl(id string) *url.URL

func RemoveTagUrl

func RemoveTagUrl(productId, tagId string) *url.URL

func ScreenshotsJpgUrls

func ScreenshotsJpgUrls(screenshots []string) ([]*url.URL, error)

func UpdateTagsUrl

func UpdateTagsUrl(tagsJson string) *url.URL

func UserDataUrl

func UserDataUrl() *url.URL

func UserWishlistUrl

func UserWishlistUrl() *url.URL

Types

type AccountPage

type AccountPage struct {
	TotalPages      int    `json:"totalPages"`
	Page            int    `json:"page"`
	SortBy          string `json:"sortBy"`
	TotalProducts   int    `json:"totalProducts"`
	ProductsPerPage int    `json:"productsPerPage"`
	//ContentSystemCompatibility interface{}      `json:"contentSystemCompatibility"`
	MoviesCount                int              `json:"moviesCount"`
	Tags                       []accountTag     `json:"tags"`
	Products                   []AccountProduct `json:"products"`
	UpdatedProductsCount       int              `json:"updatedProductsCount"`
	HiddenUpdatedProductsCount int              `json:"hiddenUpdatedProductsCount"`
	AppliedFilters             struct {
		Tags []struct {
			Id           string `json:"id"`
			Name         string `json:"name"`
			ProductCount string `json:"productCount"`
		} `json:"tags"`
	} `json:"appliedFilters"`
	HasHiddenProducts bool `json:"hasHiddenProducts"`
}

func (*AccountPage) GetProducts

func (app *AccountPage) GetProducts() []IdGetter

func (*AccountPage) GetTagIds

func (app *AccountPage) GetTagIds() []string

func (*AccountPage) GetTagNames

func (app *AccountPage) GetTagNames(tagIds []string) map[string]string

func (*AccountPage) GetTotalPages

func (app *AccountPage) GetTotalPages() int

type AccountProduct

type AccountProduct struct {
	IsGalaxyCompatible bool     `json:"isGalaxyCompatible"`
	Tags               []string `json:"tags"`
	Id                 int      `json:"id"`
	Availability       struct {
		IsAvailable          bool `json:"isAvailable"`
		IsAvailableInAccount bool `json:"isAvailableInAccount"`
	} `json:"availability"`
	Title   string `json:"title"`
	Image   string `json:"image"`
	Url     string `json:"url"`
	WorksOn struct {
		Windows bool `json:"Windows"`
		Mac     bool `json:"Mac"`
		Linux   bool `json:"Linux"`
	} `json:"worksOn"`
	Category     string `json:"category"`
	Rating       int    `json:"rating"`
	IsComingSoon bool   `json:"isComingSoon"`
	IsMovie      bool   `json:"isMovie"`
	IsGame       bool   `json:"isGame"`
	Slug         string `json:"slug"`
	Updates      int    `json:"updates"`
	IsNew        bool   `json:"isNew"`
	DlcCount     int    `json:"dlcCount"`
	ReleaseDate  struct {
		Date         string `json:"date"`
		TimezoneType int    `json:"timezone_type"`
		Timezone     string `json:"timezone"`
	} `json:"releaseDate"`
	IsBaseProductMissing bool `json:"isBaseProductMissing"`
	IsHidingDisabled     bool `json:"isHidingDisabled"`
	IsInDevelopment      bool `json:"isInDevelopment"`
	IsHidden             bool `json:"isHidden"`
}

func (*AccountProduct) GetGlobalRelease

func (ap *AccountProduct) GetGlobalRelease() string

func (*AccountProduct) GetId

func (ap *AccountProduct) GetId() int

func (*AccountProduct) GetImage

func (ap *AccountProduct) GetImage() string

func (*AccountProduct) GetOperatingSystems

func (ap *AccountProduct) GetOperatingSystems() []string

func (*AccountProduct) GetRating

func (ap *AccountProduct) GetRating() string

func (*AccountProduct) GetSlug

func (ap *AccountProduct) GetSlug() string

func (*AccountProduct) GetStoreUrl

func (ap *AccountProduct) GetStoreUrl() string

func (*AccountProduct) GetTagIds

func (ap *AccountProduct) GetTagIds() []string

func (*AccountProduct) GetTitle

func (ap *AccountProduct) GetTitle() string

type AccountSortOrder

type AccountSortOrder string

type AddRemoveTagResp

type AddRemoveTagResp struct {
	Success bool `json:"success"`
}

type AdditionalRequirementsGetter

type AdditionalRequirementsGetter interface {
	GetAdditionalRequirements() string
}

type AmountCurrency

type AmountCurrency struct {
	Amount   string `json:"amount"`
	Currency string `json:"currency"`
}

type ApiProductV1

type ApiProductV1 struct {
	Id                         int    `json:"id"`
	Title                      string `json:"title"`
	PurchaseLink               string `json:"purchase_link"`
	Slug                       string `json:"slug"`
	ContentSystemCompatibility struct {
		Windows bool `json:"windows"`
		Osx     bool `json:"osx"`
		Linux   bool `json:"linux"`
	} `json:"content_system_compatibility"`
	//see comment on top of commented out implementation of GetDLCs()
	//that applies here as well - empty maps are passed as [] by GOG
	Languages interface{} `json:"languages"`
	Links     struct {
		PurchaseLink string `json:"purchase_link"`
		ProductCard  string `json:"product_card"`
		Support      string `json:"support"`
		Forum        string `json:"forum"`
	} `json:"links"`
	InDevelopment struct {
		Active bool        `json:"active"`
		Until  interface{} `json:"until"`
	} `json:"in_development"`
	IsSecret      bool   `json:"is_secret"`
	IsInstallable bool   `json:"is_installable"`
	GameType      string `json:"game_type"`
	IsPreOrder    bool   `json:"is_pre_order"`
	ReleaseDate   string `json:"release_date"`
	Images        images `json:"images"`
	//see comment on top of commented out implementation of GetDLCs()
	//that explains why DLCs is an interface and not a struct
	DLCs      interface{} `json:"dlcs"`
	Downloads struct {
		Installers    []downloadFiles `json:"installers"`
		Patches       []downloadFiles `json:"patches"`
		LanguagePacks []downloadFiles `json:"language_packs"`
		BonusContent  []bonusFiles    `json:"bonus_content"`
	} `json:"downloads"`
	ExpandedDLCs []ApiProductV1 `json:"expanded_dlcs"`
	Description  struct {
		Lead             string `json:"lead"`
		Full             string `json:"full"`
		WhatsCoolAboutIt string `json:"whats_cool_about_it"`
	} `json:"description"`
	Screenshots []struct {
		ImageId              string `json:"image_id"`
		FormatterTemplateUrl string `json:"formatter_template_url"`
		FormattedImages      []struct {
			FormatterName string `json:"formatter_name"`
			ImageUrl      string `json:"image_url"`
		} `json:"formatted_images"`
	} `json:"screenshots"`
	Videos []struct {
		VideoUrl     string `json:"video_url"`
		ThumbnailUrl string `json:"thumbnail_url"`
		Provider     string `json:"provider"`
	} `json:"videos"`
	RelatedProducts []ApiProductV1 `json:"related_products"`
	Changelog       string         `json:"changelog"`
}

func (*ApiProductV1) GetChangelog

func (apv1 *ApiProductV1) GetChangelog() string

func (*ApiProductV1) GetDescriptionFeatures

func (apv1 *ApiProductV1) GetDescriptionFeatures() string

func (*ApiProductV1) GetDescriptionOverview

func (apv1 *ApiProductV1) GetDescriptionOverview() string

func (*ApiProductV1) GetForumUrl

func (apv1 *ApiProductV1) GetForumUrl() string

func (*ApiProductV1) GetGOGRelease

func (apv1 *ApiProductV1) GetGOGRelease() string

func (*ApiProductV1) GetId

func (apv1 *ApiProductV1) GetId() int

func (*ApiProductV1) GetInDevelopment

func (apv1 *ApiProductV1) GetInDevelopment() bool

func (*ApiProductV1) GetNativeLanguages

func (apv1 *ApiProductV1) GetNativeLanguages() map[string]string

func (*ApiProductV1) GetOperatingSystems

func (apv1 *ApiProductV1) GetOperatingSystems() []string

func (*ApiProductV1) GetPreOrder

func (apv1 *ApiProductV1) GetPreOrder() bool

func (*ApiProductV1) GetScreenshots

func (apv1 *ApiProductV1) GetScreenshots() []string

func (*ApiProductV1) GetSlug

func (apv1 *ApiProductV1) GetSlug() string

func (*ApiProductV1) GetStoreUrl

func (apv1 *ApiProductV1) GetStoreUrl() string

func (*ApiProductV1) GetSupportUrl

func (apv1 *ApiProductV1) GetSupportUrl() string

func (*ApiProductV1) GetTitle

func (apv1 *ApiProductV1) GetTitle() string

func (*ApiProductV1) GetVideoIds

func (apv1 *ApiProductV1) GetVideoIds() []string

type ApiProductV2

type ApiProductV2 struct {
	InDevelopment struct {
		Active bool `json:"active"`
	} `json:"inDevelopment"`
	Copyrights             string `json:"copyrights"`
	IsUsingDosBox          bool   `json:"isUsingDosBox"`
	Description            string `json:"description"`
	Size                   int    `json:"size"`
	Overview               string `json:"overview"`
	FeaturesDescription    string `json:"featuresDescription"`
	AdditionalRequirements string `json:"additionalRequirements"`
	Links                  links  `json:"_links"`
	Embedded               struct {
		Product                   product                    `json:"product"`
		ProductType               string                     `json:"productType"`
		Localizations             []localization             `json:"localizations"`
		Videos                    []video                    `json:"videos"`
		Bonuses                   []bonus                    `json:"bonuses"`
		Screenshots               []screenshot               `json:"screenshots"`
		Publisher                 name                       `json:"publisher"`
		Developers                []name                     `json:"developers"`
		SupportedOperatingSystems []supportedOperatingSystem `json:"supportedOperatingSystems"`
		Tags                      []tag                      `json:"tags"`
		Properties                []property                 `json:"properties"`
		ESRBRating                esrbRating                 `json:"esrbRating"`
		PEGIRating                pegiRating                 `json:"pegiRating"`
		USKRating                 uskRating                  `json:"uskRating"`
		BRRating                  brRating                   `json:"brRating"`
		Features                  []struct {
			Id string `json:"id"`
			// contains filtered or unexported fields
		} `json:"features"`
		Editions []edition `json:"editions"`
		Series   struct {
			Id int `json:"id"`
			// contains filtered or unexported fields
		} `json:"series"`
	} `json:"_embedded"`
}

func (*ApiProductV2) GetAdditionalRequirements

func (apv2 *ApiProductV2) GetAdditionalRequirements() string

func (*ApiProductV2) GetCopyrights

func (apv2 *ApiProductV2) GetCopyrights() string

func (*ApiProductV2) GetDescriptionFeatures

func (apv2 *ApiProductV2) GetDescriptionFeatures() string

func (*ApiProductV2) GetDescriptionOverview

func (apv2 *ApiProductV2) GetDescriptionOverview() string

func (*ApiProductV2) GetDevelopers

func (apv2 *ApiProductV2) GetDevelopers() []string

func (*ApiProductV2) GetFeatures

func (apv2 *ApiProductV2) GetFeatures() []string

func (*ApiProductV2) GetForumUrl

func (apv2 *ApiProductV2) GetForumUrl() string

func (*ApiProductV2) GetGOGRelease

func (apv2 *ApiProductV2) GetGOGRelease() string

func (*ApiProductV2) GetGenres

func (apv2 *ApiProductV2) GetGenres() []string

func (*ApiProductV2) GetGlobalRelease

func (apv2 *ApiProductV2) GetGlobalRelease() string

func (*ApiProductV2) GetId

func (apv2 *ApiProductV2) GetId() int

func (*ApiProductV2) GetImage

func (apv2 *ApiProductV2) GetImage() string

func (*ApiProductV2) GetInDevelopment

func (apv2 *ApiProductV2) GetInDevelopment() bool

func (*ApiProductV2) GetIncludesGames

func (apv2 *ApiProductV2) GetIncludesGames() []string

func (*ApiProductV2) GetIsIncludedInGames

func (apv2 *ApiProductV2) GetIsIncludedInGames() []string

func (*ApiProductV2) GetIsRequiredByGames

func (apv2 *ApiProductV2) GetIsRequiredByGames() []string

func (*ApiProductV2) GetLanguageCodes

func (apv2 *ApiProductV2) GetLanguageCodes() []string

func (*ApiProductV2) GetLanguages

func (apv2 *ApiProductV2) GetLanguages() map[string]string

func (*ApiProductV2) GetOperatingSystems

func (apv2 *ApiProductV2) GetOperatingSystems() []string

func (*ApiProductV2) GetPreOrder

func (apv2 *ApiProductV2) GetPreOrder() bool

func (*ApiProductV2) GetProductType

func (apv2 *ApiProductV2) GetProductType() string

func (*ApiProductV2) GetPublishers

func (apv2 *ApiProductV2) GetPublishers() []string

func (*ApiProductV2) GetRequiresGames

func (apv2 *ApiProductV2) GetRequiresGames() []string

func (*ApiProductV2) GetScreenshots

func (apv2 *ApiProductV2) GetScreenshots() []string

func (*ApiProductV2) GetSeries

func (apv2 *ApiProductV2) GetSeries() string

func (*ApiProductV2) GetStoreTags

func (apv2 *ApiProductV2) GetStoreTags() []string

GetStoreTags returns values displayed in Store as "Tags". ApiProductV2 has store tags in Properties

func (*ApiProductV2) GetStoreUrl

func (apv2 *ApiProductV2) GetStoreUrl() string

func (*ApiProductV2) GetSupportUrl

func (apv2 *ApiProductV2) GetSupportUrl() string

func (*ApiProductV2) GetTitle

func (apv2 *ApiProductV2) GetTitle() string

func (*ApiProductV2) GetVerticalImage

func (apv2 *ApiProductV2) GetVerticalImage() string

func (*ApiProductV2) GetVideoIds

func (apv2 *ApiProductV2) GetVideoIds() []string

type BasePriceGetter

type BasePriceGetter interface {
	GetBasePrice() string
}

type CatalogFilters

type CatalogFilters struct {
	ReleaseDateRange struct {
		Min int `json:"min"`
		Max int `json:"max"`
	} `json:"releaseDateRange"`
	PriceRange struct {
		Min           float64 `json:"min"`
		Max           float64 `json:"max"`
		Currency      string  `json:"currency"`
		DecimalPlaces int     `json:"decimalPlaces"`
	} `json:"priceRange"`
	Genres          []NameSlug `json:"genres"`
	Languages       []NameSlug `json:"languages"`
	Systems         []NameSlug `json:"systems"`
	Tags            []NameSlug `json:"tags"`
	Discounted      bool       `json:"discounted"`
	Features        []NameSlug `json:"features"`
	ReleaseStatuses []NameSlug `json:"releaseStatuses"`
	Types           []string   `json:"types"`
	FullGenresList  []struct {
		NameSlug
		Level int `json:"level"`
	} `json:"fullGenresList"`
	FullTagsList []NameSlug `json:"fullTagsList"`
}

type CatalogPage

type CatalogPage struct {
	Pages        int              `json:"pages"`
	ProductCount int              `json:"productCount"`
	Products     []CatalogProduct `json:"products"`
	Filters      CatalogFilters   `json:"filters"`
}

func (*CatalogPage) GetProducts

func (cp *CatalogPage) GetProducts() []IdGetter

func (*CatalogPage) GetTotalPages

func (cp *CatalogPage) GetTotalPages() int

type CatalogPrice

type CatalogPrice struct {
	Final      string         `json:"final"`
	Base       string         `json:"base"`
	Discount   *string        `json:"discount"`
	FinalMoney AmountCurrency `json:"finalMoney"`
	BaseMoney  AmountCurrency `json:"baseMoney"`
}

type CatalogProduct

type CatalogProduct struct {
	Id                    string                 `json:"id"`
	Title                 string                 `json:"title"`
	Slug                  string                 `json:"slug"`
	Developers            []string               `json:"developers"`
	Publishers            []string               `json:"publishers"`
	Features              []NameSlug             `json:"features"`
	Genres                []NameSlug             `json:"genres"`
	ProductType           string                 `json:"productType"`
	ReleaseDate           *string                `json:"releaseDate"`
	ReviewsRating         int                    `json:"reviewsRating"`
	OperatingSystems      []string               `json:"operatingSystems"`
	CoverHorizontal       string                 `json:"coverHorizontal"`
	CoverVertical         string                 `json:"coverVertical"`
	Screenshots           []string               `json:"screenshots"`
	ProductState          string                 `json:"productState"`
	Tags                  []NameSlug             `json:"tags"`
	UserPreferredLanguage *UserPreferredLanguage `json:"userPreferredLanguage"`
	Price                 CatalogPrice           `json:"price"`
}

func (*CatalogProduct) GetBasePrice

func (cp *CatalogProduct) GetBasePrice() string

func (*CatalogProduct) GetComingSoon

func (cp *CatalogProduct) GetComingSoon() bool

func (*CatalogProduct) GetDevelopers

func (cp *CatalogProduct) GetDevelopers() []string

func (*CatalogProduct) GetDiscountPercentage

func (cp *CatalogProduct) GetDiscountPercentage() int

func (*CatalogProduct) GetFeatures

func (cp *CatalogProduct) GetFeatures() []string

func (*CatalogProduct) GetGenres

func (cp *CatalogProduct) GetGenres() []string

func (*CatalogProduct) GetGlobalRelease

func (cp *CatalogProduct) GetGlobalRelease() string

func (*CatalogProduct) GetId

func (cp *CatalogProduct) GetId() int

func (*CatalogProduct) GetImage

func (cp *CatalogProduct) GetImage() string

func (*CatalogProduct) GetInDevelopment

func (cp *CatalogProduct) GetInDevelopment() bool

func (*CatalogProduct) GetOperatingSystems

func (cp *CatalogProduct) GetOperatingSystems() []string

func (*CatalogProduct) GetPreOrder

func (cp *CatalogProduct) GetPreOrder() bool

func (*CatalogProduct) GetPrice

func (cp *CatalogProduct) GetPrice() string

func (*CatalogProduct) GetProductType

func (cp *CatalogProduct) GetProductType() string

func (*CatalogProduct) GetPublishers

func (cp *CatalogProduct) GetPublishers() []string

func (*CatalogProduct) GetRating

func (cp *CatalogProduct) GetRating() string

func (*CatalogProduct) GetScreenshots

func (cp *CatalogProduct) GetScreenshots() []string

func (*CatalogProduct) GetSlug

func (cp *CatalogProduct) GetSlug() string

func (*CatalogProduct) GetStoreTags

func (cp *CatalogProduct) GetStoreTags() []string

func (*CatalogProduct) GetTitle

func (cp *CatalogProduct) GetTitle() string

func (*CatalogProduct) GetVerticalImage

func (cp *CatalogProduct) GetVerticalImage() string

func (*CatalogProduct) IsDiscounted

func (cp *CatalogProduct) IsDiscounted() bool

func (*CatalogProduct) IsFree

func (cp *CatalogProduct) IsFree() bool

type CatalogSortOrder

type CatalogSortOrder string
const (
	CatalogSortByTitle       CatalogSortOrder = "title"
	CatalogSortByDiscount    CatalogSortOrder = "discount"
	CatalogSortByReleaseDate CatalogSortOrder = "releaseDate"
	CatalogSortByRating      CatalogSortOrder = "reviewsRating"
	CatalogSortByPrice       CatalogSortOrder = "price"
	CatalogSortByBestselling CatalogSortOrder = "bestselling"
)

type ChangelogGetter

type ChangelogGetter interface {
	GetChangelog() string
}

type ComingSoonGetter

type ComingSoonGetter interface {
	GetComingSoon() bool
}

type CopyrightsGetter

type CopyrightsGetter interface {
	GetCopyrights() string
}

type CreateTagResp

type CreateTagResp struct {
	Id string `json:"id"`
}

type DeleteTagResp

type DeleteTagResp struct {
	Status string `json:"status"`
}

type DescriptionFeaturesGetter

type DescriptionFeaturesGetter interface {
	GetDescriptionFeatures() string
}

type DescriptionOverviewGetter

type DescriptionOverviewGetter interface {
	GetDescriptionOverview() string
}

type Details

type Details struct {
	Title           string `json:"title"`
	BackgroundImage string `json:"backgroundImage"`
	CdKey           string `json:"cdKey"`
	TextInformation string `json:"textInformation"`
	//GetDownloads comment explains why this is [][]interface{}
	Downloads              []interface{}    `json:"downloads"`
	GalaxyDownloads        []interface{}    `json:"galaxyDownloads"`
	Extras                 []ManualDownload `json:"extras"`
	DLCs                   []Details        `json:"dlcs"`
	Tags                   []accountTag     `json:"tags"`
	IsPreOrder             bool             `json:"isPreOrder"`
	ReleaseTimestamp       int64            `json:"releaseTimestamp"`
	Messages               []string         `json:"messages"`
	Changelog              string           `json:"changelog"`
	ForumLink              string           `json:"forumLink"`
	IsBaseProductMissing   bool             `json:"isBaseProductMissing"`
	MissingBaseProduct     interface{}      `json:"missingBaseProduct"`
	Features               []string         `json:"features"`
	SimpleGalaxyInstallers []struct {
		Path string `json:"path"`
		Os   string `json:"os"`
	} `json:"simpleGalaxyInstallers"`
}

func (*Details) GetChangelog

func (det *Details) GetChangelog() string

func (*Details) GetFeatures

func (det *Details) GetFeatures() []string

func (*Details) GetForumUrl

func (det *Details) GetForumUrl() string

func (*Details) GetGOGRelease

func (det *Details) GetGOGRelease() string

func (*Details) GetGameDownloads

func (det *Details) GetGameDownloads() ([]LangOSManualDownloads, error)

GetGameDownloads extracts downloads for languages and operating systems from GOG.com details. Currently, this data is stored as array of arrays, where the inner array holds the language as the first element and the object containing Windows, Mac, Linux downloads as the second element. To process that we go through the array, save the language of the current element, then encode/decode the next elements using a LangOSDownloads struct.

func (*Details) GetMovieDownloads

func (det *Details) GetMovieDownloads() ([]ManualDownload, error)

func (*Details) GetTagIds

func (det *Details) GetTagIds() []string

func (*Details) GetTagNames

func (det *Details) GetTagNames(tagIds []string) map[string]string

func (*Details) GetTitle

func (det *Details) GetTitle() string

type DevelopersGetter

type DevelopersGetter interface {
	GetDevelopers() []string
}

type DiscountPercentageGetter

type DiscountPercentageGetter interface {
	GetDiscountPercentage() int
}

type FeaturesGetter

type FeaturesGetter interface {
	GetFeatures() []string
}

type ForumUrlGetter

type ForumUrlGetter interface {
	GetForumUrl() string
}

type GOGReleaseGetter

type GOGReleaseGetter interface {
	GetGOGRelease() string
}

type GenresGetter

type GenresGetter interface {
	GetGenres() []string
}

type GlobalReleaseGetter

type GlobalReleaseGetter interface {
	GetGlobalRelease() string
}

type IdGetter

type IdGetter interface {
	GetId() int
}

type ImageGetter

type ImageGetter interface {
	GetImage() string
}

type InDevelopmentGetter

type InDevelopmentGetter interface {
	GetInDevelopment() bool
}

type IncludesGamesGetter

type IncludesGamesGetter interface {
	GetIncludesGames() []string
}

type IsDiscountedGetter

type IsDiscountedGetter interface {
	IsDiscounted() bool
}

type IsFreeGetter

type IsFreeGetter interface {
	IsFree() bool
}

type IsIncludedInGamesGetter

type IsIncludedInGamesGetter interface {
	GetIsIncludedInGames() []string
}

type IsRequiredByGamesGetter

type IsRequiredByGamesGetter interface {
	GetIsRequiredByGames() []string
}

type LangOSManualDownloads

type LangOSManualDownloads struct {
	Language string
	Windows  []ManualDownload `json:"windows"`
	Mac      []ManualDownload `json:"mac"`
	Linux    []ManualDownload `json:"linux"`
}

type LanguageCodesGetter

type LanguageCodesGetter interface {
	GetLanguageCodes() []string
}

type LanguagesGetter

type LanguagesGetter interface {
	GetLanguages() map[string]string
}

type Licence

type Licence string

func (Licence) GetId

func (lc Licence) GetId() int

type Licences

type Licences []Licence

func (Licences) GetProducts

func (lcs Licences) GetProducts() []IdGetter

type ManualDownload

type ManualDownload struct {
	ManualUrl string `json:"manualUrl"`
	Name      string `json:"name"`
	Version   string `json:"version"`
	Date      string `json:"date"`
	Size      string `json:"size"`
}

type NameSlug

type NameSlug struct {
	Name string `json:"name"`
	Slug string `json:"slug"`
}

type NativeLanguagesGetter

type NativeLanguagesGetter interface {
	GetNativeLanguages() map[string]string
}

type OperatingSystemsGetter

type OperatingSystemsGetter interface {
	GetOperatingSystems() []string
}

type Order

type Order struct {
	PublicId string `json:"publicId"`
	//Distributor        interface{} `json:"distributor"`
	Date               int    `json:"date"`
	MoneybackGuarantee bool   `json:"moneybackGuarantee"`
	Status             string `json:"status"`
	PaymentMethod      string `json:"paymentMethod"`
	//ValidUntil      interface{} `json:"validUntil"`
	CheckoutLink    string `json:"checkoutLink"`
	ReceiptLink     string `json:"receiptLink"`
	Total           value  `json:"total"`
	StoreCreditUsed value  `json:"storeCreditUsed"`
	//GiftRecipient interface{} `json:"giftRecipient"`
	//GiftSender interface{} `json:"giftSender"`
	Products []struct {
		//Status interface{} `json:"status"`
		//RelatedAccount interface{} `json:"relatedAccount"`
		Price struct {
			BaseAmount   string `json:"baseAmount"`
			Amount       string `json:"amount"`
			IsFree       bool   `json:"isFree"`
			IsDiscounted bool   `json:"isDiscounted"`
			Symbol       string `json:"symbol"`
		} `json:"price"`
		Image                      string `json:"image"`
		Title                      string `json:"title"`
		Id                         string `json:"id"`
		IsRefunded                 bool   `json:"isRefunded"`
		CashValue                  value  `json:"cashValue"`
		WalletValue                value  `json:"walletValue"`
		IsPreorder                 bool   `json:"isPreorder"`
		DisplayAutomaticRefundLink bool   `json:"displayAutomaticRefundLink"`
	} `json:"products"`
	GiftCode      interface{} `json:"giftCode"`
	IsResendable  bool        `json:"isResendable"`
	StatusPageUrl string      `json:"statusPageUrl"`
}

func (*Order) GetId

func (ord *Order) GetId() int

type OrderPage

type OrderPage struct {
	TotalPages int     `json:"totalPages"`
	Orders     []Order `json:"orders"`
}

func (*OrderPage) GetProducts

func (op *OrderPage) GetProducts() []IdGetter

func (*OrderPage) GetTotalPages

func (op *OrderPage) GetTotalPages() int

type PreOrderGetter

type PreOrderGetter interface {
	GetPreOrder() bool
}

type PriceGetter

type PriceGetter interface {
	GetPrice() string
}

type ProductTypeGetter

type ProductTypeGetter interface {
	GetProductType() string
}

type ProductsGetter

type ProductsGetter interface {
	GetProducts() []IdGetter
}

type PublishersGetter

type PublishersGetter interface {
	GetPublishers() []string
}

type RatingGetter

type RatingGetter interface {
	GetRating() string
}

type RequiresGamesGetter

type RequiresGamesGetter interface {
	GetRequiresGames() []string
}

type ScreenshotsGetter

type ScreenshotsGetter interface {
	GetScreenshots() []string
}

type SeriesGetter

type SeriesGetter interface {
	GetSeries() string
}

type SlugGetter

type SlugGetter interface {
	GetSlug() string
}

type StoreTagsGetter

type StoreTagsGetter interface {
	GetStoreTags() []string
}

type StoreUrlGetter

type StoreUrlGetter interface {
	GetStoreUrl() string
}

type SupportUrlGetter

type SupportUrlGetter interface {
	GetSupportUrl() string
}

type TagIdsGetter

type TagIdsGetter interface {
	GetTagIds() []string
}

type TagNamesGetter

type TagNamesGetter interface {
	GetTagNames([]string) map[string]string
}

type TitleGetter

type TitleGetter interface {
	GetTitle() string
}

type TotalPagesGetter

type TotalPagesGetter interface {
	GetTotalPages() int
}

type TotalPagesProxy

type TotalPagesProxy struct {
	Pages      int `json:"pages"`
	TotalPages int `json:"totalPages"`
}

TotalPagesProxy allow unmarshalling account, orders, store, wishlist pages (.TotalPages) and catalog pages (.Pages) structs to query total pages with GetTotalPages method

func (*TotalPagesProxy) GetTotalPages

func (tpp *TotalPagesProxy) GetTotalPages() int

type UserData

type UserData struct {
	IsLoggedIn bool `json:"isLoggedIn"`
}

type UserPreferredLanguage

type UserPreferredLanguage struct {
	Code    string `json:"code"`
	InAudio bool   `json:"inAudio"`
	InText  bool   `json:"inText"`
}

type UserWishlist

type UserWishlist struct {
	Wishlist map[string]bool `json:"wishlist"`
	Checksum string          `json:"checksum"`
}

func (*UserWishlist) GetProducts

func (uw *UserWishlist) GetProducts() []IdGetter

type VerticalImageGetter

type VerticalImageGetter interface {
	GetVerticalImage() string
}

type VideoIdsGetter

type VideoIdsGetter interface {
	GetVideoIds() []string
}

Jump to

Keyboard shortcuts

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