#!/usr/bin/env python3 """Sample products from Webgains feeds to check for sneakers.""" import requests import json WEBGAINS_API = "https://platform-api.webgains.com" PUBLISHER_ID = "1347930" TOKEN = "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiIxMDAwMzEiLCJqdGkiOiIwNjM5ODEwYzQ0YzM1MTBlZmZiMGRkYWNiM2EyNWFlNTg2YzFmNmQ5ODNjNGQ2MDA4NzkwZmM0NTkzY2EyNjg4ZGViZDE4NTgwOThmYjJjYiIsImlhdCI6MTc3MTUxNjc4OS44MzAxMzUsIm5iZiI6MTc3MTUxNjc4OS44MzAxMzcsImV4cCI6MjA4NzA0OTU4OS44MjcwODgsInN1YiI6IjIwMTcwOCIsInNjb3BlcyI6W119.ZxlCDsyBI7_SNUWjO-PUxDYKvQVfuUBzU5n-SgqHdAZCnOj9253yVcJIS5NRXJLrnyx0E_9bn8ymfXS71cvPISA4hPAlKCSMjdkv9f2k2FFwdAlQQ6mdhBB2m9dzHUIn34QwA8s4-ikB1ATKIZeqiJL-3Gh9eiMYPpvaJdCCjN-oGPMhhlehkgA04cZSgwy6HfKgb6uPvUSG9w_tvN8U06uEHKV11DedQHNWWGzuXpd2FEL3baV0z9KjSNMZsJZHx2yHUb6gVWJwaR7_louahMvrPXG-YLgnGvNMcPDPjm-z5HJ-JKcPv9_FBqAYGItZxgeGgVoS8MVhW6lc1a-6CvYtVanfXF42MPPNP-Qq76qRtHPLRBdkIATMuBxVJrMzlprT3n4F0sUUltGR4ixZuzMUm5LeyPMHgmjy2UfYzsl9eVqx0oJCmKUyY9maBXwFLJa8J1NHM_nWp3hPpCGkMyhzHK1DIf_z8Wirg1hp5vKts93eERWJBlQwhucUUS_KnZeC_gVaQ7kT4jCwaEWkpPxPxyXWRoK0mcYS_JGz3JbpVhRLj5DVYIB9k54DXqjYlCx8ezJZE9sf2SX3VWvPvD1xSQD1caTCm0To0B-MkeU1YpEfWdUslpCJXrpOy2Wbs8iDHR1BzNrMnOEr4zbz_EoB4JJe3tGTGjzNLNIw6XI" HEADERS = {"Authorization": f"Bearer {TOKEN}", "Accept": "application/json"} CAMPAIGN_ID = "1622230" FEEDS_TO_CHECK = [ (17108, "Van Arendonk NL new"), (11218, "Van Arendonk NL"), (25538, "SikSilk NL"), (34710, "Sneakermood German Feed"), ] SHOE_WORDS = ['sneaker', 'shoe', 'trainer', 'runner', 'boot', 'slide', 'sandal', 'slipper', 'dunk', 'force 1', 'air max', 'jordan', 'yeezy', 'ultraboost', 'superstar', 'old skool', 'gel-', '990', '550', 'speedcat', 'spezial', 'schoen'] for feed_id, feed_name in FEEDS_TO_CHECK: print(f"\n{'='*60}") print(f"Feed: {feed_name} ({feed_id})") print(f"{'='*60}") url = f"{WEBGAINS_API}/auth/publishers/{PUBLISHER_ID}/campaigns/{CAMPAIGN_ID}/feeds/products" params = {"feedIds[]": [feed_id], "size": 100} try: r = requests.get(url, headers=HEADERS, params=params, timeout=30) print(f"Status: {r.status_code}") if r.status_code != 200: print(f"Error: {r.text[:300]}") continue data = r.json() products = data.get("data", []) total = data.get("pagination", {}).get("total", "?") print(f"Products in sample: {len(products)}, Total: {total}") if not products: continue # Count categories and check for sneakers cats = {} sneaker_count = 0 for p in products: cat = p.get('product_type') or ['Unknown'] if isinstance(cat, list): cat = cat[0] if cat else 'Unknown' cat = str(cat).strip()[:40] cats[cat] = cats.get(cat, 0) + 1 title = (p.get('title') or '').lower() if any(w in title for w in SHOE_WORDS): sneaker_count += 1 print(f"Categories: {sorted(cats.items(), key=lambda x: -x[1])[:10]}") print(f"Sneaker-matching titles: {sneaker_count}/{len(products)}") # Show sample products print(f"\nSample products:") for p in products[:15]: title = p.get('title', '?')[:55] brand = p.get('brand', '?')[:15] price = p.get('sale_price') or p.get('price') or '?' cat = p.get('product_type') or '?' if isinstance(cat, list): cat = cat[0] if cat else '?' print(f" {brand:15s} | {cat!s:20s} | {title}") except Exception as e: print(f"Error: {e}")