steamapi

package
v0.0.0-...-3dc26c4 Latest Latest
Warning

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

Go to latest
Published: Oct 27, 2023 License: MIT Imports: 13 Imported by: 17

Documentation

Index

Constants

View Source
const (
	VanityURLProfile   = 1
	VanityURLGroup     = 2
	VanityURLGameGroup = 3
)

noinspection GoUnusedConst

Variables

View Source
var (
	ErrAppNotFound      = errors.New("steam: store: app not found")
	ErrPackageNotFound  = errors.New("steam: store: package not found")
	ErrWishlistNotFound = errors.New("steam: store: wishlist not found")
	ErrNullResponse     = errors.New("steam: store: null response") // Probably being rate limited
	ErrHTMLResponse     = errors.New("steam: store: html response") // Probably down
)
View Source
var Currencies = []Currency{
	{CurrencyCode: CurrencyARS, Description: "Argentine Peso"},
	{CurrencyCode: CurrencyAUD, Description: "Australian Dollars"},
	{CurrencyCode: CurrencyBRL, Description: "Brazilian Reals"},
	{CurrencyCode: CurrencyCAD, Description: "Canadian Dollars"},
	{CurrencyCode: CurrencyCLP, Description: "Chilean Peso"},
	{CurrencyCode: CurrencyCNY, Description: "Chinese Renminbi (yuan)"},
	{CurrencyCode: CurrencyCOP, Description: "Colombian Peso"},
	{CurrencyCode: CurrencyCRC, Description: "Costa Rican Colón"},
	{CurrencyCode: CurrencyEUR, Description: "European Union Euro"},
	{CurrencyCode: CurrencyHKD, Description: "Hong Kong Dollar"},
	{CurrencyCode: CurrencyINR, Description: "Indian Rupee"},
	{CurrencyCode: CurrencyIDR, Description: "Indonesian Rupiah"},
	{CurrencyCode: CurrencyILS, Description: "Israeli New Shekel"},
	{CurrencyCode: CurrencyJPY, Description: "Japanese Yen"},
	{CurrencyCode: CurrencyKZT, Description: "Kazakhstani Tenge"},
	{CurrencyCode: CurrencyKWD, Description: "Kuwaiti Dinar"},
	{CurrencyCode: CurrencyMYR, Description: "Malaysian Ringgit"},
	{CurrencyCode: CurrencyMXN, Description: "Mexican Peso"},
	{CurrencyCode: CurrencyTWD, Description: "New Taiwan Dollar"},
	{CurrencyCode: CurrencyNZD, Description: "New Zealand Dollar"},
	{CurrencyCode: CurrencyNOK, Description: "Norwegian Krone"},
	{CurrencyCode: CurrencyPEN, Description: "Peruvian Nuevo Sol"},
	{CurrencyCode: CurrencyPHP, Description: "Philippine Peso"},
	{CurrencyCode: CurrencyPLN, Description: "Polish Złoty"},
	{CurrencyCode: CurrencyQAR, Description: "Qatari Riyal"},
	{CurrencyCode: CurrencyRUB, Description: "Russian Rouble"},
	{CurrencyCode: CurrencySAR, Description: "Saudi Riyal"},
	{CurrencyCode: CurrencySGD, Description: "Singapore Dollar"},
	{CurrencyCode: CurrencyZAR, Description: "South African Rand"},
	{CurrencyCode: CurrencyKRW, Description: "South Korean Won"},
	{CurrencyCode: CurrencyCHF, Description: "Swiss Francs"},
	{CurrencyCode: CurrencyTHB, Description: "Thai Baht"},
	{CurrencyCode: CurrencyTRY, Description: "Turkish Lira"},
	{CurrencyCode: CurrencyUAH, Description: "Ukrainian Hryvnia"},
	{CurrencyCode: CurrencyAED, Description: "United Arab Emirates Dirham"},
	{CurrencyCode: CurrencyGBP, Description: "United Kingdom Pound"},
	{CurrencyCode: CurrencyUSD, Description: "United States Dollar"},
	{CurrencyCode: CurrencyUYU, Description: "Uruguayan Peso"},
	{CurrencyCode: CurrencyVND, Description: "Vietnamese Dong"},
}
View Source
var ErrInvalidDigest = errors.New("invalid digest")
View Source
var (
	ErrMissingKey = errors.New("missing api key")
)
View Source
var ErrProfileMissing = errors.New("profile missing")
View Source
var ErrProfilePrivate = errors.New("private profile")
View Source
var ErrRateLimited = errors.New("rate limited")
View Source
var Languages = []Language{
	{
		EnglishName:        "Arabic",
		NativeName:         "العربية",
		LanguageCode:       LanguageArabic,
		WebAPILanguageCode: LanguageWebAR,
	},
	{
		EnglishName:        "Bulgarian",
		NativeName:         "български език",
		LanguageCode:       LanguageBulgarian,
		WebAPILanguageCode: LanguageWebBG,
	},
	{
		EnglishName:        "Chinese (Simplified)",
		NativeName:         "简体中文",
		LanguageCode:       LanguageChineseSimplified,
		WebAPILanguageCode: LanguageWebZHCN,
	},
	{
		EnglishName:        "Chinese (Traditional)",
		NativeName:         "繁體中文",
		LanguageCode:       LanguageChineseTraditional,
		WebAPILanguageCode: LanguageWebZHTW,
	},
	{
		EnglishName:        "Czech",
		NativeName:         "čeština",
		LanguageCode:       LanguageCzech,
		WebAPILanguageCode: LanguageWebCS,
	},
	{
		EnglishName:        "Danish",
		NativeName:         "Dansk",
		LanguageCode:       LanguageDanish,
		WebAPILanguageCode: LanguageWebDA,
	},
	{
		EnglishName:        "Dutch",
		NativeName:         "Nederlands",
		LanguageCode:       LanguageDutch,
		WebAPILanguageCode: LanguageWebNL,
	},
	{
		EnglishName:        "English",
		NativeName:         "English",
		LanguageCode:       LanguageEnglish,
		WebAPILanguageCode: LanguageWebEN,
	},
	{
		EnglishName:        "Finnish",
		NativeName:         "Suomi",
		LanguageCode:       LanguageFinnish,
		WebAPILanguageCode: LanguageWebFI,
	},
	{
		EnglishName:        "French",
		NativeName:         "Français",
		LanguageCode:       LanguageFrench,
		WebAPILanguageCode: LanguageWebFR,
	},
	{
		EnglishName:        "German",
		NativeName:         "Deutsch",
		LanguageCode:       LanguageGerman,
		WebAPILanguageCode: LanguageWebDE,
	},
	{
		EnglishName:        "Greek",
		NativeName:         "Ελληνικά",
		LanguageCode:       LanguageGreek,
		WebAPILanguageCode: LanguageWebEL,
	},
	{
		EnglishName:        "Hungarian",
		NativeName:         "Magyar",
		LanguageCode:       LanguageHungarian,
		WebAPILanguageCode: LanguageWebHU,
	},
	{
		EnglishName:        "Italian",
		NativeName:         "Italiano",
		LanguageCode:       LanguageItalian,
		WebAPILanguageCode: LanguageWebIT,
	},
	{
		EnglishName:        "Japanese",
		NativeName:         "日本語",
		LanguageCode:       LanguageJapanese,
		WebAPILanguageCode: LanguageWebJA,
	},
	{
		EnglishName:        "Korean",
		NativeName:         "한국어",
		LanguageCode:       LanguageKorean,
		WebAPILanguageCode: LanguageWebKO,
	},
	{
		EnglishName:        "Norwegian",
		NativeName:         "Norsk",
		LanguageCode:       LanguageNorwegian,
		WebAPILanguageCode: LanguageWebNO,
	},
	{
		EnglishName:        "Polish",
		NativeName:         "Polski",
		LanguageCode:       LanguagePolish,
		WebAPILanguageCode: LanguageWebPL,
	},
	{
		EnglishName:        "Portuguese",
		NativeName:         "Português",
		LanguageCode:       LanguagePortuguese,
		WebAPILanguageCode: LanguageWebPT,
	},
	{
		EnglishName:        "Portuguese-Brazil",
		NativeName:         "Português-Brasil",
		LanguageCode:       LanguagePortugueseBrazil,
		WebAPILanguageCode: LanguageWebPTBR,
	},
	{
		EnglishName:        "Romanian",
		NativeName:         "Română",
		LanguageCode:       LanguageRomanian,
		WebAPILanguageCode: LanguageWebRO,
	},
	{
		EnglishName:        "Russian",
		NativeName:         "Русский",
		LanguageCode:       LanguageRussian,
		WebAPILanguageCode: LanguageWebRU,
	},
	{
		EnglishName:        "Spanish-Spain",
		NativeName:         "Español-España",
		LanguageCode:       LanguageSpanishSpain,
		WebAPILanguageCode: LanguageWebES,
	},
	{
		EnglishName:        "Spanish-Latin America",
		NativeName:         "Español-Latinoamérica",
		LanguageCode:       LanguageSpanishLatinAmerica,
		WebAPILanguageCode: LanguageWebES419,
	},
	{
		EnglishName:        "Swedish",
		NativeName:         "Svenska",
		LanguageCode:       LanguageSwedish,
		WebAPILanguageCode: LanguageWebSV,
	},
	{
		EnglishName:        "Thai",
		NativeName:         "ไทย",
		LanguageCode:       LanguageThai,
		WebAPILanguageCode: LanguageWebTH,
	},
	{
		EnglishName:        "Turkish",
		NativeName:         "Türkçe",
		LanguageCode:       LanguageTurkish,
		WebAPILanguageCode: LanguageWebTR,
	},
	{
		EnglishName:        "Ukrainian",
		NativeName:         "Українська",
		LanguageCode:       LanguageUkrainian,
		WebAPILanguageCode: LanguageWebUK,
	},
	{
		EnglishName:        "Vietnamese",
		NativeName:         "Tiếng Việt",
		LanguageCode:       LanguageVietnamese,
		WebAPILanguageCode: LanguageWebVN,
	},
}

