SPB Git forge
38commits 1branches 0releases
338.7 MBsize
maindefault branch
3 h agolast push
HTML 53.9% TypeScript 44.5% JavaScript 0.6% SQL 0.5%
2.4 KB · 37 lines markdown
Rendered Raw Blame History
1# Princeton Digital Group (`princetondg`)23- **Domain**: `princetondg.com` · **Kind**: operator · **Priority**: 2 · **Enabled**: yes4- **License / attribution**: Publicly accessible operator pages; factual data only; © Princeton Digital Group — attribution “Princeton Digital Group”5- **Coverage**: SG, MY, ID, JP, IN, CN, KR67## What it collects89Facility records (`kind: facility`) via parser(s) `pdg_facility_v1` in `apps/worker/src/connectors/operators2/apac.ts`.1011Fields published by the pages and captured: one record per campus: name, code, city, countryIso2, totalPowerMw (Capacity), buildingSqm (Colocation Area), siteAreaHa (land area), status, description.1213Every field carries an extraction method in `methods` (e.g. `json-ld:PostalAddress`, `regex:it_mw_v1`, `attr:data-value+MW`, `lookup:city-country`) for provenance. Coordinates are only taken from JSON-LD / embedded JSON / map links published by the operator — never geocoded. Status defaults to `operational` unless the page uses pipeline wording (under construction / coming soon / planned).1415## Discovery1617- Sitemaps: `https://princetondg.com/sitemaps.xml`18- Seeds: `/locations/singapore-2/`, `/locations/japan/`, `/locations/india/`, `/locations/indonesia/`, `/locations/china/`, `/locations/malaysia/`, `/locations/south-korea/`19- Include: `princetondg\.com/locations/[a-z-]+/$`, `princetondg\.com/newsroom/[a-z0-9-]+/$`20- Exclude: `\?`, `#`, `lang=`21- Classify: `/locations/[a-z-]+/$` → facility_pages (facility_page); `/newsroom/.` → newsroom (press_release)2223Newsroom URLs (when configured) rely on the GenericConnector news fallback (press_release → `news_event` when data-center relevant).2425## Schedule & fetch2627- Schedule: facility_pages weekly, newsroom daily, sitemap weekly28- Fetch: L1→L2, 15 rpm, concurrency 2, robots.txt respected, max 20 premium credits/run. All pages are served at L1 (plain HTTP); `maxLevel` is capped at 2 so false-positive “blocked” heuristics (HubSpot / cookie-consent strings) never spend Scrapfly credits.2930## Quirks3132Country pages /locations/<country>/ contain one section per campus ('Tokyo - TY1', Colocation Area m², Capacity MW). Newsroom via sitemaps.xml. /locations/singapore/ returns 404; the SG-Johor-Batam page lives at /locations/singapore-2/ (→ singapore-plus).3334## Verification (live, 2026-09-11)3536`try-connector --limit N`: discovered 64 URLs (facility_pages=7, newsroom=57); sampled pages → 10 entities, 10 valid, 0 rejected, 0 premium credits.37