Priority Checks - YAMJ/yamj-v2 GitHub Wiki

This describes the handling of priority checks

Introduction

Several movie values are scraped from different sources. Sometime the movie value will be override, sometimes not. Mostly this depends on the order of how the scanners and plugins are called; sometimes it's not deterministic.

The goal is, that a user can set for most movie values from which source the value should come.

Due the fact that is not possible to use the priority checks in same way as before, cause many plugins/scanners and readers may now override actual valuesm you MUST change your configuration to adopt it to your needance.

<wiki:toc max_depth="2" />

Configuration of the Tool

There are some flags, which could be set for the priority checks.

priority.checks.skipNotInList

If set to TRUE then a source will be skipped, if the source to check is not in the list of the priority checks for the investigated value.

** Default value **

priority.checks.skipNotInList=false

Configuration of Priority Checks

You can configure the priority checks for several values. The first value in the list has the highest priority. Additionaly you can define different priorities for movies and tv shows on the same movie value.

Note that not all checks may be called. This mostly depends on the plugins you use; so the configuration should be changed in that case you have organised your plugins or jukebox.

Each priority setting holds the possible plugins you can select or use for priority checks. If you leave the priority empty, then the first plugins, which sets a movie value, wins. All next plugins will not override the value anymore.

The default configuration is based on the actual default installation. There are two explicit patterns, which must be explained:

** 1. PLUGIN ** This pattern will be replaced with the movie or tv show plugin for scraping.

** 2. ALTERNATE ** This pattern will be replaced with the alternate movie plugin for scraping. If no alternate plugin is set, then imdb will be set for the alternate pattern, cause most plugins are inherited from the imdb plugin.

** Example **

mjb.internet.plugin=com.moviejukebox.plugin.AllocinePlugin
mjb.internet.tv.plugin=com.moviejukebox.plugin.TheTvDBPlugin
mjb.internet.alternate.plugin=com.moviejukebox.plugin.OfdbPlugin
priority.movie.runtime=nfo,mediainfo,PLUGIN,ALTERNATE
priority.tv.runtime=nfo,mediainfo,PLUGIN,ALTERNATE

Then the prority checks from the movie value runtime will be:

1. NFO
2. MediaInfo
3. Allocine (for Movies), TheTVDb (for TV shows)
4. Ofdb 

Actors

** Possible plugins **

nfo,mediainfo,animator,allocine,comingsoon,filmaffinity,
filmkatalogus,filmweb,filmupit,imdb,kinopoisk,moviemeter,ofdb,scopedk,
sratim,themoviedb,thetvdb

** Default value **

priority.movie.actors=nfo,PLUGIN,ALTERNATE
priority.tv.actors=nfo,PLUGIN,ALTERNATE

Aspect Ratio

** Possible plugins **

mediainfo,nfo,imdb

** Default value **

priority.movie.aspectratio=nfo,mediainfo,PLUGIN,ALTERNATE
priority.tv.aspectratio=nfo,mediainfo,PLUGIN,ALTERNATE

Certification

** Possible plugins **

nfo,mediainfo,allocine,imdb,kinopoisk,themoviedb,thetvdb

** Default value **

priority.movie.certification=nfo,PLUGIN,ALTERNATE
priority.tv.certification=nfo,PLUGIN,ALTERNATE

Company

** Possible plugins **

nfo,allocine,animator,comingsoon,filmaffinity,filmupit,imdb,kinopoisk,
themoviedb,thetvdb,tvrage

** Default value **

priority.movie.company=nfo,PLUGIN,ALTERNATE
priority.tv.company=nfo,PLUGIN,ALTERNATE

Container

** Possible plugins **

nfo,mediainfo,filename

** Default value **

priority.movie.container=nfo,mediainfo,filename
priority.tv.container=nfo,mediainfo,filename

Country

** Possible plugins **

nfo,mediainfo,animator,comingsoon,filmaffinity,filmweb,
filmupit,imdb,kinopoisk,moviemeter,ofdb,sratim,themoviedb,tvrage

** Default value **

priority.movie.country=nfo,PLUGIN,ALTERNATE
priority.tv.country=nfo,PLUGIN,ALTERNATE

Directors

** Possible plugins **

nfo,mediainfo,allocine,animator,filmaffinity,filmweb,filmupit,
kinopoisk,imdb,moviemeter,ofdb,scopedk,sratim,themoviedb,thetvdb

** Default value **

priority.movie.directors=nfo,PLUGIN,ALTERNATE
priority.tv.directors=nfo,PLUGIN,ALTERNATE

Genres

** Possible plugins **

nfo,mediainfo,allocine,anidb,animator,comingsoon,filmweb,filmupit,imdb,
kinopoisk,moviemeter,ofdb,scopedk,sratim,themoviedb,thetvdb,tvrage

