Wiki Update v1.13.2

master
meisnate12 2 years ago
parent ecefdf4325
commit 468ba6aebe

@ -129,7 +129,7 @@ All the following attributes update various details of the collection's Metadata
| Content Rating | `content_rating` | Used to change the collection's content rating | Text to change Content Rating |
| Label | `label` | Used to append new labels to the collection | Comma-separated string of labels to append |
| Label Remove | `label.remove` | Used to remove existing labels from the collection | Comma-separated string of labels to remove |
| Label Sync | `label.sync` | Matches the labels of the collection to the labels provided | Comma-separated string of labels to sync |
| Label Sync | `label.sync` | Matches the labels of the collection to the labels provided (Leave blank to remove all labels) | Comma-separated string of labels to sync |
| Collection Mode | `collection_mode` | Used to change the Collection Mode | `default`: Library default<br>`hide`: Hide Collection<br>`hide_items`: Hide Items in this Collection<br>`show_items`: Show this Collection and its Items |
| Collection Order | `collection_order` | Used to change the Collection Order | `release`: Order Collection by Release Dates<br>`alpha`: Order Collection Alphabetically<br>`custom`: Order Collection Via the Builder Order | :heavy_check_mark: | :heavy_check_mark: |
| Collection Level | `collection_level` | Used to make episode or season collections from `plex_search` or `trakt_list` Builders | `season`: Collection contains seasons<br>`episode`: Collection contains episodes }
@ -147,7 +147,7 @@ All the following attributes update various details of the metadata for every it
| :--- | :--- | :--- | :--- | :---: | :---: |
| Label | `item_label` | Used to append new labels to every movie/show in the collection | Comma-separated string of labels to append | :heavy_check_mark: | :heavy_check_mark: |
| Label Remove | `item_label.remove` | Used to remove existing labels from every movie/show in the collection | Comma-separated string of labels to remove | :heavy_check_mark: | :heavy_check_mark: |
| Label Sync | `item_label.sync` | Matches the labels of every movie/show in the collection to the labels provided | Comma-separated string of labels to sync | :heavy_check_mark: | :heavy_check_mark: |
| Label Sync | `item_label.sync` | Matches the labels of every movie/show in the collection to the labels provided (Leave blank to remove all labels) | Comma-separated string of labels to sync | :heavy_check_mark: | :heavy_check_mark: |
| Lock Posters | `item_lock_poster` | Locks the poster of every movie/show in the collection | `true` or `false`<br>**Default:** false | :heavy_check_mark: | :heavy_check_mark: |
| Lock Backgrounds | `item_lock_background` | Locks the background of every movie/show in the collection | `true` or `false`<br>**Default:** false | :heavy_check_mark: | :heavy_check_mark: |
| Lock Titles | `item_lock_title` | Locks the title of every movie/show in the collection | `true` or `false`<br>**Default:** false | :heavy_check_mark: | :heavy_check_mark: |

