Documentation
¶
Index ¶
- Constants
- Variables
- func AccountApiOauthKillUrl(token string) *url.URL
- func AccountApiOauthTokenUrl() *url.URL
- func AccountApiOauthVerifyUrl() *url.URL
- func ApiRedirectUrl() *url.URL
- func CatalogItemUrl(namespace, itemId string, includeMainGameDetails, includeDlcDetails bool, ...) *url.URL
- func DeleteToken(token string, client *http.Client) error
- func EntitlementsUrl(accountId string, start, count int) *url.URL
- func GetApiRedirect(client *http.Client) (io.ReadCloser, error)
- func GetCatalogItem(namespace, itemId string, token string, client *http.Client) (io.ReadCloser, error)
- func GetGameAssets(platform string, token string, client *http.Client) (io.ReadCloser, error)
- func GetGameManifest(namespace, catalogItemId, appName string, platform string, token string, ...) (io.ReadCloser, error)
- func GetLauncherManifests(platform string, token string, client *http.Client) (io.ReadCloser, error)
- func GetLibraryItems(cursor string, token string, client *http.Client) (io.ReadCloser, error)
- func GetUserEntitlements(accountId string, token string, start, count int, client *http.Client) (io.ReadCloser, error)
- func GetVerifyToken(token string, client *http.Client) (io.ReadCloser, error)
- func HostUrl() *url.URL
- func LauncherGameAssetsUrl(platform string, label string) *url.URL
- func LauncherGameManifestUrl(namespace, catalogItemId, appName string, platform, label string) *url.URL
- func LauncherManifestsUrl(platform, label string) *url.URL
- func LibraryItemsUrl(includeMetadata bool, cursor string) *url.URL
- func Platform(operatingSystem vangogh_integration.OperatingSystem) string
- func PostToken(token string, grantType GrantType, client *http.Client) (io.ReadCloser, error)
- func ReadChunk(r io.ReadSeeker) (io.Reader, error)
- type CatalogItem
- type Chunk
- type ChunkHeader
- type ChunkList
- type ChunkPart
- type CustomFields
- type Entitlement
- type File
- type FileList
- type GameAsset
- type GameManifest
- type GetApiRedirectResponse
- type GetVerifyTokenResponse
- type GrantType
- type Header
- type JsonManifest
- type LauncherManifests
- type LibraryItems
- type Manifest
- type ManifestUri
- type Metadata
- type PostTokenResponse
- type TypeValue
Constants ¶
View Source
const ( GrantTypeRefreshToken GrantType = "refresh_token" GrantTypeExchangeToken = "exchange_code" GrantTypeAuthorizationCode = "authorization_code" GrantTypeClientCredentials = "client_credentials" )
View Source
const ( StorageUncompressed uint8 = 0x00 StorageCompressed uint8 = 0x01 StorageEncrypted uint8 = 0x02 )
View Source
const ManifestExt = ".manifest"
View Source
const (
UserAgent = "UELauncher/15.18.2-29993784+++Portal+Release-Live Windows/10.0.19041.1.256.64bit"
)
Variables ¶
View Source
var SupportedOperatingSystems = []vangogh_integration.OperatingSystem{ vangogh_integration.Windows, vangogh_integration.MacOS, }
Functions ¶
func AccountApiOauthKillUrl ¶
func AccountApiOauthTokenUrl ¶
func ApiRedirectUrl ¶
func CatalogItemUrl ¶
func GetApiRedirect ¶
func GetApiRedirect(client *http.Client) (io.ReadCloser, error)
func GetCatalogItem ¶
func GetGameAssets ¶
func GetGameManifest ¶
func GetLauncherManifests ¶
func GetLibraryItems ¶
func GetUserEntitlements ¶
func GetVerifyToken ¶
func LauncherGameManifestUrl ¶
func LauncherManifestsUrl ¶
func Platform ¶ added in v0.4.42
func Platform(operatingSystem vangogh_integration.OperatingSystem) string
Types ¶
type CatalogItem ¶
type CatalogItem struct {
Id string `json:"id"`
Title string `json:"title"`
Description string `json:"description"`
KeyImages []struct {
Type string `json:"type"`
Url string `json:"url"`
Md5 string `json:"md5"`
Width int `json:"width"`
Height int `json:"height"`
Size int `json:"size"`
UploadedDate time.Time `json:"uploadedDate"`
} `json:"keyImages"`
Categories []struct {
Path string `json:"path"`
} `json:"categories"`
Namespace string `json:"namespace"`
Status string `json:"status"`
CreationDate time.Time `json:"creationDate"`
LastModifiedDate time.Time `json:"lastModifiedDate"`
CustomAttributes map[string]TypeValue `json:"customAttributes"`
EntitlementName string `json:"entitlementName"`
EntitlementType string `json:"entitlementType"`
ItemType string `json:"itemType"`
ReleaseInfo []struct {
Id string `json:"id"`
AppId string `json:"appId"`
Platform []string `json:"platform"`
} `json:"releaseInfo"`
Developer string `json:"developer"`
DeveloperId string `json:"developerId"`
EulaIds []string `json:"eulaIds"`
EndOfSupport bool `json:"endOfSupport"`
//MainGameItem CatalogItem `json:"mainGameItem"`
MainGameItemList []CatalogItem `json:"mainGameItemList"`
DlcItemList []CatalogItem `json:"dlcItemList"`
EsrbGameRatingValue string `json:"esrbGameRatingValue"`
AgeGatings struct {
} `json:"ageGatings"`
Unsearchable bool `json:"unsearchable"`
}
type Chunk ¶
type ChunkHeader ¶ added in v0.4.28
type CustomFields ¶
type Entitlement ¶
type Entitlement struct {
Id string `json:"id"`
EntitlementName string `json:"entitlementName"`
Namespace string `json:"namespace"`
CatalogItemId string `json:"catalogItemId"`
Store string `json:"store"`
AccountId string `json:"accountId"`
IdentityId string `json:"identityId"`
EntitlementType string `json:"entitlementType"`
GrantDate time.Time `json:"grantDate"`
Consumable bool `json:"consumable"`
Status string `json:"status"`
Active bool `json:"active"`
UseCount int `json:"useCount"`
OriginalUseCount int `json:"originalUseCount"`
PlatformType string `json:"platformType"`
Created time.Time `json:"created"`
Updated time.Time `json:"updated"`
GroupEntitlement bool `json:"groupEntitlement"`
Country string `json:"country"`
ReadFromCache bool `json:"readFromCache"`
}
type GameAsset ¶
type GameAsset struct {
AppName string `json:"appName"`
LabelName string `json:"labelName"`
BuildVersion string `json:"buildVersion"`
CatalogItemId string `json:"catalogItemId"`
Namespace string `json:"namespace"`
Metadata struct {
InstallationPoolId string `json:"installationPoolId,omitempty"`
UpdateType string `json:"update_type,omitempty"`
} `json:"metadata"`
SidecarRvn int `json:"sidecarRvn,omitempty"`
AssetId string `json:"assetId"`
}
type GameManifest ¶
type GameManifest struct {
Elements []struct {
AppName string `json:"appName"`
LabelName string `json:"labelName"`
BuildVersion string `json:"buildVersion"`
Hash string `json:"hash"`
UseSignedUrl bool `json:"useSignedUrl"`
Metadata struct {
InstallationPoolId string `json:"installationPoolId"`
UpdateType string `json:"update_type"`
} `json:"metadata"`
Manifests []ManifestUri `json:"manifests"`
IsPreloaded bool `json:"isPreloaded"`
} `json:"elements"`
}
type GetApiRedirectResponse ¶
type GetVerifyTokenResponse ¶
type GetVerifyTokenResponse struct {
Token string `json:"token"`
SessionId string `json:"session_id"`
TokenType string `json:"token_type"`
ClientId string `json:"client_id"`
InternalClient bool `json:"internal_client"`
ClientService string `json:"client_service"`
AccountId string `json:"account_id"`
ExpiresIn int `json:"expires_in"`
ExpiresAt time.Time `json:"expires_at"`
AuthMethod string `json:"auth_method"`
DisplayName string `json:"display_name"`
App string `json:"app"`
InAppId string `json:"in_app_id"`
Scope any `json:"scope"`
Acr string `json:"acr"`
AuthTime time.Time `json:"auth_time"`
}
type JsonManifest ¶ added in v0.4.61
type JsonManifest struct {
ManifestFileVersion string `json:"ManifestFileVersion"`
IsFileData bool `json:"bIsFileData"`
AppId string `json:"AppID"`
AppName string `json:"AppNameString"`
BuildVersion string `json:"BuildVersionString"`
LaunchExe string `json:"LaunchExeString"`
LaunchCommand string `json:"LaunchCommand"`
PrereqIds []string `json:"PrereqIds"`
PrereqName string `json:"PrereqName"`
PrereqPath string `json:"PrereqPath"`
PrereqArgs string `json:"PrereqArgs"`
FileManifestList []struct {
Filename string `json:"Filename"`
FileHash string `json:"FileHash"`
IsReadOnly bool `json:"bIsReadOnly"`
IsCompressed bool `json:"bIsCompressed"`
IsUnixExecutable bool `json:"bIsUnixExecutable"`
FileChunkParts []struct {
Guid string `json:"Guid"`
Offset string `json:"Offset"`
Size string `json:"Size"`
} `json:"FileChunkParts"`
} `json:"FileManifestList"`
ChunkHashList map[string]string `json:"ChunkHashList"`
ChunkShaList map[string]string `json:"ChunkShaList"`
DataGroupList map[string]string `json:"DataGroupList"`
ChunkFilesizeList map[string]string `json:"ChunkFilesizeList"`
CustomFields map[string]string `json:"CustomFields"`
}
func (*JsonManifest) Manifest ¶ added in v0.4.62
func (jm *JsonManifest) Manifest() (*Manifest, error)
type LauncherManifests ¶
type LauncherManifests struct {
Elements []struct {
AppName string `json:"appName"`
LabelName string `json:"labelName"`
BuildVersion string `json:"buildVersion"`
Hash string `json:"hash"`
UseSignedUrl bool `json:"useSignedUrl"`
Manifests []struct {
Uri string `json:"uri"`
QueryParams []struct {
Name string `json:"name"`
Value string `json:"value"`
} `json:"queryParams"`
} `json:"manifests"`
IsPreloaded bool `json:"isPreloaded"`
} `json:"elements"`
}
type LibraryItems ¶
type LibraryItems struct {
ResponseMetadata struct {
NextCursor string `json:"nextCursor"`
StateToken string `json:"stateToken"`
} `json:"responseMetadata"`
Records []struct {
Namespace string `json:"namespace"`
CatalogItemId string `json:"catalogItemId"`
AppName string `json:"appName"`
Country string `json:"country"`
Platform []string `json:"platform"`
ProductId string `json:"productId"`
SandboxName string `json:"sandboxName"`
SandboxType string `json:"sandboxType"`
RecordType string `json:"recordType"`
AcquisitionDate time.Time `json:"acquisitionDate"`
Dependencies []any `json:"dependencies"`
AvailableDate time.Time `json:"availableDate"`
} `json:"records"`
}
type Manifest ¶
type Manifest struct {
Header *Header
Metadata *Metadata
ChunkList *ChunkList
FileList *FileList
CustomFields *CustomFields
}
func ReadManifest ¶
func ReadManifest(r io.ReadSeeker) (*Manifest, error)
type ManifestUri ¶ added in v0.4.27
type PostTokenResponse ¶
type PostTokenResponse struct {
AccessToken string `json:"access_token"`
ExpiresIn int `json:"expires_in"`
ExpiresAt time.Time `json:"expires_at"`
TokenType string `json:"token_type"`
RefreshToken string `json:"refresh_token"`
RefreshExpires int `json:"refresh_expires"`
RefreshExpiresAt time.Time `json:"refresh_expires_at"`
AccountId string `json:"account_id"`
ClientId string `json:"client_id"`
InternalClient bool `json:"internal_client"`
ClientService string `json:"client_service"`
Scope any `json:"scope"`
DisplayName string `json:"displayName"`
App string `json:"app"`
InAppId string `json:"in_app_id"`
Acr string `json:"acr"`
AuthTime time.Time `json:"auth_time"`
}
Click to show internal directories.
Click to hide internal directories.