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
+