steam_integration

package
v0.4.56 Latest Latest
Warning

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

Go to latest
Published: Apr 14, 2026 License: AGPL-3.0 Imports: 8 Imported by: 11

Documentation

Index

Constants

View Source
const (
	SteamPoweredHost   = "steampowered.com"
	StoreHost          = "store." + SteamPoweredHost
	ApiHost            = "api." + SteamPoweredHost
	SteamCommunityHost = "steamcommunity.com"
)

hosts

Variables

This section is empty.

Functions

func AppDetailsUrl added in v0.1.29

func AppDetailsUrl(appId string) *url.URL

func AppReviewsUrl

func AppReviewsUrl(appId string) *url.URL

func AppendShortcut added in v0.1.58

func AppendShortcut(shortcut *Shortcut, kvShortcuts *steam_vdf.KeyValues) error

func DeckAppCompatibilityReportUrl added in v0.1.29

func DeckAppCompatibilityReportUrl(appId string) *url.URL

func DecodeCategory added in v0.1.31

func DecodeCategory(category int) string

func GetShortcutByAppId added in v0.1.60

func GetShortcutByAppId(appId uint32, kvShortcuts *steam_vdf.KeyValues) *steam_vdf.KeyValues

func NewsForAppUrl

func NewsForAppUrl(appId string) *url.URL

func RemoveShortcuts added in v0.1.61

func RemoveShortcuts(appIds uint32, kvShortcuts *steam_vdf.KeyValues) error

func ShortcutAppId added in v0.1.60

func ShortcutAppId(appName string) uint32

func SteamCommunityUrl

func SteamCommunityUrl(appId string) *url.URL

func SteamDeckDecodeLocToken added in v0.3.3

func SteamDeckDecodeLocToken(token string) string

func SteamDeckTrimLocToken added in v0.3.3

func SteamDeckTrimLocToken(token string) string

func SteamGuidesUrl added in v0.1.92

func SteamGuidesUrl(appId string) *url.URL

func SteamIdFromUserId added in v0.1.54

func SteamIdFromUserId(userIdStr string) (int64, error)

func SteamOsDecodeLocToken added in v0.3.3

func SteamOsDecodeLocToken(token string) string

func SteamOsTrimLocToken added in v0.3.3

func SteamOsTrimLocToken(token string) string

func UpdateShortcut added in v0.1.60

func UpdateShortcut(index string, shortcut *Shortcut, kvShortcuts *steam_vdf.KeyValues) error

Types

type AppDetails added in v0.1.99

type AppDetails struct {
	Type                string   `json:"type"`
	Name                string   `json:"name"`
	SteamAppId          uint32   `json:"steam_appid"`
	RequiredAge         any      `json:"required_age"` // could be "number" or number
	IsFree              bool     `json:"is_free"`
	ControllerSupport   string   `json:"controller_support"`
	DetailedDescription string   `json:"detailed_description"`
	AboutTheGame        string   `json:"about_the_game"`
	ShortDescription    string   `json:"short_description"`
	SupportedLanguages  string   `json:"supported_languages"`
	HeaderImage         string   `json:"header_image"`
	CapsuleImage        string   `json:"capsule_image"`
	CapsuleImageV5      string   `json:"capsule_imagev5"`
	Website             string   `json:"website"`
	PcRequirements      any      `json:"pc_requirements"`    // could be {Requirements} or []
	MacRequirements     any      `json:"mac_requirements"`   // could be {Requirements} or []
	LinuxRequirements   any      `json:"linux_requirements"` // could be {Requirements} or []
	LegalNotice         string   `json:"legal_notice"`
	Developers          []string `json:"developers"`
	Publishers          []string `json:"publishers"`
	PriceOverview       struct {
		Currency         string `json:"currency"`
		Initial          int    `json:"initial"`
		Final            int    `json:"final"`
		DiscountPercent  int    `json:"discount_percent"`
		InitialFormatted string `json:"initial_formatted"`
		FinalFormatted   string `json:"final_formatted"`
	} `json:"price_overview"`
	Packages      []int `json:"packages"`
	PackageGroups []struct {
		Name                    string `json:"name"`
		Title                   string `json:"title"`
		Description             string `json:"description"`
		SelectionText           string `json:"selection_text"`
		SaveText                string `json:"save_text"`
		DisplayType             any    `json:"display_type"` // could be "number" or number
		IsRecurringSubscription string `json:"is_recurring_subscription"`
		Subs                    []struct {
			PackageId                int    `json:"packageid"`
			PercentSavingsText       string `json:"percent_savings_text"`
			PercentSavings           int    `json:"percent_savings"`
			OptionText               string `json:"option_text"`
			OptionDescription        string `json:"option_description"`
			CanGetFreeLicense        string `json:"can_get_free_license"`
			IsFreeLicense            bool   `json:"is_free_license"`
			PriceInCentsWithDiscount int    `json:"price_in_cents_with_discount"`
		} `json:"subs"`
	} `json:"package_groups"`
	Platforms struct {
		Windows bool `json:"windows"`
		Mac     bool `json:"mac"`
		Linux   bool `json:"linux"`
	} `json:"platforms"`
	Metacritic struct {
		Score int    `json:"score"`
		Url   string `json:"url"`
	} `json:"metacritic"`
	Categories []struct {
		Id          int    `json:"id"`
		Description string `json:"description"`
	} `json:"categories"`
	Genres []struct {
		Id          string `json:"id"`
		Description string `json:"description"`
	} `json:"genres"`
	Screenshots []struct {
		Id            int    `json:"id"`
		PathThumbnail string `json:"path_thumbnail"`
		PathFull      string `json:"path_full"`
	} `json:"screenshots"`
	Recommendations struct {
		Total int `json:"total"`
	} `json:"recommendations"`
	ReleaseDate struct {
		ComingSoon bool   `json:"coming_soon"`
		Date       string `json:"date"`
	} `json:"release_date"`
	SupportInfo struct {
		Url   string `json:"url"`
		Email string `json:"email"`
	} `json:"support_info"`
	Background         string `json:"background"`
	BackgroundRaw      string `json:"background_raw"`
	ContentDescriptors struct {
		Ids   []int   `json:"ids"`
		Notes *string `json:"notes"`
	} `json:"content_descriptors"`
	Ratings struct {
		Esrb   Rating `json:"esrb"`
		Pegi   Rating `json:"pegi"`
		Usk    Rating `json:"usk"`
		Oflc   Rating `json:"oflc"`
		Dejus  Rating `json:"dejus"`
		Csrr   Rating `json:"csrr"`
		Crl    Rating `json:"crl"`
		Nzoflc Rating `json:"nzoflc"`
	} `json:"ratings"`
}

