content-type

This commit is contained in:
blankie 2022-10-08 23:14:02 +07:00
parent 915b4a6ad5
commit e845cc460b
Signed by: blankie
GPG key ID: CC15FC822C7F61F5

View file

@ -28,18 +28,20 @@
; (define category-json-data
; '#hasheq((batchcomplete . #t) (continue . #hasheq((cmcontinue . "page|4150504c45|41473") (continue . "-||"))) (query . #hasheq((categorymembers . (#hasheq((ns . 0) (pageid . 25049) (title . "Item (entity)")) #hasheq((ns . 0) (pageid . 128911) (title . "3D")) #hasheq((ns . 0) (pageid . 124018) (title . "A Very Fine Item")) #hasheq((ns . 0) (pageid . 142208) (title . "Amethyst Shard")) #hasheq((ns . 0) (pageid . 121612) (title . "Ankle Monitor")))))))))
(define (html-from-url image-url)
(define (url-content-type url)
(log-outgoing image-url)
(define dest-res (easy:head image-url #:timeouts timeouts))
(define content-type (easy:response-headers-ref dest-res 'Content-Type))
(easy:response-headers-ref dest-res 'Content-Type))
(define (get-media-html url content-type)
(cond
[(eq? content-type #f) `""]
[(regexp-match? #rx"^image/" content-type)
`(img (@ (src ,(u-proxy-url image-url))))]
`(img (@ (src ,(u-proxy-url url))))]
[(regexp-match? #rx"^audio/|^application/ogg$" content-type)
`(audio (@ (src ,(u-proxy-url image-url)) (controls)))]
`(audio (@ (src ,(u-proxy-url url)) (controls)))]
[(regexp-match? #rx"^video/" content-type)
`(video (@ (src ,(u-proxy-url image-url)) (controls)))]
`(video (@ (src ,(u-proxy-url url)) (controls)))]
[else `""]))
(define (generate-results-page
@ -47,6 +49,7 @@
#:wikiname wikiname
#:title title
#:media-detail media-detail
#:image-content-type image-content-type
#:license [license #f])
(define video-embed-code (jp "/videoEmbedCode" media-detail ""))
(define raw-image-url (jp "/rawImageUrl" media-detail))
@ -67,7 +70,7 @@
`(div
,(if (non-empty-string? video-embed-code)
(update-tree-wiki (html->xexp (preprocess-html-wiki video-embed-code)) wikiname)
(html-from-url image-url))
(get-media-html image-url image-content-type))
(p
,(if (non-empty-string? video-embed-code)
`""
@ -122,11 +125,15 @@
(define title (if (non-empty-string? file-title)
(format "File:~a" file-title)
prefixed-title))
(define image-content-type (if (non-empty-string? (jp "/videoEmbedCode" media-detail ""))
#f
(url-content-type (jp "/imageUrl" media-detail))))
(define body (generate-results-page
#:source-url source-url
#:wikiname wikiname
#:title title
#:media-detail media-detail
#:image-content-type image-content-type
#:license license))
(when (config-true? 'debug)