vangogh_integration

package
v0.5.21 Latest Latest
Warning

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

Go to latest
Published: Jul 18, 2026 License: AGPL-3.0 Imports: 25 Imported by: 23

Documentation

Index

Constants

View Source
const (
	Backups           camino.AbsDir = iota // vangogh, theo
	Binaries                               // vangogh, theo
	Metadata                               // vangogh, theo
	Output                                 // vangogh
	Images                                 // vangogh
	DescriptionImages                      // vangogh
	Downloads                              // vangogh, theo
	Checksums                              // vangogh
	Logs                                   // vangogh, theo
	InstalledApps                          // theo
	Prefixes                               // theo
)
View Source
const (
	Redux camino.RelDir = iota
	Author
	Cookies
	Tokens
	GitHubReleases
	Releases
	Runtimes
	Temp
	Inventory
	GogApps
	SteamApps
	EgsApps
	UmuConfigs
	GogPrefixes
	SteamPrefixes
	EgsPrefixes
)
View Source
const (
	GogLicencesProperty                   = "gog-licences"
	GogUserWishlistProperty               = "gog-user-wishlist"
	GogAccountProductPageProperty         = "gog-account-product-page"
	GogCatalogProductPageProperty         = "gog-catalog-product-page"
	GogOrderPageProductsProperty          = "gog-order-page-products"
	GogTitleProperty                      = "gog-title"
	GogDevelopersProperty                 = "gog-developers"
	GogPublishersProperty                 = "gog-publishers"
	GogImageProperty                      = "gog-image"
	GogVerticalImageProperty              = "gog-vertical-image"
	GogScreenshotsProperty                = "gog-screenshots"
	GogHeroProperty                       = "gog-hero"
	GogLogoProperty                       = "gog-logo"
	GogIconProperty                       = "gog-icon"
	GogIconSquareProperty                 = "gog-icon-square"
	GogBackgroundProperty                 = "gog-background"
	GogRatingProperty                     = "gog-rating"
	GogProductTypeProperty                = "gog-product-type"
	GogIncludesGamesProperty              = "gog-includes-games"
	GogIsIncludedByGamesProperty          = "gog-is-included-by-games"
	GogRequiresGamesProperty              = "gog-requires-games"
	GogIsRequiredByGamesProperty          = "gog-is-required-by-games"
	GogModifiesGamesProperty              = "gog-modifies-games"
	GogIsModifiedByGamesProperty          = "gog-is-modified-by-games"
	GogEditionsProperty                   = "gog-editions"
	GogRootEditionsProperty               = "gog-root-editions"
	GogStoreTagsProperty                  = "gog-store-tags"
	GogGenresProperty                     = "gog-genres"
	GogFeaturesProperty                   = "gog-features"
	GogSeriesProperty                     = "gog-series"
	GogThemesProperty                     = "gog-themes"
	GogGameModesProperty                  = "gog-game-modes"
	GogTagIdProperty                      = "gog-tag-id"
	GogTagNameProperty                    = "gog-tag-name"
	GogSlugProperty                       = "gog-slug"
	GogReleaseDateProperty                = "gog-release-date"
	GogOrderDateProperty                  = "gog-order-date"
	GogGlobalReleaseDateProperty          = "gog-global-release-date"
	GogManualUrlFilenameProperty          = "gog-manual-url-filename"
	GogManualUrlStatusProperty            = "gog-manual-url-status"
	GogManualUrlValidationResultProperty  = "gog-manual-url-validation-result"
	GogManualUrlGeneratedChecksumProperty = "gog-manual-url-generated-checksum"
	GogProductValidationResultProperty    = "gog-product-validation-result"
	GogProductGeneratedChecksumProperty   = "gog-product-generated-checksum"
	GogProductValidationDateProperty      = "gog-product-validation-date"
	GogStoreUrlProperty                   = "gog-store-url"
	GogForumUrlProperty                   = "gog-forum-url"
	GogSupportUrlProperty                 = "gog-support-url"
	GogAdditionalRequirementsProperty     = "gog-additional-requirements"
	GogCopyrightsProperty                 = "gog-copyrights"
	GogInDevelopmentProperty              = "gog-in-development"
	GogPreOrderProperty                   = "gog-pre-order"
	GogComingSoonProperty                 = "gog-coming-soon"
	GogBasePriceProperty                  = "gog-base-price"
	GogPriceProperty                      = "gog-price"
	GogIsFreeProperty                     = "gog-is-free"
	GogIsDemoProperty                     = "gog-is-demo"
	GogIsModProperty                      = "gog-is-mod"
	GogIsDiscountedProperty               = "gog-is-discounted"
	GogDiscountPercentageProperty         = "gog-discount-percentage"
	GogSteamAppIdProperty                 = "gog-steam-app-id"
	GogBundleNameProperty                 = "gog-bundle-name"
	GogOperatingSystemsProperty           = "gog-os"
	GogLanguageCodeProperty               = "gog-lang-code"
	GogYouTubeVideoIdProperty             = "gog-youtube-video-id"
	GogHltbIdProperty                     = "gog-hltb-id"
	GogPcgwPageIdProperty                 = "gog-pcgw-page-id"
	GogIgdbIdProperty                     = "gog-igdb-id"
	GogStrategyWikiIdProperty             = "gog-strategy-wiki-id"
	GogMobyGamesIdProperty                = "gog-moby-games-id"
	GogWikipediaIdProperty                = "gog-wikipedia-id"
	GogWineHqIdProperty                   = "gog-winehq-id"
	GogVndbIdProperty                     = "gog-vndb-id"
	GogOpenCriticIdProperty               = "gog-opencritic-id"
	GogMetacriticIdProperty               = "gog-metacritic-id"
	GogOwnedProperty                      = "gog-owned"
	GogIsAccountProductProperty           = "gog-is-account-product"
	GogAccountProductOrderProperty        = "gog-account-product-order"

	YouTubeVideoTitleProperty    = "youtube-video-title"
	YouTubeVideoDurationProperty = "youtube-video-duration"
	YouTubeVideoErrorProperty    = "youtube-video-error"

	SteamTitleProperty                           = "steam-title"
	SteamReviewScoreProperty                     = "steam-review-score"
	SteamReviewScoreDescProperty                 = "steam-review-score-desc"
	SteamDeckAppCompatibilityCategoryProperty    = "steam-deck-app-compatibility-category"
	SteamMachineCompatibilityCategoryProperty    = "steam-machine-app-compatibility-category"
	SteamFrameCompatibilityCategoryProperty      = "steam-frame-app-compatibility-category"
	SteamSteamOsAppCompatibilityCategoryProperty = "steam-steamos-app-compatibility-category"
	SteamLastCommunityUpdateProperty             = "steam-last-community-update"
	SteamRequiredAgeProperty                     = "steam-required-age"
	SteamControllerSupportProperty               = "steam-controller-support"
	SteamShortDescriptionProperty                = "steam-short-description"
	SteamWebsiteProperty                         = "steam-website"
	SteamMetacriticIdProperty                    = "steam-metacritic-id"
	SteamCategoriesProperty                      = "steam-categories"
	SteamGenresProperty                          = "steam-genres"
	SteamSupportUrlProperty                      = "steam-support-url"
	SteamSupportEmailProperty                    = "steam-support-email"

	EgsTitleProperty    = "egs-title"
	EgsMainGameProperty = "egs-main-game"

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

	PcgwEnginesProperty       = "pcgw-engines"
	PcgwEnginesBuildsProperty = "pcgw-engines-builds"
	PcgwWebsiteProperty       = "pcgw-website"

	WikipediaCreatorsProperty    = "wikipedia-creators"
	WikipediaDirectorsProperty   = "wikipedia-directors"
	WikipediaProducersProperty   = "wikipedia-producers"
	WikipediaDesignersProperty   = "wikipedia-designers"
	WikipediaProgrammersProperty = "wikipedia-programmers"
	WikipediaArtistsProperty     = "wikipedia-artists"
	WikipediaWritersProperty     = "wikipedia-writers"
	WikipediaComposersProperty   = "wikipedia-composers"

	ProtonDbTierProperty       = "protondb-tier"
	ProtonDbConfidenceProperty = "protondb-confidence"

	MetacriticScoreProperty = "metacritic-score"

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

	VangoghLocalTagsProperty           = "vangogh-local-tags"
	VangoghDownloadStatusErrorProperty = "vangogh-download-status-error"
	VangoghDownloadQueuedProperty      = "vangogh-download-queued"
	VangoghDownloadStartedProperty     = "vangogh-download-started"
	VangoghDownloadCompletedProperty   = "vangogh-download-completed"
	VangoghGetDataErrorDateProperty    = "vangogh-get-data-error-date"
	VangoghGetDataErrorMessageProperty = "vangogh-get-data-error-message"
	VangoghGetDataLastUpdatedProperty  = "vangogh-get-data-last-updated"
	VangoghDataSchemeVersionProperty   = "vangogh-data-scheme-version"
	VangoghSyncEventsProperty          = "vangogh-sync-events"
	VangoghLastSyncUpdatesProperty     = "vangogh-last-sync-updates"
)
View Source
const (
	GogDescriptionOverviewKeyValues = "gog-description-overview"
	GogDescriptionFeaturesKeyValues = "gog-description-features"
	GogChangelogKeyValues           = "gog-changelog"
)
View Source
const (
	// property values
	TrueValue  = "true"
	FalseValue = "false"
)
View Source
const (
	RatingUnknown  = "Not Rated"
	RatingPositive = "Positive"
	RatingMixed    = "Mixed"
	RatingNegative = "Negative"
)
View Source
const (
	SyncUnknownKey               = "sync-unknown"
	SyncInterruptedKey           = "sync-interrupted"
	SyncStartKey                 = "sync-start"
	SyncAccountDataKey           = "sync-account-data"
	SyncAccountImagesKey         = "sync-account-images"
	SyncDownloadsKey             = "sync-downloads"
	SyncGenerateMissingChecksums = "sync-generate-missing-checksums"
	SyncCleanupKey               = "sync-cleanup"
	SyncVideoMetadataKey         = "sync-video-metadata"
	SyncBinaries                 = "sync-binaries"
	SyncAdditionalData           = "sync-additional-data"
	SyncAdditionalImagesKey      = "sync-additional-images"
	SyncDescriptionImagesKey     = "sync-description-images"
	SyncBackup                   = "sync-backup"
	SyncCompleteKey              = "sync-complete"
)
View Source
const (
	UpdatesInstallers    = "files"
	UpdatesNewProducts   = "store"
	UpdatesReleasedToday = "today"
	UpdatesSteamNews     = "steam"
)
View Source
const (
	UrlIdParameter                    = "id"
	UrlTitleParameter                 = "title"
	UrlSlugParameter                  = "slug"
	UrlOperatingSystemParameter       = "os"
	UrlLanguageCodeParameter          = "lang-code"
	UrlDownloadTypeParameter          = "download-type"
	UrlNoPatchesParameter             = "no-patches"
	UrlDownloadsLayoutParameter       = "downloads-layout"
	UrlAllParameter                   = "all"
	UrlAccountDataParameter           = "account-data"
	UrlAdditionalDataParameter        = "additional-data"
	UrlTestParameter                  = "test"
	UrlWineParameter                  = "wine"
	UrlSteamCmdParameter              = "steamcmd"
	UrlSinceHoursAgoParameter         = "since-hours-ago"
	UrlPropertyParameter              = "property"
	UrlProductTypeParameter           = "product-type"
	UrlForceParameter                 = "force"
	UrlExtraParameter                 = "extra"
	UrlRelatedApiProductsParameter    = "related-api-products"
	UrlManualUrlParameter             = "manual-url"
	UrlManualUrlFilterParameter       = "manual-url-filter"
	UrlUpdateDataParameter            = "update-data"
	UrlValidateParameter              = "validate"
	UrlChecksumsOnlyParameter         = "checksums-only"
	UrlQueuedParameter                = "queued"
	UrlMissingParameter               = "missing"
	UrlDebugParameter                 = "debug"
	UrlImageTypeParameter             = "image-type"
	UrlCookiesParameter               = "cookies"
	UrlFromParameter                  = "from"
	UrlToParameter                    = "to"
	UrlPortParameter                  = "port"
	UrlInsecureCookiesParameter       = "insecure-cookies"
	UrlStdErrParameter                = "stderr"
	UrlUpdatesOnlyParameter           = "updates-only"
	UrlUsernameParameter              = "username"
	UrlPasswordParameter              = "password"
	UrlNewPasswordParameter           = "new-password"
	UrlRoleParameter                  = "role"
	UrlCreateParameter                = "create"
	UrlDeleteParameter                = "delete"
	UrlChangePasswordParameter        = "change-password"
	UrlListParameter                  = "list"
	UrlValidationStatusParameter      = "validation-status"
	UrlNotValidParameter              = "not-valid"
	UrlNewValueParameter              = "new-property-value"
	UrlValueParameter                 = "value"
	UrlConditionParameter             = "condition"
	UrlSectionParameter               = "section"
	UrlImportCookiesParameter         = "import-cookies"
	UrlSteamParameter                 = "steam"
	UrlEpicGamesParameter             = "epic-games"
	UrlVerboseParameter               = "verbose"
	UrlPurgeParameter                 = "purge"
	UrlOriginParameter                = "origin"
	UrlForIdParameter                 = "for-id"
	UrlHeaderParameter                = "header"
	UrlCapsuleParameter               = "capsule"
	UrlHeroParameter                  = "hero"
	UrlLogoParameter                  = "logo"
	UrlIconParameter                  = "icon"
	UrlPinnedPositionParameter        = "pinned-position"
	UrlWidthPctParameter              = "width-pct"
	UrlHeightPctParameter             = "height-pct"
	UrlRemoveParameter                = "remove"
	UrlWorkDirParameter               = "work-dir"
	UrlTaskParameter                  = "task"
	UrlDefaultLauncherParameter       = "default-launcher"
	UrlExeParameter                   = "exe"
	UrlArgParameter                   = "arg"
	UrlEnvParameter                   = "env"
	UrlProtonRuntimeParameter         = "proton-runtime"
	UrlSteamProtonRuntimeParameter    = "steam-proton-runtime"
	UrlProtonOptionParameter          = "proton-option"
	UrlInstalledParameter             = "installed"
	UrlDownloadsParameter             = "downloads"
	UrlBackupsParameter               = "backups"
	UrlModParameter                   = "mod"
	UrlProgramParameter               = "program"
	UrlInstallBinaryParameter         = "install-binary"
	UrlAvailableProductsParameter     = "available-products"
	UrlLaunchOptionsParameter         = "launch-options"
	UrlSteamShortcutsParameter        = "steam-shortcuts"
	UrlTasksParameter                 = "tasks"
	UrlUpdateParameter                = "update"
	UrlResetParameter                 = "reset"
	UrlKeepDownloadsParameter         = "keep-downloads"
	UrlNoSteamShortcutParameter       = "no-steam-shortcut"
	UrlNoPresetLaunchOptionsParameter = "no-preset-launch-options"
	UrlNoValidationParameter          = "no-validation"
	UrlSteamAppIdParameter            = "steam-appid"
	UrlUrlParameter                   = "url"
	UrlNoDlcsParameter                = "no-dlcs"
	UrlNoExtrasParameter              = "no-extras"
	UrlNoCleanupParameter             = "no-cleanup"
	UrlSortParameter                  = "sort"
	UrlDescendingParameter            = "desc"
)
View Source
const DefaultDownloadsLayout = FlatDownloadsLayout

