Boxed Sets - YAMJ/yamj-v2 GitHub Wiki

How to group multiple movies together into a single "boxed set"

What sets do

Sometimes you may want to group several movies together for organizational purposes and to avoid clutter on the main page. For example, you could group all the Star Trek movies together, or all the seasons of a TV series. When you group movies into a set, the movies within the set are ordered by order value, then by year, and then alphabetically. Movies with an explicit order value appear before all movies without an explicit order value.

Movies that are part of a set do not appear on the normal pages. Instead, each set is represented by a "set master". By default, the poster for the first movie in the set will be used as the poster for the set master, but that can be overridden. When you click on the set master, it takes you to another page that lists all the movies in the set.

Ordering movies within a set

You may optionally apply an explicit order when you associate a movie with a set (see below). All movies without an explicit order appear after movies with an explicit order, and they are considered to have equivalent order values. Movies within a set are then sorted within the set index page as follows:

  1. By explicit order value
  2. By year
  3. By title

So if you want your movies to appear on the set page in chronological order, do not apply any order values at all.

Defining your sets

There are three ways to associate a movie with a set: via the mjb.singleSeriesPage property, in the NFO file, or with a keyword in the filename.

mjb.singleSeriesPage

This property (it defaults to true) will make your TV show seasons automatically group into a set for each series title. See the description in the PropertiesConfiguration wiki page.

NFO file method

In a XBMC-style NFO file, add a <sets> section to the <movie> like this:

<movie>
  ...
  <sets>
    <set>Alien Collection</set>
    <set>Predator Collection</set>
    <set order="4">Another Set</set>
  </sets>
  ...
</movie>

Remember that certain characters are not allowed in XML files and must be encoded. For example, to create a set named "Law & Order", you must write it like <set>Law &amp; Order</set>.

Filename method

To associate a movie with a set via the filename, add a "setname-order" section to the flename. The "-order" is optional. For example:

[Alien Collection](SET) Alien vs Predator.mkv

or

Alien vs Predator [Alien Collection](SET)[Predator-1](SET).mkv

Additional Behavior

Alternate poster

By default, the set master will use the poster of the first movie in the set. To override this, name the poster image like so:

Set_Set Name_1.jpg

and place it in the same directory as the first movie in the set. That is, its name should start with "Set_", followed by the name of the set, followed by "_1.jpg". Of course, instead of ".jpg", you may use any extension listed in the poster.scanner.coverArtExtensions property (see PropertiesConfiguration).

Using Restricted Characters

If your set name contains characters that cannot be used by the file system (See mjb.charset.unsafeFilenameChars) then they will be replaced by an escape sequence which you should use instead. For example: "Set_CSI: Miami_1.jpg" contains ":" which cannot be used in the file system, so the set name becomes "Set_CSI$3A Miami_1.jpg" which should be the name you save the file as.

How many movies does it take to make a set? (or, Why aren't sets grouping the way I want?)

By default, sets do not always behave the way people expect them to. Nothing would satisfy everyone, and the current behavior is a compromise between reducing clutter, minimizing drill-down to locate a particular movie, and generalization. By default, if any index (eg, the "All" category or the "B"s title page) contains two or more movies in a set, all members of the set are removed, and the set poster is inserted in their place, which links to the entire set.

You can configure how many members of the set must be present on a certain index before they are replaced by the set via the mjb.sets.minSetCount property. Also have a look at the mjb.sets.requireAll property, which eliminates replacement of "partial sets". See the PropertiesConfiguration page for more info.

Nesting Sets

Nesting one set within another is currently (as of r813) not supported. If you try to do it, it may work, it may do nothing, or it may fail spectacularly.

⚠️ **GitHub.com Fallback** ⚠️