Skip to content

Releases: issinoho/tvdinner

tvdinner v1.43.0

Choose a tag to compare

@github-actions github-actions released this 04 Sep 22:54
  • The Windows build is now code-signed, with a Certum Open Source Code Signing certificate issued to the maintainer. Both the installer and tvdinner.exe inside it carry the signature -- the installer is run once, but the executable is what Windows checks every time you launch it, so signing only the installer would have given away most of the benefit. SmartScreen should stop warning about an unidentified publisher, though its reputation for a new certificate builds over time rather than immediately.
  • Third-party binaries in the install directory (libmpv-2.dll, the bundled Python runtime) are deliberately not signed: re-signing them would assert a provenance the maintainer doesn't have. See CODE_SIGNING_POLICY.md for what is signed, what isn't, and how to verify a download yourself.
  • tvdinner is being submitted to winget, so it can be installed with winget install Issinoho.tvdinner once the submission is accepted.
  • The README now says plainly that macOS isn't supported, rather than leaving it to be inferred from the absence of a download.

Fixed

  • A stray empty box no longer appears after a channel name in the guide. Characters the bundled font can't render are meant to be dropped, but the check that decides this cached its answers against a font's memory address -- and once a font was garbage-collected, a later one allocated at the same address inherited those answers. An unrenderable character could then be judged against the wrong font's placeholder and kept.

Full Changelog: v1.42.1...v1.43.0

tvdinner v1.42.1

Choose a tag to compare

@github-actions github-actions released this 04 Sep 08:57
  • Fixed 1.42.0's fix. Suppressing clock shifts on an already-corrected guide didn't actually happen: load_epg_for_playlist builds a fresh Epg and merges each source into it, and the merge dropped the generator-info-name the detection depends on. Every test passed because they all exercised the parser directly rather than the path the app uses, so nothing changed on screen.
  • A merged guide now counts as already-corrected only if every source is, so a raw provider feed loaded alongside a tvtimes one keeps your local shifts working for the channels that need them.

Full Changelog: v1.42.0...v1.42.1

tvdinner v1.42.0

Choose a tag to compare

@github-actions github-actions released this 04 Sep 08:32
  • Fixed: a guide that already carries its clock correction is no longer corrected again. A channel with a shift set in tvtimes and a matching --epg-shifts entry here got both, so its guide sat exactly one shift in the past -- tvdinner showed a programme that aired hours earlier while tvtimes showed the right one. tvtimes corrects times as it exports them, precisely so nothing downstream has to.
  • Detected from the feed's own generator-info-name, which the XMLTV parser now keeps. That covers a tvtimes:// source and a one-off Play hand-off alike -- the hand-off is a plain single-channel .m3u, so there was otherwise no way to tell where it came from.
  • The stored shift is suppressed, not deleted: shifts are keyed by channel name, and you still want yours when watching that same channel direct from its provider. [/] now says the guide already carries its correction instead of quietly storing a shift that does nothing there and double-corrects elsewhere. --time-shift is suppressed the same way, since it double-shifts identically.

Full Changelog: v1.41.0...v1.42.0

tvdinner v1.41.0

Choose a tag to compare

@github-actions github-actions released this 03 Sep 10:05
  • Fixed: tvtimes' Play and "Open in tvdinner" buttons did nothing on Windows. The installer had no registry section at all, so the tvdinner:, tvtimes: and tvtimess: URL schemes were never registered -- the browser handed the link to the shell, the shell had never heard of the scheme, and it was dropped silently. Nothing else covered it either: tvdinner default-handler, the verb that claims these, refuses to run anywhere but Linux. Every Windows install since the tvtimes pairing shipped has been affected. Re-run the installer to fix an existing install.
  • The installer now registers all three schemes machine-wide (and removes them on uninstall), matching what data/tvdinner.desktop has always claimed on Linux.
  • New optional install task, "Open .m3u / .m3u8 playlists with tvdinner", unchecked by default. That file type is contested (VLC, MPC, Winamp all want it), so claiming it silently would be rude; the URL schemes are tvdinner's alone and aren't behind a task. Registered under tvdinner's own ProgID, so uninstalling can't strip another player's entry.
  • default-handler on Windows no longer tells you to "associate .m3u from the installer" -- something the installer had no way of doing. It now describes what the installer actually offers, and says to re-run it if a link does nothing.

Full Changelog: v1.40.0...v1.41.0

tvdinner v1.40.0

Choose a tag to compare

@github-actions github-actions released this 03 Sep 07:12
  • The bookmarks browser's TMDB column is replaced by a "tvtimes" one. The old column only showed whether a token was set -- something the add/edit form already tells you -- which is a whole column for one bit that rarely changes. The token itself, its form field and --tmdb-api-token are all untouched.
  • The new column's box starts checked on any tvtimes:///tvtimess:// row and is greyed out on every other one, where the new t key is a no-op rather than a lie: the pairing flags mean nothing to an M3U, Xtream or Plex source. Launching a checked row adds --record-watchlist, --report-watch-state and --sync-favourites together -- the whole pairing in one keystroke. Like the "EPG Refresh" box beside it the state isn't persisted, so t opts a single launch back out.
  • Bookmarks can now carry a device_name, set in the add/edit form, with bookmarks add --device-name, or with bookmarks edit --device-name / --clear-device-name. A checked tvtimes row launches with --device-name too when one is saved. This was the one part of the pairing with no correct default -- the label is only ever the string you typed, never guessed from the hostname, which would put a machine name into your account's watch history that you never asked to send. A bookmarks.json written before this loads unchanged.
  • The device label is now truncated to 120 characters before being reported. tvtimes validates it against a varchar(120), so an over-long one previously failed the whole batch of watch events rather than just losing the label -- reachable through --device-name on the command line too, not only the new field.