Functions

func IsProductCC

func IsProductCC(i string) bool

Types

type APIInterface

type APIInterface struct {
	Name    string `json:"name"`
	Methods []struct {
		Name       string `json:"name"`
		Version    int    `json:"version"`
		HTTPmethod string `json:"httpmethod"`
		Parameters []struct {
			Name        string `json:"name"`
			Type        string `json:"type"`
			Optional    bool   `json:"optional"`
			Description string `json:"description"`
		} `json:"parameters"`
	} `json:"methods"`
}

type APIInterfaces

type APIInterfaces struct {
	Interfaces []APIInterface `json:"interfaces"`
}

type Alias

type Alias struct {
	Alias string `json:"newname"`
	Time  string `json:"timechanged"`
}

type AppDetails

type AppDetails struct {
	Success bool `json:"success"`
	Data    *struct {
		Type                string        `json:"type"`
		Name                string        `json:"name"`
		AppID               int           `json:"steam_appid"`
		RequiredAge         unmarshal.Int `json:"required_age"`
		IsFree              bool          `json:"is_free"`
		DLC                 []int         `json:"dlc"`
		ControllerSupport   string        `json:"controller_support"`
		DetailedDescription string        `json:"detailed_description"`
		AboutTheGame        string        `json:"about_the_game"`
		ShortDescription    string        `json:"short_description"`
		Fullgame            struct {
			AppID unmarshal.Int `json:"appid"`
			Name  string        `json:"name"`
		} `json:"fullgame"`
		SupportedLanguages string `json:"supported_languages"`
		Reviews            string `json:"reviews"`
		HeaderImage        string `json:"header_image"`
		Website            string `json:"website"`
		PcRequirements     struct {
			Minimum     string `json:"minimum"`
			Recommended string `json:"recommended"`
		} `json:"pc_requirements"`
		MacRequirements struct {
			Minimum     string `json:"minimum"`
			Recommended string `json:"recommended"`
		} `json:"mac_requirements"`
		LinuxRequirements struct {
			Minimum     string `json:"minimum"`
			Recommended string `json:"recommended"`
		} `json:"linux_requirements"`
		LegalNotice          string   `json:"legal_notice"`
		ExtUserAccountNotice string   `json:"ext_user_account_notice"`
		DRMNotice            string   `json:"drm_notice"`
		Developers           []string `json:"developers"`
		Publishers           []string `json:"publishers"`
		Demos                []struct {
			AppID       unmarshal.Int `json:"appid"`
			Description string        `json:"description"`
		} `json:"demos"`
		PriceOverview *struct {
			Currency         CurrencyCode `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"`
			RecurringSub     interface{}  `json:"recurring_sub"` // Either "false" or a sub id int
			RecurringSubDesc string       `json:"recurring_sub_desc"`
		} `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             unmarshal.String `json:"display_type"`
			IsRecurringSubscription unmarshal.Bool   `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        unmarshal.Bool `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 int8   `json:"score"`
			URL   string `json:"url"`
		} `json:"metacritic"`
		Categories  AppDetailsCategory `json:"categories"`
		Genres      AppDetailsGenre    `json:"genres"`
		Screenshots []struct {
			ID            int    `json:"id"`
			PathThumbnail string `json:"path_thumbnail"`
			PathFull      string `json:"path_full"`
		} `json:"screenshots"`
		Movies []struct {
			ID        int    `json:"id"`
			Name      string `json:"name"`
			Thumbnail string `json:"thumbnail"`
			Webm      struct {
				Num480 string `json:"480"`
				Max    string `json:"max"`
			} `json:"webm"`
			Highlight bool `json:"highlight"`
		} `json:"movies"`
		Recommendations struct {
			Total int `json:"total"`
		} `json:"recommendations"`
		Achievements struct {
			Total       int `json:"total"`
			Highlighted []struct {
				Name string `json:"name"`
				Path string `json:"path"`
			} `json:"highlighted"`
		} `json:"achievements"`
		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"`
		ContentDescriptors struct {
			IDs   interface{}
			Notes interface{}
		} `json:"content_descriptors"`
	} `json:"data"`
}

