diff --git a/config.example.yaml b/config.example.yaml index c0c07cf..c39c68d 100644 --- a/config.example.yaml +++ b/config.example.yaml @@ -78,4 +78,6 @@ port: 8082 # 主题 为空值为option template,没有就默认为twentyfifteen theme: "twentyfifteen" # 文档排序默认升序还是降序 -postOrder: "desc" \ No newline at end of file +postOrder: "desc" +# 上传的目录 +uploadDir: "" \ No newline at end of file diff --git a/internal/cmd/route/route.go b/internal/cmd/route/route.go index 7eda3d0..9da364f 100644 --- a/internal/cmd/route/route.go +++ b/internal/cmd/route/route.go @@ -44,13 +44,20 @@ func SetupRouter() (*gin.Engine, func()) { }))) } - f := static.Fs{FS: static.FsEx, Path: "wp-includes"} - r.StaticFileFS("/favicon.ico", "favicon.ico", http.FS(static.FsEx)) + f := static.Fs{FS: static.FsDir, Path: "wp-includes"} + r.StaticFileFS("/favicon.ico", "favicon.ico", http.FS(static.FsDir)) r.StaticFS("/wp-includes", http.FS(f)) - r.StaticFS("/wp-content", http.FS(static.Fs{ - FS: static.FsEx, - Path: "wp-content", + r.StaticFS("/wp-content/plugins", http.FS(static.Fs{ + FS: static.FsDir, + Path: "wp-content/plugins", })) + r.StaticFS("/wp-content/themes", http.FS(static.Fs{ + FS: static.FsDir, + Path: "wp-content/themes", + })) + if c.UploadDir != "" { + r.Static("/wp-content/uploads", c.UploadDir) + } store := cookie.NewStore([]byte("secret")) r.Use(sessions.Sessions("go-wp", store)) sl, slRload := middleware.SearchLimit(c.SingleIpSearchNum) diff --git a/internal/pkg/config/config.go b/internal/pkg/config/config.go index 8302f16..b957ec5 100644 --- a/internal/pkg/config/config.go +++ b/internal/pkg/config/config.go @@ -40,6 +40,7 @@ type Config struct { TrustServerNames []string `yaml:"trustServerNames"` Theme string `yaml:"theme"` PostOrder string `yaml:"postOrder"` + UploadDir string `yaml:"uploadDir"` } type Ssl struct { diff --git a/internal/pkg/dao/posts.go b/internal/pkg/dao/posts.go index 92a4e4f..b92df99 100644 --- a/internal/pkg/dao/posts.go +++ b/internal/pkg/dao/posts.go @@ -7,7 +7,6 @@ import ( "github.com/fthvgb1/wp-go/helper/slice" "github.com/fthvgb1/wp-go/internal/pkg/models" "github.com/fthvgb1/wp-go/internal/plugins" - "github.com/fthvgb1/wp-go/internal/wpconfig" "github.com/fthvgb1/wp-go/model" "strings" "sync/atomic" @@ -44,7 +43,8 @@ func GetPostsByIds(ids ...any) (m map[uint64]models.Posts, err error) { } postsMap[post.Id] = v } - host, _ := wpconfig.Options.Load("siteurl") + //host, _ := wpconfig.Options.Load("siteurl") + host := "" meta, _ := GetPostMetaByPostIds(ctx, id) for k, pp := range postsMap { if len(pp.Categories) > 0 { diff --git a/internal/plugins/comment.go b/internal/plugins/comment.go index edf61ca..d3e3cff 100644 --- a/internal/plugins/comment.go +++ b/internal/plugins/comment.go @@ -4,6 +4,7 @@ import ( "github.com/fthvgb1/wp-go/helper/slice" "github.com/fthvgb1/wp-go/internal/pkg/models" "github.com/gin-gonic/gin" + "net/url" "strconv" "strings" ) @@ -13,6 +14,7 @@ type CommentHandler struct { comments []*Comments maxDepth int depth int + isTls bool i CommentHtml } @@ -23,16 +25,25 @@ type Comments struct { type CommentHtml interface { Sort(i, j *Comments) bool - FormatLi(c *gin.Context, m models.Comments, depth int, eo, parent string) string + FormatLi(c *gin.Context, m models.Comments, depth int, isTls bool, eo, parent string) string } func FormatComments(c *gin.Context, i CommentHtml, comments []models.Comments, maxDepth int) string { tree := treeComments(comments) + u := c.Request.Header.Get("Referer") + var isTls bool + if u != "" { + uu, _ := url.Parse(u) + if uu.Scheme == "https" { + isTls = true + } + } h := CommentHandler{ Context: c, comments: tree, maxDepth: maxDepth, depth: 1, + isTls: isTls, i: i, } return h.formatComment(h.comments, true) @@ -55,7 +66,7 @@ func (d CommentHandler) formatComment(comments []*Comments, isTop bool) (html st parent = "parent" fl = true } - s.WriteString(d.i.FormatLi(d.Context, comment.Comments, d.depth, eo, parent)) + s.WriteString(d.i.FormatLi(d.Context, comment.Comments, d.depth, d.isTls, eo, parent)) if fl { d.depth++ s.WriteString(`