[171] add show country to plex_search and smart_filter

pull/1369/head
meisnate12 2 years ago
parent 704ccfd31a
commit ba2b34987c

@ -54,6 +54,11 @@ Fixes a Bug where the `dimensional_asset_rename` Setting would rename title card
Fixes [`trakt_userlist` Builder](https://metamanager.wiki/en/latest/metadata/builders/trakt.html#trakt-userlist) where option `recommended` should have been `recommendations`.
Fixes overlay remove/reset operations.
Closes #1325 Fixes a Bug where `tmdb_vote_count` would be rejected as a filter.
Closes #1189 Fixes a Bug in the Resolution Default where the position would be completely off when changed
Closes #1189 Fixes a Bug in the Resolution Default where the position would be completely off when changed.
Closes #1336 Fixed "Mass Originally Available Update" attribute name within the wiki.
Closes #1327 Fixed an issue where searching for item assets could take longer than expected.
Closes #1346 Fixed an issue where using `PMM_TIME` with multiple times could ignore all but the last specified time.
Various other Minor Fixes

@ -1 +1 @@
1.18.3-develop170
1.18.3-develop171

@ -22,8 +22,8 @@ templates:
imdb_list_<<key>>: <<imdb_list>>
trakt_list_<<key>>: <<trakt_list>>
mdblist_list_<<key>>: <<mdblist_list>>
summary_<<key>>: <<seasonal_summary>>
name_<<key>>: <<seasonal_name>>
summary_<<key>>: <<summary_format>>
name_<<key>>: <<name_format>>
emoji: ""
emoji_<<key>>: <<emoji>>
optional:

Before

Width:  |  Height:  |  Size: 7.2 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

Before

Width:  |  Height:  |  Size: 7.8 KiB

After

Width:  |  Height:  |  Size: 7.8 KiB

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

Before

Width:  |  Height:  |  Size: 7.6 KiB

After

Width:  |  Height:  |  Size: 7.6 KiB

Before

Width:  |  Height:  |  Size: 7.4 KiB

After

Width:  |  Height:  |  Size: 7.4 KiB

Before

Width:  |  Height:  |  Size: 7.1 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

@ -15,27 +15,27 @@ external_templates:
conditions:
- type: edition_dovetail
value:
- 4K-HDR10PLUS
- 4K-Plus
- 4K-DV
- 4K-HDR
- 4K
- 1080P-HDR10PLUS
- 1080P-Plus
- 1080P-DV
- 1080P-HDR
- 1080P
- 720P-HDR10PLUS
- 720P-Plus
- 720P-DV
- 720P-HDR
- 720P
- 576P-HDR10PLUS
- 576P-Plus
- 576P-DV
- 576P-HDR
- 576P
- 480P-HDR10PLUS
- 480P-Plus
- 480P-DV
- 480P-HDR
- 480P
- HDR10PLUS
- Plus
- DV
- HDR
- type: resolution_dovetail
@ -219,7 +219,7 @@ templates:
overlays:
4K-HDR10PLUS-Dovetail:
4K-Plus-Dovetail:
variables: {key: 4k, alt: plus, weight: 160, type: resolution_dovetail, allowed_libraries: movie}
template: [name: resolution, name: standard]
4K-DV-Dovetail:
@ -231,7 +231,7 @@ overlays:
4K-Dovetail:
variables: {key: 4k, alt: "", weight: 130, type: resolution_dovetail, allowed_libraries: movie}
template: [name: resolution, name: standard]
1080P-HDR10PLUS-Dovetail:
1080P-Plus-Dovetail:
variables: {key: 1080p, alt: plus, weight: 125, type: resolution_dovetail, allowed_libraries: movie}
template: [name: resolution, name: standard]
1080P-DV-Dovetail:
@ -243,7 +243,7 @@ overlays:
1080P-Dovetail:
variables: {key: 1080p, alt: "", weight: 100, type: resolution_dovetail, allowed_libraries: movie}
template: [name: resolution, name: standard]
720P-HDR10PLUS-Dovetail:
720P-Plus-Dovetail:
variables: {key: 720p, alt: plus, weight: 95, type: resolution_dovetail, allowed_libraries: movie}
template: [name: resolution, name: standard]
720P-DV-Dovetail:
@ -255,7 +255,7 @@ overlays:
720P-Dovetail:
variables: {key: 720p, alt: "", weight: 70, type: resolution_dovetail, allowed_libraries: movie}
template: [name: resolution, name: standard]
576P-HDR10PLUS-Dovetail:
576P-Plus-Dovetail:
variables: {key: 576p, alt: plus, weight: 65, type: resolution_dovetail, allowed_libraries: movie}
template: [name: resolution, name: standard]
576P-DV-Dovetail:
@ -267,7 +267,7 @@ overlays:
576P-Dovetail:
variables: {key: 576p, alt: "", weight: 40, type: resolution_dovetail, allowed_libraries: movie}
template: [name: resolution, name: standard]
480P-HDR10PLUS-Dovetail:
480P-Plus-Dovetail:
variables: {key: 480p, alt: plus, weight: 35, type: resolution_dovetail, allowed_libraries: movie}
template: [name: resolution, name: standard]
480P-DV-Dovetail:
@ -279,7 +279,7 @@ overlays:
480P-Dovetail:
variables: {key: 480p, alt: "", weight: 10, type: resolution_dovetail, allowed_libraries: movie}
template: [name: resolution, name: standard]
HDR10PLUS-Dovetail:
Plus-Dovetail:
variables: {key: "", alt: plus, weight: 7, type: resolution_dovetail, allowed_libraries: movie}
template: [name: resolution, name: standard]
DV-Dovetail:
@ -359,7 +359,7 @@ overlays:
variables: {key: ulysses, weight: 6, search: Ulysses, type: edition_dovetail, allowed_libraries: movie}
template: [name: edition, name: standard]
4K-HDR10PLUS:
4K-Plus:
variables: {key: 4k, alt: plus, weight: 160, type: resolution}
template: [name: resolution, name: standard]
4K-DV:
@ -371,7 +371,7 @@ overlays:
4K:
variables: {key: 4k, alt: "", weight: 130, type: resolution}
template: [name: resolution, name: standard]
1080P-HDR10PLUS:
1080P-Plus:
variables: {key: 1080p, alt: plus, weight: 125, type: resolution}
template: [name: resolution, name: standard]
1080P-DV:
@ -383,7 +383,7 @@ overlays:
1080P:
variables: {key: 1080p, alt: "", weight: 100, type: resolution}
template: [name: resolution, name: standard]
720P-HDR10PLUS:
720P-Plus:
variables: {key: 720p, alt: plus, weight: 95, type: resolution}
template: [name: resolution, name: standard]
720P-DV:
@ -395,7 +395,7 @@ overlays:
720P:
variables: {key: 720p, alt: "", weight: 70, type: resolution}
template: [name: resolution, name: standard]
576P-HDR10PLUS:
576P-Plus:
variables: {key: 576p, alt: plus, weight: 65, type: resolution}
template: [name: resolution, name: standard]
576P-DV:
@ -407,7 +407,7 @@ overlays:
576P:
variables: {key: 576p, alt: "", weight: 40, type: resolution}
template: [name: resolution, name: standard]
480P-HDR10PLUS:
480P-Plus:
variables: {key: 480p, alt: plus, weight: 35, type: resolution}
template: [name: resolution, name: standard]
480P-DV:
@ -419,7 +419,7 @@ overlays:
480P:
variables: {key: 480p, alt: "", weight: 10, type: resolution}
template: [name: resolution, name: standard]
HDR10PLUS:
Plus:
variables: {key: "", alt: plus, weight: 7, type: resolution}
template: [name: resolution, name: standard]
DV:

@ -218,7 +218,7 @@ Tag search can take multiple values as a **list or a comma-separated string**.
| `season_collection` | Uses the collection tags to match for season collections | &#10060; | &#9989; | &#10060; |
| `episode_collection` | Uses the collection tags to match for episode collections | &#10060; | &#9989; | &#10060; |
| `content_rating` | Uses the content rating tags to match | &#9989; | &#9989; | &#10060; |
| `country` | Uses the country tags to match | &#9989; | &#10060; | &#10060; |
| `country` | Uses the country tags to match | &#9989; | &#9989; | &#10060; |
| `decade`<sup>1</sup> | Uses the year tag to match the decade | &#9989; | &#10060; | &#10060; |
| `director` | Uses the director tags to match | &#9989; | &#10060; | &#10060; |
| `genre` | Uses the genre tags to match | &#9989; | &#9989; | &#10060; |

@ -152,7 +152,7 @@ Tag filter can take multiple values as a **list or a comma-separated string**.
| `season_collection` | Uses the collection tags to match for season collections | &#10060; | &#9989; | &#10060; |
| `episode_collection` | Uses the collection tags to match for episode collections | &#10060; | &#9989; | &#10060; |
| `content_rating` | Uses the content rating tags to match | &#9989; | &#9989; | &#10060; |
| `country` | Uses the country tags to match | &#9989; | &#10060; | &#10060; |
| `country` | Uses the country tags to match | &#9989; | &#9989; | &#10060; |
| `decade`<sup>1</sup> | Uses the year tag to match the decade | &#9989; | &#10060; | &#10060; |
| `director` | Uses the director tags to match | &#9989; | &#10060; | &#10060; |
| `genre` | Uses the genre tags to match | &#9989; | &#9989; | &#10060; |

@ -34,6 +34,18 @@ You can use the `plex_all: true` builder to filter from your entire library.
**Filters can be very slow. Try to build or narrow your items using [Plex Search](builders/plex.md#plex-search) or another [Builder](builders) if possible.**
## Table Annotations
<sup>**1**</sup> Filters using the special `episodes`/`tracks` [filter](#special-filters) with the [default percent](details/definition).
<sup>**2**</sup> Also filters out missing movies/shows from being added to Radarr/Sonarr. These Values also cannot use the `count` modifiers.
<sup>**3**</sup> 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`
<sup>**4**</sup> The actual numbers are pulled from the [PMM-Mediastingers](https://github.com/meisnate12/PMM-Mediastingers) Repo.
<sup>**5**</sup> Also is a Tag Filter and can use all of those modifiers.
## String Filters
String filters can be used with either no modifier or with `.not`, `.is`, `.isnot`, `.begins`, `.ends`, or `.regex`.
@ -54,25 +66,21 @@ String filters can take multiple values **only as a list**.
### Attribute
| String Filter | Description | Movies | Shows | Seasons | Episodes | Artists | Albums | Track |
|:-------------------------|:-----------------------------------------|:--------:|:-------------------:|:-------------------:|:--------:|:-------------------:|:-------------------:|:--------:|
| `title` | Uses the title attribute to match | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; |
| `tmdb_title`<sup>2</sup> | Uses the title from TMDb to match | &#9989; | &#9989; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; |
| `summary` | Uses the summary attribute to match | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; |
| `studio` | Uses the studio attribute to match | &#9989; | &#9989; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; |
| `edition` | Uses the edition attribute to match | &#9989; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; |
| `record_label` | Uses the record label attribute to match | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; | &#9989; | &#10060; |
| `folder` | Uses the item's folder to match | &#10060; | &#9989; | &#10060; | &#10060; | &#9989; | &#10060; | &#10060; |
| `filepath` | Uses the item's filepath to match | &#9989; | &#9989;<sup>1</sup> | &#9989;<sup>1</sup> | &#9989; | &#9989;<sup>1</sup> | &#9989;<sup>1</sup> | &#9989; |
| `audio_track_title` | Uses the audio track titles to match | &#9989; | &#9989;<sup>1</sup> | &#9989;<sup>1</sup> | &#9989; | &#9989;<sup>1</sup> | &#9989;<sup>1</sup> | &#9989; |
| `video_codec` | Uses the video codec tags to match | &#9989; | &#9989;<sup>1</sup> | &#9989;<sup>1</sup> | &#9989; | &#10060; | &#10060; | &#10060; |
| `video_profile` | Uses the video profile tags to match | &#9989; | &#9989;<sup>1</sup> | &#9989;<sup>1</sup> | &#9989; | &#10060; | &#10060; | &#10060; |
| `audio_codec` | Uses the audio codec tags to match | &#9989; | &#9989;<sup>1</sup> | &#9989;<sup>1</sup> | &#9989; | &#10060; | &#10060; | &#10060; |
| `audio_profile` | Uses the audio profile tags to match | &#9989; | &#9989;<sup>1</sup> | &#9989;<sup>1</sup> | &#9989; | &#10060; | &#10060; | &#10060; |
<sup>1</sup> Filters using the special `episodes`/`tracks` [filter](#special-filters) with the [default percent](details/definition).
<sup>2</sup> Also filters out missing movies/shows from being added to Radarr/Sonarr. These Values also cannot use the `count` modifiers.
| String Filter | Description | Movies | Shows | Seasons | Episodes | Artists | Albums | Track |
|:---------------------------------------------------|:-----------------------------------------|:--------:|:---------------------------------------------:|:---------------------------------------------:|:---------:|:---------------------------------------------:|:---------------------------------------------:|:--------:|
| `title` | Uses the title attribute to match | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; |
| `tmdb_title`<sup>**[2](#table-annotations)**</sup> | Uses the title from TMDb to match | &#9989; | &#9989; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; |
| `summary` | Uses the summary attribute to match | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; |
| `studio` | Uses the studio attribute to match | &#9989; | &#9989; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; |
| `edition` | Uses the edition attribute to match | &#9989; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; |
| `record_label` | Uses the record label attribute to match | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; | &#9989; | &#10060; |
| `folder` | Uses the item's folder to match | &#10060; | &#9989; | &#10060; | &#10060; | &#9989; | &#10060; | &#10060; |
| `filepath` | Uses the item's filepath to match | &#9989; | &#9989;<sup>**[1](#table-annotations)**</sup> | &#9989;<sup>**[1](#table-annotations)**</sup> | &#9989; | &#9989;<sup>**[1](#table-annotations)**</sup> | &#9989;<sup>**[1](#table-annotations)**</sup> | &#9989; |
| `audio_track_title` | Uses the audio track titles to match | &#9989; | &#9989;<sup>**[1](#table-annotations)**</sup> | &#9989;<sup>**[1](#table-annotations)**</sup> | &#9989; | &#9989;<sup>**[1](#table-annotations)**</sup> | &#9989;<sup>**[1](#table-annotations)**</sup> | &#9989; |
| `video_codec` | Uses the video codec tags to match | &#9989; | &#9989;<sup>**[1](#table-annotations)**</sup> | &#9989;<sup>**[1](#table-annotations)**</sup> | &#9989; | &#10060; | &#10060; | &#10060; |
| `video_profile` | Uses the video profile tags to match | &#9989; | &#9989;<sup>**[1](#table-annotations)**</sup> | &#9989;<sup>**[1](#table-annotations)**</sup> | &#9989; | &#10060; | &#10060; | &#10060; |
| `audio_codec` | Uses the audio codec tags to match | &#9989; | &#9989;<sup>**[1](#table-annotations)**</sup> | &#9989;<sup>**[1](#table-annotations)**</sup> | &#9989; | &#10060; | &#10060; | &#10060; |
| `audio_profile` | Uses the audio profile tags to match | &#9989; | &#9989;<sup>**[1](#table-annotations)**</sup> | &#9989;<sup>**[1](#table-annotations)**</sup> | &#9989; | &#10060; | &#10060; | &#10060; |
## Tag Filters
@ -94,32 +102,26 @@ Tag filters can take multiple values as a **list or a comma-separated string**.
### Attribute
| Tag Filters | Description | Movies | Shows | Seasons | Episodes | Artists | Albums | Track |
|:-----------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------|:--------:|:-------------------:|:-------------------:|:--------:|:--------:|:--------:|:--------:|
| `actor` | Uses the actor tags to match | &#9989; | &#9989; | &#10060; | &#9989; | &#10060; | &#10060; | &#10060; |
| `collection` | Uses the collection tags to match | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; |
| `content_rating` | Uses the content rating tags to match | &#9989; | &#9989; | &#10060; | &#9989; | &#10060; | &#10060; | &#10060; |
| `network` | Uses the network tags to match | &#10060; | &#9989; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; |
| `country` | Uses the country tags to match | &#9989; | &#10060; | &#10060; | &#10060; | &#9989; | &#10060; | &#10060; |
| `director` | Uses the director tags to match | &#9989; | &#10060; | &#10060; | &#9989; | &#10060; | &#10060; | &#10060; |
| `genre` | Uses the genre tags to match | &#9989; | &#9989; | &#10060; | &#10060; | &#9989; | &#9989; | &#10060; |
| `label` | Uses the label tags to match | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; |
| `producer` | Uses the actor tags to match | &#9989; | &#10060; | &#10060; | &#9989; | &#10060; | &#10060; | &#10060; |
| `year`<sup>3</sup> | Uses the year tag to match | &#9989; | &#9989; | &#9989; | &#9989; | &#10060; | &#9989; | &#9989; |
| `writer` | Uses the writer tags to match | &#9989; | &#10060; | &#10060; | &#9989; | &#10060; | &#10060; | &#10060; |
| `resolution` | Uses the resolution tag to match | &#9989; | &#9989;<sup>1</sup> | &#9989;<sup>1</sup> | &#9989; | &#10060; | &#10060; | &#10060; |
| `audio_language` | Uses the audio language tags to match | &#9989; | &#9989;<sup>1</sup> | &#9989;<sup>1</sup> | &#9989; | &#10060; | &#10060; | &#10060; |
| `subtitle_language` | Uses the subtitle language tags to match | &#9989; | &#9989;<sup>1</sup> | &#9989;<sup>1</sup> | &#9989; | &#10060; | &#10060; | &#10060; |
| `tmdb_genre`<sup>2</sup> | Uses the genres from TMDb to match | &#9989; | &#9989; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; |
| `tmdb_keyword`<sup>2</sup> | Uses the keywords from TMDb to match | &#9989; | &#9989; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; |
| `origin_country`<sup>2</sup> | Uses TMDb origin country [ISO 3166-1 alpha-2 codes](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) to match<br>Example: `origin_country: us` | &#10060; | &#9989; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; |
| `imdb_keyword`<sup>2</sup> | Uses the keywords from IMDb to match See [Special](#special-filters) for more attributes | &#9989; | &#9989; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; |
<sup>1</sup> Filters using the special `episodes` [filter](#special-filters) with the [default percent](details/definition).
<sup>2</sup> Also filters out missing movies/shows from being added to Radarr/Sonarr. These Values also cannot use the `count` modifiers.
<sup>3</sup> 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`
| Tag Filters | Description | Movies | Shows | Seasons | Episodes | Artists | Albums | Track |
|:-------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------|:--------:|:---------------------------------------------:|:---------------------------------------------:|:--------:|:--------:|:--------:|:--------:|
| `actor` | Uses the actor tags to match | &#9989; | &#9989; | &#10060; | &#9989; | &#10060; | &#10060; | &#10060; |
| `collection` | Uses the collection tags to match | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; |
| `content_rating` | Uses the content rating tags to match | &#9989; | &#9989; | &#10060; | &#9989; | &#10060; | &#10060; | &#10060; |
| `network` | Uses the network tags to match | &#10060; | &#9989; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; |
| `country` | Uses the country tags to match | &#9989; | &#10060; | &#10060; | &#10060; | &#9989; | &#10060; | &#10060; |
| `director` | Uses the director tags to match | &#9989; | &#10060; | &#10060; | &#9989; | &#10060; | &#10060; | &#10060; |
| `genre` | Uses the genre tags to match | &#9989; | &#9989; | &#10060; | &#10060; | &#9989; | &#9989; | &#10060; |
| `label` | Uses the label tags to match | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; |
| `producer` | Uses the actor tags to match | &#9989; | &#10060; | &#10060; | &#9989; | &#10060; | &#10060; | &#10060; |
| `year`<sup>**[3](#table-annotations)**</sup> | Uses the year tag to match | &#9989; | &#9989; | &#9989; | &#9989; | &#10060; | &#9989; | &#9989; |
| `writer` | Uses the writer tags to match | &#9989; | &#10060; | &#10060; | &#9989; | &#10060; | &#10060; | &#10060; |
| `resolution` | Uses the resolution tag to match | &#9989; | &#9989;<sup>**[1](#table-annotations)**</sup> | &#9989;<sup>**[1](#table-annotations)**</sup> | &#9989; | &#10060; | &#10060; | &#10060; |
| `audio_language` | Uses the audio language tags to match | &#9989; | &#9989;<sup>**[1](#table-annotations)**</sup> | &#9989;<sup>**[1](#table-annotations)**</sup> | &#9989; | &#10060; | &#10060; | &#10060; |
| `subtitle_language` | Uses the subtitle language tags to match | &#9989; | &#9989;<sup>**[1](#table-annotations)**</sup> | &#9989;<sup>**[1](#table-annotations)**</sup> | &#9989; | &#10060; | &#10060; | &#10060; |
| `tmdb_genre`<sup>**[2](#table-annotations)**</sup> | Uses the genres from TMDb to match | &#9989; | &#9989; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; |
| `tmdb_keyword`<sup>**[2](#table-annotations)**</sup> | Uses the keywords from TMDb to match | &#9989; | &#9989; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; |
| `origin_country`<sup>**[2](#table-annotations)**</sup> | Uses TMDb origin country [ISO 3166-1 alpha-2 codes](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) to match<br>Example: `origin_country: us` | &#10060; | &#9989; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; |
| `imdb_keyword`<sup>**[2](#table-annotations)**</sup> | Uses the keywords from IMDb to match See [Special](#special-filters) for more attributes | &#9989; | &#9989; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; |
## Boolean Filters
@ -127,15 +129,13 @@ Boolean Filters have no modifiers.
### Attribute
| Boolean Filters | Description | Movies | Shows | Seasons | Episodes | Artists | Albums | Track |
|:-------------------|:---------------------------------------------------------------------------------------------------------|:-------:|:-------------------:|:-------------------:|:--------:|:--------:|:--------:|:--------:|
| `has_collection` | Matches every item that has or does not have a collection | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; |
| `has_edition` | Matches every item that has or does not have an edition | &#9989; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; |
| `has_stinger` | Matches every item that has a [media stinger](http://www.mediastinger.com/) (After/During Credits Scene) | &#9989; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; |
| `has_dolby_vision` | Matches every item that has or does not have a dolby vision | &#9989; | &#9989;<sup>1</sup> | &#9989;<sup>1</sup> | &#9989; | &#10060; | &#10060; | &#10060; |
| `has_overlay` | Matches every item that has or does not have an overlay | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; | &#10060; |
<sup>1</sup> Filters using the special `episodes` [filter](#special-filters) with the [default percent](details/definition).
| Boolean Filters | Description | Movies | Shows | Seasons | Episodes | Artists | Albums | Track |
|:-------------------|:---------------------------------------------------------------------------------------------------------|:-------:|:---------------------------------------------:|:---------------------------------------------:|:--------:|:--------:|:--------:|:--------:|
| `has_collection` | Matches every item that has or does not have a collection | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; |
| `has_edition` | Matches every item that has or does not have an edition | &#9989; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; |
| `has_stinger` | Matches every item that has a [media stinger](http://www.mediastinger.com/) (After/During Credits Scene) | &#9989; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; |
| `has_dolby_vision` | Matches every item that has or does not have a dolby vision | &#9989; | &#9989;<sup>**[1](#table-annotations)**</sup> | &#9989;<sup>**[1](#table-annotations)**</sup> | &#9989; | &#10060; | &#10060; | &#10060; |
| `has_overlay` | Matches every item that has or does not have an overlay | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; | &#10060; |
## Date Filters
@ -155,16 +155,14 @@ Date filters can **NOT** take multiple values.
### Attribute
| Date Filters | Description | Movies | Shows | Seasons | Episodes | Artists | Albums | Track |
|:------------------------------------------|:-------------------------------------------------------------------------------|:--------:|:-------:|:--------:|:--------:|:--------:|:--------:|:--------:|
| `release` | Uses the release date attribute (originally available) to match | &#9989; | &#9989; | &#10060; | &#9989; | &#10060; | &#9989; | &#10060; |
| `added` | Uses the date added attribute to match | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; |
| `last_played` | Uses the date last played attribute to match | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; |
| `first_episode_aired`<sup>1</sup> | Uses the first episode aired date to match | &#10060; | &#9989; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; |
| `last_episode_aired`<sup>1</sup> | Uses the last episode aired date to match | &#10060; | &#9989; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; |
| `last_episode_aired_or_never`<sup>1</sup> | Similar to `last_episode_aired` but also includes those that haven't aired yet | &#10060; | &#9989; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; |
<sup>1</sup> Also filters out missing movies/shows from being added to Radarr/Sonarr.
| Date Filters | Description | Movies | Shows | Seasons | Episodes | Artists | Albums | Track |
|:----------------------------------------------------------------|:-------------------------------------------------------------------------------|:--------:|:-------:|:--------:|:--------:|:--------:|:--------:|:--------:|
| `release` | Uses the release date attribute (originally available) to match | &#9989; | &#9989; | &#10060; | &#9989; | &#10060; | &#9989; | &#10060; |
| `added` | Uses the date added attribute to match | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; |
| `last_played` | Uses the date last played attribute to match | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; |
| `first_episode_aired`<sup>**[2](#table-annotations)**</sup> | Uses the first episode aired date to match | &#10060; | &#9989; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; |
| `last_episode_aired`<sup>**[2](#table-annotations)</sup> | Uses the last episode aired date to match | &#10060; | &#9989; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; |
| `last_episode_aired_or_never`<sup>[2](#table-annotations)</sup> | Similar to `last_episode_aired` but also includes those that haven't aired yet | &#10060; | &#9989; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; |
## Number Filters
@ -185,30 +183,22 @@ Number filters can **NOT** take multiple values.
### Attribute
| Number Filters | Description | Movies | Shows | Seasons | Episodes | Artists | Albums | Track |
|:------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-------:|:-------------------:|:-------------------:|:--------:|:-------------------:|:-------------------:|:--------:|
| `year`<sup>3</sup> | Uses the year attribute to match<br>minimum: `1` | &#9989; | &#9989; | &#9989; | &#9989; | &#10060; | &#9989; | &#9989; |
| `tmdb_year`<sup>2</sup><sup>3</sup> | Uses the year on TMDb to match<br>minimum: `1` | &#9989; | &#9989; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; |
| `critic_rating` | Uses the critic rating attribute to match<br>`0.0` - `10.0` | &#9989; | &#9989; | &#10060; | &#9989; | &#10060; | &#9989; | &#10060; |
| `audience_rating` | Uses the audience rating attribute to match<br> `0.0` - `10.0` | &#9989; | &#9989; | &#10060; | &#9989; | &#10060; | &#10060; | &#10060; |
| `user_rating` | Uses the user rating attribute to match<br>`0.0` - `10.0` | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; |
| `tmdb_vote_count`<sup>2</sup> | Uses the tmdb vote count to match<br>minimum: `1` | &#9989; | &#9989; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; |
| `plays` | Uses the plays attribute to match<br>minimum: `1` | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; |
| `duration` | Uses the duration attribute to match using minutes<br>minimum: `0.0` | &#9989; | &#9989; | &#10060; | &#9989; | &#10060; | &#10060; | &#9989; |
| `channels` | Uses the audio channels attribute to match<br>minimum: `0` | &#9989; | &#9989;<sup>1</sup> | &#9989;<sup>1</sup> | &#9989; | &#10060; | &#10060; | &#10060; |
| `height` | Uses the height attribute to match<br>minimum: `0` | &#9989; | &#9989;<sup>1</sup> | &#9989;<sup>1</sup> | &#9989; | &#10060; | &#10060; | &#10060; |
| `width` | Uses the width attribute to match<br>minimum: `0` | &#9989; | &#9989;<sup>1</sup> | &#9989;<sup>1</sup> | &#9989; | &#10060; | &#10060; | &#10060; |
| `aspect` | Uses the aspect attribute to match<br>minimum: `0.0` | &#9989; | &#9989;<sup>1</sup> | &#9989;<sup>1</sup> | &#9989; | &#10060; | &#10060; | &#10060; |
| `versions` | Uses the number of versions found to match<br>minimum: `0` | &#9989; | &#9989;<sup>1</sup> | &#9989;<sup>1</sup> | &#9989; | &#9989;<sup>1</sup> | &#9989;<sup>1</sup> | &#9989; |
| `stinger_rating`<sup>4</sup> | Uses the [media stinger](http://www.mediastinger.com/) rating to match. The media stinger rating is if the after/during credits scene is worth staying for.<br>minimum: `0` | &#9989; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; |
<sup>1</sup> Filters using the special `episodes` [filter](#special-filters) with the [default percent](details/definition).
<sup>2</sup> Also filters out missing movies/shows from being added to Radarr/Sonarr.
<sup>3</sup> 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`
<sup>4</sup> The actual numbers are pulled from the [PMM-Mediastingers](https://github.com/meisnate12/PMM-Mediastingers) Repo.
| Number Filters | Description | Movies | Shows | Seasons | Episodes | Artists | Albums | Track |
|:----------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-------:|:---------------------------------------------:|:---------------------------------------------:|:--------:|:---------------------------------------------:|:---------------------------------------------:|:--------:|
| `year`<sup>**[3](#table-annotations)**</sup> | Uses the year attribute to match<br>minimum: `1` | &#9989; | &#9989; | &#9989; | &#9989; | &#10060; | &#9989; | &#9989; |
| `tmdb_year`<sup>**[2](#table-annotations)**</sup><sup>**[3](#table-annotations)**</sup> | Uses the year on TMDb to match<br>minimum: `1` | &#9989; | &#9989; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; |
| `critic_rating` | Uses the critic rating attribute to match<br>`0.0` - `10.0` | &#9989; | &#9989; | &#10060; | &#9989; | &#10060; | &#9989; | &#10060; |
| `audience_rating` | Uses the audience rating attribute to match<br> `0.0` - `10.0` | &#9989; | &#9989; | &#10060; | &#9989; | &#10060; | &#10060; | &#10060; |
| `user_rating` | Uses the user rating attribute to match<br>`0.0` - `10.0` | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; |
| `tmdb_vote_count`<sup>**[2](#table-annotations)**</sup> | Uses the tmdb vote count to match<br>minimum: `1` | &#9989; | &#9989; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; |
| `plays` | Uses the plays attribute to match<br>minimum: `1` | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; | &#9989; |
| `duration` | Uses the duration attribute to match using minutes<br>minimum: `0.0` | &#9989; | &#9989; | &#10060; | &#9989; | &#10060; | &#10060; | &#9989; |
| `channels` | Uses the audio channels attribute to match<br>minimum: `0` | &#9989; | &#9989;<sup>**[1](#table-annotations)**</sup> | &#9989;<sup>**[1](#table-annotations)**</sup> | &#9989; | &#10060; | &#10060; | &#10060; |
| `height` | Uses the height attribute to match<br>minimum: `0` | &#9989; | &#9989;<sup>**[1](#table-annotations)**</sup> | &#9989;<sup>**[1](#table-annotations)**</sup> | &#9989; | &#10060; | &#10060; | &#10060; |
| `width` | Uses the width attribute to match<br>minimum: `0` | &#9989; | &#9989;<sup>**[1](#table-annotations)**</sup> | &#9989;<sup>**[1](#table-annotations)**</sup> | &#9989; | &#10060; | &#10060; | &#10060; |
| `aspect` | Uses the aspect attribute to match<br>minimum: `0.0` | &#9989; | &#9989;<sup>**[1](#table-annotations)**</sup> | &#9989;<sup>**[1](#table-annotations)**</sup> | &#9989; | &#10060; | &#10060; | &#10060; |
| `versions` | Uses the number of versions found to match<br>minimum: `0` | &#9989; | &#9989;<sup>**[1](#table-annotations)**</sup> | &#9989;<sup>**[1](#table-annotations)**</sup> | &#9989; | &#9989;<sup>**[1](#table-annotations)**</sup> | &#9989;<sup>**[1](#table-annotations)**</sup> | &#9989; |
| `stinger_rating`<sup>**[4](#table-annotations)**</sup> | Uses the [media stinger](http://www.mediastinger.com/) rating to match. The media stinger rating is if the after/during credits scene is worth staying for.<br>minimum: `0` | &#9989; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; |
## Special Filters
@ -216,21 +206,17 @@ Special Filters each have their own set of rules for how they're used.
### Attribute
| Special Filters | Description | Movies | Shows | Seasons | Episodes | Artists | Albums | Track |
|:-----------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:--------:|:--------:|:--------:|:--------:|:--------:|:--------:|:--------:|
| `history` | Uses the release date attribute (originally available) to match dates throughout history<br>`day`: Match the Day and Month to Today's Date<br>`month`: Match the Month to Today's Date<br>`1-30`: Match the Day and Month to Today's Date or `1-30` days before Today's Date | &#9989; | &#9989; | &#10060; | &#9989; | &#10060; | &#9989; | &#10060; |
| `episodes` | Uses the item's episodes attributes to match <br> Use the `percentage` attribute given a number between 0-100 to determine the percentage of an items episodes that must match the sub-filter. | &#10060; | &#9989; | &#9989; | &#10060; | &#10060; | &#10060; | &#10060; |
| `seasons` | Uses the item's seasons attributes to match <br> Use the `percentage` attribute given a number between 0-100 to determine the percentage of an items seasons that must match the sub-filter. | &#10060; | &#9989; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; |
| `tracks` | Uses the item's tracks attributes to match <br> Use the `percentage` attribute given a number between 0-100 to determine the percentage of an items tracks that must match the sub-filter. | &#10060; | &#10060; | &#10060; | &#10060; | &#9989; | &#9989; | &#10060; |
| `albums` | Uses the item's albums attributes to match <br> Use the `percentage` attribute given a number between 0-100 to determine the percentage of an items albums that must match the sub-filter. | &#10060; | &#10060; | &#10060; | &#10060; | &#9989; | &#10060; | &#10060; |
| `original_language`<sup>1</sup><br>`original_language.not`<sup>1</sup> | Uses TMDb original language [ISO 639-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) to match<br>Example: `original_language: en, ko` | &#9989; | &#9989; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; |
| `tmdb_status`<sup>1</sup><br>`tmdb_status.not`<sup>1</sup> | Uses TMDb Status to match<br>**Values:** `returning`, `planned`, `production`, `ended`, `canceled`, `pilot` | &#10060; | &#9989; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; |
| `tmdb_type`<sup>1</sup><br>`tmdb_type.not`<sup>1</sup> | Uses TMDb Type to match<br>**Values:** `documentary`, `news`, `production`, `miniseries`, `reality`, `scripted`, `talk_show`, `video` | &#10060; | &#9989; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; |
| `imdb_keyword`<sup>1</sup><sup>2</sup> | Uses the keywords from IMDb to match<br>`keywords`: list of keywords to match<br>`minimum_votes`: minimum number of votes keywords must have<br>`minimum_relevant`: minimum number of relevant votes keywords must have<br>`minimum_percentage`: minimum percentage of relevant votes keywords must have | &#9989; | &#9989; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; |
<sup>1</sup> Also filters out missing movies/shows from being added to Radarr/Sonarr.
<sup>2</sup> Also is a Tag Filter and can use all of those modifiers.
| Special Filters | Description | Movies | Shows | Seasons | Episodes | Artists | Albums | Track |
|:---------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:--------:|:--------:|:--------:|:--------:|:--------:|:--------:|:--------:|
| `history` | Uses the release date attribute (originally available) to match dates throughout history<br>`day`: Match the Day and Month to Today's Date<br>`month`: Match the Month to Today's Date<br>`1-30`: Match the Day and Month to Today's Date or `1-30` days before Today's Date | &#9989; | &#9989; | &#10060; | &#9989; | &#10060; | &#9989; | &#10060; |
| `episodes` | Uses the item's episodes attributes to match <br> Use the `percentage` attribute given a number between 0-100 to determine the percentage of an items episodes that must match the sub-filter. | &#10060; | &#9989; | &#9989; | &#10060; | &#10060; | &#10060; | &#10060; |
| `seasons` | Uses the item's seasons attributes to match <br> Use the `percentage` attribute given a number between 0-100 to determine the percentage of an items seasons that must match the sub-filter. | &#10060; | &#9989; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; |
| `tracks` | Uses the item's tracks attributes to match <br> Use the `percentage` attribute given a number between 0-100 to determine the percentage of an items tracks that must match the sub-filter. | &#10060; | &#10060; | &#10060; | &#10060; | &#9989; | &#9989; | &#10060; |
| `albums` | Uses the item's albums attributes to match <br> Use the `percentage` attribute given a number between 0-100 to determine the percentage of an items albums that must match the sub-filter. | &#10060; | &#10060; | &#10060; | &#10060; | &#9989; | &#10060; | &#10060; |
| `original_language`<sup>**[2](#table-annotations)**</sup><br>`original_language.not`<sup>**[2](#table-annotations)**</sup> | Uses TMDb original language [ISO 639-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) to match<br>Example: `original_language: en, ko` | &#9989; | &#9989; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; |
| `tmdb_status`<sup>**[2](#table-annotations)**</sup><br>`tmdb_status.not`<sup>**[2](#table-annotations)**</sup> | Uses TMDb Status to match<br>**Values:** `returning`, `planned`, `production`, `ended`, `canceled`, `pilot` | &#10060; | &#9989; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; |
| `tmdb_type`<sup>**[2](#table-annotations)**</sup><br>`tmdb_type.not`<sup>**[2](#table-annotations)**</sup> | Uses TMDb Type to match<br>**Values:** `documentary`, `news`, `production`, `miniseries`, `reality`, `scripted`, `talk_show`, `video` | &#10060; | &#9989; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; |
| `imdb_keyword`<sup>**[2](#table-annotations)**</sup><sup>**[5](#table-annotations)**</sup> | Uses the keywords from IMDb to match<br>`keywords`: list of keywords to match<br>`minimum_votes`: minimum number of votes keywords must have<br>`minimum_relevant`: minimum number of relevant votes keywords must have<br>`minimum_percentage`: minimum percentage of relevant votes keywords must have | &#9989; | &#9989; | &#10060; | &#10060; | &#10060; | &#10060; | &#10060; |
## Collection Filter Examples

@ -99,6 +99,7 @@ search_translation = {
}
show_translation = {
"title": "show.title",
"country": "show.country",
"studio": "show.studio",
"rating": "show.rating",
"audienceRating": "show.audienceRating",
@ -250,7 +251,7 @@ or_searches = [
"writer", "decade", "resolution", "year", "episode_title", "episode_year"
]
movie_only_searches = [
"country", "country.not", "director", "director.not", "producer", "producer.not", "writer", "writer.not",
"director", "director.not", "producer", "producer.not", "writer", "writer.not",
"decade", "duplicate", "unplayed", "progress",
"duration.gt", "duration.gte", "duration.lt", "duration.lte"
"edition", "edition.not", "edition.is", "edition.isnot", "edition.begins", "edition.ends"

Loading…
Cancel
Save