Stop redirecting pages if there's a redirect=no parameter

Fixes /agk/wiki/Cansin13?redirect=no (from /agk/wiki/User:Cansin13)
This commit is contained in:
blankie 2022-11-29 20:28:28 +07:00
parent a661ddb313
commit 278b1a8820
Signed by: blankie
GPG key ID: CC15FC822C7F61F5

View file

@ -317,10 +317,13 @@
#:head-data head-data
#:siteinfo siteinfo))
(define redirect-msg ((query-selector (attribute-selector 'class "redirectMsg") body)))
(define redirect-query-parameter (dict-ref (url-query (request-uri req)) 'redirect "yes"))
(define headers
(build-headers
always-headers
(when redirect-msg
; no need to check for any other possible string value since only "no" is interpreted
; https://github.com/Wikia/app/blob/fe60579a53f16816d65dad1644363160a63206a6/includes/Wiki.php#L367
(when (and redirect-msg (not (eq? redirect-query-parameter "no")))
(let* ([dest (get-attribute 'href (bits->attributes ((query-selector (λ (t a c) (eq? t 'a)) redirect-msg))))]
[value (bytes-append #"0;url=" (string->bytes/utf-8 dest))])
(header #"Refresh" value)))))