Nodes/UCLA Daily/UCLA Daily: Hammer Fetch
ComfyUI Node

UCLA Daily: Hammer Fetch

Hammer Museum events, dated automatically for today

By jbrick2070·Created 5 months ago·Updated 5 months ago· 0
UCLA Daily: Hammer Fetch
  • ucla_data
  • ucla_data
  • segment_text
max_items10
custom_url

The Hammer is UCLA's contemporary art museum, its exhibitions are free to the public, and its events page is server-rendered HTML - which is exactly why UCLAHammerFetch can scrape it with nothing but the standard library. It's one of the UCLA Daily pack's scraper-style fetchers, and it has one neat trick: if you leave the URL alone, it builds the URL with today's date baked in, so the page it scrapes is always showing current and upcoming programs.

The pack, by Jeffrey A. Brick, aggregates UCLA campus events and news into lobby-display cards. All fetchers share the same contract - UCLA_DATA in, UCLA_DATA plus segment_text out - so Hammer Fetch chains with any other fetcher between UCLADailyDataInit and the card, narrator, or pulse nodes.

How it works

By default it scrapes hammer.ucla.edu/programs-events/ with a start_date query parameter set to today, so you're always pulling the forward-looking view rather than the museum's full archive. Event detail URLs follow a {year}/{event-slug} pattern that the deep-dive card uses for enrichment and QR codes. HTTP goes through the shared http_utils helper - requests preferred, urllib fallback - and any scrape failure is recorded in errors[] instead of aborting the graph. IS_CHANGED forces a re-fetch on every queue run.

The custom_url input is the escape hatch for the one thing that breaks this design: a site redesign. If the Hammer rebuilds their events page as a JS app - the fate that already befell cinema.ucla.edu and arts.ucla.edu in this pack - the auto-generated URL stops being scrapable, and you'll be glad there's an override field to paste a working URL into.

The inputs

  • ucla_data - required pipeline dict from UCLADailyDataInit.
  • max_items - 1–30, default 10.
  • custom_url - optional override; leave blank to auto-generate with today's date.

Outputs

Two: ucla_data (enriched, chainable) and segment_text - the plain-text event list for UCLALobbyCard or UCLANarrator.

Install

ComfyUI Manager → search UCLA Daily, or by hand:

cd ComfyUI/custom_nodes
git clone https://github.com/jbrick2070/ComfyUI-UCLADaily.git
pip install qrcode pillow requests

Restart ComfyUI. No keys, no models.

Common issues

Same scraper family as CS, Fowler, and SEIS: it lives and dies by the museum's HTML staying put. And remember every queue run is a live scrape - if you're iterating on card layout, don't leave Hammer Fetch (plus four siblings) hammering their servers on every run. Pull once, render, iterate.

CategoryUCLA Daily/Fetchers

Inputs (3)

NameTypeDefaultDescription
ucla_dataUCLA_DATA
max_itemsINT101–30Maximum number of events to extract.
custom_urloptSTRINGOverride URL. Leave blank to auto-generate with today's date.

Outputs (2)

NameTypeDescription
ucla_dataUCLA_DATA
segment_textSTRING