more stuff

This commit is contained in:
blankie 2022-10-09 14:21:28 +07:00
parent ba806d0633
commit 19aeeea60f
Signed by: blankie
GPG key ID: CC15FC822C7F61F5

View file

@ -33,20 +33,22 @@
(easy:response-headers-ref dest-res 'content-type)) (easy:response-headers-ref dest-res 'content-type))
(define (get-media-html url content-type) (define (get-media-html url content-type)
(define proxied-url (if (config-true? 'strict_proxy) (u-proxy-url url) url)) (define maybe-proxied-url (if (config-true? 'strict_proxy) (u-proxy-url url) url))
(cond (cond
[(eq? content-type #f) `""] [(eq? content-type #f) `""]
[(regexp-match? #rx"(?i:^image/)" content-type) `(img (@ (src ,proxied-url)))] [(regexp-match? #rx"(?i:^image/)" content-type) `(img (@ (src ,maybe-proxied-url)))]
[(regexp-match? #rx"(?i:^audio/|^application/ogg(;|$))" content-type) [(regexp-match? #rx"(?i:^audio/|^application/ogg(;|$))" content-type)
`(audio (@ (src ,proxied-url) (controls)))] `(audio (@ (src ,maybe-proxied-url) (controls)))]
[(regexp-match? #rx"(?i:^video/)" content-type) `(video (@ (src ,proxied-url) (controls)))] [(regexp-match? #rx"(?i:^video/)" content-type) `(video (@ (src ,maybe-proxied-url) (controls)))]
[else `""])) [else `""]))
(module+ test (module+ test
(require rackunit) (require rackunit)
(parameterize ([config-parameter 'strict_proxy "true"])
(check-equal? (get-media-html "https://static.wikia.nocookie.net/a" "image/jpeg") (img (@ (src "/proxy?dest=https%3A%2F%2Fstatic.wikia.nocookie.net%2Fa")))) (check-equal? (get-media-html "https://static.wikia.nocookie.net/a" "image/jpeg") (img (@ (src "/proxy?dest=https%3A%2F%2Fstatic.wikia.nocookie.net%2Fa"))))
(check-equal? (get-media-html "https://static.wikia.nocookie.net/b" "audio/mp3") (audio (@ (src "/proxy?dest=https%3A%2F%2Fstatic.wikia.nocookie.net%2Fb")))) (check-equal? (get-media-html "https://static.wikia.nocookie.net/b" "audio/mp3") (audio (@ (src "/proxy?dest=https%3A%2F%2Fstatic.wikia.nocookie.net%2Fb")))))
(parameterize ([config-parameter 'strict_proxy "no"])
(check-equal? (get-media-html "https://static.wikia.nocookie.net/c" "application/ogg") (audio (@ (src "/proxy?dest=https%3A%2F%2Fstatic.wikia.nocookie.net%2Fc")))) (check-equal? (get-media-html "https://static.wikia.nocookie.net/c" "application/ogg") (audio (@ (src "/proxy?dest=https%3A%2F%2Fstatic.wikia.nocookie.net%2Fc"))))
(check-equal? (get-media-html "https://static.wikia.nocookie.net/d" "video/mp4") (video (@ (src "/proxy?dest=https%3A%2F%2Fstatic.wikia.nocookie.net%2Fd")))) (check-equal? (get-media-html "https://static.wikia.nocookie.net/d" "video/mp4") (video (@ (src "/proxy?dest=https%3A%2F%2Fstatic.wikia.nocookie.net%2Fd")))))
(check-equal? (get-media-html "https://example.com" "who knows") "") (check-equal? (get-media-html "https://example.com" "who knows") "")
(check-equal? (get-media-html #f "who knows") "")) (check-equal? (get-media-html #f "who knows") ""))