Adds a new site extractor for pizzint.watch — the Pentagon Pizza Index dashboard that tracks pizza shop activity near the Pentagon as an OSINT indicator of military activity.
sites/pizzint/pizzint.go — Core extractor with Config.GetStatus() method that fetches the PizzINT /api/dashboard-data endpoint via the browser and parses the JSON response into Go types (PizzaStatus, DoughconLevel, Restaurant, Event)
sites/pizzint/pizzint_test.go — Mock-based unit tests covering JSON parsing, HTML-wrapped responses, DOUGHCON levels, restaurant status strings, and error cases (11 tests)
sites/pizzint/cmd/pizzint/main.go — CLI tool with two modes:
One-shot: prints current pizza status as JSON
HTTP server (--serve): exposes GET /status (JSON) and GET / (human-readable text) with configurable caching (--cache-ttl)
## Summary
Adds a new site extractor for [pizzint.watch](https://www.pizzint.watch/) — the Pentagon Pizza Index dashboard that tracks pizza shop activity near the Pentagon as an OSINT indicator of military activity.
- **`sites/pizzint/pizzint.go`** — Core extractor with `Config.GetStatus()` method that fetches the PizzINT `/api/dashboard-data` endpoint via the browser and parses the JSON response into Go types (`PizzaStatus`, `DoughconLevel`, `Restaurant`, `Event`)
- **`sites/pizzint/pizzint_test.go`** — Mock-based unit tests covering JSON parsing, HTML-wrapped responses, DOUGHCON levels, restaurant status strings, and error cases (11 tests)
- **`sites/pizzint/cmd/pizzint/main.go`** — CLI tool with two modes:
- **One-shot**: prints current pizza status as JSON
- **HTTP server** (`--serve`): exposes `GET /status` (JSON) and `GET /` (human-readable text) with configurable caching (`--cache-ttl`)
### API Response Example
```json
{
"doughcon_level": 4,
"doughcon_label": "DOUBLE TAKE",
"overall_index": 28,
"restaurants": [
{
"name": "DOMINO'S PIZZA",
"current_popularity": 15,
"is_spike": false,
"is_closed": false,
"data_freshness": "fresh"
}
],
"fetched_at": "2026-02-22T05:45:00Z"
}
```
### Usage
```bash
# One-shot
go run ./sites/pizzint/cmd/pizzint
# HTTP server
go run ./sites/pizzint/cmd/pizzint --serve --port 8080 --cache-ttl 5m
```
## Test plan
- [x] All 11 unit tests pass (`go test ./sites/pizzint/...`)
- [x] Full project builds cleanly (`go build ./...`)
- [x] All existing tests still pass (`go test ./...`)
- [ ] Manual test with real browser against live pizzint.watch
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Adds a new site extractor for pizzint.watch, which tracks pizza shop
activity near the Pentagon as an OSINT indicator. The extractor fetches
the dashboard API and exposes DOUGHCON levels, restaurant activity, and
spike events.
Includes a CLI tool with an HTTP server mode (--serve) for embedding
the pizza status in dashboards or status displays.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
steve
merged commit 3cc528a766 into main2026-02-22 05:52:56 +00:00
steve
deleted branch feature/pizzint-site-extractor2026-02-22 05:52:56 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Adds a new site extractor for pizzint.watch — the Pentagon Pizza Index dashboard that tracks pizza shop activity near the Pentagon as an OSINT indicator of military activity.
sites/pizzint/pizzint.go— Core extractor withConfig.GetStatus()method that fetches the PizzINT/api/dashboard-dataendpoint via the browser and parses the JSON response into Go types (PizzaStatus,DoughconLevel,Restaurant,Event)sites/pizzint/pizzint_test.go— Mock-based unit tests covering JSON parsing, HTML-wrapped responses, DOUGHCON levels, restaurant status strings, and error cases (11 tests)sites/pizzint/cmd/pizzint/main.go— CLI tool with two modes:--serve): exposesGET /status(JSON) andGET /(human-readable text) with configurable caching (--cache-ttl)API Response Example
Usage
Test plan
go test ./sites/pizzint/...)go build ./...)go test ./...)🤖 Generated with Claude Code