added from stores

This commit is contained in:
Hazel Noack 2025-07-10 14:55:10 +02:00
parent f4bd2a69e4
commit 08d2446329
3 changed files with 53 additions and 2 deletions

View File

@ -45,3 +45,49 @@ func (f StoreFilter) Filter (stores []Store) []Store {
return result
}
type ListingFilter struct{
Limit int
IncludeIds []int
ExcludeIds []int
FromStores []int
}
func (f ListingFilter) Filter (listings []Listing) []Listing {
result := make([]Listing, 0)
if len(f.IncludeIds) > 0 {
for _, l := range listings {
if f.Limit > 0 && len(result) >= f.Limit {
break
}
if slices.Contains(f.IncludeIds, l.Id) {
result = append(result, l)
}
}
}
for _, l := range listings {
if f.Limit > 0 && len(result) >= f.Limit {
break
}
if slices.Contains(f.ExcludeIds, l.Id) || slices.Contains(f.IncludeIds, l.Id) {
continue
}
if len(f.FromStores) > 0 && !slices.Contains(f.FromStores, l.Store.Id) {
continue
}
result = append(result, l)
}
return result
}

View File

@ -17,6 +17,7 @@ type RenderingConfig struct {
SearchInputName string
StoreFilter diyhrt.StoreFilter
ListingFilter diyhrt.ListingFilter
Listings []diyhrt.Listing
Stores []diyhrt.Store
@ -44,6 +45,10 @@ func DefaultRenderingConfig() RenderingConfig {
Limit: 0,
IncludeIds: []int{7},
},
ListingFilter: diyhrt.ListingFilter{
FromStores: []int{7},
},
}
}
@ -54,6 +59,6 @@ func (rc *RenderingConfig) LoadDiyHrt(listings []diyhrt.Listing) {
existingStores[listing.Store.Id] = listing.Store
}
rc.Listings = listings
rc.Listings = rc.ListingFilter.Filter(listings)
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 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 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1