Show T5 products in the client's shop; keep float IDs and unknown paths off IMVU
CI / build (push) Successful in 34s
CI / build (push) Successful in 34s
The shop's T5 filter (maturity_rating "t5") is answered from the hub's products, fetched so they can be
shown and tried on; buying T5 products adds them to the hub library, and product.php details for
community products are answered here.
The client sends some product IDs as floats ("2000000008.0"): product.php passed the worn community
product to IMVU that way. Every ID is now read either way, and products.Guard refuses any request to
IMVU that still names a local ID given out. T5DE_PROXY_DUMP logs request and response bodies.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
6506c641f0
commit
2280ad6314
14 files changed
+785
-18
No files matched your search
@@ -11,6 +11,7 @@ package products
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"crypto/md5"
|
||||
"encoding/hex"
|
||||
"errors"
|
||||
@@ -58,10 +59,17 @@ type Products struct {
|
||||
// library, for hub products).
|
||||
OnHide func(id string)
|
||||
|
||||
// Shop, if set, searches the hub's products for the shop's T5 filter; Fetch gets one into the hub's products
|
||||
// now; AddToLibrary adds one to the person's library (buying it in the shop).
|
||||
Shop func(ctx context.Context, query string) ([]hub.Product, error)
|
||||
Fetch func(ctx context.Context, id string) error
|
||||
AddToLibrary func(ctx context.Context, id string) error
|
||||
|
||||
roomMu sync.Mutex
|
||||
room room
|
||||
|
||||
user string // the signed-in IMVU account (from the login answer), under mu
|
||||
user string // the signed-in IMVU account (from the login answer), under mu
|
||||
shopSeen map[string]hub.Product // hub products as the shop last listed them, under mu
|
||||
}
|
||||
|
||||
// Ready is told a product arrived (the fetcher wrote it): it's served from now on, and given to the client for
|
||||
|
||||
Reference in new issue
Block a user