feat: hide embeds for moderated posts (#9152)
This commit is contained in:
committed by
Hailey
parent
80016f5be0
commit
4386178c2f
@@ -458,6 +458,18 @@ func (srv *Server) WebHome(c echo.Context) error {
|
|||||||
return c.Render(http.StatusOK, "home.html", data)
|
return c.Render(http.StatusOK, "home.html", data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Posts that include these labels will not have embeds passed to the metadata
|
||||||
|
// template.
|
||||||
|
var hideEmbedLabels = map[string]bool{
|
||||||
|
"nudity": true,
|
||||||
|
"porn": true,
|
||||||
|
"sexual": true,
|
||||||
|
"sexual-figurative": true,
|
||||||
|
"graphic-media": true,
|
||||||
|
"self-harm": true,
|
||||||
|
"sensitive": true,
|
||||||
|
}
|
||||||
|
|
||||||
func (srv *Server) WebPost(c echo.Context) error {
|
func (srv *Server) WebPost(c echo.Context) error {
|
||||||
ctx := c.Request().Context()
|
ctx := c.Request().Context()
|
||||||
data := srv.NewTemplateContext()
|
data := srv.NewTemplateContext()
|
||||||
@@ -512,14 +524,29 @@ func (srv *Server) WebPost(c echo.Context) error {
|
|||||||
postView := tpv.Thread.FeedDefs_ThreadViewPost.Post
|
postView := tpv.Thread.FeedDefs_ThreadViewPost.Post
|
||||||
data["postView"] = postView
|
data["postView"] = postView
|
||||||
data["requestURI"] = fmt.Sprintf("https://%s%s", req.Host, req.URL.Path)
|
data["requestURI"] = fmt.Sprintf("https://%s%s", req.Host, req.URL.Path)
|
||||||
if postView.Embed != nil {
|
|
||||||
if postView.Embed.EmbedImages_View != nil {
|
// If any undesirable labels are set, the embed will not be included in
|
||||||
|
// metadata
|
||||||
|
isEmbedHidden := false
|
||||||
|
for _, label := range postView.Labels {
|
||||||
|
isNeg := label.Neg != nil && *label.Neg
|
||||||
|
if hideEmbedLabels[label.Val] && !isNeg {
|
||||||
|
isEmbedHidden = true
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if postView.Embed != nil && !isEmbedHidden {
|
||||||
|
hasImages := postView.Embed.EmbedImages_View != nil
|
||||||
|
hasMedia := postView.Embed.EmbedRecordWithMedia_View != nil && postView.Embed.EmbedRecordWithMedia_View.Media != nil && postView.Embed.EmbedRecordWithMedia_View.Media.EmbedImages_View != nil
|
||||||
|
|
||||||
|
if hasImages {
|
||||||
var thumbUrls []string
|
var thumbUrls []string
|
||||||
for i := range postView.Embed.EmbedImages_View.Images {
|
for i := range postView.Embed.EmbedImages_View.Images {
|
||||||
thumbUrls = append(thumbUrls, postView.Embed.EmbedImages_View.Images[i].Thumb)
|
thumbUrls = append(thumbUrls, postView.Embed.EmbedImages_View.Images[i].Thumb)
|
||||||
}
|
}
|
||||||
data["imgThumbUrls"] = thumbUrls
|
data["imgThumbUrls"] = thumbUrls
|
||||||
} else if postView.Embed.EmbedRecordWithMedia_View != nil && postView.Embed.EmbedRecordWithMedia_View.Media != nil && postView.Embed.EmbedRecordWithMedia_View.Media.EmbedImages_View != nil {
|
} else if hasMedia {
|
||||||
var thumbUrls []string
|
var thumbUrls []string
|
||||||
for i := range postView.Embed.EmbedRecordWithMedia_View.Media.EmbedImages_View.Images {
|
for i := range postView.Embed.EmbedRecordWithMedia_View.Media.EmbedImages_View.Images {
|
||||||
thumbUrls = append(thumbUrls, postView.Embed.EmbedRecordWithMedia_View.Media.EmbedImages_View.Images[i].Thumb)
|
thumbUrls = append(thumbUrls, postView.Embed.EmbedRecordWithMedia_View.Media.EmbedImages_View.Images[i].Thumb)
|
||||||
|
|||||||
Reference in New Issue
Block a user