diff options
| author | unwox <me@unwox.com> | 2024-10-07 20:20:20 +0600 |
|---|---|---|
| committer | unwox <me@unwox.com> | 2024-10-08 14:06:42 +0600 |
| commit | b9e86f6efc66dac7a46f4f098b0eb109c46f8a2b (patch) | |
| tree | 4e2bda91bee7cfa0003ae9e374618f0fd7fb2dc6 /parser | |
| parent | 152b046be82ab70bc77ef9fc0e1bb3e9c027bc86 (diff) | |
make guess-category ignore string casing
Diffstat (limited to 'parser')
| -rw-r--r-- | parser/parser.fnl | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/parser/parser.fnl b/parser/parser.fnl index b52f881..c9c6b69 100644 --- a/parser/parser.fnl +++ b/parser/parser.fnl @@ -104,17 +104,24 @@ (: (peg.Ct (^ (peg.Ct tag) 1)) :match html)) +;; FIXME: make guessing case insensitive (fn guess-category [title] - (if (: (anywhere (+ (peg.P "зеленый") "Зеленый")) :match title) + (local title (if title (luna.utf.lower title) "")) + + (if (: (anywhere (peg.P "зеленый")) :match title) "Зеленый чай" - (: (anywhere (+ (peg.P "Улун") "улун")) :match title) + (: (anywhere (peg.P "улун")) :match title) "Улун" - (: (anywhere (+ (peg.P "Белый") "белый")) :match title) + (: (anywhere (peg.P "белый")) :match title) "Белый чай" - (: (anywhere (+ (peg.P "Желтый") "желтый")) :match title) + (: (anywhere (peg.P "желтый")) :match title) "Желтый чай" - (: (anywhere (+ (peg.P "Красный") "красный")) :match title) + (: (anywhere (peg.P "красный")) :match title) "Красный чай" + (: (anywhere (peg.P "хэй ча")) :match title) + "Хэй ча" + (: (anywhere (+ (peg.P "матча") "маття")) :match title) + "Матча" "Неизвестная категория")) (fn guess-year [title] @@ -126,10 +133,12 @@ :match title))) (fn guess-weight [title] - (number.string->number - (: (anywhere - (* (peg.C pegs.number) (maybe " ") "гр")) - :match title))) + (if title + (number.string->number + (: (anywhere + (* (peg.C pegs.number) (maybe " ") "гр")) + :match title)) + nil)) {: match-many : tag |