type AppDetailsCategory

type AppDetailsCategory []struct {
	ID          int8   `json:"id"`
	Description string `json:"description"`
}

func (AppDetailsCategory) IDs

func (c AppDetailsCategory) IDs() (IDs []int)

func (AppDetailsCategory) Names

func (c AppDetailsCategory) Names() (names []string)

type AppDetailsGenre

type AppDetailsGenre []struct {
	ID          unmarshal.Int `json:"id"`
	Description string        `json:"description"`
}

func (AppDetailsGenre) IDs

func (g AppDetailsGenre) IDs() (IDs []int)

func (AppDetailsGenre) Names

func (g AppDetailsGenre) Names() (names []string)

type AppList

type AppList struct {
	Apps []struct {
		AppID             int    `json:"appid"`
		Name              string `json:"name"`
		LastModified      int64  `json:"last_modified"`
		PriceChangeNumber int    `json:"price_change_number"`
	} `json:"apps"`
	HaveMoreResults bool `json:"have_more_results"`
	LastAppID       int  `json:"last_appid"`
}

type AppListResponse

type AppListResponse struct {
	AppListResponseInner AppList `json:"response"`
}

type BadgeResponse

type BadgeResponse struct {
	AppID           int             `json:"appid"`
	BadgeID         int             `json:"badgeid"`
	BorderColor     unmarshal.Bool  `json:"border_color"`
	CommunityItemID unmarshal.Int64 `json:"communityitemid"`
	CompletionTime  int64           `json:"completion_time"`
	Level           int             `json:"level"`
	Scarcity        int             `json:"scarcity"`
	XP              int             `json:"xp"`
}

type BadgesInfo

type BadgesInfo struct {
	Badges                     []BadgeResponse `json:"badges"`
	PlayerXP                   int             `json:"player_xp"`
	PlayerLevel                int             `json:"player_level"`
	PlayerXPNeededToLevelUp    int             `json:"player_xp_needed_to_level_up"`
	PlayerXPNeededCurrentLevel int             `json:"player_xp_needed_current_level"`
}

func (BadgesInfo) GetPercentOfLevel

func (b BadgesInfo) GetPercentOfLevel() int

type BadgesResponse

type BadgesResponse struct {
	Response BadgesInfo `json:"response"`
}

type Client

type Client struct {
	// contains filtered or unexported fields
}

func NewClient

func NewClient() *Client

func (Client) GetAliases

func (c Client) GetAliases(playerID int64) (resp []Alias, b []byte, err error)

func (Client) GetAppDetails

func (c Client) GetAppDetails(id uint, cc ProductCC, language LanguageCode, filters []string) (app AppDetails, err error)

func (Client) GetAppDetailsMulti

func (c Client) GetAppDetailsMulti(ids []uint, cc ProductCC, language LanguageCode, filters []string) (resp map[string]AppDetails, err error)

func (Client) GetAppList

func (c Client) GetAppList(limit int, offset int, afterDate int64, language LanguageCode) (apps AppList, err error)

func (Client) GetBadges

func (c Client) GetBadges(playerID int64) (badges BadgesInfo, err error)

Gets badges that are owned by a specific user

func (Client) GetComments

func (c Client) GetComments(playerID int64, limit int, offset int) (resp Comments, b []byte, err error)

func (Client) GetFriendList

func (c Client) GetFriendList(playerID int64) (friends []Friend, err error)

func (Client) GetGlobalAchievementPercentagesForApp

func (c Client) GetGlobalAchievementPercentagesForApp(appID int) (percentages GlobalAchievementPercentages, err error)

Retrieves the global achievement percentages for the specified app.

func (Client) GetGroup

func (c Client) GetGroup(id string, vanityURL string, page int) (resp GroupInfo, b []byte, err error)

Rate limited to once per minute

func (Client) GetInventory

func (c Client) GetInventory(playerID int64, appID int) (resp CommunityInventory, b []byte, err error)

func (Client) GetItemDefArchive

func (c Client) GetItemDefArchive(appID int, digest string) (archives []ItemDefArchive, err error)

func (Client) GetItemDefMeta

func (c Client) GetItemDefMeta(appID int) (meta ItemDefMeta, err error)

func (Client) GetMarketSearch

func (c Client) GetMarketSearch(payload MarketSearchPayload) (resp MarketSearch, b []byte, err error)

func (Client) GetNews

func (c Client) GetNews(appID int, limit int) (articles News, err error)

func (Client) GetNumberOfCurrentPlayers

func (c Client) GetNumberOfCurrentPlayers(appID int) (players int, err error)

Gets the total number of players currently active in the specified app on Steam.

func (Client) GetOwnedGames

func (c Client) GetOwnedGames(playerID int64) (games OwnedGames, err error)

Return a list of games owned by the player

func (Client) GetPackageDetails

