diff --git a/src/global/import.ml b/src/global/import.ml index ffc78d11b3..55fd1a21f5 100644 --- a/src/global/import.ml +++ b/src/global/import.ml @@ -11,6 +11,9 @@ module String = struct false with Exit -> true + let is_sub_ignore_case pattern text = + contains_s (lowercase_ascii text) (lowercase_ascii pattern) + (* ripped off stringext, itself ripping it off from one of dbuenzli's libs *) let cut s ~on = let sep_max = length on - 1 in diff --git a/src/ocamlorg_web/lib/handler.ml b/src/ocamlorg_web/lib/handler.ml index 10e15b8ecc..44e81d2171 100644 --- a/src/ocamlorg_web/lib/handler.ml +++ b/src/ocamlorg_web/lib/handler.ml @@ -172,9 +172,7 @@ let academic_users req = let open Data.Academic_institution in let pattern = String.lowercase_ascii pattern in let name_is_s { name; _ } = String.lowercase_ascii name = pattern in - let name_contains_s { name; _ } = - String.contains_s (String.lowercase_ascii name) pattern - in + let name_contains_s { name; _ } = String.is_sub_ignore_case pattern name in let score user = if name_is_s user then -1 else if name_contains_s user then 0 @@ -233,18 +231,17 @@ let books req = let releases req = let search_release pattern t = let open Data.Release in - let pattern = String.lowercase_ascii pattern in - let version_is_s { version; _ } = - String.lowercase_ascii version = pattern + let is_version { version; _ } = + String.(lowercase_ascii version = lowercase_ascii pattern) in let version_contains_s { version; _ } = - String.contains_s (String.lowercase_ascii version) pattern + String.is_sub_ignore_case pattern version in let body_contains_s { body_md; _ } = - String.contains_s (String.lowercase_ascii body_md) pattern + String.is_sub_ignore_case pattern body_md in let score release = - if version_is_s release then -1 + if is_version release then -1 else if version_contains_s release then 0 else if body_contains_s release then 2 else failwith "impossible release score" @@ -400,18 +397,17 @@ let governance_team req = let papers req = let search_paper pattern t = let open Data.Paper in - let pattern = String.lowercase_ascii pattern in - let title_is_s { title; _ } = String.lowercase_ascii title = pattern in + let title_is_s { title; _ } = + String.(lowercase_ascii title = lowercase_ascii pattern) + in let title_contains_s { title; _ } = - String.contains_s (String.lowercase_ascii title) pattern + String.is_sub_ignore_case pattern title in let abstract_contains_s { abstract; _ } = - String.contains_s (String.lowercase_ascii abstract) pattern + String.is_sub_ignore_case pattern abstract in let has_tag_s { tags; _ } = - List.exists - (fun tag -> String.contains_s (String.lowercase_ascii tag) pattern) - tags + List.exists (fun tag -> String.is_sub_ignore_case pattern tag) tags in let score paper = if title_is_s paper then -1