func (*AppDetails) GetCategories added in v0.2.0

func (ad *AppDetails) GetCategories() []string

func (*AppDetails) GetControllerSupport added in v0.2.0

func (ad *AppDetails) GetControllerSupport() string

func (*AppDetails) GetGenres added in v0.2.0

func (ad *AppDetails) GetGenres() []string

func (*AppDetails) GetIsFree added in v0.2.0

func (ad *AppDetails) GetIsFree() bool

func (*AppDetails) GetMetacriticId added in v0.2.66

func (ad *AppDetails) GetMetacriticId() (string, error)

func (*AppDetails) GetMetacriticScore added in v0.2.0

func (ad *AppDetails) GetMetacriticScore() int

func (*AppDetails) GetName added in v0.2.0

func (ad *AppDetails) GetName() string

func (*AppDetails) GetRequiredAge added in v0.2.0

func (ad *AppDetails) GetRequiredAge() int

func (*AppDetails) GetShortDescription added in v0.2.0

func (ad *AppDetails) GetShortDescription() string

func (*AppDetails) GetSupportEmail added in v0.2.0

func (ad *AppDetails) GetSupportEmail() string

func (*AppDetails) GetSupportUrl added in v0.2.0

func (ad *AppDetails) GetSupportUrl() string

func (*AppDetails) GetType added in v0.2.0

func (ad *AppDetails) GetType() string

func (*AppDetails) GetWebsite added in v0.2.0

func (ad *AppDetails) GetWebsite() string

type AppDetailsResponse added in v0.1.99

type AppDetailsResponse map[string]AppDetailsSuccessData

func (AppDetailsResponse) GetAppDetails added in v0.2.0

func (adr AppDetailsResponse) GetAppDetails() *AppDetails

type AppDetailsSuccessData added in v0.2.0

type AppDetailsSuccessData struct {
	Success bool       `json:"success"`
	Data    AppDetails `json:"data"`
}

type AppNews

type AppNews struct {
	AppId     uint32     `json:"appid"`
	NewsItems []NewsItem `json:"newsitems"`
	Count     uint32     `json:"count"`
}

type AppReviews

type AppReviews struct {
	Success      int          `json:"success"`
	QuerySummary QuerySummary `json:"query_summary"`
	Reviews      []Review     `json:"reviews"`
	Cursor       string       `json:"cursor"`
}

func (*AppReviews) GetReviewScore added in v0.2.32

func (ar *AppReviews) GetReviewScore() int

func (*AppReviews) GetReviewScoreDesc

func (ar *AppReviews) GetReviewScoreDesc() string

type Author