func (c Client) GetPackageDetails(id uint, code ProductCC, language LanguageCode) (pack PackageDetailsBody, err error)

func (Client) GetPlayer

func (c Client) GetPlayer(playerID int64) (player PlayerSummary, err error)

func (Client) GetPlayerAchievements

func (c Client) GetPlayerAchievements(playerID uint64, appID uint32) (schema PlayerAchievementsResponse, err error)

func (Client) GetPlayerBans

func (c Client) GetPlayerBans(playerID int64) (bans GetPlayerBanResponse, err error)

func (Client) GetRecentlyPlayedGames

func (c Client) GetRecentlyPlayedGames(playerID int64) (games []RecentlyPlayedGame, err error)

Gets information about a player's recently played games

func (Client) GetReviews

func (c Client) GetReviews(appID int, language LanguageCode) (reviews ReviewsResponse, err error)

func (Client) GetSchemaForGame

func (c Client) GetSchemaForGame(appID int) (schema SchemaForGame, err error)

Gets the complete list of stats and achievements for the specified game.

func (Client) GetSteamLevel

func (c Client) GetSteamLevel(playerID int64) (level int, err error)

Returns the Steam Level of a user

func (Client) GetSupportedAPIList

func (c Client) GetSupportedAPIList() (percentages APIInterfaces, err error)

Gets the list of supported API calls. This is used to build this documentation.

func (Client) GetTags

func (c Client) GetTags() (tags Tags, err error)

func (Client) GetUserGroupList

func (c Client) GetUserGroupList(playerID int64) (groups UserGroupList, err error)

func (Client) GetWishlist

func (c Client) GetWishlist(playerID int64) (wishlist Wishlist, err error)

func (Client) ResolveVanityURL

func (c Client) ResolveVanityURL(vanityURL string, urlType int) (info VanityURL, err error)

func (*Client) SetAPIRateLimit

func (c *Client) SetAPIRateLimit(duration time.Duration, burst int64)

func (*Client) SetCommunityRateLimit

func (c *Client) SetCommunityRateLimit(duration time.Duration, burst int64)

func (*Client) SetKey

func (c *Client) SetKey(key string)

func (*Client) SetLogger

func (c *Client) SetLogger(logger logger)

func (*Client) SetStoreRateLimit

func (c *Client) SetStoreRateLimit(duration time.Duration, burst int64)

func (*Client) SetTimeout

func (c *Client) SetTimeout(timeout time.Duration)

func (*Client) SetUserAgent

func (c *Client) SetUserAgent(userAgent string)

type Comments

type Comments struct {
	Success      bool          `json:"success"`
	Name         string        `json:"name"`
	Start        int           `json:"start"`
	PageSize     unmarshal.Int `json:"pagesize"`
	TotalCount   int           `json:"total_count"`
	Upvotes      int           `json:"upvotes"`
	HasUpvoted   int           `json:"has_upvoted"`
	CommentsHTML string        `json:"comments_html"`
	TimeLastPost int64         `json:"timelastpost"`
}

type CommunityInventory

type CommunityInventory struct {
	Success     bool `json:"success"`
	RgInventory map[string]struct {
		ID         string `json:"id"`
		Classid    string `json:"classid"`
		Instanceid string `json:"instanceid"`
		Amount     string `json:"amount"`
		Pos        int    `json:"pos"`
	} `json:"rgInventory"`
	RgCurrency     []interface{} `json:"rgCurrency"`
	RgDescriptions map[string]struct {
		Appid                       string `json:"appid"`
		Classid                     string `json:"classid"`
		Instanceid                  string `json:"instanceid"`
		IconURL                     string `json:"icon_url"`
		IconURLLarge                string `json:"icon_url_large"`
		IconDragURL                 string `json:"icon_drag_url"`
		Name                        string `json:"name"`
		MarketHashName              string `json:"market_hash_name"`
		MarketName                  string `json:"market_name"`
		NameColor                   string `json:"name_color"`
		BackgroundColor             string `json:"background_color"`
		Type                        string `json:"type"`
		Tradable                    int    `json:"tradable"`
		Marketable                  int    `json:"marketable"`
		Commodity                   int    `json:"commodity"`
		MarketTradableRestriction   string `json:"market_tradable_restriction"`
		MarketMarketableRestriction string `json:"market_marketable_restriction"`
		Descriptions                []struct {
			Value   string `json:"value"`
			Color   string `json:"color"`
			AppData struct {
				DefIndex string `json:"def_index"`
			} `json:"app_data"`
		} `json:"descriptions"`
		Actions []struct {
			Name string `json:"name"`
			Link string `json:"link"`
		} `json:"actions"`
		MarketActions []struct {
			Name string `json:"name"`
			Link string `json:"link"`
		} `json:"market_actions"`
		Tags []struct {
			InternalName string `json:"internal_name"`
			Name         string `json:"name"`
			Category     string `json:"category"`
			Color        string `json:"color"`
			CategoryName string `json:"category_name"`
		} `json:"tags"`
		AppData struct {
			DefIndex string `json:"def_index"`
			Quality  string `json:"quality"`
		} `json:"app_data"`
	} `json:"rgDescriptions"`
	More      bool `json:"more"`
	MoreStart bool `json:"more_start"`
}

type Currency

type Currency struct {
	CurrencyCode CurrencyCode
	Description  string
}

type CurrencyCode

type CurrencyCode string

https://partner.steamgames.com/doc/store/pricing/currencies