** Default value **

priority.movie.genres=nfo,PLUGIN,ALTERNATE
priority.tv.genres=nfo,PLUGIN,ALTERNATE

FPS (Frames per second)

** Possible plugins **

mediainfo,nfo,filename

** Default value **

priority.movie.fps=nfo,mediainfo,filename
priority.tv.fps=nfo,mediainfo,filename

Language

** Possible plugins **

mediainfo,nfo,filename,themoviedb

** Default value **

priority.movie.language=nfo,mediainfo,PLUGIN,ALTERNATE,filename
priority.tv.language=nfo,mediainfo,PLUGIN,ALTERNATE,filename

Original Title

** Possible plugins **

nfo,allocine,anidb,comingsoon,filmaffinity,filmweb,imdb,
moviemeter,ofdb,themoviedb,thetvdb

** Default value **

priority.movie.originaltitle=nfo,PLUGIN,ALTERNATE
priority.tv.originaltitle=nfo,PLUGIN,ALTERNATE

Outline

** Possible plugins **

nfo,anidb,comingsoon,filmweb,imdb,ofdb,themoviedb,tvrage

** Default value **

priority.movie.outline=nfo,PLUGIN,ALTERNATE
priority.tv.outline=nfo,PLUGIN,ALTERNATE

Plot

** Possible plugins **

nfo,mediainfo,anidb,animator,allocine,comingsoon,filmaffinity,
filmkatalogus,filmweb,filmupit,imdb,kinopoisk,moviemeter,ofdb,scopedk,
sratim,themoviedb,thetvdb,tvrage

** Default value **

priority.movie.plot=nfo,PLUGIN,ALTERNATE
priority.tv.plot=nfo,PLUGIN,ALTERNATE

Quote

** Possible plugins **

nfo,imdb

** Default value **

priority.movie.quote=nfo,PLUGIN,ALTERNATE
priority.tv.quote=nfo,PLUGIN,ALTERNATE

Release Date

** Possible plugins **

nfo,mediainfo,anidb,allocine,comingsoon,filmweb,filmupit,imdb,kinopoisk,
moviemeter,sratim,themoviedb,thetvdb,tvrage

** Default value **

priority.movie.releasedate=nfo,PLUGIN,ALTERNATE
priority.tv.releasedate=nfo,PLUGIN,ALTERNATE

Resolution

** Possible plugins **

mediainfo,nfo

** Default value **

priority.movie.resolution=nfo,mediainfo
priority.tv.resolution=nfo,mediainfo

Runtime

** Possible plugins **

nfo,mediainfo,filename,allocine,animator,comingsoon,filmaffinity,filmweb,
filmupit,imdb,kinopoisk,moviemeter,scopedk,sratim,themoviedb,thetvdb,tvrage

** Default value **

priority.movie.runtime=nfo,mediainfo,filename,PLUGIN,ALTERNATE
priority.tv.runtime=nfo,mediainfo,filename,PLUGIN,ALTERNATE

Tagline

** Possible plugins **

nfo,imdb,kinopoisk,themoviedb

** Default value **

priority.movie.tagline=nfo,PLUGIN,ALTERNATE
priority.tv.tagline=nfo,PLUGIN,ALTERNATE

Title

** Possible plugins **

nfo,mediainfo,filename,allocine,anidb,comingsoon,filmaffinity,filmweb,
filmupit,imdb,kinopoisk,moviemeter,ofdb,scopedk,sratim,thetvdb,themoviedb,tvrage

** Default value **

priority.movie.title=nfo,PLUGIN,ALTERNATE,filename
priority.tv.title=nfo,PLUGIN,ALTERNATE,filename

Top250

** Possible plugins **

nfo,imdb,filmweb,kinopoisk

** Default value **

priority.movie.top250=nfo,PLUGIN,ALTERNATE
priority.tv.top250=nfo,PLUGIN,ALTERNATE

Video Output

** Possible plugins **

mediainfo,nfo,filename

** Default value **

priority.movie.videooutput=nfo,mediainfo,filename
priority.tv.videooutput=nfo,mediainfo,filename

Video Source

** Possible plugins **

nfo,filename,mediainfo

** Default value **

priority.movie.videosource=nfo,filename,mediainfo
priority.tv.videosource=nfo,filename,mediainfo

Writers

** Possible plugins **

nfo,allocine,animator,comingsoon,filmaffinity,filmweb,imdb,
kinopoisk,ofdb,themoviedb

** Default value **

priority.movie.writers=nfo,PLUGIN,ALTERNATE
priority.tv.writers=nfo,PLUGIN,ALTERNATE

Year

