Skip to content

Releases: Rouzax/script.easytv

EasyTV v1.5.1

24 Mar 10:15

Choose a tag to compare

EasyTV v1.5.1

Visual polish release — adds the Showcase browse view, heading areas across all views, icon theme presets, and harmonizes the UI with EasyMovie.

New Features

  • Showcase browse view — Fifth view style with a horizontal poster filmstrip layout and watched badges on thumbnails
  • Heading areas — All five browse views now display the addon name, item count, and accent-line separator
  • Icon theme selection — Four bundled icon styles (Golden Hour, Ultraviolet, Ember, Nightfall) plus custom browse, with instant texture cache refresh and upgrade persistence
  • Dialog preview rewrite — Previews all eight dialog types with real library data, clone support, and theme color picker
  • Missed episode warning dialog — Upgraded to poster-style dialog with show artwork

Improvements

  • EasyMovie UI parity — Harmonized visual design: compact duration format, slash-separated genres, redesigned Big Screen view with plot text, resized Split View posters, selection count in show selector
  • Mandatory clone updates — Version mismatch now enforces Update or Cancel (no Skip)
  • Richer browse metadata — Year, genres, and duration fields added to all browse view ListItems

Internal

  • GitHub Actions CI validation workflow
  • Simplified attribution

Full Changelog
Kodi Forum Thread

EasyTV v1.5.0

18 Mar 18:41

Choose a tag to compare

EasyTV v1.5.0

Complete UI overhaul with multiple browse views, color themes, and redesigned dialogs.

New Features

  • Four browse view styles — Card List (data-dense rows), Posters (visual grid), Big Screen (10-foot viewing), and Split View (two-column with detail panel)
  • Color themes — Golden Hour, Ultraviolet, Ember, and Nightfall accent themes across all windows and dialogs
  • Custom icon selection — Set a custom addon icon for EasyTV or any clone via Settings > Appearance
  • Redesigned dialogs — Main dialog, next-up prompt, playlist finished, and confirmation dialogs all themed
  • Show selector redesign — Centered window with inline search, bulk actions, and poster preview
  • In-place browse updates — Browse list refreshes after playback without full reload
  • Abandoned playback detection — Service detects early stops and handles tracking appropriately
  • Browse view info — Genre, average episode duration, and compact S01E01 notation in all views
  • Duration and random sort — New sort options in browse mode
  • 3-state premiere filter — Skip, Mix in, or Only for series and season premieres

Bug Fixes

  • Python 3.8 compatibility — Removed Python 3.10+ type hints that broke Kodi Windows builds
  • File handle leaks — Fixed leaks in log initialization and clone updater during exceptions
  • Duration calculation — Fixed off-by-one in median calculation for even episode counts
  • Float formatting — Episode and season numbers no longer display as floats
  • Browse mode hang — Fixed potential infinite loop when dialog fails to open
  • Clone addon name — Clone dialogs now show the clone's name instead of hardcoded "EasyTV"

Internal

  • Entry points (service.py, default.py) are now thin stubs delegating to cached library modules
  • 208-test unit test suite
  • Replaced deprecated setInfo() with InfoTagVideo API
  • Consolidated constants module

Full Changelog
Kodi Forum Thread

EasyTV v1.5.0-alpha2

12 Mar 15:36

Choose a tag to compare

EasyTV v1.5.0-alpha2 Pre-release
Pre-release

EasyTV v1.5.0~alpha2

Browse mode gets new info fields, sorting options, and a premiere-only filter, plus a round of bug fixes and robustness improvements from a code audit.

New Features

  • Genre and duration in browse views — All four view styles now show genre and average episode duration. Episode notation switched to compact S01E01 format.
  • Duration and random sort — Two new sort options: "Avg Episode Duration" and random shuffle.
  • 3-state premiere filter — Series and season premiere settings now offer Skip (exclude), Mix in (default), or Only (show exclusively premieres for discovering new shows).

Bug Fixes

  • Clone settings — Split View and playlist type filter options now appear correctly in clone settings (missing since alpha1).
  • Clone dialog titles — Clone dialogs now show the clone's own name instead of hardcoded "EasyTV".
  • Premiere categorization — Partially-watched premiere episodes now correctly appear under Continue Watching.
  • Duration calculation — Fixed median calculation for shows with an even number of episodes.
  • Display formatting — Episode and season numbers no longer show as floats in some view layouts.
  • Browse mode stability — Fixed potential infinite loop when dialog fails to open.
  • Python 3.8 compatibility — Replaced Python 3.10+ type hints that broke Kodi Windows builds.
  • File handle leaks — Fixed unclosed file handles in log initialization and clone updater.

