forked from jshiffer/matterbridge
36 lines
791 B
Go
36 lines
791 B
Go
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
|
|
}
|