Variables

View Source
var ProductTypeProperties = map[ProductType][]string{
	GogLicences:                  GogLicencesProperties(),
	GogUserWishlist:              GogUserWishlistProperties(),
	GogCatalogPage:               GogCatalogPageProperties(),
	GogOrderPage:                 GogOrderPageProperties(),
	GogAccountPage:               GogAccountPageProperties(),
	GogApiProducts:               GogApiProductProperties(),
	GogDetails:                   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 SteamCmdOsBinary = map[OperatingSystem]string{
	MacOS: "steamcmd.sh",
	Linux: "steamcmd.sh",
}
View Source
var SyncEventsTitles = map[string]string{
	SyncUnknownKey:               "Unknown",
	SyncInterruptedKey:           "Interrupted",
	SyncStartKey:                 "Started sync",
	SyncAccountDataKey:           "Updating account data",
	SyncAccountImagesKey:         "Updating account images",
	SyncDownloadsKey:             "Downloading files",
	SyncGenerateMissingChecksums: "Generating missing checksums",
	SyncCleanupKey:               "Cleaning up downloads",
	SyncVideoMetadataKey:         "Updating video titles",
	SyncBinaries:                 "Updating binaries",
	SyncAdditionalData:           "Updating additional data",
	SyncAdditionalImagesKey:      "Updating additional images",
	SyncDescriptionImagesKey:     "Updating descriptions",
	SyncBackup:                   "Backing up data",
	SyncCompleteKey:              "Sync complete",
}
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 AbsCookiesPath added in v0.4.70

func AbsCookiesPath() 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

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 AdditionalProductTypes added in v0.5.16

func AdditionalProductTypes() iter.Seq[ProductType]

func AllProductTypes added in v0.2.9

func AllProductTypes() iter.Seq[ProductType]

func AllValidationStatusCloValues added in v0.3.86

func AllValidationStatusCloValues() []string

func CreateTag

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

func DataKeyValues added in v0.4.36

func DataKeyValues() []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 FormatBytes added in v0.2.80

func FormatBytes(b int64) string

func GetDataProperties added in v0.2.77

func GetDataProperties() []string

func GogAccountPageProperties added in v0.4.73

func GogAccountPageProperties() []string

func GogApiProductProperties added in v0.4.73

func GogApiProductProperties() []string

func GogApiProductsKeyValues added in v0.4.73

func GogApiProductsKeyValues() []string

func GogCatalogPageProperties added in v0.4.73

func GogCatalogPageProperties() []string

func GogDetailsKeyValues added in v0.4.73

func GogDetailsKeyValues() []string

func GogDetailsProperties added in v0.4.73

func GogDetailsProperties() []string

func GogGamesDbProperties added in v0.4.73

func GogGamesDbProperties() []string

func GogLicencesProperties added in v0.4.73

func GogLicencesProperties() []string

func GogOrderPageProperties added in v0.4.73

func GogOrderPageProperties() []string

func GogUserWishlistProperties added in v0.4.73

func GogUserWishlistProperties() []string

func HltbDataProperties added in v0.2.8

func HltbDataProperties() []string

func IdsFromUrl

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

func InitTheoCamino added in v0.5.10

func InitTheoCamino() error

func InitVangoghCamino added in v0.5.3

func InitVangoghCamino() error

func IsDetailsNotFound added in v0.2.79

func IsDetailsNotFound(err error) 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,
	noDlcs bool,
	noExtras bool,
	noPatches bool,
	dlProcessor DownloadsListProcessor,
	tpw nod.TotalProgressWriter) error

