From f82b97dec5a024548c1a759df0daa1120a8ba6d9 Mon Sep 17 00:00:00 2001 From: Monirzadeh <25131576+Monirzadeh@users.noreply.github.com> Date: Sun, 22 Oct 2023 11:25:16 +0000 Subject: [PATCH] add create ebook by default in settings (#761) * add create ebook by default in settings * ebook automatic generate for new bookmark * fix empty ebook for new bookmark --- docs/swagger/docs.go | 3 +++ docs/swagger/swagger.json | 3 +++ docs/swagger/swagger.yaml | 2 ++ internal/core/processing.go | 1 + internal/http/routes/api/v1/auth_test.go | 2 ++ internal/model/account.go | 1 + internal/view/assets/js/page/home.js | 6 ++++++ internal/view/assets/js/page/setting.js | 5 +++++ internal/view/content.html | 2 ++ internal/view/index.html | 2 ++ internal/webserver/handler-api.go | 3 +++ 11 files changed, 30 insertions(+) diff --git a/docs/swagger/docs.go b/docs/swagger/docs.go index 79f91fd0..685f147e 100644 --- a/docs/swagger/docs.go +++ b/docs/swagger/docs.go @@ -252,6 +252,9 @@ const docTemplate = `{ "model.UserConfig": { "type": "object", "properties": { + "CreateEbook": { + "type": "boolean" + }, "HideExcerpt": { "type": "boolean" }, diff --git a/docs/swagger/swagger.json b/docs/swagger/swagger.json index 112f8891..fd205f6f 100644 --- a/docs/swagger/swagger.json +++ b/docs/swagger/swagger.json @@ -241,6 +241,9 @@ "model.UserConfig": { "type": "object", "properties": { + "CreateEbook": { + "type": "boolean" + }, "HideExcerpt": { "type": "boolean" }, diff --git a/docs/swagger/swagger.yaml b/docs/swagger/swagger.yaml index 535a5019..675f8ee6 100644 --- a/docs/swagger/swagger.yaml +++ b/docs/swagger/swagger.yaml @@ -51,6 +51,8 @@ definitions: type: object model.UserConfig: properties: + CreateEbook: + type: boolean HideExcerpt: type: boolean HideThumbnail: diff --git a/internal/core/processing.go b/internal/core/processing.go index 25df3d31..49c432a5 100644 --- a/internal/core/processing.go +++ b/internal/core/processing.go @@ -142,6 +142,7 @@ func ProcessBookmark(req ProcessRequest) (book model.Bookmark, isFatalErr bool, // If needed, create ebook as well if book.CreateEbook { ebookPath := fp.Join(req.DataDir, "ebook", strID+".epub") + req.Bookmark = book if strings.Contains(contentType, "application/pdf") { return book, false, errors.Wrap(err, "can't create ebook from pdf") diff --git a/internal/http/routes/api/v1/auth_test.go b/internal/http/routes/api/v1/auth_test.go index 2bbdc3e9..ec918bb6 100644 --- a/internal/http/routes/api/v1/auth_test.go +++ b/internal/http/routes/api/v1/auth_test.go @@ -253,6 +253,7 @@ func TestSettingsHandler(t *testing.T) { NightMode: true, KeepMetadata: true, UseArchive: true, + CreateEbook: true, MakePublic: true, }, } @@ -276,6 +277,7 @@ func TestSettingsHandler(t *testing.T) { "NightMode": false, "KeepMetadata": false, "UseArchive": false, + "CreateEbook": false, "MakePublic": false } }`) diff --git a/internal/model/account.go b/internal/model/account.go index 32876067..5004401d 100644 --- a/internal/model/account.go +++ b/internal/model/account.go @@ -23,6 +23,7 @@ type UserConfig struct { NightMode bool `json:"NightMode"` KeepMetadata bool `json:"KeepMetadata"` UseArchive bool `json:"UseArchive"` + CreateEbook bool `json:"CreateEbook"` MakePublic bool `json:"MakePublic"` } diff --git a/internal/view/assets/js/page/home.js b/internal/view/assets/js/page/home.js index 41b139f6..df32511f 100644 --- a/internal/view/assets/js/page/home.js +++ b/internal/view/assets/js/page/home.js @@ -382,6 +382,11 @@ export default { label: "Create archive", type: "check", value: this.appOptions.UseArchive, + }, { + name: "createEbook", + label: "Create Ebook", + type: "check", + value: this.appOptions.CreateEbook, }, { name: "makePublic", label: "Make archive publicly available", @@ -417,6 +422,7 @@ export default { public: data.makePublic ? 1 : 0, tags: tags, createArchive: data.createArchive, + createEbook: data.createEbook, }; this.dialog.loading = true; diff --git a/internal/view/assets/js/page/setting.js b/internal/view/assets/js/page/setting.js index cf4fc4dc..63a954d4 100644 --- a/internal/view/assets/js/page/setting.js +++ b/internal/view/assets/js/page/setting.js @@ -35,6 +35,10 @@ var template = ` Create archive by default +