Skip to content

v0.5.0

Pre-release
Pre-release

Choose a tag to compare

@daniel-widrick daniel-widrick released this 13 Sep 04:15
· 1 commit to main since this release
ce45cc8

What's Changed

  • Add a CI workflow running gofmt, vet, and race tests in #16
  • Keep raw Gracenote fields on channels and programs, with an XMLTV golden test in #17
  • Add a lineup model that retains every provider position in #18
  • Serve the provider lineup at /api/lineup.json in #19
  • Move the grid download loop into an importable scrape package in #20
  • Landed together on main via #21. Closes #15.

New for consumers

  • GET /api/lineup.json returns every channel position in the active lineup, sorted by number, with station ID, callsign, affiliate, Gracenote station filters, and the resolved logo. A station carried at two numbers appears twice. See the README for the response shape.
  • Library use. scrape.Fetch(ctx, prefs, opts) downloads a lineup's listings and returns a guide.TVGuide without running the server. See "Using as a Library" in the README.
  • Programs now carry the TMS ID, release year, generic flag, and the raw Gracenote filter list separately from XMLTV categories.

Upgrade notes

  • One rescrape on first start. The guide cache now has a schema version. A cache from 0.4.0 or earlier is rebuilt once so the new lineup data is populated.
  • Empty results are no longer written. If every grid request fails, the scrape is treated as a failure, the previous guide stays live, and the normal 15-minute retry applies. Previously an empty guide would have been written.
  • Stable channel order. XMLTV channels are now emitted in first-seen order instead of Go map order, so the file is stable between runs. Program content is unchanged.
  • Tag naming. Tags now carry a v prefix so the module can be pinned with go get github.com/daniel-widrick/GraceNoteScraper@v0.5.0. Earlier tags are unchanged.

Full Changelog: 0.4.0...v0.5.0