show banlist by day, in weekly chunks

This commit is contained in:
Aine
2023-09-26 15:54:27 +03:00
parent 6be4891165
commit e2f5f4c731
2 changed files with 57 additions and 4 deletions

View File

@@ -134,3 +134,23 @@ func StringSlice(str string) []string {
func SanitizeStringSlice(str string) string {
return SliceString(StringSlice(str))
}
// MapKeys returns sorted keys of the map
func MapKeys[V any](data map[string]V) []string {
keys := make([]string, 0, len(data))
for k := range data {
keys = append(keys, k)
}
sort.Strings(keys)
return keys
}
// Chunks divides slice by chunks with specified size
func Chunks[T any](slice []T, chunkSize int) [][]T {
chunks := make([][]T, 0, (len(slice)+chunkSize-1)/chunkSize)
for chunkSize < len(slice) {
slice, chunks = slice[chunkSize:], append(chunks, slice[0:chunkSize:chunkSize])
}
return append(chunks, slice)
}