[object Object]

← back to Dw Vendor Scrapers Local

coordonne recrawl: drop shared Coordonne_Qualities material badge + skip N/A spec values

f432b388b2b61c9dfa3b5f37730674679991eb8c · 2026-06-10 16:38:14 -0700 · SteveStudio2

Files touched

Diff

commit f432b388b2b61c9dfa3b5f37730674679991eb8c
Author: SteveStudio2 <stevestudio2@SteveStacStudio.lan>
Date:   Wed Jun 10 16:38:14 2026 -0700

    coordonne recrawl: drop shared Coordonne_Qualities material badge + skip N/A spec values
---
 recrawl-coordonne.js | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/recrawl-coordonne.js b/recrawl-coordonne.js
index db559bb..a136d63 100644
--- a/recrawl-coordonne.js
+++ b/recrawl-coordonne.js
@@ -66,7 +66,10 @@ function toFullSize(u) {
 
 // Junk filters — never store logos, icons, payment badges, flags, avatars,
 // placeholders, or sprite assets as product images.
-const JUNK = /(logo|icon|favicon|placeholder|sprite|payment|visa|mastercard|paypal|flag|avatar|loader|spinner|swatch-sprite|woocommerce-placeholder)/i;
+// `qualities` = Coordonne_Qualities_NonWoven/Vinyl/etc. — a generic material-spec
+// badge shared identically across every SKU of that material; not a product photo,
+// and storing it would violate the no-shared-image-across-SKUs rule.
+const JUNK = /(logo|icon|favicon|placeholder|sprite|payment|visa|mastercard|paypal|flag|avatar|loader|spinner|swatch-sprite|woocommerce-placeholder|qualities)/i;
 
 // Extract every product image from a coordonne product page.
 // Covers WooCommerce-style galleries (data-large_image / gallery anchors) and
@@ -134,7 +137,10 @@ function extractSpecsFromHtml(html, mfrSku) {
     if (Array.isArray(vars) && vars.length) {
       const want = String(mfrSku || '').trim().toLowerCase();
       const v = vars.find(x => String(x.sku || '').trim().toLowerCase() === want) || vars[0];
-      const add = (k, val) => { const s = stripTags(val); if (s) specs[k] = s; };
+      const add = (k, val) => {
+        const s = stripTags(val);
+        if (s && !/^(n\/?a|-|—|none)$/i.test(s)) specs[k] = s;  // skip empty/"N/A" noise
+      };
       const attrs = v.attributes || {};
       add('composition', attrs.attribute_pa_composition || v.theme_composition);
       add('care', v.theme_care);

← 0851c0c coordonne recrawl: reject 3rd-party share-link images (pinte  ·  back to Dw Vendor Scrapers Local  ·  recrawl-schumacher: dry-run skips DB write + self-heal pinte 127175f →