Sort blogroll again

This commit is contained in:
Jan-Lukas Else 2021-05-08 21:44:36 +02:00
parent 1ef34889ae
commit 026ae9469a
1 changed files with 23 additions and 0 deletions

View File

@ -4,6 +4,8 @@ import (
"fmt"
"io"
"net/http"
"sort"
"strings"
"time"
"github.com/kaorimatz/go-opml"
@ -104,12 +106,33 @@ func getBlogrollOutlines(config *configBlogroll) ([]*opml.Outline, error) {
if outline, ok := funk.Find(outlines, func(outline *opml.Outline) bool {
return outline.Title == category || outline.Text == category
}).(*opml.Outline); ok && outline != nil {
outline.Outlines = sortOutlines(outline.Outlines)
filtered = append(filtered, outline)
}
}
outlines = filtered
} else {
outlines = sortOutlines(outlines)
}
config.cachedOutlines = outlines
config.lastCache = time.Now()
return outlines, nil
}
func sortOutlines(outlines []*opml.Outline) []*opml.Outline {
sort.Slice(outlines, func(i, j int) bool {
name1 := outlines[i].Title
if name1 == "" {
name1 = outlines[i].Text
}
name2 := outlines[j].Title
if name2 == "" {
name2 = outlines[j].Text
}
return strings.ToLower(name1) < strings.ToLower(name2)
})
for _, outline := range outlines {
outline.Outlines = sortOutlines(outline.Outlines)
}
return outlines
}