diff options
Diffstat (limited to 'vendor/github.com/Philipp15b/go-steam/economy')
4 files changed, 0 insertions, 386 deletions
diff --git a/vendor/github.com/Philipp15b/go-steam/economy/inventory/inventory.go b/vendor/github.com/Philipp15b/go-steam/economy/inventory/inventory.go deleted file mode 100644 index 93ae9efa..00000000 --- a/vendor/github.com/Philipp15b/go-steam/economy/inventory/inventory.go +++ /dev/null @@ -1,188 +0,0 @@ -/* -Includes inventory types as used in the trade package -*/ -package inventory - -import ( - "bytes" - "encoding/json" - "fmt" - "github.com/Philipp15b/go-steam/jsont" - "strconv" -) - -type GenericInventory map[uint32]map[uint64]*Inventory - -func NewGenericInventory() GenericInventory { - iMap := make(map[uint32]map[uint64]*Inventory) - return GenericInventory(iMap) -} - -// Get inventory for specified AppId and ContextId -func (i *GenericInventory) Get(appId uint32, contextId uint64) (*Inventory, error) { - iMap := (map[uint32]map[uint64]*Inventory)(*i) - iMap2, ok := iMap[appId] - if !ok { - return nil, fmt.Errorf("inventory for specified appId not found") - } - inv, ok := iMap2[contextId] - if !ok { - return nil, fmt.Errorf("inventory for specified contextId not found") - } - return inv, nil -} - -func (i *GenericInventory) Add(appId uint32, contextId uint64, inv *Inventory) { - iMap := (map[uint32]map[uint64]*Inventory)(*i) - iMap2, ok := iMap[appId] - if !ok { - iMap2 = make(map[uint64]*Inventory) - iMap[appId] = iMap2 - } - iMap2[contextId] = inv -} - -type Inventory struct { - Items Items `json:"rgInventory"` - Currencies Currencies `json:"rgCurrency"` - Descriptions Descriptions `json:"rgDescriptions"` - AppInfo *AppInfo `json:"rgAppInfo"` -} - -// Items key is an AssetId -type Items map[string]*Item - -func (i *Items) ToMap() map[string]*Item { - return (map[string]*Item)(*i) -} - -func (i *Items) Get(assetId uint64) (*Item, error) { - iMap := (map[string]*Item)(*i) - if item, ok := iMap[strconv.FormatUint(assetId, 10)]; ok { - return item, nil - } - return nil, fmt.Errorf("item not found") -} - -func (i *Items) UnmarshalJSON(data []byte) error { - if bytes.Equal(data, []byte("[]")) { - return nil - } - return json.Unmarshal(data, (*map[string]*Item)(i)) -} - -type Currencies map[string]*Currency - -func (c *Currencies) ToMap() map[string]*Currency { - return (map[string]*Currency)(*c) -} - -func (c *Currencies) UnmarshalJSON(data []byte) error { - if bytes.Equal(data, []byte("[]")) { - return nil - } - return json.Unmarshal(data, (*map[string]*Currency)(c)) -} - -// Descriptions key format is %d_%d, first %d is ClassId, second is InstanceId -type Descriptions map[string]*Description - -func (d *Descriptions) ToMap() map[string]*Description { - return (map[string]*Description)(*d) -} - -func (d *Descriptions) Get(classId uint64, instanceId uint64) (*Description, error) { - dMap := (map[string]*Description)(*d) - descId := fmt.Sprintf("%v_%v", classId, instanceId) - if desc, ok := dMap[descId]; ok { - return desc, nil - } - return nil, fmt.Errorf("description not found") -} - -func (d *Descriptions) UnmarshalJSON(data []byte) error { - if bytes.Equal(data, []byte("[]")) { - return nil - } - return json.Unmarshal(data, (*map[string]*Description)(d)) -} - -type Item struct { - Id uint64 `json:",string"` - ClassId uint64 `json:",string"` - InstanceId uint64 `json:",string"` - Amount uint64 `json:",string"` - Pos uint32 -} - -type Currency struct { - Id uint64 `json:",string"` - ClassId uint64 `json:",string"` - IsCurrency bool `json:"is_currency"` - Pos uint32 -} - -type Description struct { - AppId uint32 `json:",string"` - ClassId uint64 `json:",string"` - InstanceId uint64 `json:",string"` - - IconUrl string `json:"icon_url"` - IconUrlLarge string `json:"icon_url_large"` - IconDragUrl string `json:"icon_drag_url"` - - Name string - MarketName string `json:"market_name"` - MarketHashName string `json:"market_hash_name"` - - // Colors in hex, for example `B2B2B2` - NameColor string `json:"name_color"` - BackgroundColor string `json:"background_color"` - - Type string - - Tradable jsont.UintBool - Marketable jsont.UintBool - Commodity jsont.UintBool - MarketTradableRestriction uint32 `json:"market_tradable_restriction,string"` - - Descriptions DescriptionLines - Actions []*Action - // Application-specific data, like "def_index" and "quality" for TF2 - AppData map[string]string - Tags []*Tag -} - -type DescriptionLines []*DescriptionLine - -func (d *DescriptionLines) UnmarshalJSON(data []byte) error { - if bytes.Equal(data, []byte(`""`)) { - return nil - } - return json.Unmarshal(data, (*[]*DescriptionLine)(d)) -} - -type DescriptionLine struct { - Value string - Type *string // Is `html` for HTML descriptions - Color *string -} - -type Action struct { - Name string - Link string -} - -type AppInfo struct { - AppId uint32 - Name string - Icon string - Link string -} - -type Tag struct { - InternalName string `json:internal_name` - Name string - Category string - CategoryName string `json:category_name` -} diff --git a/vendor/github.com/Philipp15b/go-steam/economy/inventory/inventory_apps.go b/vendor/github.com/Philipp15b/go-steam/economy/inventory/inventory_apps.go deleted file mode 100644 index b652d551..00000000 --- a/vendor/github.com/Philipp15b/go-steam/economy/inventory/inventory_apps.go +++ /dev/null @@ -1,79 +0,0 @@ -package inventory - -import ( - "encoding/json" - "fmt" - "github.com/Philipp15b/go-steam/steamid" - "io/ioutil" - "net/http" - "regexp" - "strconv" -) - -type InventoryApps map[string]*InventoryApp - -func (i *InventoryApps) Get(appId uint32) (*InventoryApp, error) { - iMap := (map[string]*InventoryApp)(*i) - if inventoryApp, ok := iMap[strconv.FormatUint(uint64(appId), 10)]; ok { - return inventoryApp, nil - } - return nil, fmt.Errorf("inventory app not found") -} - -func (i *InventoryApps) ToMap() map[string]*InventoryApp { - return (map[string]*InventoryApp)(*i) -} - -type InventoryApp struct { - AppId uint32 - Name string - Icon string - Link string - AssetCount uint32 `json:"asset_count"` - InventoryLogo string `json:"inventory_logo"` - TradePermissions string `json:"trade_permissions"` - Contexts Contexts `json:"rgContexts"` -} - -type Contexts map[string]*Context - -func (c *Contexts) Get(contextId uint64) (*Context, error) { - cMap := (map[string]*Context)(*c) - if context, ok := cMap[strconv.FormatUint(contextId, 10)]; ok { - return context, nil - } - return nil, fmt.Errorf("context not found") -} - -func (c *Contexts) ToMap() map[string]*Context { - return (map[string]*Context)(*c) -} - -type Context struct { - ContextId uint64 `json:"id,string"` - AssetCount uint32 `json:"asset_count"` - Name string -} - -func GetInventoryApps(client *http.Client, steamId steamid.SteamId) (InventoryApps, error) { - resp, err := http.Get("http://steamcommunity.com/profiles/" + steamId.ToString() + "/inventory/") - if err != nil { - return nil, err - } - defer resp.Body.Close() - respBody, err := ioutil.ReadAll(resp.Body) - if err != nil { - return nil, err - } - reg := regexp.MustCompile("var g_rgAppContextData = (.*?);") - inventoryAppsMatches := reg.FindSubmatch(respBody) - if inventoryAppsMatches == nil { - return nil, fmt.Errorf("profile inventory not found in steam response") - } - var inventoryApps InventoryApps - if err = json.Unmarshal(inventoryAppsMatches[1], &inventoryApps); err != nil { - return nil, err - } - - return inventoryApps, nil -} diff --git a/vendor/github.com/Philipp15b/go-steam/economy/inventory/own.go b/vendor/github.com/Philipp15b/go-steam/economy/inventory/own.go deleted file mode 100644 index 140b68ac..00000000 --- a/vendor/github.com/Philipp15b/go-steam/economy/inventory/own.go +++ /dev/null @@ -1,28 +0,0 @@ -package inventory - -import ( - "fmt" - "net/http" - "strconv" -) - -func GetPartialOwnInventory(client *http.Client, contextId uint64, appId uint32, start *uint) (*PartialInventory, error) { - // TODO: the "trading" parameter can be left off to return non-tradable items too - url := fmt.Sprintf("http://steamcommunity.com/my/inventory/json/%d/%d?trading=1", appId, contextId) - if start != nil { - url += "&start=" + strconv.FormatUint(uint64(*start), 10) - } - req, err := http.NewRequest("GET", url, nil) - if err != nil { - panic(err) - } - return DoInventoryRequest(client, req) -} - -func GetOwnInventory(client *http.Client, contextId uint64, appId uint32) (*Inventory, error) { - return GetFullInventory(func() (*PartialInventory, error) { - return GetPartialOwnInventory(client, contextId, appId, nil) - }, func(start uint) (*PartialInventory, error) { - return GetPartialOwnInventory(client, contextId, appId, &start) - }) -} diff --git a/vendor/github.com/Philipp15b/go-steam/economy/inventory/partial.go b/vendor/github.com/Philipp15b/go-steam/economy/inventory/partial.go deleted file mode 100644 index bcaad174..00000000 --- a/vendor/github.com/Philipp15b/go-steam/economy/inventory/partial.go +++ /dev/null @@ -1,91 +0,0 @@ -package inventory - -import ( - "bytes" - "encoding/json" - "errors" - "net/http" -) - -// A partial inventory as sent by the Steam API. -type PartialInventory struct { - Success bool - Error string - Inventory - More bool - MoreStart MoreStart `json:"more_start"` -} - -type MoreStart uint - -func (m *MoreStart) UnmarshalJSON(data []byte) error { - if bytes.Equal(data, []byte("false")) { - return nil - } - return json.Unmarshal(data, (*uint)(m)) -} - -func DoInventoryRequest(client *http.Client, req *http.Request) (*PartialInventory, error) { - resp, err := client.Do(req) - if err != nil { - return nil, err - } - defer resp.Body.Close() - - inv := new(PartialInventory) - err = json.NewDecoder(resp.Body).Decode(inv) - if err != nil { - return nil, err - } - return inv, nil -} - -func GetFullInventory(getFirst func() (*PartialInventory, error), getNext func(start uint) (*PartialInventory, error)) (*Inventory, error) { - first, err := getFirst() - if err != nil { - return nil, err - } - if !first.Success { - return nil, errors.New("GetFullInventory API call failed: " + first.Error) - } - - result := &first.Inventory - var next *PartialInventory - for latest := first; latest.More; latest = next { - next, err := getNext(uint(latest.MoreStart)) - if err != nil { - return nil, err - } - if !next.Success { - return nil, errors.New("GetFullInventory API call failed: " + next.Error) - } - - result = Merge(result, &next.Inventory) - } - - return result, nil -} - -// Merges the given Inventory into a single Inventory. -// The given slice must have at least one element. The first element of the slice is used -// and modified. -func Merge(p ...*Inventory) *Inventory { - inv := p[0] - for idx, i := range p { - if idx == 0 { - continue - } - - for key, value := range i.Items { - inv.Items[key] = value - } - for key, value := range i.Descriptions { - inv.Descriptions[key] = value - } - for key, value := range i.Currencies { - inv.Currencies[key] = value - } - } - - return inv -} |