All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 41s
- URL structure changes from /<route> to /<market_slug>/<route> - Root / shows markets listing page - app.py: url_value_preprocessor, url_defaults, hydrate_market (events app pattern) - Browse queries (db_nav, db_products_nocounts, db_products_counts) accept market_id - _productInfo reads g.market.id to scope all queries - save_nav accepts market_id, sets on new NavTop rows - API save_nav passes g.market.id - Scraper default URLs point to /suma-market/ on port 8001 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
27 lines
681 B
Python
27 lines
681 B
Python
# replace your existing upsert_product with this version
|
|
|
|
import os
|
|
import httpx
|
|
|
|
from typing import List
|
|
|
|
async def capture_listing(
|
|
url: str,
|
|
items: List[str],
|
|
total_pages: int
|
|
):
|
|
|
|
sync_url = os.getenv("CAPTURE_LISTING_URL", "http://localhost:8001/suma-market/api/products/listing/")
|
|
|
|
async with httpx.AsyncClient(timeout=httpx.Timeout(20.0, connect=10.0)) as client:
|
|
_d = {
|
|
"url": url,
|
|
"items": items,
|
|
"total_pages": total_pages
|
|
}
|
|
resp = await client.post(sync_url, json=_d)
|
|
# Raise for non-2xx
|
|
resp.raise_for_status()
|
|
data = resp.json() if resp.content else {}
|
|
return data
|
|
|