summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/Philipp15b/go-steam/tradeoffer/receipt.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/Philipp15b/go-steam/tradeoffer/receipt.go')
-rw-r--r--vendor/github.com/Philipp15b/go-steam/tradeoffer/receipt.go35
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
+}