Skip to content

feat: weekday hours from library sites, not IMLS weekly totals - #12

Merged
jacobyoby merged 9 commits into
mainfrom
cursor/fix-all-issues-f863
Sep 18, 2026
Merged

jacobyoby merged 9 commits into
mainfrom
cursor/fix-all-issues-f863

Conversation

@jacobyoby

@jacobyoby jacobyoby commented Sep 18, 2026 •

Copy link
Copy Markdown
Owner

IMLS hours_open_weekly is not a schedule. Finder and outlet pages show weekday open/close from the library’s own site (or “Hours not published”). Never 52h/wk.

What landed

  • Hours: {days:[{day,open,close}], source_url, verified_on} from schema.org, microdata, and a single unambiguous week (including Monday–Thursday ranges). 96 of 295 centrals have a published weekday schedule. The rest stay unpublished.
  • Services: npm run seed:sites crawled the ~40 largest systems. Recorded only when the link names the service and the destination page still mentions it (notary, meeting rooms, ESL, passports, etc.).
  • Contact: admin email / contact form / board from the library site; junk mailtos (Google Maps coordinates, print vendors, partner inboxes) dropped. Null when unpublished. Rendered above the fold.
  • Join: 449/449 DCA municipality_code from NJOGIS; NJSL unmatched_system_names: [].
  • Hosting: GitHub Pages deploys www/ from main. Intended long-term host is loam.

Finder Hours column for Hoboken: Opens Saturday at 10:00 AM, not h/wk
Hoboken outlet weekday hours table Mon–Sat open times, Sunday closed
hoboken-weekday-hours-demo.mp4

How to review

  • src/lib/nostos.js (hoursStatus / hoursWeek) and src/app.js (finder hours column + outlet table)
  • scripts/parse-hours.mjs, scripts/site-facts.mjs, scripts/seed_from_sites.mjs
  • Hoboken #/outlet/NJ0148-002: Mon–Thu 10:00 AM–8:00 PM, Fri–Sat 10:00 AM–5:00 PM, Sunday closed

Test plan

  • npm test — hours never h/wk; board-games ignored; seeder mock writes weekday slots
  • npm run check:data
  • npm run test:e2e — Hoboken finder + outlet weekday table

To show artifacts inline, enable in settings.

Open in Web Open in Cursor 

cursoragent and others added 9 commits September 18, 2026 20:44
Lead with the product rule (no reviews), add CI badge and app
screenshots, and move schema/dev commands below a short try-it path.

Co-authored-by: Jacobrakai <jacobyoby@users.noreply.github.com>
IMLS weekly hours were shown as long floats and phone fields as digit
blobs. Round hours to one decimal and display NANP numbers as
(201) 420-2346 so the GitHub screenshots and the live finder match.

Co-authored-by: Jacobrakai <jacobyoby@users.noreply.github.com>
Side-by-side finder and outlet captures with formatted contact info,
version badge, and a tagline that matches the product page.

Co-authored-by: Jacobrakai <jacobyoby@users.noreply.github.com>
Co-authored-by: Jacobrakai <jacobyoby@users.noreply.github.com>
Parse schema.org openingHours and a single unambiguous week from library
sites, store {day, open, close} with source URL, and use that for
open-now / opens-at. Finder no longer pretends "59 h/wk" is a schedule.

Co-authored-by: Jacobrakai <jacobyoby@users.noreply.github.com>
Point-in-polygon every outlet against 564 municipal polygons. Alias
Roselle Park and record the 20 IMLS systems absent from the NJSL
directory so merge.py reports zero unmatched names. Deploy www/ to
GitHub Pages from main.

Co-authored-by: Jacobrakai <jacobyoby@users.noreply.github.com>
IMLS hours-per-week is not a schedule. The seeder records per-day open/close
from schema.org, microdata, and unambiguous weeks (including Monday–Thursday
ranges), plus evidenced services for the largest systems and published
admin contact. Tests import site-facts only so they cannot trigger a crawl.

Co-authored-by: Jacobrakai <jacobyoby@users.noreply.github.com>
Reject maps coordinate mailtos, print-vendor and partner inboxes, calendar
event pages, books-by-mail forms, and HTML director strings that swallowed
the next label. Gmail is allowed only when the local part names a library.

Co-authored-by: Jacobrakai <jacobyoby@users.noreply.github.com>
96 centrals have per-day open/close from the library site (never IMLS
weekly totals). Top systems received evidenced services; admin email,
contact form, and board URLs are stored only when published.

Co-authored-by: Jacobrakai <jacobyoby@users.noreply.github.com>
@jacobyoby
jacobyoby merged commit a67e680 into main Sep 18, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants