put all image stuff in image.ml, make thumbnail for avatars
This commit is contained in:
parent
7ad84cc1ab
commit
eed9af951c
7 changed files with 240 additions and 186 deletions
|
|
@ -293,32 +293,33 @@ let profile_post request =
|
|||
| `Wrong_session _ | `Wrong_content_type ->
|
||||
Dream.empty `Bad_Request ) )
|
||||
|
||||
let avatar_image request =
|
||||
let get_post_image ~thumbnail request =
|
||||
let id = Dream.param request "id" in
|
||||
let image =
|
||||
if thumbnail then Image.get_thumbnail id else Image.get_content id
|
||||
in
|
||||
match image with
|
||||
| Error e -> render_unsafe e request
|
||||
| Ok image_opt -> (
|
||||
match image_opt with
|
||||
| None -> Dream.respond ~status:`Not_Found "Image does not exists"
|
||||
| Some image -> Dream.respond ~headers:[ ("Content-Type", "image") ] image )
|
||||
|
||||
let get_avatar_image request =
|
||||
let nick = Dream.param request "user" in
|
||||
match User.get_user_id_from_nick nick with
|
||||
| Error _e -> Dream.respond ~status:`Not_Found "User does not exists"
|
||||
| Ok user_id -> (
|
||||
let avatar = User.get_avatar user_id in
|
||||
let avatar = Image.get_user_content user_id in
|
||||
match avatar with
|
||||
| Ok (Some avatar) ->
|
||||
Dream.respond ~headers:[ ("Content-Type", "image") ] avatar
|
||||
| Ok None | Error _ -> (
|
||||
| Ok None -> (
|
||||
match Content.read "/assets/img/default_avatar.png" with
|
||||
| None -> failwith "can't find default avatar"
|
||||
| Some avatar ->
|
||||
Dream.respond ~headers:[ ("Content-Type", "image") ] avatar ) )
|
||||
|
||||
let get_post_image ~thumbnail request =
|
||||
let post_id = Dream.param request "post_id" in
|
||||
if Babillard.post_exist post_id then
|
||||
let image =
|
||||
if thumbnail then Babillard.get_post_image_thumbnail post_id
|
||||
else Babillard.get_post_image_content post_id
|
||||
in
|
||||
match image with
|
||||
| Ok image -> Dream.respond ~headers:[ ("Content-Type", "image") ] image
|
||||
| Error _ -> Dream.empty `Not_Found
|
||||
else Dream.respond ~status:`Not_Found "Image does not exists"
|
||||
Dream.respond ~headers:[ ("Content-Type", "image") ] avatar )
|
||||
| Error e -> render_unsafe e request )
|
||||
|
||||
let markers request =
|
||||
let markers = Pp_babillard.get_markers () in
|
||||
|
|
@ -467,8 +468,8 @@ let routes =
|
|||
; get_ "/discuss" Discuss.render
|
||||
; get_ "/discuss/:comrade_id" Discuss.render_one
|
||||
; post "/discuss/:comrade_id" Discuss.post
|
||||
; get_ "/img/:post_id" (get_post_image ~thumbnail:false)
|
||||
; get_ "/img/s/:post_id" (get_post_image ~thumbnail:true)
|
||||
; get_ "/img/:id" (get_post_image ~thumbnail:false)
|
||||
; get_ "/img/s/:id" (get_post_image ~thumbnail:true)
|
||||
; get_ "/login" login_get
|
||||
; post "/login" login_post
|
||||
; get_ "/logout" logout
|
||||
|
|
@ -482,7 +483,7 @@ let routes =
|
|||
; get_ "/thread/:thread_id/feed" thread_feed_get
|
||||
; get_ "/user" user
|
||||
; get_ "/user/:user" user_profile
|
||||
; get_ "/user/:user/avatar" avatar_image
|
||||
; get_ "/user/:user/avatar" get_avatar_image
|
||||
]
|
||||
@
|
||||
if App.open_registration then
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue