summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--parser/parser.fnl27
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