use name as alt, display max size

This commit is contained in:
Swrup 2022-04-04 17:54:44 +02:00
parent 49c03b167e
commit 47c37be080

View file

@ -35,14 +35,18 @@ let () =
Format.eprintf "db error@\n"; Format.eprintf "db error@\n";
exit 1 exit 1
let mime_database = Conan.Process.database ~tree:Conan_light.tree let mime =
let database = Conan.Process.database ~tree:Conan_light.tree in
let mime contents = fun content ->
match Conan_string.run ~database:mime_database contents with match Conan_string.run ~database content with
| Ok m -> Conan.Metadata.mime m | Ok m -> Conan.Metadata.mime m
| Error _ -> None | Error _ -> None
let clean_image image = let clean_image image =
let max_name = 1000 in
let max_alt = 3000 in
let max_content = 4200000 in
let name, alt, content = image in let name, alt, content = image in
let name = let name =
match name with match name with
@ -51,9 +55,13 @@ let clean_image image =
(* make up random name if no name was given *) (* make up random name if no name was given *)
Uuidm.to_string (Uuidm.v4_gen random_state ()) Uuidm.to_string (Uuidm.v4_gen random_state ())
in in
if String.length name > 1000 then Error "Image name too long" let alt = if String.trim alt = "" then name else alt in
else if String.length alt > 1000 then Error "Image description too long" if String.length name > max_name then
else if String.length content > 4200000 then Error "Image size too big" Error (Format.sprintf "Image name too long: More than %dB" max_name)
else if String.length alt > max_alt then
Error (Format.sprintf "Image description too long: More than %dB" max_alt)
else if String.length content > max_content then
Error (Format.sprintf "Image size too big: More than %dB" max_content)
else else
match mime content with match mime content with
| None -> Error "invalid image type" | None -> Error "invalid image type"