fix all type errors

This commit is contained in:
iacore
2024-08-27 14:26:48 +00:00
parent 95950607b3
commit 6ac1ac6730
11 changed files with 60 additions and 45 deletions
+13 -7
View File
@@ -11,7 +11,7 @@ import (
"github.com/tidwall/gjson"
)
func pixivPostRequest(r *fiber.Ctx, url, payload, token, csrf string, isJSON bool) error {
func pixivPostRequest(r CompatRequest, url, payload, token, csrf string, isJSON bool) error {
requestBody := []byte(payload)
req, err := http.NewRequestWithContext(r.Context(), "POST", url, bytes.NewBuffer(requestBody))
@@ -63,7 +63,7 @@ func AddBookmarkRoute(w http.ResponseWriter, r CompatRequest) error {
csrf := session.GetCookie(r.Request, session.Cookie_CSRF)
if token == "" || csrf == "" {
return PromptUserToLoginPage(r)
return PromptUserToLoginPage(w, r)
}
id := r.Params("id")
@@ -82,7 +82,7 @@ func AddBookmarkRoute(w http.ResponseWriter, r CompatRequest) error {
return err
}
return r.SendString("Success")
return SendString(w, "Success")
}
func DeleteBookmarkRoute(w http.ResponseWriter, r CompatRequest) error {
@@ -90,7 +90,7 @@ func DeleteBookmarkRoute(w http.ResponseWriter, r CompatRequest) error {
csrf := session.GetCookie(r.Request, session.Cookie_CSRF)
if token == "" || csrf == "" {
return PromptUserToLoginPage(r)
return PromptUserToLoginPage(w, r)
}
id := r.Params("id")
@@ -105,7 +105,7 @@ func DeleteBookmarkRoute(w http.ResponseWriter, r CompatRequest) error {
return err
}
return r.SendString("Success")
return SendString(w, "Success")
}
func LikeRoute(w http.ResponseWriter, r CompatRequest) error {
@@ -113,7 +113,7 @@ func LikeRoute(w http.ResponseWriter, r CompatRequest) error {
csrf := session.GetCookie(r.Request, session.Cookie_CSRF)
if token == "" || csrf == "" {
return PromptUserToLoginPage(r)
return PromptUserToLoginPage(w, r)
}
id := r.Params("id")
@@ -127,5 +127,11 @@ func LikeRoute(w http.ResponseWriter, r CompatRequest) error {
return err
}
return r.SendString("Success")
return SendString(w, "Success")
}
func SendString(w http.ResponseWriter, text string) error {
w.Header().Set("content-type", "text/plain")
_, err := w.Write([]byte(text))
return err
}
+3 -3
View File
@@ -26,7 +26,7 @@ func ArtworkPage(w http.ResponseWriter, r CompatRequest) error {
// monkey patching. assuming illust.Images[_].Large is used
for _, img := range illust.Images {
PreloadImage(r, img.Large)
PreloadImage(w, img.Large)
}
return Render(w, r, Data_artwork{
@@ -39,6 +39,6 @@ func ArtworkPage(w http.ResponseWriter, r CompatRequest) error {
})
}
func PreloadImage(r *fiber.Ctx, url string) {
r.Response().Header.Add("Link", fmt.Sprintf("<%s>; rel=preload; as=image", url))
func PreloadImage(w http.ResponseWriter, url string) {
w.Header().Add("Link", fmt.Sprintf("<%s>; rel=preload; as=image", url))
}
+9
View File
@@ -58,3 +58,12 @@ func (r CompatRequest) Params(name string, defaultValue ...string) string {
}
}
}
func RedirectToRoute(w http.ResponseWriter, r CompatRequest, path string, query_params map[string]string, code int) error {
query := url.Values{}
for k, v := range query_params {
query.Add(k, v)
}
http.Redirect(w, r.Request, path+query.Encode(), code)
return nil
}
+3 -3
View File
@@ -1,11 +1,11 @@
package routes
import (
"encoding/json"
"net/http"
"codeberg.org/vnpower/pixivfe/v2/core"
"codeberg.org/vnpower/pixivfe/v2/session"
"net/http"
)
func IndexPage(w http.ResponseWriter, r CompatRequest) error {
@@ -43,7 +43,7 @@ func Oembed(w http.ResponseWriter, r CompatRequest) error {
artistName := r.Query("a", "")
artistURL := r.Query("u", "")
data := fiber.Map{
data := map[string]any{
"version": "1.0",
"embed_type": "rich",
"provider_name": "PixivFE",
@@ -52,5 +52,5 @@ func Oembed(w http.ResponseWriter, r CompatRequest) error {
"author_url": artistURL,
}
return r.JSON(data)
return json.NewEncoder(w).Encode(data)
}
+5 -5
View File
@@ -18,32 +18,32 @@ func LoginUserPage(w http.ResponseWriter, r CompatRequest) error {
token := session.GetPixivToken(r.Request)
if token == "" {
return PromptUserToLoginPage(r)
return PromptUserToLoginPage(w, r)
}
// The left part of the token is the member ID
userId := strings.Split(token, "_")
r.Redirect("/users/" + userId[0])
http.Redirect(w, r.Request, "/users/" + userId[0], http.StatusSeeOther)
return nil
}
func LoginBookmarkPage(w http.ResponseWriter, r CompatRequest) error {
token := session.GetPixivToken(r.Request)
if token == "" {
return PromptUserToLoginPage(r)
return PromptUserToLoginPage(w, r)
}
// The left part of the token is the member ID
userId := strings.Split(token, "_")
r.Redirect("/users/" + userId[0] + "/bookmarks#checkpoint")
http.Redirect(w, r.Request, "/users/" + userId[0] + "/bookmarks#checkpoint", http.StatusSeeOther)
return nil
}
func FollowingWorksPage(w http.ResponseWriter, r CompatRequest) error {
if token := session.GetPixivToken(r.Request); token == "" {
return PromptUserToLoginPage(r)
return PromptUserToLoginPage(w, r)
}
mode := r.Query("mode", "all")
+8 -6
View File
@@ -34,15 +34,17 @@ func parseDate(t time.Time) DateWrap {
}
func RankingCalendarPicker(w http.ResponseWriter, r CompatRequest) error {
mode := r.FormValue("mode", "daily")
date := r.FormValue("date", "")
mode := r.FormValue("mode")
if mode == "" {
mode = "daily"
}
date := r.FormValue("date")
return r.RedirectToRoute("/rankingCalendar", fiber.Map{
"queries": map[string]string{
return RedirectToRoute(w, r,"/rankingCalendar", map[string]string{
"mode": mode,
"date": date,
},
})
}, http.StatusFound)
}
func RankingCalendarPage(w http.ResponseWriter, r CompatRequest) error {
-1
View File
@@ -4,7 +4,6 @@ import (
"io"
"log"
"net/http"
"net/url"
"reflect"
"strings"
+3 -2
View File
@@ -163,7 +163,7 @@ func SettingsPage(w http.ResponseWriter, r CompatRequest) error {
func SettingsPost(w http.ResponseWriter, r CompatRequest) error {
t := r.Params("type")
noredirect := r.FormValue("noredirect", "") == ""
noredirect := r.FormValue("noredirect") == ""
var err error
switch t {
@@ -199,5 +199,6 @@ func SettingsPost(w http.ResponseWriter, r CompatRequest) error {
return nil
}
return r.Redirect("/settings", http.StatusSeeOther)
http.Redirect(w, r.Request, "/settings", http.StatusSeeOther)
return nil
}
+14 -16
View File
@@ -55,21 +55,19 @@ func TagPage(w http.ResponseWriter, r CompatRequest) error {
}
func AdvancedTagPost(w http.ResponseWriter, r CompatRequest) error {
return r.RedirectToRoute("/tags", fiber.Map{
"queries": map[string]string{
"name": r.Query("name", r.FormValue("name")),
"category": r.Query("category", "artworks"),
"order": r.Query("order", "date_d"),
"mode": r.Query("mode", "safe"),
"ratio": r.Query("ratio"),
"page": r.Query("page", "1"),
"wlt": r.Query("wlt", r.FormValue("wlt")),
"wgt": r.Query("wgt", r.FormValue("wgt")),
"hlt": r.Query("hlt", r.FormValue("hlt")),
"hgt": r.Query("hgt", r.FormValue("hgt")),
"tool": r.Query("tool", r.FormValue("tool")),
"scd": r.Query("scd", r.FormValue("scd")),
"ecd": r.Query("ecd", r.FormValue("ecd")),
},
return RedirectToRoute(w, r,"/tags", map[string]string{
"name": r.Query("name", r.FormValue("name")),
"category": r.Query("category", "artworks"),
"order": r.Query("order", "date_d"),
"mode": r.Query("mode", "safe"),
"ratio": r.Query("ratio"),
"page": r.Query("page", "1"),
"wlt": r.Query("wlt", r.FormValue("wlt")),
"wgt": r.Query("wgt", r.FormValue("wgt")),
"hlt": r.Query("hlt", r.FormValue("hlt")),
"hgt": r.Query("hgt", r.FormValue("hgt")),
"tool": r.Query("tool", r.FormValue("tool")),
"scd": r.Query("scd", r.FormValue("scd")),
"ecd": r.Query("ecd", r.FormValue("ecd")),
}, http.StatusFound)
}
+1 -1
View File
@@ -21,7 +21,7 @@ func fetchData(r CompatRequest, getTags bool) (userPageData, error) {
if _, err := strconv.Atoi(id); err != nil {
return userPageData{}, err
}
category := core.UserArtCategory(r.Request.Params("category", string(core.UserArt_Any)))
category := core.UserArtCategory(r.Params("category", string(core.UserArt_Any)))
err := category.Validate()
if err != nil {
return userPageData{}, err
+1 -1
View File
@@ -51,7 +51,7 @@ func SetCookie(w http.ResponseWriter, name CookieName, value string) {
Value: value,
Path: "/",
// expires in 30 days from now
Expires: r.Context().Time().Add(30 * (24 * time.Hour)),
Expires: time.Now().Add(30 * (24 * time.Hour)),
HttpOnly: true,
Secure: true,
SameSite: http.SameSiteStrictMode, // bye-bye cross site forgery