summaryrefslogtreecommitdiff
path: root/parser/thailandtea.fnl
diff options
context:
space:
mode:
Diffstat (limited to 'parser/thailandtea.fnl')
-rw-r--r--parser/thailandtea.fnl64
1 files changed, 64 insertions, 0 deletions
diff --git a/parser/thailandtea.fnl b/parser/thailandtea.fnl
new file mode 100644
index 0000000..ba4ac1c
--- /dev/null
+++ b/parser/thailandtea.fnl
@@ -0,0 +1,64 @@
+(import-macros {: map} :lib.macro)
+
+(local number (require :lib.number))
+(local str (require :lib.string))
+(local fetcher (require :fetcher))
+(local json (require :vendor.json))
+
+(fn format-url [path page]
+ (.. "https://store.tildaapi.com/api/getproductslist/"
+ "?storepartuid=" path
+ "&slice=" page
+ "&recid=1117084816"
+ "&c=1759202174912"
+ "&getparts=true"
+ "&getoptions=true"
+ "&size=36"))
+
+(fn destruct-response [response]
+ {:items (. (json.decode response) :products)})
+
+(fn normalize [product]
+ (local gallery (json.decode product.gallery))
+ (local edition (. product.editions 1))
+ (local weight (number.string->number edition.Вес))
+ (local price (number.string->number product.price))
+ (local title
+ (if (string.match product.title "/")
+ (str.trim (. (str.split product.title "/") 2))
+ product.title))
+
+ ;; removing products with weight > 100: these are for buying in bulk.
+ (when (and (~= product.quantity "0") weight (< weight 100))
+ {:site "thailandtea"
+ :url product.url
+ :title title
+ :description product.text
+ ;; FIXME: parse all editions into different products
+ :image (if (< 0 (# gallery))
+ (. gallery 1 :img)
+ "")
+ :weight weight
+ :volume 0
+ :price price
+ :price-per (if (and price weight (< 0 weight))
+ (/ (math.ceil (* (/ price weight) 10)) 10)
+ nil)
+ :characteristics product.characteristics}))
+
+(fn products []
+ (fetcher.from-json
+ [{:path "598539851691" :tags ["Шен пуэр"]}
+ {:path "336610050931" :tags ["Шу пуэр"]}
+ {:path "336610050931" :tags ["Хэй ча"]}
+ {:path "301615446601" :tags ["Улун"]}
+ {:path "563074948861" :tags ["Улун" "Габа"]}
+ {:path "232469549561" :tags ["Красный чай"]}
+ {:path "189665932031" :tags ["Белый чай"]}]
+ format-url
+ destruct-response
+ normalize))
+
+{:products products
+ :title "HUBAR TEA"
+ :url "https://thailand-tea.ru"}