func NextSyncEvent added in v0.4.54

func NextSyncEvent(completedEvent string) string

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,
	noDlc, noExtras, noPatches bool)

func ProductTypeId added in v0.2.77

func ProductTypeId(pt ProductType, id string) string

func ProductTypesCloValues added in v0.3.13

func ProductTypesCloValues() []string

func PropertyFromImageType

func PropertyFromImageType(it gog_integration.ImageType) string

func ProtonDbSummaryProperties added in v0.2.4

func ProtonDbSummaryProperties() []string

func RatingDesc added in v0.2.31

func RatingDesc(ri int64) 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 SinceHouseAgoFromUrl added in v0.4.87

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

func SizeToEstimatedBytes

func SizeToEstimatedBytes(size string) int64

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 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 UnmarshalDetailsReadCloser added in v0.5.8

func UnmarshalDetailsReadCloser(rcDetails io.ReadCloser) (*gog_integration.Details, error)

func UserDataHomeDir added in v0.5.10

func UserDataHomeDir() (string, error)

func ValuesFromUrl

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

func VideoProperties

func VideoProperties() []string

func WikipediaCreditsProperties added in v0.4.95

func WikipediaCreditsProperties() []string

func WikipediaRawProperties added in v0.2.70

func WikipediaRawProperties() []string