@ -27,6 +27,87 @@ The available operations attributes for each library are as follows
| Split Duplicates | `split_duplicates` | Splits all duplicate movies/shows found in this library | `true` or `false` |
| Radarr Add All | `radarr_add_all` | Adds every item in the library to Radarr | `true` or `false` |
| Sonarr Add All | `sonarr_add_all` | Adds every item in the library to Sonarr | `true` or `false` |
| [TMDb Collections](#tmdb-collections) | `tmdb_collections` | Builds Collections for every movie in your library based on TMDb Collections | [`tmdb_collections` mapping details](#tmdb-collections) |
| [Genre Mapper](#genre-mapper) | `genre_mapper` |Will check every item in your library and changed mapped genres | [`genre_mapper` mapping details](#genre-mapper) |
* When using `radarr_add_all` or `sonarr_add_all` the existing paths in plex will be used as the root folder of each item.
* If the paths in Plex are not the same as your Radarr/Sonarr paths you can use the `plex_path` and `radarr_path`/`sonarr_path` [Radarr](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Radarr-Attributes)/[Sonarr](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Sonarr-Attributes) details to convert the paths
## TMDb Collections
This operation will scan every movie in your library and create collections based on a `template` for those collections.
To run the most basic way you can just leave `tmdb_collections` Blank like so:
```yaml
library:
Movies:
operations:
tmdb_collections:
```
This will run all collections found with the template that simply has `tmdb_collection_details: <<collection_id>>` in it.
To change the template for more complex runs you can use the `template` attribute to define the template that is used for the operation like so:
```yaml
library:
Movies:
operations:
tmdb_collections:
template:
tmdb_collection_details: <<collection_id>>
collection_order: release
```
* Remember if you define your own template you need to use the `<<collection_id>>` still to make the collection
There are two other attributes that can be used under `tmdb_collections`
* `exclude_ids`: list or comma separate list of TMDb Collection IDs to ignore
* `remove_suffix`: Removes the suffix given from the TMDb Collection names. i.e. `Star Wars Collection` -> `Star Wars`
```yaml
library:
Movies:
operations:
tmdb_collections:
exclude_ids:
- 10
remove_suffix: Collection
template:
tmdb_collection_details: <<collection_id>>
collection_order: release
```
* If the Collection is defined in another Metadata file (i.e. you define your own `Star Wars` Collection) then it will not run under `tmdb_collections` as long as the collection names match.
## Genre Mapper
You can use the `genre_mapper` operation to map genres in your library.
Each attribute under `genre_mapper` is a separate mapping and has two parts.
* The key (`Action` in the example below) is what the genres will end up as.
* The value( `Action/Adventure, Action & Adventure` in the example below) is what genres you want mapped to the key.
So this example will change go through every item in your library and change the genre `Action/Adventure` or `Action & Adventure` to `Action` and `Romantic Comedy` to `Comedy`.
```yaml
library:
Movies:
operations:
genre_mapper:
Action: Action/Adventure, Action & Adventure
Comedy: Romantic Comedy
```
you can also use a list:
```yaml
library:
Movies:
operations:
genre_mapper:
Action:
- Action/Adventure
- Action & Adventure
Comedy: Romantic Comedy
```

@ -1,5 +1,7 @@
Configuring [Radarr](https://radarr.video/) is optional but will allow you to send movies to a Radarr instance when they're found missing while updating a library's collections.
Radarr V2 may work, but it is not supported please upgrade to V3 if you can.
A `radarr` mapping can be either in the root of the config file as global mapping for all libraries or you can specify the `radarr` mapping individually per library.
Below is a `radarr` mapping example and the full set of attributes:

@ -22,7 +22,9 @@ The scheduling options are:
| Weekly | Update this collection once a week on the specified day | weekly(Day of Week) | weekly(sunday) |
| Monthly | Update this collection once a month on the specified day | monthly(Day of Month) | monthly(1) |
| Yearly | Update this collection once a year on the specified day | yearly(MM/DD) | yearly(01/30) |
| Range | Updates this collection whenever the date is within the range | range(MM/DD-MM/DD) | range(12/01-12/31) |
* Using `daily` to schedule a collection is the default when `schedule` isn't specified
* You can run the script multiple times per day but using the `--time` command line argument detailed on the [Local Installation Page](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Local-Installation#time-to-run).
* You can have multiple scheduling options just make them a list or comma-separated values
* You can have multiple scheduling options just make them a list or comma-separated values
* You can use the `delete_not_scheduled` setting to delete Collections that are skipped due to not being scheduled.

@ -13,8 +13,10 @@ settings:
sync_mode: append
collection_minimum: 1
delete_below_minimum: true
delete_not_scheduled: false
run_again_delay: 2
missing_only_released: false
only_filter_missing: false
show_unmanaged: true
show_filtered: false
show_missing: true
@ -33,14 +35,16 @@ settings:
| [Sync Mode](#sync-mode) | `sync_mode` | `append` or `sync`<br>**default: append** | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [Collection Minimum](#collection-minimum) | `collection_minimum` | **integer**<br>**default: 1** | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [Delete Below Minimum](#delete-below-minimum) | `delete_below_minimum` | **boolean:** true or false<br>**default: false** | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [Run Again Delay](run-again-delay) | `run_again_delay` | **integer**<br>**default: 0** | :heavy_check_mark: | :x: | :x: |
| [Delete Not Scheduled](#delete-not-scheduled ) | `delete_not_scheduled ` | **boolean:** true or false<br>**default: false** | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [Run Again Delay](#run-again-delay) | `run_again_delay` | **integer**<br>**default: 0** | :heavy_check_mark: | :x: | :x: |
| [Missing Only Released](#missing-only-released) | `missing_only_released` | **boolean:** true or false<br>**default: false** | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [Only Filter Missing](#only-filter-missing) | `only_filter_missing` | **boolean:** true or false<br>**default: false** | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [Show Unmanaged Collections](#show-unmanaged-collections) | `show_unmanaged` | **boolean:** true or false<br>**default: true** | :heavy_check_mark: | :heavy_check_mark: | :x: |
| [Show Filtered Collections](#show-filtered-collections) | `show_filtered` | **boolean:** true or false<br>**default: false** | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [Show Filtered](#show-filtered) | `show_filtered` | **boolean:** true or false<br>**default: false** | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [Show Missing](#show-missing) | `show_missing` | **boolean:** true or false<br>**default: true** | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [Show Missing Assets](#show-missing-assets) | `show_missing_assets` | **boolean:** true or false<br>**default: true** | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [Save Missing](#save-missing) | `save_missing` | **boolean:** true or false<br>**default: true** | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [TVDb Language](#tvdb-language) | `tvdb_language` | [ISO 639-2 Language Code](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) or Blank for original Language<br>**default:** | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [TVDb Language](#tvdb-language) | `tvdb_language` | [ISO 639-2 Language Code](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) or Blank for original Language<br>**default:** | :heavy_check_mark: | :x: | :x: |
## Cache
@ -63,20 +67,24 @@ Minimum number of items that must be found in order to update a collection.
## Delete Below Minimum
When a collection is run it will be deleted if it is below the minimum specified by `collection_minimum`.
## Delete Not Scheduled
When a collection is skipped due to it not being scheduled delete it.
## Run Again Delay
Number of minutes to run `run_again` collections after daily run is finished.
A collection is a `run_again` collection if it has the `run_again` [Collection Detail](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Collection-Details#setting-details) attribute set to true.
## Missing Only Released
Library Level toggle to filter missing items from a collection that has yet to be released.
## Only Filter Missing
Library Level toggle to only filter missing items from a collection.
## Show Unmanaged Collections
Show collections not managed by Plex Meta Manager at the end of each run.
## Show Filtered Collections
## Show Filtered
Library Level toggle to show items filtered from collections.
## Show Missing

@ -4,7 +4,7 @@ Using Plex Meta Manager you can create Smart Collections in two different ways.
## Smart Label
A Smart Label Collection is a smart collection that grabs every item with a specific label generated by the program. That label is added to all the items the Collection Builders find instead of being added to a normal collection.
You can add `smart_label` giving it one of the sorts from the Movies/Shows column of the [Sorts Table](#sorts-table) below along with any other builder to make that collection a Smart Label Collection.
You can add `smart_label` giving it one of the sorts from the Movies/Shows column of the [Sorts Table](#sort-options) below along with any other builder to make that collection a Smart Label Collection.
This is extremely useful because smart collections don't follow normal show/hide rules and can eliminate the need to have [Plex Collectionless](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Plex-Builders#plex-collectionless) when used correctly. To fix the issue described in [Plex Collectionless](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Plex-Builders#plex-collectionless) you would make `Marvel Cinematic Universe` a Smart Label Collection and all other Marvel collection just normal collections and they will show/hide all the movie properly.
@ -29,7 +29,7 @@ There are a couple other attributes you can have at the top level only along wit
| :--- | :--- | :--- | :---: |
| Type | `type` | The Type of items inside this collection<br>**Options**: `movies`, `shows`, `seasons`, and `episodes` | `movies` for Movies Libraries and `shows` for Show Libraries |
| Limit | `limit` | The max number of item for the filter | all |
| Sort By | `sort_by` | This will control how the filter is sorted in your library. You can use any sort options for your search type in the [Sorts Table](#sorts-table) | `random` |
| Sort By | `sort_by` | This will control how the filter is sorted in your library. You can use any sort options for your search type in the [Sorts Table](#sort-options) | `random` |
| Validate | `validate` | Determines if a collection will fail on a validation error<br>**Options**: `true` or `false` | `true` |
## Sort Options

@ -1,5 +1,7 @@
Configuring [Sonarr](https://sonarr.tv/) is optional but will allow you to send shows to a Sonarr instance when they're found missing while updating a library's collections.
Sonarr V2 may work, but it is not supported please upgrade to V3 if you can.
A `sonarr` mapping can be either in the root of the config file as global mapping for all libraries or you can specify the `sonarr` mapping individually per library.
Below is a `sonarr` mapping example and the full set of attributes:

@ -26,9 +26,11 @@ collections:
person: 73457
```
There are two attributes unique to `templates`, `default` and `optional`.
There are three attributes unique to `templates`, `default`, `optional`, and `move_collection_prefix`.
* `default` can set default values for template variables to be used if they're not specified in the call.
* `optional` can specify variables that if not specified on the template call will cause any attribute using one of those variables to be ignored in the template.
* `move_collection_prefix` can be given a list or comma-separated string of prefixes to move to the end of the collection name for sorting.
i.e. If you have `move_collection_prefix: The` and a collection is called `The Avengers` then `<<collection_name>>` is replaced with `Avengers, The` instead of `The Avengers` for that collection.
Here's an example IMDB Genre template and two different ways to call it.
```yaml
@ -37,12 +39,15 @@ templates:
default:
title: feature
limit: 100
optional:
- poster_id
imdb_list:
- url: https://www.imdb.com/search/title/?title_type=<<title>>&release_date=1990-01-01,&user_rating=5.0,10.0&num_votes=100000,&genres=<<genre>>
limit: <<limit>>
- url: https://www.imdb.com/search/title/?title_type=<<title>>&release_date=1990-01-01,&user_rating=5.0,10.0&num_votes=100000,&genres=<<genre>>&sort=user_rating,desc
limit: <<limit>>
sort_title: ++_<<collection_name>>
url_poster: https://theposterdb.com/api/assets/<<poster_id>>
sync_mode: sync
collection_order: alpha
collections:
@ -52,7 +57,7 @@ collections:
genre: action
summary: Action film is a genre wherein physical action takes precedence in the storytelling. The film will often have continuous motion and action including physical stunts, chases, fights, battles, and races. The story usually revolves around a hero that has a goal, but is facing incredible odds to obtain it.
Comedy:
template: {name: IMDb Genre, genre: comedy}
template: {name: IMDb Genre, genre: comedy, poster_id: 69200}
summary: Comedy is a genre of film that uses humor as a driving force. The aim of a comedy film is to illicit laughter from the audience through entertaining stories and characters. Although the comedy film may take on some serious material, most have a happy ending. Comedy film has the tendency to become a hybrid sub-genre because humor can be incorporated into many other genres. Comedies are more likely than other films to fall back on the success and popularity of an individual star.
Romantic Comedy:
template: {name: IMDb Genre, genre: "romance,comedy", limit: 200}

@ -9,9 +9,7 @@ webhooks:
error: https://www.myspecialdomain.com/pmm
run_start:
run_end:
collection_creation:
collection_addition:
collection_removal:
collection_changes:
```
| Name | Attribute | Global | Library | Collection |
@ -19,9 +17,7 @@ webhooks:
| [Error](#error-notifications) | `error` | :heavy_check_mark: | :heavy_check_mark: | :x: |
| [Run Start](#run-start-notifications) | `run_start` | :heavy_check_mark: | :x: | :x: |
| [Run End](#run-end-notifications) | `run_end` | :heavy_check_mark: | :x: | :x: |
| [Collection Creation](#collection-notifications) | `collection_creation` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [Collection Addition](#collection-notifications) | `collection_addition` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [Collection Removal](#collection-notifications) | `collection_removal` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [Collection Changes](#collection-notifications) | `collection_changes` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
* Each Attribute can be either a webhook url as a string or a comma-separated list of webhooks urls.
* To send notifications to [Notifiarr](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Notifiarr-Attributes) just add `notifiarr` to a webhook instead of the webhook url.
@ -30,38 +26,27 @@ webhooks:
The Error notification will be sent whenever an error occurs. The payload that is sent is different Depending on which level the error occurs.
#### JSON Payload
<table>
<tr>
<th>Global</th>
<th>Library</th>
<th>Collection</th>
</tr>
<tr>
<td>
#### Global JSON Payload
```yaml
{
"error": str, // Error Message
"critical": bool // Critical Error
"error": str, // Error Message
"critical": bool // Critical Error
}
```
</td>
<td>
#### Library JSON Payload
```yaml
{
"error": str, // Error Message
"critical": bool, // Critical Error
"server_name": str, // Server Name
"library_name": str // Library Name
"error": str, // Error Message
"critical": bool, // Critical Error
"server_name": str, // Server Name
"library_name": str // Library Name
}
```
</td>
<td>
#### Collection JSON Payload
```yaml
{
@ -73,10 +58,6 @@ The Error notification will be sent whenever an error occurs. The payload that i
}
```
</td>
</tr>
</table>
## Run Start Notifications
The Run Start notification will be sent at the beginning of every run.
@ -85,7 +66,7 @@ The Run Start notification will be sent at the beginning of every run.
```yaml
{
"start_time": str, // Time Run is started Format "HH:MM"
"start_time": str, // Time Run is started Format "YY-mm-dd HH:MM:SS"
}
```
@ -97,7 +78,8 @@ The Run End notification will be sent at the end of every run with statistics.
```yaml
{
"start_time": str, // Time Run is started Format "YY-mm-ddTHH:MM:SSZ"
"start_time": str, // Time Run started Format "YY-mm-dd HH:MM:SS"
"end_time": str, // Time Run ended Format "YY-mm-dd HH:MM:SS"
"run_time": str, // Time Run took to complete Format "HH:MM"
"collections_created": int, // Number of Collections Created
"collections_modified": int, // Number of Collections Modified
@ -111,23 +93,22 @@ The Run End notification will be sent at the end of every run with statistics.
## Collection Notifications
The Collection Notification will be sent after each collection, containing the following payload.
The Collection Notification will be sent after each collection containing the following payload if the collection has been created, has new items, or has had items removed.
#### JSON Payload
```yaml
{
"start_time": str, // Time Run is started Format "YY-mm-ddTHH:MM:SSZ"
"server_name": str, // Server Name
"library_name": str, // Library Name
"type": str, // Will be either "movie" or "show"
"collection": str, // Collection Name
"created": bool, // Was the Collection Created on this run
"poster": str, // Base64 Encoded Collection Poster
"background": str, // Base64 Encoded Collection Background
"additions": [int], // List of TMDb IDs (type=movie) or TVDb IDs (type=show) added to the colleciton
"removals": [int] // List of TMDb IDs (type=movie) or TVDb IDs (type=show) removed from the colleciton
"additions": [int], // List of TMDb/TVDb IDs added to the colleciton
"removals": [int] // List of TMDb/TVDb IDs removed from the colleciton
}
```
* `additions` is only in the payload when `collection_addition` is used.
* `removals` is only in the payload when `collection_removing` is used.
* TMDb IDs are sent if the `type` is `movie` and TVDb IDs are sent if the type is `show`

Loading…
Cancel
Save