feat: initialize market app with browsing, product, and scraping code
Some checks failed
Build and Deploy / build-and-deploy (push) Has been cancelled
Some checks failed
Build and Deploy / build-and-deploy (push) Has been cancelled
Split from coop monolith. Includes: - Market/browse/product blueprints - Product sync API - Suma scraping pipeline - Templates for market, browse, and product views - Dockerfile and CI workflow for independent deployment
This commit is contained in:
27
scrape/persist_api/capture_listing.py
Normal file
27
scrape/persist_api/capture_listing.py
Normal file
@@ -0,0 +1,27 @@
|
||||
# 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:8000/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
|
||||
|
||||
Reference in New Issue
Block a user