const (
	CurrencyAED CurrencyCode = "AED"
	CurrencyARS CurrencyCode = "ARS"
	CurrencyAUD CurrencyCode = "AUD"
	CurrencyBRL CurrencyCode = "BRL"
	CurrencyCAD CurrencyCode = "CAD"
	CurrencyCHF CurrencyCode = "CHF"
	CurrencyCLP CurrencyCode = "CLP"
	CurrencyCNY CurrencyCode = "CNY"
	CurrencyCOP CurrencyCode = "COP"
	CurrencyCRC CurrencyCode = "CRC"
	CurrencyEUR CurrencyCode = "EUR"
	CurrencyGBP CurrencyCode = "GBP"
	CurrencyHKD CurrencyCode = "HKD"
	CurrencyILS CurrencyCode = "ILS"
	CurrencyIDR CurrencyCode = "IDR"
	CurrencyINR CurrencyCode = "INR"
	CurrencyJPY CurrencyCode = "JPY"
	CurrencyKRW CurrencyCode = "KRW"
	CurrencyKWD CurrencyCode = "KWD"
	CurrencyKZT CurrencyCode = "KZT"
	CurrencyMXN CurrencyCode = "MXN"
	CurrencyMYR CurrencyCode = "MYR"
	CurrencyNOK CurrencyCode = "NOK"
	CurrencyNZD CurrencyCode = "NZD"
	CurrencyPEN CurrencyCode = "PEN"
	CurrencyPHP CurrencyCode = "PHP"
	CurrencyPLN CurrencyCode = "PLN"
	CurrencyQAR CurrencyCode = "QAR"
	CurrencyRUB CurrencyCode = "RUB"
	CurrencySAR CurrencyCode = "SAR"
	CurrencySGD CurrencyCode = "SGD"
	CurrencyTHB CurrencyCode = "THB"
	CurrencyTRY CurrencyCode = "TRY"
	CurrencyTWD CurrencyCode = "TWD"
	CurrencyUAH CurrencyCode = "UAH"
	CurrencyUSD CurrencyCode = "USD"
	CurrencyUYU CurrencyCode = "UYU"
	CurrencyVND CurrencyCode = "VND"
	CurrencyZAR CurrencyCode = "ZAR"
)

type DefaultLogger

type DefaultLogger struct {
}

func (DefaultLogger) Err

func (l DefaultLogger) Err(err error)

func (DefaultLogger) Info

func (l DefaultLogger) Info(s string)

type Error

type Error struct {
	Err  string
	Code int
	URL  string
}

func (Error) Error

func (e Error) Error() string

type Friend

type Friend struct {
	SteamID      unmarshal.Int64 `json:"steamid"`
	Relationship string          `json:"relationship"`
	FriendSince  int64           `json:"friend_since"`
}

type FriendListResponse

type FriendListResponse struct {
	Friendslist FriendsList `json:"friendslist"`
}

type FriendsList

type FriendsList struct {
	Friends []Friend `json:"friends"`
}

type GetPlayerBanResponse

type GetPlayerBanResponse struct {
	SteamID          unmarshal.Int64 `json:"SteamId"`
	CommunityBanned  bool            `json:"CommunityBanned"`
	VACBanned        bool            `json:"VACBanned"`
	NumberOfVACBans  int             `json:"NumberOfVACBans"`
	DaysSinceLastBan int             `json:"DaysSinceLastBan"`
	NumberOfGameBans int             `json:"NumberOfGameBans"`
	EconomyBan       string          `json:"EconomyBan"`
}

type GetPlayerBansResponse

type GetPlayerBansResponse struct {
	Players []GetPlayerBanResponse `json:"players"`
}

type GlobalAchievementAchievement

type GlobalAchievementAchievement struct {
	Name    string  `json:"name"`
	Percent float64 `json:"percent"`
}

type GlobalAchievementPercentages

type GlobalAchievementPercentages struct {
	GlobalAchievementPercentage []GlobalAchievementAchievement `json:"achievements"`
}

func (GlobalAchievementPercentages) GetMap

type GlobalAchievementPercentagesResponse

type GlobalAchievementPercentagesResponse struct {
	GlobalAchievementPercentagesOuter GlobalAchievementPercentages `json:"achievementpercentages"`
}

type GroupInfo

type GroupInfo struct {
	Type    string   `xml:"-"` // Not in Steam response
	XMLName xml.Name `xml:"memberList"`
	Text    string   `xml:",chardata"`
	ID64    string   `xml:"groupID64"` // Too big for int64
	Details struct {
		Text          string        `xml:",chardata"`
		Name          string        `xml:"groupName"`
		URL           string        `xml:"groupURL"`
		Headline      string        `xml:"headline"`
		Summary       string        `xml:"summary"`
		AvatarIcon    string        `xml:"avatarIcon"`
		AvatarMedium  string        `xml:"avatarMedium"`
		AvatarFull    string        `xml:"avatarFull"`
		MemberCount   unmarshal.Int `xml:"memberCount"`
		MembersInChat unmarshal.Int `xml:"membersInChat"`
		MembersInGame unmarshal.Int `xml:"membersInGame"`
		MembersOnline unmarshal.Int `xml:"membersOnline"`
	} `xml:"groupDetails"`
	MemberCount      unmarshal.Int `xml:"memberCount"`
	TotalPages       unmarshal.Int `xml:"totalPages"`
	CurrentPage      unmarshal.Int `xml:"currentPage"`
	StartingMember   unmarshal.Int `xml:"startingMember"`
	NextPageLink     string        `xml:"nextPageLink"`
	PreviousPageLink string        `xml:"previousPageLink"`
	Members          struct {
		Text      string            `xml:",chardata"`
		SteamID64 []unmarshal.Int64 `xml:"steamID64"`
	} `xml:"members"`
}

type ItemDefArchive

type ItemDefArchive struct {
	AppID            unmarshal.Int    `json:"appid"`
	Bundle           string           `json:"bundle"`
	Commodity        unmarshal.Bool   `json:"commodity"`
	DateCreated      string           `json:"date_created"` // Can't be time.Time, - "20161010T080316Z"
	Description      string           `json:"description"`
	DisplayType      string           `json:"display_type"`
	DropInterval     unmarshal.Int    `json:"drop_interval"`
	DropMaxPerWindow unmarshal.Int    `json:"drop_max_per_window"`
	Exchange         string           `json:"exchange"`
	Hash             string           `json:"hash"`
	IconURL          string           `json:"icon_url"`
	IconURLLarge     string           `json:"icon_url_large"`
	ItemDefID        unmarshal.Int    `json:"itemdefid"`
	ItemQuality      unmarshal.String `json:"item_quality"` // Can be bool
	Marketable       unmarshal.Bool   `json:"marketable"`
	Modified         string           `json:"modified"` // Can't be time.Time, - "20161010T080316Z"
	Name             string           `json:"name"`
	Price            string           `json:"price"`
	Promo            string           `json:"promo"`
	Quantity         unmarshal.Int    `json:"quantity"` // Can be 0 or "0"
	Tags             string           `json:"tags"`
	Timestamp        string           `json:"Timestamp"` // Can't be time.Time, - ""
	Tradable         unmarshal.Bool   `json:"tradable"`  // Can be false or "false"
	Type             string           `json:"type"`
	WorkshopID       unmarshal.Int64  `json:"workshopid"`
}

