Compare commits

...

2 Commits

Author SHA1 Message Date
Hazel Noack
27adda431f specifically included otonoko pharmaceuticals 2025-07-10 14:11:34 +02:00
Hazel Noack
da4e11f654 added ships to 2025-07-10 13:49:16 +02:00
3 changed files with 25 additions and 21 deletions

View File

@ -1,7 +1,6 @@
package diyhrt package diyhrt
import ( import (
"fmt"
"slices" "slices"
) )
@ -10,33 +9,39 @@ type StoreFilter struct{
IncludeIds []int IncludeIds []int
ExcludeIds []int ExcludeIds []int
ShipsTo []string
} }
func (f StoreFilter) Filter (stores []Store) []Store { func (f StoreFilter) Filter (stores []Store) []Store {
result := make([]Store, 0) result := make([]Store, 0)
if len(f.IncludeIds) > 0 {
for _, s := range stores {
if f.Limit > 0 && len(result) >= f.Limit {
break
}
if slices.Contains(f.IncludeIds, s.Id) {
result = append(result, s)
}
}
}
for _, s := range stores { for _, s := range stores {
if f.Limit > 0 && len(result) >= f.Limit { if f.Limit > 0 && len(result) >= f.Limit {
break break
} }
if len(f.IncludeIds) > 0 {
if slices.Contains(f.IncludeIds, s.Id) { if slices.Contains(f.ExcludeIds, s.Id) || slices.Contains(f.IncludeIds, s.Id) {
result = append(result, s)
}
continue continue
} }
if slices.Contains(f.ExcludeIds, s.Id) {
continue
}
result = append(result, s) result = append(result, s)
} }
fmt.Println(len(result))
return result return result
} }

View File

@ -1,6 +1,9 @@
package rendering package rendering
import ( import (
"maps"
"slices"
"gitea.elara.ws/Hazel/transfem-startpage/internal/diyhrt" "gitea.elara.ws/Hazel/transfem-startpage/internal/diyhrt"
) )
@ -39,22 +42,18 @@ func DefaultRenderingConfig() RenderingConfig {
StoreFilter: diyhrt.StoreFilter{ StoreFilter: diyhrt.StoreFilter{
Limit: 4, Limit: 4,
IncludeIds: []int{7},
}, },
} }
} }
func (rc *RenderingConfig) LoadDiyHrt(listings []diyhrt.Listing) { func (rc *RenderingConfig) LoadDiyHrt(listings []diyhrt.Listing) {
existingStores := make(map[int]struct{}) existingStores := make(map[int]diyhrt.Store)
stores := make([]diyhrt.Store, 0)
for _, listing := range listings { for _, listing := range listings {
if _, ok := existingStores[listing.Store.Id]; ok { existingStores[listing.Store.Id] = listing.Store
continue
}
stores = append(stores, listing.Store)
} }
rc.Listings = listings rc.Listings = listings
rc.Stores = rc.StoreFilter.Filter(stores) rc.Stores = rc.StoreFilter.Filter(slices.Collect(maps.Values(existingStores)))
} }

View File

@ -1 +1 @@
exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1 exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1