Improvements

  • Top-level exception handlers on all entry points prevent silent crashes.
  • Refined browse view detail panel layout for consistency across view styles.

Internal

  • Added 167 unit tests for pure logic functions.
  • Consolidated window property names and setting IDs into constants.
  • Code audit: dead code removal, state sync fixes, database validation.

Full Changelog
Kodi Forum Thread

EasyTV v1.5.0-alpha1

11 Mar 18:44

Choose a tag to compare

EasyTV v1.5.0-alpha1 Pre-release
Pre-release

EasyTV v1.5.0~alpha1

Complete UI overhaul with theme support, new browse views, and redesigned dialogs.

New Features

  • Four Browse View Styles — Card List (data-dense default with poster, episode info, and stats), Posters (visual grid), Big Screen (10-foot optimized), and the new Split View (two-column layout with show list and detail panel)
  • Theme Selection — Four accent color themes: Golden Hour (default), Ultraviolet, Ember, and Nightfall. Themes color all accents, buttons, and dialogs consistently across every EasyTV window
  • Custom Icon — Set a custom addon icon for EasyTV and each clone via Settings > EasyTV > Appearance
  • Redesigned Dialogs — Main dialog, next-up prompt, playlist finished, and confirmation dialogs all use the new themed styling
  • Show Selector Redesign — Dedicated centered window with inline search, Enable All/Ignore All bulk actions, and poster preview
  • In-Place List Updates — Browse list refreshes after playback without a full window reload
  • Abandoned Playback Detection — Service detects when playback was stopped early

Internal

  • Replaced deprecated setInfo() with InfoTagVideo API
  • Calendar-aware "last watched" display
  • Consolidated skin media assets
  • Added dialog preview development tool

Full Changelog
Kodi Forum Thread

EasyTV v1.4.0

02 Mar 08:39

Choose a tag to compare

EasyTV v1.4.0

First stable release since v1.2.4 — consolidates all alpha/beta releases into one.

New Features

  • Multi-instance sync — Share watch progress across multiple Kodi devices via a shared MariaDB database. When you watch Episode 5 on one device, all others know to queue Episode 6. Auto-detects configuration from advancedsettings.xml, with automatic recovery after library rebuilds and graceful fallback if the dedicated database is unavailable.

  • Positioned specials — TVDB-positioned specials can now be included in the watch order. Shows like SpongeBob have plot-relevant specials that belong between specific episodes. Enable in Settings → Shows. Default: OFF.

  • Movie chance slider — Replaced the confusing "Movie ratio" (0.0–1.0) with an intuitive percentage slider (0–100%). Budget enforcement ensures playlists closely match your configured movie/show mix.

  • Playlist continuation — Now fully configurable: choose whether the countdown auto-generates a new playlist or stops. Timer shown in the prompt heading. Only triggers on natural playlist finish, not manual stops.

Bug Fixes

  • Clone creation on SteamOS — Fixed failure on Arch-based Linux systems where ASCII locale couldn't handle UTF-8 characters in skin XML files
  • False ID migration warnings — Eliminated spurious "Show ID shifted" log messages on every startup
  • Partial episode prioritization — Stale resume points on watched episodes no longer cause deterministic ordering; detected partials are now actually served
  • Movie playlist filter — Filter no longer bypasses the movie weight limit
  • Clone update prompts — Clones no longer repeatedly prompt to update after every other launch
  • Progress dialog compatibility — Fixed DialogProgress.update() breaking on Kodi 19+

Performance

  • Batch database writes — Single transaction instead of per-show commits (399 shows: ~20s → ~50ms)

Internal

  • Resolved all 115 pyright type-checking errors (now 0)
  • Batch ownership lifted from daemon.py to StorageBackend interface
  • Database backend detection logged at startup

Full Changelog
Kodi Forum Thread

EasyTV v1.4.0-alpha8

28 Feb 15:53

Choose a tag to compare

EasyTV v1.4.0-alpha8 Pre-release
Pre-release

EasyTV v1.4.0~alpha8

Fix playlist continuation settings ignored in clones.

Bug Fixes

  • Clone continuation settings — The playlist continuation prompt now correctly uses the clone's own settings (enabled/disabled, timeout duration, default action) instead of always reading from the master addon.

Full Changelog
Kodi Forum Thread

EasyTV v1.4.0-alpha7

20 Feb 17:34

Choose a tag to compare

EasyTV v1.4.0-alpha7 Pre-release
Pre-release

EasyTV v1.4.0~alpha7

Playlist continuation now configurable with live countdown timers and show poster in next episode prompt.

