From fe2ccb4d4e26114c166a36088f2939d144ba76c4 Mon Sep 17 00:00:00 2001 From: Aaron Liu Date: Fri, 4 Jul 2025 14:40:32 +0800 Subject: [PATCH] feat(share): add option to automatically render and show README file (#2382) --- assets | 2 +- inventory/types/types.go | 2 ++ pkg/filemanager/manager/manager.go | 1 + pkg/filemanager/manager/operation.go | 3 ++- service/explorer/response.go | 2 ++ service/share/manage.go | 2 ++ 6 files changed, 10 insertions(+), 2 deletions(-) diff --git a/assets b/assets index 27996dc..38f5114 160000 --- a/assets +++ b/assets @@ -1 +1 @@ -Subproject commit 27996dc3ea22ab3b7ae525841ad1d45098d375f4 +Subproject commit 38f5114426a43840e4e86e71f0d6d369e2adb7c7 diff --git a/inventory/types/types.go b/inventory/types/types.go index b387425..44103e4 100644 --- a/inventory/types/types.go +++ b/inventory/types/types.go @@ -177,6 +177,8 @@ type ( ShareProps struct { // Whether to share view setting from owner ShareView bool `json:"share_view,omitempty"` + // Whether to automatically show readme file in share view + ShowReadMe bool `json:"show_read_me,omitempty"` } FileTypeIconSetting struct { diff --git a/pkg/filemanager/manager/manager.go b/pkg/filemanager/manager/manager.go index 6cce600..ad04af5 100644 --- a/pkg/filemanager/manager/manager.go +++ b/pkg/filemanager/manager/manager.go @@ -115,6 +115,7 @@ type ( RemainDownloads int Expire *time.Time ShareView bool + ShowReadMe bool } ) diff --git a/pkg/filemanager/manager/operation.go b/pkg/filemanager/manager/operation.go index fe97b4c..9ba859b 100644 --- a/pkg/filemanager/manager/operation.go +++ b/pkg/filemanager/manager/operation.go @@ -267,7 +267,8 @@ func (l *manager) CreateOrUpdateShare(ctx context.Context, path *fs.URI, args *C } props := &types.ShareProps{ - ShareView: args.ShareView, + ShareView: args.ShareView, + ShowReadMe: args.ShowReadMe, } share, err := shareClient.Upsert(ctx, &inventory.CreateShareParams{ diff --git a/service/explorer/response.go b/service/explorer/response.go index b0251cb..10afdb0 100644 --- a/service/explorer/response.go +++ b/service/explorer/response.go @@ -280,6 +280,7 @@ type Share struct { CreatedAt time.Time `json:"created_at,omitempty"` Expired bool `json:"expired"` Url string `json:"url"` + ShowReadMe bool `json:"show_readme,omitempty"` // Only viewable by owner IsPrivate bool `json:"is_private,omitempty"` @@ -313,6 +314,7 @@ func BuildShare(s *ent.Share, base *url.URL, hasher hashid.Encoder, requester *e res.Downloaded = s.Downloads res.Expires = s.Expires res.Password = s.Password + res.ShowReadMe = s.Props != nil && s.Props.ShowReadMe } if requester.ID == owner.ID { diff --git a/service/share/manage.go b/service/share/manage.go index 90e773a..335f346 100644 --- a/service/share/manage.go +++ b/service/share/manage.go @@ -24,6 +24,7 @@ type ( RemainDownloads int `json:"downloads"` Expire int `json:"expire"` ShareView bool `json:"share_view"` + ShowReadMe bool `json:"show_readme"` } ShareCreateParamCtx struct{} ) @@ -58,6 +59,7 @@ func (service *ShareCreateService) Upsert(c *gin.Context, existed int) (string, Expire: expires, ExistedShareID: existed, ShareView: service.ShareView, + ShowReadMe: service.ShowReadMe, }) if err != nil { return "", err