From c3a597da5feebe71fa2b7dde6c8dadf0c1fcbbb1 Mon Sep 17 00:00:00 2001 From: blankie Date: Tue, 29 Nov 2022 20:28:28 +0700 Subject: [PATCH] Stop redirecting pages if there's a redirect=no parameter Fixes /agk/wiki/Cansin13?redirect=no (from /agk/wiki/User:Cansin13) --- src/page-wiki.rkt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/page-wiki.rkt b/src/page-wiki.rkt index 2cd14dc..3f3aa7a 100644 --- a/src/page-wiki.rkt +++ b/src/page-wiki.rkt @@ -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 (equal? 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)))))