krz/omaha-metro-blotter

Archive of police activity and ALPR surveillance across the Omaha metro.

clone: git clone https://gitbay.org/krz/omaha-metro-blotter.git

ec96b33550d184d453302fb5f73f099889a49b16

signed_unknown_key

author: Christian Cleberg <hello@cleberg.net> · 2026-08-23T19:24:45Z
committer: <noreply@github.com>

Merge pull request #4 from krazywarez/static-site

Add a static public site and a Flock export reminder
 .github/workflows/daily-pull.yml |  59 +++++
 .gitignore                       |   1 +
 README.nfo                       |  26 ++-
 build_site.py                    | 174 ++++++++++++++
 fetch_boundaries.py              |  74 ++++++
 raw_data/boundaries.geojson      |   1 +
 site_template.html               | 480 +++++++++++++++++++++++++++++++++++++++
 7 files changed, 814 insertions(+), 1 deletion(-)

diff --cc README.nfo
index c015cd9,fec5418..8195539
--- a/README.nfo
+++ b/README.nfo
@@@ -93,21 -115,14 +115,23 @@@ FLOCK SEARCH AUDI
  
    cloudflare serves a challenge to every non-browser client, so
    ingest.py cannot fetch it. collecting is manual: open the portal,
 -  "download csv", save it as raw_data/flock/<slug>_<date>.csv and
 -  commit. loading is not manual -- the flock source runs in the daily
 -  job and picks up whatever is committed. search ids are stable
 -  uuids, so overlapping exports dedupe.
 +  click "download csv", then
 +
 +      .venv/bin/python ingest.py --import-flock ~/Downloads/public_search_audit.csv
 +
 +  which checks the columns, files it under the right slug and loads
 +  it. commit what it writes. every export is named
 +  public_search_audit.csv with the agency nowhere inside, so pass
 +  --agency for any portal other than council bluffs.
 +
 +  loading is not manual -- the flock source runs in the daily job and
 +  picks up whatever is committed. search ids are stable uuids, so
 +  overlapping exports dedupe and re-importing the same window is a
 +  no-op.
  
-   the portals keep 30 days. miss a month and that month is gone.
+   the portals keep 30 days. miss a month and that month is gone, so
+   the workflow warns at 21 days since the last export and fails the
+   run at 27, while there is still time to act.
  
    as of the first export, 100 of 442 council bluffs searches carried
    any reason at all, against an access policy stating that all access