This commit is contained in:
blankie 2022-10-08 15:42:00 +07:00
parent 5fb7301ce1
commit 0148c1c3f9
Signed by: blankie
GPG key ID: CC15FC822C7F61F5

View file

@ -72,41 +72,43 @@
))
(define (page-file req)
(response-handler
(define wikiname (path/param-path (first (url-path (request-uri req)))))
(define prefixed-title (path/param-path (caddr (url-path (request-uri req)))))
(define origin (format "https://~a.fandom.com" wikiname))
(define source-url (format "~a/wiki/~a" origin prefixed-title))
(define wikiname (path/param-path (first (url-path (request-uri req)))))
(define prefixed-title (path/param-path (caddr (url-path (request-uri req)))))
(define origin (format "https://~a.fandom.com" wikiname))
(define source-url (format "~a/wiki/~a" origin prefixed-title))
(thread-let
([media-detail (define dest-url
(format "~a/wikia.php?~a"
origin
(params->query `(("format" . "json")
("controller" . "Lightbox")
("method" . "getMediaDetail")
("fileTitle" . prefixed-title)))))
(log-outgoing dest-url)
(define dest-res (easy:get dest-url #:timeouts timeouts))
(easy:response-json dest-res)]
[license (license-auto wikiname)])
(thread-let
([media-detail (define dest-url
(format "~a/wikia.php?~a"
origin
(params->query `(("format" . "json")
("controller" . "Lightbox")
("method" . "getMediaDetail")
("fileTitle" . prefixed-title)))))
(log-outgoing dest-url)
(define dest-res (easy:get dest-url #:timeouts timeouts))
(easy:response-json dest-res)]
[license (license-auto wikiname)])
(define title (jp "/fileTitle" page-data media-detail)))
(define body (generate-results-page
#:source-url source-url
#:wikiname wikiname
#:title title
#:media-detail media-detail
#:license license))
(if (not (jp "/exists" media-detail #f))
(next-dispatcher)
(response-handler
(define title (jp "/fileTitle" media-detail)))
(define body (generate-results-page
#:source-url source-url
#:wikiname wikiname
#:title title
#:media-detail media-detail
#:license license))
(when (config-true? 'debug)
; used for its side effects
; convert to string with error checking, error will be raised if xexp is invalid
(xexp->html body))
(response/output
#:code 200
(λ (out)
(write-html body out))))))
(when (config-true? 'debug)
; used for its side effects
; convert to string with error checking, error will be raised if xexp is invalid
(xexp->html body))
(response/output
#:code 200
(λ (out)
(write-html body out))))))
;(module+ test
; (check-not-false ((query-selector (attribute-selector 'href "/test/wiki/Ankle_Monitor")
; (generate-results-page