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%
8.3 KB · 201 lines json
Raw Blame History
1{2  "id": "gamezilla",3  "displayName": "GameZilla (Canadian TCG & collector-toy store, CAD)",4  "sourceId": "gamezilla",5  "sourceName": "GameZilla",6  "sourceType": "dealer",7  "sourceUrl": "https://www.gamezilla.ca",8  "module": "api/gamezilla",9  "enginePriority": [10    "api"11  ],12  "categories": [13    "magic_the_gathering",14    "gundam",15    "action_figures",16    "disney_lorcana",17    "other_tcg"18  ],19  "regions": [20    "CA"21  ],22  "languages": [23    "en"24  ],25  "currency": [26    "CAD"27  ],28  "supportsListings": true,29  "supportsSold": false,30  "supportsAuctions": false,31  "supportsImages": true,32  "supportsCatalog": false,33  "supportsPopulation": false,34  "supportsLookup": true,35  "refreshFrequencyMinutes": 720,36  "priority": "medium",37  "trustScore": 0.75,38  "attributionRequired": true,39  "termsUrl": "https://www.gamezilla.ca/policies/terms-of-service",40  "accessNotes": "GameZilla (gamezilla.ca) runs on Shopify. The connector reads ONLY the public, unauthenticated storefront JSON that every Shopify shop serves to any visitor: /collections/<handle>/products.json?limit=250&page=N for the 26 configured collections (mtg-commander-masters, mtg-commander-legends-battle-for-baldurs-gat, mtg-avatar-the-last-airbender, mtg-foundations, mtg-final-fantasy-commander, mtg-commander-legends, mtg-modern-horizons-3-commander, mtg-edge-of-eternities … (+18 more, see config.collections)) and /products/<handle>.json for URL lookups (~10k MTG singles over per-set collections, 1.4k Gunpla, 600 anime statues). robots.txt (verified 2026-09-08, User-agent *): standard Shopify rules — Disallow /admin, /cart, /checkout(s), /orders, /account, /services, /sf_*, /cart.js, /recommendations/products, /cdn/wpm/*.js and the filter/sort crawl traps (/collections/*sort_by*, /collections/*+*, /collections/*filter*&*filter*); no Crawl-delay for *. The /collections/<handle>/products.json and /products/<handle>.json paths we read carry none of those patterns and are allowed. Sitemap declared at /sitemap.xml (not needed). Access behaviour: plain HTTP 200 JSON with the honest RareIndexBot UA, no anti-bot challenge, no login, no key. Market pinning: Shopify Markets localises products.json prices by the requester IP as soon as an Accept-Language header is present (observed on Markets-enabled shops: a Canadian crawler receives CAD-converted prices with content-language en-CA while the JSON carries no currency field). Every request therefore sends the public localization=CA cookie — the shop's own home market, exactly what a CA visitor gets — so prices are always the declared CAD (verified 2026-09-08: 30.00 vs 43.00 on a Markets shop). Politeness: 1 request per 1.5 s, concurrency 1 per host (connectors/domains.d/g3-shops-na.json), crawlDepth pages per collection per incremental run, backfill bounded by backfillMaxPages. Data: asking prices in CAD (the shop's declared currency) — these are LISTINGS, never sales (§111); one listing per variant (condition/size/edition), variant SKU kept as identifier, out-of-stock variants kept as 'ended' listings, 0.00-priced placeholders dropped. Dates: published_at only; no fetch time is ever used as a sale date. Deliberately NOT fetched: cart/checkout/account/customer endpoints, per-product .js barcode enrichment (fetchBarcodes=false: one extra request per product is not worth it for listings), the whole-shop /products.json, and unmapped collections — model-kit tools/markers/decals, D&D unpainted minis, sale collections, the many small per-set MTG collections not listed (added on demand). No personal data is collected; seller = the store itself.",41  "enabled": true,42  "schemaVersion": "1.0",43  "acquisitionMethod": "Shopify storefront products.json",44  "historicalDepth": "none",45  "requires": [],46  "config": {47    "currency": "CAD",48    "market": "CA",49    "seller": "GameZilla",50    "location": "Moncton / Bathurst / Saint John, NB, Canada",51    "collections": [52      {53        "handle": "mtg-commander-masters",54        "categorySlug": "magic_the_gathering",55        "franchise": "Magic: The Gathering"56      },57      {58        "handle": "mtg-commander-legends-battle-for-baldurs-gat",59        "categorySlug": "magic_the_gathering",60        "franchise": "Magic: The Gathering"61      },62      {63        "handle": "mtg-avatar-the-last-airbender",64        "categorySlug": "magic_the_gathering",65        "franchise": "Magic: The Gathering"66      },67      {68        "handle": "mtg-foundations",69        "categorySlug": "magic_the_gathering",70        "franchise": "Magic: The Gathering"71      },72      {73        "handle": "mtg-final-fantasy-commander",74        "categorySlug": "magic_the_gathering",75        "franchise": "Magic: The Gathering"76      },77      {78        "handle": "mtg-commander-legends",79        "categorySlug": "magic_the_gathering",80        "franchise": "Magic: The Gathering"81      },82      {83        "handle": "mtg-modern-horizons-3-commander",84        "categorySlug": "magic_the_gathering",85        "franchise": "Magic: The Gathering"86      },87      {88        "handle": "mtg-edge-of-eternities",89        "categorySlug": "magic_the_gathering",90        "franchise": "Magic: The Gathering"91      },92      {93        "handle": "mtg-aetherdrift",94        "categorySlug": "magic_the_gathering",95        "franchise": "Magic: The Gathering"96      },97      {98        "handle": "mtg-final-fantasy",99        "categorySlug": "magic_the_gathering",100        "franchise": "Magic: The Gathering"101      },102      {103        "handle": "mtg-dominaria-united",104        "categorySlug": "magic_the_gathering",105        "franchise": "Magic: The Gathering"106      },107      {108        "handle": "mtg-double-masters-2022",109        "categorySlug": "magic_the_gathering",110        "franchise": "Magic: The Gathering"111      },112      {113        "handle": "mtg-bloomburrow",114        "categorySlug": "magic_the_gathering",115        "franchise": "Magic: The Gathering"116      },117      {118        "handle": "mtg-duskmourn-house-of-horror",119        "categorySlug": "magic_the_gathering",120        "franchise": "Magic: The Gathering"121      },122      {123        "handle": "gundam",124        "categorySlug": "gundam",125        "brand": "Bandai",126        "franchise": "Gundam"127      },128      {129        "handle": "gundam-high-grade",130        "categorySlug": "gundam",131        "brand": "Bandai",132        "franchise": "Gundam",133        "series": "High Grade"134      },135      {136        "handle": "gundam-master-grade",137        "categorySlug": "gundam",138        "brand": "Bandai",139        "franchise": "Gundam",140        "series": "Master Grade"141      },142      {143        "handle": "gundam-real-grade",144        "categorySlug": "gundam",145        "brand": "Bandai",146        "franchise": "Gundam",147        "series": "Real Grade"148      },149      {150        "handle": "gundam-perfect-grade",151        "categorySlug": "gundam",152        "brand": "Bandai",153        "franchise": "Gundam",154        "series": "Perfect Grade"155      },156      {157        "handle": "anime-statue",158        "categorySlug": "action_figures"159      },160      {161        "handle": "one-piece-figures",162        "categorySlug": "action_figures",163        "franchise": "One Piece"164      },165      {166        "handle": "dragon-ball-figures",167        "categorySlug": "action_figures",168        "franchise": "Dragon Ball"169      },170      {171        "handle": "naruto-figures",172        "categorySlug": "action_figures",173        "franchise": "Naruto"174      },175      {176        "handle": "demon-slayer-figures",177        "categorySlug": "action_figures",178        "franchise": "Demon Slayer"179      },180      {181        "handle": "disney-lorcana",182        "categorySlug": "disney_lorcana",183        "franchise": "Disney Lorcana"184      },185      {186        "handle": "gundam-tcg",187        "categorySlug": "other_tcg",188        "franchise": "Gundam Card Game"189      }190    ],191    "rules": [],192    "defaultCategory": null,193    "exclude": "gift card|sleeves?|deck box|binder|playmat|toploader|top loader|storage box|dice|tokens? only|bundle of|mystery|buylist|submission|event ticket|\\bentry\\b|tournament|store credit|pre-?release event|supplies|card savers?|\\brepack|bulk lot|\\blot of\\b|\\bpaints?\\b|primer|brushes|online (pack|code)|digital code|code card|unused digital|ptcgo|ptcg live|\\bglue\\b|\\btools?\\b|\\bnippers?\\b|\\bmarkers?\\b|\\bdecals?\\b|action base|display base",194    "keepOutOfStock": true,195    "fetchBarcodes": false,196    "wholeShop": false,197    "pageSize": 250,198    "titlePattern": "^(?<name>.+?) \\[(?<set>[^\\]]+)\\]$"199  }200}201