From 2c89f5f32ccd2ee8220e5b958d9324b318e53266 Mon Sep 17 00:00:00 2001 From: unwox Date: Tue, 30 Sep 2025 10:06:45 +0600 Subject: add thailandtea parser --- parser/thailandtea.fnl | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 parser/thailandtea.fnl (limited to 'parser/thailandtea.fnl') 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"} -- cgit v1.2.3