type ItemDefMeta

type ItemDefMeta struct {
	Response struct {
		Modified int64  `json:"modified"`
		Digest   string `json:"digest"`
	} `json:"response"`
}

type Language

type Language struct {
	EnglishName        string
	NativeName         string
	LanguageCode       LanguageCode
	WebAPILanguageCode LanguageCodeWeb
}

type LanguageCode

type LanguageCode string

https://partner.steamgames.com/doc/store/localization

const (
	LanguageArabic              LanguageCode = "arabic"
	LanguageBulgarian           LanguageCode = "bulgarian"
	LanguageChineseSimplified   LanguageCode = "schinese"
	LanguageChineseTraditional  LanguageCode = "tchinese"
	LanguageCzech               LanguageCode = "czech"
	LanguageDanish              LanguageCode = "danish"
	LanguageDutch               LanguageCode = "dutch"
	LanguageEnglish             LanguageCode = "english"
	LanguageFinnish             LanguageCode = "finnish"
	LanguageFrench              LanguageCode = "french"
	LanguageGerman              LanguageCode = "german"
	LanguageGreek               LanguageCode = "greek"
	LanguageHungarian           LanguageCode = "hungarian"
	LanguageItalian             LanguageCode = "italian"
	LanguageJapanese            LanguageCode = "japanese"
	LanguageKorean              LanguageCode = "koreana"
	LanguageNorwegian           LanguageCode = "norwegian"
	LanguagePolish              LanguageCode = "polish"
	LanguagePortuguese          LanguageCode = "portuguese"
	LanguagePortugueseBrazil    LanguageCode = "brazilian"
	LanguageRomanian            LanguageCode = "romanian"
	LanguageRussian             LanguageCode = "russian"
	LanguageSpanishSpain        LanguageCode = "spanish"
	LanguageSpanishLatinAmerica LanguageCode = "latam"
	LanguageSwedish             LanguageCode = "swedish"
	LanguageThai                LanguageCode = "thai"
	LanguageTurkish             LanguageCode = "turkish"
	LanguageUkrainian           LanguageCode = "ukrainian"
	LanguageVietnamese          LanguageCode = "vietnamese"
)

func (LanguageCode) Title

func (lc LanguageCode) Title() string

type LanguageCodeWeb

type LanguageCodeWeb string
const (
	LanguageWebAR    LanguageCodeWeb = "ar"
	LanguageWebBG    LanguageCodeWeb = "bg"
	LanguageWebZHCN  LanguageCodeWeb = "zh-CN"
	LanguageWebZHTW  LanguageCodeWeb = "zh-TW"
	LanguageWebCS    LanguageCodeWeb = "cs"
	LanguageWebDA    LanguageCodeWeb = "da"
	LanguageWebNL    LanguageCodeWeb = "nl"
	LanguageWebEN    LanguageCodeWeb = "en"
	LanguageWebFI    LanguageCodeWeb = "fi"
	LanguageWebFR    LanguageCodeWeb = "fr"
	LanguageWebDE    LanguageCodeWeb = "de"
	LanguageWebEL    LanguageCodeWeb = "el"
	LanguageWebHU    LanguageCodeWeb = "hu"
	LanguageWebIT    LanguageCodeWeb = "it"
	LanguageWebJA    LanguageCodeWeb = "ja"
	LanguageWebKO    LanguageCodeWeb = "ko"
	LanguageWebNO    LanguageCodeWeb = "no"
	LanguageWebPL    LanguageCodeWeb = "pl"
	LanguageWebPT    LanguageCodeWeb = "pt"
	LanguageWebPTBR  LanguageCodeWeb = "pt-BR"
	LanguageWebRO    LanguageCodeWeb = "ro"
	LanguageWebRU    LanguageCodeWeb = "ru"
	LanguageWebES    LanguageCodeWeb = "es"
	LanguageWebES419 LanguageCodeWeb = "es-419"
	LanguageWebSV    LanguageCodeWeb = "sv"
	LanguageWebTH    LanguageCodeWeb = "th"
	LanguageWebTR    LanguageCodeWeb = "tr"
	LanguageWebUK    LanguageCodeWeb = "uk"
	LanguageWebVN    LanguageCodeWeb = "vn"
)

type LevelResponse

type LevelResponse struct {
	Response struct {
		PlayerLevel int `json:"player_level"`
	} `json:"response"`
}

type MarketSearch

type MarketSearch struct {
	Success    bool `json:"success"`
	Start      int  `json:"start"`
	Pagesize   int  `json:"pagesize"`
	TotalCount int  `json:"total_count"`
	Searchdata struct {
		Query              string `json:"query"`
		SearchDescriptions bool   `json:"search_descriptions"`
		TotalCount         int    `json:"total_count"`
		Pagesize           int    `json:"pagesize"`
		Prefix             string `json:"prefix"`
		ClassPrefix        string `json:"class_prefix"`
	} `json:"searchdata"`
	Results []struct {
		Name             string `json:"name"`
		HashName         string `json:"hash_name"`
		SellListings     int    `json:"sell_listings"`
		SellPrice        int    `json:"sell_price"`
		SellPriceText    string `json:"sell_price_text"`
		AppIcon          string `json:"app_icon"`
		AppName          string `json:"app_name"`
		AssetDescription struct {
			Appid                       int    `json:"appid"`
			Classid                     string `json:"classid"`
			Instanceid                  string `json:"instanceid"`
			Currency                    int    `json:"currency"`
			BackgroundColor             string `json:"background_color"`
			IconURL                     string `json:"icon_url"`
			IconURLLarge                string `json:"icon_url_large"`
			Tradable                    int    `json:"tradable"`
			Name                        string `json:"name"`
			Type                        string `json:"type"`
			MarketName                  string `json:"market_name"`
			MarketHashName              string `json:"market_hash_name"`
			Commodity                   int    `json:"commodity"`
			MarketTradableRestriction   int    `json:"market_tradable_restriction"`
			MarketMarketableRestriction int    `json:"market_marketable_restriction"`
			Marketable                  int    `json:"marketable"`
		} `json:"asset_description"`
		SalePriceText string `json:"sale_price_text"`
	} `json:"results"`
}

type MarketSearchPayload