type Author struct {
	SteamId              string `json:"steamid"`
	NumGamesOwned        int    `json:"num_games_owned"`
	NumReviews           int    `json:"num_reviews"`
	PlaytimeForever      int    `json:"playtime_forever"`
	PlaytimeLastTwoWeeks int    `json:"playtime_last_two_weeks"`
	PlaytimeAtReview     int    `json:"playtime_at_review"`
	DeckPlaytimeAtReview int    `json:"deck_playtime_at_review,omitempty"`
	LastPlayed           int    `json:"last_played"`
}

type BlogUrlGetter added in v0.1.48

type BlogUrlGetter interface {
	GetBlogUrl() string
}

type DeckAppCompatibilityReport added in v0.1.30

type DeckAppCompatibilityReport struct {
	Success int                         `json:"success"`
	Results DeckAppCompatibilityResults `json:"results"`
}

func (*DeckAppCompatibilityReport) GetBlogUrl added in v0.1.48

func (dacr *DeckAppCompatibilityReport) GetBlogUrl() string

func (*DeckAppCompatibilityReport) GetSteamDeckDisplayTypes added in v0.3.3

func (dacr *DeckAppCompatibilityReport) GetSteamDeckDisplayTypes() []string

func (*DeckAppCompatibilityReport) GetSteamDeckResults added in v0.3.3

func (dacr *DeckAppCompatibilityReport) GetSteamDeckResults() []string

func (*DeckAppCompatibilityReport) GetSteamOsDisplayTypes added in v0.3.3

func (dacr *DeckAppCompatibilityReport) GetSteamOsDisplayTypes() []string

func (*DeckAppCompatibilityReport) GetSteamOsResults added in v0.3.3

func (dacr *DeckAppCompatibilityReport) GetSteamOsResults() []string

func (*DeckAppCompatibilityReport) IsSuccess added in v0.1.30

func (dacr *DeckAppCompatibilityReport) IsSuccess() bool

func (*DeckAppCompatibilityReport) SteamDeckString added in v0.3.3

func (dacr *DeckAppCompatibilityReport) SteamDeckString() string

func (*DeckAppCompatibilityReport) SteamOsString added in v0.3.3

func (dacr *DeckAppCompatibilityReport) SteamOsString() string

type DeckAppCompatibilityResults added in v0.2.12

type DeckAppCompatibilityResults struct {
	AppID                   uint32         `json:"appid"`
	ResolvedCategory        int            `json:"resolved_category"`
	ResolvedItems           []ResolvedItem `json:"resolved_items"`
	SteamDeckBlogUrl        string         `json:"steam_deck_blog_url"`
	SearchId                any            `json:"search_id"`
	SteamOsResolvedCategory int            `json:"steamos_resolved_category"`
	SteamOsResolvedItems    []ResolvedItem `json:"steamos_resolved_items"`
}

type DisplayTypesGetter added in v0.1.48

type DisplayTypesGetter interface {
	GetDisplayTypes() []string
}

type GetNewsForAppResponse

type GetNewsForAppResponse struct {
	AppNews AppNews `json:"appnews"`
}

type LaunchConfig added in v0.4.39

type LaunchConfig struct {
	Executable  string
	Arguments   string
	WorkingDir  string
	Type        string
	OsList      string
	OsArch      string
	BetaKey     string
	Description string
}

type NewsItem

type NewsItem struct {
	GId           string   `json:"gid"`
	Title         string   `json:"title"`
	Url           string   `json:"url"`
	IsExternalUrl bool     `json:"is_external_url"`
	Author        string   `json:"author"`
	Contents      string   `json:"contents"`
	FeedLabel     string   `json:"feedlabel"`
	Date          int64    `json:"date"`
	FeedName      string   `json:"feedname"`
	FeedType      int      `json:"feed_type"`
	AppId         uint32   `json:"appid"`
	Tags          []string `json:"tags"`
}

type QuerySummary

type QuerySummary struct {
	NumReviews      int    `json:"num_reviews"`
	ReviewScore     int    `json:"review_score"`
	ReviewScoreDesc string `json:"review_score_desc"`
	TotalPositive   int    `json:"total_positive"`
	TotalNegative   int    `json:"total_negative"`
	TotalReviews    int    `json:"total_reviews"`
}

type Rating added in v0.1.99

type Rating struct {
	Rating      string `json:"rating"`
	Descriptors string `json:"descriptors"`
	UseAgeGate  string `json:"use_age_gate"`
	RequiredAge string `json:"required_age"`
}

type Requirements added in v0.1.99

type Requirements struct {
	Minimum     string `json:"minimum"`
	Recommended string `json:"recommended"`
}

type ResolvedItem added in v0.3.3

type ResolvedItem struct {
	DisplayType int    `json:"display_type"`
	LocToken    string `json:"loc_token"`
}

type ResultsGetter added in v0.1.48

type ResultsGetter interface {
	GetResults() []string
}

