From 8d523c3fbc6f54b64a39ce4661c882097a0e5d01 Mon Sep 17 00:00:00 2001 From: OhMyBahGosh <77786782+ohmybahgosh@users.noreply.github.com> Date: Mon, 7 Nov 2022 20:58:28 -0500 Subject: [PATCH 1/4] Add Responsive YT Video Embedding styling The IBRACORP YouTube video embed was causing overflow scrolling horizontally on smaller screens/mobile devices. Just tweaked some CSS to make the embed iframe responsive, which solves the horizontal overflow problem. --- docs/_static/custom.css | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/docs/_static/custom.css b/docs/_static/custom.css index c7dd3f8e..642c4653 100644 --- a/docs/_static/custom.css +++ b/docs/_static/custom.css @@ -187,4 +187,24 @@ a .logo-hover { } a:hover .logo-hover { display: block; -} \ No newline at end of file +} +/* Responsive YT Video Embedding */ +.responsiveYT { + position: relative; + height: 0; + padding-top: 56%; + overflow: hidden; + max-width: 100%; +} +.responsiveYT iframe, +.responsiveYT object, +.responsiveYT embed { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.responsiveYT .fluid-vids { + position: initial !important +} From 46ddabce6db288c454d5defd6ced23af60f4b76c Mon Sep 17 00:00:00 2001 From: OhMyBahGosh <77786782+ohmybahgosh@users.noreply.github.com> Date: Mon, 7 Nov 2022 20:59:55 -0500 Subject: [PATCH 2/4] Fix horizontal overflow scrolling issue on mobile The IBRACORP YouTube video embed was causing overflow scrolling horizontally on smaller screens/mobile devices. Just tweaked some CSS to make the embed iframe responsive, which solves the horizontal overflow problem. --- docs/index.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/index.md b/docs/index.md index 196a5aee..e2cba828 100644 --- a/docs/index.md +++ b/docs/index.md @@ -157,8 +157,9 @@ If you are unable to use the [Plex Meta Manager Discord Server](https://discord. [IBRACORP](https://ibracorp.io/) made a video walkthough for installing Plex Meta Manager on unRAID. While you might not be using unRAID the video goes over many key aspects of Plex Meta Manager and can be a great place to start learning how to use the script. Please note, since the making of the video, some significant changes have been made to Plex Meta Manager 1.17 and beyond so always reference the wiki for the latest details. -
><>>>< >"` and so for `genre` if you have a `Fantasy` collection, plex is going to show `!06_Fantasy` + +This is the default PMM collection ordering: + +| Collection | Collection Section | +|:-----------------------|:------------------:| +| `seasonal` | `00` | +| `anilist` | `01` | +| `basic` | `01` | +| `imdb` | `01` | +| `flixpatrol` | `01` | +| `myanimelist` | `01` | +| `other_chart` | `01` | +| `tautulli` | `01` | +| `tmdb` | `01` | +| `trakt` | `01` | +| `universe` | `02` | +| `streaming` | `03` | +| `network` | `04` | +| `genre` | `06` | +| `studio` | `07` | +| `country` | `09` | +| `audio_language` | `10` | +| `subtitle_language` | `11` | +| `decade` | `12` | +| `year` | `13` | +| `content_rating_us` | `14` | +| `content_rating_uk` | `14` | +| `content_rating_cs` | `14` | +| `resolution` | `15` | +| `resolution_standards` | `15` | +| `bafta` | `16` | +| `cannes` | `16` | +| `choice` | `16` | +| `emmy` | `16` | +| `golden` | `16` | +| `oscars` | `16` | +| `other_award` | `16` | +| `spirit` | `16` | +| `sundance` | `16` | +| `actor` | `17` | +| `director` | `18` | +| `producer` | `19` | +| `writer` | `20` | + +## Customizing Configs + +Configs can be customized using the `template_variables` attribute when calling the file. These `template_variables` will be given to every template call in the file which allows them to affect how that file runs. + +This example changes the ratings overlay to work on episodes. + +```yaml +libraries: + TV Shows: + metadata_path: + - pmm: imdb + template_variables: + use_popular: false + use_lowest: false + visible_library_top: true + visible_home_top: true + visible_shared_top: true +``` + +Each file has a page on the wiki showing the available `template_variables` for each file. For example the default `pmm: genre` has a page [here](both/genre). + +**In addition to the defined `template_variables` almost all default Metadata files have access to the [Shared Variables](collection_variables).** + +### Examples + +For example if you want yearly oscar collections that go back 10 years instead of 5 all of which gets sent to radarr use the `data` and `radarr_add_missing` template variables. + +```yaml +libraries: + Movies: + metadata_path: + - pmm: oscars + template_variables: + radarr_add_missing: true + data: + starting: current_year-10 + ending: current_year +``` + +Or maybe you want to change the number of actor collections made using pmm: actor. + +```yaml +libraries: + Movies: + overlay_path: + - pmm: actor + template_variables: + collection_mode: hide + data: + depth: 5 + limit: 50 +``` + +Or maybe you want to change the collection sort order of the genre collections using pmm: genre. + +```yaml +libraries: + Movies: + metadata_path: + - pmm: genre + template_variables: + collection_section: 11 +``` + +Or maybe you want to disable separators globally per library. + +```yaml +libraries: + LIBRARYNAME: + template_variables: + use_separator: false + metadata_path: + - ... +``` + +Alternatively it can be turned off individually per git file: + +```yaml +libraries: + LIBRARYNAME: + metadata_path: + - pmm: # separator is disabled + template_variables: + use_separator: false + - pmm: # separator is enabled by default + - pmm: # separator is disabled + template_variables: + use_separator: false +``` + +```{include} example.md +``` \ No newline at end of file diff --git a/docs/defaults/defaults.md b/docs/defaults/defaults.md deleted file mode 100644 index aa13ef89..00000000 --- a/docs/defaults/defaults.md +++ /dev/null @@ -1,191 +0,0 @@ -# Collection Defaults - -There are many Default Metadata Files built into PMM itself which offer an easy-to-use and customizable set of Collections that the user can achieve without having to worry about creating the files that makes the collections possible. - -This is the simplest way to create Collections using Plex Meta Manager. - -## Metadata Files - -```{include} collections.md -``` - -## Configurations - -To run a default pmm Metadata file you can simply add it to your `metadata_path` using `pmm` like so: - -```yaml -libraries: - Movies: - metadata_path: - - pmm: actor - - pmm: genre -``` - -## Separators - -Most Metadata files use separators to denote different sections of collection like actor collections vs studio collections. - -**Chart Separator and Award Separator each have their own file, while the other Separators are part of their respective files.** - - -- -### Library On/Off - -Chart Separators are turned On by default (except `seasonal`), to turn the Separators On/Off on a per Library basis. - -```yaml -libraries: - LIBRARYNAME: - template_variables: - use_separator: false - metadata_path: - - pmm: actor - - pmm: genre -``` - -## Collection Section Order - -All Default Metadata Files have a `collection_section` attribute. These attributes determine the order of the various sections and can be set by [customizing your config](#customizing-configs). - -For example: `collection_section: 01` translates to `sort_title: "!<Click to expand to see an example of Separators.
- - ![](images/separators.jpg) - ->< ><>>>< >"` and so for `genre` if you have a `Fantasy` collection, plex is going to show `!06_Fantasy` - -This is the default PMM collection ordering: - -| Collection | Collection Section | -|:-----------------------|:------------------:| -| `seasonal` | `00` | -| `anilist` | `01` | -| `basic` | `01` | -| `imdb` | `01` | -| `flixpatrol` | `01` | -| `myanimelist` | `01` | -| `other_chart` | `01` | -| `tautulli` | `01` | -| `tmdb` | `01` | -| `trakt` | `01` | -| `universe` | `02` | -| `streaming` | `03` | -| `network` | `04` | -| `genre` | `06` | -| `studio` | `07` | -| `country` | `09` | -| `audio_language` | `10` | -| `subtitle_language` | `11` | -| `decade` | `12` | -| `year` | `13` | -| `content_rating_us` | `14` | -| `content_rating_uk` | `14` | -| `content_rating_cs` | `14` | -| `resolution` | `15` | -| `resolution_standards` | `15` | -| `bafta` | `16` | -| `cannes` | `16` | -| `choice` | `16` | -| `emmy` | `16` | -| `golden` | `16` | -| `oscars` | `16` | -| `other_award` | `16` | -| `spirit` | `16` | -| `sundance` | `16` | -| `actor` | `17` | -| `director` | `18` | -| `producer` | `19` | -| `writer` | `20` | - -## Customizing Configs - -Configs can be customized using the `template_variables` attribute when calling the file. These `template_variables` will be given to every template call in the file which allows them to affect how that file runs. - -This example changes the ratings overlay to work on episodes. - -```yaml -libraries: - TV Shows: - metadata_path: - - pmm: imdb - template_variables: - use_popular: false - use_lowest: false - visible_library_top: true - visible_home_top: true - visible_shared_top: true -``` - -Each file has a page on the wiki showing the available `template_variables` for each file. For example the default `pmm: genre` has a page [here](both/genre). - -**In addition to the defined `template_variables` almost all default Metadata files have access to the [Shared Variables](variables).** - -### Examples - -For example if you want yearly oscar collections that go back 10 years instead of 5 all of which gets sent to radarr use the `data` and `radarr_add_missing` template variables. - -```yaml -libraries: - Movies: - metadata_path: - - pmm: oscars - template_variables: - radarr_add_missing: true - data: - starting: current_year-10 - ending: current_year -``` - -Or maybe you want to change the number of actor collections made using pmm: actor. - -```yaml -libraries: - Movies: - overlay_path: - - pmm: actor - template_variables: - collection_mode: hide - data: - depth: 5 - limit: 50 -``` - -Or maybe you want to change the collection sort order of the genre collections using pmm: genre. - -```yaml -libraries: - Movies: - metadata_path: - - pmm: genre - template_variables: - collection_section: 11 -``` - -Or maybe you want to disable separators globally per library. - -```yaml -libraries: - LIBRARYNAME: - template_variables: - use_separator: false - metadata_path: - - ... -``` - -Alternatively it can be turned off individually per git file: - -```yaml -libraries: - LIBRARYNAME: - metadata_path: - - pmm: # separator is disabled - template_variables: - use_separator: false - - pmm: # separator is enabled by default - - pmm: # separator is disabled - template_variables: - use_separator: false -``` - -```{include} example.md -``` \ No newline at end of file diff --git a/docs/defaults/example.md b/docs/defaults/example.md index 03ce233e..e1db8ff5 100644 --- a/docs/defaults/example.md +++ b/docs/defaults/example.md @@ -365,4 +365,5 @@ playlist_files: template_variables: libraries: Movies, TV Shows ``` + diff --git a/docs/defaults/files.md b/docs/defaults/files.md index cf9c9809..a3887d74 100644 --- a/docs/defaults/files.md +++ b/docs/defaults/files.md @@ -2,10 +2,10 @@ The below table outlines the available Defaults files which can be called via `metadata_path` (for Collections), `overlay_path` (for Overlays) and `playlist_files` (for Playlists). -```{include} collections.md +```{include} collection_list.md ``` -```{include} overlays.md +```{include} overlay_list.md ``` ## Playlists diff --git a/docs/defaults/guide.md b/docs/defaults/guide.md index a9f0780c..37bb3948 100644 --- a/docs/defaults/guide.md +++ b/docs/defaults/guide.md @@ -14,11 +14,11 @@ Please consider [donating](https://github.com/sponsors/meisnate12) towards the p ## Collection Defaults -See the [Collection Defaults](defaults) Page for more information on the specifics of the Collection Defaults. +See the [Collection Defaults](collections) Page for more information on the specifics of the Collection Defaults. ## Overlay Defaults -See the [Overlay Defaults](overlays/defaults) Page for more information on the specifics of the Overlay Defaults. +See the [Overlay Defaults](overlays.md) Page for more information on the specifics of the Overlay Defaults. ## Configurations @@ -60,7 +60,7 @@ libraries: Each file has a page on the wiki showing the available `template_variables` for each file. For example the default `pmm: ratings` has a page [here](overlays/ratings). -**In addition to the defined `template_variables` almost all default Metadata and Overlay files have access to their respective [Metadata](variables)/[Overlay](overlays/variables) Shared Variables.** +**In addition to the defined `template_variables` almost all default Metadata and Overlay files have access to their respective [Metadata](collection_variables)/[Overlay](overlay_variables.md) Shared Variables.** ```{include} example.md ``` \ No newline at end of file diff --git a/docs/defaults/movie/content_rating_us.md b/docs/defaults/movie/content_rating_us.md index 18f59b53..f2b67993 100644 --- a/docs/defaults/movie/content_rating_us.md +++ b/docs/defaults/movie/content_rating_us.md @@ -33,7 +33,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `templates_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. This file contains a [Separator](../separators) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. diff --git a/docs/defaults/movie/country.md b/docs/defaults/movie/country.md index 1b69d36c..7bbdc6c4 100644 --- a/docs/defaults/movie/country.md +++ b/docs/defaults/movie/country.md @@ -37,7 +37,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `templates_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. This file contains a [Separator](../separators) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. diff --git a/docs/defaults/movie/decade.md b/docs/defaults/movie/decade.md index aa22ccb9..a88c5140 100644 --- a/docs/defaults/movie/decade.md +++ b/docs/defaults/movie/decade.md @@ -30,7 +30,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `templates_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. This file contains a [Separator](../separators) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. diff --git a/docs/defaults/movie/director.md b/docs/defaults/movie/director.md index 77e345a5..a8b2ee64 100644 --- a/docs/defaults/movie/director.md +++ b/docs/defaults/movie/director.md @@ -36,7 +36,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `templates_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. This file contains a [Separator](../separators) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. diff --git a/docs/defaults/movie/franchise.md b/docs/defaults/movie/franchise.md index b49c36fe..8ceee16b 100644 --- a/docs/defaults/movie/franchise.md +++ b/docs/defaults/movie/franchise.md @@ -31,7 +31,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `templates_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -**[Shared Collection Variables](../variables) are NOT available to this default file.** +**[Shared Collection Variables](../collection_variables) are NOT available to this default file.** | Variable | Description & Values | |:-----------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| diff --git a/docs/defaults/movie/producer.md b/docs/defaults/movie/producer.md index 7b6eb6c1..897be4fd 100644 --- a/docs/defaults/movie/producer.md +++ b/docs/defaults/movie/producer.md @@ -36,7 +36,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `templates_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. This file contains a [Separator](../separators) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. diff --git a/docs/defaults/movie/seasonal.md b/docs/defaults/movie/seasonal.md index 614ffba8..fb915cd5 100644 --- a/docs/defaults/movie/seasonal.md +++ b/docs/defaults/movie/seasonal.md @@ -41,7 +41,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `templates_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. This file contains a [Separator](../separators) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. diff --git a/docs/defaults/movie/universe.md b/docs/defaults/movie/universe.md index c85c98eb..3c3195df 100644 --- a/docs/defaults/movie/universe.md +++ b/docs/defaults/movie/universe.md @@ -43,7 +43,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `templates_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. This file contains a [Separator](../separators) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. diff --git a/docs/defaults/movie/writer.md b/docs/defaults/movie/writer.md index 448dda51..0dd95055 100644 --- a/docs/defaults/movie/writer.md +++ b/docs/defaults/movie/writer.md @@ -36,7 +36,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `templates_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. This file contains a [Separator](../separators) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. diff --git a/docs/defaults/overlay_list.md b/docs/defaults/overlay_list.md new file mode 100644 index 00000000..85c01784 --- /dev/null +++ b/docs/defaults/overlay_list.md @@ -0,0 +1,30 @@ +## Overlays + +These files apply overlays and can generally be used on both Movie and Show library-types, and often works at the season and episode-level too. + +It should be noted that when an overlay has ❗ for a season or episode, it normally means that whilst the overlay can technically be applied at the level, it wasn't designed for this purpose. For example, a show's season cannot have a resolution since it is not a video file, and an episode cannot have a commonsense age-rating since only Movies and Shows are rated by CommonSense. + +In the scenario where there is missing data such as age ratings for episodes, then generally the highest-level data available will be applied at the lower level (i.e. a Show's CommonSense age rating would apply to all episodes). + +These overlays are applied by calling the below paths into the `overlay_path` [section](../config/libraries.md#overlay-path) of your config.yml + +### Overlay Files + +| Default | path | Example Overlays | Movies | Shows | Seasons | Episodes | +|:-----------------------------------------------|:----------------:|:--------------------------------------------------------------------------|:--------:|:---------:|:---------:|:--------:| +| [Audio Codec](overlays/audio_codec) | `audio_codec` | Dolby Atmos logo, DTS logo | ✅ | ✅ | ✅ | ✅ | +| [CommonSense Age Rating](overlays/commonsense) | `commonsense` | "3+", "16+" | ✅ | ✅ | ❗ | ❗ | +| [Direct Play](overlays/direct_play) | `direct_play` | "Direct Play Only" | ✅ | ❗ | ❗ | ✅ | +| [Episode Info](overlays/episode_info) | `episode_info` | "S01E01", "S02E09" | ❌ | ❌ | ❌ | ✅ | +| [FlixPatrol](overlays/flixpatrol) | `flixpatrol` | "Streaming service logo with words "TOP" | ✅ | ✅ | ❌ | ❌ | +| [Language Count](overlays/language_count) | `language_count` | Dual-Audio, Multi-Audio, Dual-Subtitle, Multi-Subtitle | ✅ | ✅ | ✅ | ✅ | +| [Languages](overlays/languages) | `languages` | Flags Based on the Audio/Subtitles a file has | ✅ | ✅ | ✅ | ✅ | +| [Mediastinger](overlays/mediastinger) | `mediastinger` | Mediastinger Logo for After/During Credit Scenes | ✅ | ✅ | ❌ | ❌ | +| [Ratings](overlays/ratings) | `ratings` | IMDb Audience Rating, Metacritic Critic Rating | ✅ | ✅ | ❌ | ✅ | +| [Resolution/Editions](overlays/resolution) | `resolution` | 4K Dolby Vision logo, 720P logo, "Director's Cut", "Criterion Collection" | ✅ | ✅ | ❌ | ✅ | +| [Ribbon](overlays/ribbon) | `ribbon` | IMDb Top 250 Ribbon, RT Fresh Ribbon | ✅ | ✅ | ❌ | ❌ | +| [Runtimes](overlays/runtimes) | `runtimes` | "Runtime: 1h 30m" | ✅ | ✅ | ❌ | ❌ | +| [Status](overlays/status) | `status` | Airing, Returning, Canceled, Ended | ❌ | ✅ | ❌ | ❌ | +| [Streaming](overlays/streaming) | `streaming` | Netflix logo, Hulu logo | ✅ | ✅ | ❌ | ❌ | +| [Versions](overlays/versions) | `versions` | Multiple Versions logo | ✅ | ✅ | ✅ | ✅ | +| [Video Format](overlays/video_format) | `video_format` | "REMUX", "HDTV" | ✅ | ❗ | ❗ | ✅ | diff --git a/docs/defaults/overlays/variables.md b/docs/defaults/overlay_variables.md similarity index 100% rename from docs/defaults/overlays/variables.md rename to docs/defaults/overlay_variables.md diff --git a/docs/defaults/overlays.md b/docs/defaults/overlays.md index 85c01784..42ccf176 100644 --- a/docs/defaults/overlays.md +++ b/docs/defaults/overlays.md @@ -1,30 +1,243 @@ +# Overlay Defaults + +There are many Default Overlay Files built into PMM itself which offer an easy-to-use and customizable set of Overlays that the user can achieve without having to worry about creating the files that makes the overlays possible. + +This is the simplest way to create Overlays using Plex Meta Manager. + +## Overlay Files + +```{include} ../overlay_list.md +``` + +## Configurations + +To run a default pmm Overlay file you can simply add it to your `overlay_path` using `pmm` like so: + +```yaml +libraries: + Movies: + overlay_path: + - pmm: ribbon + - pmm: ratings +``` + ## Overlays -These files apply overlays and can generally be used on both Movie and Show library-types, and often works at the season and episode-level too. - -It should be noted that when an overlay has ❗ for a season or episode, it normally means that whilst the overlay can technically be applied at the level, it wasn't designed for this purpose. For example, a show's season cannot have a resolution since it is not a video file, and an episode cannot have a commonsense age-rating since only Movies and Shows are rated by CommonSense. - -In the scenario where there is missing data such as age ratings for episodes, then generally the highest-level data available will be applied at the lower level (i.e. a Show's CommonSense age rating would apply to all episodes). - -These overlays are applied by calling the below paths into the `overlay_path` [section](../config/libraries.md#overlay-path) of your config.yml - -### Overlay Files - -| Default | path | Example Overlays | Movies | Shows | Seasons | Episodes | -|:-----------------------------------------------|:----------------:|:--------------------------------------------------------------------------|:--------:|:---------:|:---------:|:--------:| -| [Audio Codec](overlays/audio_codec) | `audio_codec` | Dolby Atmos logo, DTS logo | ✅ | ✅ | ✅ | ✅ | -| [CommonSense Age Rating](overlays/commonsense) | `commonsense` | "3+", "16+" | ✅ | ✅ | ❗ | ❗ | -| [Direct Play](overlays/direct_play) | `direct_play` | "Direct Play Only" | ✅ | ❗ | ❗ | ✅ | -| [Episode Info](overlays/episode_info) | `episode_info` | "S01E01", "S02E09" | ❌ | ❌ | ❌ | ✅ | -| [FlixPatrol](overlays/flixpatrol) | `flixpatrol` | "Streaming service logo with words "TOP" | ✅ | ✅ | ❌ | ❌ | -| [Language Count](overlays/language_count) | `language_count` | Dual-Audio, Multi-Audio, Dual-Subtitle, Multi-Subtitle | ✅ | ✅ | ✅ | ✅ | -| [Languages](overlays/languages) | `languages` | Flags Based on the Audio/Subtitles a file has | ✅ | ✅ | ✅ | ✅ | -| [Mediastinger](overlays/mediastinger) | `mediastinger` | Mediastinger Logo for After/During Credit Scenes | ✅ | ✅ | ❌ | ❌ | -| [Ratings](overlays/ratings) | `ratings` | IMDb Audience Rating, Metacritic Critic Rating | ✅ | ✅ | ❌ | ✅ | -| [Resolution/Editions](overlays/resolution) | `resolution` | 4K Dolby Vision logo, 720P logo, "Director's Cut", "Criterion Collection" | ✅ | ✅ | ❌ | ✅ | -| [Ribbon](overlays/ribbon) | `ribbon` | IMDb Top 250 Ribbon, RT Fresh Ribbon | ✅ | ✅ | ❌ | ❌ | -| [Runtimes](overlays/runtimes) | `runtimes` | "Runtime: 1h 30m" | ✅ | ✅ | ❌ | ❌ | -| [Status](overlays/status) | `status` | Airing, Returning, Canceled, Ended | ❌ | ✅ | ❌ | ❌ | -| [Streaming](overlays/streaming) | `streaming` | Netflix logo, Hulu logo | ✅ | ✅ | ❌ | ❌ | -| [Versions](overlays/versions) | `versions` | Multiple Versions logo | ✅ | ✅ | ✅ | ✅ | -| [Video Format](overlays/video_format) | `video_format` | "REMUX", "HDTV" | ✅ | ❗ | ❗ | ✅ | +The default set of overlays are a combination of Positional Overlays and Text Overlays. + +### Example Poster Overlays + +![](images/movie-overlays1-annotated.png) +![](images/movie-overlays2-annotated.png) + + ++ +### Example TV Shows - Show Overlays + +![](images/tvshow-poster-annotated.png) +Click to expand sample config.yml Movies overlays section:
+ +**Note: This uses fonts not packaged with PMM. See [bullmoose20's Configs](https://github.com/meisnate12/Plex-Meta-Manager-Configs/tree/master/bullmoose20)** + +```yaml +libraries: + Movies: + overlay_path: + - remove_overlays: false + - reapply_overlay: true + - pmm: resolution # 1 + - pmm: audio_codec # 2 + - pmm: mediastinger # 3 + - pmm: special_release # 4 + - pmm: ratings # 5, 6, 7 + template_variables: + rating1: user # 5 as this is user and mass_user_rating_update: mdb_tomatoes + rating1_image: rt_tomato # 5 as this is user and mass_user_rating_update: mdb_tomatoes + rating1_font: config/custom_fonts/Adlib.ttf # 5 local font accessible to PMM + rating1_font_size: 63 # 5 adjusted font size to fit rating + + rating2: critic # 6 as this is critic and mass_critic_rating_update: imdb + rating2_image: imdb # 6 as this is critic and mass_critic_rating_update: imdb + rating2_font: config/custom_fonts/Impact.ttf # 6 local font accessible to PMM + rating2_font_size: 70 # 6 adjusted font size to fit rating + + rating3: audience # 7 as this is audience and mass_audience_rating_update: tmdb + rating3_image: tmdb # 7 as this is audience and mass_audience_rating_update: tmdb + rating3_font: config/custom_fonts/Avenir_95_Black.ttf # 7 local font accessible to PMM + rating3_font_size: 70 # 7 adjusted font size to fit rating + + horizontal_position: right # the set of ratings is on the right of the poster + - pmm: streaming # 8 + - pmm: video_format # 9 + - pmm: audio_language # 10 + - pmm: ribbon # 11, 12 Bottom right sash is used by more than one overlay so a weight for priority can be applied + operations: + mass_user_rating_update: mdb_tomatoes # 5 This operation will update the user rating in plex with Rotten Tomatoes ratings information + mass_critic_rating_update: imdb # 6 This operation will update the critic rating in plex with IMDb ratings information + mass_audience_rating_update: tmdb # 7 This operation will update the audience rating in plex with TMDb ratings information +``` +++ +### Example TV Shows - Season Overlays + +![](images/tvshow-poster-season-annotated.png) +Click to expand sample config.yml TV Shows overlays section for the Show Poster:
+ +**Note: This uses fonts not packaged with PMM. See [bullmoose20's Configs](https://github.com/meisnate12/Plex-Meta-Manager-Configs/tree/master/bullmoose20)** + +```yaml +libraries: + TV Shows: + overlay_path: + - remove_overlays: false + - reapply_overlay: true + - pmm: resolution # 1 + - pmm: audio_codec # 2 + - pmm: mediastinger # 3 + - pmm: ratings # 4, 5, 6 + template_variables: + rating1: user # 4 as this is user and mass_user_rating_update: mdb_tomatoes + rating1_image: rt_tomato # 4 as this is user and mass_user_rating_update: mdb_tomatoes + rating1_font: config/custom_fonts/Adlib.ttf # 4 local font accessible to PMM + rating1_font_size: 63 # 4 adjusted font size to fit rating + + rating2: critic # 5 as this is critic and mass_critic_rating_update: imdb + rating2_image: imdb # 5 as this is critic and mass_critic_rating_update: imdb + rating2_font: config/custom_fonts/Impact.ttf # 5 local font accessible to PMM + rating2_font_size: 70 # 5 adjusted font size to fit rating + + rating3: audience # 6 as this is audience and mass_audience_rating_update: tmdb + rating3_image: tmdb # 6 as this is audience and mass_audience_rating_update: tmdb + rating3_font: config/custom_fonts/Avenir_95_Black.ttf # 6 local font accessible to PMM + rating3_font_size: 70 # 6 adjusted font size to fit rating + + horizontal_position: right # the set of ratings is on the right of the poster + - pmm: streaming # 7 + - pmm: video_format # 8 + - pmm: ribbon # 10, 11 Bottom right sash is used by more than one overlay so a weight for priority can be applied + operations: + mass_user_rating_update: mdb_tomatoes # 4 This operation will update the user rating in plex with Rotten Tomatoes ratings information + mass_critic_rating_update: imdb # 5 This operation will update the critic rating in plex with IMDb ratings information + mass_audience_rating_update: tmdb # 6 This operation will update the audience rating in plex with TMDb ratings information +``` +++ +### Example TV Shows - Episode Overlays + +![](images/tvshow-poster-episode-annotated.png) +Click to expand sample config.yml TV Shows overlays section for the Season Poster:
+ +```yaml +libraries: + TV Shows: + overlay_path: + - remove_overlays: false + - reapply_overlay: true + - pmm: resolution # 1 + template_variables: + overlay_level: season + - pmm: audio_codec # 2 + template_variables: + overlay_level: season + - pmm: video_format # 3 + template_variables: + overlay_level: season +``` +++ +## Rating Overlays + +By default for Movies in Plex, the `Ratings Source` dropdown (`#3`) below, can come from Rotten Tomatoes (and includes Critic Ratings and Audience Ratings) or IMDb (Audience Ratings). This only changes the tiny icons displayed and where Plex will retrieve the ratings from upon initial scan and import of the media metadata. + +**Plex Meta Manager can insert up to three ratings of your choice into the three spots regardless of what you choose in the `Advanced` tab of that Plex library** + +![](images/ratings_source.png) + +Plex has three available spots in the Plex DB to store ratings and thus Plex Meta Manager can be used to insert ratings sources of your choice into those spots. They are known as the User Rating (`#1`), Critic Rating (`#2`), and Audience Rating (`#3`). + +**Note that the little icons cannot be changed and that the numbers next to the little icons are reflected in the poster ratings overlay** + +![](images/ratings_spot.png) + +To be able to insert the ratings you want, Plex Meta Manager operations need to be defined. In this example below, User ratings (`#1`) are being filled with Rotten Tomatoes Critics Ratings. Critic ratings (`#2`) are filled with IMDb, and Audience ratings (`#3`) are filled with TMDb. + +**mass_*_rating_update** sources can be found here: [operations](../../config/operations) + +![](images/ratings_operations.png) + +Finally, to show the ratings on the poster, the following was added to the `overlay_path` section in the `config.yml` file to post Rotten Tomatoes Critics Ratings in (`#1`), IMDb ratings in (`#2`), and TMDb ratings in (`#3`) + +![](images/ratings_overlay_path.png) + +## Customizing Configs + +Configs can be customized using the `template_variables` attribute when calling the file. These `template_variables` will be given to every template call in the file which allows them to affect how that file runs. + +This example changes the ratings overlay to work on episodes. + +```yaml +libraries: + TV Shows: + overlay_path: + - pmm: ratings + template_variables: + overlay_level: episode +``` + +Each file has a page on the wiki showing the available `template_variables` for each file. For example the default `pmm: ratings` has a page [here](ratings). + +**In addition to the defined `template_variables` almost all default Overlay files have access to the [Shared Variables](collection_variables).** + +### Examples + +```{include} ../example.md +``` \ No newline at end of file diff --git a/docs/defaults/overlays/audio_codec.md b/docs/defaults/overlays/audio_codec.md index 1889d21e..d7bddc69 100644 --- a/docs/defaults/overlays/audio_codec.md +++ b/docs/defaults/overlays/audio_codec.md @@ -61,7 +61,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `templates_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Overlay Variables](variables) are available with the default values below as well as the additional Variables below which can be used to customize the file. +All [Shared Overlay Variables](../overlay_variables.md) are available with the default values below as well as the additional Variables below which can be used to customize the file. | Variable | Default | |:--------------------|:-----------:| diff --git a/docs/defaults/overlays/commonsense.md b/docs/defaults/overlays/commonsense.md index 57d7a2dc..a5f8d723 100644 --- a/docs/defaults/overlays/commonsense.md +++ b/docs/defaults/overlays/commonsense.md @@ -58,7 +58,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `templates_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Overlay Variables](variables) are available with the default values below as well as the additional Variables below which can be used to customize the file. +All [Shared Overlay Variables](../overlay_variables.md) are available with the default values below as well as the additional Variables below which can be used to customize the file. | Variable | Default | |:--------------------|:-----------:| diff --git a/docs/defaults/overlays/defaults.md b/docs/defaults/overlays/defaults.md deleted file mode 100644 index f47e16f2..00000000 --- a/docs/defaults/overlays/defaults.md +++ /dev/null @@ -1,243 +0,0 @@ -# Overlay Defaults - -There are many Default Overlay Files built into PMM itself which offer an easy-to-use and customizable set of Overlays that the user can achieve without having to worry about creating the files that makes the overlays possible. - -This is the simplest way to create Overlays using Plex Meta Manager. - -## Overlay Files - -```{include} ../overlays.md -``` - -## Configurations - -To run a default pmm Overlay file you can simply add it to your `overlay_path` using `pmm` like so: - -```yaml -libraries: - Movies: - overlay_path: - - pmm: ribbon - - pmm: ratings -``` - -## Overlays - -The default set of overlays are a combination of Positional Overlays and Text Overlays. - -### Example Poster Overlays - -![](../images/movie-overlays1-annotated.png) -![](../images/movie-overlays2-annotated.png) - -Click to expand sample config.yml TV Shows overlays section for the Episode Poster:
+ +**Note: This uses fonts not packaged with PMM. See [bullmoose20's Configs](https://github.com/meisnate12/Plex-Meta-Manager-Configs/tree/master/bullmoose20)** + +```yaml +libraries: + TV Shows: + overlay_path: + - remove_overlays: false + - reapply_overlay: true + - pmm: resolution # 1 + template_variables: + overlay_level: episode + - pmm: audio_codec # 2 + template_variables: + overlay_level: episode + - pmm: ratings # 3, 4 + template_variables: + + rating1: critic # 3 as this is critic and mass_critic_rating_update: imdb + rating1_image: imdb # 3 as this is critic and mass_critic_rating_update: imdb + rating1_font: config/custom_fonts/Impact.ttf # 3 local font accessible to PMM + rating1_font_size: 70 # 3 adjusted font size to fit rating + + rating2: audience # 4 as this is audience and mass_audience_rating_update: tmdb + rating2_image: tmdb # 4 as this is audience and mass_audience_rating_update: tmdb + rating2_font: config/custom_fonts/Avenir_95_Black.ttf # 4 local font accessible to PMM + rating2_font_size: 70 # 4 adjusted font size to fit rating + + horizontal_position: right # the set of ratings is on the right of the poster + overlay_level: episode + - pmm: video_format # 5 + template_variables: + overlay_level: episode + - pmm: episode_info # 6 + template_variables: + overlay_level: episode + - pmm: runtimes # 7 + template_variables: + overlay_level: episode + + operations: + mass_episode_critic_rating_update: imdb # 3 This operation will update the episodes critic rating in plex with IMDb ratings information + mass_episode_audience_rating_update: tmdb # 4 This operation will update the episodes audience rating in plex with TMDb ratings information +``` +-- -### Example TV Shows - Show Overlays - -![](../images/tvshow-poster-annotated.png) -Click to expand sample config.yml Movies overlays section:
- -**Note: This uses fonts not packaged with PMM. See [bullmoose20's Configs](https://github.com/meisnate12/Plex-Meta-Manager-Configs/tree/master/bullmoose20)** - -```yaml -libraries: - Movies: - overlay_path: - - remove_overlays: false - - reapply_overlay: true - - pmm: resolution # 1 - - pmm: audio_codec # 2 - - pmm: mediastinger # 3 - - pmm: special_release # 4 - - pmm: ratings # 5, 6, 7 - template_variables: - rating1: user # 5 as this is user and mass_user_rating_update: mdb_tomatoes - rating1_image: rt_tomato # 5 as this is user and mass_user_rating_update: mdb_tomatoes - rating1_font: config/custom_fonts/Adlib.ttf # 5 local font accessible to PMM - rating1_font_size: 63 # 5 adjusted font size to fit rating - - rating2: critic # 6 as this is critic and mass_critic_rating_update: imdb - rating2_image: imdb # 6 as this is critic and mass_critic_rating_update: imdb - rating2_font: config/custom_fonts/Impact.ttf # 6 local font accessible to PMM - rating2_font_size: 70 # 6 adjusted font size to fit rating - - rating3: audience # 7 as this is audience and mass_audience_rating_update: tmdb - rating3_image: tmdb # 7 as this is audience and mass_audience_rating_update: tmdb - rating3_font: config/custom_fonts/Avenir_95_Black.ttf # 7 local font accessible to PMM - rating3_font_size: 70 # 7 adjusted font size to fit rating - - horizontal_position: right # the set of ratings is on the right of the poster - - pmm: streaming # 8 - - pmm: video_format # 9 - - pmm: audio_language # 10 - - pmm: ribbon # 11, 12 Bottom right sash is used by more than one overlay so a weight for priority can be applied - operations: - mass_user_rating_update: mdb_tomatoes # 5 This operation will update the user rating in plex with Rotten Tomatoes ratings information - mass_critic_rating_update: imdb # 6 This operation will update the critic rating in plex with IMDb ratings information - mass_audience_rating_update: tmdb # 7 This operation will update the audience rating in plex with TMDb ratings information -``` --- -### Example TV Shows - Season Overlays - -![](../images/tvshow-poster-season-annotated.png) -Click to expand sample config.yml TV Shows overlays section for the Show Poster:
- -**Note: This uses fonts not packaged with PMM. See [bullmoose20's Configs](https://github.com/meisnate12/Plex-Meta-Manager-Configs/tree/master/bullmoose20)** - -```yaml -libraries: - TV Shows: - overlay_path: - - remove_overlays: false - - reapply_overlay: true - - pmm: resolution # 1 - - pmm: audio_codec # 2 - - pmm: mediastinger # 3 - - pmm: ratings # 4, 5, 6 - template_variables: - rating1: user # 4 as this is user and mass_user_rating_update: mdb_tomatoes - rating1_image: rt_tomato # 4 as this is user and mass_user_rating_update: mdb_tomatoes - rating1_font: config/custom_fonts/Adlib.ttf # 4 local font accessible to PMM - rating1_font_size: 63 # 4 adjusted font size to fit rating - - rating2: critic # 5 as this is critic and mass_critic_rating_update: imdb - rating2_image: imdb # 5 as this is critic and mass_critic_rating_update: imdb - rating2_font: config/custom_fonts/Impact.ttf # 5 local font accessible to PMM - rating2_font_size: 70 # 5 adjusted font size to fit rating - - rating3: audience # 6 as this is audience and mass_audience_rating_update: tmdb - rating3_image: tmdb # 6 as this is audience and mass_audience_rating_update: tmdb - rating3_font: config/custom_fonts/Avenir_95_Black.ttf # 6 local font accessible to PMM - rating3_font_size: 70 # 6 adjusted font size to fit rating - - horizontal_position: right # the set of ratings is on the right of the poster - - pmm: streaming # 7 - - pmm: video_format # 8 - - pmm: ribbon # 10, 11 Bottom right sash is used by more than one overlay so a weight for priority can be applied - operations: - mass_user_rating_update: mdb_tomatoes # 4 This operation will update the user rating in plex with Rotten Tomatoes ratings information - mass_critic_rating_update: imdb # 5 This operation will update the critic rating in plex with IMDb ratings information - mass_audience_rating_update: tmdb # 6 This operation will update the audience rating in plex with TMDb ratings information -``` --- -### Example TV Shows - Episode Overlays - -![](../images/tvshow-poster-episode-annotated.png) -Click to expand sample config.yml TV Shows overlays section for the Season Poster:
- -```yaml -libraries: - TV Shows: - overlay_path: - - remove_overlays: false - - reapply_overlay: true - - pmm: resolution # 1 - template_variables: - overlay_level: season - - pmm: audio_codec # 2 - template_variables: - overlay_level: season - - pmm: video_format # 3 - template_variables: - overlay_level: season -``` --- -## Rating Overlays - -By default for Movies in Plex, the `Ratings Source` dropdown (`#3`) below, can come from Rotten Tomatoes (and includes Critic Ratings and Audience Ratings) or IMDb (Audience Ratings). This only changes the tiny icons displayed and where Plex will retrieve the ratings from upon initial scan and import of the media metadata. - -**Plex Meta Manager can insert up to three ratings of your choice into the three spots regardless of what you choose in the `Advanced` tab of that Plex library** - -![](../images/ratings_source.png) - -Plex has three available spots in the Plex DB to store ratings and thus Plex Meta Manager can be used to insert ratings sources of your choice into those spots. They are known as the User Rating (`#1`), Critic Rating (`#2`), and Audience Rating (`#3`). - -**Note that the little icons cannot be changed and that the numbers next to the little icons are reflected in the poster ratings overlay** - -![](../images/ratings_spot.png) - -To be able to insert the ratings you want, Plex Meta Manager operations need to be defined. In this example below, User ratings (`#1`) are being filled with Rotten Tomatoes Critics Ratings. Critic ratings (`#2`) are filled with IMDb, and Audience ratings (`#3`) are filled with TMDb. - -**mass_*_rating_update** sources can be found here: [operations](../../config/operations) - -![](../images/ratings_operations.png) - -Finally, to show the ratings on the poster, the following was added to the `overlay_path` section in the `config.yml` file to post Rotten Tomatoes Critics Ratings in (`#1`), IMDb ratings in (`#2`), and TMDb ratings in (`#3`) - -![](../images/ratings_overlay_path.png) - -## Customizing Configs - -Configs can be customized using the `template_variables` attribute when calling the file. These `template_variables` will be given to every template call in the file which allows them to affect how that file runs. - -This example changes the ratings overlay to work on episodes. - -```yaml -libraries: - TV Shows: - overlay_path: - - pmm: ratings - template_variables: - overlay_level: episode -``` - -Each file has a page on the wiki showing the available `template_variables` for each file. For example the default `pmm: ratings` has a page [here](ratings). - -**In addition to the defined `template_variables` almost all default Overlay files have access to the [Shared Variables](variables).** - -### Examples - -```{include} ../example.md -``` \ No newline at end of file diff --git a/docs/defaults/overlays/direct_play.md b/docs/defaults/overlays/direct_play.md index 048494aa..eac6a97f 100644 --- a/docs/defaults/overlays/direct_play.md +++ b/docs/defaults/overlays/direct_play.md @@ -32,7 +32,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `templates_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Overlay Variables](variables) are available with the default values below as well as the additional Variables below which can be used to customize the file. +All [Shared Overlay Variables](../overlay_variables.md) are available with the default values below as well as the additional Variables below which can be used to customize the file. | Variable | Default | |:--------------------|:-----------:| diff --git a/docs/defaults/overlays/episode_info.md b/docs/defaults/overlays/episode_info.md index 2045c5ac..192001a1 100644 --- a/docs/defaults/overlays/episode_info.md +++ b/docs/defaults/overlays/episode_info.md @@ -23,7 +23,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `templates_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Overlay Variables](variables) are available with the default values below as well as the additional Variables below which can be used to customize the file. +All [Shared Overlay Variables](../overlay_variables.md) are available with the default values below as well as the additional Variables below which can be used to customize the file. | Variable | Default | |:--------------------|:-----------:| diff --git a/docs/defaults/overlays/flixpatrol.md b/docs/defaults/overlays/flixpatrol.md index 2a6134c9..4dbc128f 100644 --- a/docs/defaults/overlays/flixpatrol.md +++ b/docs/defaults/overlays/flixpatrol.md @@ -37,7 +37,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `templates_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Overlay Variables](variables) except `horizontal_offset`, `horizontal_align`, `vertical_offset`, and `vertical_align` are available with the default values below as well as the additional Variables below which can be used to customize the file. +All [Shared Overlay Variables](../overlay_variables.md) except `horizontal_offset`, `horizontal_align`, `vertical_offset`, and `vertical_align` are available with the default values below as well as the additional Variables below which can be used to customize the file. | Variable | Default | |:--------------------|:-----------------:| diff --git a/docs/defaults/overlays/language_count.md b/docs/defaults/overlays/language_count.md index d2b3bfe7..1414e4b9 100644 --- a/docs/defaults/overlays/language_count.md +++ b/docs/defaults/overlays/language_count.md @@ -41,7 +41,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `templates_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Overlay Variables](variables) are available with the default values below as well as the additional Variables below which can be used to customize the file. +All [Shared Overlay Variables](../overlay_variables.md) are available with the default values below as well as the additional Variables below which can be used to customize the file. | Variable | Default | |:--------------------|:-----------:| diff --git a/docs/defaults/overlays/languages.md b/docs/defaults/overlays/languages.md index cbd69177..a5586aa1 100644 --- a/docs/defaults/overlays/languages.md +++ b/docs/defaults/overlays/languages.md @@ -10,69 +10,69 @@ The `languages` Default Overlay File is used to create an overlay of a flag and ## Supported Audio/Subtitle Language Flags -| Audio/Subtitle Languages | Key | Weight | Default Flag | -|:-------------------------|:----:|:------:|:------------:| -| English | `en` | `610` | `us` | -| German | `de` | `600` | `de` | -| French | `fr` | `590` | `fr` | -| Japanese | `ja` | `580` | `jp` | -| Korean | `ko` | `570` | `kr` | -| Chinese | `zh` | `560` | `cn` | -| Danish | `da` | `550` | `dk` | -| Russian | `ru` | `540` | `ru` | -| Spanish | `es` | `530` | `es` | -| Italian | `it` | `520` | `it` | -| Portuguese | `pt` | `510` | `pt` | -| Hindi | `hi` | `500` | `in` | -| Telugu | `te` | `490` | `in` | -| Farsi | `fa` | `480` | `ir` | -| Thai | `th` | `470` | `th` | -| Dutch | `nl` | `460` | `nl` | -| Norwegian | `no` | `450` | `no` | -| Icelandic | `is` | `440` | `is` | -| Swedish | `sv` | `430` | `se` | -| Turkish | `tr` | `420` | `tr` | -| Polish | `pl` | `410` | `pl` | -| Czech | `cs` | `400` | `cz` | -| Ukrainian | `uk` | `390` | `ua` | -| Hungarian | `hu` | `380` | `hu` | -| Arabic | `ar` | `370` | `eg` | -| Bulgarian | `bg` | `360` | `bg` | -| Bengali | `bn` | `350` | `bd` | -| Bosnian | `bs` | `340` | `ba` | -| Catalan | `ca` | `330` | `es` | -| Welsh | `cy` | `320` | `uk` | -| Greek | `el` | `310` | `gr` | -| Estonian | `et` | `300` | `ee` | -| Basque | `eu` | `290` | `es` | -| Finnish | `fi` | `280` | `fi` | -| Filipino | `fl` | `270` | `ph` | -| Galician | `gl` | `260` | `es` | -| Hebrew | `he` | `250` | `il` | -| Croatian | `hr` | `240` | `hr` | -| Indonesian | `id` | `230` | `id` | -| Georgian | `ka` | `220` | `ge` | -| Kazakh | `kk` | `210` | `kz` | -| Kannada | `kn` | `200` | `in` | -| Latin | `la` | `190` | `it` | -| Lithuanian | `lt` | `180` | `lt` | -| Latvian | `lv` | `170` | `lv` | -| Macedonian | `mk` | `160` | `mk` | -| Malayalam | `ml` | `150` | `in` | -| Marathi | `mr` | `140` | `in` | -| Malay | `ms` | `130` | `my` | -| Norwegian NokmÃ¥l | `nb` | `120` | `no` | -| Norwegian Nynorsk | `nn` | `110` | `no` | -| Punjabi | `pa` | `100` | `in` | -| Romanian | `ro` | `90` | `ro` | -| Slovak | `sk` | `80` | `sk` | -| Slovenian | `sv` | `70` | `si` | -| Albanian | `sq` | `60` | `al` | -| Serbian | `sr` | `50` | `rs` | -| Swahili | `sw` | `40` | `tz` | -| Tamil | `ta` | `30` | `in` | -| Urdu | `ur` | `20` | `pk` | -| Vietnamese | `vi` | `10` | `vn` | +| Audio/Subtitle Languages | Key | Weight | Default Flag | Default Use | +|:-------------------------|:----:|:------:|:------------:|:-----------:| +| English | `en` | `610` | `us` | ✅ | +| German | `de` | `600` | `de` | ✅ | +| French | `fr` | `590` | `fr` | ✅ | +| Spanish | `es` | `580` | `es` | ✅ | +| Portuguese | `pt` | `570` | `pt` | ✅ | +| Japanese | `ja` | `560` | `jp` | ✅ | +| Korean | `ko` | `550` | `kr` | ❌ | +| Chinese | `zh` | `540` | `cn` | ❌ | +| Danish | `da` | `530` | `dk` | ❌ | +| Russian | `ru` | `520` | `ru` | ❌ | +| Italian | `it` | `510` | `it` | ❌ | +| Hindi | `hi` | `500` | `in` | ❌ | +| Telugu | `te` | `490` | `in` | ❌ | +| Farsi | `fa` | `480` | `ir` | ❌ | +| Thai | `th` | `470` | `th` | ❌ | +| Dutch | `nl` | `460` | `nl` | ❌ | +| Norwegian | `no` | `450` | `no` | ❌ | +| Icelandic | `is` | `440` | `is` | ❌ | +| Swedish | `sv` | `430` | `se` | ❌ | +| Turkish | `tr` | `420` | `tr` | ❌ | +| Polish | `pl` | `410` | `pl` | ❌ | +| Czech | `cs` | `400` | `cz` | ❌ | +| Ukrainian | `uk` | `390` | `ua` | ❌ | +| Hungarian | `hu` | `380` | `hu` | ❌ | +| Arabic | `ar` | `370` | `eg` | ❌ | +| Bulgarian | `bg` | `360` | `bg` | ❌ | +| Bengali | `bn` | `350` | `bd` | ❌ | +| Bosnian | `bs` | `340` | `ba` | ❌ | +| Catalan | `ca` | `330` | `es` | ❌ | +| Welsh | `cy` | `320` | `uk` | ❌ | +| Greek | `el` | `310` | `gr` | ❌ | +| Estonian | `et` | `300` | `ee` | ❌ | +| Basque | `eu` | `290` | `es` | ❌ | +| Finnish | `fi` | `280` | `fi` | ❌ | +| Filipino | `fl` | `270` | `ph` | ❌ | +| Galician | `gl` | `260` | `es` | ❌ | +| Hebrew | `he` | `250` | `il` | ❌ | +| Croatian | `hr` | `240` | `hr` | ❌ | +| Indonesian | `id` | `230` | `id` | ❌ | +| Georgian | `ka` | `220` | `ge` | ❌ | +| Kazakh | `kk` | `210` | `kz` | ❌ | +| Kannada | `kn` | `200` | `in` | ❌ | +| Latin | `la` | `190` | `it` | ❌ | +| Lithuanian | `lt` | `180` | `lt` | ❌ | +| Latvian | `lv` | `170` | `lv` | ❌ | +| Macedonian | `mk` | `160` | `mk` | ❌ | +| Malayalam | `ml` | `150` | `in` | ❌ | +| Marathi | `mr` | `140` | `in` | ❌ | +| Malay | `ms` | `130` | `my` | ❌ | +| Norwegian NokmÃ¥l | `nb` | `120` | `no` | ❌ | +| Norwegian Nynorsk | `nn` | `110` | `no` | ❌ | +| Punjabi | `pa` | `100` | `in` | ❌ | +| Romanian | `ro` | `90` | `ro` | ❌ | +| Slovak | `sk` | `80` | `sk` | ❌ | +| Slovenian | `sv` | `70` | `si` | ❌ | +| Albanian | `sq` | `60` | `al` | ❌ | +| Serbian | `sr` | `50` | `rs` | ❌ | +| Swahili | `sw` | `40` | `tz` | ❌ | +| Tamil | `ta` | `30` | `in` | ❌ | +| Urdu | `ur` | `20` | `pk` | ❌ | +| Vietnamese | `vi` | `10` | `vn` | ❌ | #### Square Style @@ -112,7 +112,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `templates_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Overlay Variables](variables) are available with the default values below as well as the additional Variables below which can be used to customize the file. +All [Shared Overlay Variables](../overlay_variables.md) are available with the default values below as well as the additional Variables below which can be used to customize the file. | Variable | Default | |:--------------------|:----------------------------:| diff --git a/docs/defaults/overlays/mediastinger.md b/docs/defaults/overlays/mediastinger.md index e6bd9f58..95d9235d 100644 --- a/docs/defaults/overlays/mediastinger.md +++ b/docs/defaults/overlays/mediastinger.md @@ -23,7 +23,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `templates_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Overlay Variables](variables) are available with the default values below as well as the additional Variables below which can be used to customize the file. +All [Shared Overlay Variables](../overlay_variables.md) are available with the default values below as well as the additional Variables below which can be used to customize the file. | Variable | Default | |:--------------------|:-----------:| diff --git a/docs/defaults/overlays/ratings.md b/docs/defaults/overlays/ratings.md index 4b37b0fc..5e1e84fd 100644 --- a/docs/defaults/overlays/ratings.md +++ b/docs/defaults/overlays/ratings.md @@ -60,9 +60,9 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `templates_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Overlay Variables](variables) are available with the default values below as well as the additional Variables below which can be used to customize the file. +All [Shared Overlay Variables](../overlay_variables.md) are available with the default values below as well as the additional Variables below which can be used to customize the file. -All [Shared Overlay Variables](variables) can be appended by `rating1_`, `rating2_`, or `rating3_` to change that attribute on each rating individually. +All [Shared Overlay Variables](../overlay_variables.md) can be appended by `rating1_`, `rating2_`, or `rating3_` to change that attribute on each rating individually. | Variable | Default | |:--------------------|:-----------:| diff --git a/docs/defaults/overlays/resolution.md b/docs/defaults/overlays/resolution.md index 6d23dcae..3ec819e5 100644 --- a/docs/defaults/overlays/resolution.md +++ b/docs/defaults/overlays/resolution.md @@ -66,7 +66,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `templates_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Overlay Variables](variables) are available with the default values below as well as the additional Variables below which can be used to customize the file. +All [Shared Overlay Variables](../overlay_variables.md) are available with the default values below as well as the additional Variables below which can be used to customize the file. | Variable | Default | |:--------------------|:-----------:| diff --git a/docs/defaults/overlays/ribbon.md b/docs/defaults/overlays/ribbon.md index 3e649f0c..f1e66204 100644 --- a/docs/defaults/overlays/ribbon.md +++ b/docs/defaults/overlays/ribbon.md @@ -36,7 +36,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `templates_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Overlay Variables](variables) are available with the default values below as well as the additional Variables below which can be used to customize the file. +All [Shared Overlay Variables](../overlay_variables.md) are available with the default values below as well as the additional Variables below which can be used to customize the file. | Variable | Default | |:--------------------|:--------:| diff --git a/docs/defaults/overlays/runtimes.md b/docs/defaults/overlays/runtimes.md index 16b277a5..5755ff87 100644 --- a/docs/defaults/overlays/runtimes.md +++ b/docs/defaults/overlays/runtimes.md @@ -26,7 +26,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `templates_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Overlay Variables](variables) are available with the default values below as well as the additional Variables below which can be used to customize the file. +All [Shared Overlay Variables](../overlay_variables.md) are available with the default values below as well as the additional Variables below which can be used to customize the file. | Variable | Default | |:--------------------|:-----------:| diff --git a/docs/defaults/overlays/status.md b/docs/defaults/overlays/status.md index 9ea663c1..3ff20f2d 100644 --- a/docs/defaults/overlays/status.md +++ b/docs/defaults/overlays/status.md @@ -35,7 +35,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `templates_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Overlay Variables](variables) are available with the default values below as well as the additional Variables below which can be used to customize the file. +All [Shared Overlay Variables](../overlay_variables.md) are available with the default values below as well as the additional Variables below which can be used to customize the file. | Variable | Default | |:--------------------|:-----------:| diff --git a/docs/defaults/overlays/streaming.md b/docs/defaults/overlays/streaming.md index ac45218b..1fd4fe9b 100644 --- a/docs/defaults/overlays/streaming.md +++ b/docs/defaults/overlays/streaming.md @@ -48,7 +48,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `templates_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Overlay Variables](variables) are available with the default values below as well as the additional Variables below which can be used to customize the file. +All [Shared Overlay Variables](../overlay_variables.md) are available with the default values below as well as the additional Variables below which can be used to customize the file. | Variable | Default | |:--------------------|:-----------:| diff --git a/docs/defaults/overlays/versions.md b/docs/defaults/overlays/versions.md index e1629a53..efd11c67 100644 --- a/docs/defaults/overlays/versions.md +++ b/docs/defaults/overlays/versions.md @@ -32,7 +32,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `templates_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Overlay Variables](variables) are available with the default values below as well as the additional Variables below which can be used to customize the file. +All [Shared Overlay Variables](../overlay_variables.md) are available with the default values below as well as the additional Variables below which can be used to customize the file. | Variable | Default | |:--------------------|:----------------:| diff --git a/docs/defaults/overlays/video_format.md b/docs/defaults/overlays/video_format.md index aa02bc8c..4eca712f 100644 --- a/docs/defaults/overlays/video_format.md +++ b/docs/defaults/overlays/video_format.md @@ -45,7 +45,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `templates_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Overlay Variables](variables) are available with the default values below as well as the additional Variables below which can be used to customize the file. +All [Shared Overlay Variables](../overlay_variables.md) are available with the default values below as well as the additional Variables below which can be used to customize the file. | Variable | Default | |:--------------------|:-----------:| diff --git a/docs/defaults/playlist.md b/docs/defaults/playlist.md index 5362b20a..9c0e0d1c 100644 --- a/docs/defaults/playlist.md +++ b/docs/defaults/playlist.md @@ -34,7 +34,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `templates_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -**[Shared Variables](variables) are NOT available to this default file.** +**[Shared Variables](collection_variables) are NOT available to this default file.** | Variable | Description & Values | |:-----------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| diff --git a/docs/defaults/separators.md b/docs/defaults/separators.md index c23ca92c..6c1d4935 100644 --- a/docs/defaults/separators.md +++ b/docs/defaults/separators.md @@ -40,7 +40,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `templates_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -**[Shared Variables](variables) are NOT available to separator collections in any default file.** +**[Shared Variables](collection_variables) are NOT available to separator collections in any default file.** | Variable | Description & Values | |:-------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| diff --git a/docs/defaults/show/content_rating_us.md b/docs/defaults/show/content_rating_us.md index b0cfcddc..1fccd806 100644 --- a/docs/defaults/show/content_rating_us.md +++ b/docs/defaults/show/content_rating_us.md @@ -33,7 +33,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `templates_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. This file contains a [Separator](../separators) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. diff --git a/docs/defaults/show/country.md b/docs/defaults/show/country.md index c3e0bec0..301794c7 100644 --- a/docs/defaults/show/country.md +++ b/docs/defaults/show/country.md @@ -37,7 +37,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `templates_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. This file contains a [Separator](../separators) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. diff --git a/docs/defaults/show/decade.md b/docs/defaults/show/decade.md index c8f5ac28..79979c6a 100644 --- a/docs/defaults/show/decade.md +++ b/docs/defaults/show/decade.md @@ -30,7 +30,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `templates_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. This file contains a [Separator](../separators) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. diff --git a/docs/defaults/show/franchise.md b/docs/defaults/show/franchise.md index b0d76bcd..50613da6 100644 --- a/docs/defaults/show/franchise.md +++ b/docs/defaults/show/franchise.md @@ -31,7 +31,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `templates_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -**[Shared Collection Variables](../variables) are NOT available to this default file.** +**[Shared Collection Variables](../collection_variables) are NOT available to this default file.** | Variable | Description & Values | |:-----------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| diff --git a/docs/defaults/show/network.md b/docs/defaults/show/network.md index d115bc97..effb8b07 100644 --- a/docs/defaults/show/network.md +++ b/docs/defaults/show/network.md @@ -30,7 +30,7 @@ Template Variables can be used to manipulate the file in various ways to slightl Note that the `templates_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified is its default value if it has one if not it's just ignored. -All [Shared Collection Variables](../variables) are available as well as the additional Variables below which can be used to customize the file. +All [Shared Collection Variables](../collection_variables) are available as well as the additional Variables below which can be used to customize the file. This file contains a [Separator](../separators) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. diff --git a/modules/overlays.py b/modules/overlays.py index 50610fcf..d7ec00b4 100644 --- a/modules/overlays.py +++ b/modules/overlays.py @@ -354,6 +354,10 @@ class Overlays: self.config.Cache.update_image_map(item.ratingKey, f"{self.library.image_table_name}_overlays", item.thumb, poster_compare, overlay='|'.join(compare_names)) except Failed as e: logger.error(f"{e}\nOverlays Attempted on {item_title}: {', '.join(over_names)}") + except Exception as e: + logger.stacktrace(e) + logger.error("") + logger.error(f"Overlays Attempted on {item_title}: {', '.join(over_names)}") logger.exorcise() overlay_run_time = str(datetime.now() - overlay_start).split('.')[0] logger.info("") From 1ec4a9bebb1dacd54d5a17c4b8ddfebf5d1a0eb3 Mon Sep 17 00:00:00 2001 From: meisnate12Click to expand sample config.yml TV Shows overlays section for the Episode Poster:
- -**Note: This uses fonts not packaged with PMM. See [bullmoose20's Configs](https://github.com/meisnate12/Plex-Meta-Manager-Configs/tree/master/bullmoose20)** - -```yaml -libraries: - TV Shows: - overlay_path: - - remove_overlays: false - - reapply_overlay: true - - pmm: resolution # 1 - template_variables: - overlay_level: episode - - pmm: audio_codec # 2 - template_variables: - overlay_level: episode - - pmm: ratings # 3, 4 - template_variables: - - rating1: critic # 3 as this is critic and mass_critic_rating_update: imdb - rating1_image: imdb # 3 as this is critic and mass_critic_rating_update: imdb - rating1_font: config/custom_fonts/Impact.ttf # 3 local font accessible to PMM - rating1_font_size: 70 # 3 adjusted font size to fit rating - - rating2: audience # 4 as this is audience and mass_audience_rating_update: tmdb - rating2_image: tmdb # 4 as this is audience and mass_audience_rating_update: tmdb - rating2_font: config/custom_fonts/Avenir_95_Black.ttf # 4 local font accessible to PMM - rating2_font_size: 70 # 4 adjusted font size to fit rating - - horizontal_position: right # the set of ratings is on the right of the poster - overlay_level: episode - - pmm: video_format # 5 - template_variables: - overlay_level: episode - - pmm: episode_info # 6 - template_variables: - overlay_level: episode - - pmm: runtimes # 7 - template_variables: - overlay_level: episode - - operations: - mass_episode_critic_rating_update: imdb # 3 This operation will update the episodes critic rating in plex with IMDb ratings information - mass_episode_audience_rating_update: tmdb # 4 This operation will update the episodes audience rating in plex with TMDb ratings information -``` -Date: Tue, 8 Nov 2022 02:02:11 -0500 Subject: [PATCH 4/4] [190] #1143 add current_year to plex_search, smart_filter, and filters year attributes --- CHANGELOG | 1 + VERSION | 2 +- docs/defaults/overlays.md | 4 +- docs/metadata/builders/plex.md | 126 ++++++++++++++++---------------- docs/metadata/builders/smart.md | 122 ++++++++++++++++--------------- docs/metadata/filters.md | 36 +++++---- modules/builder.py | 30 ++++++-- modules/meta.py | 10 ++- 8 files changed, 183 insertions(+), 148 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 518a4439..89bb01c9 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -29,6 +29,7 @@ Added `versions` [number filter](https://metamanager.wiki/en/latest/metadata/fil Added `imdb_watchlist` [builder](https://metamanager.wiki/en/latest/metadata/builders/imdb.html#imdb-watchlist) Added `item_genre` [item metadata detail](https://metamanager.wiki/en/latest/metadata/details/metadata.html#item-metadata-details) to update the genres of items in a collection Added `plex_watchlist` [Builder](https://metamanager.wiki/en/latest/metadata/builders/plex.html#plex-watchlist) +Adds `current_year` to `plex_search`, `smart_filter`, and `filter` year/decade attributes. Added `stroke_width` and `stroke_color` as options for text overlays Added multiple new [special text variables](https://metamanager.wiki/en/latest/metadata/overlay.html#special-text-variables) and modifiers. Added support for the [AniDB API](https://metamanager.wiki/en/latest/config/anidb.html) diff --git a/VERSION b/VERSION index 8ae3da3f..8769b9df 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.17.3-develop189 +1.17.3-develop190 diff --git a/docs/defaults/overlays.md b/docs/defaults/overlays.md index 42ccf176..53864247 100644 --- a/docs/defaults/overlays.md +++ b/docs/defaults/overlays.md @@ -6,7 +6,7 @@ This is the simplest way to create Overlays using Plex Meta Manager. ## Overlay Files -```{include} ../overlay_list.md +```{include} overlay_list.md ``` ## Configurations @@ -239,5 +239,5 @@ Each file has a page on the wiki showing the available `template_variables` for ### Examples -```{include} ../example.md +```{include} example.md ``` \ No newline at end of file diff --git a/docs/metadata/builders/plex.md b/docs/metadata/builders/plex.md index 20dd15d4..86e32335 100644 --- a/docs/metadata/builders/plex.md +++ b/docs/metadata/builders/plex.md @@ -210,45 +210,47 @@ Tag search can take multiple values as a **list or a comma-separated string**. ### Tag Attributes -| Tag Search | Description | Movie
Libraries | Show
Libraries | Music
Libraries | -|:---------------------|:----------------------------------------------------------------------------|:------------------:|:-----------------:|:------------------:| -| `actor` | Uses the actor tags to match | ✅ | ✅ | ❌ | -| `audio_language` | Uses the audio language tags to match | ✅ | ✅ | ❌ | -| `collection` | Uses the collection tags to match for top level collections | ✅ | ✅ | ❌ | -| `season_collection` | Uses the collection tags to match for season collections | ❌ | ✅ | ❌ | -| `episode_collection` | Uses the collection tags to match for episode collections | ❌ | ✅ | ❌ | -| `content_rating` | Uses the content rating tags to match | ✅ | ✅ | ❌ | -| `country` | Uses the country tags to match | ✅ | ❌ | ❌ | -| `decade` | Uses the year tag to match the decade | ✅ | ❌ | ❌ | -| `director` | Uses the director tags to match | ✅ | ❌ | ❌ | -| `genre` | Uses the genre tags to match | ✅ | ✅ | ❌ | -| `label` | Uses the label tags to match for top level collections | ✅ | ✅ | ❌ | -| `season_label` | Uses the label tags to match for season collections | ❌ | ✅ | ❌ | -| `episode_label` | Uses the label tags to match for episode collections | ❌ | ✅ | ❌ | -| `network` | Uses the network tags to match
**Only works with the New Plex TV Agent** | ❌ | ✅ | ❌ | -| `producer` | Uses the actor tags to match | ✅ | ❌ | ❌ | -| `resolution` | Uses the resolution tags to match | ✅ | ✅ | ❌ | -| `subtitle_language` | Uses the subtitle language tags to match | ✅ | ✅ | ❌ | -| `writer` | Uses the writer tags to match | ✅ | ❌ | ❌ | -| `year` | Uses the year tag to match | ✅ | ✅ | ❌ | -| `episode_year` | Uses the year tag to match | ❌ | ✅ | ❌ | -| `artist_genre` | Uses the Artist's Genre attribute to match | ❌ | ❌ | ✅ | -| `artist_collection` | Uses the Artist's Collection attribute to match | ❌ | ❌ | ✅ | -| `artist_country` | Uses the Artist's Country attribute to match | ❌ | ❌ | ✅ | -| `artist_mood` | Uses the Artist's Mood attribute to match | ❌ | ❌ | ✅ | -| `artist_style` | Uses the Artist's Style attribute to match | ❌ | ❌ | ✅ | -| `artist_label` | Uses the Artist's Label attribute to match | ❌ | ❌ | ✅ | -| `album_genre` | Uses the Album's Genre attribute to match | ❌ | ❌ | ✅ | -| `album_mood` | Uses the Album's Mood attribute to match | ❌ | ❌ | ✅ | -| `album_style` | Uses the Album's Style attribute to match | ❌ | ❌ | ✅ | -| `album_format` | Uses the Album's Format attribute to match | ❌ | ❌ | ✅ | -| `album_type` | Uses the Album's Type attribute to match | ❌ | ❌ | ✅ | -| `album_collection` | Uses the Album's Collection attribute to match | ❌ | ❌ | ✅ | -| `album_source` | Uses the Album's Source attribute to match | ❌ | ❌ | ✅ | -| `album_label` | Uses the Album's Label attribute to match | ❌ | ❌ | ✅ | -| `track_mood` | Uses the Track's Mood attribute to match | ❌ | ❌ | ✅ | -| `track_source` | Uses the Track's Style attribute to match | ❌ | ❌ | ✅ | -| `track_label` | Uses the Track's Label attribute to match | ❌ | ❌ | ✅ | +| Tag Search | Description | Movie
Libraries | Show
Libraries | Music
Libraries | +|:---------------------------|:----------------------------------------------------------------------------|:------------------:|:-----------------:|:------------------:| +| `actor` | Uses the actor tags to match | ✅ | ✅ | ❌ | +| `audio_language` | Uses the audio language tags to match | ✅ | ✅ | ❌ | +| `collection` | Uses the collection tags to match for top level collections | ✅ | ✅ | ❌ | +| `season_collection` | Uses the collection tags to match for season collections | ❌ | ✅ | ❌ | +| `episode_collection` | Uses the collection tags to match for episode collections | ❌ | ✅ | ❌ | +| `content_rating` | Uses the content rating tags to match | ✅ | ✅ | ❌ | +| `country` | Uses the country tags to match | ✅ | ❌ | ❌ | +| `decade`1 | Uses the year tag to match the decade | ✅ | ❌ | ❌ | +| `director` | Uses the director tags to match | ✅ | ❌ | ❌ | +| `genre` | Uses the genre tags to match | ✅ | ✅ | ❌ | +| `label` | Uses the label tags to match for top level collections | ✅ | ✅ | ❌ | +| `season_label` | Uses the label tags to match for season collections | ❌ | ✅ | ❌ | +| `episode_label` | Uses the label tags to match for episode collections | ❌ | ✅ | ❌ | +| `network` | Uses the network tags to match
**Only works with the New Plex TV Agent** | ❌ | ✅ | ❌ | +| `producer` | Uses the actor tags to match | ✅ | ❌ | ❌ | +| `resolution` | Uses the resolution tags to match | ✅ | ✅ | ❌ | +| `subtitle_language` | Uses the subtitle language tags to match | ✅ | ✅ | ❌ | +| `writer` | Uses the writer tags to match | ✅ | ❌ | ❌ | +| `year`1 | Uses the year tag to match | ✅ | ✅ | ❌ | +| `episode_year`1 | Uses the year tag to match | ❌ | ✅ | ❌ | +| `artist_genre` | Uses the Artist's Genre attribute to match | ❌ | ❌ | ✅ | +| `artist_collection` | Uses the Artist's Collection attribute to match | ❌ | ❌ | ✅ | +| `artist_country` | Uses the Artist's Country attribute to match | ❌ | ❌ | ✅ | +| `artist_mood` | Uses the Artist's Mood attribute to match | ❌ | ❌ | ✅ | +| `artist_style` | Uses the Artist's Style attribute to match | ❌ | ❌ | ✅ | +| `artist_label` | Uses the Artist's Label attribute to match | ❌ | ❌ | ✅ | +| `album_genre` | Uses the Album's Genre attribute to match | ❌ | ❌ | ✅ | +| `album_mood` | Uses the Album's Mood attribute to match | ❌ | ❌ | ✅ | +| `album_style` | Uses the Album's Style attribute to match | ❌ | ❌ | ✅ | +| `album_format` | Uses the Album's Format attribute to match | ❌ | ❌ | ✅ | +| `album_type` | Uses the Album's Type attribute to match | ❌ | ❌ | ✅ | +| `album_collection` | Uses the Album's Collection attribute to match | ❌ | ❌ | ✅ | +| `album_source` | Uses the Album's Source attribute to match | ❌ | ❌ | ✅ | +| `album_label` | Uses the Album's Label attribute to match | ❌ | ❌ | ✅ | +| `track_mood` | Uses the Track's Mood attribute to match | ❌ | ❌ | ✅ | +| `track_source` | Uses the Track's Style attribute to match | ❌ | ❌ | ✅ | +| `track_label` | Uses the Track's Label attribute to match | ❌ | ❌ | ✅ | + +1 You can use `current_year` to have PMM use the current years value. This can be combined with a `-#` at the end to subtract that number of years. i.e. `current-2` ## Date Searches @@ -305,28 +307,30 @@ No number search can take multiple values. ### Number Attributes -| Number Search | Description | Movie
Libraries | Show
Libraries | Music
Libraries | -|:--------------------------|:------------------------------------------------------------------------------------------------|:------------------:|:-----------------:|:------------------:| -| `duration` | Uses the duration attribute to match using minutes
**Minimum:** `0` | ✅ | ❌ | ❌ | -| `plays` | Uses the plays attribute to match
**Minimum:** `0` | ✅ | ✅ | ❌ | -| `episode_plays` | Uses the Episode's plays attribute to match
**Minimum:** `0` | ❌ | ✅ | ❌ | -| `critic_rating` | Uses the critic rating attribute to match
**Range:** `0.0` - `10.0` | ✅ | ✅ | ❌ | -| `audience_rating` | Uses the audience rating attribute to match
**Range:** `0.0` - `10.0` | ✅ | ✅ | ❌ | -| `user_rating` | Uses the user rating attribute to match
**Range:** `0.0` - `10.0` | ✅ | ✅ | ❌ | -| `episode_user_rating` | Uses the user rating attribute of the show's episodes to match
**Range:** `0.0` - `10.0` | ❌ | ✅ | ❌ | -| `episode_critic_rating` | Uses the critic rating attribute of the show's episodes to match
**Range:** `0.0` - `10.0` | ❌ | ✅ | ❌ | -| `episode_audience_rating` | Uses the audience rating attribute of the show's episodes to match
**Range:** `0.0` - `10.0` | ❌ | ✅ | ❌ | -| `year` | Uses the year attribute to match
**Minimum:** `0` | ✅ | ✅ | ❌ | -| `episode_year` | Uses the Episode's year attribute to match
**Minimum:** `0` | ❌ | ✅ | ❌ | -| `album_year` | Uses the Album's year attribute to match
**Minimum:** `0` | ❌ | ❌ | ✅ | -| `album_decade` | Uses the Album's decade attribute to match
**Minimum:** `0` | ❌ | ❌ | ✅ | -| `album_plays` | Uses the Album's plays attribute to match
**Minimum:** `0` | ❌ | ❌ | ✅ | -| `track_plays` | Uses the Track's plays attribute to match
**Minimum:** `0` | ❌ | ❌ | ✅ | -| `track_skips` | Uses the Track's skips attribute to match
**Minimum:** `0` | ❌ | ❌ | ✅ | -| `artist_user_rating` | Uses the Artist's user rating attribute to match
**Range:** `0.0` - `10.0` | ❌ | ❌ | ✅ | -| `album_user_rating` | Uses the Album's user rating attribute to match
**Range:** `0.0` - `10.0` | ❌ | ❌ | ✅ | -| `album_critic_rating` | Uses the Album's critic rating attribute to match
**Range:** `0.0` - `10.0` | ❌ | ❌ | ✅ | -| `track_user_rating` | Uses the Track's user rating attribute to match
**Range:** `0.0` - `10.0` | ❌ | ❌ | ✅ | +| Number Search | Description | Movie
Libraries | Show
Libraries | Music
Libraries | +|:---------------------------|:------------------------------------------------------------------------------------------------|:------------------:|:-----------------:|:------------------:| +| `duration` | Uses the duration attribute to match using minutes
**Minimum:** `0` | ✅ | ❌ | ❌ | +| `plays` | Uses the plays attribute to match
**Minimum:** `0` | ✅ | ✅ | ❌ | +| `episode_plays` | Uses the Episode's plays attribute to match
**Minimum:** `0` | ❌ | ✅ | ❌ | +| `critic_rating` | Uses the critic rating attribute to match
**Range:** `0.0` - `10.0` | ✅ | ✅ | ❌ | +| `audience_rating` | Uses the audience rating attribute to match
**Range:** `0.0` - `10.0` | ✅ | ✅ | ❌ | +| `user_rating` | Uses the user rating attribute to match
**Range:** `0.0` - `10.0` | ✅ | ✅ | ❌ | +| `episode_user_rating` | Uses the user rating attribute of the show's episodes to match
**Range:** `0.0` - `10.0` | ❌ | ✅ | ❌ | +| `episode_critic_rating` | Uses the critic rating attribute of the show's episodes to match
**Range:** `0.0` - `10.0` | ❌ | ✅ | ❌ | +| `episode_audience_rating` | Uses the audience rating attribute of the show's episodes to match
**Range:** `0.0` - `10.0` | ❌ | ✅ | ❌ | +| `year`1 | Uses the year attribute to match
**Minimum:** `0` | ✅ | ✅ | ❌ | +| `episode_year`1 | Uses the Episode's year attribute to match
**Minimum:** `0` | ❌ | ✅ | ❌ | +| `album_year`1 | Uses the Album's year attribute to match
**Minimum:** `0` | ❌ | ❌ | ✅ | +| `album_decade`1 | Uses the Album's decade attribute to match
**Minimum:** `0` | ❌ | ❌ | ✅ | +| `album_plays` | Uses the Album's plays attribute to match
**Minimum:** `0` | ❌ | ❌ | ✅ | +| `track_plays` | Uses the Track's plays attribute to match
**Minimum:** `0` | ❌ | ❌ | ✅ | +| `track_skips` | Uses the Track's skips attribute to match
**Minimum:** `0` | ❌ | ❌ | ✅ | +| `artist_user_rating` | Uses the Artist's user rating attribute to match
**Range:** `0.0` - `10.0` | ❌ | ❌ | ✅ | +| `album_user_rating` | Uses the Album's user rating attribute to match
**Range:** `0.0` - `10.0` | ❌ | ❌ | ✅ | +| `album_critic_rating` | Uses the Album's critic rating attribute to match
**Range:** `0.0` - `10.0` | ❌ | ❌ | ✅ | +| `track_user_rating` | Uses the Track's user rating attribute to match
**Range:** `0.0` - `10.0` | ❌ | ❌ | ✅ | + +1 You can use `current_year` to have PMM use the current years value. This can be combined with a `-#` at the end to subtract that number of years. i.e. `current-2` ## Boolean Searches diff --git a/docs/metadata/builders/smart.md b/docs/metadata/builders/smart.md index db720a40..279c763b 100644 --- a/docs/metadata/builders/smart.md +++ b/docs/metadata/builders/smart.md @@ -144,45 +144,47 @@ Tag filter can take multiple values as a **list or a comma-separated string**. ### Tag Attributes -| Tag Search | Description | Movie
Libraries | Show
Libraries | Music
Libraries | -|:---------------------|:----------------------------------------------------------------------------|:------------------:|:-----------------:|:------------------:| -| `actor` | Uses the actor tags to match | ✅ | ✅ | ❌ | -| `audio_language` | Uses the audio language tags to match | ✅ | ✅ | ❌ | -| `collection` | Uses the collection tags to match for top level collections | ✅ | ✅ | ❌ | -| `season_collection` | Uses the collection tags to match for season collections | ❌ | ✅ | ❌ | -| `episode_collection` | Uses the collection tags to match for episode collections | ❌ | ✅ | ❌ | -| `content_rating` | Uses the content rating tags to match | ✅ | ✅ | ❌ | -| `country` | Uses the country tags to match | ✅ | ❌ | ❌ | -| `decade` | Uses the year tag to match the decade | ✅ | ❌ | ❌ | -| `director` | Uses the director tags to match | ✅ | ❌ | ❌ | -| `genre` | Uses the genre tags to match | ✅ | ✅ | ❌ | -| `label` | Uses the label tags to match for top level collections | ✅ | ✅ | ❌ | -| `season_label` | Uses the label tags to match for season collections | ❌ | ✅ | ❌ | -| `episode_label` | Uses the label tags to match for episode collections | ❌ | ✅ | ❌ | -| `network` | Uses the network tags to match
**Only works with the New Plex TV Agent** | ❌ | ✅ | ❌ | -| `producer` | Uses the actor tags to match | ✅ | ❌ | ❌ | -| `resolution` | Uses the resolution tags to match | ✅ | ✅ | ❌ | -| `subtitle_language` | Uses the subtitle language tags to match | ✅ | ✅ | ❌ | -| `writer` | Uses the writer tags to match | ✅ | ❌ | ❌ | -| `year` | Uses the year tag to match | ✅ | ✅ | ❌ | -| `episode_year` | Uses the year tag to match | ❌ | ✅ | ❌ | -| `artist_genre` | Uses the Artist's Genre attribute to match | ❌ | ❌ | ✅ | -| `artist_collection` | Uses the Artist's Collection attribute to match | ❌ | ❌ | ✅ | -| `artist_country` | Uses the Artist's Country attribute to match | ❌ | ❌ | ✅ | -| `artist_mood` | Uses the Artist's Mood attribute to match | ❌ | ❌ | ✅ | -| `artist_style` | Uses the Artist's Style attribute to match | ❌ | ❌ | ✅ | -| `artist_label` | Uses the Artist's Label attribute to match | ❌ | ❌ | ✅ | -| `album_genre` | Uses the Album's Genre attribute to match | ❌ | ❌ | ✅ | -| `album_mood` | Uses the Album's Mood attribute to match | ❌ | ❌ | ✅ | -| `album_style` | Uses the Album's Style attribute to match | ❌ | ❌ | ✅ | -| `album_format` | Uses the Album's Format attribute to match | ❌ | ❌ | ✅ | -| `album_type` | Uses the Album's Type attribute to match | ❌ | ❌ | ✅ | -| `album_collection` | Uses the Album's Collection attribute to match | ❌ | ❌ | ✅ | -| `album_source` | Uses the Album's Source attribute to match | ❌ | ❌ | ✅ | -| `album_label` | Uses the Album's Label attribute to match | ❌ | ❌ | ✅ | -| `track_mood` | Uses the Track's Mood attribute to match | ❌ | ❌ | ✅ | -| `track_source` | Uses the Track's Style attribute to match | ❌ | ❌ | ✅ | -| `track_label` | Uses the Track's Label attribute to match | ❌ | ❌ | ✅ | +| Tag Search | Description | Movie
Libraries | Show
Libraries | Music
Libraries | +|:---------------------------|:----------------------------------------------------------------------------|:------------------:|:-----------------:|:------------------:| +| `actor` | Uses the actor tags to match | ✅ | ✅ | ❌ | +| `audio_language` | Uses the audio language tags to match | ✅ | ✅ | ❌ | +| `collection` | Uses the collection tags to match for top level collections | ✅ | ✅ | ❌ | +| `season_collection` | Uses the collection tags to match for season collections | ❌ | ✅ | ❌ | +| `episode_collection` | Uses the collection tags to match for episode collections | ❌ | ✅ | ❌ | +| `content_rating` | Uses the content rating tags to match | ✅ | ✅ | ❌ | +| `country` | Uses the country tags to match | ✅ | ❌ | ❌ | +| `decade`1 | Uses the year tag to match the decade | ✅ | ❌ | ❌ | +| `director` | Uses the director tags to match | ✅ | ❌ | ❌ | +| `genre` | Uses the genre tags to match | ✅ | ✅ | ❌ | +| `label` | Uses the label tags to match for top level collections | ✅ | ✅ | ❌ | +| `season_label` | Uses the label tags to match for season collections | ❌ | ✅ | ❌ | +| `episode_label` | Uses the label tags to match for episode collections | ❌ | ✅ | ❌ | +| `network` | Uses the network tags to match
**Only works with the New Plex TV Agent** | ❌ | ✅ | ❌ | +| `producer` | Uses the actor tags to match | ✅ | ❌ | ❌ | +| `resolution` | Uses the resolution tags to match | ✅ | ✅ | ❌ | +| `subtitle_language` | Uses the subtitle language tags to match | ✅ | ✅ | ❌ | +| `writer` | Uses the writer tags to match | ✅ | ❌ | ❌ | +| `year`1 | Uses the year tag to match | ✅ | ✅ | ❌ | +| `episode_year`1 | Uses the year tag to match | ❌ | ✅ | ❌ | +| `artist_genre` | Uses the Artist's Genre attribute to match | ❌ | ❌ | ✅ | +| `artist_collection` | Uses the Artist's Collection attribute to match | ❌ | ❌ | ✅ | +| `artist_country` | Uses the Artist's Country attribute to match | ❌ | ❌ | ✅ | +| `artist_mood` | Uses the Artist's Mood attribute to match | ❌ | ❌ | ✅ | +| `artist_style` | Uses the Artist's Style attribute to match | ❌ | ❌ | ✅ | +| `artist_label` | Uses the Artist's Label attribute to match | ❌ | ❌ | ✅ | +| `album_genre` | Uses the Album's Genre attribute to match | ❌ | ❌ | ✅ | +| `album_mood` | Uses the Album's Mood attribute to match | ❌ | ❌ | ✅ | +| `album_style` | Uses the Album's Style attribute to match | ❌ | ❌ | ✅ | +| `album_format` | Uses the Album's Format attribute to match | ❌ | ❌ | ✅ | +| `album_type` | Uses the Album's Type attribute to match | ❌ | ❌ | ✅ | +| `album_collection` | Uses the Album's Collection attribute to match | ❌ | ❌ | ✅ | +| `album_source` | Uses the Album's Source attribute to match | ❌ | ❌ | ✅ | +| `album_label` | Uses the Album's Label attribute to match | ❌ | ❌ | ✅ | +| `track_mood` | Uses the Track's Mood attribute to match | ❌ | ❌ | ✅ | +| `track_source` | Uses the Track's Style attribute to match | ❌ | ❌ | ✅ | +| `track_label` | Uses the Track's Label attribute to match | ❌ | ❌ | ✅ | + +1 You can use `current_year` to have PMM use the current years value. This can be combined with a `-#` at the end to subtract that number of years. i.e. `current-2` ## Date Filters @@ -239,26 +241,28 @@ No number filter can take multiple values. ### Number Attributes -| Number Search | Description | Movie
Libraries | Show
Libraries | Music
Libraries | -|:----------------------|:--------------------------------------------------------------------------------------------|:------------------:|:-----------------:|:------------------:| -| `duration` | Uses the duration attribute to match using minutes
**Minimum:** `0` | ✅ | ❌ | ❌ | -| `plays` | Uses the plays attribute to match
**Minimum:** `0` | ✅ | ✅ | ❌ | -| `episode_plays` | Uses the Episode's plays attribute to match
**Minimum:** `0` | ❌ | ✅ | ❌ | -| `critic_rating` | Uses the critic rating attribute to match
**Range:** `0.0` - `10.0` | ✅ | ✅ | ❌ | -| `audience_rating` | Uses the audience rating attribute to match
**Range:** `0.0` - `10.0` | ✅ | ✅ | ❌ | -| `user_rating` | Uses the user rating attribute to match
**Range:** `0.0` - `10.0` | ✅ | ✅ | ❌ | -| `episode_user_rating` | Uses the user rating attribute of the show's episodes to match
**Range:** `0.0` - `10.0` | ❌ | ✅ | ❌ | -| `year` | Uses the year attribute to match
**Minimum:** `0` | ✅ | ✅ | ❌ | -| `episode_year` | Uses the Episode's year attribute to match
**Minimum:** `0` | ❌ | ✅ | ❌ | -| `album_year` | Uses the Album's year attribute to match
**Minimum:** `0` | ❌ | ❌ | ✅ | -| `album_decade` | Uses the Album's decade attribute to match
**Minimum:** `0` | ❌ | ❌ | ✅ | -| `album_plays` | Uses the Album's plays attribute to match
**Minimum:** `0` | ❌ | ❌ | ✅ | -| `track_plays` | Uses the Track's plays attribute to match
**Minimum:** `0` | ❌ | ❌ | ✅ | -| `track_skips` | Uses the Track's skips attribute to match
**Minimum:** `0` | ❌ | ❌ | ✅ | -| `artist_user_rating` | Uses the Artist's user rating attribute to match
**Range:** `0.0` - `10.0` | ❌ | ❌ | ✅ | -| `album_user_rating` | Uses the Album's user rating attribute to match
**Range:** `0.0` - `10.0` | ❌ | ❌ | ✅ | -| `album_critic_rating` | Uses the Album's critic rating attribute to match
**Range:** `0.0` - `10.0` | ❌ | ❌ | ✅ | -| `track_user_rating` | Uses the Track's user rating attribute to match
**Range:** `0.0` - `10.0` | ❌ | ❌ | ✅ | +| Number Search | Description | Movie
Libraries | Show
Libraries | Music
Libraries | +|:---------------------------|:--------------------------------------------------------------------------------------------|:------------------:|:-----------------:|:------------------:| +| `duration` | Uses the duration attribute to match using minutes
**Minimum:** `0` | ✅ | ❌ | ❌ | +| `plays` | Uses the plays attribute to match
**Minimum:** `0` | ✅ | ✅ | ❌ | +| `episode_plays` | Uses the Episode's plays attribute to match
**Minimum:** `0` | ❌ | ✅ | ❌ | +| `critic_rating` | Uses the critic rating attribute to match
**Range:** `0.0` - `10.0` | ✅ | ✅ | ❌ | +| `audience_rating` | Uses the audience rating attribute to match
**Range:** `0.0` - `10.0` | ✅ | ✅ | ❌ | +| `user_rating` | Uses the user rating attribute to match
**Range:** `0.0` - `10.0` | ✅ | ✅ | ❌ | +| `episode_user_rating` | Uses the user rating attribute of the show's episodes to match
**Range:** `0.0` - `10.0` | ❌ | ✅ | ❌ | +| `year`1 | Uses the year attribute to match
**Minimum:** `0` | ✅ | ✅ | ❌ | +| `episode_year`1 | Uses the Episode's year attribute to match
**Minimum:** `0` | ❌ | ✅ | ❌ | +| `album_year`1 | Uses the Album's year attribute to match
**Minimum:** `0` | ❌ | ❌ | ✅ | +| `album_decade`1 | Uses the Album's decade attribute to match
**Minimum:** `0` | ❌ | ❌ | ✅ | +| `album_plays` | Uses the Album's plays attribute to match
**Minimum:** `0` | ❌ | ❌ | ✅ | +| `track_plays` | Uses the Track's plays attribute to match
**Minimum:** `0` | ❌ | ❌ | ✅ | +| `track_skips` | Uses the Track's skips attribute to match
**Minimum:** `0` | ❌ | ❌ | ✅ | +| `artist_user_rating` | Uses the Artist's user rating attribute to match
**Range:** `0.0` - `10.0` | ❌ | ❌ | ✅ | +| `album_user_rating` | Uses the Album's user rating attribute to match
**Range:** `0.0` - `10.0` | ❌ | ❌ | ✅ | +| `album_critic_rating` | Uses the Album's critic rating attribute to match
**Range:** `0.0` - `10.0` | ❌ | ❌ | ✅ | +| `track_user_rating` | Uses the Track's user rating attribute to match
**Range:** `0.0` - `10.0` | ❌ | ❌ | ✅ | + +1 You can use `current_year` to have PMM use the current years value. This can be combined with a `-#` at the end to subtract that number of years. i.e. `current-2` ## Boolean Filters diff --git a/docs/metadata/filters.md b/docs/metadata/filters.md index 68403c76..7e51040b 100644 --- a/docs/metadata/filters.md +++ b/docs/metadata/filters.md @@ -105,7 +105,7 @@ Tag filters can take multiple values as a **list or a comma-separated string**. | `genre` | Uses the genre tags to match | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ | | `label` | Uses the label tags to match | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | `producer` | Uses the actor tags to match | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | -| `year` | Uses the year tag to match | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | +| `year`3 | Uses the year tag to match | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | | `writer` | Uses the writer tags to match | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | | `resolution` | Uses the resolution tag to match | ✅ | ✅1 | ✅1 | ✅ | ❌ | ❌ | ❌ | | `audio_language` | Uses the audio language tags to match | ✅ | ✅1 | ✅1 | ✅ | ❌ | ❌ | ❌ | @@ -118,6 +118,8 @@ Tag filters can take multiple values as a **list or a comma-separated string**. 2 Also filters out missing movies/shows from being added to Radarr/Sonarr. These Values also cannot use the `count` modifiers. +3 You can use `current_year` to have PMM use the current years value. This can be combined with a `-#` at the end to subtract that number of years. i.e. `current-2` + ## Boolean Filters Boolean Filters have no modifiers. @@ -180,26 +182,28 @@ Number filters can **NOT** take multiple values. ### Attribute -| Number Filters | Description | Movies | Shows | Seasons | Episodes | Artists | Albums | Track | -|:------------------------------|:---------------------------------------------------------------------|:-------:|:-------------------:|:-------------------:|:--------:|:-------------------:|:-------------------:|:--------:| -| `year` | Uses the year attribute to match
minimum: `1` | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | -| `tmdb_year`2 | Uses the year on TMDb to match
minimum: `1` | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | -| `critic_rating` | Uses the critic rating attribute to match
`0.0` - `10.0` | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ❌ | -| `audience_rating` | Uses the audience rating attribute to match
`0.0` - `10.0` | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | -| `user_rating` | Uses the user rating attribute to match
`0.0` - `10.0` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| `tmdb_vote_count`2 | Uses the tmdb vote count to match
minimum: `1` | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | -| `plays` | Uses the plays attribute to match
minimum: `1` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| `duration` | Uses the duration attribute to match using minutes
minimum: `0.0` | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ | -| `channels` | Uses the audio channels attribute to match
minimum: `0` | ✅ | ✅1 | ✅1 | ✅ | ❌ | ❌ | ❌ | -| `height` | Uses the height attribute to match
minimum: `0` | ✅ | ✅1 | ✅1 | ✅ | ❌ | ❌ | ❌ | -| `width` | Uses the width attribute to match
minimum: `0` | ✅ | ✅1 | ✅1 | ✅ | ❌ | ❌ | ❌ | -| `aspect` | Uses the aspect attribute to match
minimum: `0.0` | ✅ | ✅1 | ✅1 | ✅ | ❌ | ❌ | ❌ | -| `versions` | Uses the number of versions found to match
minimum: `0` | ✅ | ✅1 | ✅1 | ✅ | ✅1 | ✅1 | ✅ | +| Number Filters | Description | Movies | Shows | Seasons | Episodes | Artists | Albums | Track | +|:------------------------------------|:---------------------------------------------------------------------|:-------:|:-------------------:|:-------------------:|:--------:|:-------------------:|:-------------------:|:--------:| +| `year`3 | Uses the year attribute to match
minimum: `1` | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | +| `tmdb_year`23 | Uses the year on TMDb to match
minimum: `1` | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| `critic_rating` | Uses the critic rating attribute to match
`0.0` - `10.0` | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ❌ | +| `audience_rating` | Uses the audience rating attribute to match
`0.0` - `10.0` | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | +| `user_rating` | Uses the user rating attribute to match
`0.0` - `10.0` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| `tmdb_vote_count`2 | Uses the tmdb vote count to match
minimum: `1` | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | +| `plays` | Uses the plays attribute to match
minimum: `1` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| `duration` | Uses the duration attribute to match using minutes
minimum: `0.0` | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ | +| `channels` | Uses the audio channels attribute to match
minimum: `0` | ✅ | ✅1 | ✅1 | ✅ | ❌ | ❌ | ❌ | +| `height` | Uses the height attribute to match
minimum: `0` | ✅ | ✅1 | ✅1 | ✅ | ❌ | ❌ | ❌ | +| `width` | Uses the width attribute to match
minimum: `0` | ✅ | ✅1 | ✅1 | ✅ | ❌ | ❌ | ❌ | +| `aspect` | Uses the aspect attribute to match
minimum: `0.0` | ✅ | ✅1 | ✅1 | ✅ | ❌ | ❌ | ❌ | +| `versions` | Uses the number of versions found to match
minimum: `0` | ✅ | ✅1 | ✅1 | ✅ | ✅1 | ✅1 | ✅ | 1 Filters using the special `episodes` [filter](#special-filters) with the [default percent](details/definition). 2 Also filters out missing movies/shows from being added to Radarr/Sonarr. +3 You can use `current_year` to have PMM use the current years value. This can be combined with a `-#` at the end to subtract that number of years. i.e. `current-2` + ## Special Filters Special Filters each have their own set of rules for how they're used. diff --git a/modules/builder.py b/modules/builder.py index e7014bde..8d5502c9 100644 --- a/modules/builder.py +++ b/modules/builder.py @@ -2061,12 +2061,28 @@ class CollectionBuilder: return datetime.strftime(datetime.now(), "%Y-%m-%d") else: return util.validate_date(data, final, return_as="%Y-%m-%d") - elif attribute in year_attributes and modifier in ["", ".not"]: - final_years = [] - values = util.get_list(data) - for value in values: - final_years.append(util.parse(self.Type, final, value, datatype="int")) - return smart_pair(final_years) + elif attribute in year_attributes and modifier in ["", ".not", ".gt", ".gte", ".lt", ".lte"]: + if modifier in ["", ".not"]: + final_years = [] + values = util.get_list(data) + for value in values: + if str(value).startswith("current_year"): + year_values = str(value).split("-") + try: + final_years.append(datetime.now().year - (0 if len(year_values) == 1 else int(year_values[1].strip()))) + except ValueError: + raise Failed(f"{self.Type} Error: {final} attribute modifier invalid '{year_values[1]}'") + else: + final_years.append(util.parse(self.Type, final, value, datatype="int")) + return smart_pair(final_years) + else: + if str(data).startswith("current_year"): + year_values = str(data).split("-") + try: + return datetime.now().year - (0 if len(year_values) == 1 else int(year_values[1].strip())) + except ValueError: + raise Failed(f"{self.Type} Error: {final} attribute modifier invalid '{year_values[1]}'") + return util.parse(self.Type, final, data, datatype="int", minimum=0) elif attribute in date_attributes and modifier in ["", ".not"]: search_mod = "d" if plex_search and data and str(data)[-1] in ["s", "m", "h", "d", "w", "o", "y"]: @@ -2074,7 +2090,7 @@ class CollectionBuilder: data = str(data)[:-1] search_data = util.parse(self.Type, final, data, datatype="int", minimum=0) return f"{search_data}{search_mod}" if plex_search else search_data - elif (attribute in number_attributes + year_attributes and modifier in ["", ".not", ".gt", ".gte", ".lt", ".lte"]) \ + elif (attribute in number_attributes and modifier in ["", ".not", ".gt", ".gte", ".lt", ".lte"]) \ or (attribute in tag_attributes and modifier in [".count_gt", ".count_gte", ".count_lt", ".count_lte"]): return util.parse(self.Type, final, data, datatype="int", minimum=0) elif attribute in float_attributes and modifier in ["", ".not", ".gt", ".gte", ".lt", ".lte"]: diff --git a/modules/meta.py b/modules/meta.py index 3948352f..806c491e 100644 --- a/modules/meta.py +++ b/modules/meta.py @@ -755,12 +755,18 @@ class MetadataFile(DataFile): number_methods = {nm.lower(): nm for nm in dynamic_data} if "starting" in number_methods and str(dynamic_data[number_methods["starting"]]).startswith("current_year"): year_values = str(dynamic_data[number_methods["starting"]]).split("-") - starting = datetime.now().year - (0 if len(year_values) == 1 else int(year_values[1].strip())) + try: + starting = datetime.now().year - (0 if len(year_values) == 1 else int(year_values[1].strip())) + except ValueError: + raise Failed(f"Config Error: starting attribute modifier invalid '{year_values[1]}'") else: starting = util.parse("Config", "starting", dynamic_data, parent=f"{map_name} data", methods=number_methods, datatype="int", default=0, minimum=0) if "ending" in number_methods and str(dynamic_data[number_methods["ending"]]).startswith("current_year"): year_values = str(dynamic_data[number_methods["ending"]]).split("-") - ending = datetime.now().year - (0 if len(year_values) == 1 else int(year_values[1].strip())) + try: + ending = datetime.now().year - (0 if len(year_values) == 1 else int(year_values[1].strip())) + except ValueError: + raise Failed(f"Config Error: ending attribute modifier invalid '{year_values[1]}'") else: ending = util.parse("Config", "ending", dynamic_data, parent=f"{map_name} data", methods=number_methods, datatype="int", default=0, minimum=1) increment = util.parse("Config", "increment", dynamic_data, parent=f"{map_name} data", methods=number_methods, datatype="int", default=1, minimum=1) if "increment" in number_methods else 1