From 4806cdfd1caa58a1989e4757a3edd54b2843925d Mon Sep 17 00:00:00 2001 From: Rene Fichtmueller Date: Tue, 7 Jul 2026 22:10:01 +0200 Subject: [PATCH] =?UTF-8?q?feat(scraper):=20100G+=20zuerst=20in=20Ziel-Aus?= =?UTF-8?q?wahl=20(fs-com=20Detail/Discovery=20+=20verify-product-page-pri?= =?UTF-8?q?ces=20+=20resolve-price-availability)=20=E2=80=94=20Lupo-Fokus?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/scraper/src/scrapers/fs-com.ts | 4 +++- packages/scraper/src/utils/resolve-price-availability.ts | 3 ++- packages/scraper/src/utils/verify-product-page-prices.ts | 3 ++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/scraper/src/scrapers/fs-com.ts b/packages/scraper/src/scrapers/fs-com.ts index 30ba2e6..7d8e03c 100644 --- a/packages/scraper/src/scrapers/fs-com.ts +++ b/packages/scraper/src/scrapers/fs-com.ts @@ -700,7 +700,8 @@ export async function scrapeFs(): Promise { WHERE v.name = 'FS.COM' AND COALESCE(t.product_page_url, '') = '' AND t.part_number ~ '^FS-[0-9]+$' - ORDER BY t.part_number + ORDER BY (COALESCE(t.speed_gbps, 0) >= 100) DESC, -- 100G+ zuerst (Lupo-Fokus) + t.part_number LIMIT $1 `, [MAX_DETAIL_PAGES_PER_RUN] @@ -732,6 +733,7 @@ export async function scrapeFs(): Promise { OR COALESCE(t.reach_label, '') = '' ) ORDER BY + (COALESCE(t.speed_gbps, 0) >= 100) DESC, -- 100G+ zuerst (Lupo-Fokus), dann Verifikations-Lücke COALESCE(t.price_verified, false) DESC, COALESCE(t.image_verified, false) DESC, COALESCE(t.details_verified, false) ASC, diff --git a/packages/scraper/src/utils/resolve-price-availability.ts b/packages/scraper/src/utils/resolve-price-availability.ts index dfa9854..c1f8f6d 100644 --- a/packages/scraper/src/utils/resolve-price-availability.ts +++ b/packages/scraper/src/utils/resolve-price-availability.ts @@ -125,7 +125,8 @@ async function main(): Promise { AND COALESCE(t.price_verified, false) = false AND COALESCE(t.price_status, 'needs_research') IN ('unknown', 'needs_research', 'ambiguous') ${vendorWhere} - ORDER BY v.name, t.part_number + ORDER BY (COALESCE(t.speed_gbps, 0) >= 100) DESC, -- 100G+ zuerst (Lupo-Fokus) + v.name, t.part_number LIMIT $2`, params, ); diff --git a/packages/scraper/src/utils/verify-product-page-prices.ts b/packages/scraper/src/utils/verify-product-page-prices.ts index cab2ecb..dc4559c 100644 --- a/packages/scraper/src/utils/verify-product-page-prices.ts +++ b/packages/scraper/src/utils/verify-product-page-prices.ts @@ -108,7 +108,8 @@ async function main(): Promise { AND COALESCE(t.price_verified, false) = false AND COALESCE(t.price_status, 'needs_research') IN ('unknown', 'needs_research', 'ambiguous') AND COALESCE(t.product_page_url, '') != '' - ORDER BY v.name, t.part_number + ORDER BY (COALESCE(t.speed_gbps, 0) >= 100) DESC, -- 100G+ zuerst (Lupo-Fokus) + v.name, t.part_number LIMIT $2`, [vendorNames, limit], );