type MarketSearchPayload struct {
	FriendlyDescriptions bool
	SortColumn           string
	SortOrder            bool
	AppID                int
	Limit                int
	Offset               int
}

type News

type News struct {
	AppID int `json:"appid"`
	Items []struct {
		GID           unmarshal.Int64 `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         int             `json:"appid"`
	} `json:"newsitems"`
	Count int `json:"count"`
}

type NewsResponse

type NewsResponse struct {
	App News `json:"appnews"`
}

type NumberOfCurrentPlayersResponse

type NumberOfCurrentPlayersResponse struct {
	Response struct {
		PlayerCount int `json:"player_count"`
		Result      int `json:"result"`
	} `json:"response"`
}

type OwnedGames

type OwnedGames struct {
	GameCount int `json:"game_count"`
	Games     []struct {
		AppID                    int    `json:"appid"`
		Name                     string `json:"name"`
		PlaytimeForever          int    `json:"playtime_forever"`
		PlaytimeWindows          int    `json:"playtime_windows_forever"`
		PlaytimeMac              int    `json:"playtime_mac_forever"`
		PlaytimeLinux            int    `json:"playtime_linux_forever"`
		ImgIconURL               string `json:"img_icon_url"`
		ImgLogoURL               string `json:"img_logo_url"`
		HasCommunityVisibleStats bool   `json:"has_community_visible_stats"`
	} `json:"games"`
}

type OwnedGamesResponse

type OwnedGamesResponse struct {
	Response OwnedGames `json:"response"`
}

type PackageDetailsBody

type PackageDetailsBody struct {
	Success bool `json:"success"`
	Data    struct {
		Name        string `json:"name"`
		PageImage   string `json:"page_image"`
		HeaderImage string `json:"header_image"`
		SmallLogo   string `json:"small_logo"`
		Apps        []struct {
			ID   int    `json:"id"`
			Name string `json:"name"`
		} `json:"apps"`
		Price struct {
			Currency        CurrencyCode `json:"currency"`
			Initial         int          `json:"initial"`
			Final           int          `json:"final"`
			DiscountPercent int          `json:"discount_percent"`
			Individual      int          `json:"individual"`
		} `json:"price"`
		Platforms struct {
			Windows bool `json:"windows"`
			Mac     bool `json:"mac"`
			Linux   bool `json:"linux"`
		} `json:"platforms"`
		Controller  map[string]bool `json:"controller"`
		ReleaseDate struct {
			ComingSoon bool   `json:"coming_soon"`
			Date       string `json:"date"`
		} `json:"release_date"`
	} `json:"data"`
}

type PlayerAchievementsOuterResponse

type PlayerAchievementsOuterResponse struct {
	Playerstats PlayerAchievementsResponse `json:"playerstats"`
}

type PlayerAchievementsResponse

type PlayerAchievementsResponse struct {
	SteamID      unmarshal.Int64 `json:"steamID"`
	GameName     string          `json:"gameName"`
	Achievements []struct {
		APIName     string         `json:"apiname"`
		Achieved    unmarshal.Bool `json:"achieved"`
		UnlockTime  int64          `json:"unlocktime"`
		Name        string         `json:"name"`
		Description string         `json:"description"`
	} `json:"achievements"`
	Error   string `json:"error"`
	Success bool   `json:"success"`
}

type PlayerResponse

type PlayerResponse struct {
	Response struct {
		Players []PlayerSummary `json:"players"`
	} `json:"response"`
}

type PlayerSummary

type PlayerSummary struct {
	SteamID                  unmarshal.Int64 `json:"steamid"`
	CommunityVisibilityState int             `json:"communityvisibilitystate"`
	ProfileState             int             `json:"profilestate"`
	PersonaName              string          `json:"personaname"`
	LastLogOff               int64           `json:"lastlogoff"`
	CommentPermission        int             `json:"commentpermission"`
	ProfileURL               string          `json:"profileurl"`
	Avatar                   string          `json:"avatar"`
	AvatarMedium             string          `json:"avatarmedium"`
	AvatarFull               string          `json:"avatarfull"`
	AvatarHash               string          `json:"avatarhash"`
	PersonaState             int             `json:"personastate"`
	RealName                 string          `json:"realname"`
	PrimaryClanID            string          `json:"primaryclanid"`
	TimeCreated              int64           `json:"timecreated"`
	PersonaStateFlags        int             `json:"personastateflags"`
	CountryCode              string          `json:"loccountrycode"`
	StateCode                string          `json:"locstatecode"`
	CityID                   int             `json:"loccityid"`
}

type PriceOverview

type PriceOverview struct {
	Success     bool   `json:"success"`
	LowestPrice string `json:"lowest_price"`
	Volume      string `json:"volume"`
	MedianPrice string `json:"median_price"`
}

func GetPriceOverview

func GetPriceOverview() (resp PriceOverview, b []byte, err error)

type ProductCC

type ProductCC string

Country codes to get info on apps/packages

const (
	ProductCCAE ProductCC = "ae"
	ProductCCAR ProductCC = "ar"
	ProductCCAU ProductCC = "au"
	ProductCCAZ ProductCC = "az"
	ProductCCBR ProductCC = "br"
	ProductCCCA ProductCC = "ca"
	ProductCCCH ProductCC = "ch"
	ProductCCCL ProductCC = "cl"
	ProductCCCN ProductCC = "cn"
	ProductCCCO ProductCC = "co"
	ProductCCCR ProductCC = "cr"
	ProductCCEU ProductCC = "eu"
	ProductCCHK ProductCC = "hk"
	ProductCCID ProductCC = "id"
	ProductCCIL ProductCC = "il"
	ProductCCIN ProductCC = "in"
	ProductCCJP ProductCC = "jp"
	ProductCCKR ProductCC = "kr"
	ProductCCKW ProductCC = "kw"
	ProductCCKZ ProductCC = "kz"
	ProductCCMX ProductCC = "mx"
	ProductCCMY ProductCC = "my"
	ProductCCNO ProductCC = "no"
	ProductCCNZ ProductCC = "nz"
	ProductCCPE ProductCC = "pe"
	ProductCCPH ProductCC = "ph"
	ProductCCPK ProductCC = "pk"
	ProductCCPL ProductCC = "pl"
	ProductCCQA ProductCC = "qa"
	ProductCCRU ProductCC = "ru"
	ProductCCSA ProductCC = "sa"
	ProductCCSG ProductCC = "sg"
	ProductCCTH ProductCC = "th"
	ProductCCTR ProductCC = "tr"
	ProductCCTW ProductCC = "tw"
	ProductCCUA ProductCC = "ua"
	ProductCCUK ProductCC = "uk"
	ProductCCUS ProductCC = "us"
	ProductCCUY ProductCC = "uy"
	ProductCCVN ProductCC = "vn"
	ProductCCZA ProductCC = "za"
)

type RecentlyPlayedGame

type RecentlyPlayedGame struct {
	AppID           int    `json:"appid"`
	Name            string `json:"name"`
	PlayTime2Weeks  int    `json:"playtime_2weeks"`
	PlayTimeForever int    `json:"playtime_forever"`
	ImgIconURL      string `json:"img_icon_url"`
	ImgLogoURL      string `json:"img_logo_url"`
	WindowsForever  int    `json:"playtime_windows_forever"`
	MacForever      int    `json:"playtime_mac_forever"`
	LinuxForever    int    `json:"playtime_linux_forever"`
}

type RecentlyPlayedGames

type RecentlyPlayedGames struct {
	TotalCount int                  `json:"total_count"`
	Games      []RecentlyPlayedGame `json:"games"`
}

type RecentlyPlayedGamesResponse

type RecentlyPlayedGamesResponse struct {
	Response RecentlyPlayedGames `json:"response"`
}

type ReviewsResponse

type ReviewsResponse struct {
	Success      int `json:"success"`
	QuerySummary struct {
		NumReviews      int     `json:"num_reviews"`
		ReviewScore     float64 `json:"review_score"`
		ReviewScoreDesc string  `json:"review_score_desc"`
		TotalPositive   int     `json:"total_positive"`
		TotalNegative   int     `json:"total_negative"`
		TotalReviews    int     `json:"total_reviews"`
	} `json:"query_summary"`
	Reviews []struct {
		Recommendationid string `json:"recommendationid"`
		Author           struct {
			SteamID              unmarshal.Int64 `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"`
			LastPlayed           int             `json:"last_played"`
		} `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"`
		WeightedVoteScore        unmarshal.Float64 `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"`
	} `json:"reviews"`
}