type Review

type Review struct {
	RecommendationId string `json:"recommendationid"`
	Author           Author `json:"author"`
	Language         string `json:"language"`
	Review           string `json:"review"`
	TimestampCreated int64  `json:"timestamp_created"`
	TimestampUpdated int64  `json:"timestamp_updated"`
	VotedUp          bool   `json:"voted_up"`
	VotesUp          int    `json:"votes_up"`
	VotesFunny       int    `json:"votes_funny"`
	//BUG: Steam weighted_vote_score data contains values like "0.123456789" as well as 0 (no quotes)
	//which means we can't use either string (second value will fail), nor number (first value will fail)
	//skipping it for the time being
	//WeightedVoteScore        string `json:"weighted_vote_score"`
	CommentCount             int  `json:"comment_count"`
	SteamPurchase            bool `json:"steam_purchase"`
	ReceivedForFree          bool `json:"received_for_free"`
	WrittenDuringEarlyAccess bool `json:"written_during_early_access"`
	PrimarilySteamDeck       bool `json:"primarily_steam_deck"`
}

type Shortcut added in v0.1.58

type Shortcut struct {
	AppId               uint32
	AppName             string
	Exe                 string
	StartDir            string
	Icon                string
	ShortcutPath        string
	LaunchOptions       string
	IsHidden            uint32
	AllowDesktopConfig  uint32
	AllowOverlay        uint32
	OpenVR              uint32
	Devkit              uint32
	DevkitGameId        string
	DevkitOverrideAppId string
	LastPlayTime        uint32
	FlatpakAppId        string
	Tags                []string
}

func NewShortcut added in v0.1.58

func NewShortcut() *Shortcut

func (*Shortcut) AllowDesktopConfigKeyValues added in v0.1.58

func (s *Shortcut) AllowDesktopConfigKeyValues() *steam_vdf.KeyValues

func (*Shortcut) AllowOverlayKeyValues added in v0.1.58

func (s *Shortcut) AllowOverlayKeyValues() *steam_vdf.KeyValues

func (*Shortcut) AppIdKeyValue added in v0.1.58

func (s *Shortcut) AppIdKeyValue() *steam_vdf.KeyValues

func (*Shortcut) AppNameKeyValue added in v0.1.58

func (s *Shortcut) AppNameKeyValue() *steam_vdf.KeyValues

func (*Shortcut) DevkitGameIdKeyValues added in v0.1.58

func (s *Shortcut) DevkitGameIdKeyValues() *steam_vdf.KeyValues

func (*Shortcut) DevkitKeyValues added in v0.1.58

func (s *Shortcut) DevkitKeyValues() *steam_vdf.KeyValues

func (*Shortcut) DevkitOverrideAppIdKeyValues added in v0.1.58

func (s *Shortcut) DevkitOverrideAppIdKeyValues() *steam_vdf.KeyValues

func (*Shortcut) ExeKeyValue added in v0.1.58

func (s *Shortcut) ExeKeyValue() *steam_vdf.KeyValues

func (*Shortcut) FlatpakAppIdKeyValues added in v0.1.58

func (s *Shortcut) FlatpakAppIdKeyValues() *steam_vdf.KeyValues

func (*Shortcut) IconKeyValue added in v0.1.58

func (s *Shortcut) IconKeyValue() *steam_vdf.KeyValues

func (*Shortcut) IsHiddenKeyValues added in v0.1.58

func (s *Shortcut) IsHiddenKeyValues() *steam_vdf.KeyValues

func (*Shortcut) KeyValues added in v0.1.58

func (s *Shortcut) KeyValues(index string) *steam_vdf.KeyValues

func (*Shortcut) LastPlayTimeKeyValues added in v0.1.58

func (s *Shortcut) LastPlayTimeKeyValues() *steam_vdf.KeyValues

func (*Shortcut) LaunchOptionsKeyValues added in v0.1.58

func (s *Shortcut) LaunchOptionsKeyValues() *steam_vdf.KeyValues

func (*Shortcut) OpenVRKeyValues added in v0.1.58

func (s *Shortcut) OpenVRKeyValues() *steam_vdf.KeyValues

func (*Shortcut) ShortcutPathKeyValue added in v0.1.58

func (s *Shortcut) ShortcutPathKeyValue() *steam_vdf.KeyValues

func (*Shortcut) StartDirKeyValue added in v0.1.58

func (s *Shortcut) StartDirKeyValue() *steam_vdf.KeyValues

func (*Shortcut) TagsKeyValues added in v0.1.58

func (s *Shortcut) TagsKeyValues() *steam_vdf.KeyValues

type SteamUrlFunc

type SteamUrlFunc func(appId string) *url.URL

Jump to

Keyboard shortcuts

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