✨ New Features

  • Configurable playlist continuation — New "If countdown expires" setting lets you choose between Stop or Generate new playlist. When set to Generate, the button layout swaps so the timeout auto-generates a new playlist.
  • Natural end detection — Continuation prompt now only appears when the playlist finishes naturally. Manually stopping no longer triggers it.
  • Live countdown timers — Both the playlist continuation and next episode prompts now show a live countdown in the heading (e.g., "Playlist Finished (auto-closing in 20 seconds)").
  • Finer timer granularity — Countdown timer sliders now use 1-second steps (was 5) for both prompts.

🐛 Bug Fixes

  • Episode exporter crash — Fixed DialogProgress.update() using wrong call signature for Kodi 19+.
  • Clone update loop — Fixed clone addon repeatedly prompting to update on every other launch after main addon update. Now refreshes Kodi's addon metadata cache after updating.
  • Clone script safety — Fixed type errors in clone.py and update_clone.py error handling and XML parsing.

🔧 Internal

  • Resolved all 115 pyright type-checking errors across 12 files (now 0 errors)
  • Updated json_query() to accept batch queries

📖 Full Changelog
💬 Kodi Forum Thread

EasyTV v1.4.0-alpha6

19 Feb 16:07

Choose a tag to compare

EasyTV v1.4.0-alpha6 Pre-release
Pre-release

EasyTV v1.4.0~alpha6

Fix movie weighting in playlists — replace broken ratio slider with intuitive percentage-based movie chance.

✨ New Features

  • Movie chance percentage slider — The old "Movie ratio" (0.0-1.0) has been replaced with a "Movie chance" percentage slider (0-100%, step 5). Setting 25% means ~5 movies in a 20-item playlist. Much more intuitive.
  • Budget enforcement — Both batch mode and lazy queue now track movies vs. shows and defer over-budget items, so the final playlist closely matches your configured percentage.

🐛 Bug Fixes

  • Movie playlist filter bypassed weight limit — When a movie playlist filter was configured, all matching movies were included regardless of the weight setting. The limit is now correctly applied after playlist filter intersection.

🔧 Internal

  • New calculate_movie_target() function for percentage-to-count conversion
  • Movie target count logged in playlist.create event for debugging
  • Setting ID changed from movieweight (float) to movie_chance (integer) — existing installs will use the new default of 25%

📖 Full Changelog
💬 Kodi Forum Thread

EasyTV v1.4.0-alpha5

19 Feb 11:46

Choose a tag to compare

EasyTV v1.4.0-alpha5 Pre-release
Pre-release

EasyTV v1.4.0~alpha5

Fix partial prioritization — stale resume points no longer cause deterministic ordering, and detected partials are now actually served.

🐛 Bug Fixes

  • Stale resume points cause deterministic ordering — Episodes with playcount > 0 but a leftover resume point (Kodi marked them watched but didn't clear the bookmark) were being treated as "partial" items. In WATCHED and BOTH modes, this caused many shows to consistently appear at the front of the playlist instead of being shuffled. Now only genuinely in-progress episodes (playcount == 0 with resume point) qualify as partials.

  • Partial episode detected but not served — The partial prioritization system correctly identified which shows had in-progress episodes and moved them to the front of the candidate list, but when it came time to actually pick an episode, the specific episode ID was discarded. The system fell through to normal episode selection logic, often picking a different episode. Now a partial_episode_map (show_id → episode_id) is built during prioritization and carried through to both the batch and lazy queue playlist paths, ensuring the exact partial episode is served on first encounter.


📖 Full Changelog
💬 Kodi Forum Thread

EasyTV v1.4.0-alpha4

15 Feb 14:12

Choose a tag to compare

EasyTV v1.4.0-alpha4 Pre-release
Pre-release

EasyTV v1.4.0~alpha4

Fix clone creation on SteamOS, eliminate false ID shift log spam, and add shared database detection.

🐛 Bug Fixes

  • Clone creation on SteamOS/Arch — The clone script used Python's fileinput module which inherits the system locale encoding. On SteamOS and other Arch-based systems where the locale defaults to ASCII (POSIX/C), this fails on UTF-8 characters (the bullet in skin XML files). Replaced all fileinput.input(inplace=True) calls with explicit open(..., encoding='utf-8') read/write, fixing clone creation on all platforms.

  • False "Show ID shifted" log spam — The ID shift validation compared stored show IDs against the unwatched-only show list, so fully-watched shows in random_order_shows triggered false migration logs with old_id == new_id on every startup and library scan. Now correctly treats same-ID title lookups as unchanged.

🔧 Diagnostics

  • Shared database detection — The service now logs whether Kodi's video library uses a shared MySQL/MariaDB database or local SQLite at startup, detected from advancedsettings.xml. Helps quickly identify multi-device setups during troubleshooting.

📖 Full Changelog
💬 Kodi Forum Thread