** Possible plugins **

nfo,filename,allocine,anidb,animator,comingsoon,filmaffinity,filmweb,
filmupit,imdb,kinopoisk,moviemeter,ofdb,sratim,themoviedb,
thetvdb,tvrage

** Default value **

priority.movie.year=nfo,PLUGIN,ALTERNATE,filename
priority.tv.year=nfo,PLUGIN,ALTERNATE,filename

People Actors

** Possible plugins **

nfo,allocine,animator,comingsoon,imdb,filmweb,kinopoisk,
ofdb,sratim,themoviedb,thetvdb

** Default value **

priority.movie.people.actors=nfo,PLUGIN,ALTERNATE
priority.tv.people.actors=nfo,PLUGIN,ALTERNATE

People Directors

** Possible plugins **

nfo,allocine,animator,comingsoon,imdb,filmweb,kinopoisk,
ofdb,sratim,themoviedb,thetvdb

** Default value **

priority.movie.people.directors=nfo,PLUGIN,ALTERNATE
priority.tv.people.directors=nfo,PLUGIN,ALTERNATE

People Writers

** Possible plugins **

nfo,allocine,animator,comingsoon,imdb,filmweb,kinopoisk,
ofdb,themoviedb,thetvdb

** Default value **

priority.movie.people.writers=nfo,PLUGIN,ALTERNATE
priority.tv.people.writers=nfo,PLUGIN,ALTERNATE

Episode First Aired

** Possible plugins **

nfo,imdb,thetvdb

** Default value **

priority.tv.episode.firstaired=nfo,PLUGIN,ALTERNATE

Episode Plot

** Possible plugins **

nfo,allocine,imdbsratim,thetvdb,tvrage

** Default value **

priority.tv.episode.plot=nfo,PLUGIN,ALTERNATE

Episode Rating

** Possible plugins **

nfo,thetvdb

** Default value **

priority.tv.episode.rating=nfo,PLUGIN,ALTERNATE

Episode Title

** Possible plugins **

nfo,filename,allocine,anidb,imdb,filmweb,sratim,thetvdb,tvrage

** Default value **

priority.tv.episode.title=nfo,filename,PLUGIN,ALTERNATE

Outdated configuration values

Thes section describes which existing configuration values are removed, because they are coverey by the priority checks.

For each existing priority check there is an explanation how to use the priority checks for the same result.

mediainfo.override.values

Set following property:

mediainfo.update.enable=true

Also you may set mediainfo as first value of the priority check list to update te movie values when movie just needs a minor update.

Note that until now some values (like title) are only scraped from mediainfo if the flag "mediainfo.metadate.enable" is set to "true.

kinopoisk.runtime

TRUE before: Set kinopoisk as first value in the priority check for "runtime".

FALSE before: Remove kinopoisk from priority check list for "runtime". Also you may set kinipoisk as last element in the check list.

filmkatalogus.getplot

TRUE before: Set filmkatalogus as first value in the priority check for "plot".

FALSE before: Remove filmkatalogus from priority check list for "plot". Also you may set filmkatalogus as last element in the check list.

filmkatalogus.gettitle

TRUE before: Set filmkatalogus as first value in the priority check for "title".

FALSE before: Remove filmkatalogus from priority check list for "title". Also you may set filmkatalogus as last element in the check list.

ofdb.getplot

TRUE before: Set ofdb as first value in the priority check for "plot".

FALSE before: Remove ofdb from priority check list for "plot". Also you may set ofdb as last element in the check list.

ofdb.gettitle

TRUE before: Set ofdb as first value in the priority check for "title".

FALSE before: Remove ofdb from priority check list for "title". Also you may set ofdb as last element in the check list.

sratim.!KeepEnglishTitle

TRUE before: Set sratim as first value in the priority check for "title".

FALSE before: Remove sratim from priority check list for "title".

sratim.keepImdbCast

TRUE before: Set imdb before sratim in the priority check for "actors" and/or "people.actors".

FALSE before: Set sratim before imdb in the priority check for "actors" and/or "people.actors".

comingsoon.imdb.perferredFor

The possibilities for this property are obsolete when using the priority checks. So this feature has been removed completely.

Following previous checks have been deleted:

title,originalTitle,plot,outline,runtime,releasedate,
year,country,company,genres,cast,directors,writers

To have the same behaviour set "comingsoon" as first value in the prioriy checks; i.e."priority.movie.title=comingsoon,...".

plugin.people.maxCount

Value has been deleted, cause it only works for two plugin which has overriden the other values. Makes less sense if cast/director/writer are scrapped from different sources.

Use following properties instead:

plugin.people.maxCount.director
plugin.people.maxCount.writer
plugin.people.maxCount.actor