Types

type AvailableProduct added in v0.4.40

type AvailableProduct struct {
	Id               string            `json:"id"`
	Title            string            `json:"tt"`
	OperatingSystems []OperatingSystem `json:"os"`
	Dlc              map[string]string `json:"dlc,omitempty"`
}

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 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) (DownloadsList, error)

func (DownloadsList) FilterDownloadTypes added in v0.5.8

func (dls DownloadsList) FilterDownloadTypes(downloadTypes ...DownloadType) DownloadsList

func (DownloadsList) FilterLangCodes added in v0.5.8

func (dls DownloadsList) FilterLangCodes(languageCodes ...string) DownloadsList

func (DownloadsList) FilterOperatingSystems added in v0.5.8

func (dls DownloadsList) FilterOperatingSystems(operatingSystems ...OperatingSystem) DownloadsList

func (DownloadsList) FilterPatches added in v0.5.8

func (dls DownloadsList) FilterPatches(flag bool) DownloadsList

func (DownloadsList) Only

func (dls DownloadsList) Only(
	operatingSystems []OperatingSystem,
	langCodes []string,
	noDlcs bool,
	noExtras bool,
	noPatches bool) DownloadsList

func (DownloadsList) TotalBytesEstimate

func (dls DownloadsList) TotalBytesEstimate() int64

