**Scammer blocklist** - migration 006: scammer_blocklist table (platform + seller_id unique key, source: manual|csv_import|community) - ScammerEntry dataclass + Store.add/remove/list_blocklist methods - blocklist.ts Pinia store — CRUD, export CSV, import CSV with validation - BlocklistView.vue — list with search, export/import, bulk-remove; sellers show on ListingCard with force-score-0 badge - API: GET/POST/DELETE /api/blocklist + CSV export/import endpoints - Router: /blocklist route added; AppNav link **Migration renumber** - 002_background_tasks.sql → 007_background_tasks.sql (correct sequence after blocklist; idempotent CREATE IF NOT EXISTS safe for existing DBs) **Search + listing UI overhaul** - SearchView.vue: keyword expansion preview, filter chips for condition/ format/price, saved-search quick-run button, paginated results - ListingCard.vue: trust tier badge, scammer flag overlay, photo count chip, quick-block button, save-to-search action - savedSearches store: optimistic update on run, last-run timestamp **Tier refactor** - tiers.py: full rewrite with docstring ladder, BYOK LOCAL_VISION_UNLOCKABLE flag, intentionally-free list with rationale (scammer_db, saved_searches, market_comps free to maximise adoption) **Trust aggregator + scraper** - aggregator.py: blocklist check short-circuits scoring to 0/BAD_ACTOR - scraper.py: listing format detection, photo count, improved title parsing **Theme** - theme.css: trust tier color tokens, badge variants, blocklist badge
33 lines
721 B
TOML
33 lines
721 B
TOML
[build-system]
|
|
requires = ["setuptools>=68"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "snipe"
|
|
version = "0.1.0"
|
|
description = "Auction listing monitor and trust scorer"
|
|
requires-python = ">=3.11"
|
|
dependencies = [
|
|
"circuitforge-core",
|
|
"streamlit>=1.32",
|
|
"requests>=2.31",
|
|
"imagehash>=4.3",
|
|
"Pillow>=10.0",
|
|
"python-dotenv>=1.0",
|
|
"beautifulsoup4>=4.12",
|
|
"lxml>=5.0",
|
|
"fastapi>=0.111",
|
|
"python-multipart>=0.0.9",
|
|
"uvicorn[standard]>=0.29",
|
|
"playwright>=1.44",
|
|
"playwright-stealth>=1.0",
|
|
"cryptography>=42.0",
|
|
"PyJWT>=2.8",
|
|
]
|
|
|
|
[tool.setuptools.packages.find]
|
|
where = ["."]
|
|
include = ["app*", "api*"]
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["tests"]
|