fixed depth

This commit is contained in:
BroodjeAap 2022-08-29 17:49:22 +00:00
parent 07d7de60d8
commit afc2dbea08

18
main.go
View file

@ -86,29 +86,35 @@ func (web Web) viewWatch(c *gin.Context) {
filterMap[filters[i].ID] = &filters[i] filterMap[filters[i].ID] = &filters[i]
} }
queuedFilters := []*Filter{} currentLayerFilters := []*Filter{}
for i := range filters { for i := range filters {
filter := &filters[i] filter := &filters[i]
if filter.ParentID != nil { if filter.ParentID != nil {
parent := filterMap[*filter.ParentID] parent := filterMap[*filter.ParentID]
parent.Filters = append(parent.Filters, *filter) parent.Filters = append(parent.Filters, *filter)
} else { } else {
queuedFilters = append(queuedFilters, filter) currentLayerFilters = append(currentLayerFilters, filter)
} }
} }
bftFilters := []FilterDepth{} bftFilters := []FilterDepth{}
nextLayerFilters := []*Filter{}
depth := 0 depth := 0
for len(queuedFilters) > 0 { for len(nextLayerFilters) > 0 || len(currentLayerFilters) > 0 {
filter := queuedFilters[0] for len(currentLayerFilters) > 0 {
filter := currentLayerFilters[0]
bftFilters = append(bftFilters, FilterDepth{ bftFilters = append(bftFilters, FilterDepth{
Filter: filter, Filter: filter,
Depth: depth, Depth: depth,
}) })
for _, filter := range filter.Filters { for _, filter := range filter.Filters {
queuedFilters = append(queuedFilters, &filter) nextLayerFilters = append(nextLayerFilters, &filter)
} }
queuedFilters = queuedFilters[1:] currentLayerFilters = currentLayerFilters[1:]
}
depth += 1
currentLayerFilters = nextLayerFilters
nextLayerFilters = []*Filter{}
} }
/* /*
nextFilters := []*Filter{} nextFilters := []*Filter{}