type DownloadsListProcessor

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

type OperatingSystem

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

func AllOperatingSystems

func AllOperatingSystems() []OperatingSystem

func CurrentOs added in v0.5.10

func CurrentOs() 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 ProductType

type ProductType int
const (
	// cannot use iota, since product type id representation requires stable values
	UnknownProductType ProductType = 0

	// GOG.com product types
	GogCatalogPage     ProductType = 100
	GogAccountPage     ProductType = 101
	GogUserWishlist    ProductType = 102
	GogDetails         ProductType = 103
	GogApiProducts     ProductType = 104
	GogLicences        ProductType = 105
	GogOrderPage       ProductType = 106
	GogUserAccessToken ProductType = 107

	// GamesDB (GOG Galaxy)
	GamesDbGogProducts ProductType = 200

	// Steam product types
	SteamAppDetails              ProductType = 300
	SteamAppNews                 ProductType = 301
	SteamAppReviews              ProductType = 302
	SteamDeckCompatibilityReport ProductType = 303
	SteamAppInfo                 ProductType = 304

	// Epic Games Store
	EgsCatalogItems  ProductType = 400
	EgsGameManifests ProductType = 401
	EgsManifests     ProductType = 402
	EgsGameAssets    ProductType = 403

	// PCGamingWiki product types
	PcgwGogPageId   ProductType = 1000
	PcgwSteamPageId ProductType = 1001
	PcgwRaw         ProductType = 1002

	// Wikipedia product types
	WikipediaRaw ProductType = 1100

	// HLTB product types
	HltbRootPage ProductType = 1200
	HltbData     ProductType = 1201

	// ProtonDB product types
	ProtonDbSummary ProductType = 1300

	// OpenCritic product types
	OpenCriticApiGame ProductType = 1400

	// vangogh/theo product types
	GogChecksums      ProductType = 9000
	GogFilenames      ProductType = 9001
	AvailableProducts ProductType = 9003
)

func GogPurchaseProductTypes added in v0.4.72

func GogPurchaseProductTypes() []ProductType

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) ContentType added in v0.5.7

func (pt ProductType) ContentType() string

func (ProductType) Ext added in v0.5.7

func (pt ProductType) Ext() string

func (ProductType) String

func (pt ProductType) String() string

type ValidationStatus added in v0.3.62

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

func AllValidationStatuses added in v0.3.86

func AllValidationStatuses() []ValidationStatus

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