Skip to content

Releases: Rouzax/script.easytv

EasyTV v1.5.2

05 May 08:48

Choose a tag to compare

EasyTV v1.5.2

Stable release consolidating six alphas of multi-instance sync hardening, a reworked next-episode and missed-episode dialog UX, a Browse view artwork fix, and a notification fix for show titles with commas.

New Features

  • Redesigned next-episode and missed-episode dialogs. Both now follow EasyMovie's two-block layout with clearer copy. The next-episode dialog shows "You just watched [show + SxxEyy]" and "Up next [SxxEyy + title]" with Watch Next / Skip buttons. The missed-episode warning now uses Kodi-standard SxxEyy format and asks "Would you like to watch it instead?" so the swap-to-library-version semantics is explicit.

Bug Fixes

  • Multi-instance sync: cross-instance updates visible immediately. Shows that gain new episodes on another Kodi instance now appear in Browse mode and random playlists without requiring a local library scan. Resume progress and watched state stay in sync too.
  • Multi-instance sync: clones now actually sync. Clone addons (such as an "In Progress" clone) now correctly load script.module.pymysql and connect read-only to the shared sync database advertised by the main service. Existing clones will prompt for a mandatory update.
  • Multi-instance sync: clones can't clobber the main service. A clone whose connection attempt failed could permanently clear the main service's advertised DB config. That clear-on-failure side effect has been removed.
  • Multi-instance sync: duplicate-key error fixed. Stale database entries with the same title + year as a valid row are now correctly identified and removed instead of triggering a primary-key violation during startup migration.
  • Browse mode: in-progress E01 episodes no longer hidden by Skip premieres. A premiere with a resume point now correctly bypasses the "Skip premieres" filter, matching how smart playlists already handle partially-watched premieres.
  • Browse view: posters and fanart no longer disappear. The session art-fetch flag is now set only when at least one show actually had a non-empty poster, and self-heals on the next addon launch without waiting for a library scan. Reported in #2.
  • Now Playing notification: full title shown for shows with commas. Switched to the typed xbmcgui.Dialog().notification API; show titles like "What We Do, In the Shadows" are no longer truncated at the comma.
  • Prompt timeout help text fixed. The Prompt timeout (seconds) setting's help string now correctly says "Set to 0 for no automatic dismissal" instead of the inaccurate "Maximum (60) waits indefinitely". The behaviour was always 0 = indefinite.

Internal

  • Service clears advertised DB config on shutdown, DB failure, and when multi-instance sync is disabled.
  • Diagnostic logging added for premiere filter, storage backend selection in clones, and shared DB sync skip reasons.
  • New tests exercise the real import pymysql code path; previous clone-fallback tests mocked the import directly and hid two real bugs.
  • Documentation overhaul. The docs/ MkDocs site was rebuilt page by page, every settings path and label re-verified against settings.xml, advanced-features.md split into Clones / Episode Export / Auto-Generated Playlists, the migration guide retired, all em-dashes stripped, and all view + dialog screenshots refreshed (including the previously-missing Showcase capture).

Upgrade notes

  • Clones must update on next launch. The clone update prompt is mandatory; click Update when it appears, then restart Kodi if prompted.
  • No settings or library reset required. All existing settings, smart playlists, and tracking data carry forward.

Full Changelog
Kodi Forum Thread

EasyTV v1.5.2-alpha5

04 May 06:21

Choose a tag to compare

EasyTV v1.5.2-alpha5 Pre-release
Pre-release

EasyTV v1.5.2~alpha5

Multi-instance sync hardening across the 1.5.2 alpha cycle, plus a fix for blank Browse-view artwork.

Bug Fixes

  • Multi-instance sync stays current without a local scan — Shows that gain new episodes on another Kodi instance appear in Browse and random playlists immediately. Shows fully watched elsewhere are removed from the local Browse list. Resume progress refreshes even when the on-deck episode hasn't changed but you've made progress on another device.
  • Clone addons now sync via the shared database — Clones (e.g. an "In Progress" clone) connect read-only to the main instance's database for cross-instance state. The main service advertises its DB location so clones don't need their own multi-instance sync setting. Existing clones must be updated — the mandatory clone update prompt will appear automatically.
  • Premiere filter respects in-progress episodes from other instances — A show with a resumed E01 (e.g. continuing on another device) is no longer excluded by the "Skip premieres" filter, matching how smart playlists already categorize partially-watched premieres.
  • Browse view art no longer latches blank — If the first art fetch in a Kodi session returned an empty or partial result, EasyTV marked the session as "art fetched" and skipped every subsequent fetch, leaving the Browse view with no posters or fanart until the next library scan completed. The session flag is now only set after at least one show's poster is actually populated, and it is cleared at the start of every addon launch so a stale state self-heals on the next open. Reported in #2.

Internal

  • Service advertises shared-DB location via window properties; clones use that to bootstrap their connection.
  • Stale duplicate database entries are correctly identified and removed during ID-validation rather than triggering a primary-key violation.
  • Diagnostic logging added for premiere filter (before/after counts), storage backend selection in clones, and shared-DB sync skip reasons.
  • New tests exercise the real pymysql import path and clone-fallback flow without mocking the failing dependency away.

Full Changelog
Kodi Forum Thread

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