From 0366bcbb67e7e36b4d6549134595786dc15b5631 Mon Sep 17 00:00:00 2001 From: Jinvic <77521861+Jinvic@users.noreply.github.com> Date: Mon, 10 Feb 2025 09:35:10 +0000 Subject: [PATCH 1/3] =?UTF-8?q?fix(rss):=20rss=E5=8A=9F=E8=83=BD=E8=B0=83?= =?UTF-8?q?=E6=95=B4&bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - fix: 未显示置顶memo - fix: 错误显示私密memo - feat: 展示memo数量修改为15 - feat: 置顶memo在rss中不会置顶,但添加一行 **【置顶】** 作为标识 --- backend/handler/rss.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/backend/handler/rss.go b/backend/handler/rss.go index e8658582..9e93055c 100644 --- a/backend/handler/rss.go +++ b/backend/handler/rss.go @@ -66,8 +66,14 @@ func (r RssHandler) generateRss(host string) (string, error) { // 查询动态 tx := r.base.db.Preload("User", func(x *gorm.DB) *gorm.DB { return x.Select("username", "nickname", "id") - }).Where("pinned = 0") - tx.Order("createdAt desc").Limit(10).Find(&memos) + }).Where("showType = 1") + tx.Order("createdAt desc").Limit(15).Find(&memos) + + for i := range memos { + if *memos[i].Pinned { + memos[i].Content = "**【置顶】**\n" + memos[i].Content + } + } feed := generateFeed(memos, &sysConfigVO, &user, host) From f00f73a62db7abc414a1d2c2ee436ddd4f143587 Mon Sep 17 00:00:00 2001 From: jwb Date: Tue, 11 Feb 2025 11:48:26 +0800 Subject: [PATCH 2/3] =?UTF-8?q?fix:=20W3C=E9=AA=8C=E8=AF=81=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - [ ] Invalid email address 在实现rss功能时用户表里还没有邮箱,所以在Author字段中只填了Name没填Email。现在邮箱已在邮件通知分支中添加,不过为了避免重复混淆,Rss分支上暂不处理。 - [x] Feeds should not be served with the "text/plain" media type 只在前端链接中指定了`type="application/rss+xml"`,但后端接口没有正确设定Header中的Content-Type,已修正。 - [x] item should contain a guid element 字段缺失,已修正 - [ ] Missing atom:link with rel="self" `gorilla\feeds`库的问题,见[gorilla/feeds #111](https://github.com/gorilla/feeds/issues/111) --- backend/handler/rss.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/backend/handler/rss.go b/backend/handler/rss.go index 9e93055c..d001b9e8 100644 --- a/backend/handler/rss.go +++ b/backend/handler/rss.go @@ -40,6 +40,9 @@ func (r RssHandler) GetRss(c echo.Context) error { if err != nil { return FailRespWithMsg(c, Fail, "RSS生成失败") } + + c.Response().Header().Set(echo.HeaderContentType, "application/rss+xml; charset=utf-8") + return c.String(http.StatusOK, rss) } @@ -102,9 +105,11 @@ func generateFeed(memos []db.Memo, sysConfigVO *vo.FullSysConfigVO, user *db.Use feed.Items = []*feeds.Item{} for _, memo := range memos { + memoLink := fmt.Sprintf("%s/memo/%d", host, memo.Id) feed.Items = append(feed.Items, &feeds.Item{ + Id: memoLink, Title: fmt.Sprintf("Memo #%d", memo.Id), - Link: &feeds.Link{Href: fmt.Sprintf("%s/memo/%d", host, memo.Id)}, + Link: &feeds.Link{Href: memoLink}, Description: parseMarkdownToHtml(getContentWithExt(memo, host)), Author: &feeds.Author{Name: memo.User.Nickname}, Created: *memo.CreatedAt, From c78a9bfca1aa4c944a334f201f092457f6d5376d Mon Sep 17 00:00:00 2001 From: jwb Date: Thu, 13 Feb 2025 10:20:12 +0800 Subject: [PATCH 3/3] =?UTF-8?q?fix(rss):=20Author=E6=A0=87=E7=AD=BE?= =?UTF-8?q?=E4=B8=AD=E6=B7=BB=E5=8A=A0Email=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/handler/rss.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/backend/handler/rss.go b/backend/handler/rss.go index d001b9e8..02ca58f6 100644 --- a/backend/handler/rss.go +++ b/backend/handler/rss.go @@ -68,7 +68,7 @@ func (r RssHandler) generateRss(host string) (string, error) { // 查询动态 tx := r.base.db.Preload("User", func(x *gorm.DB) *gorm.DB { - return x.Select("username", "nickname", "id") + return x.Select("username", "nickname", "id", "email") }).Where("showType = 1") tx.Order("createdAt desc").Limit(15).Find(&memos) @@ -99,7 +99,7 @@ func generateFeed(memos []db.Memo, sysConfigVO *vo.FullSysConfigVO, user *db.Use Title: sysConfigVO.Title, Link: &feeds.Link{Href: fmt.Sprintf("%s/rss", host)}, Description: user.Slogan, - Author: &feeds.Author{Name: user.Nickname}, + Author: &feeds.Author{Name: user.Nickname, Email: user.Email}, Created: now, } @@ -111,7 +111,7 @@ func generateFeed(memos []db.Memo, sysConfigVO *vo.FullSysConfigVO, user *db.Use Title: fmt.Sprintf("Memo #%d", memo.Id), Link: &feeds.Link{Href: memoLink}, Description: parseMarkdownToHtml(getContentWithExt(memo, host)), - Author: &feeds.Author{Name: memo.User.Nickname}, + Author: &feeds.Author{Name: memo.User.Nickname, Email: memo.User.Email}, Created: *memo.CreatedAt, Updated: *memo.UpdatedAt, })