steam_integration

package
v0.2.19 Latest Latest
Warning

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

Go to latest
Published: Mar 11, 2025 License: MIT Imports: 9 Imported by: 10

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(kvShortcuts *steam_vdf.KeyValues, shortcut *Shortcut) 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 DecodeLocToken added in v0.1.30

func DecodeLocToken(token string) string

func GetShortcutByAppId added in v0.1.60

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

func NewsForAppUrl

func NewsForAppUrl(appId string) *url.URL

func RemoveShortcuts added in v0.1.61

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

func ShortcutAppId added in v0.1.60

func ShortcutAppId(appName string) uint32

func SteamCommunityUrl

func SteamCommunityUrl(appId string) *url.URL

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 TrimLocToken added in v0.1.46

func TrimLocToken(token string) string

func UpdateShortcut added in v0.1.60

func UpdateShortcut(index string, kvShortcuts *steam_vdf.KeyValues, shortcut *Shortcut) 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) GetMetacriticScore added in v0.2.0

func (ad *AppDetails) GetMetacriticScore() int

func (*AppDetails) GetMetacriticUrl added in v0.2.0

func (ad *AppDetails) GetMetacriticUrl() string

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) 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) GetDisplayTypes added in v0.1.48

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

func (*DeckAppCompatibilityReport) GetResults added in v0.1.32

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

func (*DeckAppCompatibilityReport) IsSuccess added in v0.1.30

func (dacr *DeckAppCompatibilityReport) IsSuccess() bool

func (*DeckAppCompatibilityReport) String added in v0.1.31

func (dacr *DeckAppCompatibilityReport) String() string

type DeckAppCompatibilityResults added in v0.2.12

type DeckAppCompatibilityResults struct {
	AppID            uint32 `json:"appid"`
	ResolvedCategory int    `json:"resolved_category"`
	ResolvedItems    []struct {
		DisplayType int    `json:"display_type"`
		LocToken    string `json:"loc_token"`
	} `json:"resolved_items"`
	SteamDeckBlogUrl string      `json:"steam_deck_blog_url"`
	SearchId         interface{} `json:"search_id"`
}

type DisplayTypesGetter added in v0.1.48

type DisplayTypesGetter interface {
	GetDisplayTypes() []string
}

type GetNewsForAppResponse

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

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 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 ReviewScoreDescGetter

type ReviewScoreDescGetter interface {
	GetReviewScoreDesc() string
}

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 SteamAppIdsGetter added in v0.1.84

type SteamAppIdsGetter interface {
	GetSteamAppIds() []uint32
}

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