parse query after setting cookies. fixes #107

This commit is contained in:
Ryan Stafford 2024-07-20 12:53:52 -04:00
parent 0c9f2df5fd
commit 1a566e4783

View file

@ -348,7 +348,6 @@ func Initialize(Host string, r *http.Request) (State, error) {
} else { } else {
state.CollapseMedia = os.Getenv("COLLAPSE_MEDIA") != "" state.CollapseMedia = os.Getenv("COLLAPSE_MEDIA") != ""
} }
state.ParseQuery(r.URL.RawQuery)
if state.Sort == "" { if state.Sort == "" {
state.Sort = getenv("SORT") state.Sort = getenv("SORT")
} }
@ -468,6 +467,7 @@ func PostRoot(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
dest, _ := url.Parse(input) dest, _ := url.Parse(input)
if dest.Host != "" { if dest.Host != "" {
state, _ := Initialize(dest.Host, r) state, _ := Initialize(dest.Host, r)
state.ParseQuery(r.URL.RawQuery)
if err := state.LemmyError(dest.Host); err != nil { if err := state.LemmyError(dest.Host); err != nil {
data["Error"] = err data["Error"] = err
} else { } else {
@ -489,6 +489,7 @@ func GetIcon(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
w.Write([]byte("404 - Not Found")) w.Write([]byte("404 - Not Found"))
} }
state, _ := Initialize(ps.ByName("host"), r) state, _ := Initialize(ps.ByName("host"), r)
state.ParseQuery(r.URL.RawQuery)
state.Client.Token = "" state.Client.Token = ""
resp, err := state.Client.Site(context.Background()) resp, err := state.Client.Site(context.Background())
if err != nil { if err != nil {
@ -522,6 +523,7 @@ func GetFrontpage(w http.ResponseWriter, r *http.Request, ps httprouter.Params)
if state.CookieAge != int(time.Now().Month()) { if state.CookieAge != int(time.Now().Month()) {
setCookies(w, &state) setCookies(w, &state)
} }
state.ParseQuery(r.URL.RawQuery)
if err != nil { if err != nil {
Render(w, "index.html", state) Render(w, "index.html", state)
return return
@ -584,6 +586,7 @@ func ResolveId(r *http.Request, class string, id string, host string) string {
func GetPost(w http.ResponseWriter, r *http.Request, ps httprouter.Params) { func GetPost(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
state, err := Initialize(ps.ByName("host"), r) state, err := Initialize(ps.ByName("host"), r)
state.ParseQuery(r.URL.RawQuery)
if err != nil { if err != nil {
Render(w, "index.html", state) Render(w, "index.html", state)
return return
@ -638,6 +641,7 @@ func GetPost(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
} }
func GetComment(w http.ResponseWriter, r *http.Request, ps httprouter.Params) { func GetComment(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
state, err := Initialize(ps.ByName("host"), r) state, err := Initialize(ps.ByName("host"), r)
state.ParseQuery(r.URL.RawQuery)
if err != nil { if err != nil {
Render(w, "index.html", state) Render(w, "index.html", state)
return return
@ -702,6 +706,7 @@ func GetComment(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
} }
func GetUser(w http.ResponseWriter, r *http.Request, ps httprouter.Params) { func GetUser(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
state, err := Initialize(ps.ByName("host"), r) state, err := Initialize(ps.ByName("host"), r)
state.ParseQuery(r.URL.RawQuery)
state.Sort = "New" state.Sort = "New"
m, _ := url.ParseQuery(r.URL.RawQuery) m, _ := url.ParseQuery(r.URL.RawQuery)
if len(m["sort"]) > 0 { if len(m["sort"]) > 0 {
@ -719,6 +724,7 @@ func GetUser(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
} }
func GetMessageForm(w http.ResponseWriter, r *http.Request, ps httprouter.Params) { func GetMessageForm(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
state, err := Initialize(ps.ByName("host"), r) state, err := Initialize(ps.ByName("host"), r)
state.ParseQuery(r.URL.RawQuery)
if err != nil { if err != nil {
Render(w, "index.html", state) Render(w, "index.html", state)
return return
@ -729,6 +735,7 @@ func GetMessageForm(w http.ResponseWriter, r *http.Request, ps httprouter.Params
} }
func SendMessage(w http.ResponseWriter, r *http.Request, ps httprouter.Params) { func SendMessage(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
state, err := Initialize(ps.ByName("host"), r) state, err := Initialize(ps.ByName("host"), r)
state.ParseQuery(r.URL.RawQuery)
if err != nil { if err != nil {
Render(w, "index.html", state) Render(w, "index.html", state)
return return
@ -748,6 +755,7 @@ func SendMessage(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
} }
func GetCreatePost(w http.ResponseWriter, r *http.Request, ps httprouter.Params) { func GetCreatePost(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
state, err := Initialize(ps.ByName("host"), r) state, err := Initialize(ps.ByName("host"), r)
state.ParseQuery(r.URL.RawQuery)
if err != nil { if err != nil {
Render(w, "index.html", state) Render(w, "index.html", state)
return return
@ -770,6 +778,7 @@ func GetCreatePost(w http.ResponseWriter, r *http.Request, ps httprouter.Params)
} }
func GetCreateCommunity(w http.ResponseWriter, r *http.Request, ps httprouter.Params) { func GetCreateCommunity(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
state, err := Initialize(ps.ByName("host"), r) state, err := Initialize(ps.ByName("host"), r)
state.ParseQuery(r.URL.RawQuery)
if err != nil { if err != nil {
fmt.Println(err) fmt.Println(err)
Render(w, "index.html", state) Render(w, "index.html", state)
@ -786,6 +795,7 @@ func GetCreateCommunity(w http.ResponseWriter, r *http.Request, ps httprouter.Pa
func Inbox(w http.ResponseWriter, r *http.Request, ps httprouter.Params) { func Inbox(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
state, err := Initialize(ps.ByName("host"), r) state, err := Initialize(ps.ByName("host"), r)
state.ParseQuery(r.URL.RawQuery)
if err != nil { if err != nil {
Render(w, "index.html", state) Render(w, "index.html", state)
return return
@ -878,6 +888,7 @@ func setCookies(w http.ResponseWriter, state *State) {
} }
func Settings(w http.ResponseWriter, r *http.Request, ps httprouter.Params) { func Settings(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
state, err := Initialize(ps.ByName("host"), r) state, err := Initialize(ps.ByName("host"), r)
state.ParseQuery(r.URL.RawQuery)
if err != nil { if err != nil {
Render(w, "index.html", state) Render(w, "index.html", state)
return return
@ -923,6 +934,7 @@ func Settings(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
func SignUpOrLogin(w http.ResponseWriter, r *http.Request, ps httprouter.Params) { func SignUpOrLogin(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
state, err := Initialize(ps.ByName("host"), r) state, err := Initialize(ps.ByName("host"), r)
state.ParseQuery(r.URL.RawQuery)
if err != nil { if err != nil {
fmt.Println(err) fmt.Println(err)
Render(w, "index.html", state) Render(w, "index.html", state)
@ -1014,6 +1026,7 @@ func SignUpOrLogin(w http.ResponseWriter, r *http.Request, ps httprouter.Params)
} }
func GetLogin(w http.ResponseWriter, r *http.Request, ps httprouter.Params) { func GetLogin(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
state, err := Initialize(ps.ByName("host"), r) state, err := Initialize(ps.ByName("host"), r)
state.ParseQuery(r.URL.RawQuery)
if err != nil { if err != nil {
Render(w, "index.html", state) Render(w, "index.html", state)
return return
@ -1030,6 +1043,7 @@ func GetLogin(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
} }
func Search(w http.ResponseWriter, r *http.Request, ps httprouter.Params) { func Search(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
state, err := Initialize(ps.ByName("host"), r) state, err := Initialize(ps.ByName("host"), r)
state.ParseQuery(r.URL.RawQuery)
if err != nil { if err != nil {
Render(w, "index.html", state) Render(w, "index.html", state)
return return
@ -1073,6 +1087,7 @@ type PictrsResponse struct {
func UserOp(w http.ResponseWriter, r *http.Request, ps httprouter.Params) { func UserOp(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
state, err := Initialize(ps.ByName("host"), r) state, err := Initialize(ps.ByName("host"), r)
state.ParseQuery(r.URL.RawQuery)
if err != nil { if err != nil {
Render(w, "index.html", state) Render(w, "index.html", state)
return return