summaryrefslogtreecommitdiff
path: root/app/wraper.go
diff options
context:
space:
mode:
authorlost+skunk <[email protected]>2024-07-04 11:26:52 +0300
committerlost+skunk <[email protected]>2024-07-04 11:26:52 +0300
commit68248094e89b6af134147668a9add429b9a6fa77 (patch)
tree10f000053b4d13613763e23f3f20ed33d25b09e2 /app/wraper.go
parented031b353078d0b58a67981de4d463c8563a20d7 (diff)
downloadskunky-art-68248094e89b6af134147668a9add429b9a6fa77.tar.gz
skunky-art-68248094e89b6af134147668a9add429b9a6fa77.tar.bz2
skunky-art-68248094e89b6af134147668a9add429b9a6fa77.zip
Галерея, папки и группы
Diffstat (limited to 'app/wraper.go')
-rw-r--r--app/wraper.go109
1 files changed, 82 insertions, 27 deletions
diff --git a/app/wraper.go b/app/wraper.go
index 2b733fd..f3f025d 100644
--- a/app/wraper.go
+++ b/app/wraper.go
@@ -1,7 +1,6 @@
package app
import (
- "fmt"
"io"
"net/http"
"net/url"
@@ -24,6 +23,8 @@ type skunkyart struct {
Templates struct {
GroupUser struct {
GR devianter.GRuser
+ Admins string
+ Group bool
CreationDate string
About struct {
@@ -37,8 +38,9 @@ type skunkyart struct {
}
Gallery struct {
- Pages int
- List string
+ Folders string
+ Pages int
+ List string
}
}
Search struct {
@@ -61,19 +63,22 @@ func (s skunkyart) GRUser() {
switch s.Type {
case 'a':
- if g := group.GR; !g.Owner.Group {
- for _, x := range g.Gruser.Page.Modules {
- switch x.Name {
- case "about":
+ g := group.GR
+ for _, x := range g.Gruser.Page.Modules {
+ switch x.Name {
+ case "about", "group_about":
+ switch g.Owner.Group {
+ case true:
+ var about = &x.ModuleData.GroupAbout
+ group.Group = true
+ group.CreationDate = x.ModuleData.GroupAbout.FoundatedAt.UTC().String()
+ group.About.DescriptionFormatted = ParseDescription(about.Description)
+ case false:
group.About.A = x.ModuleData.About
- var about = group.About.A
+ var about = &group.About.A
+ group.CreationDate = time.Unix(time.Now().Unix()-x.ModuleData.About.RegDate, 0).UTC().String()
+
group.About.DescriptionFormatted = ParseDescription(about.Description)
- group.About.Comments = s.ParseComments(devianter.CommentsFunc(
- strconv.Itoa(group.GR.Gruser.ID),
- "",
- s.Page,
- 4,
- ))
for _, val := range x.ModuleData.About.SocialLinks {
var social strings.Builder
@@ -93,25 +98,76 @@ func (s skunkyart) GRUser() {
interest.WriteString("</b><br>")
group.About.Interests += interest.String()
}
+ }
+ group.About.Comments = s.ParseComments(devianter.CommentsFunc(
+ strconv.Itoa(group.GR.Gruser.ID),
+ "",
+ s.Page,
+ 4,
+ ))
- if rd := x.ModuleData.About.RegDate; rd != 0 {
- group.CreationDate = time.Unix(time.Now().Unix()-rd, 0).UTC().String()
- }
- case "cover_deviation":
- group.About.BGMeta = x.ModuleData.CoverDeviation.Deviation
- group.About.BG = devianter.UrlFromMedia(group.About.BGMeta.Media)
+ case "cover_deviation":
+ group.About.BGMeta = x.ModuleData.CoverDeviation.Deviation
+ group.About.BG = devianter.UrlFromMedia(group.About.BGMeta.Media)
+ case "group_admins":
+ var htm strings.Builder
+ for _, z := range x.ModuleData.GroupAdmins.Results {
+ htm.WriteString(`<p><img src="`)
+ htm.WriteString("/media/")
+ htm.WriteString(z.User.Username)
+ htm.WriteString("?type=a")
+ htm.WriteString(`"><a href="`)
+ htm.WriteString("/group_user?type=about&q=")
+ htm.WriteString(z.User.Username)
+ htm.WriteString(`">`)
+ htm.WriteString(z.User.Username)
+ htm.WriteString(`</a></p>`)
}
+ group.Admins += htm.String()
}
- } else {
}
case 'g':
- gallery := g.Gallery(s.Page)
- fmt.Println(gallery)
- for _, x := range gallery.Content.Gruser.Page.Modules {
- group.Gallery.List = s.DeviationList(x.ModuleData.Folder.Deviations, dlist{
- Pages: x.ModuleData.Folder.Pages,
+ folderid, _ := strconv.Atoi(s.Args.Get("folder"))
+ if s.Page == 0 {
+ s.Page++
+ }
+
+ gallery := g.Gallery(s.Page, folderid)
+ if folderid > 0 {
+ group.Gallery.List = s.DeviationList(gallery.Content.Results, dlist{
+ More: gallery.Content.HasMore,
})
+ } else {
+ for _, x := range gallery.Content.Gruser.Page.Modules {
+ if l := len(x.ModuleData.Folders.Results); l != 0 {
+ var folders strings.Builder
+ folders.WriteString(`<h3 class="folders">Folders: `)
+ for n, x := range x.ModuleData.Folders.Results {
+ folders.WriteString(`<a href="?folder=`)
+ folders.WriteString(strconv.Itoa(x.FolderId))
+ folders.WriteString("&q=")
+ folders.WriteString(s.Query)
+ folders.WriteString("&type=")
+ folders.WriteString(string(s.Type))
+ folders.WriteString(`">`)
+ folders.WriteString(x.Name)
+ folders.WriteString(`</a>`)
+ if n+1 < l {
+ folders.WriteString(" | ")
+ }
+ }
+ folders.WriteString("</h3>")
+ group.Gallery.Folders = folders.String()
+ }
+
+ if x.Name == "folder_deviations" {
+ group.Gallery.List = s.DeviationList(x.ModuleData.Folder.Deviations, dlist{
+ Pages: x.ModuleData.Folder.Pages,
+ More: x.ModuleData.Folder.HasMore,
+ })
+ }
+ }
}
default:
s.ReturnHTTPError(400)
@@ -193,7 +249,6 @@ func (s skunkyart) Emojitar(name string) {
ae, e := devianter.AEmedia(name, s.Type)
if e != nil {
s.ReturnHTTPError(404)
- println(e.Error())
}
wr(s.Writer, ae)
} else {