func (ReviewsResponse) GetNegativePercent

func (r ReviewsResponse) GetNegativePercent() float64

func (ReviewsResponse) GetPositivePercent

func (r ReviewsResponse) GetPositivePercent() float64

type SchemaForGame

type SchemaForGame struct {
	Name               string `json:"gameName"`
	Version            string `json:"gameVersion"`
	AvailableGameStats struct {
		Stats        []SchemaForGameStat        `json:"stats"`
		Achievements []SchemaForGameAchievement `json:"achievements"`
	} `json:"availableGameStats"`
}

type SchemaForGameAchievement

type SchemaForGameAchievement struct {
	Name         string         `json:"name"`
	DefaultValue int            `json:"defaultvalue"`
	DisplayName  string         `json:"displayName"`
	Hidden       unmarshal.Bool `json:"hidden"`
	Description  string         `json:"description"`
	Icon         string         `json:"icon"`
	IconGray     string         `json:"icongray"`
}

type SchemaForGameResponse

type SchemaForGameResponse struct {
	Game SchemaForGame `json:"game"`
}

type SchemaForGameStat

type SchemaForGameStat struct {
	Name         string `json:"name"`
	DefaultValue int    `json:"defaultvalue"`
	DisplayName  string `json:"displayName"`
}

type SupportedAPIListResponse

type SupportedAPIListResponse struct {
	APIList APIInterfaces `json:"apilist"`
}

type Tag

type Tag struct {
	TagID int    `json:"tagid"`
	Name  string `json:"name"`
}

type Tags

type Tags struct {
	Tags []Tag `json:"tags"`
}

func (Tags) GetMap

func (t Tags) GetMap() (tags map[int]string)

func (Tags) GetSlice

func (t Tags) GetSlice() (ids []int)

type UserGroupList

type UserGroupList struct {
	Success bool `json:"success"`
	Groups  []struct {
		GID string `json:"gid"` // Can be over 64 bit
	} `json:"groups"`
	Error string `json:"error"`
}

func (UserGroupList) GetIDs

func (u UserGroupList) GetIDs() (ids []string)

type UserGroupListResponse

type UserGroupListResponse struct {
	Response UserGroupList `json:"response"`
}

type VanityURL

type VanityURL struct {
	SteamID unmarshal.Int64 `json:"steamid"`
	Success int8            `json:"success"`
	Message string          `json:"message"`
}

type VanityURLRepsonse

type VanityURLRepsonse struct {
	Response VanityURL
}

type Wishlist

type Wishlist struct {
	Items map[unmarshal.Int]WishlistItem
}

type WishlistFail

type WishlistFail struct {
	Success int `json:"success"`
}

type WishlistItem

type WishlistItem struct {
	Name           string          `json:"name"`
	Capsule        string          `json:"capsule"`
	ReviewScore    int             `json:"review_score"`
	ReviewDesc     string          `json:"review_desc"`
	ReviewsTotal   string          `json:"reviews_total"`
	ReviewsPercent int             `json:"reviews_percent"`
	ReleaseDate    unmarshal.Int64 `json:"release_date"`
	ReleaseString  string          `json:"release_string"`
	PlatformIcons  string          `json:"platform_icons"`
	Subs           []struct {
		ID            int           `json:"id"`
		DiscountBlock string        `json:"discount_block"`
		DiscountPct   int           `json:"discount_pct"`
		Price         unmarshal.Int `json:"price"`
	} `json:"subs"`
	Type        string         `json:"type"`
	Screenshots []string       `json:"screenshots"`
	ReviewCSS   string         `json:"review_css"`
	Priority    int            `json:"priority"`
	Added       int            `json:"added"`
	Background  string         `json:"background"`
	Rank        unmarshal.Int  `json:"rank"`
	Tags        []string       `json:"tags"`
	EarlyAccess int            `json:"early_access"`
	IsFreeGame  bool           `json:"is_free_game"`
	Win         unmarshal.Bool `json:"win"`
	Mac         unmarshal.Bool `json:"mac"`
	Linux       unmarshal.Bool `json:"linux"`
}

Jump to

Keyboard shortcuts

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