SPB Git forge

spb/rareindex

Public
54commits 1branches 0releases
7.1 MBsize
maindefault branch
10 days agolast push
TypeScript 61.9% HTML 37.2% SQL 0.7%
3.2 KB · 46 lines markdown
Rendered Raw Blame History
1# Big B Comics connector (`big-b-comics`)23- Source: https://www.bigbcomics.com · dealer · CA · CAD · Shopify storefront4- Acquisition: public `/collections/<handle>/products.json?limit=250&page=N` (shared `ShopifyStoreConnector` adapter wrapped by `MarketPinnedShopifyConnector`, which adds a `localization=CA` cookie so Shopify Markets never geo-converts prices; no store-specific code)5- Records: `listing` (asking prices, one per variant; out-of-stock variants → `ended`)6- Refresh: every 12 h (ACTIVE→NORMAL boundary, large catalogue) · history: none (listings only)78Ontario comic-shop chain. Shopify storefront; CGC slabs titled 'Series Year #issue - CGC 9.8 - $price'; vintage comics by character; toys and trading cards.910## Collections → taxonomy11| collection handle | category | brand / franchise / series |12|---|---|---|13| `cgc-graded-comics` | `comics` | — |14| `vintage-comics` | `comics` | — |15| `comics` | `comics` | — |16| `ratio-variants` | `comics` | — |17| `marvel-comics` | `marvel_comics` | Marvel |18| `vintage-spider-man` | `marvel_comics` | Marvel |19| `vintage-x-men` | `marvel_comics` | Marvel |20| `dc-comics` | `dc_comics` | DC |21| `vintage-batman` | `dc_comics` | DC |22| `indie-comics` | `independent_comics` | — |23| `vintage-star-wars` | `comics` | Star Wars |24| `trading-cards` | `non_sport_cards` | — |25| `pokemon-cards` | `pokemon` | Pokémon |26| `funko-pops` | `funko` | Funko |27| `mcfarlane-toys` | `action_figures` | McFarlane Toys |28| `super7-reaction-figures` | `action_figures` | Super7 / ReAction |29| `hasbro-toy-group` | `action_figures` | Hasbro |30| `banpresto-toys` | `action_figures` | Banpresto |3132Rules (first match wins, applied to "title | product_type | tags | collection"):33- `^(?=[\s\S]*\b(marvel|spider-?man|x-men|avengers|wolverine|hulk|deadpool|iron man|captain america|fantastic four|daredevil|venom|punisher)\b)[\s\S]*\| (comics|vintage-comics|cgc-graded-comics|ratio-variants)$` → `marvel_comics` (franchise Marvel)34- `^(?=[\s\S]*\b(dc comics|batman|superman|wonder woman|justice league|the flash|green lantern|aquaman|detective comics|action comics|harley quinn|joker|nightwing|swamp thing)\b)[\s\S]*\| (comics|vintage-comics|cgc-graded-comics|ratio-variants)$` → `dc_comics` (franchise DC)3536Excluded (regex): `gift card|sleeves?|deck box|binder|playmat|toploader|top loader|storage box|dice|tokens? only|bundle of|mystery|bags? (and|&) boards|\bmylar|comic bags|backing boards|supplies|graphic novel|\btpb\b|trade paperback|hardcover|omnibus|\bmanga\b`3738Title pattern: `^(?<name>[^#]+?) (?:\d{4} )?#(?<number>\d+[A-Za-z]?)` (name / set / number)3940## Access & compliance41See `accessNotes` in meta.json: robots.txt verified 2026-09-08 (standard Shopify rules, products.json paths allowed), honest UA, 1 req / 1.5 s, listings only, no personal data. Not fetched: graphic novels/manga/TPB collections (books, not collectibles), pre-orders, supplies.4243## Fixtures & tests44`data/fixtures/big-b-comics/` — live captures (`pnpm tsx connectors/api/_g3-shops-na-lib/capture.ts big-b-comics`), trimmed single-product payloads incl. a sold-out variant and a graded item.45`pnpm vitest run connectors/api/big-b-comics` · live probe: `pnpm tsx connectors/api/_g3-shops-na-lib/probe.ts big-b-comics`.46