diff options
| author | unwox <me@unwox.com> | 2025-09-30 10:06:45 +0600 |
|---|---|---|
| committer | unwox <me@unwox.com> | 2025-10-23 13:05:00 +0600 |
| commit | 2c89f5f32ccd2ee8220e5b958d9324b318e53266 (patch) | |
| tree | 1d6d6e71afebf6c977e69ac82fed136429825bb6 /parser/thailandtea.fnl | |
| parent | 9470b10bdd9e1cc166a4b9ddfbdf09d1c4818ae8 (diff) | |
add thailandtea parser
Diffstat (limited to 'parser/thailandtea.fnl')
| -rw-r--r-- | parser/thailandtea.fnl | 64 |
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"} |
