Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
675 changes: 675 additions & 0 deletions script.easymovie/LICENSE.txt

Large diffs are not rendered by default.

31 changes: 31 additions & 0 deletions script.easymovie/addon.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<addon id="script.easymovie" name="EasyMovie" version="1.0.0" provider-name="Rouzax">
<requires>
<import addon="xbmc.python" version="3.0.1"/>
</requires>
<extension point="xbmc.python.script" library="default.py">
<provides>executable</provides>
</extension>
<extension point="xbmc.service" library="service.py"/>
<extension point="xbmc.addon.metadata">
<summary lang="en_GB">Simplify movie night</summary>
<description lang="en_GB">EasyMovie helps you pick movies for movie night. Answer a few questions (genre, rating, runtime) and get a curated random selection from your library. Supports movie set awareness, multiple viewing modes, and playlist generation.</description>
<assets>
<icon>icon.png</icon>
</assets>
<license>GPL-3.0-only</license>
<forum>https://forum.kodi.tv/showthread.php?tid=385063</forum>
<website>https://rouzax.github.io/script.easymovie/</website>
<source>https://github.com/Rouzax/script.easymovie</source>
<platform>all</platform>
<news>
v1.0.0 (2026-03-24)
- Filter wizard narrows your library by genre, rating, runtime, year, and score
- Five browse views: Showcase, Card List, Posters, Big Screen, Split View
- Playlist mode builds movie marathons with resume support
- Movie set awareness with continuation prompts and earlier-movie warnings
- Four color themes: Golden Hour, Ultraviolet, Ember, Nightfall
- Clone support for multiple instances with independent settings
</news>
</extension>
</addon>
32 changes: 32 additions & 0 deletions script.easymovie/changelog.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
v1.0.0 (2026-03-24)
--------------------------
New Features:
- Filter Wizard: step-by-step filter flow for genre, watched status, age rating,
runtime, time period, and score. Each filter configurable as Ask, Pre-set, or Skip.
Supports genre ignore/select with OR/AND matching, decade browsing, recency ranges,
and cumulative movie counts per option.
- Browse Mode: visual results screen with 5 view styles — Showcase (horizontal
filmstrip carousel, default), Card List, Posters, Big Screen, and Split View.
Includes Re-roll, Surprise Me, Play Full Set, and configurable result count (1–50).
- Playlist Mode: automatic movie marathon generation with configurable length (1–20),
sort options, partial resume prioritization, and seek-to-resume-point.
- Movie Set Awareness: detects Kodi movie collections and suggests the first unwatched
entry instead of a random one. Shows set name and position in browse views.
- Set Continuation: after finishing a collection movie, prompts to watch the next one
with a configurable countdown timer and default action.
- Earlier Movie Warning: alerts when about to watch a set movie while an earlier
entry is unwatched, via background service monitoring.
- Smart Re-suggestion: tracks recently suggested movies and avoids repeating them
within a configurable cooldown window (4–72 hours).
- Movie Pool Filtering: limit the movie pool to any Kodi smart playlist.
- Clone Support: create multiple EasyMovie instances with independent settings.
Includes mandatory version check and one-click update on launch.
- 4 Color Themes: Golden Hour, Ultraviolet, Ember, Nightfall — applied to all
views and dialogs. Live preview cycling via T key / blue remote button.
- Custom Icons: set a custom addon icon per instance, persisted across upgrades.
- In-progress Check: on launch, offers to resume a partially watched movie.
- Wizard Memory: remembers last wizard answers for quick repeat sessions.
- Structured Logging: separate log file with rotating backups, structured key=value
data, and per-module loggers.
- GitHub Pages landing page, wiki documentation, and Kodi forum thread.
- CI validation workflow (syntax, pyflakes, pyright, kodi-addon-checker).
31 changes: 31 additions & 0 deletions script.easymovie/default.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
"""
EasyMovie entry point.

Dispatches to the main UI flow or handles special
command-line arguments (selector, clone, set_icon).

Logging:
Logger: 'default'
Key events:
- launch.crash (ERROR): Unhandled error caught at top level
See LOGGING.md for full guidelines.
"""
from resources.lib.ui.main import main, _handle_entry_args

try:
if not _handle_entry_args("script.easymovie"):
main()
except SystemExit:
pass
except Exception:
try:
from resources.lib.utils import get_logger
log = get_logger('default')
log.exception("Unhandled error in EasyMovie", event="launch.crash")
except Exception:
import traceback
import xbmc
xbmc.log(
f"[EasyMovie] Unhandled error: {traceback.format_exc()}",
xbmc.LOGERROR,
)
Binary file added script.easymovie/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added script.easymovie/icon_default.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file.
28 changes: 28 additions & 0 deletions script.easymovie/resources/addon_clone.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<addon id="script.easymovie.SANNAME"
name="CLONENAME"
version="PARENTVERSION"
provider-name="Rouzax">
<requires>
<import addon="xbmc.python" version="3.0.1"/>
</requires>

<extension point="xbmc.python.script"
library="default.py">
<provides>executable</provides>
</extension>

<extension point="xbmc.addon.metadata">
<summary lang="en_GB">COMBNAME</summary>
<description lang="en_GB">This is a cloned version of the EasyMovie front-end with independent settings.</description>
<language></language>
<platform>all</platform>
<license>GPL-3.0-only</license>
<website>https://github.com/Rouzax/script.easymovie</website>
<source>https://github.com/Rouzax/script.easymovie</source>
<assets>
<icon>icon.png</icon>
<fanart>fanart.jpg</fanart>
</assets>
</extension>
</addon>
Loading
Loading