")
wr(s.Writer, msg.String())
}
// навигация по страницам
type dlist struct {
Pages int
More bool
}
// FIXME: на некоротрых артах первая страница может вызывать полное отсутствие панели навигации.
func (s skunkyart) NavBase(c dlist) string {
// TODO: сделать понятнее
// навигация по страницам
var list strings.Builder
list.WriteString(" ")
p := s.Page
// функция для генерации ссылок
prevrev := func(msg string, page int, onpage bool) {
if !onpage {
list.WriteString(``)
list.WriteString(msg)
list.WriteString(" ")
} else {
list.WriteString(strconv.Itoa(page))
list.WriteString(" ")
}
}
// вперёд-назад
if p > 1 {
prevrev("<= Prev |", p-1, false)
} else {
p = 1
}
if c.Pages > 0 {
// назад
for x := p - 6; x < p && x > 0; x++ {
prevrev(strconv.Itoa(x), x, false)
}
// вперёд
for x := p; x <= p+6; x++ {
if x == p {
prevrev("", x, true)
x++
}
if x > p {
prevrev(strconv.Itoa(x), x, false)
}
}
}
// вперёд-назад
if c.More {
prevrev("| Next =>", p+1, false)
}
return list.String()
}
func (s skunkyart) GRUser() {
var group struct {
GR devianter.GRuser
CreationDate string
About struct {
A devianter.About
DescriptionFormatted string
Interests string
Social string
BG devianter.Deviation
}
}
if len(s.Query) < 1 {
s.httperr(400)
return
}
var g devianter.Group
g.Name = s.Query
group.GR = g.GroupFunc()
if g := group.GR; !g.Owner.Group {
for _, x := range g.Gruser.Page.Modules {
var about = group.About.A
if x.ModuleData.About.RegDate != 0 {
about = x.ModuleData.About
}
group.About.DescriptionFormatted = ParseDescription(about.Description)
for _, val := range x.ModuleData.About.Interests {
var interest strings.Builder
interest.WriteString(val.Label)
interest.WriteString(": ")
interest.WriteString(val.Value)
interest.WriteString(" ")
group.About.Interests += interest.String()
}
for _, val := range x.ModuleData.About.SocialLinks {
var social strings.Builder
social.WriteString(``)
social.WriteString(val.Value)
social.WriteString(" ")
group.About.Social += social.String()
}
if rd := x.ModuleData.About.RegDate; rd != 0 {
group.CreationDate = time.Unix(time.Now().Unix()-rd, 0).UTC().String()
}
}
} else {
}
s.exe("html/gruser.htm", &group)
}
func (s skunkyart) DeviationList(devs []devianter.Deviation, content ...dlist) string {
var list strings.Builder
list.WriteString(`
`)
for _, data := range devs {
url := devianter.UrlFromMedia(data.Media)
list.WriteString(`