justinemter / pseudo-channel

This is a python based cli-app using the python-plex-api to control a plex-client and act like a real TV channel with show scheduling, commercial breaks, movie nights, etc. "Home-Brewed TV Channel(s) for Hackers"
GNU General Public License v3.0
128 stars 18 forks source link

xml options suggestions #55

Open MoeFwacky opened 6 years ago

MoeFwacky commented 6 years ago

A few more ideas for xml options for scheduling and random movie selection

xclude - basically the same options as xtra but instead of including those options, it excludes them, so xtra="genre:comedy" xclude="genre:christmas" would play a random comedy movie, but never a Chirstmas movie

greater than/less than support for numerical entries in xtra (or xclude) - Some example uses would be selecting a movie to fit within a certain length, say 2 or 3 hours) with duration, selecting a movie above or below a specified viewCount, or selecting a movie above or below a specified rating or audienceRating.

A few scheduling options that would be good to have as well: nolaterthan=true/false - instead of strict-time this indicates that the scheduled item can start earlier, on interval, but not later than the scheduled time. this would primarily kick in after a variable length media type, such as a movie, allowing the next item to start soon after the movie ends, but not later than scheduled

noearlierthan=true/false - also instead of strict-time this would indicate that the scheduled item can start later on interval, but not earlier than scheduled. this would primarily kick in during cases of double-length tv show episodes pushing back the start time, but preventing it from starting any earlier than scheduled, no matter what time the previous item ends overlap-max - okay, i know this one is in the xml but not hooked up, and probably on your radar, but i wanted to include it here as well. basically with this feature, if a show, set with either strict-time=false or the above noearlierthan=true would not be scheduled if it's start time, following the previous media and interval, exceeds the specified value. So if I have a movie that runs 25 minutes past the start of the next scheduled item, and the overlap-max value is set to 25 or lower, the script would instead not schedule that item.

Currently, if a movie runs long, and pushes back the next show, it may overlap with the next strict-time=true item, causing some issues (in one case, due to a long movie the non-strict scheduled item was scheduled 15 minutes after the next item, cutting it off and leaving a content gap at the end (because the item that moved around was shorter than what it cut off).

That's everything I've thought about recently in terms of scheduling.