feature: add PizzINT site extractor with HTTP API #67

Merged
steve merged 1 commits from feature/pizzint-site-extractor into main 2026-02-22 05:52:56 +00:00
Collaborator

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 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

{
  "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

# One-shot
go run ./sites/pizzint/cmd/pizzint

# HTTP server
go run ./sites/pizzint/cmd/pizzint --serve --port 8080 --cache-ttl 5m

Test plan

  • All 11 unit tests pass (go test ./sites/pizzint/...)
  • Full project builds cleanly (go build ./...)
  • All existing tests still pass (go test ./...)
  • Manual test with real browser against live pizzint.watch

🤖 Generated with Claude Code

## 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)
Claude added 1 commit 2026-02-22 05:46:14 +00:00
feature: add PizzINT (Pentagon Pizza Index) site extractor
All checks were successful
CI / vet (pull_request) Successful in 1m7s
CI / build (pull_request) Successful in 1m9s
CI / test (pull_request) Successful in 1m9s
c1c1acdb00
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 <noreply@anthropic.com>
steve merged commit 3cc528a766 into main 2026-02-22 05:52:56 +00:00
steve deleted branch feature/pizzint-site-extractor 2026-02-22 05:52:56 +00:00
Sign in to join this conversation.