blob: 34ee712565123de54edf51a7474dc2da3f0f32b7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
(ns pics.handler.view
(:require [clojure.string :as cstr]
[ring.util.response :as ruresp]
[hiccup2.core :as hiccup])
(:import java.io.File
java.util.Date
(java.text SimpleDateFormat)))
(defn handle-src [req]
(->> (get-in req [:reitit.core/match :path-params :file-name])
(str "./img/")
ruresp/file-response))
(defn handle [req]
(let [file (->> (.listFiles (File. "./img/"))
(filter #(cstr/starts-with? (.getName ^File %)
(str (get-in req [:reitit.core/match :path-params :id]) ".")))
first)]
(if (some? file)
(-> [:html
[:head
[:title "pics"]
[:meta {:name "robots" :content "noindex,nofollow"}]]
[:body {:style {:background-color :aquamarine}}
[:img {:src (str "/src/" (.getName ^File file))
:style {:max-height "90%"
:max-width "90%"
:border-radius "1em"
:display :block
:margin :auto}}]
(let [last-modified (Date. (.lastModified ^File file))
date-format (SimpleDateFormat. "dd.MM.yyyy")]
[:div {:style {:position :fixed
:bottom 0
:text-align :center
:width "100%"}}
[:p {:style {:font-family "Arial, sans-serif"
:background-color :white
:border-radius "1em"
:display :inline-block
:padding "0.3em"}}
(str "Uploaded on " (.format date-format last-modified))]])]]
hiccup/html
str
ruresp/response)
(ruresp/not-found "Not found."))))
|