You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# Postergeist Slideshow - Changelog
All notable changes to this project will be documented in this file.
---
## v2.0.0 - 2025-09-26
This is a significant update that introduces a major new feature for themed overlays and fixes a critical bug related to video playback.
### ✨ New Features
* **Themed Overlay Tagging:**
* You can now assign specific overlays to entire folders of media.
* **How it works:** Rename a subfolder inside your `posters` directory using the format `FolderName_tag`. For example, a folder named `MyMovies_vhs` will use the tag `vhs`.
* The script will automatically look for an overlay file in the `overlays` folder with a filename that matches the tag (e.g., `vhs.png`, `vhs.gif`).
* If no matching overlay is found for a tag, or if a folder has no tag, a random overlay will be used as a fallback.
* **Subdirectory Scanning:**
* The script now automatically scans for media files in all subfolders within the main `posters` directory. This allows for better organization of your media library and is essential for the new tagging feature.
### 🐞 Bug Fixes
* **Video Transition Stall:**
* Fixed a critical bug where the slideshow would not advance to the next item after a video file finished playing.
* **Cause:** The `root.after()` scheduler was being given a reference to the `get_delay` method instead of the *result* of calling the method.
* **Solution:** The call was corrected from `` `self.root.after(self.get_delay, ...)` `` to `` `self.root.after(self.get_delay(), ...)` ``, ensuring the scheduler receives a valid millisecond value.
### 🔧 Code & Logic Improvements
* **`load_files()` Function:**
* Rewritten to use `os.walk()` to recursively search through the entire directory tree of the specified `posters` folder.
* **`_select_new_overlay()` Method:**
* Refactored to accept the `media_path` of the current file as an argument. It now parses the parent directory name to check for a `_tag`.
* **`show_image()` and `show_video()` Methods:**
* Updated to pass the current file's path to the `_select_new_overlay()` method, enabling the new tag-based logic.
0 commit comments