Full Changelog: v1.39.0...v1.40.0

tvdinner v1.39.0

Choose a tag to compare

@github-actions github-actions released this 03 Sep 04:23
  • New --sync-favourites, for a tvtimes source: the channels anyone on that account has starred in the web app are starred here too, read once at startup. Additive and one-way -- un-starring in tvtimes leaves this box's star in place, because favorites.json records only channel names with no note of where each came from, so a two-way reconcile couldn't tell "removed upstream" from "added locally". Un-star it here with h. Requires tvtimes 0.1.55+.
  • New T keybinding, on a tvtimes source: opens the tvtimes web app for whatever's on the current channel -- the reverse of tvtimes' own Play button. It's a search URL (/search?q=<title>) rather than a link to the exact guide cell, so it needs no deep-link support at the far end, and finding the thing by name is what you want arriving from a player. Falls back to opening tvtimes itself when there's no EPG data for the channel.
  • The four tvtimes pairing flags now appear in the README's CLI options table, not just in prose.

Full Changelog: v1.38.0...v1.39.0

tvdinner v1.38.0

Choose a tag to compare

@github-actions github-actions released this 03 Sep 03:54
  • New --report-watch-state, for a tvtimes source: tvdinner posts what you actually watched back to that account every 15 minutes, so its web guide dims and ticks the programmes you've already seen. --device-name 'living room' labels the box, so a household with more than one player can tell them apart. Requires tvtimes 0.1.54+.
  • Only live-channel watches from that tvtimes source are sent -- never a local file, a YouTube video, a Plex episode, or a channel from a different playlist. What goes over the wire is plain start/stop intervals rather than "programme X was watched": tvtimes works out which programmes those cover by overlapping them against its own guide, so a guide refresh or a corrected clock offset updates the answer with nothing re-reported. The last week of history is resent on every tick instead of being tracked as "already sent", so a restart or a spell offline catches up by itself.

Full Changelog: v1.37.0...v1.38.0

tvdinner v1.37.0

Choose a tag to compare

@github-actions github-actions released this 02 Sep 21:54
  • New --record-watchlist, for a tvtimes source: tvdinner polls that account's watchlist every 15 minutes and schedules a recording for each upcoming airing anyone on it flagged. Press Remind me (or Watch this title) in the tvtimes web app -- from your phone, on the bus -- and the box at home records it. The watchlist is per user while the export token is per account, so a shared household account records what anyone flagged, de-duplicated per broadcast.
  • Entries created that way are tagged in schedule.json and reconciled on every poll -- un-watchlist something in tvtimes and its pending recording goes too. Recordings you scheduled by hand from the guide are never touched, and no duplicate is added beside one that already covers the same airing. Times arrive already clock-shift corrected, so they line up with the guide. As ever, tvdinner has to still be running when the recording's time comes.

Full Changelog: v1.36.0...v1.37.0

tvdinner v1.36.0

Choose a tag to compare

@github-actions github-actions released this 02 Sep 21:37
  • New tvtimes:// source scheme, for the companion tvtimes web app: tvdinner 'tvtimess://tv.example.com?token=...' plays that account's whole merged line-up with its clock-shift-corrected guide. It's sugar rather than a new protocol -- the URL expands to tvtimes' two export feeds (/api/exports/playlist.m3u + /api/exports/epg.xml), so the program guide, favorites, recording, scheduling and bookmarks all work exactly as they do for any M3U + XMLTV pair. tvtimess:// for an https server; a reverse-proxy base path (tvtimess://example.com/tv?token=...) is kept. The guide URL is derived from the host you typed rather than the playlist's own url-tvg= header, which tvtimes builds from its configured public origin -- not necessarily the address this machine reaches it on.
  • The desktop entry now claims x-scheme-handler/tvtimes and x-scheme-handler/tvtimess too, so tvtimes' Settings → Export feeds → Open in tvdinner button hands a whole account over in one click -- the same hook its "Play" button already uses to hand over a single channel. Run tvdinner default-handler once to claim it.

Full Changelog: v1.35.2...v1.36.0

tvdinner v1.35.2

Choose a tag to compare

@github-actions github-actions released this 02 Sep 17:17
  • Plex On Deck: a TV episode is now shown under its season poster instead of an episode screengrab, so a half-watched show reads as "the show I'm mid-way through" at a glance. Only in the On Deck row -- inside a season's own episode list, and in search / year-filter results, an episode still keeps its own thumbnail.

Full Changelog: v1.35.1...v1.35.2