Recently added, shop sorting, and outfit cards with T5 products
CI / build (push) Successful in 34s

- The inventory's Recently Added puts T5 products added to the library in the last 30 days first.
- The shop's T5 listing follows its sort menu: Best Match ranks by name, Newest by upload date
  (oldest first ascending); ratings and prices (T5 products have neither) sort by newest.
- Outfit cards: outfit_products.php gets the outfit's community products added (not for sale),
  find_bundle.php is asked about IMVU's products only, and removing one in the card (remove_pids)
  keeps it from IMVU and forgets it in the outfit.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
dhkatzandClaude Opus 5.5 committed 2026-10-30 02:45:02 -07:00
1 parent af9158513b
commit 171e8173af
11 files changed
+463 -7

No files matched your search

+21
View File
@@ -54,6 +54,12 @@ func (p *Products) Intercept(x *proxy.Exchange) error {
} else if len(x.Body) > 0 {
return p.interceptProductInfo(x)
}
case "/api/outfit_products.php":
return p.interceptOutfitProducts(x)
case "/api/find_bundle.php":
return p.interceptFindBundle(x)
case "/api/recently_added_inventory.php":
return p.interceptRecent(x)
case "/api/shop/search_st.php":
return p.interceptShopSearch(x)
case "/api/service/shop/svc_catalog_purchase.php":
@@ -625,8 +631,20 @@ func (p *Products) interceptOutfits(x *proxy.Exchange) error {
if json.Unmarshal(x.Body, &save) != nil {
return nil
}
removed := p.outfitRemovals(save) // the outfit card's remove_pids
resave := func() error {
body, _ := json.Marshal(save)
if !p.keys.resign(x.Request.Header, x.Body, x.URL.RawQuery, body, x.URL.RawQuery) {
return errNoKey
}
x.Body = body
return nil
}
var products string
if json.Unmarshal(save["products"], &products) != nil {
if removed {
return resave()
}
return nil // not a save (e.g. set_default_outfit_id)
}
var kept []string
@@ -644,6 +662,9 @@ func (p *Products) interceptOutfits(x *proxy.Exchange) error {
kept = append(kept, f)
}
if stripped == 0 {
if removed {
return resave()
}
return nil
}
save["products"], _ = json.Marshal(strings.Join(kept, ","))