From b9ec6bc6ae03d5e9b32d94c1bae45acfda4ec0e5 Mon Sep 17 00:00:00 2001 From: VnPower Date: Sun, 9 Jun 2024 16:21:20 +0700 Subject: [PATCH] Raw settings --- pages/settings.go | 33 ++++++++++++++++++++++++++++++++- views/css/style.css | 1 + views/css/style.scss | 1 + views/pages/artwork.jet.html | 3 +-- views/pages/novel.jet.html | 8 ++++---- views/pages/settings.jet.html | 20 ++++++++++++++++++-- 6 files changed, 57 insertions(+), 9 deletions(-) diff --git a/pages/settings.go b/pages/settings.go index 47fd9c1..1556594 100644 --- a/pages/settings.go +++ b/pages/settings.go @@ -6,6 +6,8 @@ import ( "io" "net/http" "regexp" + "slices" + "strings" httpc "codeberg.org/vnpower/pixivfe/v2/core/http" session "codeberg.org/vnpower/pixivfe/v2/core/session" @@ -114,6 +116,28 @@ func setCookie(c *fiber.Ctx) error { return fmt.Errorf("Invalid Cookie Name: %s", key) } +func setRawCookie(c *fiber.Ctx) error { + raw := c.FormValue("raw") + lines := strings.Split(raw, "\n") + + for _, line := range lines { + sub := strings.Split(line, "=") + if len(sub) != 2 { + continue + } + + name := session.CookieName(sub[0]) + value := sub[1] + + if !slices.Contains(session.AllCookieNames, name) { + continue + } + + session.SetCookie(c, name, value) + } + return nil +} + func resetAll(c *fiber.Ctx) error { session.ClearAllCookies(c) return nil @@ -136,6 +160,7 @@ func SettingsPage(c *fiber.Ctx) error { func SettingsPost(c *fiber.Ctx) error { t := c.Params("type") + var noredirect bool = false var err error switch t { @@ -149,10 +174,14 @@ func SettingsPost(c *fiber.Ctx) error { err = resetAll(c) case "novelFontType": err = setNovelFontType(c) + noredirect = true case "novelViewMode": err = setNovelViewMode(c) + noredirect = true case "set-cookie": err = setCookie(c) + case "raw": + err = setRawCookie(c) default: err = errors.New("No such setting is available.") } @@ -161,7 +190,9 @@ func SettingsPost(c *fiber.Ctx) error { return err } - c.Redirect("/settings", http.StatusSeeOther) + if !noredirect { + c.Redirect("/settings", http.StatusSeeOther) + } return nil } diff --git a/views/css/style.css b/views/css/style.css index 3e1113d..57de696 100644 --- a/views/css/style.css +++ b/views/css/style.css @@ -238,6 +238,7 @@ textarea[readonly] { max-width: 800px; min-width: 460px; padding: 1.5rem; + margin: 0.5rem 0; } .form-field header { margin: 1.5rem 0; diff --git a/views/css/style.scss b/views/css/style.scss index ec07ce9..1b9ee54 100644 --- a/views/css/style.scss +++ b/views/css/style.scss @@ -278,6 +278,7 @@ textarea[readonly] { max-width: 800px; min-width: 460px; padding: 1.5rem; + margin: 0.5rem 0; header { margin: 1.5rem 0; diff --git a/views/pages/artwork.jet.html b/views/pages/artwork.jet.html index cc9ee4a..af6310d 100644 --- a/views/pages/artwork.jet.html +++ b/views/pages/artwork.jet.html @@ -18,14 +18,13 @@
-

Comments

{{ if Illust.CommentDisabled == 1 }}

The creator turned comments off

{{ else if Illust.Comments == 0 }}

There are no comments yet

{{ else }} {{ range Illust.CommentsList }}
- + {{ .AuthorName }}
diff --git a/views/pages/novel.jet.html b/views/pages/novel.jet.html index 2e03667..d526bb2 100644 --- a/views/pages/novel.jet.html +++ b/views/pages/novel.jet.html @@ -69,11 +69,11 @@