diff options
Diffstat (limited to 'vendor/github.com/Philipp15b/go-steam/tradeoffer/receipt.go')
-rw-r--r-- | vendor/github.com/Philipp15b/go-steam/tradeoffer/receipt.go | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/vendor/github.com/Philipp15b/go-steam/tradeoffer/receipt.go b/vendor/github.com/Philipp15b/go-steam/tradeoffer/receipt.go new file mode 100644 index 00000000..3f4b556d --- /dev/null +++ b/vendor/github.com/Philipp15b/go-steam/tradeoffer/receipt.go @@ -0,0 +1,35 @@ +package tradeoffer + +import ( + "encoding/json" + "fmt" + "github.com/Philipp15b/go-steam/economy/inventory" + "regexp" +) + +type TradeReceiptItem struct { + AssetId uint64 `json:"id,string"` + AppId uint32 + ContextId uint64 + Owner uint64 `json:",string"` + Pos uint32 + inventory.Description +} + +func parseTradeReceipt(data []byte) ([]*TradeReceiptItem, error) { + reg := regexp.MustCompile("oItem =\\s+(.+?});") + itemMatches := reg.FindAllSubmatch(data, -1) + if itemMatches == nil { + return nil, fmt.Errorf("items not found\n") + } + items := make([]*TradeReceiptItem, 0, len(itemMatches)) + for _, m := range itemMatches { + item := new(TradeReceiptItem) + err := json.Unmarshal(m[1], &item) + if err != nil { + return nil, err + } + items = append(items, item) + } + return items, nil +} |