Electronics Catalog: API, MCP server, frontend and deployment
Verified catalogue of mobiles and laptops sold in India, collected from real retail listings (FastAPI backend, React frontend, Postgres/pgvector). - REST API under /api/elec (read-only catalogue; admin endpoints need login) - MCP server (FastMCP) at /mcp/ with list_categories, search_products, get_product and price_history tools - Real ratings and reviews read from product pages and search results - Production Dockerfile (requirements-api.txt, no PyTorch) and .env.production.example; remote database only via an explicit ELEC_ALLOW_REMOTE_DB host/name allowlist - docs/API.md: endpoint and MCP reference with live examples Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
77
backend/app/electronics/reference/sites.yaml
Normal file
77
backend/app/electronics/reference/sites.yaml
Normal file
@@ -0,0 +1,77 @@
|
||||
# Retail platforms.
|
||||
#
|
||||
# kind marketplace | national_chain | tn_regional
|
||||
# region national | TN (TN = a Tamil Nadu retail chain)
|
||||
# policy serp_only -> NEVER fetched directly; everything comes from web
|
||||
# search results (titles, snippets, image results)
|
||||
# probe -> fetched only if the site probe grades it A or B
|
||||
# (robots.txt allows, HTTP 200, no CAPTCHA); otherwise
|
||||
# it falls back to search results like serp_only
|
||||
# product_url regex a URL must match to count as a single product page.
|
||||
# Group 1, when present, is the site's own product id.
|
||||
# pincode_param optional query parameter the site accepts for a delivery
|
||||
# pincode. Only sites that actually honour it get
|
||||
# pincode_applied=true on their prices.
|
||||
#
|
||||
# Brand official sites are generated from brands.yaml (kind brand_official).
|
||||
sites:
|
||||
- domain: amazon.in
|
||||
name: Amazon.in
|
||||
kind: marketplace
|
||||
region: national
|
||||
policy: serp_only
|
||||
product_url: '/(?:dp|gp/product)/([A-Z0-9]{10})'
|
||||
- domain: flipkart.com
|
||||
name: Flipkart
|
||||
kind: marketplace
|
||||
region: national
|
||||
policy: serp_only
|
||||
product_url: '/p/(itm[0-9a-z]+)'
|
||||
- domain: croma.com
|
||||
name: Croma
|
||||
kind: national_chain
|
||||
region: national
|
||||
policy: probe
|
||||
product_url: '/p/(\d{5,})'
|
||||
- domain: reliancedigital.in
|
||||
name: Reliance Digital
|
||||
kind: national_chain
|
||||
region: national
|
||||
policy: probe
|
||||
product_url: '(?:/p/|/product/[^?#]*?-)(\d{6,})'
|
||||
- domain: vijaysales.com
|
||||
name: Vijay Sales
|
||||
kind: national_chain
|
||||
region: national
|
||||
policy: probe
|
||||
product_url: '/p/(?:P?)(\d{3,})/'
|
||||
- domain: tatacliq.com
|
||||
name: Tata CLiQ
|
||||
kind: marketplace
|
||||
region: national
|
||||
policy: probe
|
||||
product_url: '/p-(mp\d+)'
|
||||
- domain: poorvika.com
|
||||
name: Poorvika
|
||||
kind: tn_regional
|
||||
region: TN
|
||||
policy: probe
|
||||
product_url: '/([a-z0-9-]{8,})/p/?$'
|
||||
- domain: sangeethamobiles.com
|
||||
name: Sangeetha Mobiles
|
||||
kind: tn_regional
|
||||
region: TN
|
||||
policy: probe
|
||||
product_url: '(?i)/product-?details/(?:[^/?#]+/)?(\d+)'
|
||||
- domain: vasanthandco.in
|
||||
name: Vasanth & Co
|
||||
kind: tn_regional
|
||||
region: TN
|
||||
policy: probe
|
||||
product_url: '/(?:product|products)/([a-z0-9-]{8,})'
|
||||
- domain: viveks.com
|
||||
name: Viveks
|
||||
kind: tn_regional
|
||||
region: TN
|
||||
policy: probe
|
||||
product_url: '/([a-z0-9-]{8,})\.html$'
|
||||
Reference in New Issue
Block a user