diff options
Diffstat (limited to 'app/wraper.go')
| -rw-r--r-- | app/wraper.go | 91 |
1 files changed, 58 insertions, 33 deletions
diff --git a/app/wraper.go b/app/wraper.go index 757602c..f42a9af 100644 --- a/app/wraper.go +++ b/app/wraper.go @@ -15,13 +15,27 @@ import ( var wr = io.WriteString type skunkyart struct { - Writer http.ResponseWriter - Args url.Values - Type rune - Query string - Page int - atom bool - Templates struct { + Writer http.ResponseWriter + Args url.Values + BasePath string + Type rune + Query, QueryRaw string + Page int + Atom bool + Templates struct { + About struct { + Proxy bool + Nsfw bool + } + + SomeList string + Deviation struct { + Post devianter.Post + StringTime string + Tags string + Comments string + } + GroupUser struct { GR devianter.GRuser Admins string @@ -51,6 +65,19 @@ type skunkyart struct { } } +// var Templates struct { +// Index string +// About string +// +// GRuser string +// Deviation string +// List string +// Search string +// } + +// //go:embed ../html/* +// var Templates embed.FS + func (s skunkyart) GRUser() { if len(s.Query) < 1 { s.ReturnHTTPError(400) @@ -65,7 +92,7 @@ func (s skunkyart) GRUser() { switch s.Type { case 'a': g := group.GR - s.atom = false + s.Atom = false for _, x := range g.Gruser.Page.Modules { switch x.Name { case "about", "group_about": @@ -110,17 +137,15 @@ func (s skunkyart) GRUser() { case "cover_deviation": group.About.BGMeta = x.ModuleData.CoverDeviation.Deviation - group.About.BG = devianter.UrlFromMedia(group.About.BGMeta.Media) + group.About.BGMeta.Url = s.ConvertDeviantArtUrlToSkunkyArt(group.About.BGMeta.Url) + group.About.BG = s.ParseMedia(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(UrlBuilder("media", "emojitar", z.User.Username, "?type=a")) htm.WriteString(`"><a href="`) - htm.WriteString("/group_user?type=about&q=") - htm.WriteString(z.User.Username) + htm.WriteString(UrlBuilder("group_user", "?type=about&q=", z.User.Username)) htm.WriteString(`">`) htm.WriteString(z.User.Username) htm.WriteString(`</a></p>`) @@ -175,24 +200,18 @@ func (s skunkyart) GRUser() { s.ReturnHTTPError(400) } - if !s.atom { + if !s.Atom { s.ExecuteTemplate("html/gruser.htm", &s) } } // посты func (s skunkyart) Deviation(author, postname string) { - // поиск ID - re := regexp.MustCompile("[0-9]+").FindAllString(postname, -1) - if len(re) >= 1 { - var post struct { - Post devianter.Post - StringTime string - Tags string - Comments string - } + id_search := regexp.MustCompile("[0-9]+").FindAllString(postname, -1) + if len(id_search) >= 1 { + post := &s.Templates.Deviation - id := re[len(re)-1] + id := id_search[len(id_search)-1] post.Post = devianter.DeviationFunc(id, author) post.Post.Description = ParseDescription(post.Post.Deviation.TextContent) @@ -202,9 +221,9 @@ func (s skunkyart) Deviation(author, postname string) { // хештэги for _, x := range post.Post.Deviation.Extended.Tags { var tag strings.Builder - tag.WriteString(` <a href="/search?q=`) - tag.WriteString(x.Name) - tag.WriteString(`&type=tag">#`) + tag.WriteString(` <a href="`) + tag.WriteString(UrlBuilder("search", "?q=", x.Name, "&type=tag")) + tag.WriteString(`">#`) tag.WriteString(x.Name) tag.WriteString("</a>") @@ -213,7 +232,7 @@ func (s skunkyart) Deviation(author, postname string) { post.Comments = s.ParseComments(devianter.CommentsFunc(id, post.Post.Comments.Cursor, s.Page, 1)) - s.ExecuteTemplate("html/deviantion.htm", &post) + s.ExecuteTemplate("html/deviantion.htm", &s) } else { s.ReturnHTTPError(400) } @@ -221,17 +240,17 @@ func (s skunkyart) Deviation(author, postname string) { func (s skunkyart) DD() { dd := devianter.DailyDeviationsFunc(s.Page) - ddparsed := s.DeviationList(dd.Deviations, dlist{ + s.Templates.SomeList = s.DeviationList(dd.Deviations, dlist{ Pages: 0, More: dd.HasMore, }) - if !s.atom { - s.ExecuteTemplate("html/list.htm", &ddparsed) + if !s.Atom { + s.ExecuteTemplate("html/list.htm", &s) } } func (s skunkyart) Search() { - s.atom = false + s.Atom = false var e error ss := &s.Templates.Search switch s.Type { @@ -263,3 +282,9 @@ func (s skunkyart) Emojitar(name string) { s.ReturnHTTPError(400) } } + +func (s skunkyart) About() { + s.Templates.About.Nsfw = CFG.Nsfw + s.Templates.About.Proxy = CFG.Proxy + s.ExecuteTemplate("html/about.htm", &s) +} |
