mirror of https://github.com/jlelse/GoBlog
50 lines
963 B
Go
50 lines
963 B
Go
package main
|
|
|
|
import (
|
|
"math/rand"
|
|
"sort"
|
|
"strings"
|
|
"time"
|
|
)
|
|
|
|
func urlize(str string) string {
|
|
newStr := ""
|
|
for _, c := range strings.Split(strings.ToLower(str), "") {
|
|
if c >= "a" && c <= "z" || c >= "A" && c <= "Z" || c >= "0" && c <= "9" {
|
|
newStr += c
|
|
} else if c == " " {
|
|
newStr += "-"
|
|
}
|
|
}
|
|
return newStr
|
|
}
|
|
|
|
func firstSentences(value string, count int) string {
|
|
for i := range value {
|
|
if value[i] == '.' || value[i] == '!' || value[i] == '?' {
|
|
count--
|
|
if count == 0 && i < len(value) {
|
|
return value[0 : i+1]
|
|
}
|
|
}
|
|
}
|
|
return value
|
|
}
|
|
|
|
func sortedStrings(s []string) []string {
|
|
sort.Slice(s, func(i, j int) bool {
|
|
return strings.ToLower(s[i]) < strings.ToLower(s[j])
|
|
})
|
|
return s
|
|
}
|
|
|
|
func generateRandomString(now time.Time, n int) string {
|
|
rand.Seed(now.UnixNano())
|
|
letters := []rune("abcdefghijklmnopqrstuvwxyz")
|
|
b := make([]rune, n)
|
|
for i := range b {
|
|
b[i] = letters[rand.Intn(len(letters))]
|
|
}
|
|
return string(b)
|
|
}
|