package components
import (
"dk/internal/helpers/markdown"
"dk/internal/models/news"
"dk/internal/models/users"
"fmt"
"time"
)
func GenerateTownNews() string {
title := `
Latest News
`
news, err := news.Recent(1)
if err == nil && len(news) > 0 {
item := news[0]
content := fmt.Sprintf(`%s`, item.ReadableTime())
return title + content + fmt.Sprintf(`%s
`, markdown.MarkdownToHTML(item.Content))
}
return title + "No news!
"
}
func GenerateTownWhosOnline() string {
title := `Who's Online
`
onlineUsers, err := users.Online(10 * time.Minute)
if err == nil && len(onlineUsers) > 0 {
if len(onlineUsers) == 1 {
title += "There is 1 user online in the last 10 minutes:
"
} else {
title += fmt.Sprintf("There are %d users online in the last 10 minutes:
", len(onlineUsers))
}
for _, user := range onlineUsers {
title += fmt.Sprintf(`%s
`, user.Username)
}
return title
}
return title + "No one!
"
}