- 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:
1 parent
af9158513b
commit
171e8173af
11 files changed
+463
-7
No files matched your search
@@ -47,6 +47,7 @@ type Fetcher struct {
|
||||
|
||||
mu sync.Mutex
|
||||
library map[string]bool // the person's library, as last read
|
||||
entries []hub.LibraryEntry
|
||||
inflight map[string]bool
|
||||
failed map[string]time.Time // products that failed lately (not retried for a while)
|
||||
access string
|
||||
@@ -77,7 +78,7 @@ func (f *Fetcher) SyncLibrary(ctx context.Context) {
|
||||
ids[e.Product.ID] = true
|
||||
}
|
||||
f.mu.Lock()
|
||||
f.library = ids
|
||||
f.library, f.entries = ids, lib
|
||||
f.mu.Unlock()
|
||||
defer func() {
|
||||
if f.OnLibrary != nil {
|
||||
@@ -313,3 +314,10 @@ func (f *Fetcher) Owned(id string) bool {
|
||||
defer f.mu.Unlock()
|
||||
return f.library[id]
|
||||
}
|
||||
|
||||
// Library is the person's library, as last read.
|
||||
func (f *Fetcher) Library() []hub.LibraryEntry {
|
||||
f.mu.Lock()
|
||||
defer f.mu.Unlock()
|
||||
return append([]hub.LibraryEntry(nil), f.entries...)
|
||||
}
|
||||
Reference in new issue
Block a user