diff --git a/.github/ISSUE_TEMPLATE/1.bug_report.yml b/.github/ISSUE_TEMPLATE/1.bug_report.yml index 322b7dde..a3b9180a 100644 --- a/.github/ISSUE_TEMPLATE/1.bug_report.yml +++ b/.github/ISSUE_TEMPLATE/1.bug_report.yml @@ -8,7 +8,7 @@ body: attributes: value: > **THIS IS NOT THE PLACE TO ASK FOR SUPPORT OR FEATURE REQUESTS!** - Please use [Plex Meta Manager Discord](https://discord.gg/gYU8wATxKw) and post your question under the `pmm-help` channel for support issues. + Please use [Plex Meta Manager Discord](https://metamanager.wiki/en/latest/discord/) and post your question under the `pmm-help` channel for support issues. Please use [Plex Meta Manager Features](https://features.metamanager.wiki/) to request and upvote features. - type: input id: version diff --git a/.github/ISSUE_TEMPLATE/2.pmm_default.yml b/.github/ISSUE_TEMPLATE/2.pmm_default.yml index 8955bc20..587414e0 100644 --- a/.github/ISSUE_TEMPLATE/2.pmm_default.yml +++ b/.github/ISSUE_TEMPLATE/2.pmm_default.yml @@ -9,7 +9,7 @@ body: attributes: value: > **THIS IS NOT THE PLACE TO ASK FOR SUPPORT OR FEATURE REQUESTS!** - Please use [Plex Meta Manager Discord](https://discord.gg/gYU8wATxKw) and post your question under the `pmm-support` channel for support issues. + Please use [Plex Meta Manager Discord](https://metamanager.wiki/en/latest/discord/) and post your question under the `pmm-support` channel for support issues. Please use [Plex Meta Manager Features](https://features.metamanager.wiki/) to request and upvote features. - type: input id: file diff --git a/.github/ISSUE_TEMPLATE/3.docs_request.yml b/.github/ISSUE_TEMPLATE/3.docs_request.yml index a93fcbd9..f864ae98 100644 --- a/.github/ISSUE_TEMPLATE/3.docs_request.yml +++ b/.github/ISSUE_TEMPLATE/3.docs_request.yml @@ -8,7 +8,7 @@ body: attributes: value: > **THIS IS NOT THE PLACE TO ASK FOR SUPPORT OR FEATURE REQUESTS!** - Please use [Plex Meta Manager Discord](https://discord.gg/gYU8wATxKw) and post your question under the `pmm-support` channel for support issues. + Please use [Plex Meta Manager Discord](https://metamanager.wiki/en/latest/discord/) and post your question under the `pmm-support` channel for support issues. Please use [Plex Meta Manager Features](https://features.metamanager.wiki/) to request and upvote features. - type: textarea attributes: diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 6b490381..23234e93 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -7,5 +7,5 @@ contact_links: url: https://metamanager.wiki about: Please check the wiki to see if your question has already been answered. - name: Discord - url: https://discord.gg/gYU8wATxKw + url: https://metamanager.wiki/en/latest/discord/ about: Please use the Plex Meta Manager Discord to ask for support. diff --git a/README.md b/README.md index 95c1ca69..2990fe35 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# PMM +# PMM [![GitHub release (latest by date)](https://img.shields.io/github/v/release/meisnate12/Plex-Meta-Manager?style=plastic)](https://github.com/meisnate12/Plex-Meta-Manager/releases) [![Docker Image Version (latest semver)](https://img.shields.io/docker/v/meisnate12/plex-meta-manager?label=docker&sort=semver&style=plastic)](https://hub.docker.com/r/meisnate12/plex-meta-manager) @@ -6,7 +6,7 @@ [![Develop GitHub commits since latest stable release (by SemVer)](https://img.shields.io/github/commits-since/meisnate12/plex-meta-manager/latest/develop?label=Commits%20in%20Develop&style=plastic)](https://github.com/meisnate12/Plex-Meta-Manager/tree/develop) [![Nightly GitHub commits since latest stable release (by SemVer)](https://img.shields.io/github/commits-since/meisnate12/plex-meta-manager/latest/nightly?label=Commits%20in%20Nightly&style=plastic)](https://github.com/meisnate12/Plex-Meta-Manager/tree/nightly) -[![Discord](https://img.shields.io/discord/822460010649878528?color=%2300bc8c&label=Discord&style=plastic)](https://discord.gg/gYU8wATxKw) +[![Discord](https://img.shields.io/discord/822460010649878528?color=%2300bc8c&label=Discord&style=plastic)](https://metamanager.wiki/en/latest/discord/) [![Reddit](https://img.shields.io/reddit/subreddit-subscribers/PlexMetaManager?color=%2300bc8c&label=r%2FPlexMetaManager&style=plastic)](https://www.reddit.com/r/PlexMetaManager/) [![Wiki](https://img.shields.io/readthedocs/plex-meta-manager?color=%2300bc8c&style=plastic)](https://metamanager.wiki) [![Translations](https://img.shields.io/weblate/progress/plex-meta-manager?color=00bc8c&server=https%3A%2F%2Ftranslations.metamanager.wiki&style=plastic)](https://translations.metamanager.wiki/projects/plex-meta-manager/#languages) @@ -14,79 +14,106 @@ [![Sponsor or Donate](https://img.shields.io/badge/-Sponsor%2FDonate-blueviolet?style=plastic)](https://github.com/sponsors/meisnate12) [![Feature Requests](https://img.shields.io/badge/Feature%20Requests-blueviolet?style=plastic)](https://features.metamanager.wiki/) -Plex Meta Manager is an open source Python 3 project that has been designed to ease the creation and maintenance of metadata, collections, and playlists within a Plex Media Server. The script is designed to be run continuously and be able to update information based on sources outside your plex environment. Plex Meta Manager supports Movie/TV/Music libraries and Playlists. +Plex Meta Manager is a powerful tool designed to give you complete control over your media libraries. With Plex Meta Manager, you can take your customization to the next level, with granular control over metadata, collections, overlays, and much more. + +Transform your media library with Plex Meta Manager and discover its full potential! Connect to third-party services like TMDb, Trakt, and IMDb, among others, to create one-of-a-kind collections, overlays and more. Your media library will stand out and be tailored to your specific needs. ## What Can Plex-Meta-Manager Do? -Plex Meta Manager can +### Overhaul Your Media Libraries -1. Create and maintain collections in Plex libraries using external lists, Plex searches, or filters. +- Elevate your library with beautifully crafted metadata - customize artwork, titles, summaries, and more to create a stunning library. -2. Create, maintain, and share playlists on Plex servers using the same or similar criteria. +### PMM Defaults -3. Manage metadata [artwork, titles, summaries, release year, etc.] for anything on your Plex server. +- Take advantage of pre-made modular Collections & Overlays to reduce the manual effort and get to the good stuff with less effort! -4. Add overlays to item artwork to display various details [ratings, resolution, edition, etc.]. +### Third-Party Integrations -5. Send missing items from external lists [for example the IMDB 250] to Radarr or Sonarr for download. +- Harness the power of Trakt, TMDb, IMDb, Flixpatrol and more to create collections and overlays! +- Integrate with Sonarr and Radarr to automate your library growth. -6. and more. +### And More! + +- We're constantly working on new features to take your library management experience to the next level. +- Consider sponsoring the project to allow us to continue building great features for you! + +## Example Plex Meta Manager Libraries + +Here are some examples of the things you can achieve using Plex Meta Manager! + +**Example Movie Collections using the [Plex Meta Manager Defaults](https://metamanager.wiki/en/latest/defaults/collections/)** (click to enlarge): + +![Movie Collection Preview](https://metamanager.wiki/en/latest/images/movie-collection-preview.png) + +**Example Show Overlays using the [Plex Meta Manager Defaults](https://metamanager.wiki/en/latest/defaults/collections/overlays)** (click to enlarge): + +![Show Library Preview](https://metamanager.wiki/en/latest/images/show-library-preview.png) + +## Plex Meta Manager Defaults + +Want your library to look like the above images? With the [PMM Defaults](https://metamanager.wiki/en/latest/defaults/guide/) you can! These powerful and modular files were designed by the Plex Meta Manager team to make it simple to create a personalized, one-of-a-kind media collection without the hassle of manually defining each one. + +Want to see what the community has to offer? Check out the [Plex Meta Manager Configs](https://github.com/meisnate12/Plex-Meta-Manager-Configs) repository on GitHub to see user-submitted configuration files, or even add your own to the mix! + +With Plex Meta Manager, you can also manage metadata for all your media types, from movies and shows to music and more. And since your metadata is managed outside your libraries, you'll never have to worry about losing your customizations in the event of a media server database loss, you can simply reapply them! It is also easy to move your customizations between servers if you need to. ## Getting Started -These are the high-level steps you must take to get Plex Meta Manager up and running: +To get started with Plex Meta Manager, follow these simple steps: -1. Install Plex Meta Manager; this process is described [here](https://metamanager.wiki/en/latest/home/installation.html). +1. Install Plex Meta Manager on your device. You can find the installation instructions for a variety of platforms [here](https://metamanager.wiki/en/latest/pmm/install/overview/). -2. Once installed, you have to create a [Configuration File](https://metamanager.wiki/en/latest/config/configuration.html), which contains URLs and credentials and the like which are used to connect to services like Plex and TMDb. +2. Once you have installed Plex Meta Manager, create your [Configuration File](https://metamanager.wiki/en/latest/config/overview/). This file contains important information such as URLs and credentials needed to connect to services like Plex and TMDb -3. After that you can start updating Metadata and building automatic Collections by creating a [Metadata File](https://metamanager.wiki/en/latest/metadata/metadata.html) for each Library you want to interact with. +3. After creating the Configuration File, you can start updating Metadata and building automatic Collections by creating a [Collection File](https://metamanager.wiki/en/latest/files/collections/) for each Library you want to work with. If you'd rather use some of our pre-made Collection Files, take a look at the [Plex Meta Manager Defaults](https://metamanager.wiki/en/latest/defaults/guide/) -4. After that, explore the [Wiki](https://metamanager.wiki/) to see all the different Collection Builders that can be used to create collections. +4. Finally, check out the [Wiki](https://metamanager.wiki/), you'll find new and exciting ways to truly unlock the potential of your libraries. -## Walkthroughs +## Step-by-Step Guides -If you find steps 1-3 above daunting, there are some walkthroughs available that will take you through those three steps: getting Plex Meta Manager installed, creating a config file, and creating a couple collections to show how the process works. +If you're a beginner to the concepts of Python, Git and/or Plex Meta Manager and find the above steps challenging, don't worry. We've got some step-by-step guides that can help you get started. These guides will take you through the process of installing Plex Meta Manager, creating your Configuration File and getting some basic Collections up and running. - 1. The [Local Walkthrough](https://metamanager.wiki/en/latest/home/guides/local.html) covers installing the script natively [not in docker] on your local computer or a remote server. - 2. The [Docker Walkthrough](https://metamanager.wiki/en/latest/home/guides/docker.html) covers the same thing, running the script via Docker. - 3. The [unRAID Walkthrough](https://metamanager.wiki/en/latest/home/guides/unraid.html) gets you started configuring the script in UNRaid. It doesn't go through the same steps with regard to creating the config file and metadata file, so you may want to go through the [Docker Walkthrough](https://metamanager.wiki/en/latest/home/guides/docker.html) first on your computer to gain that understanding. +For those who need full installation walkthroughs, please refer to the following walkthrough guides: + + * [Local Walkthrough](https://metamanager.wiki/en/latest/pmm/install/local/) - follow this if you are running the script directly on Windows, OS X, or Linux + * [Docker Walkthrough](https://metamanager.wiki/en/latest/pmm/install/docker/) - this discusses using Docker at the command line + +If you are using unRAID, Kubernetes, QNAP, or Synology refer to the following basic guide to Docker container setup for each system: + +**this doesn't cover the PMM setup specifics found in the guides above with regard to creating the config file and collection file, so you may want to go through the [Docker Walkthrough](https://metamanager.wiki/en/latest/pmm/install/docker/) first on your computer to gain that understanding.** + + * [unRAID Walkthrough](https://metamanager.wiki/en/latest/pmm/install/unraid/) + * [Kubernetes Walkthrough](https://metamanager.wiki/en/latest/pmm/install/kubernetes/) + * [QNAP Walkthrough](https://metamanager.wiki/en/latest/pmm/install/qnap/) + * [Synology Walkthrough](https://metamanager.wiki/en/latest/pmm/install/synology/) ## Example Usage -Plex Meta Manager gives the user the power to curate a set of Collections to make discovering and organizing media easy. They can be built either using plex-based searches/filters, or by using popular builders such as TMDb, IMDb, Trakt, MDBList, MyAnimeList and many more. +Plex Meta Manager puts you in control of your media library by letting you create custom Collections that make discovering and organizing your content a breeze. With powerful search and filtering options, you can build Collections based on popular builders like TMDb, IMDb, Trakt, and many more. -Some example collections that can be created are: - * Trending/Popular (based on TMDb, IMDb, Trakt, etc.) - * Streaming Service (such as Netflix, Disney+, etc.) +Imagine having Collections like these at your fingertips: + + * Trending and Popular (based on TMDb, IMDb, Trakt, etc.) + * Streaming Services (like Netflix, Disney+, and more) * Networks * Studios * Genres * Actors * Decades -Below are some user-curated collections which have been created by Plex Meta Manager using the [PMM Defaults](https://metamanager.wiki/en/latest/defaults/guide.html). +Plex Meta Manager gives you endless possibilities to curate and organize your media library any way you want. Create custom Collections and Overlays that fit your unique preferences and make discovering your content effortless. -### Example Movie Collection -![Movie Collection Preview](https://metamanager.wiki/en/latest/_images/movie-collection-preview.png) - -### Example Movie Overlays -![Movie Library Preview](https://metamanager.wiki/en/latest/_images/movie-library-preview.png) - -### Example Show Collection -![Show Collection Preview](https://metamanager.wiki/en/latest/_images/show-collection-preview.png) - -### Example Show Overlays -![Show Library Preview](https://metamanager.wiki/en/latest/_images/show-collection-preview.png) +But if you don't want to spend time manually creating Collections and Overlays, we've got you covered. Check out the [PMM Defaults](https://metamanager.wiki/en/latest/defaults/guide/) - a handcrafted selection of tried-and-tested Collections and Overlays made by the Plex Meta Manager team. ## Develop & Nightly Branches -Develop and Nightly branches are deemed as "beta" branches which are updated far more frequently than the master branch. Bug fixes, new features and any other code added to Plex Meta Manager first goes to the nightly branch, followed by the develop branch, before finally being released to the master branch. +The Develop and Nightly branches are "beta" versions of Plex Meta Manager that are updated more frequently than the stable version (Master branch). These branches are where bug fixes, new features, and other changes are added before being released to the Master branch. -These branches (particularly the nightly branch) are only recommended for those who have a technical knowledge of Plex Meta Manager, and are happy with having to frequently update to receive the latest changes, and accept the risk that these branches may suffer breakages at any point. +However, these branches (especially Nightly) are recommended for more technical users who don't mind updating frequently to get the latest changes. Keep in mind that these beta branches may have bugs or other issues that could cause problems with Plex Meta Manager or your media server. So, if you're not comfortable with technical issues, it's best to stick with the Master branch.
- Develop Branch - Click to Expand + Develop Branch (click to expand) [![Develop GitHub commits since latest stable release (by SemVer)](https://img.shields.io/github/commits-since/meisnate12/plex-meta-manager/latest/develop?label=Commits%20in%20Develop&style=plastic)](https://github.com/meisnate12/Plex-Meta-Manager/tree/develop) @@ -117,7 +144,7 @@ If switching to the develop branch, it is recommended to also use the [develop b
- Nightly Branch - Click to Expand + Nightly Branch (click to expand) [![Nightly GitHub commits since latest stable release (by SemVer)](https://img.shields.io/github/commits-since/meisnate12/plex-meta-manager/latest/nightly?label=Commits%20in%20Nightly&style=plastic)](https://github.com/meisnate12/Plex-Meta-Manager/tree/nightly) @@ -144,28 +171,27 @@ git checkout master ``` ```` -As this branch is subject to extreme change, there is no promise of the feature being documented in the [nightly](https://metamanager.wiki/en/nightly/) branch of the wiki and all discussions relating to changes made in the nightly branch will be held within the [Plex Meta Manager Discord Server](https://discord.gg/gYU8wATxKw). +As this branch is subject to extreme change, there is no promise of the feature being documented in the [nightly](https://metamanager.wiki/en/nightly/) branch of the wiki and all discussions relating to changes made in the nightly branch will be held within the [Plex Meta Manager Discord Server](https://metamanager.wiki/en/latest/discord/).
-## Defaults and User Metadata/Overlay Files - -The overlays and collection built in the images above can be easily added to any plex by using the [PMM Defaults](https://metamanager.wiki/en/latest/defaults/guide.html). These Files were created by the PMM team to make it easier than ever to have customized collections and overlays. - -To see user submitted Metadata configuration files, and you to even add your own, go to the [Plex Meta Manager Configs](https://github.com/meisnate12/Plex-Meta-Manager-Configs). - -Plex Meta Manager can manage the metadata fields for movies, shows, seasons, episodes, artists, albums, tracks, and collections, which can allow you to have a full backup of your customizations in case of a database loss. ## Discord Support Server -Before posting on GitHub about an enhancement, error, or configuration question please visit the [Plex Meta Manager Discord Server](https://discord.gg/gYU8wATxKw). we have a dedicated support thread system so that your query can be dealt with efficiently by our team and community. + +If you're looking for support for any questions or issues you might have, or if you just want to be a part of our growing community, Join the [Plex Meta Manager Discord Server](https://metamanager.wiki/en/latest/discord/). ## Feature Requests -If you have an idea for how to enhance Plex Meta Manager or just want to vote on what should be added next please visit the [Feature Request](https://features.metamanager.wiki/features) Page. + +At Plex Meta Manager, we value our community's input and actively seek feedback to drive the evolution of our product. We want to hear your ideas on how to enhance Plex Meta Manager, and we encourage you to visit our [Feature Request](https://features.metamanager.wiki/features) page to share your thoughts or vote on what features you would like to see added next. Your voice matters and helps shape the future of Plex Meta Manager, so please don't hesitate to join in the conversation and be a part of our community-driven development process. ## Errors and Configuration Questions -If you are unable to use the [Plex Meta Manager Discord Server](https://discord.gg/gYU8wATxKw), please follow this guidance: -* If you're getting an Error please update to the latest version and then open a [Bug Report](https://github.com/meisnate12/Plex-Meta-Manager/issues/new?assignees=meisnate12&labels=status%3Anot-yet-viewed%2C+bug&template=bug_report.md&title=Bug%3A+) if the error persists. -* If you see a mistake/typo with the [Plex Meta Manager Wiki](https://metamanager.wiki/) or have an idea of how we can improve it please open a [Wiki Request](https://github.com/meisnate12/Plex-Meta-Manager/issues/new?assignees=meisnate12&labels=status%3Anot-yet-viewed%2C+documentation&template=3.docs_request.yml&title=%5BDocs%5D%3A+) -* If you have a metadata configuration query please post in the [Discussions](https://github.com/meisnate12/Plex-Meta-Manager/discussions). + +If you're having trouble, we recommend first joining the [Plex Meta Manager Discord Server](https://metamanager.wiki/en/latest/discord/) and seeking support there. If that isn't possible for you, here's what you can do: + +* If you get an error, update to the latest version and check if the issue persists. If it does, report the bug by filling out the [Bug Report](https://github.com/meisnate12/Plex-Meta-Manager/issues/new?assignees=meisnate12&labels=status%3Anot-yet-viewed%2C+bug&template=bug_report.md&title=Bug%3A+) template. +* If you spot a mistake or have an idea to improve the [Plex Meta Manager Wiki](https://metamanager.wiki/), submit a request using the [Wiki Request](https://github.com/meisnate12/Plex-Meta-Manager/issues/new?assignees=meisnate12&labels=status%3Anot-yet-viewed%2C+documentation&template=3.docs_request.yml&title=%5BDocs%5D%3A+) template. +* If you have a question about metadata configuration, start a discussion on the [Discussions](https://github.com/meisnate12/Plex-Meta-Manager/discussions). Remember, the community helps shape the future of Plex Meta Manager, so your input is valuable! + +For support on any of the above, visit the [Discord server](https://metamanager.wiki/en/latest/discord/). ## Contributing * Pull Requests are greatly encouraged, please submit all Pull Requests to the nightly branch. diff --git a/VERSION b/VERSION index fb0ae48d..6aea03b7 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.19.1-develop63 +1.19.1-develop64 diff --git a/defaults/both/content_rating_de.yml b/defaults/both/content_rating_de.yml index 86c13097..8915734f 100644 --- a/defaults/both/content_rating_de.yml +++ b/defaults/both/content_rating_de.yml @@ -47,7 +47,7 @@ dynamic_collections: - 12 - 16 - 18 - - BJPM + - BPjM addons: 0: - de/0 @@ -132,6 +132,6 @@ dynamic_collections: - NC-17 - R+ - Mild Nudity - Rx - Hentai - BJPM: + BPjM: - de/BPjM Restricted - BPjM Restricted diff --git a/defaults/both/content_rating_de.yml.orig b/defaults/both/content_rating_de.yml.orig new file mode 100644 index 00000000..5e4f039b --- /dev/null +++ b/defaults/both/content_rating_de.yml.orig @@ -0,0 +1,145 @@ +############################################################################## +# DE Content Rating Collections # +# Created by Yozora, Bullmoose20, & Sohjiro # +# EDITING THIS FILE MAY CAUSE PULLING NEW UPDATES TO FAIL # +# https://metamanager.wiki/en/latest/defaults/both/content_rating_de.html # +############################################################################## + +external_templates: + pmm: templates + template_variables: + collection_section: "110" + +collections: + Ratings Collections: + template: + - name: separator + separator: content_rating + key_name: Ratings + translation_key: separator + +dynamic_collections: + DE Content Rating: + type: content_rating + title_format: <> <>s + other_name: Not Rated <>s + template: + - smart_filter + - shared + other_template: + - other_collection + - smart_filter + - shared + template_variables: + search_term: + default: content_rating + image: + default: content_rating/de/<> + other: content_rating/de/NR + translation_key: + default: content_rating + other: content_rating_other + dynamic: + default: true + include: + - "0" + - 6 + - 12 + - 16 + - 18 +<<<<<<< HEAD + - BPjM +======= + - BPJM +>>>>>>> bullmoose20/patch-17 + addons: + 0: + - de/0 + - U + - 1 + - 2 + - 3 + - 4 + - 5 + - "01" + - "02" + - "03" + - "04" + - "05" + - G + - TV-G + - TV-Y + - G - All Ages + - gb/U + - gb/0+ + - E + - gb/E + - A + - no/A + - no/5 + - no/05 + 6: + - de/6 + - gb/9+ + - TV-PG + - TV-Y7 + - TV-Y7-FV + - PG + - 7 + - 8 + - 9 + - 10 + - 11 + - "07" + - "08" + - "09" + - PG - Children + - no/6 + - no/06 + - no/7 + - no/07 + - no/9 + - no/09 + - no/10 + - no/11 + 12: + - de/12 + - gb/12 + - no/12 + - gb/15 + - gb/14+ + - TV-14 + - 13 + - 14 + - 15 + - PG-13 - Teens 13 or older + - PG-13 + - no/15 + 16: + - de/16 + - no/16 + - A-17 + - TVMA + - TV-MA + - R + - 17 + - M/PG + 18: + - de/18 + - gb/18 + - M + - no/18 + - R18 + - gb/R18 + - gb/X + - X + - NC-17 + - R+ - Mild Nudity + - Rx - Hentai +<<<<<<< HEAD + BPjM: +======= + BPJM: +>>>>>>> bullmoose20/patch-17 + - de/BPjM Restricted + - BPjM Restricted diff --git a/docs/assets/404.gif b/docs/404.gif similarity index 100% rename from docs/assets/404.gif rename to docs/404.gif diff --git a/docs/assets/icons/anidb.png b/docs/assets/icons/anidb.png new file mode 100644 index 00000000..b4dfd23e Binary files /dev/null and b/docs/assets/icons/anidb.png differ diff --git a/docs/assets/icons/anilist.png b/docs/assets/icons/anilist.png new file mode 100644 index 00000000..29cf6ec5 Binary files /dev/null and b/docs/assets/icons/anilist.png differ diff --git a/docs/assets/icons/flixpatrol.png b/docs/assets/icons/flixpatrol.png new file mode 100644 index 00000000..45c6392e Binary files /dev/null and b/docs/assets/icons/flixpatrol.png differ diff --git a/docs/assets/icons/icheckmovies.png b/docs/assets/icons/icheckmovies.png new file mode 100644 index 00000000..8d57cc64 Binary files /dev/null and b/docs/assets/icons/icheckmovies.png differ diff --git a/docs/assets/icons/imdb.png b/docs/assets/icons/imdb.png new file mode 100644 index 00000000..51bc02bd Binary files /dev/null and b/docs/assets/icons/imdb.png differ diff --git a/docs/assets/icons/letterboxd.png b/docs/assets/icons/letterboxd.png new file mode 100644 index 00000000..bc6f4fb4 Binary files /dev/null and b/docs/assets/icons/letterboxd.png differ diff --git a/docs/assets/icons/mdblist.png b/docs/assets/icons/mdblist.png new file mode 100644 index 00000000..1bdb1a09 Binary files /dev/null and b/docs/assets/icons/mdblist.png differ diff --git a/docs/assets/icons/myanimelist.png b/docs/assets/icons/myanimelist.png new file mode 100644 index 00000000..93afeb54 Binary files /dev/null and b/docs/assets/icons/myanimelist.png differ diff --git a/docs/assets/icons/plex.png b/docs/assets/icons/plex.png new file mode 100644 index 00000000..862ddd62 Binary files /dev/null and b/docs/assets/icons/plex.png differ diff --git a/docs/assets/icons/plex_dumb.png b/docs/assets/icons/plex_dumb.png new file mode 100644 index 00000000..eb5ebbfa Binary files /dev/null and b/docs/assets/icons/plex_dumb.png differ diff --git a/docs/assets/icons/radarr.png b/docs/assets/icons/radarr.png new file mode 100644 index 00000000..edb47b58 Binary files /dev/null and b/docs/assets/icons/radarr.png differ diff --git a/docs/assets/icons/reciperr.png b/docs/assets/icons/reciperr.png new file mode 100644 index 00000000..7c8f513d Binary files /dev/null and b/docs/assets/icons/reciperr.png differ diff --git a/docs/assets/icons/sonarr.png b/docs/assets/icons/sonarr.png new file mode 100644 index 00000000..72f50dee Binary files /dev/null and b/docs/assets/icons/sonarr.png differ diff --git a/docs/assets/icons/stevenlu.png b/docs/assets/icons/stevenlu.png new file mode 100644 index 00000000..4447fd45 Binary files /dev/null and b/docs/assets/icons/stevenlu.png differ diff --git a/docs/assets/icons/tautulli.png b/docs/assets/icons/tautulli.png new file mode 100644 index 00000000..95fc88d1 Binary files /dev/null and b/docs/assets/icons/tautulli.png differ diff --git a/docs/assets/icons/tmdb.png b/docs/assets/icons/tmdb.png new file mode 100644 index 00000000..e730710d Binary files /dev/null and b/docs/assets/icons/tmdb.png differ diff --git a/docs/assets/icons/trakt.png b/docs/assets/icons/trakt.png new file mode 100644 index 00000000..be90d9a5 Binary files /dev/null and b/docs/assets/icons/trakt.png differ diff --git a/docs/assets/icons/tvdb.png b/docs/assets/icons/tvdb.png new file mode 100644 index 00000000..95131dc7 Binary files /dev/null and b/docs/assets/icons/tvdb.png differ diff --git a/docs/builders/details/definition.md b/docs/builders/details/definition.md deleted file mode 100644 index 9f872fd7..00000000 --- a/docs/builders/details/definition.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -search: - boost: 3 ---- -# Definition Settings - -All the following attributes serve various functions as how the definition functions inside of Plex Meta Manager. - -| Attribute | Description & Values | -|:-----------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `name` | **Description:** Used to specify the name of the definition in Plex as different than the mapping name.
**Values:** Any String | -| `limit` | **Description:** Used to specify the max number of items for the definition
**Values:** Number greater than 0 | -| `template` | **Description:** Used to specify a template and template variables to use for this definition. See the [Templates Page](../templates.md) for more information.
**Values:** Dictionary | -| `run_again` | **Description:** Used to try and add all the missing items to the definition again after the daily run.
**Default:** `false`
**Values:** `true` or `false` | -| `sync_mode` | **Description:** Used to change how builders sync with this definition.
**Default:** `sync_mode` [settings value](../../config/settings.md) in the Configuration File
**Values:**
`append`Only Add Items to the Collection
`sync`Add & Remove Items from the Collection
| -| `minimum_items` | **Description:** Minimum items that must be found to add to a definition.
**Default:** `minimum_items` [settings value](../../config/settings.md) in the Configuration File
**Values:** number greater than 0 | -| `delete_below_minimum` | **Description:** Deletes the definition if below the minimum.
**Default:** `delete_below_minimum` [settings value](../../config/settings.md) in the Configuration File
**Values:** `true` or `false` | -| `delete_not_scheduled` | **Description:** Deletes the definition if its skipped because its not scheduled.
**Default:** `delete_not_scheduled` [settings value](../../config/settings.md) in the Configuration File
**Values:** `true` or `false` | -| `tmdb_region` | **Description:** Sets the region for `tmdb_popular`, `tmdb_now_playing`, `tmdb_top_rated`, and `tmdb_upcoming` | -| `validate_builders` | **Description:** When set to false the definition will not fail if one builder fails.
**Default:** `true`
**Values:** `true` or `false` | -| `cache_builders` | **Description:** Caches the items found by the builders for a number of days. This is useful if you run the same configuration on multiple libraries/servers in one run just set the value to `1`.
**Default:** `0`
**Values:** number 0 or greater | -| `blank_collection` | **Description:** When set to true the collection will be created with no builders and no items added.
**Default:** `false`
**Values:** `true` or `false` | -| `build_collection` | **Description:** When set to false the collection won't be created but items can still be added to Radarr/Sonarr. Does not work for playlists.
**Default:** `true`
**Values:** `true` or `false` | -| `server_preroll` | **Description:** Used to set the `Movie pre-roll video` Text box in Plex under Settings -> Extras.
You can run this with a [schedule](schedule.md) to change the pre-rolls automatically.
**Values:** Any String | -| `missing_only_released` | **Description:** definition Level `missing_only_released` toggle.
**Default:** `missing_only_released` [settings value](../../config/settings.md) in the Configuration File
**Values:** `true` or `false` | -| `only_filter_missing` | **Description:** definition Level `only_filter_missing` toggle.
**Default:** `only_filter_missing` [settings value](../../config/settings.md) in the Configuration File
**Values:** `true` or `false` | -| `show_filtered` | **Description:** definition level `show_filtered` toggle.
**Default:** `show_filtered` [settings value](../../config/settings.md) in the Configuration File
**Values:** `true` or `false` | -| `show_missing` | **Description:** definition level `show_missing` toggle.
**Default:** `show_missing` [settings value](../../config/settings.md) in the Configuration File
**Values:** `true` or `false` | -| `save_report` | **Description:** definition level `save_report` toggle.
**Default:** `save_report` [settings value](../../config/settings.md) in the Configuration File
**Values:** `true` or `false` | -| `ignore_ids` | **Description:** definition level `ignore_ids` which is combined with the library and global `ignore_ids`.
**Default:** `ignore_ids` [settings value](../../config/settings.md) in the Configuration File
**Values:** List or comma-separated String of TMDb/TVDb IDs | -| `ignore_imdb_ids` | **Description:** definition level `ignore_imdb_ids` which is combined with the library and global `ignore_imdb_ids`.
**Default:** `ignore_imdb_ids` [settings value](../../config/settings.md) in the Configuration File
**Values:** List or comma-separated String of IMDb IDs | -| `name_mapping` | **Description:** Used to specify the folder name in the [Image Assets Directory](../../pmm/install/guides/assets.md) i.e. if your definition name contains characters that are not allowed in file paths (i.e. for windows `<`, `>`, `:`, `"`, `/`, `\`, `?`, `*` cannot be in the file path), but you want them in your name you can this to specify the name in the file system.
**Values:** Any String | -| `test` | **Description:** When running in Test Mode (`--run-tests` [option](../../pmm/essentials/environmental)) only definitions with `test: true` will be run.
**Default:** `false`
**Values:** `true` or `false` | -| `changes_webhooks` | **Description:** Used to specify a definition changes webhook for just this definition.
**Values:** List of webhooks | -| `sync_to_trakt_list` | **Description:** Used to specify a trakt list you want the definition synced to.
**Values:** Trakt List Slug you want to sync to | -| `sync_missing_to_trakt_list` | **Description:** Used to also sync missing items to the Trakt List specified by `sync_to_trakt_list`.
**Default:** `false`
**Values:** `true` or `false` | -| `run_definition` | **Description:** Used to specify if this definition runs.
Multiple can be used for one definition as a list or comma separated string. One `false` or unmatched library type will cause it to fail.
**Values:** `movie`, `show`, `artist`, `true`, `false` | -| `default_percent` | **Description:** Used to declare the default percent for `episodes`, `seasons`, `tracks`, and `albums` [special filters](../filters.md#special-filters). Default is 50.
**Values:** Integer between 1 and 100 | -| `ignore_blank_results` | **Description:** Used to not have Errors resulting from blank results from builders.
**Default:** `false`
**Values:** `true` or `false` | -| `only_run_on_create` | **Description:** Used to only run the collection definition if the collection doesn't already exist.
**Default:** `false`
**Values:** `true` or `false` | -| `delete_collections_named` | **Description:** Used to delete any collections in your plex named one of the given collections.
**Values:** List of Collection Names to delete | - -An example of using `default_percent` which is used in an external yml file and not within config.yml: -```yml - HDR10Plus: - default_percent: 35 #default default_percent is 50 - template: - - name: Resolution - weight: 400 - opt1: hdr10p - plex_search: - all: - hdr: true - filters: - filepath.regex: 'HDR10\+|HDR10P' diff --git a/docs/builders/details/schedule.md b/docs/builders/details/schedule.md deleted file mode 100644 index 1f3f4afb..00000000 --- a/docs/builders/details/schedule.md +++ /dev/null @@ -1,124 +0,0 @@ -# Schedule Setting - -Plex Meta Manager allows you to schedule certain libraries/files so that runs can be tailored to suit your needs. - -This is particularly handy for users who have a lot of libraries or run a lot of Metadata/Operations on their libraries. - -### IMPORTANT: - -These schedules do not trigger PMM to run; they control what PMM will do if it happens to be running at the scheduled time. `weekly(sunday)`, for example, does not mean "run PMM on Sunday to do this thing"; it means "If PMM is running, and it's Sunday, do this thing". - -The scheduling options are: - -| Name | Description | Format | Example | -|:-------------|:--------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------|:---------------------------------------------------------------------| -| Hourly | Update only when the script is run in that hour or hour range | hourly(Hour of Day)
hourly(Start Hour-End Hour) | `hourly(17)`
`hourly(17-04)` | -| Daily | Update once a day | daily | `daily` | -| Weekly | Update once a week on the specified days (For multiple days, use a bar-separated (|) list) | weekly(Days of Week) | `weekly(sunday)`
weekly(sunday|tuesday) | -| Monthly | Update once a month on the specified day | monthly(Day of Month) | `monthly(1)` | -| Yearly | Update once a year on the specified day | yearly(MM/DD) | `yearly(01/30)` | -| Range | Updates whenever the date is within the range (For multiple ranges, use a bar-separated (|) list) | range(MM/DD-MM/DD) | `range(12/01-12/31)`
range(8/01-8/15|9/01-9/15) | -| Never | Never updates | never | `never` | -| Non Existing | Updates if it doesn't exist | non_existing | `non_existing` | -| All | Requires that all comma separated scheduling options inside its brackets be meet in order to run | all[Options] | `all[weekly(sunday), hourly(17)]` | - -* `daily` is the default when `schedule` is not specified. -* You can run the script multiple times per day but using the `--time` command line argument detailed on the [Run Commands & Environmental Variables Page](../../pmm/essentials/environmental.md#time-to-run). -* You can have multiple scheduling options as a list. -* You can use the `delete_not_scheduled` setting to delete Collections that are skipped due to not being scheduled. - -## Examples - -Below is an example of a library which has been scheduled to run every Sunday. This will schedule everything within the library (in this case Collection Files and Operations) for the same day. - - -```yaml -libraries: - Movies: - schedule: weekly(sunday) - collection_files: - - file: config/Movies.yml - - pmm: imdb - - pmm: studio - - pmm: genre - - pmm: actor - operations: - mass_critic_rating_update: tmdb -``` - -Collection Files, Playlist Files, and Overlay Files can all be individually scheduled, as seen below where different files are scheduled to run on each day of the week: - -**Note: Overlay Files cannot be individually Scheduled, all Overlay Files must be scheduled for the same period.** - -```yaml -libraries: - Movies: - collection_files: - - file: config/Movies.yml - schedule: weekly(monday) - - pmm: imdb - schedule: weekly(tuesday) - - folder: config/Movies/ - schedule: weekly(wednesday) - - pmm: genre - schedule: weekly(thursday) - - pmm: actor - schedule: weekly(friday) - overlay_files: - - schedule: weekly(saturday) - - pmm: audio_codec - - pmm: resolution - - pmm: video_format -playlist_files: - - file: config/Playlists.yml - schedule: weekly(sunday) -``` - -Below is an example of a collection which has been scheduled to run on a Sunday. In this scenario, if you run PMM on a Monday, this collection will be skipped but any other collections which do not have a scheduled defined will be run. - -```yaml -collections: - TMDb Trending Weekly: - tmdb_trending_weekly: 30 - sync_mode: sync - schedule: weekly(sunday) - TMDb Top Rated: - tmdb_top_rated: 30 - sync_mode: sync - schedule: - - monthly(1) - - monthly(15) -``` - -You can also schedule items to be "pinned" to your home screen on a schedule. For example, this collection will be pinned to your home screen for the month of December and on January 1st will no longer be pinned (you must run PMM on 1st January for the removal of the pin to happen) - -```yaml -collections: - Christmas Movies: - imdb_list: https://www.imdb.com/list/ls000096828/ - sync_mode: sync - visible_home: range(12/01-12/31) -``` - -Whilst it isn't possible to schedule individual Operations, you can create additional placeholder library names and point them to the original library using `library_name`. This can be used to achieve individually scheduled operations, as seen below: -```yaml -libraries: - Movies: - collection_files: - - file: config/Movies.yml - Movies Operations (Monday): # Name doesn't matter - library_name: Movies # Must match your library name in Plex - schedule: weekly(monday) - operations: - mass_user_rating_update: imdb - Movies Operations (Wednesday): # Name doesn't matter - library_name: Movies # Must match your library name in Plex - schedule: weekly(wednesday) - operations: - mass_audience_rating_update: tmdb - Movies Operations (Friday): # Name doesn't matter - library_name: Movies # Must match your library name in Plex - schedule: weekly(friday) - operations: - mass_critic_rating_update: trakt -``` diff --git a/docs/builders/dynamic.md b/docs/builders/dynamic.md deleted file mode 100644 index 4bfdb2f5..00000000 --- a/docs/builders/dynamic.md +++ /dev/null @@ -1,105 +0,0 @@ -# Dynamic Collections - -Plex Meta Manager can dynamically create collections based on different criteria, such as -* Collections based on the Collections from TMDb for every item in the library. ([Star Wars](https://www.themoviedb.org/collection/10-star-wars-collection), [Harry Potter](https://www.themoviedb.org/collection/1241), etc...) -* Collections based on each of a Users Trakt Lists -* Collections for the top `X` popular people on TMDb (Bruce Willis, Tom Hanks, etc...) -* Collections for each decade represented in the library (Best of 1990s, Best of 2000s, etc...) -* Collections for each of the moods/styles within a Music library (A Cappella, Pop Rock, etc...) - -The main purpose of dynamic collections is to automate the creation of collections which would otherwise require considerable user input and repetition (such as creating a collection for every genre). - -Each dynamic collection must have a mapping name (just like standard collections), which is also attached to the collection as a label to mark it as having been created by this dynamic collection. - -This example will create a collection for every TMDb Collection associated with items in the library. - -```yaml -dynamic_collections: - TMDb Collections: # This name is the mapping name - type: tmdb_collection - remove_suffix: "Collection" -``` - -## Collection Naming - -By default, the collections generated will be named for the thing being used to create them; things like genres, countries, actors or even Trakt List Names. - -There are many attributes that can change the titles, including `title_format`, `remove_suffix`, `remove_prefix`, `key_name_override`, and `title_override` all detailed below. - -## Dynamic Keys & Key Names - -A `dynamic key` or `key` for short is used to refer to a specific value/result from the dynamic collection criteria that will be used to create the collection. - -A `key_name` is the name that replaces `<>` in `title_format` to create the collection titles for each key. - -An example of some keys and their names that would be generated from a `tmdb_collection` dynamic collection are -* `key`: "10" - * `key_name`: Star Wars Collection -* `key`: "1241" - * `key_name`: Harry Potter Collection - -### Example Key Usage - -Keys can be used for a number of purposes, examples can be found throughout this page. A few examples are shown below: - -* Excluding the "Horror" key from the `Genre` dynamic collection definition - -```yaml -dynamic_collections: - Genres: # mapping name does not matter, just needs to be unique - type: genre - exclude: - - Horror -``` - -* Using the `key_name_override` attribute to change the formatting of "France" to "French" so that a collection can be named "French Cinema" instead of simply "France" - * This particular example also uses the `title_format` attribute to manipulate the naming convention of the collections. - -```yaml -dynamic_collections: - Countries: # mapping name does not matter, just needs to be unique - type: country - title_format: <> Cinema - key_name_override: - France: French -``` - -* Using the `addons` attribute to combine multiple `keys`, i.e. merging "MTV2", "MTV3" and "MTV (UK)" into one "MTV" collection. - * When doing this, individual collections will not be created for the individual MTV collections, instead they will be merged within the "MTV" collection. - -```yaml -dynamic_collections: - networks: - type: network - addons: - MTV: - - MTV2 - - MTV3 - - MTV (UK) -``` - -## Attributes - -| Attribute | Description | Required | -|:--------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------:| -| [`type`](#type--data) | Type of Dynamic Collection to be created. | :fontawesome-solid-circle-check:{ .green } | -| [`data`](#type--data) | Data to determine how dynamic collections with a certain `type` are created. | Depends on `type` | -| [`exclude`](#exclude) | Exclude this list of keys from being created into collections. | :fontawesome-solid-circle-xmark:{ .red } | -| [`addons`](#addons) | Defines how multiple keys can be combined under a parent key. | :fontawesome-solid-circle-xmark:{ .red } | -| [`template`](#template) | Name of the template to use for these dynamic collections. | :fontawesome-solid-circle-xmark:{ .red } | -| [`template_variables`](#template-variables) | Defines how template variables can be defined by key. | :fontawesome-solid-circle-xmark:{ .red } | -| [`other_template`](#other-template) | Name of the template to use for the other collection. | :fontawesome-solid-circle-xmark:{ .red } | -| [`remove_suffix`](#remove-prefixsuffix) | Removes the defined suffixes from the key before it's used in the collection title. | :fontawesome-solid-circle-xmark:{ .red } | -| [`remove_prefix`](#remove-prefixsuffix) | Removes the defined prefixes from the key before it's used in the collection title. | :fontawesome-solid-circle-xmark:{ .red } | -| [`title_format`](#title-format) | This is the format for the collection titles. | :fontawesome-solid-circle-xmark:{ .red } | -| [`key_name_override`](#key-name-override) | Defines how key names can be overridden before they are formatted into collection titles. | :fontawesome-solid-circle-xmark:{ .red } | -| [`title_override`](#title-override) | Defines how collection titles can be overridden ignoring title formatting. | :fontawesome-solid-circle-xmark:{ .red } | -| [`custom_keys`](#custom-keys) | Defines if custom keys are allowed. | :fontawesome-solid-circle-xmark:{ .red } | -| [`test`](#test) | Will add `test: true` to all collections for test runs. | :fontawesome-solid-circle-xmark:{ .red } | -| [`sync`](#sync) | Will remove dynamic collections that are no longer in the creation list. | :fontawesome-solid-circle-xmark:{ .red } | -| [`include`](#include) | Define a list of keys to be made into collections. | :fontawesome-solid-circle-xmark:{ .red } | -| [`other_name`](#other-name) | Used in combination with `include`. When defined, all keys not in `include` or `addons` will be combined into this collection. | :fontawesome-solid-circle-xmark:{ .red } | - -{% - include-markdown "./dynamic_types.md" -%} \ No newline at end of file diff --git a/docs/builders/dynamic_types.md b/docs/builders/dynamic_types.md deleted file mode 100644 index a93eecc8..00000000 --- a/docs/builders/dynamic_types.md +++ /dev/null @@ -1,2243 +0,0 @@ -# Dynamic Collection Types - -Specifies the type of dynamic collection to be created. - -Depending on the `type` of dynamic collection, `data` is used to specify the options that are required to fulfill the requirements of creating the collection. - -| Type Option | Description | Uses
`data` | Movies | Shows | Music | Video | -|:----------------------------------------------|:------------------------------------------------------------------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:------------------------------------------:|:------------------------------------------:|:------------------------------------------:| -| [`tmdb_collection`](#tmdb-collection) | Create a collection for each TMDb Collection associated with an item in the library | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`tmdb_popular_people`](#tmdb-popular-people) | Create a collection for each actor found on [TMDb's Popular People List](https://www.themoviedb.org/person) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`original_language`](#original-language) | Create a collection for each TMDb original language associated with an item in the library | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`origin_country`](#origin-country) | Create a collection for each TMDb origin country associated with an item in the library | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`trakt_user_lists`](#trakt-user-lists) | Create a collection for each list from specific trakt users | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`trakt_liked_lists`](#trakt-liked-lists) | Create a collection for each list the authenticated trakt user likes | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`trakt_people_list`](#trakt-people-list) | Create a collection for each actor found in the trakt list | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`actor`](#actor) | Create a collection for each actor found in the library | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`director`](#director) | Create a collection for each director found in the library | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`writer`](#writer) | Create a collection for each writer found in the library | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`producer`](#producer) | Create a collection for each producer found in the library | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`genre`](#genre) | Create a collection for each genre found in the library | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| [`album_genre`](#album-genre) | Create a collection for each album genre found in the library | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| [`content_rating`](#content-rating) | Create a collection for each content rating found in the library | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | -| [`year`](#year) | Create a collection for each year found in the library | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`episode_year`](#episode-year) | Create a collection for each episode year found in the library | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`decade`](#decade) | Create a collection for each decade found in the library | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`country`](#country) | Create a collection for each country found in the library | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| [`resolution`](#resolution) | Create a collection for each resolution found in the library | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`subtitle_language`](#subtitle-language) | Create a collection for each subtitle language found in the library | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`audio_language`](#audio-language) | Create a collection for each audio language found in the library | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`studio`](#studio) | Create a collection for each studio found in the library | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`edition`](#edition) | Create a collection for each edition found in the library | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`network`](#network) | Create a collection for each network found in the library | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`mood`](#mood) | Create a collection for each artist mood found in the library | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| [`album_mood`](#album-mood) | Create a collection for each album mood found in the library | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| [`track_mood`](#track-mood) | Create a collection for each track mood found in the library | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| [`style`](#style) | Create a collection for each artist style found in the library | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| [`album_style`](#album-style) | Create a collection for each album style found in the library | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| [`number`](#number) | Creates a collection for each number defined | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| [`custom`](#custom) | Creates a collection for each custom `key: key_name` pair defined. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | - -## TMDb Collection - -Create collections based on the TMDb Collections associated with items in the library. - - - - - - - - - - - - - - - - - - - - - - - - - - -
typetmdb_collection
dataNot Used
KeysTMDb Collection ID
Key NamesTMDb Collection Title
Default title_format<<key_name>>
Default Template - -```yaml -default_template: - tmdb_collection_details: <> - minimum_items: 2 -``` - -
- -#### Example: Create collection for every TMDb Collection found in the library. - -```yaml -dynamic_collections: - TMDb Collections: # This name is the mapping name - type: tmdb_collection - remove_suffix: Collection - remove_prefix: The -``` - -## TMDb Popular People - -Create collections based on each actor found on [TMDb's Popular People List](https://www.themoviedb.org/person). - - - - - - - - - - - - - - - - - - - - - - - - - - -
typetmdb_popular_people
dataNumber greater than 0
KeysTMDb Person ID
Key NamesTMDb Person Name
Default title_format<<key_name>>
Default Template - -```yaml -default_template: - tmdb_person: <> - plex_search: - all: - actor: tmdb -``` - -
- -#### Example: Create collection for the top 10 popular people - -```yaml -dynamic_collections: - TMDb Popular People: # This name is the mapping name - type: tmdb_popular_people - data: 10 -``` - -## Original Language - -Create collections based on the TMDb original language associated with items in the library. - - - - - - - - - - - - - - - - - - - - - - - - - - -
typeoriginal_language
dataNot Used
KeysISO 639-1 Code
Key NamesISO Language Name
Default title_format<<key_name>> <<library_type>>s
Default Template - -```yaml -default_template: - plex_all: true - filters: - original_language: <> -``` - -
- -#### Example: Create collection for every TMDb Original Language found in the library. - -```yaml -dynamic_collections: - TMDb Languages: # This name is the mapping name - type: original_language -``` - -## Origin Country - -Create collections based on the TMDb origin country associated with items in the library. - - - - - - - - - - - - - - - - - - - - - - - - - - -
typeorigin_country
dataNot Used
KeysISO 3166-1 alpha-2 country code
Key NamesISO Country Name
Default title_format<<key_name>> <<library_type>>s
Default Template - -```yaml -default_template: - plex_all: true - filters: - origin_country: <> -``` - -
- -#### Example: Create collection for every TMDb Origin Country found in the library. - -```yaml -dynamic_collections: - TMDb Countries: # This name is the mapping name - type: origin_country -``` - -## Trakt User Lists - -Create collections for each of the Trakt lists for the specified users. Use `me` to reference the authenticated user. - -* Requires [Trakt Authentication](../config/trakt.md) to be configured within the Configuration File - - - - - - - - - - - - - - - - - - - - - - - - - - -
typetrakt_user_lists
dataList of Trakt Users
KeysTrakt List URL
Key NamesTrakt List Title
Default title_format<<key_name>>
Default Template - -```yaml -default_template: - trakt_list_details: <> -``` - -
- -#### Example: Create collections for each of the lists that the users have created - -```yaml -dynamic_collections: - Trakt User Lists: # This name is the mapping name - type: trakt_user_lists - data: - - me - - yozoraxcii -``` - -## Trakt Liked Lists - -Create collections for each of the Trakt lists that the authenticated user has liked. - -* Requires [Trakt Authentication](../config/trakt.md) to be configured within the Configuration File - - - - - - - - - - - - - - - - - - - - - - - - - - -
typetrakt_liked_lists
dataNot Used
KeysTrakt List URL
Key NamesTrakt List Title
Default title_format<<key_name>>
Default Template - -```yaml -default_template: - trakt_list_details: <> -``` - -
- -#### Example: Create collections for each of the lists that the user has liked within Trakt - -```yaml -dynamic_collections: - Trakt Liked Lists: # This name is the mapping name - type: trakt_liked_lists -``` - -## Trakt People List - -Create collections for each of the people found within Trakt lists that the user specifies. - -* Requires [Trakt Authentication](../config/trakt.md) to be configured within the Configuration File - - - - - - - - - - - - - - - - - - - - - - - - - - -
typetrakt_people_list
dataList of Trakt URLs
KeysTMDb Person ID
Key NamesTMDb Person Name
Default title_format<<key_name>>
Default Template - -```yaml -default_template: - tmdb_person: <> - plex_search: - all: - actor: tmdb -``` - -
- -#### Example: Create a collection for each of the people on the trakt list -```yaml -dynamic_collections: - Trakt People Lists: - type: trakt_people_list - data: - - https://trakt.tv/users/ash9001/lists/all-time-top-actors -``` - -## Actor - -Create a collection for each actor found in the library. - - - - - - - - - - - - - - - - - - - - - - - - - - -
typeactor
datas - - - - - - - - - - - - - - - - - - - - -
AttributeDescription & Values
depthValues: Number greater than 0Default: 3
minimumValues: Number greater than 0Default: 3
limitValues: Number greater than 0Default: None
-
KeysPerson Name
Key NamesPerson Name
Default title_format<<key_name>>
Default Template - -```yaml -default_template: - plex_search: - any: - actor: <> -``` - -
- -* `depth` determines how many top billed actor per item they are in. (i.e. if they play a cameo role, this is unlikely to be counted) -* `minimum` determines the minimum number of times the actor must appear within `depth` for the collection to be created. -* `limit` determines the number of actor collection to max out at. (i.e. if to make collections for the top 25 actors) - -#### Example: - -* Create a collection for the top 25 actors who appear in the top 5 billing credits of movies - -```yaml -dynamic_collections: - Top Actors: # mapping name does not matter just needs to be unique - type: actor - data: - depth: 5 - limit: 25 -``` - -#### Example: - -* Create a collection for actors who appear in the top 5 billing credits of movies -* Only create the collection if they are in the top 5 billing credits of at least 20 movies - -```yaml -dynamic_collections: - Actors: # mapping name does not matter just needs to be unique - type: actor - data: - depth: 5 - minimum: 20 -``` - -## Director - -Create a collection for each director found in the library. - - - - - - - - - - - - - - - - - - - - - - - - - - -
typedirector
datas - - - - - - - - - - - - - - - - - - - - -
AttributeDescription & Values
depthValues: Number greater than 0Default: 3
minimumValues: Number greater than 0Default: 3
limitValues: Number greater than 0Default: None
-
KeysPerson Name
Key NamesPerson Name
Default title_format<<key_name>>
Default Template - -```yaml -default_template: - plex_search: - any: - director: <> -``` - -
- -* `depth` determines how many directors are looked at per item. -* `minimum` determines the minimum number of times the director must appear within `depth` for the collection to be created. -* `limit` determines the number of director collection to max out at. (i.e. if to make collections for the top 25 directors) - -#### Example: - -* Create a collection for the top 5 directors who appear in the top director credit of movies - -```yaml -dynamic_collections: - Top Directors: # mapping name does not matter just needs to be unique - type: director - data: - depth: 1 - limit: 5 -``` - -#### Example: - -* Create a collection for directors who appear in the top director credits of movies -* Only create the collection if they are in the top director credits of at least 10 movies - -```yaml -dynamic_collections: - Directors: # mapping name does not matter just needs to be unique - type: director - data: - depth: 1 - minimum: 10 -``` - -## Writer - -Create a collection for each writer found in the library. - - - - - - - - - - - - - - - - - - - - - - - - - - -
typewriter
datas - - - - - - - - - - - - - - - - - - - - -
AttributeDescription & Values
depthValues: Number greater than 0Default: 3
minimumValues: Number greater than 0Default: 3
limitValues: Number greater than 0Default: None
-
KeysPerson Name
Key NamesPerson Name
Default title_format<<key_name>>
Default Template - -```yaml -default_template: - plex_search: - any: - writer: <> -``` - -
- -* `depth` determines how many writers are looked at per item. -* `minimum` determines the minimum number of times the writer must appear within `depth` for the collection to be created. -* `limit` determines the number of writer collection to max out at. (i.e. if to make collections for the top 25 writers) - -#### Example: - -* Create a collection for the top 5 writers who appear in the top writer credit of movies - -```yaml -dynamic_collections: - Top Writers: # mapping name does not matter just needs to be unique - type: writer - data: - depth: 1 - limit: 5 -``` - -#### Example: - -* Create a collection for writers who appear in the top writer credits of movies -* Only create the collection if they are in the top writer credits of at least 10 movies - -```yaml -dynamic_collections: - Writers: # mapping name does not matter just needs to be unique - type: writer - data: - depth: 1 - minimum: 10 -``` - -## Producer - -Create a collection for each producer found in the library. - - - - - - - - - - - - - - - - - - - - - - - - - - -
typeproducer
datas - - - - - - - - - - - - - - - - - - - - -
AttributeDescription & Values
depthValues: Number greater than 0Default: 3
minimumValues: Number greater than 0Default: 3
limitValues: Number greater than 0Default: None
-
KeysPerson Name
Key NamesPerson Name
Default title_format<<key_name>>
Default Template - -```yaml -default_template: - plex_search: - all: - producer: <> -``` - -
- -* `depth` determines how many producers are looked at per item. -* `minimum` determines the minimum number of times the producer must appear within `depth` for the collection to be created. -* `limit` determines the number of producer collection to max out at. (i.e. if to make collections for the top 25 producers) - -#### Example: - -* Create a collection for the top 5 producers who appear in the top producer credit of movies - -```yaml -dynamic_collections: - Top Producers: # mapping name does not matter just needs to be unique - type: producer - data: - depth: 1 - limit: 5 -``` - -#### Example: - -* Create a collection for producers who appear in the top producer credits of movies -* Only create the collection if they are in the top producer credits of at least 10 movies - -```yaml -dynamic_collections: - Producers: # mapping name does not matter just needs to be unique - type: producers - data: - depth: 1 - minimum: 10 -``` - -## Genre - -Create a collection for each genre found in the library. - - - - - - - - - - - - - - - - - - - - - - - - - - -
typegenre
dataNot Used
KeysGenre
Key NamesGenre
Default title_formatTop <<key_name>> <<library_type>>s
Default Template - -```yaml -default_template: - smart_filter: - limit: 50 - sort_by: critic_rating.desc - any: - genre: <> -``` - -
- -#### Example: - -* Create dynamic collections based on each genre found in the library (TV and Movies) -* Amend the template to increase the limit from 50 to 100 -* Exclude the "Talk Show" genre -* Name the collection "Top [Genre] Movies" or "Top [Genre] Shows" - -```yaml -templates: - genre collection: - smart_filter: - limit: 100 - sort_by: critic_rating.desc - all: - genre: <> -dynamic_collections: - Genres: # mapping name does not matter just needs to be unique - type: genre - exclude: - - Talk Show - title_format: Top <> <>s - template: genre collection -``` - -## Album Genre - -Create a collection for each album genre found in the library. - - - - - - - - - - - - - - - - - - - - - - - - - - -
typealbum_genre
dataNot Used
KeysGenre
Key NamesGenre
Default title_formatTop <<key_name>> Albums
Default Template - -```yaml -default_template: - smart_filter: - limit: 50 - sort_by: plays.desc - any: - album_genre: <> -``` - -
- -#### Example: - -* Create dynamic collections based on each Album genre found in the library -* Amend the template to increase the limit from 10 to 20 -* Exclude the "Pop" genre -* Name the collection "Top 20 [Genre] Albums" - -```yaml -templates: - genre collection: - smart_filter: - limit: 100 - sort_by: plays.desc - all: - album_genre: <> -dynamic_collections: - Genres: # mapping name does not matter just needs to be unique - type: album_genre - exclude: - - Pop - title_format: Top 20 <> <>s - template: genre collection -``` - -## Content Rating - -Create a collection for each content rating found in the library. - - - - - - - - - - - - - - - - - - - - - - - - - - -
typecontent_rating
dataNot Used
KeysContent Rating
Key NamesContent Rating
Default title_formatTop <<key_name>> <<library_type>>s
Default Template - -```yaml -default_template: - smart_filter: - limit: 50 - sort_by: critic_rating.desc - any: - content_rating: <> -``` - -
- -#### Example: - -* Create dynamic collections based on each content rating found in the library (TV and Movies) -* Amend the template to increase the limit from 50 to 100 - -```yaml -templates: - content rating collection: - smart_filter: - limit: 100 - sort_by: critic_rating.desc - all: - content_rating: <> -dynamic_collections: - Content Ratings: # mapping name does not matter just needs to be unique - type: content_rating - template: content rating collection -``` - -## Year - -Create a collection for each year found in the library. - - - - - - - - - - - - - - - - - - - - - - - - - - -
typeyear
dataNot Used
KeysYear
Key NamesYear
Default title_formatBest <<library_type>>s of <<key_name>>
Default Template - -```yaml -default_template: - smart_filter: - limit: 50 - sort_by: critic_rating.desc - any: - year: <> -``` - -
- -#### Example - -* Create dynamic collections based on each year found in the library (TV and Movies) -* Use the `include` attribute to only show collections for years "2020", "2021" and "2022" -* Name the collection "Best of [Year]" - -```yaml -dynamic_collections: - Years: # mapping name does not matter just needs to be unique - type: year - include: - - 2020 - - 2021 - - 2022 - title_format: Best of <> -``` - -## Episode Year - -Create a collection for each episode year found in the library. - - - - - - - - - - - - - - - - - - - - - - - - - - -
typeepisode_year
dataNot Used
KeysEpisode Year
Key NamesYear
Default title_formatBest <<library_type>>s of <<key_name>>
Default Template - -```yaml -default_template: - smart_filter: - limit: 50 - sort_by: critic_rating.desc - any: - episode_year: <> -``` - -
- -#### Example - -* Create dynamic collections based on each year found in the library (TV and Movies) -* Use the `include` attribute to only show collections for years "2020", "2021" and "2022" -* Name the collection "Best of [Year]" - -```yaml -dynamic_collections: - Years: # mapping name does not matter just needs to be unique - type: episode_year - include: - - 2020 - - 2021 - - 2022 - title_format: Best of <> -``` - -## Decade - -Create a collection for each decade found in the library - - - - - - - - - - - - - - - - - - - - - - - - - - -
typedecade
dataNot Used
KeysDecade
Key NamesDecade
Default title_formatBest <<library_type>>s of <<key_name>>
Default Template - -```yaml -default_template: - smart_filter: - limit: 50 - sort_by: critic_rating.desc - any: - decade: <> -``` - -
- -#### Example: - -* Create a collection for each decade found in the library (TV and Movies) -* Name the collection "Top [Decade] Movies" -* Rename the `2020` collection name to "Top 2020 Movies (so far)" - -```yaml -dynamic_collections: - Decades: # mapping name does not matter just needs to be unique - type: decade - title_format: Top <> <>s - title_override: - 2020: Top 2020 Movies (so far) -``` - -## Country - -Create a collection for each country found in the library - - - - - - - - - - - - - - - - - - - - - - - - - - -
typecountry
dataNot Used
KeysCountry
Key NamesCountry
Default title_formatTop <<key_name>> <<library_type>>s
Default Template - -```yaml -default_template: - smart_filter: - limit: 50 - sort_by: critic_rating.desc - any: - country: <> -``` - -
- -#### Example: - -* Create a collection for the top movies from each country found in the library -* Name the collection "Top [Country] Cinema" -* The `key_name_override` attribute is used here in combination with the `title_format` to change the collection name from "France" which would be the default title, to "Top French Cinema" - -```yaml -dynamic_collections: - Countries: # mapping name does not matter just needs to be unique - type: country - title_format: Top <> Cinema - key_name_override: - France: French - Germany: German - India: Indian -``` - -## Resolution - -Create a collection for each resolution found in the library - - - - - - - - - - - - - - - - - - - - - - - - - - -
typeresolution
dataNot Used
KeysResolution
Key NamesResolution
Default title_format<<key_name>> <<library_type>>s
Default Template - -```yaml -default_template: - smart_filter: - limit: 50 - sort_by: title.asc - any: - resolution: <> -``` - -
- -#### Example: - -* Create a collection for each resolution found in the library -* Name the collection "[Resolution] Movies" -* Combine 480p, 576p and SD into a collection called "SD Movies" -```yaml -dynamic_collections: - Resolutions: # mapping name does not matter just needs to be unique - type: resolution - addons: - 480p: - - 576p - - SD - title_override: - 480p: SD Movies -``` - -## Subtitle Language - -Create a collection for each subtitle language found in the library - - - - - - - - - - - - - - - - - - - - - - - - - - -
typesubtitle_language
dataNot Used
KeysISO 639-1 Code
Key NamesSubtitle Language Name
Default title_formatTop <<key_name>> <<library_type>>s
Default Template - -```yaml -default_template: - smart_filter: - limit: 50 - sort_by: critic_rating.asc - any: - subtitle_language: <> -``` - -
- -#### Example: - -* Create a collection for each subtitle language found in the library - -```yaml -dynamic_collections: - Subtitle Languages: # mapping name does not matter just needs to be unique - type: subtitle_language -``` - -## Audio Language - -Create a collection for each audio language found in the library - - - - - - - - - - - - - - - - - - - - - - - - - - -
typeaudio_language
dataNot Used
KeysISO 639-1 Code
Key NamesAudio Language Name
Default title_formatTop <<key_name>> <<library_type>>s
Default Template - -```yaml -default_template: - smart_filter: - limit: 50 - sort_by: critic_rating.asc - any: - audio_language: <> -``` - -
- -#### Example: - -* Create a collection for each audio language found in the library - -```yaml -dynamic_collections: - Audio Languages: # mapping name does not matter just needs to be unique - type: audio_language -``` - -## Studio - -Create a collection for each studio found in the library. - - - - - - - - - - - - - - - - - - - - - - - - - - -
typestudio
dataNot Used
KeysStudio
Key NamesStudio
Default title_formatTop <<key_name>> <<library_type>>s
Default Template - -```yaml -default_template: - smart_filter: - limit: 50 - sort_by: critic_rating.desc - any: - studio: <> -``` - -
- - -#### Example: - -* Create a collection for each studio found in a Movies library - -```yaml -templates: - studio collection: - smart_filter: - sort_by: critic_rating.desc - all: - studio: <> -dynamic_collections: - Studios: # mapping name does not matter just needs to be unique - type: studio - title_format: <> - template: studio collection -``` - -## Edition - -Create a collection for each edition found in the library. - - - - - - - - - - - - - - - - - - - - - - - - - - -
typeedition
dataNot Used
KeysEditions
Key NamesEdition
Default title_formatTop <<key_name>> <<library_type>>s
Default Template - -```yaml -default_template: - smart_filter: - limit: 50 - sort_by: critic_rating.desc - any: - edition: <> -``` - -
- - -#### Example: - -* Create a collection for each edition found in a Movies library - -```yaml -templates: - edition collection: - smart_filter: - sort_by: critic_rating.desc - all: - edition: <> -dynamic_collections: - Editions: # mapping name does not matter just needs to be unique - type: edition - title_format: <> - template: edition collection -``` - -## Network - -Create a collection for each network found in the library. - - - - - - - - - - - - - - - - - - - - - - - - - - -
typenetwork
dataNot Used
KeysNetwork
Key NamesNetwork
Default title_formatTop <<key_name>> <<library_type>>s
Default Template - -```yaml -default_template: - smart_filter: - limit: 50 - sort_by: critic_rating.desc - any: - network: <> -``` - -
- - -#### Example: - -* Create a collection for each network found in a TV Shows library - -```yaml -templates: - network collection: - smart_filter: - sort_by: critic_rating.desc - all: - network: <> -dynamic_collections: - Networks: # mapping name does not matter just needs to be unique - type: network - title_format: <> - template: network collection -``` - -## Mood - -Create a collection for each artist mood found in the library. - - - - - - - - - - - - - - - - - - - - - - - - - - -
typemood
dataNot Used
KeysMood
Key NamesMood
Default title_formatMost Played <<value>> <<library_type>>s
Default Template - -```yaml -default_template: - smart_filter: - limit: 10 - sort_by: plays.desc - any: - artist_mood: <> -``` - -
- -#### Example: - -* Create a collection for the top 20 artists for each mood found in the Music library -* Amend the template to increase the limit from 10 to 20 -* Name the collection "Top 20 [Mood] Artists" - -```yaml -templates: - mood collection: - smart_filter: - limit: 20 - sort_by: plays.desc - all: - artist_mood: <> -dynamic_collections: - Moods: # mapping name does not matter just needs to be unique - type: mood - title_format: Top 20 <> Artists - template: mood collection -``` - -## Album Mood - -Create a collection for each album mood found in the library. - - - - - - - - - - - - - - - - - - - - - - - - - - -
typealbum_mood
dataNot Used
KeysMood
Key NamesMood
Default title_formatMost Played <<value>> Albums
Default Template - -```yaml -default_template: - smart_filter: - limit: 10 - sort_by: plays.desc - any: - album_mood: <> -``` - -
- -#### Example: - -* Create a collection for the top 20 albums for each mood found in the Music library -* Amend the template to increase the limit from 10 to 20 -* Name the collection "Top 20 [Mood] Albums" - -```yaml -templates: - mood collection: - smart_filter: - limit: 20 - sort_by: plays.desc - all: - album_mood: <> -dynamic_collections: - Moods: # mapping name does not matter just needs to be unique - type: album_mood - title_format: Top 20 <> Albums - template: mood collection -``` - -## Track Mood - -Create a collection for each track mood found in the library. - - - - - - - - - - - - - - - - - - - - - - - - - - -
typetrack_mood
dataNot Used
KeysMood
Key NamesMood
Default title_formatMost Played <<value>> Tracks
Default Template - -```yaml -default_template: - smart_filter: - limit: 50 - sort_by: plays.desc - any: - track_mood: <> -``` - -
- -#### Example: - -* Create a collection for the top 100 tracks for each mood found in the Music library -* Amend the template to increase the limit from 50 to 100 -* Name the collection "Top 100 [Mood] Tracks" - -```yaml -templates: - mood collection: - smart_filter: - limit: 100 - sort_by: plays.desc - all: - track_mood: <> -dynamic_collections: - Moods: # mapping name does not matter just needs to be unique - type: track_mood - title_format: Top 100 <> Tracks - template: mood collection -``` - -## Style - -Create a collection for each artist style found in the library. - - - - - - - - - - - - - - - - - - - - - - - - - - -
typestyle
dataNot Used
KeysStyle
Key NamesStyle
Default title_formatMost Played <<key_name>> <<library_type>>s
Default Template - -```yaml -default_template: - smart_filter: - limit: 10 - sort_by: plays.desc - any: - artist_style: <> -``` - -
- -#### Example: - -* Create a collection for the top 10 artists for each style found in the Music library -* Name the collection "Top [Style] Artists" - -```yaml -templates: - style collection: - smart_filter: - limit: 10 - sort_by: plays.desc - all: - artist_style: <> -dynamic_collections: - Styles: # mapping name does not matter just needs to be unique - type: style - title_format: Top <> <> - template: style collection -``` - -## Album Style - -Create a collection for each album style found in the library. - - - - - - - - - - - - - - - - - - - - - - - - - - -
typealbum_style
dataNot Used
KeysStyle
Key NamesStyle
Default title_formatMost Played <<key_name>> Albums
Default Template - -```yaml -default_template: - smart_filter: - limit: 10 - sort_by: plays.desc - any: - album_style: <> -``` - -
- -#### Example: - -* Create a collection for the top 10 albums for each style found in the Music library -* Name the collection "Top [Style] Albums" - -```yaml -templates: - style collection: - builder_level: album - smart_filter: - limit: 10 - sort_by: plays.desc - all: - album_style: <> -dynamic_collections: - Styles: # mapping name does not matter just needs to be unique - type: album_style - title_format: Top <> Albums - template: style collection -``` - -## Number - -Creates a collection for each number defined. - - - - - - - - - - - - - - - - - - - - - - - - - - -
typenumber
datas - - - - - - - - - - - - - - - - - - - - -
AttributeDescription & Values
startingValues: Number greater than 0Default: 0
endingValues: Number greater than 1Default: 1
incrementValues: Number greater than 0Default: 1
-
    -
  • starting and ending can also have the value current_year
  • -
  • You can also use a value relative to the current_year by doing current_year-5
  • -
-
KeysNumber
Key NamesNumber
Default title_format<<key_name>>
Default Template**None**
- - -#### Example: - -* Create a collection for the Oscar Winner by Year for the last 5 years -* Name the collection "Oscars Winners [Number]" - -```yaml -templates: - Oscars: - summary: Academy Awards (Oscars) Winners for <> - imdb_list: https://www.imdb.com/search/title/?release_date=<>-01-01,<>-12-31&groups=oscar_winner&sort=moviemeter,asc - sync_mode: sync - collection_order: custom -dynamic_collections: - Oscars Winners Awards: - type: number - sync: true - data: - starting: current_year-5 - ending: current_year - title_format: Oscars Winners <> - template: - - Oscars -``` - -## Custom - -Creates a collection for each custom `key: key_name` pair defined. - - - - - - - - - - - - - - - - - - - - - - - - - - -
typecustom
datasStrings to iterate
Keyskey
Key Nameskey_name
Default title_format<<key_name>>
Default TemplateNone
- -#### Example: - -* Create a collection for the various Streaming Services -* Name the collection "[Key Name] Movies" - -```yaml - - -templates: - streaming: - cache_builders: 1 - smart_label: release.desc - sync_mode: sync - mdblist_list: https://mdblist.com/lists/plexmetamanager/<>-movies - url_poster: https://raw.githubusercontent.com/meisnate12/Plex-Meta-Manager-Images/master/streaming/<>.jpg - -dynamic_collections: - Streaming: - type: custom - data: - all-4: All 4 - appletv: Apple TV+ - bet: BET+ - britbox: BritBox - disney: Disney+ - max: Max - hulu: Hulu - netflix: Netflix - now: NOW - paramount: Paramount+ - peacock: Peacock - amazon-prime-video: Prime Video - title_format: <> Movies - template: - - streaming - - shared -``` - -## Exclude - -Exclude this list of `keys` from being created into collections. - -For example when making a `genre` dynamic collection definition you can exclude "Horror" from having a collection created from the key. - -```yaml -dynamic_collections: - Genres: # mapping name does not matter, just needs to be unique - type: genre - exclude: - - Horror -``` - -## Addons - -Defines how multiple `keys` can be combined under a parent key. - -For example, the `addons` attribute can be used to combine multiple `keys`, i.e. merging "MTV2", "MTV3" and "MTV (UK)" into the "MTV" collection. - -```yaml -dynamic_collections: - networks: - type: network - addons: - MTV: - - MTV2 - - MTV3 - - MTV (UK) -``` - -You can also define custom keys under addons if the main key doesn't exist as a key it will be considered a custom key combining all keys into one key. - -## Template - -Name of the template to use for these dynamic collections. Each `type` has its own default template, but if you want to define and use your own template you can. - -Each template is passed a few template variables you can use. -* `value`: The list of keys and addons -* `key`: The dynamic key -* `key_name`: The key after `key_name_override`, `remove_prefix`, or `remove_suffix` are run on it. - -For example, the template below removes the limit on the `smart_filter` so it shows all items in each network - -```yaml -templates: - network collection: - smart_filter: - sort_by: critic_rating.desc - all: - network: <> -dynamic_collections: - Networks: # mapping name does not matter just needs to be unique - type: network - title_format: <> - template: network collection -``` - -## Template Variables - -Defines how template variables can be defined by key. - -For example, when using `type: tmdb_collection` and you want to define a poster url for some collections - -```yaml -templates: - my_template: - optional: - - my_collection_poster - tmdb_collection_details: <> - collection_order: release - url_poster: <> -dynamic_collections: - TMDb Collections: # This name is the mapping name - type: tmdb_collection - remove_suffix: "Collection" - template: my_template - template_variables: - my_collection_poster: - 119: https://www.themoviedb.org/t/p/original/oENY593nKRVL2PnxXsMtlh8izb4.jpg - 531241: https://www.themoviedb.org/t/p/original/nogV4th2P5QWYvQIMiWHj4CFLU9.jpg -``` - -## Other Template - -Name of the template to use for the other collection. Will use the same template as the rest of the dynamic collections unless specified. - -Each template is passed a few template variables you can use. -* `value`: The list of keys and addons -* `key`: The dynamic key -* `key_name`: The key after `key_name_override`, `remove_prefix`, or `remove_suffix` are run on it. -* `included_keys`: The list of included keys -* `used_keys`: The list of all keys used (included_keys and their addon keys) - -## Remove Prefix/Suffix - -Removes the defined prefixes/suffixes from the key before it’s used in the collection title. - -For example, when using `type: tmdb_collection` you may not want every collection title to end with `Collection` - -```yaml -dynamic_collections: - TMDb Collections: # This name is the mapping name - type: tmdb_collection - remove_suffix: "Collection" -``` - -## Title Format - -This is the format for the collection titles. - -there are two special tags you can include in the `title_format` -* `<>` is required and is what will be replaced by the dynamic key name. -* `<>` will be replaced with either Movie, Show, or Artist depending on your library type. - -Here's an example using `title_format`. - -```yaml -dynamic_collections: - Genres: # mapping name does not matter just needs to be unique - type: genre - title_format: Top 50 <> <>s -``` - -## Key Name Override - -Defines how key names can be overridden before they are formatted into collection titles. - -This example uses the `key_name_override` attribute to change the formatting of "France" to "French" so that a collection can be named "French Cinema" instead of simply "France" - * This particular example also uses the `title_format` attribute to manipulate the naming convention of the collections. - -```yaml -dynamic_collections: - Countries: # mapping name does not matter, just needs to be unique - type: country - title_format: <> Cinema - key_name_override: - France: French -``` - -## Title Override - -Defines how collection titles can be overridden ignoring title formatting. - -Here's an example using `title_override` that will override the TMDb Star Wars collection which has an TMDb ID of `10` with `Star Wars Universe. - -```yaml -dynamic_collections: - TMDb Collections: # mapping name does not matter, just needs to be unique - type: tmdb_collection - remove_suffix: "Collection" - title_override: - 10: Star Wars Universe -``` - -## Custom Keys - -Defines if custom keys are allowed. Can be `true` or `false`. Defaults to `true`. - -Here's an example using `custom_keys`. - -```yaml -dynamic_collections: - TMDb Collections: # mapping name does not matter, just needs to be unique - type: tmdb_collection - remove_suffix: "Collection" - custom_keys: false -``` - -## Test - -Will add `test: true` to all collections for test runs. - -Here's an example using `test`. - -```yaml -dynamic_collections: - Genres: # mapping name does not matter just needs to be unique - type: genre - test: true -``` - -## Sync - -Will remove dynamic collections that are no longer in the creation list. - -The mapping name is added as a label to any collection created using dynamic and because of this when `sync` is true all collections with that label not found in this run will be deleted. - -Here's an example using `sync`. - -```yaml -dynamic_collections: - Trakt Liked Lists: # mapping name does not matter just needs to be unique - type: trakt_liked_lists - sync: true -``` - -## Include - -Define a list of keys to be made into collections. - -This cannot be used with `exclude`. - -Here's an example using `include`. - -```yaml -dynamic_collections: - Genres: # mapping name does not matter just needs to be unique - type: genre - include: - - Action - - Adventure - - Animation - - Comedy - - Family - - Fantasy - - Horror - - Romance - - Science Fiction - - War -``` - -## Other Name - -Used in combination with `include`. When defined, all keys not in `include` or `addons` will be combined into this collection. - -This is the main reason to use `include`. It allows a catch-all collection for everything not defined in the config file. - -Here's an example using `other_name`. - -```yaml -dynamic_collections: - Genres: # mapping name does not matter just needs to be unique - type: genre - other_name: Top Other Movies - include: - - Action - - Adventure - - Animation - - Comedy - - Family - - Fantasy - - Horror - - Romance - - Science Fiction - - War -``` diff --git a/docs/builders/files.md b/docs/builders/files.md deleted file mode 100644 index 75e42136..00000000 --- a/docs/builders/files.md +++ /dev/null @@ -1,3 +0,0 @@ -{% - include-markdown "../config/files_paths.md" -%} \ No newline at end of file diff --git a/docs/builders/overview.md b/docs/builders/overview.md deleted file mode 100644 index 2f3124a1..00000000 --- a/docs/builders/overview.md +++ /dev/null @@ -1,24 +0,0 @@ -# Builders - -Builders use third-party services to source items to be added to the collection. Multiple builders can be used in the same collection from a variety of sources listed below. - -| Name | Description | Requires Config | -|:--------------------------------|:----------------------------------------------------------------------------------------------|:------------------------------------------:| -| [Plex](plex.md) | Grabs items based on the metadata inside your Plex Server. | :fontawesome-solid-circle-check:{ .green } | -| [Smart](smart.md) | Creates Smart Collections based on the metadata inside your Plex Server. (Collections Only) | :fontawesome-solid-circle-check:{ .green } | -| [TMDb](tmdb.md) | Grabs items based on metadata and lists on [TheMovieDb.org](https://www.themoviedb.org/). | :fontawesome-solid-circle-check:{ .green } | -| [TVDb](tvdb.md) | Grabs items based on metadata and lists on [TheTVDb.com](https://www.thetvdb.com/). | :fontawesome-solid-circle-xmark:{ .red } | -| [IMDb](imdb.md) | Grabs items based on metadata and lists on [IMDb.com](https://www.imdb.com/). | :fontawesome-solid-circle-xmark:{ .red } | -| [Trakt](trakt.md) | Grabs items based on metadata and lists on [Trakt.tv](https://trakt.tv/). | :fontawesome-solid-circle-check:{ .green } | -| [Tautulli](tautulli.md) | Grabs items based on metadata and lists in your [Tautulli](https://tautulli.com/). | :fontawesome-solid-circle-check:{ .green } | -| [Radarr](radarr.md) | Grabs items based on metadata and lists in your [Radarr](https://radarr.video/) . | :fontawesome-solid-circle-check:{ .green } | -| [Sonarr](sonarr.md) | Grabs items based on metadata and lists in your [Sonarr](https://sonarr.tv/). | :fontawesome-solid-circle-check:{ .green } | -| [MdbList](mdblist.md) | Grabs items based on metadata and lists on [MdbList.com](https://mdblist.com/). | :fontawesome-solid-circle-xmark:{ .red } | -| [Letterboxd](letterboxd.md) | Grabs items based on metadata and lists on [Letterboxd.com](https://letterboxd.com/). | :fontawesome-solid-circle-xmark:{ .red } | -| [ICheckMovies](icheckmovies.md) | Grabs items based on metadata and lists on [ICheckMovies.com](https://www.icheckmovies.com/). | :fontawesome-solid-circle-xmark:{ .red } | -| [FlixPatrol](flixpatrol.md) | Grabs items based on metadata and lists on [FlixPatrol.com](https://flixpatrol.com/). | :fontawesome-solid-circle-xmark:{ .red } | -| [Reciperr](reciperr.md) | Grabs items based on metadata and lists on [reciperr.com](https://reciperr.com/). | :fontawesome-solid-circle-xmark:{ .red } | -| [StevenLu](stevenlu.md) | Grabs items based on metadata and lists on [StevenLu.com](https://movies.stevenlu.com/). | :fontawesome-solid-circle-xmark:{ .red } | -| [AniDB](anidb.md) | Grabs items based on metadata and lists on [AniDB.net](https://anidb.net/). | :fontawesome-solid-circle-xmark:{ .red } | -| [AniList](anilist.md) | Grabs items based on metadata and lists on [AniList.co](https://anilist.co/). | :fontawesome-solid-circle-xmark:{ .red } | -| [MyAnimeList](myanimelist.md) | Grabs items based on metadata and lists on [MyAnimeList.net](https://myanimelist.net/). | :fontawesome-solid-circle-check:{ .green } | \ No newline at end of file diff --git a/docs/builders/overview/plex.md b/docs/builders/overview/plex.md deleted file mode 100644 index 7cf8bd70..00000000 --- a/docs/builders/overview/plex.md +++ /dev/null @@ -1,8 +0,0 @@ -# Plex Builders - -The below builders are available based on metadata inside your Plex Server. - -| Name | Description | Requires Config | -|:-------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------:| -| [Dumb Builders](../plex.md) | Grabs items based on the metadata inside your Plex Server. Results are static and require PMM to re-run to update. | :fontawesome-solid-circle-check:{ .green } | -| [Smart Builders](../smart.md) | Creates Smart Collections based on the metadata inside your Plex Server. Results are dynamic and will update as your library updates without the need to re-run PMM (Collections Only) | :fontawesome-solid-circle-check:{ .green } | diff --git a/docs/builders/overview/thirdparty.md b/docs/builders/overview/thirdparty.md deleted file mode 100644 index 308a10a7..00000000 --- a/docs/builders/overview/thirdparty.md +++ /dev/null @@ -1,22 +0,0 @@ -# Third-Party Builders - -The below builders are available based on third-party services, multiple builders can be combined in one collection. - -| Name | Description | Requires Config | -|:--------------------------------------------|:----------------------------------------------------------------------------------------------|:------------------------------------------:| -| [TMDb](../tmdb.md) | Grabs items based on metadata and lists on [TheMovieDb.org](https://www.themoviedb.org/). | :fontawesome-solid-circle-check:{ .green } | -| [TVDb](../tvdb.md) | Grabs items based on metadata and lists on [TheTVDb.com](https://www.thetvdb.com/). | :fontawesome-solid-circle-xmark:{ .red } | -| [IMDb](../imdb.md) | Grabs items based on metadata and lists on [IMDb.com](https://www.imdb.com/). | :fontawesome-solid-circle-xmark:{ .red } | -| [Trakt](../trakt.md) | Grabs items based on metadata and lists on [Trakt.tv](https://trakt.tv/). | :fontawesome-solid-circle-check:{ .green } | -| [Tautulli](../tautulli.md) | Grabs items based on metadata and lists in your [Tautulli](https://tautulli.com/). | :fontawesome-solid-circle-check:{ .green } | -| [Radarr](../radarr.md) | Grabs items based on metadata and lists in your [Radarr](https://radarr.video/) . | :fontawesome-solid-circle-check:{ .green } | -| [Sonarr](../sonarr.md) | Grabs items based on metadata and lists in your [Sonarr](https://sonarr.tv/). | :fontawesome-solid-circle-check:{ .green } | -| [MdbList](../mdblist.md) | Grabs items based on metadata and lists on [MdbList.com](https://mdblist.com/). | :fontawesome-solid-circle-xmark:{ .red } | -| [Letterboxd](../letterboxd.md) | Grabs items based on metadata and lists on [Letterboxd.com](https://letterboxd.com/). | :fontawesome-solid-circle-xmark:{ .red } | -| [ICheckMovies](../icheckmovies.md) | Grabs items based on metadata and lists on [ICheckMovies.com](https://www.icheckmovies.com/). | :fontawesome-solid-circle-xmark:{ .red } | -| [FlixPatrol](../flixpatrol.md) | Grabs items based on metadata and lists on [FlixPatrol.com](https://flixpatrol.com/). | :fontawesome-solid-circle-xmark:{ .red } | -| [Reciperr](../reciperr.md) | Grabs items based on metadata and lists on [reciperr.com](https://reciperr.com/). | :fontawesome-solid-circle-xmark:{ .red } | -| [StevenLu](../stevenlu.md) | Grabs items based on metadata and lists on [StevenLu.com](https://movies.stevenlu.com/). | :fontawesome-solid-circle-xmark:{ .red } | -| [AniDB](../anidb.md) | Grabs items based on metadata and lists on [AniDB.net](https://anidb.net/). | :fontawesome-solid-circle-xmark:{ .red } | -| [AniList](../anilist.md) | Grabs items based on metadata and lists on [AniList.co](https://anilist.co/). | :fontawesome-solid-circle-xmark:{ .red } | -| [MyAnimeList](../myanimelist.md) | Grabs items based on metadata and lists on [MyAnimeList.net](https://myanimelist.net/). | :fontawesome-solid-circle-check:{ .green } | \ No newline at end of file diff --git a/docs/builders/templates.md b/docs/builders/templates.md deleted file mode 100644 index 567c4e90..00000000 --- a/docs/builders/templates.md +++ /dev/null @@ -1,247 +0,0 @@ -# Templates - -Collection, Playlist, Metadata, and Overlay Files often share a lot of common or generalizable configuration details. Templates allow you to define these details in order for them to be used across multiple definitions. - -For example, an actor collection might look like this: - -```yaml -collections: - Bruce Lee: - plex_search: - all: - actor: tmdb - tmdb_person: 19429 - sort_title: "!_Bruce Lee" - sync_mode: sync - collection_order: release -``` - -Note: The `sort_title` in these examples is wrapped in quotes because it contains a character [`!`] which has [syntactic meaning in YAML files](../pmm/essentials/yaml.md#string-literals). This "quoting special characters" is a general YAML requirement, not something specific to `sort_title`. - -Then you add another: - -```yaml -collections: - Bruce Lee: - plex_search: - all: - actor: tmdb - tmdb_person: 19429 - sort_title: "!_Bruce Lee" - sync_mode: sync - collection_order: release - Chris Pratt: - plex_search: - all: - actor: tmdb - tmdb_person: 73457 - sort_title: "!_Chris Pratt" - sync_mode: sync - collection_order: release -``` - -You could keep going in this way, but there's a lot of repetition there. Both of these collections have the same `sync_mode`, `collection_order`, and `actor` settings; the other two details, `tmdb_person` and `sort_title`, depend on a value defined in the collection. - -Those repetitive aspects can be moved into a template and leveraged by multiple collections. - -## Template Variables - -Template Variables are used to define the data that going to be changing in the template. - -For example, a template for those two collections might look like this: - -```yaml -templates: - Actor: - plex_search: - all: - actor: tmdb - tmdb_person: <> - sort_title: "!_<>" - sync_mode: sync - collection_order: release -``` - -The only things that change are the ID that is used with `tmdb_person` and the name of the collection that is used in `sort_title`. - -Those two things surrounded by `<< >>` are "template variables" that you can define for any collection using this template, like this: - -```yaml -collections: - Chris Pratt: - template: - name: Actor - person: 73457 -``` - -or to do it in a single line you can do this - -```yaml -collections: - Bruce Lee: - template: {name: Actor, person: 19429} -``` - -Note that we provide the template name `Actor` and the value to insert in the place of `<>`. The `<>` is a template variable that is always available and doesn't have to be called out like `<>`. - -Inside a template, you can use all the Builders, Details, and [Filters](filters.md) attributes that you can give collections/playlists [except `template`; templates cannot be nested]. - -The names of template variables that you define are arbitrary. In the example above, `<>` could have been `<>` or `<>` or anything else. The only thing that matters is that in the template definition you surround them with `<< >>` and in the collection definition you spell it correctly. - -To use a template with a collection definition you use the `template` attribute. The only required attribute under `template` is `name` which must correspond exactly to the template mapping name. Any other attributes under `template` are considered template variables whose names correspond exactly with the template variable name surrounded by `<<` and `>>` in the templates. These template variables will replace any part of any value that contains the template variable name surrounded by `<<` and `>>` in the template with the specified template variable's value. - -Here's the full example Actor template and two different ways to use it, as it would appear in a collection file. - -```yaml -templates: - Actor: - plex_search: - all: - actor: tmdb - tmdb_person: <> - sort_title: "!_<>" - sync_mode: sync - collection_order: release -collections: - Bruce Lee: - template: {name: Actor, person: 19429} - Chris Pratt: - template: - name: Actor - person: 73457 -``` - -## Multi-Template Variables - -When using multiple Templates in a single definition you can send the same variable to all templates by using the `variables` attribute. - -```yaml -templates: - Actor: - plex_search: - all: - actor: tmdb - tmdb_person: <> - sort_title: "!_<>" - Common: - summary: "Movies that <> (TMDb ID: <>) are in" - sync_mode: sync - collection_order: release -collections: - Bruce Lee: - variables: {person: 19429} - template: [{name: Actor}, {name: Common}] - Chris Pratt: - variables: - person: 19429 - template: - - name: Actor - - name: Common -``` - -## Special Template Attributes - -There are some attributes unique to `templates`; `default`, `optional`, `conditionals`, and `move_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. You can make any template variable optional per collection by setting it to `null`. -* `conditionals` can specify variables based on conditions set by the user. See more [here](#conditionals) -* `move_prefix` can be given a list or comma-separated string of prefixes to move to the end of the collection/playlist name for sorting. - i.e. If you have `move_prefix: The` and a collection is called `The Avengers` then `<>` is replaced with `Avengers, The` instead of `The Avengers` for that collection. - -Every template call is given these template variables. - -* Either `<>`, `<>`, or `<>` which is the name of the definition. -* `<>` is the original mapping name for the definition in the YAML file. -* Either `<>` or `<>` which is the name of the definition after `move_prefix` is applied. -* `<>` which is the library type -* `<>` which is the name of the library -* All Template Variables can append `_encoded` to the variable name to use a URL encode version of the variable. ex. `<>` - -### Conditionals - -Each conditional is identified by its mapping name and has one required attribute; `conditions` and one optional attribute; `default`. - -`default` is the default value for the variable when no condition is met. If default is not specified the variable becomes an optional variable. - -`conditions` is a list of sets of conditions where if all conditions are met then the variable will be the `value` specified in that condition. - -Each set of conditions must have the `value` attribute which is the value of the variable if the condition is met. - -All other attribute pairs in the set of conditions will check some condition of the value of the attribute key: - -* If the attribute key ends with `.not` the value must not equal the attribute value or not be in the list of attribute values. -* If the attribute key ends with `.exists` and the attribute value is `true` then the attribute key must be a given template variable and if the value is anything else then the attribute key must not be a given template variable. -* Otherwise, the value must equal the attribute value or be in the list of attribute values. - -Here's an example from the [PMM Default ratings file](https://github.com/meisnate12/Plex-Meta-Manager/blob/master/defaults/overlays/ratings.yml). - -```yaml -templates: - Rating: - conditionals: - rating1_horizontal_offset: - default: 30 # If no condition sets below are meet - conditions: - - side: [top, bottom] - rating2: none - rating3: none - value: 0 # If side is 'top' or 'bottom' and rating2 is 'none' and rating3 is 'none' - - side: [top, bottom] - rating2: none - value: -165 # If side is 'top' or 'bottom' and rating2 is 'none' and no previous conditions are meet - - side: [top, bottom] - rating3: none - value: -165 # If side is 'top' or 'bottom' rating3 is 'none' and no previous conditions are meet - - side: [top, bottom] - value: -335 # If side is 'top' or 'bottom' and no previous conditions are meet -``` - -## Advanced Example - -Here's an example IMDb Genre template and two different ways to call it. - -```yaml -templates: - IMDb Genre: - default: - title: feature - limit: 100 - optional: - - poster_id - imdb_list: - - url: https://www.imdb.com/search/title/?title_type=<>&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: - Action: - template: - name: IMDb Genre - 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, 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} - summary: Romantic Comedy is a genre that attempts to catch the viewer’s heart with the combination of love and humor. This sub-genre is light-hearted and usually places the two protagonists in humorous situation. Romantic-Comedy film revolves around a romantic ideal, such as true love. In the end, the ideal triumphs over the situation or obstacle, thus creating a happy ending. - filters: - genre: Comedy -``` - -Check out the example files in the [Plex Meta Manager Configs Repository](https://github.com/meisnate12/Plex-Meta-Manager-Configs/tree/master/meisnate12) for more uses and examples. - -## External Templates - -To load external templates located in another file you can use the `external_templates` attribute by specifying the path type and path of the files that will be executed. See [Path Types](files.md#paths) for how to define them. -[files.md](files.md) -```yaml -external_templates: - - file: config/templates.yml - - pmm: templates -``` diff --git a/docs/config/anidb.md b/docs/config/anidb.md index f0d96652..bf548271 100644 --- a/docs/config/anidb.md +++ b/docs/config/anidb.md @@ -21,8 +21,8 @@ anidb: password: ###### ``` -| Attribute | Allowed Values | Default | Required | -|:-------------------|:----------------------------------------------------------------------------------------------|:--------|:--------:| +| Attribute | Allowed Values | Default | Required | +|:-------------------|:----------------------------------------------------------------------------------------------|:--------|:----------------------------------------:| | `client` | AniDB Client Name | N/A | :fontawesome-solid-circle-xmark:{ .red } | | `version` | AniDB Client Version | N/A | :fontawesome-solid-circle-xmark:{ .red } | | `language` | [ISO 639-1 Code](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) of the User Language. | en | :fontawesome-solid-circle-xmark:{ .red } | @@ -32,24 +32,31 @@ anidb: To get a Client Name and Client Version please follow the following steps. -1. Login to [AniDB](https://anidb.net/) -2. Go to you [API Client Page](https://anidb.net/software/add) and go to the `Add New Project` Tab. +1. Login to [AniDB](https://anidb.net/) - ![AniDB Add Project](anidb-1.png) +2. Go to you [API Client Page](https://anidb.net/software/add) and go to the `Add New Project` Tab. -3. Fill in the Project Name with whatever name you want and then hit `+ Add Project`. The rest of the settings don't matter. -4. After you've added the project you should end up on the Projects Page. If not go back to the [API Client Page](https://anidb.net/software/add) and click your projects name. -5. Once you're on the project page click `Add Client` in the top right. + ![AniDB Add Project](images/anidb-1.png) - ![AniDB Add Client](anidb-2.png) +3. Fill in the Project Name with whatever name you want and then hit `+ Add Project`. The rest of the settings don't +matter. -6. Come up with and enter a unique to AniDB Client Name -7. Select `HTTP API` in the API Dropdown -8. Put `1` for Version. +4. After you've added the project you should end up on the Projects Page. If not go back to the +[API Client Page](https://anidb.net/software/add) and click your projects name. - ![AniDB Client Page](anidb-3.png) +5. Once you're on the project page click `Add Client` in the top right. -9. Put the Client Name and Client Version you just created in your config.yml as `client` and `version` respectively. + ![AniDB Add Client](images/anidb-2.png) + +6. Come up with and enter a unique to AniDB Client Name + +7. Select `HTTP API` in the API Dropdown + +8. Put `1` for Version. + + ![AniDB Client Page](images/anidb-3.png) + +9. Put the Client Name and Client Version you just created in your config.yml as `client` and `version` respectively. ```yaml anidb: diff --git a/docs/config/config.yml.template b/docs/config/config.yml.template deleted file mode 100644 index 6a543f72..00000000 --- a/docs/config/config.yml.template +++ /dev/null @@ -1,157 +0,0 @@ -## This file is a template remove the .template to use the file - -libraries: # This is called out once within the config.yml file - Movies: # These are names of libraries in your Plex - collection_files: - - pmm: basic # This is a file within PMM's defaults folder - - pmm: imdb # This is a file within PMM's defaults folder - # see the wiki for how to use local files, folders, URLs, or files from git - overlay_files: - - remove_overlays: false # Set this to true to remove all overlays - - pmm: ribbon # This is a file within PMM's defaults folder - # see the wiki for how to use local files, folders, URLs, or files from git - TV Shows: - collection_files: - - pmm: basic # This is a file within PMM's defaults folder - - pmm: imdb # This is a file within PMM's defaults folder - # see the wiki for how to use local files, folders, URLs, or files from git - overlay_files: - - remove_overlays: false # Set this to true to remove all overlays - - pmm: ribbon # This is a file within PMM's defaults folder - # see the wiki for how to use local files, folders, URLs, or files from git - Anime: - collection_files: - - pmm: basic # This is a file within PMM's defaults folder - - pmm: anilist # This is a file within PMM's defaults folder - # see the wiki for how to use local files, folders, URLs, or files from git - Music: - collection_files: - - file: config/Music.yml # This is a local file THAT YOU MIGHT CREATE -playlist_files: - - pmm: playlist # This is a file within PMM's defaults folder - template_variables: - libraries: Movies, TV Shows # list of libraries that you want the PMM Defaults playlists to look at - # see the wiki for how to use local files, folders, URLs, or files from git -settings: - run_order: - - operations - - metadata - - collections - - overlays - cache: true - cache_expiration: 60 - asset_directory: config/assets - asset_folders: true - asset_depth: 0 - create_asset_folders: false - prioritize_assets: false - dimensional_asset_rename: false - download_url_assets: false - show_missing_season_assets: false - show_missing_episode_assets: false - show_asset_not_needed: true - sync_mode: append - minimum_items: 1 - default_collection_order: - delete_below_minimum: true - delete_not_scheduled: false - run_again_delay: 2 - missing_only_released: false - only_filter_missing: false - show_unmanaged: true - show_unconfigured: true - show_filtered: false - show_options: false - show_missing: true - show_missing_assets: true - save_report: false - tvdb_language: eng - ignore_ids: - ignore_imdb_ids: - item_refresh_delay: 0 - playlist_sync_to_users: all - playlist_exclude_users: - playlist_report: false - verify_ssl: true - custom_repo: - check_nightly: false -webhooks: # Can be individually specified per library as well - error: - version: - run_start: - run_end: - changes: -plex: # Can be individually specified per library as well; REQUIRED for Plex Meta Manager to run - url: http://192.168.1.12:32400 - token: #################### - timeout: 60 - clean_bundles: false - empty_trash: false - optimize: false -tmdb: # REQUIRED for Plex Meta Manager to run - apikey: ################################ - language: en -tautulli: # Can be individually specified per library as well - url: http://192.168.1.12:8181 - apikey: ################################ -omdb: - apikey: ######## - cache_expiration: 60 -mdblist: - apikey: ######################### - cache_expiration: 60 -notifiarr: - apikey: #################################### -anidb: # Not required for AniDB builders unless you want mature content - username: ###### - password: ###### -radarr: # Can be individually specified per library as well - url: http://192.168.1.12:7878 - token: ################################ - add_missing: false - add_existing: false - root_folder_path: S:/Movies - monitor: true - availability: announced - quality_profile: HD-1080p - tag: - search: false - radarr_path: - plex_path: -sonarr: # Can be individually specified per library as well - url: http://192.168.1.12:8989 - token: ################################ - add_missing: false - add_existing: false - root_folder_path: "S:/TV Shows" - monitor: all - quality_profile: HD-1080p - language_profile: English - series_type: standard - season_folder: true - tag: - search: false - cutoff_search: false - sonarr_path: - plex_path: -trakt: - client_id: #################### - client_secret: #################### - pin: - authorization: - # everything below is autofilled by Plex Meta Manager - access_token: - token_type: - expires_in: - refresh_token: - scope: public - created_at: -mal: - client_id: #################### - client_secret: #################### - authorization: - # everything below is autofilled by Plex Meta Manager - access_token: - token_type: - expires_in: - refresh_token: diff --git a/docs/config/configuration.md b/docs/config/configuration.md deleted file mode 100644 index db0bd9f8..00000000 --- a/docs/config/configuration.md +++ /dev/null @@ -1,38 +0,0 @@ -# Config File - -Plex Meta Manager uses a YAML configuration file; this file contains settings that determine how Plex Meta Manager behaves, and the required connection details needed to connect to Plex Media Server, Radarr, Sonarr, and other third-party services via API. - -By default, and unless otherwise stated, Plex Meta Manager looks for the configuration file at `/config/config.yml`. - -A template Configuration File can be found in the [GitHub Repo](https://github.com/meisnate12/Plex-Meta-Manager/blob/master/config/config.yml.template). - -This table outlines the third-party services that Plex Meta Manager can make use of. Each service has specific requirements for setup that can be found by clicking the links within the table. - -| Attribute | Required | -|:---------------------------------|:----------------------------------------------------------------------| -| [`libraries`](libraries.md) | :fontawesome-solid-circle-check:{ .green } | -| [`playlist_files`](playlists.md) | :fontawesome-solid-circle-xmark:{ .red } | -| [`settings`](settings.md) | :fontawesome-solid-circle-xmark:{ .red } | -| [`webhooks`](webhooks.md) | :fontawesome-solid-circle-xmark:{ .red } | -| [`plex`](plex.md) | :fontawesome-solid-circle-check:{ .green } Either here or per library | -| [`tmdb`](tmdb.md) | :fontawesome-solid-circle-check:{ .green } | -| [`github`](github.md) | :fontawesome-solid-circle-xmark:{ .red } | -| [`tautulli`](tautulli.md) | :fontawesome-solid-circle-xmark:{ .red } | -| [`omdb`](omdb.md) | :fontawesome-solid-circle-xmark:{ .red } | -| [`notifiarr`](notifiarr.md) | :fontawesome-solid-circle-xmark:{ .red } | -| [`anidb`](anidb.md) | :fontawesome-solid-circle-xmark:{ .red } | -| [`radarr`](radarr.md) | :fontawesome-solid-circle-xmark:{ .red } | -| [`sonarr`](sonarr.md) | :fontawesome-solid-circle-xmark:{ .red } | -| [`trakt`](trakt.md) | :fontawesome-solid-circle-xmark:{ .red } | -| [`mal`](myanimelist.md) | :fontawesome-solid-circle-xmark:{ .red } | - -## Configuration File Example - -This example outlines what a "standard" config.yml file might look like when in use. - -~~~yaml -{% - include-markdown "./config.yml.template" - comments=false -%} -~~~ \ No newline at end of file diff --git a/docs/config/data/metadata/movie.md b/docs/config/data/metadata/movie.md deleted file mode 100644 index 26685d2e..00000000 --- a/docs/config/data/metadata/movie.md +++ /dev/null @@ -1,259 +0,0 @@ -# Movie Library Metadata - -You can have the script edit the metadata of Movies by adding them to the `metadata` mapping of a Metadata File. - -An example of multiple metadata edits in a movie library is below: - -```yaml -metadata: - Godzilla (1954): - match: - title: Godzilla - year: 1954 - content_rating: R - Godzilla (1998): - match: - title: Godzilla - year: 1998 - sort_title: Godzilla 03 - content_rating: PG-13 - Shin Godzilla: - sort_title: Godzilla 06 - content_rating: R - Godzilla 1985: - content_rating: PG - "Godzilla 2000: Millennium": - originally_available: 1999-08-18 - Godzilla Against MechaGodzilla: - originally_available: 2002-03-23 - Godzilla Raids Again: - content_rating: G - originally_available: 1955-05-21 - Godzilla vs. Biollante: - content_rating: PG - Godzilla vs. Destoroyah: - content_rating: PG - originally_available: 1995-01-19 - Godzilla vs. Gigan: - content_rating: G - originally_available: 1972-09-14 - Godzilla vs. Hedorah: - content_rating: G - originally_available: 1971-04-01 - Godzilla vs. King Ghidorah: - content_rating: PG - originally_available: 1991-04-28 - Godzilla vs. Mechagodzilla: - content_rating: G - originally_available: 1974-03-24 - Godzilla vs. Mechagodzilla II: - content_rating: PG - Godzilla vs. Megaguirus: - content_rating: PG - originally_available: 2000-08-31 - Godzilla vs. Megalon: - content_rating: G - originally_available: 1973-03-17 - Godzilla vs. Mothra: - content_rating: PG - originally_available: 1992-04-28 - Godzilla vs. SpaceGodzilla: - content_rating: PG - originally_available: 1994-01-19 - Godzilla, King of the Monsters!: - content_rating: G - "Godzilla, Mothra and King Ghidorah: Giant Monsters All-Out Attack": - content_rating: PG - originally_available: 2001-08-31 - "Godzilla: Final Wars": - content_rating: PG - originally_available: 2004-12-13 - "Godzilla: Tokyo S.O.S.": - originally_available: 2003-12-14 - Halloween (Rob Zombie): - match: - title: - - Halloween (Rob Zombie) - - Halloween - year: 2007 - "Halo 4: Forward Unto Dawn": - match: - title: - - Halo 4: Forward Unto Dawn - - Halo 4 Forward Unto Dawn - tmdb_show: 56295 - content_rating: R -``` - -## Matching Movies - -The `match` attribute is used to match movies within Plex to that definition within the Metadata file. One definition can match and edit multiple movies. The available matching options are outlined below. - -| Attribute | Description | -|:-------------------------------|:------------------------------------------------------------------------------------------------------------------| -| `title`<sup>1</sup> | Only matches movies that exactly match the movie's Title. Can be a list (only one needs to match). | -| `year` | Only matches movies that were released in the given year. | -| `mapping_id`<sup>2</sup> | Only matches movies that have the given TMDb or IMDb ID. | -| `edition`<sup>3</sup> | Only matches movies that exactly match the movie's Edition. Can be a list (only one needs to match). | -| `edition_contains`<sup>3</sup> | Only matches movies where the movie's Edition contains the given string. Can be a list (only one needs to match). | -| `blank_edition`<sup>3</sup> | Only matches movies that have no Edition.<br>**Default:** `false`<br>**Values:** `true` or `false` | - -1. When `title` is not provided and the mapping name was not specified as an ID, the default behaviour is to use the mapping name as `title` for matching. -2. When `mapping_id` is not provided and the mapping name was specified as an ID, the default behaviour is to use the mapping name as `mapping_id` for matching. -3. When the server does not have a Plex Pass then the Edition Field is not accessible. In this scenario, PMM will check the movie's filepath for `{edition-...}` to determine what the edition is. - -### Examples - -Below are some examples on how movies can be matched. - -#### Example 1 - `title` and `mapping_id` - -The below example shows how `title` and `mapping_id` can be used to match movies. - -```yaml -metadata: - movie1: # Matches via the title "Star Wars" - match: - title: Star Wars - edits... - movie2: # Matches via TMDb ID: 299534 - match: - mapping_id: 299534 - edits... - movie3: # Matches via IMDb ID: tt4154756 - match: - mapping_id: tt4154756 - edits... - movie4: # Matches via the title "9" - match: - title: 9 - edits... -``` - -The Mapping Name can also be used to reduce line-count, as shown here: - -```yaml -metadata: - Star Wars: # Matches via the title "Star Wars" - edits... - 299534: # Matches via TMDb ID: 299534 - edits... - tt4154756: # Matches via IMDb ID: tt4154756 - edits... - "9": # Matches via the title "9" - edits... -``` - -**Note:** to search for a movie titled with a number from the mapping name you must surround the number in quotes like in the example below. Otherwise, it will look for the movie associated with that TMDb ID. - -#### Example 2 - `title` and `year` - -The below example shows how `title` and `year` can be used to match movies. - -In this example, there are two movies in the library called "Godzilla", so the `year` attribute is used to identify which movie is being matched. - -```yaml -metadata: - Godzilla (1954): # Matches via the title "Godzilla" released in 1954 - match: - title: Godzilla - year: 1954 - edits... - Godzilla (1998): # Matches via the title "Godzilla" released in 1998 - match: - title: Godzilla - year: 1998 - edits... -``` - -#### Example 3 - using `editions` - -The edition attributes can be used to further specify which version of a movie should be matched within Plex. - -This can be combined with Example 1 as follows - -```yaml -metadata: - movie1: # Matches via the title "Star Wars" and edition containing "4K77" - match: - title: Star Wars - edition_contains: 4K77 - edits... -``` - -If you wanted to specify the version of Star Wars which does not have an edition, then the `blank_edition` attribute can be used as shown below: - -```yaml -metadata: - movie1: # Matches via the title "Star Wars" and checks for no edition version - match: - title: Star Wars - blank_edition: true - edits... -``` - -## Metadata Edits - -The available attributes for editing movies are as follows - -### Special Attributes - -| Attribute | Description | -|:-----------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `tmdb_show` | TMDb Show ID to use for metadata. Used when the Movie in your library is actually a miniseries on TMDb. (Example: [Halo 4: Forward Unto Dawn](https://www.themoviedb.org/tv/56295) or [IT](https://www.themoviedb.org/tv/19614)) **This is not used to say this movie is the given ID.** | -| `run_definition` | Used to specify if this definition runs.<br>Multiple can be used for one definition as a list or comma separated string. One `false` or unmatched library type will cause it to fail.<br>**Values:** `movie`, `show`, `artist`, `true`, `false` | - -1. If the server does not have a Plex Pass then the Edition Field is not accessible. In this case PMM will check the movies filepath for `{edition-MOVIES EDITION}` to determine what the edition is. - -### General Attributes - -| Attribute | Allowed Values | -|:-----------------------|:---------------------------------------------------------------| -| `title` | Text to change Title. | -| `sort_title` | Text to change Sort Title. | -| `edition`<sup>1</sup> | Text to change Edition. | -| `original_title` | Text to change Original Title. | -| `originally_available` | Date to change Originally Available.<br>**Format:** YYYY-MM-DD | -| `content_rating` | Text to change Content Rating. | -| `user_rating` | Number to change User Rating. | -| `audience_rating` | Number to change Audience Rating. | -| `critic_rating` | Number to change Critic Rating. | -| `studio` | Text to change Studio. | -| `tagline` | Text to change Tagline. | -| `summary` | Text to change Summary. | - -1. Requires Plex Pass - -### Tag Attributes - -You can add `.remove` to any tag attribute to only remove those tags i.e. `genre.remove`. - -You can add `.sync` to any tag attribute to sync all tags vs just appending the new ones i.e. `genre.sync`. - -| Attribute | Allowed Values | -|:-------------|:-----------------------------------------------------| -| `director` | List or comma-separated text of each Director Tag. | -| `country` | List or comma-separated text of each Country Tag. | -| `genre` | List or comma-separated text of each Genre Tag. | -| `writer` | List or comma-separated text of each Writer Tag. | -| `producer` | List or comma-separated text of each Producer Tag. | -| `collection` | List or comma-separated text of each Collection Tag. | -| `label` | List or comma-separated text of each Label Tag. | - -### Image Attributes - -| Attribute | Allowed Values | -|:------------------|:-------------------------------------------------| -| `url_poster` | URL of image publicly available on the internet. | -| `file_poster` | Path to image in the file system. | -| `url_background` | URL of image publicly available on the internet. | -| `file_background` | Path to image in the file system. | - -### Advanced Attributes - -| Attribute | Allowed Values | -|:---------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `metadata_language`<sup>1</sup> | `default`, `ar-SA`, `ca-ES`, `cs-CZ`, `da-DK`, `de-DE`, `el-GR`, `en-AU`, `en-CA`, `en-GB`, `en-US`, `es-ES`, `es-MX`, `et-EE`, `fa-IR`, `fi-FI`, `fr-CA`, `fr-FR`, `he-IL`, `hi-IN`, `hu-HU`, `id-ID`, `it-IT`, `ja-JP`, `ko-KR`, `lt-LT`, `lv-LV`, `nb-NO`, `nl-NL`, `pl-PL`, `pt-BR`, `pt-PT`, `ro-RO`, `ru-RU`, `sk-SK`, `sv-SE`, `th-TH`, `tr-TR`, `uk-UA`, `vi-VN`, `zh-CN`, `zh-HK`, `zh-TW` | -| `use_original_title`<sup>1</sup> | `default`: Library default<br>`no`: No<br>`yes`: Yes | - -1. Must be using the **New Plex Movie Agent**. \ No newline at end of file diff --git a/docs/config/data/metadata/music.md b/docs/config/data/metadata/music.md deleted file mode 100644 index 61558303..00000000 --- a/docs/config/data/metadata/music.md +++ /dev/null @@ -1,138 +0,0 @@ -# Music Library Metadata - -You can have the script edit the metadata of Artists, Albums, and Tracks by adding them to the `metadata` mapping of a Metadata File. - -An example of multiple metadata edits in a music library is below: - -```yaml -metadata: - "Linkin Park": - country: "United States of America" - album_sorting: newest - albums: - "Hybrid Theory": - originally_available: "2000-10-24" - tracks: - 1: - user_rating: 5 - "One Step Closer": - user_rating: 5 - "Meteora": - originally_available: "2003-03-25" - album_sorting: newest - tracks: - 9: - user_rating: 5 - "Numb": - user_rating: 5 - "Minutes To Midnight": - originally_available: "2007-05-14" -``` - -## Matching Artist - -The `match` attribute is used to match artists within Plex to that definition within the Metadata file. One definition can match and edit multiple artists. The available matching options are outlined below. - -| Attribute | Allowed Values | -|:-------------------------------|:-----------------------------------------------------------------------------------------------------| -| `title`<sup>1</sup> | Only matches artists that exactly match the artist's Title. Can be a list (only one needs to match). | - -1. When `title` is not provided and the mapping name was not specified as an ID, the default behaviour is to use the mapping name as `title` for matching. - -### Examples - -Below are some examples on how artists can be matched. - -#### Example 1 - `title` - -The below example shows how `title` can be used to match artists. - -```yaml -metadata: - artist1: # Matches via the title "Ke$ha" - match: - title: Ke$ha - edits... - artist2: # Matches via the title "311" - match: - title: 311 - edits... -``` - -The Mapping Name can also be used to reduce line-count, as shown here: - -```yaml -metadata: - Ke$ha: # Matches via the Name "Ke$ha" - edits... - "311": # Matches via the Name "311" - edits... -``` - -## Metadata Edits - -The available attributes for editing artists, albums, and tracks are as follows - -### Special Attributes - -| Attribute | Values | Artists | Album | Tracks | -|:------------|:----------------------------------------------------------------------------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:----------------------------------------:| -| `albums` | Attribute used to edit album metadata. The mapping name is the album name. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `tracks` | Attribute used to edit track metadata. The mapping name is the track number on that Album, or the title of the Track. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | - -* If you know of another Title your item might exist under, but you want it titled differently you can use `alt_title` to specify another title to look under and then be changed to the mapping name. For Example the Artist `Kesha` used to be stylized as `Ke$ha`, and might still be found that way in Metadata results. - ```yaml - metadata: - "Kesha": - alt_title: "Ke$ha" - ``` - This would change the name of the default `Ke$ha` to `Kesha` and would not mess up any subsequent runs. -`` -### General Attributes - -| Attribute | Values | Artists | Album | Tracks | -|:-----------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:------------------------------------------:| -| `title` | Text to change Title. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | -| `sort_title` | Text to change Sort Title. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| `user_rating` | Number to change User Rating. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| `critic_rating` | Number to change Critic Rating. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| `originally_available` | Date to change Originally Available.<br>**Format:** YYYY-MM-DD | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| `record_label` | Text to change Record Label. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| `summary` | Text to change Summary. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| `track` | Text to change Track. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | -| `disc` | Text to change Disc. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | -| `original_artist` | Text to change Original Artist. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | -| `run_definition` | Used to specify if this definition runs.<br>Multiple can be used for one definition as a list or comma separated string. One `false` or unmatched library type will cause it to fail.<br>**Values:** `movie`, `show`, `artist`, `true`, `false` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | - -### Tag Attributes - -You can add `.remove` to any tag attribute to only remove those tags i.e. `genre.remove`. - -You can add `.sync` to any tag attribute to sync all tags vs just appending the new ones i.e. `genre.sync`. - -| Attribute | Values | Artists | Album | Tracks | -|:-----------------|:---------------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:------------------------------------------:| -| `genre` | List or comma-separated text of each Genre Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| `collection` | List or comma-separated text of each Collection Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| `label` | List or comma-separated text of each Label Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| `style` | List or comma-separated text of each Style Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| `mood` | List or comma-separated text of each Mood Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| `country` | List or comma-separated text of each Country Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `similar_artist` | List or comma-separated text of each Similar Artist Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | - -### Image Attributes - -| Attribute | Values | Artists | Album | Tracks | -|:------------------|:-------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:----------------------------------------:| -| `url_poster` | URL of image publicly available on the internet. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| `file_poster` | Path to image in the file system. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| `url_background` | URL of image publicly available on the internet. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| `file_background` | Path to image in the file system. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | - -### Advanced Attributes - -All these attributes only work with Artists. - -| Attribute | Values | -|:----------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `album_sorting` | <table class="clearTable"><tbody><tr><td>`default`</td><td>Library default</td></tr><tr><td>`oldest`</td><td>Oldest first</td></tr><tr><td>`newest`</td><td>Newest first</td></tr><tr><td>`name`</td><td>Alphabetical</td></tr></tbody></table> | diff --git a/docs/config/data/metadata/show.md b/docs/config/data/metadata/show.md deleted file mode 100644 index ec552541..00000000 --- a/docs/config/data/metadata/show.md +++ /dev/null @@ -1,210 +0,0 @@ -# TV Show Library Metadata - -You can have the script edit the metadata of Shows, Seasons, and Episodes by adding them to the `metadata` mapping of a Metadata File. - -An example of multiple metadata edits in a show library is below: -```yaml -metadata: - "Avatar: The Last Airbender": - sort_title: Avatar 01 - seasons: - 1: - title: "Book One: Water" - summary: >- - After a lapse of 100 years, the Avatar-spiritual master of the elements-has returned. And just in - the nick of time. The Four Nations (Water, Earth, Fire, and Air) have become unbalanced. The Fire - Nation wants to rule the world, and its first conquest will be the Northern Water Tribe. It's up to - a 12-year-old Airbender named Aang to find a way to stop it. Join Aang, Katara, Sokka, Momo, and - Appa as they head north on the adventure of a lifetime. - episodes: - 1: - user_rating: 9.1 - 2: - title: "Book Two: Earth" - summary: >- - Avatar Aang continues his quest to master the four elements before the end of summer. Together with - Katara, Sokka, Momo, and Appa, he journeys across the Earth Kingdom in search of an Earthbending - mentor. Along the way, he confronts Princess Azula, treacherous daughter of Firelord Ozai and - sister to Prince Zuko. More powerful than her brother, Azula will stop nothing to defeat the Avatar. - But Aang and the gang find plenty of Earth Kingdom allies to help them along the way. From the swamps - of the South to the Earth King's palace, Avatar: Book 2 is an adventure like no other. - 3: - title: "Book Three: Fire" - summary: >- - Having survived the terrible battle with Azula, Aang faces new challenges as he and his brave - friends secretly enter the Fire Nation. Their quest is to find and defeat Firelord Ozai. Along - the way, they discover that Ozai has plans of his own. The leader of the Fire Nation intends to - use the massive power of Sozin's comet to spread his dominion permanently across the four nations. - Short on time, Aang has a lot of bending to learn and no master to help him learn it. However, his - friends are there to help, and he finds unexpected allies deep in the heart of the Fire Nation. In - the spectacular four-part conclusion, Aang must fulfill his destiny and become a fully realized - Avatar, or watch the world go up in smoke. - episodes: - 21: - summary: The Epic Series Final of Avatar The Last Airbender - "Avatar: The Legend of Korra": - match: - title: - - "Avatar: The Legend of Korra" - - The Legend of Korra - sort_title: Avatar 02 - original_title: The Legend of Korra - seasons: - 1: - title: "Book One: Air" - 2: - title: "Book Two: Spirits" - 3: - title: "Book Three: Change" - 4: - title: "Book Four: Balance" -``` - -## Matching Shows - -The `match` attribute is used to match shows within Plex to that definition within the Metadata file. One definition can match and edit multiple shows. The available matching options are outlined below. - -| Attribute | Allowed Values | -|:-------------------------------|:------------------------------------------------------------------------------------------------------------------| -| `title`<sup>1</sup> | Only matches shows that exactly match the show's Title. Can be a list (only one needs to match). | -| `year` | Only matches shows that were released in the given year. | -| `mapping_id`<sup>2</sup> | Only matches shows that have the given TVDb or IMDb ID. | - -1. When `title` is not provided and the mapping name was not specified as an ID, the default behaviour is to use the mapping name as `title` for matching. -2. When `mapping_id` is not provided and the mapping name was specified as an ID, the default behaviour is to use the mapping name as `mapping_id` for matching. - -### Examples - -Below are some examples on how shows can be matched. - -#### Example 1 - `title` and `mapping_id` - -The below example shows how `title` and `mapping_id` can be used to match shows. - -```yaml -metadata: - show1: # Matches via the title "Game of Thrones" - match: - title: Game of Thrones - edits... - show2: # Matches via TVDb ID: 366524 - match: - mapping_id: 366524 - edits... - show3: # Matches via IMDb ID: tt10234724 - match: - mapping_id: tt10234724 - edits... - show4: # Matches via the title "24" - match: - title: 24 - edits... -``` - -The Mapping Name can also be used to reduce line-count, as shown here: - -```yaml -metadata: - Game of Thrones: # Matches via the Name "Game of Thrones" - edits... - 366524: # Matches via TVDb ID: 366524 - edits... - tt10234724: # Matches via IMDb ID: tt10234724 - edits... - "24": # Matches via the Name "24" - edits... -``` - -**Note:** to search for a show titled with a number from the mapping name you must surround the number in quotes like in the example below. Otherwise, it will look for the show associated with that TVDb ID. - -#### Example 2 - `title` and `year` - -The below example shows how `title` and `year` can be used to match shows. - -In this example, there are two shows in the library called "Vikings", so the `year` attribute is used to identify which show is being matched. - -```yaml -metadata: - Vikings (2012): # Matches via the title "Vikings" released in 2012 - match: - title: Vikings - year: 2012 - edits... - Vikings (2013): # Matches via the title "Vikings" released in 2013 - match: - title: Vikings - year: 2013 - edits... -``` - -## Metadata Edits - -The available attributes for editing shows, seasons, and episodes are as follows - -### Special Attributes - -| Attribute | Description | Shows | Seasons | Episodes | -|:------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:----------------------------------------:| -| `f1_season` | F1 Season Year to make the Show represent a Season of F1 Races. See [Formula 1 Metadata Guide](../../../pmm/install/guides/formula.md) for more information. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `round_prefix` | Used only with `f1_season` to add the round as a prefix to the Season (Race) Titles i.e. `Australian Grand Prix` --> `01 - Australian Grand Prix`. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `shorten_gp` | Used only with `f1_season` to shorten `Grand Prix` to `GP` in the Season (Race) Titles i.e. `Australian Grand Prix` --> `Australian GP`. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `seasons` | Attribute used to edit season metadata. The mapping name is the season number (use 0 for specials) or the season name. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `episodes` | Attribute used to edit episode metadata. The mapping name is the episode number in that season, the title of the episode, or the Originally Available date in the format `MM/DD`. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| `run_definition` | Used to specify if this definition runs.<br>Multiple can be used for one definition as a list or comma separated string. One `false` or unmatched library type will cause it to fail.<br>**Values:** `movie`, `show`, `artist`, `true`, `false` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `update_seasons` | Used to specify if this definition's seasons metadata will update.<br>Multiple can be used for one definition as a list or comma separated string. One `false` will cause it to fail.<br>**Values:** `true`, `false` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `update_episodes` | Used to specify if this definition's episodes metadata will update.<br>Multiple can be used for one definition as a list or comma separated string. One `false` will cause it to fail.<br>**Values:** `true`, `false` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | - -### General Attributes - -| Attribute | Allowed Values | Shows | Seasons | Episodes | -|:-----------------------|:---------------------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:------------------------------------------:| -| `title` | Text to change Title. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| `sort_title` | Text to change Sort Title. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | -| `original_title` | Text to change Original Title. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `originally_available` | Date to change Originally Available.<br>**Format:** YYYY-MM-DD | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | -| `content_rating` | Text to change Content Rating. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | -| `user_rating` | Number to change User Rating. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| `audience_rating` | Number to change Audience Rating. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | -| `critic_rating` | Number to change Critic Rating. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | -| `studio` | Text to change Studio. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `tagline` | Text to change Tagline. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `summary` | Text to change Summary. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | - -### Tag Attributes - -You can add `.remove` to any tag attribute to only remove those tags i.e. `genre.remove`. - -You can add `.sync` to any tag attribute to sync all tags vs just appending the new ones i.e. `genre.sync`. - -| Attribute | Allowed Values | Shows | Seasons | Episodes | -|:-------------|:-----------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:------------------------------------------:| -| `director` | List or comma-separated text of each Director Tag. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | -| `genre` | List or comma-separated text of each Genre Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `writer` | List or comma-separated text of each Writer Tag. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | -| `collection` | List or comma-separated text of each Collection Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| `label` | List or comma-separated text of each Label Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | - -### Image Attributes - -| Attribute | Allowed Values | Shows | Seasons | Episodes | -|:------------------|:-------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:------------------------------------------:| -| `url_poster` | URL of image publicly available on the internet. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| `file_poster` | Path to image in the file system. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| `url_background` | URL of image publicly available on the internet. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| `file_background` | Path to image in the file system. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | - -### Advanced Attributes - -All these attributes only work with Shows. - -| Attribute | Allowed Values | -|:---------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `episode_sorting` | <table class="clearTable"><tbody><tr><td>`default`</td><td>Library default</td></tr><tr><td>`oldest`</td><td>Oldest first</td></tr><tr><td>`newest`</td><td>Newest first</td></tr></tbody></table> | -| `keep_episodes` | <table class="clearTable"><tbody><tr><td>`all`</td><td>All episodes</td></tr><tr><td>`5_latest`</td><td>5 latest episodes</td></tr><tr><td>`3_latest`</td><td>3 latest episodes</td></tr><tr><td>`latest`</td><td>Latest episodes</td></tr><tr><td>`past_3`</td><td>Episodes added in the past 3 days</td></tr><tr><td>`past_7`</td><td>Episodes added in the past 7 days</td></tr><tr><td>`past_30`</td><td>Episodes added in the past 30 days</td></tr></tbody></table> | -| `delete_episodes` | <table class="clearTable"><tbody><tr><td>`never`</td><td>Never</td></tr><tr><td>`day`</td><td>After a day</td></tr><tr><td>`week`</td><td>After a week</td></tr><tr><td>`refresh`</td><td>On next refresh</td></tr></tbody></table> | -| `season_display` | <table class="clearTable"><tbody><tr><td>`default`</td><td>Library default</td></tr><tr><td>`show`</td><td>Show</td></tr><tr><td>`hide`</td><td>Hide</td></tr></tbody></table> | -| `episode_ordering` | <table class="clearTable"><tbody><tr><td>`default`</td><td>Library default</td></tr><tr><td>`tmdb_aired`</td><td>The Movie Database (Aired)</td></tr><tr><td>`tvdb_aired`</td><td>TheTVDb (Aired)</td></tr><tr><td>`tvdb_dvd`</td><td>TheTVDb (DVD)</td></tr><tr><td>`tvdb_absolute`</td><td>TheTVDb (Absolute)</td></tr></tbody></table> | -| `metadata_language`<sup>1</sup> | `default`, `ar-SA`, `ca-ES`, `cs-CZ`, `da-DK`, `de-DE`, `el-GR`, `en-AU`, `en-CA`, `en-GB`, `en-US`, `es-ES`, `es-MX`, `et-EE`, `fa-IR`, `fi-FI`, `fr-CA`, `fr-FR`, `he-IL`, `hi-IN`, `hu-HU`, `id-ID`, `it-IT`, `ja-JP`, `ko-KR`, `lt-LT`, `lv-LV`, `nb-NO`, `nl-NL`, `pl-PL`, `pt-BR`, `pt-PT`, `ro-RO`, `ru-RU`, `sk-SK`, `sv-SE`, `th-TH`, `tr-TR`, `uk-UA`, `vi-VN`, `zh-CN`, `zh-HK`, `zh-TW` | -| `use_original_title`<sup>1</sup> | <table class="clearTable"><tbody><tr><td>`default`</td><td>Library default</td></tr><tr><td>`no`</td><td>No</td></tr><tr><td>`yes`</td><td>Yes</td></tr></tbody></table> | - -1. Must be using the **New Plex TV Agent** \ No newline at end of file diff --git a/docs/config/data/playlists.md b/docs/config/data/playlists.md deleted file mode 100644 index fe98d83e..00000000 --- a/docs/config/data/playlists.md +++ /dev/null @@ -1,139 +0,0 @@ -# Playlist Files - -Playlist files are used to create and maintain playlists on the Plex Server. - -If utilized to their fullest, these files can be used to maintain the entire server's collections and playlists, and can be used as a backup for these in the event of a restore requirement. - -???+ tip - - Playlists are defined in one or more Playlist files that are mapped in the [Playlist Files Attribute](../playlists.md) within the Configuration File. - -You can use the [`playlist_report` setting](../settings.md#playlist-report) to get a list of your playlists printed out in your log. - -## Example - -This example is a Playlist file with a basic overlay which is saved in a file called `MyPlaylists.yml` within the location mapped as `config` in my setup. - - -???+ example "Example "MyPlaylists.yml"" - - Click the :fontawesome-solid-circle-plus: icon to learn more - - ```yaml - collections: #(1)! - Top 50 Grossing Films of All Time (Worldwide): - tmdb_list: 10 #(2)! - collection_order: custom #(3)! - sync_mode: sync #(4)! - ``` - - 1. This must appear once and **only once** in any Metadata file - 2. This creates a collection based on tmdb list ID 10, https://www.themoviedb.org/list/10 would also be accepted - 3. This will sort the items in the Plex collection to be the same as the order in the list - 4. Syncs the collection to the list, so that if an item is added/removed from the list, the same is done to the collection. Set this to `append` if you only want it to add things and not remove them. - -???+ example "config.yml Example Collection File Addition" - - Click the :fontawesome-solid-circle-plus: icon to learn more - - ```yaml - playlists: #(1)! - Marvel Cinematic Universe Chronological Order: - sync_mode: sync - libraries: Movies, TV Shows #(2)! - sync_to_users: User1, someone@somewhere.com, User3 #(3)! - trakt_list: https://trakt.tv/users/donxy/lists/marvel-cinematic-universe - summary: Marvel Cinematic Universe In Chronological Order - ``` - - 1. This must appear once and **only once** in any Playlist file - 2. These libraries must exist in your Plex library - 3. Leave this blank if you only only want the Playlist to sync to the server owner's account - -This file would then be defined in my `config.yml` file as a `playlist_files` item: - -???+ warning "Important Note" - - Playlist files are not called within the `libraries` section, they are defined at the root identation as you can see in the below example. - -???+ example "config.yml Example Playlists Addition" - - Click the :fontawesome-solid-circle-plus: icon to learn more - - ```yaml - libraries: - Movies: - # Metadata and Overlay files here - TV Shows: - # Metadata and Overlay files here - playlist_files: #(1)! - - file: config/MyPlaylists.yml #(2)! - ``` - - 1. Note that Playlist files are not called within the `libraries` section, they are defined at the root identation as you can see here - 2. `config` refers to the location that you mapped to `config` when following the PMM Installation Guides. - -## Playlist Attributes - -Plex Meta Manager can automatically build and update playlists defined within the `playlists` attribute. - -These are the attributes which can be utilized within the Playlist File: - -| Attribute | Description | -|:-----------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------| -| [`templates`](../../builders/templates.md) | contains definitions of templates that can be leveraged by multiple playlists | -| [`external_templates`](../../builders/templates.md#external-templates) | contains [path types](../../builders/files.md#paths) that point to external templates that can be leveraged by multiple playlists | -| [`playlists`](#playlist-attributes) | contains definitions of playlists you wish to add to the server | - -* `playlists` is required in order to run the Playlist File. -* You can find example Playlist Files in the [Plex Meta Manager Configs Repository](https://github.com/meisnate12/Plex-Meta-Manager-Configs/tree/master/PMM) -* Plex does not support the "Continue Watching" feature for playlists, you can [vote for the feature here](https://forums.plex.tv/t/playlists-remember-position-for-subsequent-resume/84866/39) - - -Each playlist requires its own section within the `playlists` attribute and unlike collections, playlists can only be built using one Builder as their ordering is inherited from the builder; it is not possible to combine builders. - -```yaml -playlists: - Marvel Cinematic Universe Chronological Order: - # ... builder, details, and filters for this playlist - Star Wars Clone Wars Chronological Order: - # ... builder, details, and filters for this playlist - etc: - # ... builder, details, and filters for this playlist -``` - -There are multiple types of attributes that can be utilized within a playlist: - -* [Builders](../../builders/overview.md) -* [Settings/Updates](../../metadata/update.md)[update.md] -* [Filters](../../builders/filters.md) - -### Special Playlist Attributes - -| Attribute | Description | Required | -|:------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------:| -| `libraries` | Determine which libraries the playlist will be built from.<br>**Options:** Comma-separated string or list of library mapping names defined in the `libraries` attribute in the base of your [Configuration File](../configuration.md. | :fontawesome-solid-circle-check:{ .green } | -| `sync_to_users` | Determine which Users have the playlist synced.<br>This will override the global [`playlist_sync_to_users` Setting](../settings.md#playlist-sync-to-users).<br>**Options:** Comma-separated string or list of users, `all` for every user who has server access, or leave blank for just the server owner. | :fontawesome-solid-circle-xmark:{ .red } | -| `exclude_users` | Determine which Users will be excluded from having the playlist synced.<br>This will override the global [`playlist_excude_users` Setting](../settings.md#playlist-exclude-users).<br>**Options:** Comma-separated string or list of users, `all` for every user who has server access, or leave blank for just the server owner. | :fontawesome-solid-circle-xmark:{ .red } | -| `delete_playlist` | Will delete this playlist for the users defined by sync_to_users.<br>**Options:** `true` or `false` | :fontawesome-solid-circle-xmark:{ .red } | - -* Any defined playlist will be always be visible by The Plex Media Server owner, so it doesn't need to be defined within `sync_to_users`. - -## Example Playlists - -In the following example, media is pulled from the `Movies` and `TV Shows` libraries into the one Playlist, and the playlist is shared with a specific set of users: - -```yaml -playlists: - Marvel Cinematic Universe Chronological Order: - sync_mode: sync - libraries: Movies, TV Shows - sync_to_users: User1, someone@somewhere.com, User3 - trakt_list: https://trakt.tv/users/donxy/lists/marvel-cinematic-universe?sort=rank,asc - summary: Marvel Cinematic Universe In Chronological Order - Star Wars Clone Wars Chronological Order: - sync_to_users: all - sync_mode: sync - libraries: Movies, TV Shows - trakt_list: https://trakt.tv/users/tomfin46/lists/star-wars-the-clone-wars-chronological-episode-order -``` diff --git a/docs/config/file_types.md b/docs/config/file_types.md new file mode 100644 index 00000000..43363fd2 --- /dev/null +++ b/docs/config/file_types.md @@ -0,0 +1,49 @@ +Files define the structure and format for creating Collections, Overlays, Playlists, and Metadata Edits within your +libraries. + +Files are modular and when properly leveraged, they not only facilitate the management of your library's collections and +metadata but also serve as a crucial backup resource in case a restore is necessary. + +These are the File types that can be utilized against Plex servers: + +| File Type | Description | Parent Attribute | +|:--------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------|:--------------------:| +| [Collection Files](../files/collections.md) | Defines the data for building collections, allowing you to group and showcase your library in unique ways. | `collection_files` | +| [Overlay Files](../files/overlays.md) | Defines the data for building overlays, allowing you to place information such as resolutions and ratings onto your posters. | `overlay_files` | +| [Metadata Files](../files/metadata.md) | Defines the data for editing metadata, allowing you to find and manipulate the metadata on individual items within your library. | `metadata_files` | +| [Playlist Files](../files/playlists.md) | Defines the data for building playlists, allowing you to combine media from multiple libraries and share them with users on your server. | `playlist_files` | +| [Template Files](../files/templates.md) | Defines templates in external files, allowing you to use the same templates across multiple other files. | `external_templates` | + +??? example "Example File Blocks (click to expand)" + + In this example, multiple file blocks are defined for the `"TV Shows"` library: + + ```yaml + libraries: + TV Shows: + collection_files: + - file: config/TVShows.yml + - folder: config/TV Shows/ + overlay_files: + - pmm: imdb + - repo: overlays + playlist_files: + - url: https://somewhere.com/Playlists.yml + ``` + + **Unlike the others, Playlist Files are not defined per-library.** + + Within the above example, PMM will: + + * First, look within the root of the PMM directory (also known as `config/`) for a collection file named + `TVShows.yml`. If this file does not exist, PMM will skip the entry and move to the next one in the list. + + * Then, look within the root of the PMM directory (also known as `config/`) for a directory called `TV Shows`, and + then load any collection files within that directory. + + * Then, look in the [defaults folder](https://github.com/meisnate12/Plex-Meta-Manager/tree/master/defaults) within + the local PMM folder [or docker container] for a file called `imdb.yml`. + + * Then, look within the Custom Defined Repo for a file called `overlays.yml`. + + * Finally, load the playlist file located at `https://somewhere.com/Playlists.yml` diff --git a/docs/config/files.md b/docs/config/files.md index e7c12c30..37d56f1e 100644 --- a/docs/config/files.md +++ b/docs/config/files.md @@ -1,3 +1,259 @@ +# File Blocks + +When using Plex Meta Manager, the structure of each library is made using File Blocks + +???+ example "Example Library Structure" + + ```yaml + libraries: + Movies: + collection_files: + - pmm: imdb + ``` + + In the above example, `collection_files` is the type of File, which tells PMM that the entries that follow will + create/update collections and `- pmm:` is the type of Path, which PMM that the file it is looking for is a PMM + Defaults file. + + These ideas will be further outlined on this page. + +## Files + {% - include-markdown "./files_paths.md" -%} \ No newline at end of file + include-markdown "./file_types.md" +%} + +## Blocks + +Each time a file is called it's going to use what we call a "File Block". Each block must have the file location type +and path and can have other attributes to add more control to that file. + +Every file block under the parent attribute begins with a `-`. + +???+ example "Example Block" + + This example has 2 blocks each using location type `pmm` with the path being `tmdb` and `imdb` respectively under + the parent attribute `collection_files`. + + ```yaml + libraries: + Movies: + collection_files: # Parent Attribute + - pmm: tmdb # Block 1 + - pmm: imdb # Block 2 + ``` + +### Location Types and Paths + +There are multiple location types that can be used to call a file. They can either be on the local system, online at an +url, part of the [PMM Defaults](../defaults/guide.md), directly from the +[PMM User Configs](https://github.com/meisnate12/Plex-Meta-Manager-Configs) repository, or from another +[`Custom Repository`](settings.md). + +The location types are outlined as follows: + +??? blank "`file` - Used to run a local file.<a class="headerlink" href="#file" title="Permanent link">¶</a>" + + <div id="file" />Used to run a file which is located within the system that PMM is being run from. + + File locations need to be accessible to PMM at those paths; this is typically only something you need to consider + when using Docker. + + ???+ example "Example" + + ```yaml + libraries: + Movies: + collection_files: + - file: config/path/to/file.yml + ``` + +??? blank "`folder` - Used to run all local files in a directory.<a class="headerlink" href="#folder" title="Permanent link">¶</a>" + + <div id="folder" />Used to run all files located in a directory which is located within the system that PMM is being + run from. + + Folder locations need to be accessible to PMM at those paths; this is typically only something you need to consider + when using Docker. + + ???+ example "Example" + + ```yaml + libraries: + Movies: + collection_files: + - folder: config/path/to/folder + ``` + +??? blank "`url` - Used to run a file hosted at a URL.<a class="headerlink" href="#url" title="Permanent link">¶</a>" + + <div id="url" />Used to run a file hosted publicly on the internet and accessible at a URL. + + This needs to point directly to the YAML file. A common error is using a gitHub link that points to the *page + displaying the YAML*. In gitHub, for instance, click on the "Raw" button and use *that* link. + + ???+ example "Example" + + ```yaml + libraries: + Movies: + collection_files: + - url: https://example.com/path/to/file.yml + ``` + +??? blank "`pmm` - Used to run a built-in [PMM Defaults](../defaults/guide.md) file.<a class="headerlink" href="#pmm" title="Permanent link">¶</a>" + + <div id="pmm" />Used to run a built-in PMM Defaults file. The values you'd enter here are listed in the + [default usage guide](../defaults/guide.md). + + ???+ example "Example" + + ```yaml + libraries: + Movies: + collection_files: + - pmm: oscars + ``` + +??? blank "`git` - Used to run a file hosted on the [PMM User Configs](https://github.com/meisnate12/Plex-Meta-Manager-Configs) repository.<a class="headerlink" href="#git" title="Permanent link">¶</a>" + + <div id="git" />Used to run a file hosted on the + [PMM User Configs](https://github.com/meisnate12/Plex-Meta-Manager-Configs) repository. + + Note that you enter the bits of the items path relative to the top level of the repo [`meisnate12/People`] and you + don't need the `.yml` extension. + + ???+ example "Example" + + ```yaml + libraries: + Movies: + collection_files: + - git: meisnate12/People # this links to https://github.com/meisnate12/Plex-Meta-Manager-Configs/blob/master/meisnate12/People.yml + ``` + +??? blank "`repo` - Used to run a file hosted on a custom repository.<a class="headerlink" href="#repo" title="Permanent link">¶</a>" + + <div id="repo" />Used to run a file which is hosted on a repo specified by the user with the + [`custom_repo`](settings.md#custom-repo) Setting Attribute. + + Note that as with `git` you enter the bits of the items path relative to repo [`meisnate12/People`] and you don't + need the `.yml` extension. + + ???+ example "Example" + + This is assuming the `custom_repo` setting is + `https://github.com/meisnate12/Plex-Meta-Manager-Configs/tree/master/meisnate12`. + + ```yaml + libraries: + Movies: + collection_files: + - repo: People + ``` + +## Other Block Attributes + +You can have some control of the files from inside your Configuration file by using these block attributes. + +??? blank "`template_variables` - Used to define [Custom Template Variables](../files/templates.md#template-variables) for a file.<a class="headerlink" href="#template-variables" title="Permanent link">¶</a>" + + <div id="template-variables" />Passes all given [Template Variables](../files/templates.md#template-variables) to + every template in the file. + + **Note: the file has to be properly set up to use the variables.** + + <hr style="margin: 0px;"> + + **Attribute:** `template_variables` + + **Accepted Values:** [Dictionary](../pmm/yaml.md#dictionaries) of values specified by each particular file. + + **Default Value:** `None` + + ???+ example "Example" + + ```yaml + libraries: + TV Shows: + collection_files: + - pmm: genre + template_variables: + schedule_separator: never + collection_mode: hide + - pmm: actor # Notice how the `-` starts this block + template_variables: + schedule_separator: never + collection_mode: hide + ``` + + In this example there will be two template variables added to every template in the git file pmm: genre. + + `schedule_separator` is set to `never` to not show a separator in this section and `collection_mode` is set to + `hide`. + + What these variables will do depends on how they're defined in the Collection File. + +??? blank "`schedule` - Used to schedule when a file is run.<a class="headerlink" href="#schedule" title="Permanent link">¶</a>" + + <div id="schedule" />Used to schedule when this file is run using the [schedule options](schedule.md). + + <hr style="margin: 0px;"> + + **Attribute:** `schedule` + + **Accepted Values:** Any [schedule option](schedule.md) + + **Default Value:** `daily` + + ???+ example "Example" + + ```yaml + libraries: + Movies: + collection_files: + - file: config/Movies.yml + schedule: weekly(friday) + - pmm: actors + schedule: weekly(saturday) + playlist_files: + - file: config/Playlists.yml + schedule: weekly(sunday) + ``` + +??? blank "`asset_directory` - Used to define Asset Directories for a file.<a class="headerlink" href="#asset-directory" title="Permanent link">¶</a>" + + <div id="asset-directory" />Specify the directory where assets (posters, backgrounds, etc) are located for this + specific file. + + ???+ tip + + Assets can be stored anywhere on the host system that PMM has visibility of (i.e. if using docker, the directory + must be mounted/visible to the docker container). + + <hr style="margin: 0px;"> + + **Attribute:** `asset_directory` + + **Accepted Values:** Any directory + + **Default Value:** `[Directory containing YAML config]/assets` + + ???+ example "Example" + + ```yaml + libraries: + Movies: + collection_files: + - file: config/Movies.yml + asset_directory: <path_to_assets>/Movies + - pmm: actors + asset_directory: <path_to_assets>/people + overlay_files: + - pmm: imdb + playlist_files: + - file: config/Playlists.yml + asset_directory: + - <path_to_assets>/playlists1 + - <path_to_assets>/playlists2 + ``` diff --git a/docs/config/files_paths.md b/docs/config/files_paths.md deleted file mode 100644 index 71c6b772..00000000 --- a/docs/config/files_paths.md +++ /dev/null @@ -1,299 +0,0 @@ -# Files & Paths - -When using Plex Meta Manager, the structure of each library is made up of Files and Paths - -???+ example "Example Library Structure" - - ```yaml - libraries: - Movies: - collection_files: - - pmm: imdb - ``` - - In the above example, `collection_files` is the type of File, which tells PMM that the entries that follow will create/update collections and `- pmm:` is the type of Path, which PMM that the file it is looking for is a PMM Defaults file. - - These ideas will be further outlined on this page. - -## Files - -Files define the structure and format for creating Collections, Overlays, Playlists, and Metadata Edits within your libraries. - -Files are modular and when properly leveraged, they not only facilitate the management of your library's collections and metadata but also serve as a crucial backup resource in case a restore is necessary. - -There are four main File types that can be utilized against Plex servers: - -| File Type | Description | -|:-----------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------| -| [Collection Files](data/collections.md) | Defines the data for building collections, allowing you to group and showcase your library in unique ways | -| [Overlay Files](data/overlays.md) | Defines the data for building overlays, allowing you to place information such as resolutions and ratings onto your posters. | -| Metadata Files ([Movies](data/metadata/movie.md)/[Shows](data/metadata/show.md)/[Music](data/metadata/music.md)) | Defines the data for editing metadata, allowing you to find and manipulate the metadata on individual items within your library. | -| [Playlist Files](data/playlists.md) | Defines the data for building playlists, allowing you to combine media from multiple libraries and share them with users on your server | - -Collection, Overlay and Metadata Files can be linked to libraries in the [Libraries Attribute](libraries) within the [Configuration File](../config/configuration.md). - -## Example Files - -This is a basic Files structure showing the use of all four File types. - -???+ example "Example Files" - - Unlike the other three, Playlist Files are not defined per-library. - - Theis examples utilizes the [PMM Defaults](../defaults/files.md) - - ```yaml - libraries: - Movies: - collection_files: - - pmm: imdb - overlay_files: - - pmm: resolution - metadata_files: - - file: config/metadata.yml - playlist_files: - - pmm: playlists - ``` - -# Paths - -YAML Files are defined by their path type and path location for the [`collection_files`](libraries.md#collection-file), [`overlay_files`](libraries.md#overlay-file), [`playlist_files`](data/playlists), and [`external_templates`](../builders/templates). - -They can either be on the local system, online at an url, directly from the [Plex Meta Manager Configs](https://github.com/meisnate12/Plex-Meta-Manager-Configs) repository, or from another [`Custom Repository`](settings.md#custom-repo). - -The path types are outlined as follows: - -* `- file:` refers to a collection file which is located within the system that PMM is being run from. - -* `- folder:` refers to a directory containing collection files which is located within the system that PMM is being run from. - -* `- pmm:` refers to a [PMM Defaults](../defaults/files.md) builders/overlay/playlist file. - -* `- url:` refers to a collection file which is hosted publicly on the internet. - -* `- git:` refers to a collection file which is hosted on the [Configs Repo](https://github.com/meisnate12/Plex-Meta-Manager-Configs). - -* `- repo:` refers to a collection file which is hosted on a custom repository specified by the user with the [`custom_repo` Setting Attribute](settings.md#custom-repo). - -## Example Paths - -```yaml -libraries: - Movies: - collection_files: - - file: config/path/to/file.yml - - folder: config/path/to/folder -``` -File and folder paths need to be accessible to PMM at those paths; this is typically only something you need to consider when using Docker. -``` - - url: https://example.com/path/to/file.yml -``` -This needs to point directly to the YAML file. A common error is using a gitHub link that points to the *page displaying the YAML*. In gitHub, for instance, click on the "Raw" button and use *that* link. -``` - - git: meisnate12/People # this links to https://github.com/meisnate12/Plex-Meta-Manager-Configs/blob/master/meisnate12/People.yml -``` -Note that you enter the bits of the items path relative to the top level of the repo [`meisnate12/People`] and you don't need the `.yml` extension. -``` - - repo: People -``` -This is assuming the `custom_repo` setting is `https://github.com/meisnate12/Plex-Meta-Manager-Configs/tree/master/meisnate12` -Note that as with `- git:` you enter the bits of the items path relative to repo [`meisnate12/People`] and you don't need the `.yml` extension. -Note that as with `- git:` you enter the bits of the items path relative to repo [`meisnate12/People`] and you don't need the `.yml` extension. -``` - - pmm: oscars -``` -The values you'd enter here are listed in the [default metadata guide](../defaults/guide.md). - -## YAML Controls - -You can have some control of yaml files from inside your Configuration file by using YAML Controls. - -### Template Variables - -You can define [Template Variables](../builders/templates.md#template-variables) that will be added to every template in the associated YAML file by adding the `template_variables` attribute to the dictionary defining the file. - -#### Example - -```yaml -libraries: - TV Shows: - collection_files: - - pmm: genre - template_variables: - schedule_separator: never - collection_mode: hide - - pmm: actor # Notice how the `-` starts this "section" - template_variables: - schedule_separator: never - collection_mode: hide -``` - -In this example there will be two template variables added to every template in the git file pmm: genre. - -`schedule_separator` is set to `never` to not show a separator in this section and `collection_mode` is set to `hide`. - -What these variables will do depends on how they're defined in the Collection File. - -### Schedule - -Each [`collection_files`](libraries.md#collection-file), [`overlay_files`](libraries.md#overlay-file), or [`playlist_files`](data/playlists) can be scheduled by adding the `schedule` attribute to the dictionary defining the file. - -Below is an example of a scheduled Collection File and Playlist File: - -```yaml -libraries: - Movies: - collection_files: - - file: config/Movies.yml - schedule: weekly(friday) - - pmm: actors - schedule: weekly(saturday) -playlist_files: - - file: config/Playlists.yml - schedule: weekly(sunday) -``` - -### Asset Directory - -You can define custom Asset Directories per file by adding `asset_directory` to the file call. - -???+ important - - Assets can be stored anywhere on the host system that PMM has visibility of (i.e. if using docker, the directory must be mounted/visible to the docker container). - -```yaml -libraries: - Movies: - collection_files: - - file: config/Movies.yml - asset_directory: <path_to_assets>/Movies - - pmm: actors - asset_directory: <path_to_assets>/people - overlay_files: - - pmm: imdb -playlist_files: - - file: config/Playlists.yml - asset_directory: - - <path_to_assets>/playlists1 - - <path_to_assets>/playlists2 -``` - -## Collection File - -The [`collection_files`](libraries.md#collection-file) attribute is defined under the [`libraries`](libraries.md) attribute in your [Configuration File](configuration.md). - -??? example - - In this example, multiple collection file path types are defined for the `"TV Shows"` library: - - ```yaml - libraries: - TV Shows: - collection_files: - - file: config/TVShows.yml - - folder: config/TV Shows/ - - pmm: tmdb - - repo: charts - - url: https://somewhere.com/PopularTV.yml - ``` - - Within the above example, PMM will: - - * First, look within the root of the PMM directory (also known as `config/`) for a collection file named `TVShows.yml`. If this file does not exist, PMM will skip the entry and move to the next one in the list. - - * Then, look within the root of the PMM directory (also known as `config/`) for a directory called `TV Shows`, and then load any collection files within that directory. - - * Then, look in the [defaults folder](https://github.com/meisnate12/Plex-Meta-Manager/tree/master/defaults) within the local PMM folder [or docker container] for a file called `tmdb.yml` which it finds [here](https://github.com/meisnate12/Plex-Meta-Manager/blob/master/defaults/chart/tmdb.yml). - - * Then, look within the Custom Defined Repo for a file called `charts.yml`. - - * Finally, load the collection file located at `https://somewhere.com/PopularTV.yml` - -## Overlay File - -The [`overlay_files`](libraries.md#overlay-file) attribute is defined under the [`libraries`](libraries.md) attribute in your [Configuration File](configuration.md). - -??? example - - In this example, multiple overlay file path types are defined for the `"TV Shows"` library: - - ```yaml - libraries: - TV Shows: - overlay_files: - - file: config/overlays.yml - - folder: config/overlay configs/ - - pmm: imdb - - repo: overlays - - url: https://somewhere.com/Overlays.yml - ``` - - Within the above example, PMM will: - - * First, look within the root of the PMM directory (also known as `config/`) for a collection file named `overlays.yml`. If this file does not exist, PMM will skip the entry and move to the next one in the list. - - * Then, look within the root of the PMM directory (also known as `config/`) for a directory called `overlay configs`, and then load any collection files within that directory. - - * Then, look in the [defaults folder](https://github.com/meisnate12/Plex-Meta-Manager/tree/master/defaults) within the local PMM folder [or docker container] for a file called `imdb.yml`. - - * Then, look within the Custom Defined Repo for a file called `overlays.yml`. - - * Finally, load the collection file located at `https://somewhere.com/Overlays.yml` - -## Playlist Files - -The [`playlist_files`](data/playlists.md) at the top level in your [Configuration File](configuration.md). - -??? example - - In this example, multiple `playlist_files` attribute path types are defined: - - ```yaml - playlist_files: - - file: config/playlists.yml - - folder: config/Playlists/ - - pmm: playlist - - repo: playlists - - url: https://somewhere.com/Playlists.yml - ``` - - Within the above example, PMM will: - - * First, look within the root of the PMM directory (also known as `config/`) for a playlist file named `Playlists.yml`. If this file does not exist, PMM will skip the entry and move to the next one in the list. - - * Then, look within the root of the PMM directory (also known as `config/`) for a directory called `Playlists`, and then load any playlist files within that directory. - - * Then, look in the [defaults folder](https://github.com/meisnate12/Plex-Meta-Manager/tree/master/defaults) within the local PMM folder [or docker container] for a file called `playlist.yml` which it finds [here](https://github.com/meisnate12/Plex-Meta-Manager/blob/master/defaults/playlist.yml). - - * Then, look within the Custom Defined Repo for a file called `playlists.yml`. - - * Finally, load the playlist file located at `https://somewhere.com/Playlists.yml` - -## External Templates - -The [`external_templates`](../builders/templates.md#external-templates) attribute is defined at the top level in your [Collection File](data/collections.md). - -??? example - - In this example, multiple external template file path types are defined: - - ```yaml - external_templates: - - file: config/templates.yml - - folder: config/templates/ - - url: https://somewhere.com/templates.yml - - pmm: templates - - repo: templates - ``` - - Within the above example, PMM will: - - * First, look within the root of the PMM directory (also known as `config/`) for a collection file named `templates.yml`. If this file does not exist, PMM will skip the entry and move to the next one in the list. - - * Then, look within the root of the PMM directory (also known as `config/`) for a directory called `templates`, and then load any collection files within that directory. - - * Then, load the collection file located at `https://somewhere.com/templates.yml`. - - * Then, look in the [defaults folder](https://github.com/meisnate12/Plex-Meta-Manager/tree/master/defaults) within the local PMM folder [or docker container] for a file called `templates.yml` which it finds [here](https://github.com/meisnate12/Plex-Meta-Manager/blob/master/defaults/templates.yml). - - * Finally, look at the within the Custom Defined Repo for a file called `templates.yml`. \ No newline at end of file diff --git a/docs/config/github.md b/docs/config/github.md index 403ee07e..b39ce123 100644 --- a/docs/config/github.md +++ b/docs/config/github.md @@ -1,6 +1,7 @@ # GitHub Attributes -Configuring [GitHub](https://github.com/) is optional but can allow you to avoid rate limits when requesting data from GitHub. +Configuring [GitHub](https://github.com/) is optional but can allow you to avoid rate limits when requesting data from +GitHub. Requests made with a GitHub token have a higher rate limit than anonymous requests. diff --git a/docs/config/anidb-1.png b/docs/config/images/anidb-1.png similarity index 100% rename from docs/config/anidb-1.png rename to docs/config/images/anidb-1.png diff --git a/docs/config/anidb-2.png b/docs/config/images/anidb-2.png similarity index 100% rename from docs/config/anidb-2.png rename to docs/config/images/anidb-2.png diff --git a/docs/config/anidb-3.png b/docs/config/images/anidb-3.png similarity index 100% rename from docs/config/anidb-3.png rename to docs/config/images/anidb-3.png diff --git a/docs/config/localhost-fail.png b/docs/config/images/localhost-fail.png similarity index 100% rename from docs/config/localhost-fail.png rename to docs/config/images/localhost-fail.png diff --git a/docs/config/mal.png b/docs/config/images/mal.png similarity index 100% rename from docs/config/mal.png rename to docs/config/images/mal.png diff --git a/docs/config/radarr.png b/docs/config/images/radarr.png similarity index 100% rename from docs/config/radarr.png rename to docs/config/images/radarr.png diff --git a/docs/radarr.psd b/docs/config/images/radarr.psd similarity index 100% rename from docs/radarr.psd rename to docs/config/images/radarr.psd diff --git a/docs/config/sonarr.png b/docs/config/images/sonarr.png similarity index 100% rename from docs/config/sonarr.png rename to docs/config/images/sonarr.png diff --git a/docs/sonarr.psd b/docs/config/images/sonarr.psd similarity index 100% rename from docs/sonarr.psd rename to docs/config/images/sonarr.psd diff --git a/docs/config/trakt.png b/docs/config/images/trakt.png similarity index 100% rename from docs/config/trakt.png rename to docs/config/images/trakt.png diff --git a/docs/config/libraries.md b/docs/config/libraries.md index bbe5e4b1..55e0b722 100644 --- a/docs/config/libraries.md +++ b/docs/config/libraries.md @@ -5,11 +5,622 @@ search: # Library Attributes -## Library Attributes +Within the [Configuration File](overview.md), the `libraries` attribute specifies the Plex libraries that the user wants +Plex Meta Manager to act on. -Within the [Configuration File](configuration.md), the `libraries` attribute specifies the Plex libraries that the user wants Plex Meta Manager to act on. +Attributes are used to instruct Plex Meta Manager what actions to take, such as "load the following libraries" or +"execute the following Collection Definition files". These attributes can be specified individually per library, or can +be inherited from the global value if it has been set. If an attribute is specified at both the library and global +level, then the library level attribute will take priority. -Attributes are used to instruct Plex Meta Manager what actions to take, such as "load the following libraries" or "execute the following Collection Definition files". These attributes can be specified individually per library, or can be inherited from the global value if it has been set. If an attribute is specified at both the library and global level, then the library level attribute will take priority. +### Attributes + +The available attributes for each library are as follows: + +??? blank "`library_name` - Used to specify the Library's name.<a class="headerlink" href="#library-name" title="Permanent link">¶</a>" + + <div id="library-name" />*Required only when trying to use multiple servers with the same name.* + + Each library that the user wants Plex Meta Manager to interact with must be documented with a library attribute. + + A library attribute is represented by the mapping name (i.e. `Movies` or `TV Shows`), this must have a unique name + that correlates with a library of the same name within the Plex Media Server. + + In the situation that two servers are being connected to which both have libraries of the same name, the + `library_name` attribute can be utilized to specify the real Library Name, whilst the library attribute's mapping + name can be made into a placeholder. This is showcased below: + + <hr style="margin: 0px;"> + + **Attribute:** `library_name` + + **Accepted Values:** Library Name + + **Default Value:** Base Attribute Name + + ???+ example "Example" + + ```yaml + libraries: + Movies01: + library_name: Movies + Movies02: + library_name: Movies + plex: + url: http://192.168.1.35:32400 + token: #################### + TV Shows: + Anime: + plex: + url: http://192.168.1.12:32400 + token: #################### + ``` + + * In this example, `"Movies01"`, `"TV Shows"`, and `"Anime"` will all use the global plex server + (**http://192.168.1.12:32400**) which is defined using the global `plex` mapping. `"Movies02"` will use the plex + server **http://192.168.1.35:32400** which is defined under its `plex` mapping over the global mapping. + +??? blank "`collection_files` - Used to define [Collection Files](../files/collections.md).<a class="headerlink" href="#collection-files" title="Permanent link">¶</a>" + + <div id="collection-files" />The `collection_files` attribute is used to define + [Collection Files](../files/collections.md) by specifying the path type and path of the files that will be executed + against the parent library. See [File Blocks](files.md) for how to define them. + + <hr style="margin: 0px;"> + + **Attribute:** `collection_files` + + **Accepted Values:** Location of Collection YAML files. + + **Default Value:** `/config/<<MAPPING_NAME>>.yml` + + ???+ example "Example" + + ```yaml + libraries: + TV Shows: + collection_files: + - file: config/TV Shows.yml + - pmm: tmdb + - pmm: network + ``` + + By default, when `collection_files` is missing Plex Meta Manager will look within the root PMM directory for a + collection file called `<MAPPING_NAME>.yml`. In this example, Plex Meta Manager will look for a file named + `TV Shows.yml`. + + ```yaml + libraries: + TV Shows: + ``` + + +??? blank "`metadata_files` - Used to define [Metadata Files](../files/metadata.md).<a class="headerlink" href="#metadata-files" title="Permanent link">¶</a>" + + <div id="metadata-files" />The `metadata_files` attribute is used to define Metadata Files by specifying the path of + the files that will be executed against the parent library. See [File Blocks](files.md) for how to define them. + + ???+ tip + + As of Plex Meta Manager 1.20.0 "Metadata Files" refers to YAML files which refers to managing the metadata of + items [movies, shows, music] within your library, and "Collection Files" refers to YAML files which define + Collections. + + In previous version of Plex Meta Manager, "Metadata Files" could mean either of the above. + + <hr style="margin: 0px;"> + + **Attribute:** `metadata_files` + + **Accepted Values:** Location of [Metadata Files](../files/metadata.md) + + **Default Value:** `None` + + ???+ example "Example" + + ```yaml + libraries: + TV Shows: + metadata_files: + - file: config/metadata.yml + ``` + +??? blank "`overlay_files` - Used to define [Overlay Files](../files/overlays.md).<a class="headerlink" href="#overlay-files" title="Permanent link">¶</a>" + + <div id="overlay-files" />The `overlay_files` attribute is used to define [Overlay Files](../files/overlays.md) by + specifying the path type and path of the files that will be executed against the parent library. See + [File Blocks](files.md) for how to define them. + + <hr style="margin: 0px;"> + + **Attribute:** `overlay_files` + + **Accepted Values:** Location of [Overlay Files](../files/overlays.md) + + **Default Value:** `None` + + ???+ example "Example" + + ```yaml + libraries: + TV Shows: + collection_files: + - file: config/TV Shows.yml + overlay_files: + - file: config/Overlays.yml + ``` + +??? blank "`report_path` - Location to save the YAML Report file for a library.<a class="headerlink" href="#report-path" title="Permanent link">¶</a>" + + <div id="report-path" />The `report_path` attribute is used to define where to save the YAML Report file. This file + is used to store information about what media is added, removed, filtered, and missing from the Plex library + compared to what is expected from the Collection, Metadata, Overlay or Playlist file. + + If your Collection file creates a collection with `Movie 1`, `Movie 2` and `Movie 3` but your Plex library only has + `Movie 1` and `Movie 3`, then the missing YAML file will be updated to inform the user that `Movie 2` was missing + from the library. + + <hr style="margin: 0px;"> + + **Attribute:** `report_path` + + **Accepted Values:** Location to save the YAML Report file + + **Default Value:** `/config/<<MAPPING_NAME>>_report.yml` where `<<MAPPING_NAME>>` is the name of the library + attribute + + ???+ example "Example" + + If you want to call your Report YAML something different you can like so: + + ```yaml + libraries: + Movies: + report_path: /config/My Movie Report.yml + ``` + + Alternatively, Report YAML files can be placed in their own directory, as below: + + ```yaml + libraries: + Movies: + report_path: /config/reports/Movies.yml + collection_files: + - file: config/Movies.yml + overlay_files: + - file: config/Overlays.yml + ``` + +??? blank "`template_variables` - Used to define [Custom Template Variables](../files/templates.md#template-variables) for every file in a library.<a class="headerlink" href="#template-variables" title="Permanent link">¶</a>" + + <div id="template-variables" />Passes all given [Template Variables](../files/templates.md#template-variables) to + every template in every Collection, Metadata, and Overlay file run. + + <hr style="margin: 0px;"> + + **Attribute:** `template_variables` + + **Accepted Values:** [Dictionary](../pmm/yaml.md#dictionaries) of values specified by each particular file. + + **Default Value:** `None` + + ???+ example "Example" + + ```yaml + libraries: + Movies: + template_variables: + collection_mode: hide_items + collection_files: + - file: config/Movies.yml + overlay_files: + - file: config/Overlays.yml + ``` + +??? blank "`schedule` - Used to schedule when a library is run.<a class="headerlink" href="#schedule" title="Permanent link">¶</a>" + + <div id="schedule" />Used to schedule when a library is run using the [schedule options](schedule.md). + + <hr style="margin: 0px;"> + + **Attribute:** `schedule` + + **Accepted Values:** Any [schedule option](schedule.md) + + **Default Value:** `daily` + + ???+ example "Example" + + ```yaml + libraries: + TV Shows: + schedule: weekly(sunday) + collection_files: + - file: config/TV Shows.yml + overlay_files: + - file: config/Overlays.yml + ``` + +??? blank "`operations` - Used to specify [Library Operations](operations.md) to run.<a class="headerlink" href="#operations" title="Permanent link">¶</a>" + + <div id="operations" />Used to specify [Library Operations](operations.md) to run. + + <hr style="margin: 0px;"> + + **Attribute:** `operations` + + **Accepted Values:** Any [Library Operation](operations.md) + + **Default Value:** `None` + + ???+ example "Example" + + ```yaml + libraries: + Movies: + collection_files: + - pmm: imdb + operations: + mass_critic_rating_update: tmdb + split_duplicates: true + ``` + +??? blank "`remove_overlays` - Used to remove overlays.<a class="headerlink" href="#remove-overlays" title="Permanent link">¶</a>" + + <div id="remove-overlays" />Used to remove overlays from this library only. + + ???+ warning "Proceed with Caution" + + Utill set to `false` or removed this will remove all overlays from your library every run, but will not delete + the overlaid images from your system, resulting in [image bloat](../pmm/scripts/image-cleanup.md). + + <hr style="margin: 0px;"> + + **Attribute:** `remove_overlays` + + **Accepted Values:** `true` or `false` + + **Default Value:** `false` + + ???+ example "Example" + + ```yaml + libraries: + Movies: + remove_overlays: true + collection_files: + - file: config/Movies.yml + overlay_files: + - file: config/Overlays.yml + ``` + +??? blank "`reapply_overlays` - Used to reapply overlays.<a class="headerlink" href="#reapply-overlays" title="Permanent link">¶</a>" + + <div id="reapply-overlays" />Used to reapply overlays from this library only. This will reapply overlays to every item in your library. + + ???+ warning "Proceed with Caution" + + Utill set to `false` or removed this will reapply all overlays on each run, which will result in + [image bloat](../pmm/scripts/image-cleanup.md). + + <hr style="margin: 0px;"> + + **Attribute:** `reapply_overlays` + + **Accepted Values:** `true` or `false` + + **Default Value:** `false` + + ???+ example "Example" + + ```yaml + libraries: + Movies: + reapply_overlays: true + collection_files: + - file: config/Movies.yml + overlay_files: + - file: config/Overlays.yml + ``` + +??? blank "`reset_overlays` - Used to reset overlays.<a class="headerlink" href="#reset-overlays" title="Permanent link">¶</a>" + + <div id="reset-overlays" />Used to reset overlays from this library only. This will reset overlays to every item in + your library to your source choice. This will use the reset image when overlaying items in your library. + + ???+ warning "Proceed with Caution" + + Utill set to `false` or removed this will reset all posters to the desired source on each run and will reapply + all overlays on each run, which will result in [image bloat](../pmm/scripts/image-cleanup.md). + + <hr style="margin: 0px;"> + + **Attribute:** `reset_overlays` + + **Accepted Values:** `plex` or `tmdb` + + **Default Value:** `None` + + ???+ example "Example" + + ```yaml + libraries: + Movies: + reset_overlays: tmdb + collection_files: + - file: config/Movies.yml + overlay_files: + - file: config/Overlays.yml + ``` + +??? blank "`schedule_overlays` - Used to schedule overlays.<a class="headerlink" href="#schedule-overlays" title="Permanent link">¶</a>" + + <div id="schedule-overlays" />Used to schedule overlays to run when desired. Overlays are applied all at once in a + batch therfore you cannot schedule individual Overlay Files, as any unscheduled overlay file will be removed each + time PMM is run. + + <hr style="margin: 0px;"> + + **Attribute:** `schedule_overlays` + + **Accepted Values:** [Any Schedule Option](schedule.md) + + **Default Value:** `daily` + + ???+ example "Example" + + ```yaml + libraries: + TV Shows: + schedule: weekly(sunday) + collection_files: + - file: config/TV Shows.yml + overlay_files: + - file: config/Overlays.yml + ``` + +??? blank "`settings` - Used to override global [`setting` attributes](settings.md) for this library only.<a class="headerlink" href="#settings" title="Permanent link">¶</a>" + + <div id="settings" />Used to override global [`setting` attributes](settings.md) for this library only. + + <hr style="margin: 0px;"> + + **Attribute:** `settings` + + **Accepted Values:** Any [`setting`](settings.md) attribute that overrides a global value. + + **Default Value:** Global Value + + ???+ example "Example" + + ```yaml + libraries: + Movies: + collection_files: + - pmm: imdb + settings: + asset_directory: config/asssets/Movies + ``` + +??? blank "`plex` - Used to override global [`plex` attributes](plex.md) for this library only.<a class="headerlink" href="#plex" title="Permanent link">¶</a>" + + <div id="plex" />Used to override global [`plex` attributes](plex.md) for this library only. + + **`plex` Attribute is required either here or globally** + + <hr style="margin: 0px;"> + + **Attribute:** `plex` + + **Accepted Values:** Any [`plex`](plex.md) attribute that overrides a global value. + + **Default Value:** Global Value + + ???+ example "Example" + + ```yaml + libraries: + Movies: + collection_files: + - file: config/Movies.yml + Movies_on_Second_Plex: + library_name: Movies + collection_files: + - file: config/Movies.yml + plex: + url: http://plex.boing.bong + token: SOME_TOKEN + timeout: 360 + db_cache: 8192 + ... + plex: + url: http://plex.bing.bang + token: SOME_TOKEN + timeout: 60 + db_cache: 4096 + clean_bundles: false + empty_trash: false + optimize: false + ... + ``` + +??? blank "`radarr` - Used to override global [`radarr` attributes](radarr.md) for this library only.<a class="headerlink" href="#radarr" title="Permanent link">¶</a>" + + <div id="radarr" />Used to override global [`radarr` attributes](radarr.md) for this library only. + + <hr style="margin: 0px;"> + + **Attribute:** `radarr` + + **Accepted Values:** Any [`radarr`](radarr.md) attribute that overrides a global value. + + **Default Value:** Global Value + + ???+ example "Example" + + ```yaml + libraries: + Library01: # this library uses the default radarr config + collection_files: + - file: config/Movies.yml + + Library02: # this library overrides radarr root path and profile + collection_files: + - file: config/Movies.yml + radarr: + root_folder_path: /data/media/movies/tony + quality_profile: Better + + Library03: # this library overrides radarr quality profile + collection_files: + - file: config/Movies.yml + radarr: + quality_profile: Best + + Library04: # this library uses the 4K radarr instance + collection_files: + - file: config/Movies.yml + radarr: + url: https://radarr-4k.bing.bang + token: SOME_OTHER_TOKEN + root_folder_path: /data/media/movies/geezer + quality_profile: Bestest + + Library05: # movies get added by a custom script so they should get added to radarr-4k + collection_files: + - file: config/Movies.yml + radarr: + url: https://radarr-4k.bing.bang + token: SOME_OTHER_TOKEN + root_folder_path: /data/media/movies/bill + quality_profile: Bestest + add_existing: true + sonarr_path: /data/media/movies/bill + plex_path: /mnt/unionfs/movies/bill + ... + radarr: + url: https://radarr.bing.bang + token: SOME_TOKEN + quality_profile: Good + add_missing: true + add_existing: false + upgrade_existing: false + root_folder_path: /movies + monitor: movie + availability: released + tag: + search: false + radarr_path: + plex_path: + ... + ``` + +??? blank "`sonarr` - Used to override global [`sonarr` attributes](sonarr.md) for this library only.<a class="headerlink" href="#sonarr" title="Permanent link">¶</a>" + + <div id="sonarr" />Used to override global [`sonarr` attributes](sonarr.md) for this library only. + + <hr style="margin: 0px;"> + + **Attribute:** `sonarr` + + **Accepted Values:** Any [`sonarr`](sonarr.md) attribute that overrides a global value. + + **Default Value:** Global Value + + ???+ example "Example" + + ```yaml + libraries: + Library01: # this library uses the default sonarr config + collection_files: + - file: config/TV.yml + + Library02: # this library overrides sonarr root path and profile + collection_files: + - file: config/TV.yml + sonarr: + root_folder_path: /data/media/shows/tony + quality_profile: Better + + Library03: # this library overrides sonarr quality profile + collection_files: + - file: config/TV.yml + sonarr: + quality_profile: Best + + Library04: # this library uses the 4K sonarr instance + collection_files: + - file: config/TV.yml + sonarr: + url: https://sonarr-4k.bing.bang + token: SOME_OTHER_TOKEN + root_folder_path: /data/media/shows/geezer + quality_profile: Bestest + + Library05: # shows get added by a custom script so they should get added to sonarr-4k + collection_files: + - file: config/TV.yml + sonarr: + url: https://sonarr-4k.bing.bang + token: SOME_OTHER_TOKEN + root_folder_path: /data/media/shows/bill + quality_profile: Bestest + add_existing: true + sonarr_path: /data/media/shows/bill + plex_path: /mnt/unionfs/shows/bill + + ... + sonarr: + url: https://sonarr.bing.bang + token: SOME_TOKEN + add_missing: false + add_existing: false + upgrade_existing: false + root_folder_path: /data/media/shows/ozzy + monitor: all + quality_profile: Good + language_profile: English + series_type: standard + season_folder: true + tag: + search: false + cutoff_search: false + sonarr_path: + plex_path: + ... + ``` + +??? blank "`tautulli` - Used to override global [`tautulli` attributes](tautulli.md) for this library only.<a class="headerlink" href="#tautulli" title="Permanent link">¶</a>" + + <div id="tautulli" />Used to override global [`tautulli` attributes](tautulli.md) for this library only. + + <hr style="margin: 0px;"> + + **Attribute:** `tautulli` + + **Accepted Values:** Any [`tautulli`](tautulli.md) attribute that overrides a global value. + + **Default Value:** Global Value + + ???+ example "Example" + + ```yaml + libraries: + Movies: + collection_files: + - file: config/Movies.yml + TV Shows: + collection_files: + - file: config/TV.yml + tautulli: + url: http://192.168.1.14:8659 + apikey: SOME_KEY + ... + tautulli: + url: http://192.168.1.12:8659 + apikey: SOME_KEY + ... + ``` ### Example @@ -74,207 +685,3 @@ This example is an advanced version of the library mappings which highlights som tag: pmm search: false ``` - -### Attributes - -The available attributes for each library are as follows: - -| Attribute | Description | -|:----------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| [`library_name`](#library-name) | Used to specify the Library's name.<br>*required only when trying to use multiple libraries with the same name.*<br>**Values:** Library Name<br>**Default:** Base Attribute Name | -| [`collection_files`](#collection-file) | Used to define [Collection Files](data/collections.md).<br>**Values:** Location of Collection YAML files.<br>**Default:** `/config/<<MAPPING_NAME>>.yml` | -| [`metadata_files`](#metadata-file) | Used to define [Metadata Files](data/collections.md).<br>**Values:** Location of Metadata YAML files. | -| [`overlay_files`](#overlay-file) | Used to define [Overlay Files](data/overlays.md) .<br>**Values:** Location of Overlay YAML files. | -| [`report_path`](#report-path) | Location to create the YAML file listing added, removed, filtered, and missing items for this library.<br>**Values:** Location of the report file.<br>**Default:** `/config/<<MAPPING_NAME>>_report.yml` | -| [`template_variables`](#library-template-variables) | Library template variables to be applied to every Collection, Metadata, and Overlay file run.<br>**Values:** Values are specified by each particular file. | -| [`schedule`](../builders/details/schedule.md) | Used to schedule when this library is run.<br>**Values:** Any [schedule option](../builders/details/schedule.md)<br>**Default:** `daily` | -| [`operations`](operations.md) | Used to specify Library Operations to run.<br>**Values:** Any [Library Operation](operations.md) | -| [`settings`](settings.md) | Used to override global `setting` values for this library only.<br>**Values:** Any `setting` attribute that overrides a global value.<br>**Default:** global value | -| [`plex`](plex.md) | Used to override global `plex` values for this library only. **`plex` Attribute is required either here or globally**<br>**Values:** Any `plex` attribute that overrides a global value.<br>**Default:** global value | -| [`radarr`](radarr.md) | Used to override global `radarr` values for this library only.<br>**Values:** Any `radarr` attribute that overrides a global value.<br>**Default:** global value | -| [`sonarr`](sonarr.md) | Used to override global `sonarr` values for this library only.<br>**Values:** Any `sonarr` attribute that overrides a global value.<br>**Default:** global value | -| [`tautulli`](tautulli.md) | Used to override global `tautulli` values for this library only.<br>**Values:** Any `tautulli` attribute that overrides a global value.<br>**Default:** global value | - -### Library Name - -Each library that the user wants Plex Meta Manager to interact with must be documented with a library attribute. A library attribute is represented by the mapping name (i.e. `Movies` or `TV Shows`), this must have a unique name that correlates with a library of the same name within the Plex Media Server. In the situation that two servers are being connected to which both have libraries of the same name, the `library_name` attribute can be utilized to specify the real Library Name, whilst the library attribute's mapping name can be made into a placeholder. This is showcased below: - -???+ Library Name Example - - ```yaml - libraries: - Movies01: - library_name: Movies - Movies02: - library_name: Movies - plex: - url: http://192.168.1.35:32400 - token: #################### - TV Shows: - Anime: - plex: - url: http://192.168.1.12:32400 - token: #################### - ``` - - * In this example, `"Movies01"`, `"TV Shows"`, and `"Anime"` will all use the global plex server (**http://192.168.1.12:32400**) which is defined using the global `plex` mapping. `"Movies02"` will use the plex server **http://192.168.1.35:32400** which is defined under its `plex` mapping over the global mapping. - -### Collection File - -The `collection_files` attribute is used to define [Collection Files](data/collections.md) by specifying the path type and path of the files that will be executed against the parent library. See [Path Types](../builders/files.md#paths) for how to define them. - -```yaml -libraries: - TV Shows: - collection_files: - - file: config/TV Shows.yml - - pmm: tmdb - - pmm: network -``` - -By default, when `collection_files` is missing Plex Meta Manager will look within the root PMM directory for a collection file called `<MAPPING_NAME>.yml`. In this example, Plex Meta Manager will look for a file named `TV Shows.yml`. - -```yaml -libraries: - TV Shows: -``` - -### Metadata File - -The `metadata_files` attribute is used to define Metadata Files by specifying the path of the files that will be executed against the parent library. See [Path Types](../builders/files.md#paths) for how to define them. - -???+ tip - - As of Plex Meta Manager 1.20.0 "Metadata Files" refers to YAML files which refers to managing the metadata of items [movies, shows, music] within your library, and "Collection Files" refers to YAML files which define Collections. - - In previous version of Plex Meta Manager, "Metadata Files" could mean either of the above. - - -```yaml -libraries: - TV Shows: - metadata_files: - - file: config/metadata.yml -``` - -### Overlay File - -The `overlay_files` attribute is used to define [Overlay Files](data/overlays.md) by specifying the path type and path of the files that will be executed against the parent library. See [Path Types](../builders/files.md#paths) for how to define them. - -```yaml -libraries: - TV Shows: - collection_files: - - file: config/TV Shows.yml - overlay_files: - - file: config/Overlays.yml -``` - -### Special Overlay File Calls - -#### Remove Overlays - - -You can remove overlays from a library by adding `remove_overlays: true` to `overlay_files`. - -???+ warning "Proceed with Caution" - - This will remove all overlays from your library, but will not delete the overlaid images from your system, resulting in [image bloat](../pmm/essentials/scripts/image-cleanup.md). - - ```yaml - libraries: - TV Shows: - collection_files: - - file: config/TV Shows.yml - overlay_files: - - remove_overlays: true - - file: config/Overlays.yml - ``` - -#### Reapply Overlays - -You can reapply overlays from a library by adding `reapply_overlays: true` to `overlay_files`. This will reapply overlays to every item in your library. - -???+ danger "Important Notice" - - This will reapply all overlays on each run until this attribute is set to `false`, which will result in [image bloat](../pmm/essentials/scripts/image-cleanup.md). - - ```yaml - libraries: - TV Shows: - collection_files: - - file: config/TV Shows.yml - overlay_files: - - reapply_overlays: true - - file: config/Overlays.yml - ``` - -#### Reset Overlays - -You can reset overlays from a library by adding `reset_overlays` to `overlay_files` and setting it to either `tmdb` or `plex` depending on where you want to source the images from. This will use the reset image when overlaying items in your library. - -???+ danger "Important Notice" - - This will reset all posters to the desired source on each run until this attribute is set to `false`, and will reapply all overlays on each run, which will result in [image bloat](../pmm/essentials/scripts/image-cleanup.md). - - - ```yaml - libraries: - TV Shows: - collection_files: - - file: config/TV Shows.yml - overlay_files: - - reset_overlays: plex - - file: config/Overlays.yml - ``` - -### Schedule Overlays - -You can schedule all overlays from a library by adding `schedule` to `overlay_files` and setting it to [Any Schedule Option](../builders/details/schedule.md). - -You cannot schedule individual Overlay Files, as any unscheduled overlay file will be removed each time PMM is run. - -???+ tip "Example" - - ```yaml - libraries: - TV Shows: - collection_files: - - file: config/TV Shows.yml - overlay_files: - - schedule: weekly(sunday) - - file: config/Overlays.yml - ``` - -### Report Path - -The `report_path` attribute is used to define where to save the YAML Report file. This file is used to store information about what media is added, removed, filtered, and missing from the Plex library compared to what is expected from the Metadata file. - -If your Metadata file creates a collection with `Movie 1`, `Movie 2` and `Movie 3` but your Plex library only has `Movie 1` and `Movie 3`, then the missing YAML file will be updated to inform the user that `Movie 2` was missing from the library. - -The default and recommended path is `/config/<<MAPPING_NAME>>report.yml` where `<<MAPPING_NAME>>` is the name of the library attribute, as showcased below: - -```yaml -libraries: - Movies: - report_path: /config/Movies_report.yml -``` - -Alternatively, Report YAML files can be placed in their own directory, as below: - -```yaml -libraries: - Movies: - report_path: /config/reports/Movies.yml -``` - -### Library Template Variables - -Library template variables to be applied to every Metadata and Overlay file run. - -```yaml -libraries: - Movies: - template_variables: - collection_mode: hide_items -``` diff --git a/docs/config/mdblist.md b/docs/config/mdblist.md index 6f91b3fb..4a54dfef 100644 --- a/docs/config/mdblist.md +++ b/docs/config/mdblist.md @@ -20,4 +20,5 @@ mdblist: The MdbList apikey can be found [here](https://mdblist.com/preferences/). - The free apikey is limited to 1000 requests per day so if you hit your limit the program should be able to pick up where it left off the next day as long as the `cache` [Setting](settings.md#cache) is enabled + The free apikey is limited to 1000 requests per day so if you hit your limit the program should be able to pick up + where it left off the next day as long as the `cache` [Setting](settings.md#cache) is enabled. diff --git a/docs/config/myanimelist.md b/docs/config/myanimelist.md index 2dfc5c67..056986b9 100644 --- a/docs/config/myanimelist.md +++ b/docs/config/myanimelist.md @@ -1,6 +1,7 @@ # MyAnimeList Attributes -Configuring [MyAnimeList](https://myanimelist.net/) is optional but is required for MyAnimeList based collections and operations to function. +Configuring [MyAnimeList](https://myanimelist.net/) is optional but is required for MyAnimeList based collections and +operations to function. A `mal` mapping is in the root of the config file. @@ -26,53 +27,59 @@ mal: All other attributes will be filled in by Plex Meta Manager. -To connect to MyAnimeList.net you must create a MyAnimeList application and supply Plex Meta Manager the `client id` and `client secret` provided, please do the following: +To connect to MyAnimeList.net you must create a MyAnimeList application and supply Plex Meta Manager the `client id` and +`client secret` provided, please do the following: -1. [Click here to create a MyAnimeList API application.](https://myanimelist.net/apiconfig/create) -2. Enter an `App Name` for the application. Ex. `Plex Meta Manager` -3. Select `web` for `App Type`. -4. Enter an `App Description` for the application Ex. `Plex Meta Manager manages metadata and collections` -5. Enter `http://localhost/` for `App Redirect URL`. -6. Enter `https://github.com/meisnate12/Plex-Meta-Manager` for `Homepage URL`. -7. Select `non-commercial` for `Commercial / Non-Commercial`. -8. Enter any name under `Name / Company Name`. -9. Select `hobbyist` for `Purpose of Use`. -10. Agree to the API License and Developer Agreement and hit the `Submit` button -11. You should see `Successfully registered.` followed by a link that says `Return to list` click this link. -12. On this page Click the `Edit` button next to the application you just created. -13. Record the `Client ID` and `Client Secret` found on the application page. -14. Go to this URL but replace `CLIENT_ID` with your Client ID +1. [Click here to create a MyAnimeList API application.](https://myanimelist.net/apiconfig/create) +2. Enter an `App Name` for the application. Ex. `Plex Meta Manager` +3. Select `web` for `App Type`. +4. Enter an `App Description` for the application Ex. `Plex Meta Manager manages metadata and collections` +5. Enter `http://localhost/` for `App Redirect URL`. +6. Enter `https://github.com/meisnate12/Plex-Meta-Manager` for `Homepage URL`. +7. Select `non-commercial` for `Commercial / Non-Commercial`. +8. Enter any name under `Name / Company Name`. +9. Select `hobbyist` for `Purpose of Use`. +10. Agree to the API License and Developer Agreement and hit the `Submit` button +11. You should see `Successfully registered.` followed by a link that says `Return to list` click this link. +12. On this page Click the `Edit` button next to the application you just created. +13. Record the `Client ID` and `Client Secret` found on the application page. +14. Go to this URL but replace `CLIENT_ID` with your Client ID ``` https://myanimelist.net/v1/oauth2/authorize?response_type=code&client_id=CLIENT_ID&code_challenge=k_UHwN_eHAPQVXiceC-rYGkozKqrJmKxPUIUOBIKo1noq_4XGRVCViP_dGcwB-fkPql8f56mmWj5aWCa2HDeugf6sRvnc9Rjhbb1vKGYLY0IwWsDNXRqXdksaVGJthux ``` -15. You should see a page that looks like this +15. You should see a page that looks like this - ![MAL Details](mal.png) + ![MAL Details](images/mal.png) -16. Click "Allow" -17. You will be taken to a page that will not load. That's fine and expected. +16. Click "Allow" +17. You will be taken to a page that will not load. That's fine and expected. - ![Localhost Failure](localhost-fail.png) + ![Localhost Failure](images/localhost-fail.png) -18. Copy the URL, which will be `localhost/?code=BLAH` and paste in your config file next to `localhost_url`. +18. Copy the URL, which will be `localhost/?code=BLAH` and paste in your config file next to `localhost_url`. - **If you do not see an error as above but instead get taken to some seemingly random website, you probably have a webserver running on your local computer, probably from some sort of tutorial if you don't recall having set one up. For example, some Docker tutorials have you start up local web servers.** + **If you do not see an error as above but instead get taken to some seemingly random website, you probably have a + webserver running on your local computer, probably from some sort of tutorial if you don't recall having set one + up. For example, some Docker tutorials have you start up local web servers.** You will need to stop that web server while you're doing this in order to grab that localhost URL. -19. Run PMM and the auth will be completed. +19. Run PMM and the auth will be completed. ## Alternative Way of Letting PMM make the URL You can record just your `client_id` and `client_secret` and pmm will create the url for you described below. -On the first run, Plex Meta Manager will walk the user through the OAuth flow by producing a MyAnimeList URL for the user to follow. +On the first run, Plex Meta Manager will walk the user through the OAuth flow by producing a MyAnimeList URL for the +user to follow. -After following the URL login to MyAnimeList.net and authorize the application by clicking the `Allow` button which will redirect the user to `http://localhost/`. +After following the URL login to MyAnimeList.net and authorize the application by clicking the `Allow` button which will +redirect the user to `http://localhost/`. -Copy the entire URL and paste it into Plex Meta Manager and if the URL is correct then Plex Meta Manager will populate the `authorization` sub-attributes to use in subsequent runs. +Copy the entire URL and paste it into Plex Meta Manager and if the URL is correct then Plex Meta Manager will populate +the `authorization` sub-attributes to use in subsequent runs. On first run: ``` @@ -89,15 +96,17 @@ On first run: Click on that URL to open your browser to MyAnimeList; you'll be looking at a page like this: -![MAL Details](mal.png) +![MAL Details](images/mal.png) Click "Allow", and you will be taken to a page that will not load. That's fine and expected. -![Localhost Failure](localhost-fail.png) +![Localhost Failure](images/localhost-fail.png) Copy the URL, which will be `localhost/?code=BLAH` and paste it at the prompt. -**If you do not see an error as above but instead get taken to some seemingly random website, you probably have a webserver running on your local computer, probably from some sort of tutorial if you don't recall having set one up. For example, some Docker tutorials have you start up local web servers.** +**If you do not see an error as above but instead get taken to some seemingly random website, you probably have a +webserver running on your local computer, probably from some sort of tutorial if you don't recall having set one up. +For example, some Docker tutorials have you start up local web servers.** You will need to stop that web server while you're doing this in order to grab that localhost URL. @@ -111,11 +120,16 @@ You will need to stop that web server while you're doing this in order to grab t ### OAuth Flow using Docker -To authenticate MyAnimeList the first time, you need run the container with the `-it` flags in order to walk through the OAuth flow mentioned above. Once you have the MyAnimeList authentication data saved into the YAML, you'll be able to run the container normally. +To authenticate MyAnimeList the first time, you need run the container with the `-it` flags in order to walk through the +OAuth flow mentioned above. Once you have the MyAnimeList authentication data saved into the YAML, you'll be able to run +the container normally. ## Online Authorization Script -Plex Meta Manager requires interactive mode to be able to enter the Client ID and Client Secret. Some systems (namely NAS) make this difficult to accomplish. Chazlarson has developed an online script that can be run to generate the MAL and Trakt authentication outside of Plex Meta Manager and then paste the end-result directly into the configuration file. +Plex Meta Manager requires interactive mode to be able to enter the Client ID and Client Secret. Some systems (namely +NAS) make this difficult to accomplish. Chazlarson has developed an online script that can be run to generate the MAL +and Trakt authentication outside of Plex Meta Manager and then paste the end-result directly into the configuration +file. The Online Auth tool can be found [here](https://replit.com/@chazlarson/MALAuth). diff --git a/docs/config/notifiarr.md b/docs/config/notifiarr.md index 0c157159..d0200b99 100644 --- a/docs/config/notifiarr.md +++ b/docs/config/notifiarr.md @@ -1,6 +1,7 @@ # Notifiarr Attributes -Configuring [Notifiarr](https://notifiarr.com) is optional but can allow you to send the [webhooks](webhooks.md) straight to notifiarr. +Configuring [Notifiarr](https://notifiarr.com) is optional but can allow you to send the [webhooks](webhooks.md) +straight to notifiarr. A `notifiarr` mapping is in the root of the config file. @@ -15,7 +16,8 @@ notifiarr: |:----------|:-----------------------------------------|:------------------------------------------:| | `apikey` | Notifiarr API Key | :fontawesome-solid-circle-check:{ .green } | -Once you have added the apikey your config.yml you have to add `notifiarr` to any [webhook](webhooks.md) to send that notification to Notifiarr. +Once you have added the apikey your config.yml you have to add `notifiarr` to any [webhook](webhooks.md) to send that +notification to Notifiarr. ```yaml webhooks: diff --git a/docs/config/omdb.md b/docs/config/omdb.md index fa481f17..aa98e507 100644 --- a/docs/config/omdb.md +++ b/docs/config/omdb.md @@ -20,4 +20,5 @@ omdb: The OMDb apikey can be generated [here](http://www.omdbapi.com/apikey.aspx). - The free apikey is limited to 1000 requests per day so if you hit your limit the program should be able to pick up where it left off the next day as long as the `cache` [Setting](settings.md#cache) is enabled + The free apikey is limited to 1000 requests per day so if you hit your limit the program should be able to pick up + where it left off the next day as long as the `cache` [Setting](settings.md#cache) is enabled. diff --git a/docs/config/operations.md b/docs/config/operations.md index 0dfe1754..6b099f19 100644 --- a/docs/config/operations.md +++ b/docs/config/operations.md @@ -8,678 +8,752 @@ There are a variety of Library Operations that can be utilized in a library. Within each library, operations can be defined by using the `operations` attribute, as demonstrated below. -```yaml -libraries: - Movies: - collection_files: - - pmm: imdb - operations: - mass_critic_rating_update: tmdb - split_duplicates: true -``` - -The available attributes for the operations attribute are as follows - -| Attribute | Description | Movies | Shows | Music | -|:----------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------:|:-------------------------------------------:|:-------------------------------------------:| -| [Assets For All](#assets-for-all) | Search in assets for images for every item in your library. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| [Delete Collections](#delete-collections) | Deletes collections based on a set of given attributes. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| [Mass Genre Update](#mass-genre-update) | Updates every item's genres in the library to the chosen site's genres. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| [Mass Content Rating Update](#mass-content-rating-update) | Updates every item's content rating in the library to the chosen site's content rating. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| [Mass Original Title Update](#mass-original-title-update) | Updates every item's original title in the library to the chosen site's original title. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| [Mass Studio Update](#mass-studio-update) | Updates every item's studio in the library to the chosen site's studio. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| [Mass Originally Available Update](#mass-originally-available-update) | Updates every item's originally available date in the library to the chosen site's date. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| [Mass * Rating Update](#mass--rating-update) | Updates every item's audience/critic/user rating in the library to the chosen site's rating. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| [Mass Episode * Rating Update](#mass-episode--rating-update) | Updates every item's episode's audience/critic/user rating in the library to the chosen site's rating. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| [Mass Poster Update](#mass-poster-update) | Updates every item's poster to the chosen sites poster. Will fallback to `plex` if the given option fails. Assets will be used over anything else. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| [Mass Background Update](#mass-background-update) | Updates every item's background to the chosen sites background. Will fallback to `plex` if the given option fails. Assets will be used over anything else. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| [Mass IMDb Parental Labels](#mass-imdb-parental-labels) | Updates every item's labels in the library to match the IMDb Parental Guide. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [Mass Collection Mode](#mass-collection-mode) | Updates every Collection in your library to the specified Collection Mode. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [Update Blank Track Titles](#update-blank-track-titles) | Search though every track in a music library and replace any blank track titles with the tracks sort title. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | -| [Remove Title Parentheses](#remove-title-parentheses) | Search through every title and remove all ending parentheses in an items title if the title is not locked. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| [Split Duplicates](#split-duplicates) | Splits all duplicate movies/shows found in this library. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| [Radarr Add All](#radarr-add-all) | Adds every item in the library to Radarr. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [Radarr Remove By Tag](#radarr-remove-by-tag) | Removes every item from Radarr with the Tags given. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [Sonarr Add All](#sonarr-add-all) | Adds every item in the library to Sonarr. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| [Sonarr Remove By Tag](#sonarr-remove-by-tag) | Removes every item from Sonarr with the Tags given. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| [Genre Mapper](#genre-mapper) | Allows genres to be changed to other genres or be removed from every item in your library. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| [Content Rating Mapper](#content-rating-mapper) | Allows content ratings to be changed to other content ratings or be removed from every item in your library. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| [Metadata Backup](#metadata-backup) | Creates/Maintains a PMM Metadata File with a full `metadata` mapping based on the library's items locked attributes. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | - -## Assets For All - -Search in assets for images for every item in your library. - -**Attribute:** `assets_for_all` - -**Values:** `true` or `false` +When not using a list under `operations` the whole operations value is one block. ???+ example ```yaml libraries: Movies: - # Metadata and Overlay files here - operations: - assets_for_all: false - ``` - -## Delete Collections - -Deletes collections based on a set of given attributes. The Collection must match all set attributes to be deleted. - -**Attribute:** `delete_collections` - -**Values:** There are a few different options to determine how the `delete_collections` works. - -| Attribute | Description | -|:-------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `managed` | **Values:**<br>`true`: Collection must be a Managed Collection to be deleted (the collection has the `PMM` label)<br>`false`: Collection must be an Unmanaged Collection to be deleted (the collection does not have the `PMM` label) | -| `configured` | **Values:**<br>`true`: Collection must be a Configured Collection to be deleted (collection is in the config file of the specific PMM run)<br>`false`: Collection must be an Unconfigured Collection to be deleted (collection is not in the config file of the specific PMM run).<br>**The collection does not need to be scheduled to be considered configured and only needs to be in the config file.** | -| `less` | Collection must contain less then the given number of items to be deleted.<br>**Values:** Number greater than 0 | - -???+ example - - Removes all Managed Collections (Collections with the `PMM` Label) that are not configured in the Current Run. - - ```yaml - libraries: - Movies: - # Metadata and Overlay files here - operations: - delete_collections: - configured: false - managed: true - ``` - -## Mass Genre Update - -Updates every item's genres in the library to the chosen site's genres. - -**Attribute:** `mass_genre_update` - -**Values:** - -| Value | Description | -|:------------|:---------------------------------------------------------------| -| `tmdb` | Use TMDb for Genres | -| `tvdb` | Use TVDb for Genres | -| `imdb` | Use IMDb for Genres | -| `omdb` | Use IMDb through OMDb for Genres | -| `anidb` | Use AniDB Main Tags for Genres | -| `anidb_3_0` | Use AniDB Main Tags and All 3 Star Tags and above for Genres | -| `anidb_2_5` | Use AniDB Main Tags and All 2.5 Star Tags and above for Genres | -| `anidb_2_0` | Use AniDB Main Tags and All 2 Star Tags and above for Genres | -| `anidb_1_5` | Use AniDB Main Tags and All 1.5 Star Tags and above for Genres | -| `anidb_1_0` | Use AniDB Main Tags and All 1 Star Tags and above for Genres | -| `anidb_0_5` | Use AniDB Main Tags and All 0.5 Star Tags and above for Genres | -| `mal` | Use MyAnimeList for Genres | -| `lock` | Lock Genre Field | -| `unlock` | Unlock Genre Field | -| `remove` | Remove all Genres and Lock Field | -| `reset` | Remove all Genres and Unlock Field | - -???+ example - - ```yaml - libraries: - Movies: - # Metadata and Overlay files here - operations: - mass_genre_update: imdb - ``` - - -## Mass Content Rating Update - -Updates every item's content rating in the library to the chosen site's content rating. - -**Attribute:** `mass_content_rating_update` - -**Values:** - -| Value | Description | -|:-------------------|:-----------------------------------------------------------------------------| -| `mdb` | Use MdbList for Content Ratings | -| `mdb_commonsense` | Use Commonsense Rating through MDbList for Content Ratings | -| `mdb_commonsense0` | Use Commonsense Rating with Zero Padding through MDbList for Content Ratings | -| `omdb` | Use IMDb through OMDb for Content Ratings | -| `mal` | Use MyAnimeList for Content Ratings | -| `lock` | Lock Content Rating Field | -| `unlock` | Unlock Content Rating Field | -| `remove` | Remove Content Rating and Lock Field | -| `reset` | Remove Content Rating and Unlock Field | - -???+ example - - ```yaml - libraries: - Movies: - # Metadata and Overlay files here - operations: - mass_content_rating_update: omdb - ``` - -## Mass Original Title Update - -Updates every item's original title in the library to the chosen site's original title. - -**Attribute:** `mass_original_title_update` - -**Values:** - -| Value | Description | -|:-----------------|:------------------------------------------------------------------------------------------------| -| `anidb` | Use AniDB Main Title for Original Titles | -| `anidb_official` | Use AniDB Official Title based on the language attribute in the config file for Original Titles | -| `mal` | Use MyAnimeList Main Title for Original Titles | -| `mal_english` | Use MyAnimeList English Title for Original Titles | -| `mal_japanese` | Use MyAnimeList Japanese Title for Original Titles | -| `lock` | Lock Original Title Field | -| `unlock` | Unlock Original Title Field | -| `remove` | Remove Original Title and Lock Field | -| `reset` | Remove Original Title and Unlock Field | - -???+ example - - ```yaml - libraries: - Anime: - # Metadata and Overlay files here - operations: - mass_original_title_update: anidb_official - ``` - -## Mass Studio Update - -Updates every item's studio in the library to the chosen site's studio. - -**Attribute:** `mass_studio_update` - -**Values:** - -| Value | Description | -|:---------|:---------------------------------------| -| `anidb` | Use AniDB Animation Work for Studio | -| `mal` | Use MyAnimeList Studio for Studio | -| `tmdb` | Use TMDb Studio for Studio | -| `lock` | Lock Original Title Field | -| `unlock` | Unlock Original Title Field | -| `remove` | Remove Original Title and Lock Field | -| `reset` | Remove Original Title and Unlock Field | - -???+ example - - ```yaml - libraries: - Anime: - # Metadata and Overlay files here - operations: - mass_studio_update: mal - ``` - -## Mass Originally Available Update - -Updates every item's originally available date in the library to the chosen site's date. - -???+ tip - - As plex does not allow this field to be empty, using `remove` or `reset` will set the date to the Plex default date, which is `1969-12-31` - -**Attribute:** `mass_originally_available_update` - -**Values:** - -| Value | Description | -|:---------|:---------------------------------------------| -| `tmdb` | Use TMDb Release Date | -| `tvdb` | Use TVDb Release Date | -| `omdb` | Use IMDb Release Date through OMDb | -| `mdb` | Use MdbList Release Date | -| `anidb` | Use AniDB Release Date | -| `mal` | Use MyAnimeList Release Date | -| `lock` | Lock Originally Available Field | -| `unlock` | Unlock Originally Available Field | -| `remove` | Remove Originally Available and Lock Field | -| `reset` | Remove Originally Available and Unlock Field | - -???+ example - - ```yaml - libraries: - TV Shows: - # Metadata and Overlay files here - operations: - mass_originally_available_update: tvdb - ``` - -## Mass * Rating Update - -Updates every item's audience/critic/user rating in the library to the chosen site's rating. - -???+ warning "Important Note" - - This does not affect the icons displayed in the Plex UI. This will place the number of your choice in the relevant field in the Plex database. In other words, if Plex is configured to use Rotten Tomatoes ratings, then no matter what happens with this mass rating update operation, the icons in the Plex UI will remain Rotten Tomatoes. The human who decided to put TMDB ratings in the critic slot and Letterboxd ratings in the audience slot is the only party who knows that the ratings are no longer Rotten Tomatoes. One primary use of this feature is to put ratings overlays on posters. More information on what PMM can do with these ratings can be found [here](../pmm/install/guides/ratings.md). - -**Attribute:** `mass_audience_rating_update`/`mass_critic_rating_update`/`mass_user_rating_update` - -**Values:** - -| Value | Description | -|:-----------------------|:----------------------------------------------------| -| `tmdb` | Use TMDb Rating | -| `imdb` | Use IMDb Rating | -| `trakt_user` | Use Trakt User's Personal Rating | -| `omdb` | Use IMDbRating through OMDb | -| `mdb` | Use MdbList Score | -| `mdb_average` | Use MdbList Average Score | -| `mdb_imdb` | Use IMDb Rating through MDbList | -| `mdb_metacritic` | Use Metacritic Rating through MDbList | -| `mdb_metacriticuser` | Use Metacritic User Rating through MDbList | -| `mdb_trakt` | Use Trakt Rating through MDbList | -| `mdb_tomatoes` | Use Rotten Tomatoes Rating through MDbList | -| `mdb_tomatoesaudience` | Use Rotten Tomatoes Audience Rating through MDbList | -| `mdb_tmdb` | Use TMDb Rating through MDbList | -| `mdb_letterboxd` | Use Letterboxd Rating through MDbList | -| `mdb_myanimelist` | Use MyAnimeList Rating through MDbList | -| `anidb_rating` | Use AniDB Rating | -| `anidb_average` | Use AniDB Average | -| `anidb_score` | Use AniDB Review Score | -| `mal` | Use MyAnimeList Score | -| `lock` | Lock Rating Field | -| `unlock` | Unlock Rating Field | -| `remove` | Remove Rating and Lock Field | -| `reset` | Remove Rating and Unlock Field | - -???+ example - - ```yaml - libraries: - Movies: - # Metadata and Overlay files here - operations: - mass_audience_rating_update: mdb_average - mass_critic_rating_update: mdb_metacritic - mass_user_rating_update: imdb - ``` -## Mass Episode * Rating Update - -Updates every item's episode's audience/critic/user rating in the library to the chosen site's rating. - -???+ warning "Important Note" - - This does not affect the icons displayed in the Plex UI. This will place the number of your choice in the relevant field in the Plex database. In other words, if Plex is configured to use Rotten Tomatoes ratings, then no matter what happens with this mass rating update operation, the icons in the Plex UI will remain Rotten Tomatoes. The human who decided to put TMDB ratings in the critic slot and Letterboxd ratings in the audience slot is the only party who knows that the ratings are no longer Rotten Tomatoes. One primary use of this feature is to put ratings overlays on posters. More information on what PMM can do with these ratings can be found [here](../pmm/install/guides/ratings.md). - -**Attribute:** `mass_episode_audience_rating_update`/`mass_episode_critic_rating_update`/`mass_episode_user_rating_update` - -**Values:** - -| Value | Description | -|:---------|:-------------------------------| -| `tmdb` | Use TMDb Rating | -| `imdb` | Use IMDb Rating | -| `lock` | Lock Rating Field | -| `unlock` | Unlock Rating Field | -| `remove` | Remove Rating and Lock Field | -| `reset` | Remove Rating and Unlock Field | - -???+ example - - ```yaml - libraries: - TV Shows: - # Metadata and Overlay files here - operations: - mass_episode_audience_rating_update: tmdb - mass_episode_critic_rating_update: remove - mass_episode_user_rating_update: imdb - ``` -## Mass Poster Update - -Updates every item's poster to the chosen sites poster. Will fall back to `plex` if the given option fails. Assets will be used over anything else. - -???+ warning - - When used in combination with Overlays, this could cause PMM to reset the poster and then reapply all overlays on each run, which will result in [image bloat](../pmm/essentials/scripts/image-cleanup.md). - -**Attribute:** `mass_poster_update` - -**Values:** There are a few different options to determine how the `mass_poster_update` works. - -| Attribute | Description | -|:--------------------|:----------------------------------------------------------------------------------------------------| -| `source` | Source of the poster update<br>**Values:** `tmdb`, `plex`, `lock`, or `unlock` | -| `seasons` | Update season posters while updating shows<br>**Default:** `true`<br>**Values:** `true` or `false` | -| `episodes` | Update episode posters while updating shows<br>**Default:** `true`<br>**Values:** `true` or `false` | - -???+ example - - ```yaml - libraries: - TV Shows: - # Metadata and Overlay files here - operations: - mass_poster_update: - source: tmdb - seasons: false - episodes: false - ``` - -## Mass Background Update - -Updates every item's background to the chosen sites background. Will fall back to `plex` if the given option fails. Assets will be used over anything else. - -???+ warning - - When used in combination with Overlays, this could cause PMM to reset the background and then reapply all overlays on each run, which will result in [image bloat](../pmm/essentials/scripts/image-cleanup.md). - -**Attribute:** `mass_background_update` - -**Values:** There are a few different options to determine how the `mass_background_update` works. - -| Attribute | Description | -|:--------------------|:--------------------------------------------------------------------------------------------------------| -| `source` | Source of the background update<br>**Values:** `tmdb`, `plex`, `lock`, or `unlock` | -| `seasons` | Update season backgrounds while updating shows<br>**Default:** `true`<br>**Values:** `true` or `false` | -| `episodes` | Update episode backgrounds while updating shows<br>**Default:** `true`<br>**Values:** `true` or `false` | - -???+ example - - ```yaml - libraries: - TV Shows: - # Metadata and Overlay files here - operations: - mass_background_update: - source: tmdb - seasons: false - episodes: false - ``` - -## Mass IMDb Parental Labels - -Updates every item's labels in the library to match the IMDb Parental Guide. - -**Attribute:** `mass_imdb_parental_labels` - -**Values:** - -| Value | Description | -|:-----------|:----------------------------------------------------------------------------------| -| `none` | Apply all Parental Labels with a value of `None`, `Mild`, `Moderate`, or `Severe` | -| `mild` | Apply all Parental Labels with a value of `Mild`, `Moderate`, or `Severe` | -| `moderate` | Apply all Parental Labels with a value of `Moderate` or `Severe` | -| `severe` | Apply all Parental Labels with a value of `Severe` | - -???+ example - - ```yaml - libraries: - TV Shows: - # Metadata and Overlay files here - operations: - mass_imdb_parental_labels: severe - ``` - -## Mass Collection Mode - -Updates every Collection in your library to the specified Collection Mode. - -**Attribute:** `mass_collection_mode` - -**Values:** - -| Value | Description | -|:-------------|:-----------------------------------| -| `default` | Library default | -| `hide` | Hide Collection | -| `hide_items` | Hide Items in this Collection | -| `show_items` | Show this Collection and its Items | - -???+ example - - ```yaml - libraries: - TV Shows: - # Metadata and Overlay files here - operations: - mass_collection_mode: hide - ``` - -## Update Blank Track Titles - -Search though every track in a music library and replace any blank track titles with the tracks sort title. - -**Attribute:** `update_blank_track_titles` - -**Values:** `true` or `false` - -???+ example - - ```yaml - libraries: - Music: - # Metadata and Overlay files here - operations: - update_blank_track_titles: true - ``` - -## Remove Title Parentheses - -Search through every title and remove all ending parentheses in an items title if the title is not locked. - -**Attribute:** `remove_title_parentheses` - -**Values:** `true` or `false` - -???+ example - - ```yaml - libraries: - Music: - # Metadata and Overlay files here - operations: - remove_title_parentheses: true - ``` - -## Split Duplicates - -Splits all duplicate movies/shows found in this library. - -**Attribute:** `split_duplicates` - -**Values:** `true` or `false` - -???+ example - - ```yaml - libraries: - Movies: - # Metadata and Overlay files here + collection_files: + - pmm: imdb operations: + mass_critic_rating_update: tmdb split_duplicates: true ``` -## Radarr Add All +## Operation Blocks -Adds every item in the library to Radarr. 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 paths you can use the `plex_path` and `radarr_path` [Radarr](radarr.md) details to convert the paths. - -**Attribute:** `radarr_add_all` - -**Values:** `true` or `false` +You can create individual blocks of operations by using a list under `operations` with each item in the list being a +"block" that can be individually scheduled. ???+ example ```yaml libraries: Movies: - # Metadata and Overlay files here + collection_files: + - pmm: imdb operations: - radarr_add_all: true + - schedule: weekly(friday) + mass_critic_rating_update: tmdb + - schedule: weekly(saturday) + split_duplicates: true ``` -## Radarr Remove By Tag +## Operation Attributes -Removes every item from Radarr with the Tags given. +??? blank "`assets_for_all` - Used to search the asset directories for images for all items in the library.<a class="headerlink" href="#assets-for-all" title="Permanent link">¶</a>" -**Attribute:** `radarr_remove_by_tag` - -**Values:** List or comma separated string of tags - -???+ example - - ```yaml - libraries: - Movies: - # Metadata and Overlay files here - operations: - radarr_remove_by_tag: mytag1, mytag2 - ``` - -## Sonarr Add All - -Adds every item in the library to Sonarr. 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 Sonarr paths you can use the `plex_path` and `sonarr_path` [Sonarr](sonarr.md) details to convert the paths. - -**Attribute:** `sonarr_add_all` - -**Values:** `true` or `false` - -???+ example - - ```yaml - libraries: - TV Shows: - # Metadata and Overlay files here - operations: - sonarr_add_all: true - ``` - -## Sonarr Remove By Tag - -Removes every item from Sonarr with the Tags given. - -**Attribute:** `sonarr_remove_by_tag` - -**Values:** List or comma separated string of tags - -???+ example - - ```yaml - libraries: - TV Shows: - # Metadata and Overlay files here - operations: - sonarr_remove_by_tag: mytag1, mytag2 - ``` - -## Genre Mapper - -Maps genres in your library to be changed to other genres. - -**Attribute:** `genre_mapper` - -**Values:** Each attribute under `genre_mapper` is a separate mapping and has two parts. - -* The key (`Action/Adventure, Action & Adventure` in the example below) is what genres you want mapped to the value. -* The value (`Action` in the example below) is what the genres will end up as. - -???+ example - - 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 - libraries: - Movies: - # Metadata and Overlay files here - operations: - genre_mapper: - "Action/Adventure": Action - "Action & Adventure": Action - Romantic Comedy: Comedy - ``` - - To just Remove a Genre without replacing it just set the Genre to nothing like this. - - ```yaml - libraries: - Movies: - # Metadata and Overlay files here - operations: - genre_mapper: - "Action/Adventure": Action - "Action & Adventure": Action - Romantic Comedy: - ``` - - The above example will change go through every item in your library and change the genre `Action/Adventure` or `Action & Adventure` to `Action` and remove every instance of the Genre `Romantic Comedy`. - -## Content Rating Mapper - -Maps content ratings in your library to be changed to other content ratings. - -**Attribute:** `content_rating_mapper` - -**Values:** Each attribute under `content_rating_mapper` is a separate mapping and has two parts. - -* The key (`PG`, `PG-13` in the example below) is what content ratings you want mapped to the value. -* The value (`Y-10` in the example below) is what the content ratings will end up as. - -???+ example - - This example will change go through every item in your library and change the content rating `PG` or `PG-13` to `Y-10` and `R` to `Y-17`. + <div id="assets-for-all" />Searches the asset directories for images for all items in the library. - ```yaml - libraries: - Movies: - # Metadata and Overlay files here - operations: - content_rating_mapper: - PG: Y-10 - "PG-13": Y-10 - R: Y-17 - ``` + <hr style="margin: 0px;"> - To just Remove a content rating without replacing it just set the content rating to nothing like this. + **Attribute:** `assets_for_all` - ```yaml - libraries: - Movies: - # Metadata and Overlay files here - operations: - content_rating_mapper: - PG: Y-10 - "PG-13": Y-10 - R: - ``` + **Accepted Values:** `true` or `false` + + ???+ example "Example" + + ```yaml + libraries: + Movies: + operations: + assets_for_all: false + ``` + +??? blank "`delete_collections` - Deletes collections based on a set of given attribute.<a class="headerlink" href="#delete-collections" title="Permanent link">¶</a>" + + <div id="delete-collections" />Deletes collections based on a set of given attributes. The Collection must match all + set attributes to be deleted. - The above example will change go through every item in your library and change the content rating `PG` or `PG-13` to `Y-10` and remove every instance of the content rating `R`. + <hr style="margin: 0px;"> + + **Attribute:** `assets_for_all` + + **Accepted Values:** There are a few different options to determine how the `delete_collections` works. + + <table class="clearTable"> + <tr><td>`managed: true`</td><td>Collection must be Managed to be deleted<br>(collection has the `PMM` label)</td></tr> + <tr><td>`managed: false`</td><td>Collection must be Unmanaged to be deleted<br>(collection does not have the `PMM` label)</td></tr> + <tr><td>`configured: true`</td><td>Collection must be Configured to be deleted<br>(collection is in the config file of the specific PMM run)</td></tr> + <tr><td>`configured: false`</td><td>Collection must be Unconfigured to be deleted<br>(collection is not in the config file of the specific PMM run)</td></tr> + <tr><td>`less: ###`</td><td>Collection must contain less then the given number of items to be deleted.<br>### is a Number greater than 0</td></tr> + </table> -## Metadata Backup + **The collection does not need to be scheduled to be considered configured and only needs to be in the config file.** -Creates/Maintains a Plex Meta Manager Metadata File with a full `metadata` mapping based on the library's items locked attributes. + ???+ example "Example" -If you point to an existing Metadata File then PMM will Sync the changes to the file, so you won't lose non plex changes in the file. + Removes all Managed Collections (Collections with the `PMM` Label) that are not configured in the Current Run. + + ```yaml + libraries: + Movies: + operations: + delete_collections: + configured: false + managed: true + ``` -**Attribute:** `metadata_backup` +??? blank "`mass_genre_update` - Updates the genres of every item in the library.<a class="headerlink" href="#mass-genre-update" title="Permanent link">¶</a>" -**Values:** There are a few different options to determine how the `metadata_backup` works. + <div id="mass-genre-update" />Updates every item's genres in the library to the chosen site's genres. + + <hr style="margin: 0px;"> + + **Attribute:** `mass_genre_update` + + **Accepted Values:** -| Attribute | Description | -|:--------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `path` | Path to where the metadata will be saved/maintained<br>**Default:** <<library_name>>_Metadata_Backup.yml in your config folder<br>**Values:** Path to Metadata File | -| `exclude` | Exclude all listed attributes from being saved in the collection file<br>**Values:** Comma-separated string or list of attributes | -| `sync_tags` | All Tag Attributes will have the `.sync` option and blank attribute will be added to sync to as well<br>**Default:** `false`<br>**Values:** `true` or `false` | -| `add_blank_entries` | Will add a line for entries that have no metadata changes<br>**Default:** `true`<br>**Values:** `true` or `false` | + <table class="clearTable"> + <tr><td>`tmdb`</td><td>Use TMDb for Genres</td></tr> + <tr><td>`tvdb`</td><td>Use TVDb for Genres</td></tr> + <tr><td>`imdb`</td><td>Use IMDb for Genres</td></tr> + <tr><td>`omdb`</td><td>Use IMDb through OMDb for Genres</td></tr> + <tr><td>`anidb`</td><td>Use AniDB Main Tags for Genres</td></tr> + <tr><td>`anidb_3_0`</td><td>Use AniDB Main Tags and All 3 Star Tags and above for Genres</td></tr> + <tr><td>`anidb_2_5`</td><td>Use AniDB Main Tags and All 2.5 Star Tags and above for Genres</td></tr> + <tr><td>`anidb_2_0`</td><td>Use AniDB Main Tags and All 2 Star Tags and above for Genres</td></tr> + <tr><td>`anidb_1_5`</td><td>Use AniDB Main Tags and All 1.5 Star Tags and above for Genres</td></tr> + <tr><td>`anidb_1_0`</td><td>Use AniDB Main Tags and All 1 Star Tags and above for Genres</td></tr> + <tr><td>`anidb_0_5`</td><td>Use AniDB Main Tags and All 0.5 Star Tags and above for Genres</td></tr> + <tr><td>`mal`</td><td>Use MyAnimeList for Genres</td></tr> + <tr><td>`lock`</td><td>Lock all Genre Field</td></tr> + <tr><td>`unlock`</td><td>Unlock all Genre Field</td></tr> + <tr><td>`remove`</td><td>Remove all Genres and Lock all Field</td></tr> + <tr><td>`reset`</td><td>Remove all Genres and Unlock all Field</td></tr> + </table> -???+ example + ???+ example "Example" - ```yaml - libraries: - Movies: - # Metadata and Overlay files here - operations: - metadata_backup: - path: config/Movie_Backup.yml - sync_tags: true - add_blank_entries: false - ``` + ```yaml + libraries: + Movies: + operations: + mass_genre_update: imdb + ``` + +??? blank "`mass_content_rating_update` - Updates the content rating of every item in the library.<a class="headerlink" href="#mass-content-rating-update" title="Permanent link">¶</a>" + + <div id="mass-content-rating-update" />Updates every item's content rating in the library to the chosen site's + content rating. + + <hr style="margin: 0px;"> + + **Attribute:** `mass_content_rating_update` + + **Accepted Values:** + + <table class="clearTable"> + <tr><td>`mdb`</td><td>Use MdbList for Content Ratings</td></tr> + <tr><td>`mdb_commonsense`</td><td>Use Commonsense Rating through MDbList for Content Ratings</td></tr> + <tr><td>`mdb_commonsense0`</td><td>Use Commonsense Rating with Zero Padding through MDbList for Content Ratings</td></tr> + <tr><td>`omdb`</td><td>Use IMDb through OMDb for Content Ratings</td></tr> + <tr><td>`mal`</td><td>Use MyAnimeList for Content Ratings</td></tr> + <tr><td>`lock`</td><td>Lock Content Rating Field</td></tr> + <tr><td>`unlock`</td><td>Unlock Content Rating Field</td></tr> + <tr><td>`remove`</td><td>Remove Content Rating and Lock Field</td></tr> + <tr><td>`reset`</td><td>Remove Content Rating and Unlock Field</td></tr> + </table> + + ???+ example "Example" + + ```yaml + libraries: + Movies: + operations: + mass_content_rating_update: omdb + ``` + +??? blank "`mass_original_title_update` - Updates the original title of every item in the library.<a class="headerlink" href="#mass-original-title-update" title="Permanent link">¶</a>" + + <div id="mass-original-title-update" />Updates every item's original title in the library to the chosen site's + original title. + + <hr style="margin: 0px;"> + + **Attribute:** `mass_original_title_update` + + **Accepted Values:** + + <table class="clearTable"> + <tr><td>`anidb`</td><td>Use AniDB Main Title for Original Titles</td></tr> + <tr><td>`anidb_official`</td><td>Use AniDB Official Title based on the language attribute in the config file for Original Titles</td></tr> + <tr><td>`mal`</td><td>Use MyAnimeList Main Title for Original Titles</td></tr> + <tr><td>`mal_english`</td><td>Use MyAnimeList English Title for Original Titles</td></tr> + <tr><td>`mal_japanese`</td><td>Use MyAnimeList Japanese Title for Original Titles</td></tr> + <tr><td>`lock`</td><td>Lock Original Title Field</td></tr> + <tr><td>`unlock`</td><td>Unlock Original Title Field</td></tr> + <tr><td>`remove`</td><td>Remove Original Title and Lock Field</td></tr> + <tr><td>`reset`</td><td>Remove Original Title and Unlock Field</td></tr> + </table> + + ???+ example "Example" + + ```yaml + libraries: + Anime: + operations: + mass_original_title_update: anidb_official + ``` + +??? blank "`mass_studio_update` - Updates the studio of every item in the library.<a class="headerlink" href="#mass-studio-update" title="Permanent link">¶</a>" + + <div id="mass-studio-update" />Updates every item's studio in the library to the chosen site's studio. + + <hr style="margin: 0px;"> + + **Attribute:** `mass_studio_update` + + **Accepted Values:** + + <table class="clearTable"> + <tr><td>`anidb`</td><td>Use AniDB Animation Work for Studio</td></tr> + <tr><td>`mal`</td><td>Use MyAnimeList Studio for Studio</td></tr> + <tr><td>`tmdb`</td><td>Use TMDb Studio for Studio</td></tr> + <tr><td>`lock`</td><td>Lock Original Title Field</td></tr> + <tr><td>`unlock`</td><td>Unlock Original Title Field</td></tr> + <tr><td>`remove`</td><td>Remove Original Title and Lock Field</td></tr> + <tr><td>`reset`</td><td>Remove Original Title and Unlock Field</td></tr> + </table> + + ???+ example "Example" + + ```yaml + libraries: + Anime: + operations: + mass_studio_update: mal + ``` + +??? blank "`mass_originally_available_update` - Updates the originally available date of every item in the library.<a class="headerlink" href="#mass-originally-available-update" title="Permanent link">¶</a>" + + <div id="mass-originally-available-update" />Updates every item's originally available date in the library to the + chosen site's date. + + ???+ tip + + As plex does not allow this field to be empty, using `remove` or `reset` will set the date to the Plex default + date, which is `1969-12-31` + + <hr style="margin: 0px;"> + + **Attribute:** `mass_originally_available_update` + + **Accepted Values:** + + <table class="clearTable"> + <tr><td>`tmdb`</td><td>Use TMDb Release Date</td></tr> + <tr><td>`tvdb`</td><td>Use TVDb Release Date</td></tr> + <tr><td>`omdb`</td><td>Use IMDb Release Date through OMDb</td></tr> + <tr><td>`mdb`</td><td>Use MdbList Release Date</td></tr> + <tr><td>`anidb`</td><td>Use AniDB Release Date</td></tr> + <tr><td>`mal`</td><td>Use MyAnimeList Release Date</td></tr> + <tr><td>`lock`</td><td>Lock Originally Available Field</td></tr> + <tr><td>`unlock`</td><td>Unlock Originally Available Field</td></tr> + <tr><td>`remove`</td><td>Remove Originally Available and Lock Field</td></tr> + <tr><td>`reset`</td><td>Remove Originally Available and Unlock Field</td></tr> + </table> + + ???+ example "Example" + + ```yaml + libraries: + TV Shows: + operations: + mass_originally_available_update: tvdb + ``` + +??? blank "`mass_***_rating_update` - Updates the audience/critic/user rating of every item in the library.<a class="headerlink" href="#mass-star-rating-update" title="Permanent link">¶</a>" + + <div id="mass-star-rating-update" />Updates every item's audience/critic/user rating in the library to the chosen + site's rating. + + ???+ warning "Important Note" + + This does not affect the icons displayed in the Plex UI. This will place the number of your choice in the + relevant field in the Plex database. In other words, if Plex is configured to use Rotten Tomatoes ratings, then + no matter what happens with this mass rating update operation, the icons in the Plex UI will remain Rotten + Tomatoes. The human who decided to put TMDb ratings in the critic slot and Letterboxd ratings in the audience + slot is the only party who knows that the ratings are no longer Rotten Tomatoes. One primary use of this feature + is to put ratings overlays on posters. More information on what PMM can do with these ratings can be found + [here](../pmm/guides/ratings.md). + + <hr style="margin: 0px;"> + + **Attribute:** `mass_audience_rating_update`/`mass_critic_rating_update`/`mass_user_rating_update` + + **Accepted Values:** + + <table class="clearTable"> + <tr><td>`tmdb`</td><td>Use TMDb Rating</td></tr> + <tr><td>`imdb`</td><td>Use IMDb Rating</td></tr> + <tr><td>`trakt_user`</td><td>Use Trakt User's Personal Rating</td></tr> + <tr><td>`omdb`</td><td>Use IMDbRating through OMDb</td></tr> + <tr><td>`mdb`</td><td>Use MdbList Score</td></tr> + <tr><td>`mdb_average`</td><td>Use MdbList Average Score</td></tr> + <tr><td>`mdb_imdb`</td><td>Use IMDb Rating through MDbList</td></tr> + <tr><td>`mdb_metacritic`</td><td>Use Metacritic Rating through MDbList</td></tr> + <tr><td>`mdb_metacriticuser`</td><td>Use Metacritic User Rating through MDbList</td></tr> + <tr><td>`mdb_trakt`</td><td>Use Trakt Rating through MDbList</td></tr> + <tr><td>`mdb_tomatoes`</td><td>Use Rotten Tomatoes Rating through MDbList</td></tr> + <tr><td>`mdb_tomatoesaudience`</td><td>Use Rotten Tomatoes Audience Rating through MDbList</td></tr> + <tr><td>`mdb_tmdb`</td><td>Use TMDb Rating through MDbList</td></tr> + <tr><td>`mdb_letterboxd`</td><td>Use Letterboxd Rating through MDbList</td></tr> + <tr><td>`mdb_myanimelist`</td><td>Use MyAnimeList Rating through MDbList</td></tr> + <tr><td>`anidb_rating`</td><td>Use AniDB Rating</td></tr> + <tr><td>`anidb_average`</td><td>Use AniDB Average</td></tr> + <tr><td>`anidb_score`</td><td>Use AniDB Review Score</td></tr> + <tr><td>`mal`</td><td>Use MyAnimeList Score</td></tr> + <tr><td>`lock`</td><td>Lock Rating Field</td></tr> + <tr><td>`unlock`</td><td>Unlock Rating Field</td></tr> + <tr><td>`remove`</td><td>Remove Rating and Lock Field</td></tr> + <tr><td>`reset`</td><td>Remove Rating and Unlock Field</td></tr> + </table> + + ???+ example "Example" + + ```yaml + libraries: + Movies: + operations: + mass_audience_rating_update: mdb_average + mass_critic_rating_update: mdb_metacritic + mass_user_rating_update: imdb + ``` + +??? blank "`mass_episode_***_rating_update` - Updates the audience/critic/user rating of every episode in the library.<a class="headerlink" href="#mass-episode-star-rating-update" title="Permanent link">¶</a>" + + <div id="mass-episode-star-rating-update" />Updates every item's episode's audience/critic/user rating in the + library to the chosen site's rating. + + ???+ warning "Important Note" + + This does not affect the icons displayed in the Plex UI. This will place the number of your choice in the + relevant field in the Plex database. In other words, if Plex is configured to use Rotten Tomatoes ratings, then + no matter what happens with this mass rating update operation, the icons in the Plex UI will remain Rotten + Tomatoes. The human who decided to put TMDb ratings in the critic slot and Letterboxd ratings in the audience + slot is the only party who knows that the ratings are no longer Rotten Tomatoes. One primary use of this feature + is to put ratings overlays on posters. More information on what PMM can do with these ratings can be found + [here](../pmm/guides/ratings.md). + + <hr style="margin: 0px;"> + + **Attribute:** `mass_episode_audience_rating_update`/`mass_episode_critic_rating_update`/`mass_episode_user_rating_update` + + **Accepted Values:** + + <table class="clearTable"> + <tr><td>`tmdb`</td><td>Use TMDb Rating</td></tr> + <tr><td>`imdb`</td><td>Use IMDb Rating</td></tr> + <tr><td>`lock`</td><td>Lock Rating Field</td></tr> + <tr><td>`unlock`</td><td>Unlock Rating Field</td></tr> + <tr><td>`remove`</td><td>Remove Rating and Lock Field</td></tr> + <tr><td>`reset`</td><td>Remove Rating and Unlock Field</td></tr> + </table> + + ???+ example "Example" + + ```yaml + libraries: + TV Shows: + operations: + mass_episode_audience_rating_update: tmdb + mass_episode_critic_rating_update: remove + mass_episode_user_rating_update: imdb + ``` + +??? blank "`mass_poster_update` - Updates the poster of every item in the library.<a class="headerlink" href="#mass-poster-update" title="Permanent link">¶</a>" + + <div id="mas-_poster-update" />Updates every item's poster to the chosen sites poster. Will fall back to `plex` if + the given option fails. Assets will be used over anything else. + + ???+ warning + + When used in combination with Overlays, this could cause PMM to reset the poster and then reapply all overlays + on each run, which will result in [image bloat](../pmm/scripts/image-cleanup.md). + + <hr style="margin: 0px;"> + + **Attribute:** `mass_poster_update` + + **Accepted Values:** + + <table class="clearTable"> + <tr><td>`source`</td><td>Source of the poster update</td><td>`tmdb`, `plex`, `lock`, or `unlock`</td></tr> + <tr><td>`seasons`</td><td>Update season posters while updating shows **Default:** `true`</td><td>`true` (default) or `false`</td></tr> + <tr><td>`episodes`</td><td>Update episode posters while updating shows **Default:** `true`</td><td>`true` (default) or `false`</td></tr> + </table> + + ???+ example "Example" + + ```yaml + libraries: + TV Shows: + operations: + mass_poster_update: + source: tmdb + seasons: false + episodes: false + ``` + +??? blank "`mass_background_update` - Updates the background of every item in the library.<a class="headerlink" href="#mass-background-update" title="Permanent link">¶</a>" + + <div id="mass-background-update" />Updates every item's background to the chosen sites background. Will fall back to + `plex` if the given option fails. Assets will be used over anything else. + + ???+ warning + + When used in combination with Overlays, this could cause PMM to reset the background and then reapply all + overlays on each run, which will result in [image bloat](../pmm/scripts/image-cleanup.md). + + <hr style="margin: 0px;"> + + **Attribute:** `mass_poster_update` + + **Accepted Values:** + + <table class="clearTable"> + <tr><td>`source`</td><td>Source of the poster update</td><td>`tmdb`, `plex`, `lock`, or `unlock`</td></tr> + <tr><td>`seasons`</td><td>Update season posters while updating shows **Default:** `true`</td><td>`true` (default) or `false`</td></tr> + <tr><td>`episodes`</td><td>Update episode posters while updating shows **Default:** `true`</td><td>`true` (default) or `false`</td></tr> + </table> + + ???+ example "Example" + + ```yaml + libraries: + TV Shows: + operations: + mass_background_update: + source: tmdb + seasons: false + episodes: false + ``` + +??? blank "`mass_imdb_parental_labels` - Adds IMDb Parental labels of every item in the library.<a class="headerlink" href="#mass-imdb-parental-labels" title="Permanent link">¶</a>" + + <div id="mass-imdb-parental-labels" />Updates every item's labels in the library to match the IMDb Parental Guide. + + <hr style="margin: 0px;"> + + **Attribute:** `mass_imdb_parental_labels` + + **Accepted Values:** + + <table class="clearTable"> + <tr><td>`none`</td><td>Apply all Parental Labels with a value of `None`, `Mild`, `Moderate`, or `Severe`</td></tr> + <tr><td>`mild`</td><td>Apply all Parental Labels with a value of `Mild`, `Moderate`, or `Severe`</td></tr> + <tr><td>`moderate`</td><td>Apply all Parental Labels with a value of `Moderate` or `Severe`</td></tr> + <tr><td>`severe`</td><td>Apply all Parental Labels with a value of `Severe`</td></tr> + </table> + + ???+ example "Example" + + ```yaml + libraries: + TV Shows: + operations: + mass_imdb_parental_labels: severe + ``` + +??? blank "`mass_collection_mode` - Updates the Collection Mode of every item in the library.<a class="headerlink" href="#mass-collection-mode" title="Permanent link">¶</a>" + + <div id="mass-collection-mode" />Updates every Collection in your library to the specified Collection Mode. + + <hr style="margin: 0px;"> + + **Attribute:** `mass_collection_mode` + + **Accepted Values:** + + <table class="clearTable"> + <tr><td>`default`</td><td>Library default</td></tr> + <tr><td>`hide`</td><td>Hide Collection</td></tr> + <tr><td>`hide_items`</td><td>Hide Items in this Collection</td></tr> + <tr><td>`show_items`</td><td>Show this Collection and its Items</td></tr> + </table> + + ???+ example "Example" + + ```yaml + libraries: + TV Shows: + operations: + mass_collection_mode: hide + ``` + +??? blank "`update_blank_track_titles` - Updates blank track titles of every item in the library.<a class="headerlink" href="#update-blank-track-titles" title="Permanent link">¶</a>" + + <div id="update-blank-track-titles" />Search though every track in a music library and replace any blank track + titles with the tracks sort title. + + <hr style="margin: 0px;"> + + **Attribute:** `update_blank_track_titles` + + **Accepted Values:** `true` or `false` + + ???+ example "Example" + + ```yaml + libraries: + Music: + operations: + update_blank_track_titles: true + ``` + +??? blank "`remove_title_parentheses` - Removes title parentheses of every item in the library.<a class="headerlink" href="#remove-title-parentheses" title="Permanent link">¶</a>" + + <div id="remove-title-parentheses" />Search through every title and remove all ending parentheses in an items title + if the title is not locked. + + <hr style="margin: 0px;"> + + **Attribute:** `remove_title_parentheses` + + **Accepted Values:** `true` or `false` + + ???+ example "Example" + + ```yaml + libraries: + Music: + operations: + remove_title_parentheses: true + ``` + +??? blank "`split_duplicates` - Splits all duplicate items found in this library.<a class="headerlink" href="#split-duplicates" title="Permanent link">¶</a>" + + <div id="split-duplicates" />Splits all duplicate items found in this library. + + <hr style="margin: 0px;"> + + **Attribute:** `split_duplicates` + + **Accepted Values:** `true` or `false` + + ???+ example "Example" + + ```yaml + libraries: + Movies: + operations: + split_duplicates: true + ``` + +??? blank "`radarr_add_all` - Adds every item in the library to Radarr.<a class="headerlink" href="#radarr-add-all" title="Permanent link">¶</a>" + + <div id="radarr-add-all" />Adds every item in the library to Radarr. + + ???+ warning + + 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 paths you can use the `plex_path` and `radarr_path` [Radarr](radarr.md) details to convert the + paths. + + <hr style="margin: 0px;"> + + **Attribute:** `radarr_add_all` + + **Accepted Values:** `true` or `false` + + ???+ example "Example" + + ```yaml + libraries: + Movies: + operations: + radarr_add_all: true + ``` + +??? blank "`radarr_remove_by_tag` - Removes every item from Radarr with the Tags given.<a class="headerlink" href="#radarr-remove-by-tag" title="Permanent link">¶</a>" + + <div id="radarr-remove-by-tag" />Removes every item from Radarr with the Tags given. + + <hr style="margin: 0px;"> + + **Attribute:** `radarr_remove_by_tag` + + **Accepted Values:** List or comma separated string of tags + + ???+ example "Example" + + ```yaml + libraries: + Movies: + operations: + radarr_remove_by_tag: mytag1, mytag2 + ``` + +??? blank "`sonarr_add_all` - Adds every item in the library to Sonarr.<a class="headerlink" href="#sonarr-add-all" title="Permanent link">¶</a>" + + <div id="sonarr-add-all" />Adds every item in the library to Sonarr. + + ???+ warning + + 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 Sonarr paths you can use the `plex_path` and `sonarr_path` [Sonarr](sonarr.md) details to convert the + paths. + + <hr style="margin: 0px;"> + + **Attribute:** `sonarr_add_all` + + **Accepted Values:** `true` or `false` + + ???+ example "Example" + + ```yaml + libraries: + TV Shows: + operations: + sonarr_add_all: true + ``` + +??? blank "`sonarr_remove_by_tag` - Removes every item from Sonarr with the Tags given.<a class="headerlink" href="#sonarr-remove-by-tag" title="Permanent link">¶</a>" + + <div id="sonarr-remove-by-tag" />Removes every item from Sonarr with the Tags given. + + <hr style="margin: 0px;"> + + **Attribute:** `sonarr_remove_by_tag` + + **Accepted Values:** List or comma separated string of tags + + ???+ example "Example" + + ```yaml + libraries: + TV Shows: + operations: + sonarr_remove_by_tag: mytag1, mytag2 + ``` + +??? blank "`genre_mapper` - Maps genres in your library to be changed to other genres.<a class="headerlink" href="#genre-mapper" title="Permanent link">¶</a>" + + <div id="genre-mapper" />Maps genres in your library to be changed to other genres. + + <hr style="margin: 0px;"> + + **Attribute:** `genre_mapper` + + **Accepted Values:** Each attribute under `genre_mapper` is a separate mapping and has two parts. + + <table class="clearTable"> + <tr><td>`key`</td><td>Genre you want mapped to the value</td><td>`Action/Adventure, Action & Adventure` in the example below</td></tr> + <tr><td>`value`</td><td>What the genre will end up as</td><td>`Action` in the example below</td></tr> + </table> + + ???+ example "Example" + + 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 + libraries: + Movies: + # Metadata and Overlay files here + operations: + genre_mapper: + "Action/Adventure": Action + "Action & Adventure": Action + Romantic Comedy: Comedy + ``` + + To just Remove a Genre without replacing it just set the Genre to nothing like this. + + ```yaml + libraries: + Movies: + # Metadata and Overlay files here + operations: + genre_mapper: + "Action/Adventure": Action + "Action & Adventure": Action + Romantic Comedy: + ``` + + The above example will change go through every item in your library and change the genre `Action/Adventure` or + `Action & Adventure` to `Action` and remove every instance of the Genre `Romantic Comedy`. + +??? blank "`content_rating_mapper` - Maps content ratings in your library to be changed to other content ratings.<a class="headerlink" href="#content-rating-mapper" title="Permanent link">¶</a>" + + <div id="content-rating-mapper" />Maps content ratings in your library to be changed to other content ratings. + + <hr style="margin: 0px;"> + + **Attribute:** `content_rating_mapper` + + **Accepted Values:** Each attribute under `content_rating_mapper` is a separate mapping and has two parts. + + <table class="clearTable"> + <tr><td>`key`</td><td>Content rating you want mapped to the value</td><td>`PG`, `PG-13` in the example below</td></tr> + <tr><td>`value`</td><td>What the content rating will end up as</td><td>`Y-10` in the example below</td></tr> + </table> + + ???+ example "Example" + + This example will change go through every item in your library and change the content rating `PG` or `PG-13` to + `Y-10` and `R` to `Y-17`. + + ```yaml + libraries: + Movies: + # Metadata and Overlay files here + operations: + content_rating_mapper: + PG: Y-10 + "PG-13": Y-10 + R: Y-17 + ``` + + To just Remove a content rating without replacing it just set the content rating to nothing like this. + + ```yaml + libraries: + Movies: + # Metadata and Overlay files here + operations: + content_rating_mapper: + PG: Y-10 + "PG-13": Y-10 + R: + ``` + + The above example will change go through every item in your library and change the content rating `PG` or + `PG-13` to `Y-10` and remove every instance of the content rating `R`. + +??? blank "`metadata_backup` - Creates/Maintains a PMM Metadata File for the library.<a class="headerlink" href="#metadata-backup" title="Permanent link">¶</a>" + + <div id="metadata-backup" />Creates/Maintains a Plex Meta Manager Metadata File with a full `metadata` mapping based + on the library's items locked attributes. + + If you point to an existing Metadata File then PMM will Sync the changes to the file, so you won't lose non plex + changes in the file. + + <hr style="margin: 0px;"> + + **Attribute:** `metadata_backup` + + **Accepted Values:** There are a few different options to determine how the `metadata_backup` works. + + <table class="clearTable"> + <tr><td>`path`</td><td>Path to where the metadata will be saved/maintained<br>**Default:** `<<library_name>>_Metadata_Backup.yml in your config folder`<br>**Values:** Path to Metadata File</td></tr> + <tr><td>`exclude`</td><td>Exclude all listed attributes from being saved in the collection file<br>**Values:** `Comma-separated string or list of attributes`</td></tr> + <tr><td>`sync_tags`</td><td>All Tag Attributes will have the `.sync` option and blank attribute will be added to sync<br>**Default:** `false`<br>**Values:** `true` or `false`</td></tr> + <tr><td>`add_blank_entries`</td><td>Will add a line for entries that have no metadata changes<br>**Default:** `true`<br>**Values:** `true` or `false`</td></tr> + </table> + + ???+ example "Example" + + ```yaml + libraries: + Movies: + operations: + metadata_backup: + path: config/Movie_Backup.yml + sync_tags: true + add_blank_entries: false + ``` diff --git a/docs/config/overview.md b/docs/config/overview.md new file mode 100644 index 00000000..5e939f5f --- /dev/null +++ b/docs/config/overview.md @@ -0,0 +1,42 @@ +# Config File + +Plex Meta Manager uses a YAML configuration file; this file contains settings that determine how Plex Meta Manager +behaves, and the required connection details needed to connect to Plex Media Server, Radarr, Sonarr, and other +third-party services via API. + +By default, and unless otherwise stated, Plex Meta Manager looks for the configuration file at `/config/config.yml`. + +A template Configuration File can be found in the +[GitHub Repo](https://github.com/meisnate12/Plex-Meta-Manager/blob/master/config/config.yml.template). + +This table outlines the third-party services that Plex Meta Manager can make use of. Each service has specific +requirements for setup that can be found by clicking the links within the table. + +| Attribute | Required | +|:--------------------------------------------|:----------------------------------------------------------------------| +| [`libraries`](libraries.md) | :fontawesome-solid-circle-check:{ .green } | +| [`playlist_files`](../notused/playlists.md) | :fontawesome-solid-circle-xmark:{ .red } | +| [`settings`](settings.md) | :fontawesome-solid-circle-xmark:{ .red } | +| [`webhooks`](webhooks.md) | :fontawesome-solid-circle-xmark:{ .red } | +| [`plex`](plex.md) | :fontawesome-solid-circle-check:{ .green } Either here or per library | +| [`tmdb`](tmdb.md) | :fontawesome-solid-circle-check:{ .green } | +| [`github`](github.md) | :fontawesome-solid-circle-xmark:{ .red } | +| [`tautulli`](tautulli.md) | :fontawesome-solid-circle-xmark:{ .red } | +| [`omdb`](omdb.md) | :fontawesome-solid-circle-xmark:{ .red } | +| [`notifiarr`](notifiarr.md) | :fontawesome-solid-circle-xmark:{ .red } | +| [`anidb`](anidb.md) | :fontawesome-solid-circle-xmark:{ .red } | +| [`radarr`](radarr.md) | :fontawesome-solid-circle-xmark:{ .red } | +| [`sonarr`](sonarr.md) | :fontawesome-solid-circle-xmark:{ .red } | +| [`trakt`](trakt.md) | :fontawesome-solid-circle-xmark:{ .red } | +| [`mal`](myanimelist.md) | :fontawesome-solid-circle-xmark:{ .red } | + +## Configuration File Example + +This example outlines what a "standard" config.yml file might look like when in use. + +~~~yaml +{% + include-markdown "../../config/config.yml.template" + comments=false +%} +~~~ \ No newline at end of file diff --git a/docs/config/playlists.md b/docs/config/playlists.md index 790e8592..6b4a7846 100644 --- a/docs/config/playlists.md +++ b/docs/config/playlists.md @@ -1,10 +1,14 @@ -# Playlist Files Attributes +# Playlist Files Attribute -As playlists are not tied to one specific library and can combine media from multiple libraries, they require their own special [Playlist Files](data/playlists.md) to work. +As playlists are not tied to one specific library and can combine media from multiple libraries, they require their own +special [Playlist Files](../files/playlists.md) to work. -Within the [Config File](configuration.md), the `playlist_files` attribute specifies the [path type](../builders/files.md#paths) and path of the [Playlist Files](data/playlists.md) that the user wants Plex Meta Manager to act on. +Within the [Configuration File](overview.md), the `playlist_files` attribute specifies the +[File Blocks](../config/files.md#blocks) of the [Playlist Files](../files/playlists.md) that the user wants Plex Meta +Manager to act on. -**The libraries used in the playlist attribute `libraries` must be defined under the `libraries` attribute of the [Config File](configuration.md).** +**The libraries used in the playlist attribute `libraries` must be defined under the `libraries` attribute of the +[Configuration File](overview.md).** ```yaml playlist_files: @@ -12,31 +16,31 @@ playlist_files: - pmm: playlist ``` -## Example +???+ example "Example" -This example is an advanced version of the playlist mappings with accompanying library mappings: + This example is an advanced version of the playlist mappings with accompanying library mappings: -```yaml -libraries: - Movies: - collection_files: - - file: config/Movies.yml - - pmm: imdb - - pmm: studio - - pmm: genre - - pmm: actor - operations: - mass_critic_rating_update: tmdb - split_duplicates: true - TV Shows: - collection_files: - - file: config/TV Shows.yml - - pmm: tmdb - - pmm: network - overlay_files: - - remove_overlays: false - - file: config/Overlays.yml -playlist_files: - - file: config/playlists.yml - - pmm: playlist -``` + ```yaml + libraries: + Movies: + collection_files: + - file: config/Movies.yml + - pmm: imdb + - pmm: studio + - pmm: genre + - pmm: actor + operations: + mass_critic_rating_update: tmdb + split_duplicates: true + TV Shows: + collection_files: + - file: config/TV Shows.yml + - pmm: tmdb + - pmm: network + remove_overlays: false + overlay_files: + - file: config/Overlays.yml + playlist_files: + - file: config/playlists.yml + - pmm: playlist + ``` \ No newline at end of file diff --git a/docs/config/plex.md b/docs/config/plex.md index 20d71539..41f6de1b 100644 --- a/docs/config/plex.md +++ b/docs/config/plex.md @@ -6,7 +6,8 @@ search: Configuring [Plex](https://www.plex.tv/) is required in order to connect to your libraries. -A `plex` mapping can be either in the root of the config file as global mapping for all libraries, or you can specify the `plex` mapping individually per library. +A `plex` mapping can be either in the root of the config file as global mapping for all libraries, or you can specify +the `plex` mapping individually per library. Below is a `plex` mapping example and the full set of attributes: @@ -35,14 +36,17 @@ plex: Do Not Use the Plex Token found in Plex's Preferences.xml file. - If you need help finding your Plex authentication token, please see Plex's [support article](https://support.plex.tv/articles/204059436-finding-an-authentication-token-x-plex-token/). + If you need help finding your Plex authentication token, please see Plex's + [support article](https://support.plex.tv/articles/204059436-finding-an-authentication-token-x-plex-token/). -This script can be run on a remote Plex server, but be sure that the `url` provided is publicly addressable, and it's recommended to use `HTTPS`. +This script can be run on a remote Plex server, but be sure that the `url` provided is publicly addressable, and it's +recommended to use `HTTPS`. # Multi-Plex Instance Setup: -The below config.yml extract details how to set up multiple Plex servers within the one PMM instance, in this example there are two plex servers which are receiving the same Collection File: +The below config.yml extract details how to set up multiple Plex servers within the one PMM instance, in this example +there are two plex servers which are receiving the same Collection File: ```yaml libraries: @@ -70,8 +74,13 @@ plex: ... ``` -The `plex` instance at the bottom is the "global" plex server. Unless otherwise specified, any connection to plex is assumed to be using that plex server. The first "Movies" library entry is on the global `plex` server. +The `plex` instance at the bottom is the "global" plex server. Unless otherwise specified, any connection to plex is +assumed to be using that plex server. The first "Movies" library entry is on the global `plex` server. -The "Movies_on_Second_Plex" library is found on the second plex server. Note that this library has its own plex section that lists the attributes that differ from the global plex instance, namely the `URL`, `token` and `timeout`. The library on the second server is also called "Movies", but since you can't have two keys (in this scenario, libraries) with the same name, it is named Movies_on_Second_Plex in the config.yml, and the `library_name:` attribute contains the name of the library on the actual plex server. +The "Movies_on_Second_Plex" library is found on the second plex server. Note that this library has its own plex section +that lists the attributes that differ from the global plex instance, namely the `URL`, `token` and `timeout`. The +library on the second server is also called "Movies", but since you can't have two keys (in this scenario, libraries) +with the same name, it is named Movies_on_Second_Plex in the config.yml, and the `library_name:` attribute contains the +name of the library on the actual plex server. diff --git a/docs/config/radarr.md b/docs/config/radarr.md index 5235b83d..c37931f9 100644 --- a/docs/config/radarr.md +++ b/docs/config/radarr.md @@ -4,17 +4,20 @@ search: --- # Radarr Attributes -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. +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. -???+ note +???+ warning Radarr V2 may work, but it is not supported. Please upgrade to V3 if you can. Items in your List Exclusions will be ignored by PMM. -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. +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. -At the library level, only those settings which are different to the global settings need to be specified; there is an example of this at the end of the page. +At the library level, only those settings which are different to the global settings need to be specified; there is an +example of this at the end of the page. Below is a `radarr` mapping example and the full set of attributes: ```yaml @@ -34,34 +37,37 @@ radarr: plex_path: /share/CACHEDEV1_DATA/Multimedia ``` -| Attribute | Allowed Values | Default | Required | -|:-------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------|:------------------------------------------:| -| `url` | Radarr URL (Including URL Base if set).<br>**Example:** http://192.168.1.12:32788 | N/A | :fontawesome-solid-circle-check:{ .green } | -| `token` | Radarr API Token. | N/A | :fontawesome-solid-circle-check:{ .green } | -| `add_missing` | Adds all missing movies found from all collections to Radarr.<br>Use the `radarr_add_missing` [Radarr Details](../builders/details/arr.md#radarr-definition-settings) in the collection definition to add missing per collection.<br>**boolean:** true or false | false | :fontawesome-solid-circle-xmark:{ .red } | -| `add_existing` | Adds all existing movies in collections to Radarr.<br>Use the `radarr_add_existing` [Radarr Details](../builders/details/arr.md#radarr-definition-settings) in the collection definition to add existing per collection.<br>**boolean:** true or false | false | :fontawesome-solid-circle-xmark:{ .red } | -| `upgrade_existing` | Upgrades all existing movies in collections to match the Quality Profile of the collection.<br>Use the `radarr_upgrade_existing` [Radarr Details](../builders/details/arr.md#radarr-definition-settings) in the collection definition to upgrade the Quality Profile per collection.<br>**boolean:** true or false | false | :fontawesome-solid-circle-xmark:{ .red } | -| `ignore_cache` | Ignores PMM's cache when adding items to Radarr.<br>Use the `radarr_ignore_cache` [Radarr Details](../builders/details/arr.md#radarr-definition-settings) in the collection definition to ignore per collection.<br>**boolean:** true or false | false | :fontawesome-solid-circle-xmark:{ .red } | -| `root_folder_path` | Default Root Folder Path to use when adding new movies.<br>Use the `radarr_folder` [Radarr Details](../builders/details/arr.md#radarr-definition-settings) in the collection definition to set the Root Folder per collection. | N/A | :fontawesome-solid-circle-check:{ .green } | -| `monitor` | Monitor the movie when adding new movies.<br>Use the `radarr_monitor` [Radarr Details](../builders/details/arr.md#radarr-definition-settings) in the collection definition to set the Monitor value per collection.<br>**Options:** `true`, `false` | true | :fontawesome-solid-circle-xmark:{ .red } | -| `availability` | Default Minimum Availability to use when adding new movies.<br>Use the `radarr_availability` [Radarr Details](../builders/details/arr.md#radarr-definition-settings) in the collection definition to set the Availability per collection.<br>**Options:** `announced`, `cinemas`, `released`, `db` | `announced` | :fontawesome-solid-circle-check:{ .green } | -| `quality_profile` | Default Quality Profile to use when adding new movies.<br>Use the `radarr_quality` [Radarr Details](../builders/details/arr.md#radarr-definition-settings) in the collection definition to set the Quality Profile per collection. | N/A | :fontawesome-solid-circle-check:{ .green } | -| `tag` | Default list or comma-separated string of tags to use when adding new movies.<br>Use the `radarr_tag` [Radarr Details](../builders/details/arr.md#radarr-definition-settings) in the collection definition to set the Tags per collection. | ` ` | :fontawesome-solid-circle-xmark:{ .red } | -| `search` | Start search for missing movie when adding new movies.<br>Use the `radarr_search` [Radarr Details](../builders/details/arr.md#radarr-definition-settings) in the collection definition to set the search value per collection.<br>**boolean:** true or false | false | :fontawesome-solid-circle-xmark:{ .red } | -| `plex_path` | When using `add_existing` or `radarr_add_all` Convert this part of the path to `radarr_path`. | ` ` | :fontawesome-solid-circle-xmark:{ .red } | -| `radarr_path` | When using `add_existing` or `radarr_add_all` Convert the `plex_path` part of the path to this. | ` ` | :fontawesome-solid-circle-xmark:{ .red } | +| Attribute | Allowed Values | Default | Required | +|:-------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------|:------------------------------------------:| +| `url` | Radarr URL (Including URL Base if set).<br>**Example:** http://192.168.1.12:32788 | N/A | :fontawesome-solid-circle-check:{ .green } | +| `token` | Radarr API Token. | N/A | :fontawesome-solid-circle-check:{ .green } | +| `add_missing` | Adds all missing movies found from all collections to Radarr.<br>Use the `radarr_add_missing` [Radarr Setting](../files/arr.md#radarr-definition-settings) in the collection definition to add missing per collection.<br>**boolean:** true or false | false | :fontawesome-solid-circle-xmark:{ .red } | +| `add_existing` | Adds all existing movies in collections to Radarr.<br>Use the `radarr_add_existing` [Radarr Setting](../files/arr.md#radarr-definition-settings) in the collection definition to add existing per collection.<br>**boolean:** true or false | false | :fontawesome-solid-circle-xmark:{ .red } | +| `upgrade_existing` | Upgrades all existing movies in collections to match the Quality Profile of the collection.<br>Use the `radarr_upgrade_existing` [Radarr Setting](../files/arr.md#radarr-definition-settings) in the collection definition to upgrade the Quality Profile per collection.<br>**boolean:** true or false | false | :fontawesome-solid-circle-xmark:{ .red } | +| `ignore_cache` | Ignores PMM's cache when adding items to Radarr.<br>Use the `radarr_ignore_cache` [Radarr Setting](../files/arr.md#radarr-definition-settings) in the collection definition to ignore per collection.<br>**boolean:** true or false | false | :fontawesome-solid-circle-xmark:{ .red } | +| `root_folder_path` | Default Root Folder Path to use when adding new movies.<br>Use the `radarr_folder` [Radarr Setting](../files/arr.md#radarr-definition-settings) in the collection definition to set the Root Folder per collection. | N/A | :fontawesome-solid-circle-check:{ .green } | +| `monitor` | Monitor the movie when adding new movies.<br>Use the `radarr_monitor` [Radarr Setting](../files/arr.md#radarr-definition-settings) in the collection definition to set the Monitor value per collection.<br>**Options:** `true`, `false` | true | :fontawesome-solid-circle-xmark:{ .red } | +| `availability` | Default Minimum Availability to use when adding new movies.<br>Use the `radarr_availability` [Radarr Setting](../files/arr.md#radarr-definition-settings) in the collection definition to set the Availability per collection.<br>**Options:** `announced`, `cinemas`, `released`, `db` | `announced` | :fontawesome-solid-circle-check:{ .green } | +| `quality_profile` | Default Quality Profile to use when adding new movies.<br>Use the `radarr_quality` [Radarr Setting](../files/arr.md#radarr-definition-settings) in the collection definition to set the Quality Profile per collection. | N/A | :fontawesome-solid-circle-check:{ .green } | +| `tag` | Default list or comma-separated string of tags to use when adding new movies.<br>Use the `radarr_tag` [Radarr Setting](../files/arr.md#radarr-definition-settings) in the collection definition to set the Tags per collection. | ` ` | :fontawesome-solid-circle-xmark:{ .red } | +| `search` | Start search for missing movie when adding new movies.<br>Use the `radarr_search` [Radarr Setting](../files/arr.md#radarr-definition-settings) in the collection definition to set the search value per collection.<br>**boolean:** true or false | false | :fontawesome-solid-circle-xmark:{ .red } | +| `plex_path` | When using `add_existing` or `radarr_add_all` Convert this part of the path to `radarr_path`. | ` ` | :fontawesome-solid-circle-xmark:{ .red } | +| `radarr_path` | When using `add_existing` or `radarr_add_all` Convert the `plex_path` part of the path to this. | ` ` | :fontawesome-solid-circle-xmark:{ .red } | ???+ tip The `token` can be found by going to `Radarr > Settings > General > Security > API Key` - The `quality_profile` must be the exact name of the desired quality profile, including all spaces and capitalization. + The `quality_profile` must be the exact name of the desired quality profile, including all spaces and + capitalization. -* You can set most attributes per collection by using the [Radarr Details](../builders/details/arr.md#radarr-definition-settings) in the collection definition. +* You can set most attributes per collection by using the [Radarr Settings](../files/arr.md#radarr-definition-settings) +in the collection definition. -![Radarr Details](radarr.png) +![Radarr Details](images/radarr.png) -Based on that UI, the settings would be [settings not based on things in this image are shown as `#`; url and token are of course required they are not shown here to focus on the settings that are shown above]: +Based on that UI, the settings would be [settings not based on things in this image are shown as `#`; url and token are +of course required they are not shown here to focus on the settings that are shown above]: ```yaml radarr: @@ -84,7 +90,9 @@ radarr: Specifying different options for specific libraries: -In this example we have two Radarr instances, standard and 4K, and four libraries showing how one can override individual settings at the library level. Also, movies are being added to the "Library05" library outside Radarr via a custom script and I want those new movies added to Radarr for tracking. +In this example we have two Radarr instances, standard and 4K, and four libraries showing how one can override +individual settings at the library level. Also, movies are being added to the "Library05" library outside Radarr via a +custom script and I want those new movies added to Radarr for tracking. ``` libraries: diff --git a/docs/config/schedule.md b/docs/config/schedule.md new file mode 100644 index 00000000..f96e228c --- /dev/null +++ b/docs/config/schedule.md @@ -0,0 +1,191 @@ +# Scheduling Parts of PMM + +Plex Meta Manager allows you to schedule libraries, files, overlays, operations, and more so that runs can be tailored +to suit your needs. + +This is particularly handy for users who have a lot of libraries or run a lot of Metadata/Operations on their libraries. + +### IMPORTANT: + +These schedules do not trigger PMM to run; they control what PMM will do if it happens to be running at the scheduled +time. `weekly(sunday)`, for example, does not mean "run PMM on Sunday to do this thing"; it means "If PMM is running, +and it's Sunday, do this thing". + +The scheduling options are: + +| Name | Description | Format | Example | +|:-------------|:--------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------|:---------------------------------------------------------------------| +| Hourly | Update only when the script is run in that hour or hour range | hourly(Hour of Day)<br>hourly(Start Hour-End Hour) | `hourly(17)`<br>`hourly(17-04)` | +| Daily | Update once a day | daily | `daily` | +| Weekly | Update once a week on the specified days (For multiple days, use a bar-separated (<code>|</code>) list) | weekly(Days of Week) | `weekly(sunday)`<br><code>weekly(sunday|tuesday)</code> | +| Monthly | Update once a month on the specified day | monthly(Day of Month) | `monthly(1)` | +| Yearly | Update once a year on the specified day | yearly(MM/DD) | `yearly(01/30)` | +| Range | Updates whenever the date is within the range (For multiple ranges, use a bar-separated (<code>|</code>) list) | range(MM/DD-MM/DD) | `range(12/01-12/31)`<br><code>range(8/01-8/15|9/01-9/15)</code> | +| Never | Never updates | never | `never` | +| Non Existing | Updates if it doesn't exist | non_existing | `non_existing` | +| All | Requires that all comma separated scheduling options inside its brackets be meet in order to run | all[Options] | `all[weekly(sunday), hourly(17)]` | + +* `daily` is the default when `schedule` is not specified. +* You can run the script multiple times per day but using the `--time` command line argument detailed on the [Run Commands & Environmental Variables Page](../pmm/environmental.md). +* You can have multiple scheduling options as a list. +* You can use the `delete_not_scheduled` setting to delete Collections that are skipped due to not being scheduled. + +## Examples + +??? blank "Scheduling a Library<a class="headerlink" href="#schedule-library" title="Permanent link">¶</a>" + + <div id="schedule-library" />Uses the `schedule` [Library Attribute](libraries.md#Attributes) to set when a library will be run. + + Other schedule rules for files, overlays, collections, and any other attribute that can be scheduled must also be + met. + + ???+ example "Example" + + Below is an example of a library which has been scheduled to run every Sunday. + + ```yaml + libraries: + Movies: + schedule: weekly(sunday) + collection_files: + - file: config/Movies.yml + - pmm: imdb + - pmm: studio + - pmm: genre + - pmm: actor + operations: + mass_critic_rating_update: tmdb + ``` + +??? blank "Scheduling Collection, Playlist, and Metadata Files<a class="headerlink" href="#schedule-files" title="Permanent link">¶</a>" + + <div id="schedule-files" />Uses the `schedule` [Block Attribute](files.md#Other-Block-Attributes) to set when a file + will be run. + + Other schedule rules for collections and any other attribute that can be scheduled must also be met. + + ???+ example "Example" + + Collection Files, Playlist Files, and Metadata Files can all be individually scheduled, as seen below where + different files are scheduled to run on each day of the week: + + ```yaml + libraries: + Movies: + collection_files: + - file: config/Movies.yml + schedule: weekly(monday) + - pmm: imdb + schedule: weekly(tuesday) + - folder: config/Movies/ + schedule: weekly(wednesday) + - pmm: genre + schedule: weekly(thursday) + - pmm: actor + schedule: weekly(friday) + metadata_files: + - file: config/metadata.yml + schedule: weekly(saturday) + playlist_files: + - file: config/Playlists.yml + schedule: weekly(sunday) + ``` + +??? blank "Scheduling Overlays<a class="headerlink" href="#schedule-overlays" title="Permanent link">¶</a>" + + <div id="schedule-overlays" />Uses the `schedule_overlays` [Library Attribute](libraries.md#attributes) to set when + overlays will run for a library. + + **Note: Overlay Files cannot be individually Scheduled, all Overlay Files must be scheduled for the same period.** + + ???+ example "Example" + + In the Example below overlays will only be run weekly on Saturday. + + ```yaml + libraries: + Movies: + schedule_overlays: weekly(saturday) + overlay_files: + - pmm: audio_codec + - pmm: resolution + - pmm: video_format + ``` + +??? blank "Scheduling Individual Collections<a class="headerlink" href="#schedule-collection" title="Permanent link">¶</a>" + + <div id="schedule-collection" />Uses the `schedule` [Definition Setting](../files/settings.md) to set when this + collection will run. + + ???+ example "Example" + + Below is an example of a collection which has been scheduled to run on a Sunday. In this scenario, if you run + PMM on a Monday, this collection will be skipped but any other collections which do not have a scheduled defined + will be run. + + ```yaml + collections: + TMDb Trending Weekly: + tmdb_trending_weekly: 30 + sync_mode: sync + schedule: weekly(sunday) + TMDb Top Rated: + tmdb_top_rated: 30 + sync_mode: sync + schedule: + - monthly(1) + - monthly(15) + ``` + +??? blank "Scheduling Operation Blocks<a class="headerlink" href="#schedule-operations" title="Permanent link">¶</a>" + + <div id="schedule-operations" />Each [Operation Block](operations.md#operation-blocks) can use the `schedule` + [Definition Setting](../files/settings.md) to set when that block will run. + + ???+ example "Example" + + This example shows just one Operation Block scheduled weekly on fridays. + + ```yaml + libraries: + Movies: + collection_files: + - pmm: imdb + operations: + schedule: weekly(friday) + mass_critic_rating_update: tmdb + split_duplicates: true + ``` + + This example shows 2 Operation Blocks each with a differnet schedule. + + ```yaml + libraries: + Movies: + collection_files: + - pmm: imdb + operations: + - schedule: weekly(friday) + mass_critic_rating_update: tmdb + - schedule: weekly(saturday) + split_duplicates: true + ``` + +??? blank "Scheduling Pinning Collections<a class="headerlink" href="#schedule-pinning" title="Permanent link">¶</a>" + + <div id="schedule-pinning" />Uses the `visible_library`, `visible_home`, or `visible_shared` + [Collection Metadata Update](../files/updates.md) to have collections be "pinned" to your home screen while + scheduled. + + ???+ example "Example" + + In this example, the collection will be pinned to your home screen for the month of December and on January 1st + will no longer be pinned (you must run PMM on 1st January for the removal of the pin to happen) + + ```yaml + collections: + Christmas Movies: + imdb_list: https://www.imdb.com/list/ls000096828/ + sync_mode: sync + visible_home: range(12/01-12/31) + ``` diff --git a/docs/config/settings.md b/docs/config/settings.md index 287966c0..90ae65ff 100644 --- a/docs/config/settings.md +++ b/docs/config/settings.md @@ -5,7 +5,9 @@ search: # Settings ## Overview -The `settings:` attribute and subsequent settings can be used to command various aspects of the functionality of Plex Meta Manager. + +The `settings:` attribute and subsequent settings can be used to command various aspects of the functionality of Plex +Meta Manager. Examples of these settings include the ability to: @@ -13,9 +15,11 @@ Examples of these settings include the ability to: * Create asset folders for collections so that custom posters can be stored for upload. * Use a custom repository as the base for all `git` Metadata files. -The settings attribute and attributes can be specified individually per library, or can be inherited from the global value if it has been set. If an attribute is specified at both the library and global level, then the library level attribute will take priority. +The settings attribute and attributes can be specified individually per library, or can be inherited from the global +value if it has been set. If an attribute is specified at both the library and global level, then the library level +attribute will take priority. -There are some attributes which can be specified at the collection level using [Setting Details](../builders/details/definition.md). +There are some attributes which can be specified at the collection level using [Settings](../files/settings.md). Attributes set at the collection level will take priority over any library or global-level attribute. @@ -23,60 +27,989 @@ Attributes set at the collection level will take priority over any library or gl The available setting attributes which can be set at each level are outlined below: +??? blank "`cache` - Used to control PMM's cache database.<a class="headerlink" href="#cache" title="Permanent link">¶</a>" -| Attribute | Global Level | Library Level | Collection/Playlist Level | -|:--------------------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:------------------------------------------:| -| [`cache`](#cache) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`cache_expiration`](#cache-expiration) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`asset_directory`](#image-asset-directory) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| [`asset_folders`](#image-asset-folders) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| [`asset_depth`](#asset-depth) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| [`create_asset_folders`](#create-asset-folders) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| [`prioritize_assets`](#prioritize-assets) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| [`dimensional_asset_rename`](#dimensional-asset-rename) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| [`download_url_assets`](#download-url-assets) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| [`show_missing_season_assets`](#show-missing-season-assets) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| [`show_missing_episode_assets`](#show-missing-episode-assets) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| [`show_asset_not_needed`](#show-asset-not-needed) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| [`sync_mode`](#sync-mode) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| [`default_collection_order`](#default-collection-order) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| [`minimum_items`](#minimum-items) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| [`delete_below_minimum`](#delete-below-minimum) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| [`delete_not_scheduled`](#delete-not-scheduled) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| [`run_again_delay`](#run-again-delay) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`missing_only_released`](#missing-only-released) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| [`show_unmanaged`](#show-unmanaged-collections) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| [`show_unconfigured`](#show-unconfigured-collections) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| [`show_filtered`](#show-filtered) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| [`show_options`](#show-options) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| [`show_missing`](#show-missing) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| [`only_filter_missing`](#only-filter-missing) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| [`show_missing_assets`](#show-missing-assets) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| [`save_report`](#save-report) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| [`tvdb_language`](#tvdb-language) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`ignore_ids`](#ignore-ids) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| [`ignore_imdb_ids`](#ignore-imdb-ids) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| [`item_refresh_delay`](#item-refresh-delay) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| [`playlist_sync_to_users`](#playlist-sync-to-users) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | -| [`playlist_exclude_users`](#playlist-exclude-users) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | -| [`playlist_report`](#playlist-report) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| [`run_order`](#run-order) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| [`custom_repo`](#custom-repo) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`verify_ssl`](#verify-ssl) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`check_nightly`](#check-nightly) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | + <div id="cache" />Allow Plex Meta Manager to create and maintain a local cache database for faster subsequent + processing. The cache file is created in the same directory as the configuration file. + + <hr style="margin: 0px;"> + + **Attribute:** `cache` + + **Levels with this Attribute:** Global + + **Accepted Values:** `true` or `false` + + **Default Value:** `true` + + ???+ example "Example" + + ```yaml + settings: + cache: true + ``` + +??? blank "`cache_expiration` - Used to control how long data is cached for.<a class="headerlink" href="#cache-expiration" title="Permanent link">¶</a>" + + <div id="cache-expiration" />Set the number of days before each cache mapping expires and has to be re-cached. + + <hr style="margin: 0px;"> + + **Attribute:** `cache_expiration` + + **Levels with this Attribute:** Global + + **Accepted Values:** Integer greater than 0 + + **Default Value:** `60` + + ???+ example "Example" + + ```yaml + settings: + cache_expiration: 30 + ``` + +??? blank "`asset_directory` - Used to define where local assets are located.<a class="headerlink" href="#asset-directory" title="Permanent link">¶</a>" + + <div id="asset-directory" />Specify the directories where assets (posters, backgrounds, etc) are located. + + ???+ tip + + Assets can be stored anywhere on the host system that PMM has visibility of (i.e. if using docker, the directory + must be mounted/visible to the docker container). + + <hr style="margin: 0px;"> + + **Attribute:** `asset_directory` + + **Levels with this Attribute:** Global/Library + + **Accepted Values:** Any Directory or List of Directories + + **Default Value:** `[Directory containing YAML config]/assets` + + ???+ example "Example" + + ```yaml + settings: + asset_directory: config/movies + ``` + + ```yaml + settings: + asset_directory: + - config/assets/movies + - config/assets/collections + ``` + +??? blank "`asset_folders` - Used to control the asset directory folder structure.<a class="headerlink" href="#asset-folders" title="Permanent link">¶</a>" + + <div id="asset-folders" />While `true`, PMM will search the `asset_directory` for a dedicated folder per item vs + while false will look for an image. + + i.e. When `true` the example path would be `<asset_directory_path>/Star Wars/poster.png` instead of + `<asset_directory_path>/Star Wars.png`. + + <hr style="margin: 0px;"> + + **Attribute:** `asset_folders` + + **Levels with this Attribute:** Global/Library + + **Accepted Values:** `true` or `false` + + **Default Value:** `true` + + ???+ example "Example" + + ```yaml + settings: + asset_folders: true + ``` + +??? blank "`asset_depth` - Used to control the depth of search in the asset directory.<a class="headerlink" href="#asset-depth" title="Permanent link">¶</a>" + + <div id="asset-depth" />Specify how many folder levels to scan for an item within the asset directory. + + At each asset level, PMM will look for either `medianame.ext` [such as Star Wars.png] or a dedicated folder + containing `poster.ext`. + + i.e. `<path_to_assets>/Star Wars/poster.png` and `<path_to_assets>/Star Wars.png` are both asset depth 0, whilst + `<path_to_assets>/Movies/Star Wars/poster.png` and `<path_to_assets>/Movies/Star Wars.png` are both asset level 1. + + ???+ tip + + `asset_folders` must be set to `true` for this to take effect. + + increasing the amount of levels to scan will reduce performance + + <hr style="margin: 0px;"> + + **Attribute:** `asset_depth` + + **Levels with this Attribute:** Global/Library + + **Accepted Values:** Any Integer 0 or greater + + **Default Value:** `0` + + ???+ example "Example" + + ```yaml + settings: + asset_depth: 2 + ``` + +??? blank "`create_asset_folders` - Used to automatically create asset folders when none exist.<a class="headerlink" href="#create-asset-folders title="Permanent link">¶</a>" + + <div id="create-asset-folders" />Whilst searching for assets, if an asset folder cannot be found within the + `asset_directory` one will be created. + + Asset Searches can happen in a number of ways. + + * Any Collection specified under the `collections` header in a Collection File. + + * Any Item specified under the `metadata` header in a Collection File. + + * Any Playlist specified under the `playlists` header in a Playlist File. + + * Any Item in a library that is running the `assets_for_all` Library Operation. + + * Any Item that has an Overlay applied to it. + + * Any Item found by a Builder while the definition also has `item_assets: true` specified. + + <hr style="margin: 0px;"> + + **Attribute:** `create_asset_folders` + + **Levels with this Attribute:** Global/Library + + **Accepted Values:** `true` or `false` + + **Default Value:** `true` + + ???+ example "Example" + + ```yaml + settings: + create_asset_folders: true + ``` + +??? blank "`prioritize_assets` - Used to prioritize `asset_directory` images over all other images types.<a class="headerlink" href="#prioritize-assets" title="Permanent link">¶</a>" + + <div id="prioritize-assets" />When determining which image to use on an item prioritize the `asset_directory` over + all other images types. + + <hr style="margin: 0px;"> + + **Attribute:** `prioritize_assets` + + **Levels with this Attribute:** Global/Library + + **Accepted Values:** `true` or `false` + + **Default Value:** `true` + + ???+ example "Example" + + ```yaml + settings: + prioritize_assets: true + ``` + +??? blank "`dimensional_asset_rename` - Used to automatically rename asset files based on their dimensions.<a class="headerlink" href="#dimensional-asset-rename" title="Permanent link">¶</a>" + + <div id="dimensional-asset-rename" />Whilst searching for assets, scan the folders within the `asset_directory` and + if an asset poster (i.e. `/ASSET_NAME/poster.ext`) was not found, rename the first image found that has a height + greater than or equal to its width to `poster.ext`. If an asset background (i.e. `/ASSET_NAME/background.ext`), + rename the first image found that has a width greater than its height to `background.ext`. + + ???+ tip + + `asset_folders` must be set to `true` for this to take effect. + + <hr style="margin: 0px;"> + + **Attribute:** `dimensional_asset_rename` + + **Levels with this Attribute:** Global/Library + + **Accepted Values:** `true` or `false` + + **Default Value:** `true` + + ???+ example "Example" + + ```yaml + settings: + dimensional_asset_rename: true + ``` + +??? blank "`download_url_assets` - Used to download url images into the asset directory.<a class="headerlink" href="#download-url-assets" title="Permanent link">¶</a>" + + <div id="download-url-assets" />Whilst searching for assets, download images set within Collection/Metadata/Playlist + files( i.e. images set by `url_poster` or `url_background`) into the asset folder if none are already present. + + <hr style="margin: 0px;"> + + **Attribute:** `download_url_assets` + + **Levels with this Attribute:** Global/Library + + **Accepted Values:** `true` or `false` + + **Default Value:** `true` + + ???+ example "Example" + + ```yaml + settings: + download_url_assets: true + ``` + +??? blank "`show_missing_season_assets` - Used to show any missing season assets.<a class="headerlink" href="#show-missing-season-assets" title="Permanent link">¶</a>" + + <div id="show-missing-season-assets" />Whilst searching for assets, when scanning for assets for a TV Show, if + Season posters are found (i.e. `/ASSET_NAME/Season##.ext`), notify the user of any seasons which do not have an + asset image. + + ???+ tip "Shows/Hides messages like these for seasons/albums" + + "Asset Warning: No poster found for '{item_title}' in the assets folder '{directory}'" + + "Asset Warning: No poster '{name}' found in the assets folders" + + "Missing Season {season_number} Poster" + + <hr style="margin: 0px;"> + + **Attribute:** `show_missing_season_assets` + + **Levels with this Attribute:** Global/Library + + **Accepted Values:** `true` or `false` + + **Default Value:** `true` + + ???+ example "Example" + + ```yaml + settings: + show_missing_season_assets: true + ``` + +??? blank "`show_missing_episode_assets` - Used to show any missing episode assets.<a class="headerlink" href="#show-missing-episode-assets" title="Permanent link">¶</a>" + + <div id="show-missing-episode-assets" />Whilst searching for assets, when scanning for assets for a TV Show, if an + Episode Title Card is found (i.e. `/ASSET_NAME/S##E##.ext`), notify the user of any episodes which do not have an + asset image. + + ???+ tip "Shows/Hides messages like these for episodes" + + "Asset Warning: No poster found for '{item_title}' in the assets folder '{directory}'" + + "Asset Warning: No poster '{name}' found in the assets folders" + + "\nMissing S##E## Title Card" + + <hr style="margin: 0px;"> + + **Attribute:** `show_missing_episode_assets` + + **Levels with this Attribute:** Global/Library + + **Accepted Values:** `true` or `false` + + **Default Value:** `true` + + ???+ example "Example" + + ```yaml + settings: + show_missing_episode_assets: true + ``` + +??? blank "`show_asset_not_needed` - Used to show/hide the `update not needed` messages.<a class="headerlink" href="#show-asset-not-needed" title="Permanent link">¶</a>" + + <div id="show-asset-not-needed" />Whilst searching for assets, show or hide the `update not needed` messages. + + <hr style="margin: 0px;"> + + **Attribute:** `show_asset_not_needed` + + **Levels with this Attribute:** Global/Library + + **Accepted Values:** `true` or `false` + + **Default Value:** `true` + + ???+ example "Example" + + ```yaml + settings: + show_asset_not_needed: true + ``` + +??? blank "`sync_mode` - Used to set the `sync_mode` for collections and playlists.<a class="headerlink" href="#sync-mode" title="Permanent link">¶</a>" + + <div id="sync-mode" />Sets the `sync_mode` for collections and playlists. Setting the `sync_mode` directly in a + collection or playlist definition will override the `sync_mode` for that definition. + + <hr style="margin: 0px;"> + + **Attribute:** `sync_mode` + + **Levels with this Attribute:** Global/Library/Collection/Playlist + + **Accepted Values:** + + <table class="clearTable"> + <tr><td>`sync`</td><td>Will add and remove any items that are added/removed from the source builder.</td></tr> + <tr><td>`append`</td><td>Will only add items that are added from the source builder, but will not remove anything even if it is removed from the source builder.</td></tr> + </table> + + **Default Value:** `append` + + ???+ example "Example" + + ```yaml + settings: + sync_mode: sync + ``` + +??? blank "`default_collection_order` - Used to set the `collection_order` for every collection run.<a class="headerlink" href="#default-collection-order" title="Permanent link">¶</a>" + + <div id="default-collection-order" />Set the `collection_order` for every collection run by PMM unless the + collection has a specific `collection_order`. + + ???+ tip + + `custom` cannot be used if more than one builder is being used for the collection (such as `imdb_list` and + `trakt_list` within the same collection). + + <hr style="margin: 0px;"> + + **Attribute:** `default_collection_order` + + **Levels with this Attribute:** Global/Library + + **Accepted Values:** + + <table class="clearTable"> + <tr><td>`release`</td><td>Order Collection by Release Dates</td></tr> + <tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr> + <tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr> + <tr><td colspan="2">[Any `plex_search` sort option](../files/builders/plex.md#sort-options)</td></tr> + </table> + + **Default Value:** `None` + + ???+ example "Example" + + ```yaml + settings: + sync_mode: sync + ``` + +??? blank "`minimum_items` - Used to control minimum items requires to build a collection/playlist.<a class="headerlink" href="#minimum-items" title="Permanent link">¶</a>" + + <div id="minimum-items" />Set the minimum number of items that must be found in order to build or update a + collection/playlist. + + <hr style="margin: 0px;"> + + **Attribute:** `minimum_items` + + **Levels with this Attribute:** Global/Library/Collection/Playlist + + **Accepted Values:** Integer greater than 0 + + **Default Value:** `1` + + ???+ example "Example" + + ```yaml + settings: + minimum_items: 5 + ``` + +??? blank "`delete_below_minimum` - Used to delete collections below `minimum_items`<a class="headerlink" href="#delete-below-minimum" title="Permanent link">¶</a>" + + <div id="delete-below-minimum" />When a collection is run, delete the collection if it is below the minimum number + specified by `minimum_items`. + + ???+ tip + + Relies on `minimum_items` being set to the desired integer. + + <hr style="margin: 0px;"> + + **Attribute:** `delete_below_minimum` + + **Levels with this Attribute:** Global/Library/Collection/Playlist + + **Accepted Values:** `true` or `false` + + **Default Value:** `false` + + ???+ example "Example" + + ```yaml + settings: + delete_below_minimum: true + ``` + +??? blank "`delete_not_scheduled` - Used to delete collections not scheduled.<a class="headerlink" href="#delete-not-scheduled" title="Permanent link">¶</a>" + + <div id="delete-not-scheduled" />If a collection is skipped due to it not being scheduled, delete the collection. + + <hr style="margin: 0px;"> + + **Attribute:** `delete_not_scheduled` + + **Levels with this Attribute:** Global/Library/Collection/Playlist + + **Accepted Values:** `true` or `false` + + **Default Value:** `false` + + ???+ example "Example" + + ```yaml + settings: + settings: + delete_not_scheduled: true + ``` + +??? blank "`run_again_delay` - Used to control the depth of search in the asset directory.<a class="headerlink" href="#run-again-delay" title="Permanent link">¶</a>" + + <div id="run-again-delay" />Set the number of minutes to delay running `run_again` collections after daily run is + finished. + + For example, if a collection adds items to Sonarr/Radarr, the library can automatically re-run "X" amount of time + later so that any downloaded items are processed. + + ???+ tip + + A collection is a `run_again` collection if it has the `run_again` [Setting](../files/settings.md) attribute set + to true. + + <hr style="margin: 0px;"> + + **Attribute:** `run_again_delay` + + **Levels with this Attribute:** Global + + **Accepted Values:** Any Integer 0 or greater + + **Default Value:** `0` + + ???+ example "Example" + + ```yaml + settings: + run_again_delay: 5 + ``` + +??? blank "`missing_only_released` - Used to filter unreleased items from missing lists.<a class="headerlink" href="#missing-only-released" title="Permanent link">¶</a>" + + <div id="missing-only-released" />Whilst running a collection or playlist, when PMM handles missing items to either + report it to the user, report it to a file, or send it to Radarr/Sonarr all unreleased items will be filtered out. + + <hr style="margin: 0px;"> + + **Attribute:** `missing_only_released` + + **Levels with this Attribute:** Global/Library/Collection/Playlist + + **Accepted Values:** `true` or `false` + + **Default Value:** `false` + + ???+ example "Example" + + ```yaml + settings: + missing_only_released: true + ``` + +??? blank "`show_unmanaged` - Used to show collections not managed by PMM.<a class="headerlink" href="#show-unmanaged" title="Permanent link">¶</a>" + + <div id="show-unmanaged" />List all collections not managed by Plex Meta Manager at the end of each run. + + <hr style="margin: 0px;"> + + **Attribute:** `show_unmanaged` + + **Levels with this Attribute:** Global/Library + + **Accepted Values:** `true` or `false` + + **Default Value:** `true` + + ???+ example "Example" + + ```yaml + settings: + show_unmanaged: false + ``` + +??? blank "`show_unconfigured` - Used to show collections not in the current run.<a class="headerlink" href="#show-unconfigured" title="Permanent link">¶</a>" + + <div id="show-unconfigured" />List all collections not configured in the current Plex Meta Manager run at the end of + each run. + + <hr style="margin: 0px;"> + + **Attribute:** `show_unconfigured` + + **Levels with this Attribute:** Global/Library + + **Accepted Values:** `true` or `false` + + **Default Value:** `true` + + ???+ example "Example" + + ```yaml + settings: + show_unconfigured: false + ``` + +??? blank "`show_filtered` - Used to show filtered items.<a class="headerlink" href="#show-filtered" title="Permanent link">¶</a>" + + <div id="show-filtered" />List all items which have been filtered out of a collection or playlist (i.e. if it + doesn't meet the filter criteria) + + <hr style="margin: 0px;"> + + **Attribute:** `show_filtered` + + **Levels with this Attribute:** Global/Library/Collection/Playlist + + **Accepted Values:** `true` or `false` + + **Default Value:** `false` + + ???+ example "Example" + + ```yaml + settings: + show_filtered: true + ``` + +??? blank "`show_options` - Used to show attribute options from plex.<a class="headerlink" href="#show-options" title="Permanent link">¶</a>" + + <div id="show-options" />While `show_options` is true the available options for an attribute when using + `plex_search`, `smart_filter` or `filters` will be shown. + + i.e. a `smart_filter` on the `genre` attribute will return all of the attributes within the specified library. + + <hr style="margin: 0px;"> + + **Attribute:** `show_options` + + **Levels with this Attribute:** Global/Library/Collection/Playlist + + **Accepted Values:** `true` or `false` + + **Default Value:** `false` + + ???+ example "Example" + + ```yaml + settings: + show_options: true + ``` + +??? blank "`show_missing` - Used to show missing items from collections or playlists.<a class="headerlink" href="#show-missing" title="Permanent link">¶</a>" + + <div id="show-missing" />While `show_missing` is true items missing from collections or playlists will be displayed. + + <hr style="margin: 0px;"> + + **Attribute:** `show_missing` + + **Levels with this Attribute:** Global/Library/Collection/Playlist + + **Accepted Values:** `true` or `false` + + **Default Value:** `true` + + ???+ example "Example" + + ```yaml + settings: + show_missing: false + ``` + +??? blank "`only_filter_missing` - Used to have the `filter` only apply to missing items.<a class="headerlink" href="#only-filter-missing" title="Permanent link">¶</a>" + + <div id="only-filter-missing" />Only items missing from a collection will be filtered. **Only specific filters can + filter missing. See [Filters](../files/filters.md) for more information.** + + ???+ note + + This can be used to filter which missing media items get sent to Sonarr/Radarr. + + <hr style="margin: 0px;"> + + **Attribute:** `only_filter_missing` + + **Levels with this Attribute:** Global/Library/Collection/Playlist + + **Accepted Values:** `true` or `false` + + **Default Value:** `false` + + ???+ example "Example" + + ```yaml + settings: + only_filter_missing: true + ``` + +??? blank "`show_missing_assets` - Used to print a message when assets are missing.<a class="headerlink" href="#show-missing-assets" title="Permanent link">¶</a>" + + <div id="show-missing-assets" />Display missing asset warnings for items, collections, and playlists. + + <hr style="margin: 0px;"> + + **Attribute:** `show_missing_assets` + + **Levels with this Attribute:** Global/Library/Collection/Playlist + + **Accepted Values:** `true` or `false` + + **Default Value:** `true` + + ???+ example "Example" + + ```yaml + settings: + show_missing_assets: false + ``` + +??? blank "`save_report` - Used to save a report YAML file.<a class="headerlink" href="#save-report" title="Permanent link">¶</a>" + + <div id="save-report" />Save a report of the items added, removed, filtered, or missing from collections to a YAML + file in the same directory as the file run. + + <hr style="margin: 0px;"> + + **Attribute:** `save_report` + + **Levels with this Attribute:** Global/Library/Collection/Playlist + + **Accepted Values:** `true` or `false` + + **Default Value:** `true` + + ???+ example "Example" + + ```yaml + settings: + save_report: false + ``` + +??? blank "`tvdb_language` - Specify the language to query TVDb in.<a class="headerlink" href="#tvdb-language" title="Permanent link">¶</a>" + + <div id="tvdb-language" />Specify the language to query TVDb in. + + ???+ note + + If no language is specified or the specified language is not found then the original language is used. + + <hr style="margin: 0px;"> + + **Attribute:** `tvdb_language` + + **Levels with this Attribute:** Global + + **Accepted Values:** [Any ISO 639-2 Language Code](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) + + **Default Value:** `None` + + ???+ example "Example" + + ```yaml + settings: + tvdb_language: en + ``` + +??? blank "`ignore_ids` - List of TMDb/TVDb IDs to ignore.<a class="headerlink" href="#ignore-ids" title="Permanent link">¶</a>" + + <div id="ignore-ids" />Set a list or comma-separated string of TMDb/TVDb IDs to ignore in all collections. + + ???+ note + + This does not apply to `smart_filter` Collections. + + <hr style="margin: 0px;"> + + **Attribute:** `ignore_ids` + + **Levels with this Attribute:** Global/Library/Collection/Playlist + + **Accepted Values:** List or comma-separated string of TMDb/TVDb IDs + + **Default Value:** `None` + + ???+ example "Example" + + ```yaml + settings: + ignore_ids: 572802,695721 + ``` + +??? blank "`ignore_imdb_ids` - List of IMDb IDs to ignore.<a class="headerlink" href="#ignore-imdb-ids" title="Permanent link">¶</a>" + + <div id="ignore-imdb-ids" />Set a list or comma-separated string of IMDb IDs to ignore in all collections. + + ???+ note + + Rhis does not apply to `smart_filter` Collections. + + <hr style="margin: 0px;"> + + **Attribute:** `ignore_imdb_ids` + + **Levels with this Attribute:** Global/Library/Collection/Playlist + + **Accepted Values:** List or comma-separated string of IMDb IDs + + **Default Value:** `None` + + ???+ example "Example" + + ```yaml + settings: + ignore_imdb_ids: tt6710474,tt1630029 + ``` + +??? blank "`item_refresh_delay` - Time to wait between each `item_refresh`.<a class="headerlink" href="#item-refresh-delay" title="Permanent link">¶</a>" + + <div id="item-refresh-delay" />Specify the amount of time to wait between each `item_refresh` of every movie/show in + a collection/playlist. + + ???+ note + + Useful if your Plex Media Server is having issues with high request levels. + + <hr style="margin: 0px;"> + + **Attribute:** `item_refresh_delay` + + **Levels with this Attribute:** Global/Library/Collection/Playlist + + **Accepted Values:** Any Integer 0 or greater + + **Default Value:** `0` + + ???+ example "Example" + + ```yaml + settings: + item_refresh_delay: 5 + ``` + +??? blank "`playlist_sync_to_users` - Set the default playlist `sync_to_users`.<a class="headerlink" href="#playlist-sync-to-users" title="Permanent link">¶</a>" + + <div id="playlist-sync-to-users" />Set the default playlist `sync_to_users`. To Sync a playlist to only yourself + leave `playlist_sync_to_users` blank. + + ???+ note + + sharing playlists with other users will not share any posters associated with the playlist, this is a Plex + limitation. + + <hr style="margin: 0px;"> + + **Attribute:** `playlist_sync_to_users` + + **Levels with this Attribute:** Global/Playlist + + **Accepted Values:** `all`, list of users, or comma-separated string of users + + **Default Value:** `all` + + ???+ example "Example" + + ```yaml + settings: + playlist_sync_to_users: + - user1 + - user2 + ``` + +??? blank "`playlist_exclude_users` - Set the default playlist `exclude_users`.<a class="headerlink" href="#playlist-exclude-users" title="Permanent link">¶</a>" + + <div id="playlist-exclude-users" />Set the default playlist `exclude_users`. + + <hr style="margin: 0px;"> + + **Attribute:** `playlist_exclude_users` + + **Levels with this Attribute:** Global/Playlist + + **Accepted Values:** list of users or comma-separated string of users + + **Default Value:** `None` + + ???+ example "Example" + + ```yaml + settings: + playlist_exclude_users: + - user1 + - user2 + ``` + +??? blank "`playlist_report` - Used to print out a playlist report.<a class="headerlink" href="#playlist-report" title="Permanent link">¶</a>" + + <div id="playlist-report" />Set `playlist_report` to true to print out a playlist report at the end of the log. + + <hr style="margin: 0px;"> + + **Attribute:** `playlist_report` + + **Levels with this Attribute:** Global + + **Accepted Values:** `true` or `false` + + **Default Value:** `false` + + ???+ example "Example" + + ```yaml + settings: + playlist_report: true + ``` + +??? blank "`run_order` - Used to specify the run order of the library components.<a class="headerlink" href="#run-order" title="Permanent link">¶</a>" + + <div id="run-order" />Specify the run order of the library components [Library Operations, Collection Files and + Overlay Files] + + <hr style="margin: 0px;"> + + **Attribute:** `run_order` + + **Levels with this Attribute:** Global/Library + + **Accepted Values:** List or comma-separated string which must include `operations`, `metadata` and `overlays` in + any order + + **Default Value:** `operations,metadata,collections,overlays` + + ???+ example "Example" + + ```yaml + settings: + run_order: + - collections + - overlays + - operations + - metadata + ``` + +??? blank "`custom_repo` - Used to set up the custom `repo` [file block type](files.md#location-types-and-paths).<a class="headerlink" href="#custom-repo" title="Permanent link">¶</a>" + + <div id="custom-repo" />Specify where the `repo` attribute's base is when defining `collection_files`, + `metadata_files`, `playlist_file` and `overlay_files`. + + ???+ note + + Ensure you are using the raw GitHub link (i.e. + https://github.com/meisnate12/Plex-Meta-Manager-Configs/tree/master/meisnate12 ) + + <hr style="margin: 0px;"> + + **Attribute:** `custom_repo` + + **Levels with this Attribute:** Global + + **Accepted Values:** Link to repository base + + **Default Value:** `None` + + ???+ example "Example" + + ```yaml + settings: + custom_repo: https://github.com/meisnate12/Plex-Meta-Manager-Configs/tree/master/meisnate12 + ``` + +??? blank "`verify_ssl` - Turn SSL Verification on or off.<a class="headerlink" href="#verify-ssl" title="Permanent link">¶</a>" + + <div id="verify-ssl" />Turn SSL Verification on or off. + + ???+ note + + set to false if your log file shows any errors similar to "SSL: CERTIFICATE_VERIFY_FAILED" + + <hr style="margin: 0px;"> + + **Attribute:** `verify_ssl` + + **Levels with this Attribute:** Global + + **Accepted Values:** `true` or `false` + + **Default Value:** `true` + + ???+ example "Example" + + ```yaml + settings: + verify_ssl: false + ``` + +??? blank "`check_nightly` - Will check nightly for updates instead of develop.<a class="headerlink" href="#check-nightly" title="Permanent link">¶</a>" + + <div id="check-nightly" />Will check nightly for updates instead of develop. + + ???+ note + + This does not affect which version of PMM is grabbed when using `git pull` or any other update mechanism, it is + only used for the initial version check when PMM runs to specify if a new version is available. + + It is recommended to set this to `true` if you primarily use the `nightly` branch + + <hr style="margin: 0px;"> + + **Attribute:** `check_nightly` + + **Levels with this Attribute:** Global + + **Accepted Values:** `true` or `false` + + **Default Value:** `false` + + ???+ example "Example" + + ```yaml + settings: + check_nightly: true + ``` ## Default Values -The below in an extract of the `config.yml.template` and is the initial values that are set if you follow any of the installation guides. +The below in an extract of the `config.yml.template` and is the initial values that are set if you follow any of the +installation guides. ???+ tip - We suggest users review each of these settings and amend as necessary, these are just default values to get you started. + We suggest users review each of these settings and amend as necessary, these are just default values to get you + started. ~~~yaml -{% - include-markdown "./config.yml.template" +settings: {% + include-markdown "../../config/config.yml.template" comments=false + preserve-includer-indent=false start="settings:" end="webhooks:" %} @@ -84,7 +1017,8 @@ The below in an extract of the `config.yml.template` and is the initial values t ## Example Library-Level Settings -The below showcases how to set a library-level setting, assuming that the attribute is listed as a library-level compatible attribute in the above table. +The below showcases how to set a library-level setting, assuming that the attribute is listed as a library-level +compatible attribute in the above table. If no library-level attribute is set, then the global attribute is used. @@ -125,462 +1059,7 @@ settings: 1. Sets the `run_order` specifically for the Movies library 2. Sets the `minimum_items` attribute specifically for the Movies library -3. Sets the global `run_order` which will apply to all libraries unless a library-level `run_order` is found, as showcased in the above example -4. Sets the global `minimum_items` which will apply to all libraries unless a library-level `minimum_items` is found, as showcased in the above example - -## Cache -Cache the Plex GUID and associated IDs for each library item for faster subsequent processing. The cache file is created in the same directory as the configuration file. - -<table><tr><td>Default Value</td><td>`true`</td></tr><tr><td>Allowed Values</td><td>`true` or `false`</td></tr></table> - -## Cache Expiration -Set the number of days before each cache mapping expires and has to be re-cached. - -| | | -|---|---| -| Default Value | 60 | -| Allowed Values | any integer | - - -## Image Asset Directory -Specify the directory where assets (posters, backgrounds, etc) are located. - -???+ important - - Assets can be stored anywhere on the host system that PMM has visibility of (i.e. if using docker, the directory must be mounted/visible to the docker container). - -| | | -|----------------|-------------------------------------------| -| Default Value | [Directory containing YAML config]/assets | -| Allowed Values | any directory | - - -## Image Asset Folders -Search the `asset_directory` for a dedicated folder. Set to true if each poster is within its own directory.<br> -i.e. `<path_to_assets>/Star Wars/poster.png` instead of `<path_to_assets>/Star Wars.png` - -| | | -|----------------|-------------------| -| Default Value | true | -| Allowed Values | `true` or `false` | - - -## Asset Depth - -Specify how many folder levels to scan for an item within the asset directory - -At each asset level, PMM will look for either `medianame.ext` [such as Star Wars.png] or a dedicated folder containing `poster.ext` - -i.e. `<path_to_assets>/Star Wars/poster.png` and `<path_to_assets>/Star Wars.png` are both asset depth 0, whilst `<path_to_assets>/Movies/Star Wars/poster.png` and `<path_to_assets>/Movies/Star Wars.png` are both asset level 1 - -???+ note - - `asset_folders` must be set to `true` for this to take effect. - - increasing the amount of levels to scan will reduce performance - -| | | -|----------------|-------------| -| Default Value | 0 | -| Allowed Values | any integer | - - -## Create Asset Folders - -Whilst searching for assets, if an asset folder cannot be found within the `asset_directory` one will be created. - -Asset Searches can happen in a number of ways. - -* Any Collection specified under the `collections` header in a Collection File. -* Any Item specified under the `metadata` header in a Collection File. -* Any Playlist specified under the `playlists` header in a Playlist File. -* Any Item in a library that is running the `assets_for_all` Library Operation. -* Any Item that has an Overlay applied to it. -* Any Item found by a Builder while the definition also has `item_assets: true` specified. - -| | | -|---|---| -| Default Value | false | -| Allowed Values | `true` or `false` | - - -## Prioritize Assets -When determining which image to use on an item prioritize the `asset_directory` over all other images types. - -| | | -|---|---| -| Default Value | false | -| Allowed Values | `true` or `false` | - - -## Dimensional Asset Rename -Whilst searching for assets, scan the folders within the `asset_directory` and if an asset poster (i.e. `/ASSET_NAME/poster.ext`) was not found, rename the first image found that has a height greater than or equal to its width to `poster.ext`. If an asset background (i.e. `/ASSET_NAME/background.ext`), rename the first image found that has a width greater than its height to `background.ext`. - -???+ note - - `asset_folders` must be set to `true` for this to take effect. - -| | | -|---|---| -| Default Value | false | -| Allowed Values | `true` or `false` | - - -## Download URL Assets -Whilst searching for assets, download images set within Metadata/Playlist files( i.e. images set by `url_poster` or `url_background`) into the asset folder if none are already present. - -| | | -|---|---| -| Default Value | false | -| Allowed Values | `true` or `false` | - - -## Show Missing Season Assets -Whilst searching for assets, when scanning for assets for a TV Show, if Season posters are found (i.e. `/ASSET_NAME/Season##.ext`), notify the user of any seasons which do not have an asset image. - -| | | -|---|---| -| Default Value | false | -| Allowed Values | `true` or `false` | - - -## Show Missing Episode Assets -Whilst searching for assets, when scanning for assets for a TV Show, if an Episode Title Card is found (i.e. `/ASSET_NAME/S##E##.ext`), notify the user of any episodes which do not have an asset image. - -| | | -|---|---| -| Default Value | false | -| Allowed Values | `true` or `false` | - - -## Show Asset Not Needed -Whilst searching for assets, show or hide the `update not needed` messages. - -| | | -|---|---| -| Default Value | false | -| Allowed Values | `true` or `false` | - - -## Sync Mode -Set the default `sync_mode` for collections. - -???+ note - - `sync` will add and remove any items that are added/removed from the source builder - `append` will only add items that are added from the source builder, but will not remove anything even if it is removed from the source builder. - -| | | -|---|---| -| Default Value | append | -| Allowed Values | `append` or `sync` | - - -## Default Collection Order - -Set the default `collection_order` for every collection run by PMM. - -???+ note - - `custom` cannot be used if more than one builder is being used for the collection (such as `imdb_list` and `trakt_list` within the same collection) - -| | | -|---|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Default Value | `None` | -| Allowed Values | `release`: Order Collection by Release Dates</br>`alpha`: Order Collection Alphabetically</br>`custom`: Order Collection Via the Builder Order</br>Any `plex_search` sort option1 | - - -<sup>1</sup> `plex_search` sort options can be found [here](plex.md#sort-options) - -## Minimum Items -Set the minimum number of items that must be found in order to build or update a collection/playlist. - -| | | -|---|---| -| Default Value | 1 | -| Allowed Values | any integer | - - -## Delete Below Minimum - -When a collection is run, delete the collection if it is below the minimum number specified by `minimum_items`. - -???+ note - - Relies on `minimum_items` being set to the desired integer. - -| | | -|---|---| -| Default Value | false | -| Allowed Values | `true` or `false` | - - -## Delete Not Scheduled -If a collection is skipped due to it not being scheduled, delete the collection. - -| | | -|---|---| -| Default Value | false | -| Allowed Values | `true` or `false` | - - -## Run Again Delay - -Set the number of minutes to delay running `run_again` collections after daily run is finished. - -For example, if a collection adds items to Sonarr/Radarr, the library can automatically re-run "X" amount of time later so that any downloaded items are processed. - -???+ note - - A collection is a `run_again` collection if it has the `run_again` [Setting Detail](../builders/details/definition.md) attribute set to true. - -| | | -|---|---| -| Default Value | 1 | -| Allowed Values | any integer | - - -## Missing Only Released - -Whilst running a collection, all unreleased missing items will be filtered out from the [missing YAML file](../builders/details/definition.md) - -| | | -|---|---| -| Default Value | false | -| Allowed Values | `true` or `false` | - - -## Show Unmanaged Collections - -List all collections not managed by Plex Meta Manager at the end of each run. - -| | | -|---|---| -| Default Value | true | -| Allowed Values | `true` or `false` | - -## Show Unconfigured Collections - -List all collections not configured in the currentPlex Meta Manager run at the end of each run. - -| | | -|---|---| -| Default Value | true | -| Allowed Values | `true` or `false` | - - -## Show Filtered -List all items which have been filtered out of a collection (i.e. if it doesn't meet the filter criteria) - -| | | -|---|---| -| Default Value | false | -| Allowed Values | `true` or `false` | - - -## Show Options -While `show_options` is true the available options for an attribute when using `plex_search`, `smart_filter` or `filters` will be shown. -i.e. a `smart_filter` on the `genre` attribute will return all of the attributes within the specified library. - -| | | -|---|---| -| Default Value | false | -| Allowed Values | `true` or `false` | - - - -## Show Missing -While `show_missing` is true items missing from collections will be displayed. - -| | | -|---|---| -| Default Value | true | -| Allowed Values | `true` or `false` | - - -## Only Filter Missing - -Only items missing from a collection will be filtered. **Only specific filters can filter missing. See [Filters](../builders/filters.md) for more information.** -???+ note - - this can be used to filter which missing media items get sent to Sonarr/Radarr - -| | | -|---|---| -| Default Value | false | -| Allowed Values | `true` or `false` | - - -## Show Missing Assets -Display missing asset warnings - -| | | -|---|---| -| Default Value | true | -| Allowed Values | `true` or `false` | - - -## Save Report -Save a report of the items added, removed, filtered, or missing from collections to a YAML file in the same directory as your Metadata file. - -| | | -|---|---| -| Default Value | true | -| Allowed Values | `true` or `false` | - - -## TVDb Language - -Specify the language to query TVDb in. - -???+ note - - If no language is specified or the specified language is not found then the original language is used. - -| | | -|---|---| -| Default Value | None | -| Allowed Values | Any ISO 639-2 Language Code1 | - - -<sup>1</sup> Language Codes can be found [here](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) - -## Ignore IDs - -Set a list or comma-separated string of TMDb/TVDb IDs to ignore in all collections. - -???+ note - - this does not apply to `smart_filter` Collections - -| | | -|---|---| -| Default Value | None | -| Allowed Values | List or comma-separated string of TMDb/TVDb IDs | - - -## Ignore IMDb IDs - -Set a list or comma-separated string of IMDb IDs to ignore in all collections. - -???+ note - - this does not apply to `smart_filter` Collections - -| | | -|---|---| -| Default Value | None | -| Allowed Values | List or comma-separated string of IMDb IDs | - - -## Item Refresh Delay - -Specify the amount of time to wait between each `item_refresh` of every movie/show in a collection/playlist. - -???+ note - - Useful if your Plex Media Server is having issues with high request levels. - -| | | -|---|---| -| Default Value | 0 | -| Allowed Values | any integer | - - -## Playlist Sync to Users - -Set the default playlist `sync_to_users`. To Sync a playlist to only yourself leave `playlist_sync_to_users` blank. - -???+ note - - sharing playlists with other users will not share any posters associated with the playlist, this is a Plex limitation. - -| | | -|---|---| -| Default Value | all | -| Allowed Values | all, list of users, or comma-separated string of users | - - -## Playlist Exclude Users -Set the default playlist `exclude_users`. - -| | | -|---|---| -| Default Value | | -| Allowed Values | list of users or comma-separated string of users | - - -## Playlist Report -Set `playlist_report` to true to print out a playlist report at the end of the log. - -| | | -|----------------|-------------------| -| Default Value | false | -| Allowed Values | `true` or `false` | - -## Run Order - -Specify the run order of the library components [Library Operations, Collection Files and Overlay Files] - -???+ tip - - If not specified, the default run order is Library Operations, then Metadata Files, then Collection Files, then Overlay Files - - ```yml - settings: - run_order: - - operations - - metadata - - collections - - overlays - ``` - -| | | -|----------------|-------------------------------------------------------------------------------| -| Default Value | `` | -| Allowed Values | List which must include `operations`, `metadata` and `overlays` in any order | - - -## Custom Repo - -Specify where the `repo` attribute's base is when defining `collection_files`, `playlist_file` and `overlay_files`. - -???+ note - - Ensure you are using the raw GitHub link (i.e. https://github.com/meisnate12/Plex-Meta-Manager-Configs/tree/master/meisnate12 ) - -| | | -|----------------|-------------------------| -| Default Value | None | -| Allowed Values | link to base repository | - - -## Verify SSL - -Turn SSL Verification on or off. - -???+ note - - set to false if your log file shows any errors similar to "SSL: CERTIFICATE_VERIFY_FAILED" - -| | | -|-----------------|---------------------| -| Default Value | true | -| Allowed Values | `true` or `false` | - - -## Check Nightly - -Will check nightly for updates instead of develop. - -???+ note - - This does not affect which version of PMM is grabbed when using `git pull` or any other update mechanism, it is only used for the initial version check when PMM runs to specify if a new version is available. - - It is recommended to set this to `true` if you primarily use the `nightly` branch - -| | | -|-----------------|--------------------| -| Default Value | false | -| Allowed Values | `true` or `false` | - +3. Sets the global `run_order` which will apply to all libraries unless a library-level `run_order` is found, as +showcased in the above example +4. Sets the global `minimum_items` which will apply to all libraries unless a library-level `minimum_items` is found, +as showcased in the above example diff --git a/docs/config/sonarr.md b/docs/config/sonarr.md index 57b839e5..da519790 100644 --- a/docs/config/sonarr.md +++ b/docs/config/sonarr.md @@ -4,17 +4,20 @@ search: --- # Sonarr Attributes -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. +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. -???+ note +???+ warning Sonarr V2 may work, but it is not supported please upgrade to V3 if you can. Items in your List Exclusions will be ignored by PMM. -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. +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. -At the library level, only those settings which are different to the global settings need to be specified; there is an example of this at the end of the page. +At the library level, only those settings which are different to the global settings need to be specified; there is an +example of this at the end of the page. Below is a `sonarr` mapping example and the full set of attributes: @@ -37,37 +40,40 @@ sonarr: plex_path: /share/CACHEDEV1_DATA/Multimedia ``` -| Attribute | Allowed Values | Default | Required | -|:-------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:--------------|:------------------------------------------:| -| `url` | Sonarr URL (Including URL Base if set).<br>**Example:** http://192.168.1.12:32788 | N/A | :fontawesome-solid-circle-check:{ .green } | -| `token` | Sonarr API Token. | N/A | :fontawesome-solid-circle-check:{ .green } | -| `add_missing` | Adds all missing shows found from all collections to Sonarr.<br>Use the `sonarr_add_missing` [Sonarr Details](../builders/details/arr.md#sonarr-definition-settings) in the collection definition to add missing per collection.<br>**boolean:** true or false | false | :fontawesome-solid-circle-xmark:{ .red } | -| `add_existing` | Adds all existing shows in collections to Sonarr.<br>Use the `sonarr_add_existing` [Sonarr Details](../builders/details/arr.md#sonarr-definition-settings) in the collection definition to add existing per collection.<br>**boolean:** true or false | false | :fontawesome-solid-circle-xmark:{ .red } | -| `upgrade_existing` | Upgrades all existing shows in collections to match the Quality Profile of the collection.<br>Use the `sonarr_upgrade_existing` [Sonarr Details](../builders/details/arr.md#sonarr-definition-settings) in the collection definition to upgrade the Quality Profile per collection.<br>**boolean:** true or false | false | :fontawesome-solid-circle-xmark:{ .red } | -| `ignore_cache` | Ignores PMM's cache when adding items to Sonarr.<br>Use the `sonarr_ignore_cache` [Sonarr Details](../builders/details/arr.md#sonarr-definition-settings) in the collection definition to ignore per collection.<br>**boolean:** true or false | false | :fontawesome-solid-circle-xmark:{ .red } | -| `root_folder_path` | Default Root Folder Path to use when adding new shows.<br>Use the `sonarr_folder` [Sonarr Details](../builders/details/arr.md#sonarr-definition-settings) in the collection definition to set the Root Folder per collection. | N/A | :fontawesome-solid-circle-check:{ .green } | -| `monitor` | Default Monitor to use when adding new shows.<br>Use the `sonarr_monitor` [Sonarr Details](../builders/details/arr.md#sonarr-definition-settings) in the collection definition to set the Monitor value per collection.<br>**Values:** <table class="clearTable"><tr><td>`all`</td><td>All episodes except specials</td></tr><tr><td>`future`</td><td>Episodes that have not aired yet</td></tr><tr><td>`missing`</td><td>Episodes that do not have files or have not aired yet</td></tr><tr><td>`existing`</td><td>Episodes that have files or have not aired yet</td></tr><tr><td>`pilot`</td><td>The first episode, all others will be ignored</td></tr><tr><td>`first`</td><td>All episodes of the first season, all others will be ignored</td></tr><tr><td>`latest`</td><td>All episodes of the latest season and future seasons</td></tr><tr><td>`none`</td><td>No episodes</td></tr></table> | `all` | :fontawesome-solid-circle-xmark:{ .red } | -| `quality_profile` | Default Quality Profile to use when adding new shows.<br>Use the `sonarr_quality` [Sonarr Details](../builders/details/arr.md#sonarr-definition-settings) in the collection definition to set the Quality Profile per collection. | N/A | :fontawesome-solid-circle-check:{ .green } | -| `language_profile` | Default Language Profile to use when adding new shows.<br>Use the `sonarr_language` [Sonarr Details](../builders/details/arr.md#sonarr-definition-settings) in the collection definition to set the Language Profile per collection. | First Profile | :fontawesome-solid-circle-xmark:{ .red } | -| `series_type` | Default Series Type to use when adding new shows.<br>Use the `sonarr_series` [Sonarr Details](../builders/details/arr.md#sonarr-definition-settings) in the collection definition to set the Series Type per collection.<br>**Values:** <table class="clearTable"><tr><td>`standard`</td><td>Episodes released with SxxEyy pattern</td></tr><tr><td>`daily`</td><td>Episodes released daily that use year-month-day pattern (2017-05-25)</td></tr><tr><td>`anime`</td><td>Episodes released using an absolute episode number</td></tr></table>`standard`: Episodes released with SxxEyy pattern<br>`daily`: Episodes released daily or less frequently that use year-month-day (2017-05-25)<br>`anime`: Episodes released using an absolute episode number | `standard` | :fontawesome-solid-circle-xmark:{ .red } | -| `season_folder` | Use the Season Folder Option when adding new shows.<br>Use the `sonarr_season` [Sonarr Details](../builders/details/arr.md#sonarr-definition-settings) in the collection definition to set the season folder value per collection. <br>**boolean:** true or false | true | :fontawesome-solid-circle-xmark:{ .red } | -| `tag` | Default list or comma-separated string of tags to use when adding new shows.<br>Use the `sonarr_tag` [Sonarr Details](../builders/details/arr.md#sonarr-definition-settings) in the collection definition to set the tags per collection. | ` ` | :fontawesome-solid-circle-xmark:{ .red } | -| `search` | Start search for missing episodes when adding new shows.<br>Use the `sonarr_search` [Sonarr Details](../builders/details/arr.md#sonarr-definition-settings) in the collection definition to set the search value per collection.<br>**boolean:** true or false | false | :fontawesome-solid-circle-xmark:{ .red } | -| `cutoff_search` | Start search for cutoff unmet episodes when adding new shows.<br>Use the `sonarr_cutoff_search` [Sonarr Details](../builders/details/arr.md#sonarr-definition-settings) in the collection definition to set the cutoff search value per collection.<br>**boolean:** true or false | false | :fontawesome-solid-circle-xmark:{ .red } | -| `plex_path` | When using `add_existing` or `sonarr_add_all` Convert this part of the path to `sonarr_path`. | ` ` | :fontawesome-solid-circle-xmark:{ .red } | -| `sonarr_path` | When using `add_existing` or `sonarr_add_all` Convert the `plex_path` part of the path to this. | ` ` | :fontawesome-solid-circle-xmark:{ .red } | +| Attribute | Allowed Values | Default | Required | +|:-------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:--------------|:------------------------------------------:| +| `url` | Sonarr URL (Including URL Base if set).<br>**Example:** http://192.168.1.12:32788 | N/A | :fontawesome-solid-circle-check:{ .green } | +| `token` | Sonarr API Token. | N/A | :fontawesome-solid-circle-check:{ .green } | +| `add_missing` | Adds all missing shows found from all collections to Sonarr.<br>Use the `sonarr_add_missing` [Sonarr Settings](../files/arr.md#sonarr-definition-settings) in the collection definition to add missing per collection.<br>**boolean:** true or false | false | :fontawesome-solid-circle-xmark:{ .red } | +| `add_existing` | Adds all existing shows in collections to Sonarr.<br>Use the `sonarr_add_existing` [Sonarr Settings](../files/arr.md#sonarr-definition-settings) in the collection definition to add existing per collection.<br>**boolean:** true or false | false | :fontawesome-solid-circle-xmark:{ .red } | +| `upgrade_existing` | Upgrades all existing shows in collections to match the Quality Profile of the collection.<br>Use the `sonarr_upgrade_existing` [Sonarr Settings](../files/arr.md#sonarr-definition-settings) in the collection definition to upgrade the Quality Profile per collection.<br>**boolean:** true or false | false | :fontawesome-solid-circle-xmark:{ .red } | +| `ignore_cache` | Ignores PMM's cache when adding items to Sonarr.<br>Use the `sonarr_ignore_cache` [Sonarr Settings](../files/arr.md#sonarr-definition-settings) in the collection definition to ignore per collection.<br>**boolean:** true or false | false | :fontawesome-solid-circle-xmark:{ .red } | +| `root_folder_path` | Default Root Folder Path to use when adding new shows.<br>Use the `sonarr_folder` [Sonarr Settings](../files/arr.md#sonarr-definition-settings) in the collection definition to set the Root Folder per collection. | N/A | :fontawesome-solid-circle-check:{ .green } | +| `monitor` | Default Monitor to use when adding new shows.<br>Use the `sonarr_monitor` [Sonarr Settings](../files/arr.md#sonarr-definition-settings) in the collection definition to set the Monitor value per collection.<br>**Values:** <table class="clearTable"><tr><td>`all`</td><td>All episodes except specials</td></tr><tr><td>`future`</td><td>Episodes that have not aired yet</td></tr><tr><td>`missing`</td><td>Episodes that do not have files or have not aired yet</td></tr><tr><td>`existing`</td><td>Episodes that have files or have not aired yet</td></tr><tr><td>`pilot`</td><td>The first episode, all others will be ignored</td></tr><tr><td>`first`</td><td>All episodes of the first season, all others will be ignored</td></tr><tr><td>`latest`</td><td>All episodes of the latest season and future seasons</td></tr><tr><td>`none`</td><td>No episodes</td></tr></table> | `all` | :fontawesome-solid-circle-xmark:{ .red } | +| `quality_profile` | Default Quality Profile to use when adding new shows.<br>Use the `sonarr_quality` [Sonarr Settings](../files/arr.md#sonarr-definition-settings) in the collection definition to set the Quality Profile per collection. | N/A | :fontawesome-solid-circle-check:{ .green } | +| `language_profile` | Default Language Profile to use when adding new shows.<br>Use the `sonarr_language` [Sonarr Settings](../files/arr.md#sonarr-definition-settings) in the collection definition to set the Language Profile per collection. | First Profile | :fontawesome-solid-circle-xmark:{ .red } | +| `series_type` | Default Series Type to use when adding new shows.<br>Use the `sonarr_series` [Sonarr Settings](../files/arr.md#sonarr-definition-settings) in the collection definition to set the Series Type per collection.<br>**Values:** <table class="clearTable"><tr><td>`standard`</td><td>Episodes released with SxxEyy pattern</td></tr><tr><td>`daily`</td><td>Episodes released daily that use year-month-day pattern (2017-05-25)</td></tr><tr><td>`anime`</td><td>Episodes released using an absolute episode number</td></tr></table>`standard`: Episodes released with SxxEyy pattern<br>`daily`: Episodes released daily or less frequently that use year-month-day (2017-05-25)<br>`anime`: Episodes released using an absolute episode number | `standard` | :fontawesome-solid-circle-xmark:{ .red } | +| `season_folder` | Use the Season Folder Option when adding new shows.<br>Use the `sonarr_season` [Sonarr Settings](../files/arr.md#sonarr-definition-settings) in the collection definition to set the season folder value per collection. <br>**boolean:** true or false | true | :fontawesome-solid-circle-xmark:{ .red } | +| `tag` | Default list or comma-separated string of tags to use when adding new shows.<br>Use the `sonarr_tag` [Sonarr Settings](../files/arr.md#sonarr-definition-settings) in the collection definition to set the tags per collection. | ` ` | :fontawesome-solid-circle-xmark:{ .red } | +| `search` | Start search for missing episodes when adding new shows.<br>Use the `sonarr_search` [Sonarr Settings](../files/arr.md#sonarr-definition-settings) in the collection definition to set the search value per collection.<br>**boolean:** true or false | false | :fontawesome-solid-circle-xmark:{ .red } | +| `cutoff_search` | Start search for cutoff unmet episodes when adding new shows.<br>Use the `sonarr_cutoff_search` [Sonarr Settings](../files/arr.md#sonarr-definition-settings) in the collection definition to set the cutoff search value per collection.<br>**boolean:** true or false | false | :fontawesome-solid-circle-xmark:{ .red } | +| `plex_path` | When using `add_existing` or `sonarr_add_all` Convert this part of the path to `sonarr_path`. | ` ` | :fontawesome-solid-circle-xmark:{ .red } | +| `sonarr_path` | When using `add_existing` or `sonarr_add_all` Convert the `plex_path` part of the path to this. | ` ` | :fontawesome-solid-circle-xmark:{ .red } | ???+ tip The `token` can be found by going to `Sonarr > Settings > General > Security > API Key` - The `quality_profile` and `language_profile` must be the exact name of the desired quality profile, including all spaces and capitalization. + The `quality_profile` and `language_profile` must be the exact name of the desired quality profile, including all +spaces and capitalization. -* You can set most attributes per collection by using the [Sonarr Details](../builders/details/arr.md#sonarr-definition-settings) in the collection definition. +* You can set most attributes per collection by using the [Sonarr Settings](../files/arr.md#sonarr-definition-settings) +in the collection definition. -![Sonarr Details](sonarr.png) +![Sonarr Details](images/sonarr.png) -Based on that UI, the settings would be [settings not based on things in this image are shown as `#`; url and token are of course required they are not shown here to focus on the settings that are shown above]: +Based on that UI, the settings would be [settings not based on things in this image are shown as `#`; url and token are +of course required they are not shown here to focus on the settings that are shown above]: ```YAML sonarr: @@ -92,7 +98,9 @@ sonarr: Specifying a second Sonarr instance for a specific library: -In this example we have two Sonarr instances, standard and 4K, with five libraries that override various details. Also, shows are being added to the "Library05" library outside Sonarr via a custom script and I want those new shows added to Sonarr for tracking. +In this example we have two Sonarr instances, standard and 4K, with five libraries that override various details. Also, +shows are being added to the "Library05" library outside Sonarr via a custom script and I want those new shows added to +Sonarr for tracking. ``` libraries: diff --git a/docs/config/tautulli.md b/docs/config/tautulli.md index 33319048..69d0a079 100644 --- a/docs/config/tautulli.md +++ b/docs/config/tautulli.md @@ -1,8 +1,10 @@ # Tautulli Attributes -Configuring [Tautulli](https://tautulli.com/) is optional but can allow you to create Collections based on Tautulli's Watch Statistics. +Configuring [Tautulli](https://tautulli.com/) is optional but can allow you to create Collections based on Tautulli's +Watch Statistics. -A `tautulli` mapping can be either in the root of the config file as global mapping for all libraries, or you can specify the `tautulli` mapping individually per library. +A `tautulli` mapping can be either in the root of the config file as global mapping for all libraries, or you can +specify the `tautulli` mapping individually per library. Below is a `tautulli` mapping example and the full set of attributes: diff --git a/docs/config/tmdb.md b/docs/config/tmdb.md index 52cd71f1..a3f7f0fc 100644 --- a/docs/config/tmdb.md +++ b/docs/config/tmdb.md @@ -17,11 +17,12 @@ tmdb: cache_expiration: 60 ``` -| Attribute | Allowed Values | Default | Required | -|:-------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:--------|:------------------------------------------:| -| `apikey` | User TMDb V3 API Key | N/A | :fontawesome-solid-circle-check:{ .green } | -| `language` | [ISO 639-1 Code](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) of the User Language | en | :fontawesome-solid-circle-xmark:{ .red } | -| `region` | [ISO 3166-1 Code](https://en.wikipedia.org/wiki/ISO_3166-1#Current_codes) of the User Region for use with [Other TMDb Builders](../builders/tmdb.md#other-tmdb-builders) | None | :fontawesome-solid-circle-xmark:{ .red } | -| `cache_expiration` | Number of days before each cache mapping expires and has to be re-cached. | 60 | :fontawesome-solid-circle-xmark:{ .red } | +| Attribute | Allowed Values | Default | Required | +|:-------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:--------|:------------------------------------------:| +| `apikey` | User TMDb V3 API Key | N/A | :fontawesome-solid-circle-check:{ .green } | +| `language` | [ISO 639-1 Code](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) of the User Language | en | :fontawesome-solid-circle-xmark:{ .red } | +| `region` | [ISO 3166-1 Code](https://en.wikipedia.org/wiki/ISO_3166-1#Current_codes) of the User Region for use with [Other TMDb Builders](../files/builders/tmdb.md#other-tmdb-builders) | None | :fontawesome-solid-circle-xmark:{ .red } | +| `cache_expiration` | Number of days before each cache mapping expires and has to be re-cached. | 60 | :fontawesome-solid-circle-xmark:{ .red } | -If you do not have a TMDb V3 API key please refer to this [guide](https://developers.themoviedb.org/3/getting-started/introduction). +If you do not have a TMDb V3 API key please refer to this +[guide](https://developers.themoviedb.org/3/getting-started/introduction). diff --git a/docs/config/trakt.md b/docs/config/trakt.md index e9949da5..f05b1d31 100644 --- a/docs/config/trakt.md +++ b/docs/config/trakt.md @@ -31,7 +31,8 @@ trakt: * All other attributes will be filled in by Plex Meta Manager. -To connect to Trakt.tv you must create a Trakt application and supply Plex Meta Manager the `client_id`, `client_secret`, and `pin` provided, please do the following: +To connect to Trakt.tv you must create a Trakt application and supply Plex Meta Manager the `client_id`, +`client_secret`, and `pin` provided, please do the following: 1. [Click here to create a Trakt API application.](https://trakt.tv/oauth/applications/new) 2. Enter a `Name` for the application. @@ -40,7 +41,7 @@ To connect to Trakt.tv you must create a Trakt application and supply Plex Meta 5. Record the `Client ID` and `Client Secret` as `client_id` and `client_secret` in your Configuration File. 6. Click the Green Authorize Button next to the Redirect URI - ![Trakt Authorize](trakt.png) + ![Trakt Authorize](images/trakt.png) 7. Record the `PIN` as `pin` in your Configuration File. @@ -50,7 +51,10 @@ To connect to Trakt.tv you must create a Trakt application and supply Plex Meta ## Online Authorization Script -Plex Meta Manager requires interactive mode to be able to enter the Client ID and Client Secret. Some systems (namely NAS) make this difficult to accomplish. Chazlarson has developed an online script that can be run to generate the MAL and Trakt authentication outside of Plex Meta Manager and then paste the end-result directly into the configuration file. +Plex Meta Manager requires interactive mode to be able to enter the Client ID and Client Secret. Some systems (namely +NAS) make this difficult to accomplish. Chazlarson has developed an online script that can be run to generate the MAL +and Trakt authentication outside of Plex Meta Manager and then paste the end-result directly into the configuration +file. The Online Auth tool can be found [here](https://replit.com/@chazlarson/TraktAuth). diff --git a/docs/config/webhooks.md b/docs/config/webhooks.md index 3b7be1dc..d760ec8d 100644 --- a/docs/config/webhooks.md +++ b/docs/config/webhooks.md @@ -31,7 +31,8 @@ webhooks: ## Error Notifications -The Error notification will be sent whenever an error occurs. The payload that is sent is different Depending on which level the error occurs. +The Error notification will be sent whenever an error occurs. The payload that is sent is different Depending on which +level the error occurs. ### Global JSON Payload @@ -152,7 +153,8 @@ The Delete Notification will be sent whenever a collection/playlist is deleted c ## Changes Notifications -The Changes Notification will be sent after each collection/playlist containing the following payload if the collection/playlist has been created, has new items, or has had items removed. +The Changes Notification will be sent after each collection/playlist containing the following payload if the +collection/playlist has been created, has new items, or has had items removed. ### JSON Payload diff --git a/docs/defaults/award/bafta.md b/docs/defaults/award/bafta.md index 036defa9..b6d38605 100644 --- a/docs/defaults/award/bafta.md +++ b/docs/defaults/award/bafta.md @@ -1,6 +1,7 @@ # British Academy of Film and Television Arts Awards Collections -The `bafta` Default Collection File is used to create collections based on the British Academy of Film and Television Arts Awards. +The `bafta` Default Collection File is used to create collections based on the British Academy of Film and Television +Arts Awards. ![](../images/bafta.png) @@ -28,61 +29,70 @@ libraries: - pmm: bafta ``` -## Template Variable Default Values +## Template Variables -Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. +Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to +make your own local copy. -| Variable | Description & Values | -|:---------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `use_year_collections` | **Description:** Turn the individual year collections off.<br>**Values:** `false` to turn of the collections | -| `year_collection_section` | **Description:** Change the collection section for year collections only. (Use quotes to not lose leading zeros `"05"`)<br>**Values:** Any number | -| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `data` | **Description:** Replaces the `data` dynamic collection value.<br><table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>starting</code></td><td>Controls the starting year for collections<br><strong>Default:</strong> current_year-5<br><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>ending</code></td><td>Controls the ending year for collections<br><strong>Default:</strong> current_year<br><strong>Values:</strong> Number greater than 1</td></tr><tr><td><code>increment</code></td><td>Controls the increment (i.e. every 5th year)<br><strong>Default:</strong> 1<br><strong>Values:</strong> Number greater than 0</td><td></td></tr></table><ul><li><strong><code>starting</code> and <code>ending</code> can also have the value <code>current_year</code></strong></li><li><strong>You can also use a value relative to the <code>current_year</code> by doing <code>current_year-5</code></strong></li></ul> | -| `exclude` | **Description:** Exclude these Years from creating a Dynamic Collection.<br>**Values:** List of Years | -| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `BAFTA <<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | -| `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<key_name>> BAFTA Awards.`<br>**Values:** Any string with `<<key_name>>` in it. | +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults +work. Any value not specified will use its default value if it has one if not it's just ignored. -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. +??? info "Click to expand" -{% - include-markdown "../collection_variables.md" -%} + === "File-Specific Template Variables" -### Example Template Variable Amendments + The below template variables are available specifically for this PMM Defaults file. -The below is an example config.yml extract with some Template Variables added in to change how the file works. + Be sure to also check out the "Shared Template Variables" tab for additional variables. -???+ tip + | Variable | Description & Values | + |:---------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `use_year_collections` | **Description:** Turn the individual year collections off.<br>**Values:** `false` to turn of the collections | + | `year_collection_section` | **Description:** Change the collection section for year collections only. (Use quotes to not lose leading zeros `"05"`)<br>**Values:** Any number | + | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | + | `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | + | `data` | **Description:** Replaces the `data` dynamic collection value.<br><table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>starting</code></td><td>Controls the starting year for collections<br><strong>Default:</strong> current_year-5<br><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>ending</code></td><td>Controls the ending year for collections<br><strong>Default:</strong> current_year<br><strong>Values:</strong> Number greater than 1</td></tr><tr><td><code>increment</code></td><td>Controls the increment (i.e. every 5th year)<br><strong>Default:</strong> 1<br><strong>Values:</strong> Number greater than 0</td><td></td></tr></table><ul><li><strong><code>starting</code> and <code>ending</code> can also have the value <code>current_year</code></strong></li><li><strong>You can also use a value relative to the <code>current_year</code> by doing <code>current_year-5</code></strong></li></ul> | + | `exclude` | **Description:** Exclude these Years from creating a Dynamic Collection.<br>**Values:** List of Years | + | `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `BAFTA <<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | + | `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<key_name>> BAFTA Awards.`<br>**Values:** Any string with `<<key_name>>` in it. | - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace + `<<key>>` with when calling. -```yaml -libraries: - Movies: - collection_files: - - pmm: bafta - template_variables: - collection_mode: show_items #(1)! - collection_order: alpha #(2)! - radarr_add_missing: true #(3)! - name_format: BAFTA <<key_name>> Winners #(4)! - data: - starting: current_year-10 #(5)! - increment: 2 #(6)! - ending: current_year #(7)! -``` + === "Shared Template Variables" -1. Shows the collection and all of its items within the Library tab in Plex -2. Sorts the collection items alphabetically -3. Adds items from the source list which are not in Plex to Radarr -4. Change the name of the collections to "BAFTA yearhere Winners" -5. If today is 2024, then create collections for BAFTA 2014 onwards -6. If starting year is 2014, then create collections for 2014, 2016, 2018, 2020, etc. -7. If today is 2024, then the final collection is BAFTA 2024 \ No newline at end of file + {% + include-markdown "../collection_variables.md" + %} + + ???+ example "Example Template Variable Amendments" + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + Click the :fontawesome-solid-circle-plus: icon to learn more + + ```yaml + libraries: + Movies: + collection_files: + - pmm: bafta + template_variables: + collection_mode: show_items #(1)! + collection_order: alpha #(2)! + radarr_add_missing: true #(3)! + name_format: BAFTA <<key_name>> Winners #(4)! + data: + starting: current_year-10 #(5)! + increment: 2 #(6)! + ending: current_year #(7)! + ``` + + 1. Shows the collection and all of its items within the Library tab in Plex + 2. Sorts the collection items alphabetically + 3. Adds items from the source list which are not in Plex to Radarr + 4. Change the name of the collections to "BAFTA yearhere Winners" + 5. If today is 2024, then create collections for BAFTA 2014 onwards + 6. If starting year is 2014, then create collections for 2014, 2016, 2018, 2020, etc. + 7. If today is 2024, then the final collection is BAFTA 2024 \ No newline at end of file diff --git a/docs/defaults/award/cannes.md b/docs/defaults/award/cannes.md index 14148ff3..f2a55adf 100644 --- a/docs/defaults/award/cannes.md +++ b/docs/defaults/award/cannes.md @@ -28,61 +28,73 @@ libraries: - pmm: cannes ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -| Variable | Description & Values | -|:---------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `use_year_collections` | **Description:** Turn the individual year collections off.<br>**Values:** `false` to turn of the collections | -| `year_collection_section` | **Description:** Change the collection section for year collections only. (Use quotes to not lose leading zeros `"05"`)<br>**Values:** Any number | -| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `data` | **Description:** Replaces the `data` dynamic collection value.<br><table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>starting</code></td><td>Controls the starting year for collections<br><strong>Default:</strong> current_year-5<br><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>ending</code></td><td>Controls the ending year for collections<br><strong>Default:</strong> current_year<br><strong>Values:</strong> Number greater than 1</td></tr><tr><td><code>increment</code></td><td>Controls the increment (i.e. every 5th year)<br><strong>Default:</strong> 1<br><strong>Values:</strong> Number greater than 0</td><td></td></tr></table><ul><li><strong><code>starting</code> and <code>ending</code> can also have the value <code>current_year</code></strong></li><li><strong>You can also use a value relative to the <code>current_year</code> by doing <code>current_year-5</code></strong></li></ul> | -| `exclude` | **Description:** Exclude these Years from creating a Dynamic Collection.<br>**Values:** List of Years | -| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `Cannes <<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | -| `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<key_name>> Cannes Awards.`<br>**Values:** Any string with `<<key_name>>` in it. | +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. +??? info "Click to expand" -{% - include-markdown "../collection_variables.md" -%} + === "File-Specific Template Variables" -### Example Template Variable Amendments + The below template variables are available specifically for this PMM Defaults file. -The below is an example config.yml extract with some Template Variables added in to change how the file works. + Be sure to also check out the "Shared Template Variables" tab for additional variables. -???+ tip + | Variable | Description & Values | + |:---------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `use_year_collections` | **Description:** Turn the individual year collections off.<br>**Values:** `false` to turn of the collections | + | `year_collection_section` | **Description:** Change the collection section for year collections only. (Use quotes to not lose leading zeros `"05"`)<br>**Values:** Any number | + | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | + | `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | + | `data` | **Description:** Replaces the `data` dynamic collection value.<br><table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>starting</code></td><td>Controls the starting year for collections<br><strong>Default:</strong> current_year-5<br><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>ending</code></td><td>Controls the ending year for collections<br><strong>Default:</strong> current_year<br><strong>Values:</strong> Number greater than 1</td></tr><tr><td><code>increment</code></td><td>Controls the increment (i.e. every 5th year)<br><strong>Default:</strong> 1<br><strong>Values:</strong> Number greater than 0</td><td></td></tr></table><ul><li><strong><code>starting</code> and <code>ending</code> can also have the value <code>current_year</code></strong></li><li><strong>You can also use a value relative to the <code>current_year</code> by doing <code>current_year-5</code></strong></li></ul> | + | `exclude` | **Description:** Exclude these Years from creating a Dynamic Collection.<br>**Values:** List of Years | + | `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `Cannes <<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | + | `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<key_name>> Cannes Awards.`<br>**Values:** Any string with `<<key_name>>` in it. | - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. -```yaml -libraries: - Movies: - collection_files: - - pmm: cannes - template_variables: - collection_mode: show_items #(1)! - collection_order: alpha #(2)! - radarr_add_missing: true #(3)! - name_format: Cannes <<key_name>> Winners #(4)! - data: - starting: current_year-10 #(5)! - increment: 2 #(6)! - ending: current_year #(7)! -``` + === "Shared Template Variables" -1. Shows the collection and all of its items within the Library tab in Plex -2. Sorts the collection items alphabetically -3. Adds items from the source list which are not in Plex to Radarr -4. Change the name of the collections to "Cannes yearhere Winners" -5. If today is 2024, then create collections for Cannes 2014 onwards -6. If starting year is 2014, then create collections for 2014, 2016, 2018, 2020, etc. -7. If today is 2024, then the final collection is Cannes 2024 \ No newline at end of file + {% + include-markdown "../collection_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ???+ tip + + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. + + ```yaml + libraries: + Movies: + collection_files: + - pmm: cannes + template_variables: + collection_mode: show_items #(1)! + collection_order: alpha #(2)! + radarr_add_missing: true #(3)! + name_format: Cannes <<key_name>> Winners #(4)! + data: + starting: current_year-10 #(5)! + increment: 2 #(6)! + ending: current_year #(7)! + ``` + + 1. Shows the collection and all of its items within the Library tab in Plex + 2. Sorts the collection items alphabetically + 3. Adds items from the source list which are not in Plex to Radarr + 4. Change the name of the collections to "Cannes yearhere Winners" + 5. If today is 2024, then create collections for Cannes 2014 onwards + 6. If starting year is 2014, then create collections for 2014, 2016, 2018, 2020, etc. + 7. If today is 2024, then the final collection is Cannes 2024 \ No newline at end of file diff --git a/docs/defaults/award/choice.md b/docs/defaults/award/choice.md index 71c00dfe..9f497e03 100644 --- a/docs/defaults/award/choice.md +++ b/docs/defaults/award/choice.md @@ -30,62 +30,75 @@ libraries: - pmm: choice ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -| Variable | Description & Values | -|:---------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `use_year_collections` | **Description:** Turn the individual year collections off.<br>**Values:** `false` to turn of the collections | -| `year_collection_section` | **Description:** Change the collection section for year collections only. (Use quotes to not lose leading zeros `"05"`)<br>**Values:** Any number | -| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `data` | **Description:** Replaces the `data` dynamic collection value.<br><table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>starting</code></td><td>Controls the starting year for collections<br><strong>Default:</strong> current_year-5<br><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>ending</code></td><td>Controls the ending year for collections<br><strong>Default:</strong> current_year<br><strong>Values:</strong> Number greater than 1</td></tr><tr><td><code>increment</code></td><td>Controls the increment (i.e. every 5th year)<br><strong>Default:</strong> 1<br><strong>Values:</strong> Number greater than 0</td><td></td></tr></table><ul><li><strong><code>starting</code> and <code>ending</code> can also have the value <code>current_year</code></strong></li><li><strong>You can also use a value relative to the <code>current_year</code> by doing <code>current_year-5</code></strong></li></ul> | -| `exclude` | **Description:** Exclude these Years from creating a Dynamic Collection.<br>**Values:** List of Years | -| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `Critics Choice <<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | -| `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<key_name>> Critics Choice Awards.`<br>**Values:** Any string with `<<key_name>>` in it. | +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. +??? info "Click to expand" -{% - include-markdown "../collection_variables.md" -%} + === "File-Specific Template Variables" -### Example Template Variable Amendments + The below template variables are available specifically for this PMM Defaults file. -The below is an example config.yml extract with some Template Variables added in to change how the file works. + Be sure to also check out the "Shared Template Variables" tab for additional variables. -???+ tip + | Variable | Description & Values | + |:---------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `use_year_collections` | **Description:** Turn the individual year collections off.<br>**Values:** `false` to turn of the collections | + | `year_collection_section` | **Description:** Change the collection section for year collections only. (Use quotes to not lose leading zeros `"05"`)<br>**Values:** Any number | + | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | + | `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | + | `data` | **Description:** Replaces the `data` dynamic collection value.<br><table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>starting</code></td><td>Controls the starting year for collections<br><strong>Default:</strong> current_year-5<br><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>ending</code></td><td>Controls the ending year for collections<br><strong>Default:</strong> current_year<br><strong>Values:</strong> Number greater than 1</td></tr><tr><td><code>increment</code></td><td>Controls the increment (i.e. every 5th year)<br><strong>Default:</strong> 1<br><strong>Values:</strong> Number greater than 0</td><td></td></tr></table><ul><li><strong><code>starting</code> and <code>ending</code> can also have the value <code>current_year</code></strong></li><li><strong>You can also use a value relative to the <code>current_year</code> by doing <code>current_year-5</code></strong></li></ul> | + | `exclude` | **Description:** Exclude these Years from creating a Dynamic Collection.<br>**Values:** List of Years | + | `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `Critics Choice <<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | + | `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<key_name>> Critics Choice Awards.`<br>**Values:** Any string with `<<key_name>>` in it. | - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. -```yaml -libraries: - Movies: - collection_files: - - pmm: choice - template_variables: - collection_mode: show_items #(1)! - collection_order: alpha #(2)! - radarr_add_missing: true #(3)! - name_format: Critics Choice Awards <<key_name>> Winners #(4)! - data: - starting: current_year-10 #(5)! - increment: 2 #(6)! - ending: current_year #(7)! -``` + === "Shared Template Variables" -1. Shows the collection and all of its items within the Library tab in Plex -2. Sorts the collection items alphabetically -3. Adds items from the source list which are not in Plex to Radarr -4. Change the name of the collections to "Critics Choice Awards yearhere Winners" -5. If today is 2024, then create collections for Critics Choice Awards 2014 onwards -6. If starting year is 2014, then create collections for 2014, 2016, 2018, 2020, etc. -7. If today is 2024, then the final collection is Critics Choice Awards 2024 + {% + include-markdown "../collection_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ???+ tip + + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. + + + ```yaml + libraries: + Movies: + collection_files: + - pmm: choice + template_variables: + collection_mode: show_items #(1)! + collection_order: alpha #(2)! + radarr_add_missing: true #(3)! + name_format: Critics Choice Awards <<key_name>> Winners #(4)! + data: + starting: current_year-10 #(5)! + increment: 2 #(6)! + ending: current_year #(7)! + ``` + + 1. Shows the collection and all of its items within the Library tab in Plex + 2. Sorts the collection items alphabetically + 3. Adds items from the source list which are not in Plex to Radarr + 4. Change the name of the collections to "Critics Choice Awards yearhere Winners" + 5. If today is 2024, then create collections for Critics Choice Awards 2014 onwards + 6. If starting year is 2014, then create collections for 2014, 2016, 2018, 2020, etc. + 7. If today is 2024, then the final collection is Critics Choice Awards 2024 diff --git a/docs/defaults/award/emmy.md b/docs/defaults/award/emmy.md index 1c380599..9943cc4a 100644 --- a/docs/defaults/award/emmy.md +++ b/docs/defaults/award/emmy.md @@ -28,61 +28,74 @@ libraries: - pmm: emmy ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -| Variable | Description & Values | -|:---------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `use_year_collections` | **Description:** Turn the individual year collections off.<br>**Values:** `false` to turn off the collections | -| `year_collection_section` | **Description:** Change the collection section for year collections only. (Use quotes to not lose leading zeros `"05"`)<br>**Values:** Any number | -| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `data` | **Description:** Replaces the `data` dynamic collection value.<br><table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>starting</code></td><td>Controls the starting year for collections<br><strong>Default:</strong> current_year-5<br><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>ending</code></td><td>Controls the ending year for collections<br><strong>Default:</strong> current_year<br><strong>Values:</strong> Number greater than 1</td></tr><tr><td><code>increment</code></td><td>Controls the increment (i.e. every 5th year)<br><strong>Default:</strong> 1<br><strong>Values:</strong> Number greater than 0</td><td></td></tr></table><ul><li><strong><code>starting</code> and <code>ending</code> can also have the value <code>current_year</code></strong></li><li><strong>You can also use a value relative to the <code>current_year</code> by doing <code>current_year-5</code></strong></li></ul> | -| `exclude` | **Description:** Exclude these Years from creating a Dynamic Collection.<br>**Values:** List of Years | -| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `Emmys <<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | -| `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<key_name>> Emmy Winners.`<br>**Values:** Any string with `<<key_name>>` in it. | +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. +??? info "Click to expand" -{% - include-markdown "../collection_variables.md" -%} + === "File-Specific Template Variables" -### Example Template Variable Amendments + The below template variables are available specifically for this PMM Defaults file. -The below is an example config.yml extract with some Template Variables added in to change how the file works. + Be sure to also check out the "Shared Template Variables" tab for additional variables. -???+ tip - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. + | Variable | Description & Values | + |:---------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `use_year_collections` | **Description:** Turn the individual year collections off.<br>**Values:** `false` to turn off the collections | + | `year_collection_section` | **Description:** Change the collection section for year collections only. (Use quotes to not lose leading zeros `"05"`)<br>**Values:** Any number | + | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | + | `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | + | `data` | **Description:** Replaces the `data` dynamic collection value.<br><table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>starting</code></td><td>Controls the starting year for collections<br><strong>Default:</strong> current_year-5<br><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>ending</code></td><td>Controls the ending year for collections<br><strong>Default:</strong> current_year<br><strong>Values:</strong> Number greater than 1</td></tr><tr><td><code>increment</code></td><td>Controls the increment (i.e. every 5th year)<br><strong>Default:</strong> 1<br><strong>Values:</strong> Number greater than 0</td><td></td></tr></table><ul><li><strong><code>starting</code> and <code>ending</code> can also have the value <code>current_year</code></strong></li><li><strong>You can also use a value relative to the <code>current_year</code> by doing <code>current_year-5</code></strong></li></ul> | + | `exclude` | **Description:** Exclude these Years from creating a Dynamic Collection.<br>**Values:** List of Years | + | `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `Emmys <<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | + | `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<key_name>> Emmy Winners.`<br>**Values:** Any string with `<<key_name>>` in it. | -```yaml -libraries: - Movies: - collection_files: - - pmm: emmy - template_variables: - collection_mode: show_items #(1)! - collection_order: alpha #(2)! - radarr_add_missing: true #(3)! - name_format: Emmys <<key_name>> Winners #(4)! - data: - starting: current_year-10 #(5)! - increment: 2 #(6)! - ending: current_year #(7)! -``` + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. -1. Shows the collection and all of its items within the Library tab in Plex -2. Sorts the collection items alphabetically -3. Adds items from the source list which are not in Plex to Radarr -4. Change the name of the collections to "Emmys yearhere Winners" -5. If today is 2024, then create collections for Emmys 2014 onwards -6. If starting year is 2014, then create collections for 2014, 2016, 2018, 2020, etc. -7. If today is 2024, then the final collection is Emmys 2024 \ No newline at end of file + === "Shared Template Variables" + + {% + include-markdown "../collection_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ???+ tip + + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. + + ```yaml + libraries: + Movies: + collection_files: + - pmm: emmy + template_variables: + collection_mode: show_items #(1)! + collection_order: alpha #(2)! + radarr_add_missing: true #(3)! + name_format: Emmys <<key_name>> Winners #(4)! + data: + starting: current_year-10 #(5)! + increment: 2 #(6)! + ending: current_year #(7)! + ``` + + 1. Shows the collection and all of its items within the Library tab in Plex + 2. Sorts the collection items alphabetically + 3. Adds items from the source list which are not in Plex to Radarr + 4. Change the name of the collections to "Emmys yearhere Winners" + 5. If today is 2024, then create collections for Emmys 2014 onwards + 6. If starting year is 2014, then create collections for 2014, 2016, 2018, 2020, etc. + 7. If today is 2024, then the final collection is Emmys 2024 \ No newline at end of file diff --git a/docs/defaults/award/golden.md b/docs/defaults/award/golden.md index 46a58288..02e8c60e 100644 --- a/docs/defaults/award/golden.md +++ b/docs/defaults/award/golden.md @@ -32,61 +32,74 @@ libraries: - pmm: golden ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -| Variable | Description & Values | -|:---------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `use_year_collections` | **Description:** Turn the individual year collections off.<br>**Values:** `false` to turn of the collections | -| `year_collection_section` | **Description:** Change the collection section for year collections only. (Use quotes to not lose leading zeros `"05"`)<br>**Values:** Any number | -| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `data` | **Description:** Replaces the `data` dynamic collection value.<br><table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>starting</code></td><td>Controls the starting year for collections<br><strong>Default:</strong> current_year-5<br><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>ending</code></td><td>Controls the ending year for collections<br><strong>Default:</strong> current_year<br><strong>Values:</strong> Number greater than 1</td></tr><tr><td><code>increment</code></td><td>Controls the increment (i.e. every 5th year)<br><strong>Default:</strong> 1<br><strong>Values:</strong> Number greater than 0</td><td></td></tr></table><ul><li><strong><code>starting</code> and <code>ending</code> can also have the value <code>current_year</code></strong></li><li><strong>You can also use a value relative to the <code>current_year</code> by doing <code>current_year-5</code></strong></li></ul> | -| `exclude` | **Description:** Exclude these Years from creating a Dynamic Collection.<br>**Values:** List of Years | -| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `Golden Globe <<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | -| `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<key_name>> Golden Globe Winners.`<br>**Values:** Any string with `<<key_name>>` in it. | +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. +??? info "Click to expand" -{% - include-markdown "../collection_variables.md" -%} + === "File-Specific Template Variables" -### Example Template Variable Amendments + The below template variables are available specifically for this PMM Defaults file. -The below is an example config.yml extract with some Template Variables added in to change how the file works. + Be sure to also check out the "Shared Template Variables" tab for additional variables. -???+ tip - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. + | Variable | Description & Values | + |:---------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `use_year_collections` | **Description:** Turn the individual year collections off.<br>**Values:** `false` to turn of the collections | + | `year_collection_section` | **Description:** Change the collection section for year collections only. (Use quotes to not lose leading zeros `"05"`)<br>**Values:** Any number | + | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | + | `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | + | `data` | **Description:** Replaces the `data` dynamic collection value.<br><table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>starting</code></td><td>Controls the starting year for collections<br><strong>Default:</strong> current_year-5<br><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>ending</code></td><td>Controls the ending year for collections<br><strong>Default:</strong> current_year<br><strong>Values:</strong> Number greater than 1</td></tr><tr><td><code>increment</code></td><td>Controls the increment (i.e. every 5th year)<br><strong>Default:</strong> 1<br><strong>Values:</strong> Number greater than 0</td><td></td></tr></table><ul><li><strong><code>starting</code> and <code>ending</code> can also have the value <code>current_year</code></strong></li><li><strong>You can also use a value relative to the <code>current_year</code> by doing <code>current_year-5</code></strong></li></ul> | + | `exclude` | **Description:** Exclude these Years from creating a Dynamic Collection.<br>**Values:** List of Years | + | `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `Golden Globe <<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | + | `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<key_name>> Golden Globe Winners.`<br>**Values:** Any string with `<<key_name>>` in it. | -```yaml -libraries: - Movies: - collection_files: - - pmm: golden - template_variables: - collection_mode: show_items #(1)! - collection_order: alpha #(2)! - radarr_add_missing: true #(3)! - name_format: Emmys <<key_name>> Winners #(4)! - data: - starting: current_year-10 #(5)! - increment: 2 #(6)! - ending: current_year #(7)! -``` + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. -1. Shows the collection and all of its items within the Library tab in Plex -2. Sorts the collection items alphabetically -3. Adds items from the source list which are not in Plex to Radarr -4. Change the name of the collections to "Golden Globes yearhere Winners" -5. If today is 2024, then create collections for Golden Globes 2014 onwards -6. If starting year is 2014, then create collections for 2014, 2016, 2018, 2020, etc. -7. If today is 2024, then the final collection is Golden Globes 2024 \ No newline at end of file + === "Shared Template Variables" + + {% + include-markdown "../collection_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ???+ tip + + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. + + ```yaml + libraries: + Movies: + collection_files: + - pmm: golden + template_variables: + collection_mode: show_items #(1)! + collection_order: alpha #(2)! + radarr_add_missing: true #(3)! + name_format: Emmys <<key_name>> Winners #(4)! + data: + starting: current_year-10 #(5)! + increment: 2 #(6)! + ending: current_year #(7)! + ``` + + 1. Shows the collection and all of its items within the Library tab in Plex + 2. Sorts the collection items alphabetically + 3. Adds items from the source list which are not in Plex to Radarr + 4. Change the name of the collections to "Golden Globes yearhere Winners" + 5. If today is 2024, then create collections for Golden Globes 2014 onwards + 6. If starting year is 2014, then create collections for 2014, 2016, 2018, 2020, etc. + 7. If today is 2024, then the final collection is Golden Globes 2024 \ No newline at end of file diff --git a/docs/defaults/award/oscars.md b/docs/defaults/award/oscars.md index 4513e5d5..80786ce5 100644 --- a/docs/defaults/award/oscars.md +++ b/docs/defaults/award/oscars.md @@ -27,61 +27,75 @@ libraries: - pmm: oscars ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -| Variable | Description & Values | -|:---------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `use_year_collections` | **Description:** Turn the individual year collections off.<br>**Values:** `false` to turn of the collections | -| `year_collection_section` | **Description:** Change the collection section for year collections only. (Use quotes to not lose leading zeros `"05"`)<br>**Values:** Any number | -| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `data` | **Description:** Replaces the `data` dynamic collection value.<br><table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>starting</code></td><td>Controls the starting year for collections<br><strong>Default:</strong> current_year-6<br><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>ending</code></td><td>Controls the ending year for collections<br><strong>Default:</strong> current_year-1<br><strong>Values:</strong> Number greater than 1</td></tr><tr><td><code>increment</code></td><td>Controls the increment (i.e. every 5th year)<br><strong>Default:</strong> 1<br><strong>Values:</strong> Number greater than 0</td><td></td></tr></table><ul><li><strong><code>starting</code> and <code>ending</code> can also have the value <code>current_year</code></strong></li><li><strong>You can also use a value relative to the <code>current_year</code> by doing <code>current_year-5</code></strong></li></ul> | -| `exclude` | **Description:** Exclude these Years from creating a Dynamic Collection.<br>**Values:** List of Years | -| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `Oscars Winners <<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | -| `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `Academy Awards (Oscars) Winners for <<key_name>>.`<br>**Values:** Any string with `<<key_name>>` in it. | +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. +??? info "Click to expand" -{% - include-markdown "../collection_variables.md" -%} + === "File-Specific Template Variables" -### Example Template Variable Amendments + The below template variables are available specifically for this PMM Defaults file. -The below is an example config.yml extract with some Template Variables added in to change how the file works. + Be sure to also check out the "Shared Template Variables" tab for additional variables. -???+ tip - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. + | Variable | Description & Values | + |:---------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `use_year_collections` | **Description:** Turn the individual year collections off.<br>**Values:** `false` to turn of the collections | + | `year_collection_section` | **Description:** Change the collection section for year collections only. (Use quotes to not lose leading zeros `"05"`)<br>**Values:** Any number | + | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | + | `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | + | `data` | **Description:** Replaces the `data` dynamic collection value.<br><table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>starting</code></td><td>Controls the starting year for collections<br><strong>Default:</strong> current_year-6<br><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>ending</code></td><td>Controls the ending year for collections<br><strong>Default:</strong> current_year-1<br><strong>Values:</strong> Number greater than 1</td></tr><tr><td><code>increment</code></td><td>Controls the increment (i.e. every 5th year)<br><strong>Default:</strong> 1<br><strong>Values:</strong> Number greater than 0</td><td></td></tr></table><ul><li><strong><code>starting</code> and <code>ending</code> can also have the value <code>current_year</code></strong></li><li><strong>You can also use a value relative to the <code>current_year</code> by doing <code>current_year-5</code></strong></li></ul> | + | `exclude` | **Description:** Exclude these Years from creating a Dynamic Collection.<br>**Values:** List of Years | + | `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `Oscars Winners <<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | + | `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `Academy Awards (Oscars) Winners for <<key_name>>.`<br>**Values:** Any string with `<<key_name>>` in it. | -```yaml -libraries: - Movies: - collection_files: - - pmm: oscars - template_variables: - collection_mode: show_items #(1)! - collection_order: alpha #(2)! - radarr_add_missing: true #(3)! - name_format: Emmys <<key_name>> Winners #(4)! - data: - starting: current_year-10 #(5)! - increment: 2 #(6)! - ending: current_year #(7)! -``` + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. -1. Shows the collection and all of its items within the Library tab in Plex -2. Sorts the collection items alphabetically -3. Adds items from the source list which are not in Plex to Radarr -4. Change the name of the collections to "Oscars yearhere Winners" -5. If today is 2024, then create collections for Oscars 2014 onwards -6. If starting year is 2014, then create collections for 2014, 2016, 2018, 2020, etc. -7. If today is 2024, then the final collection is Oscars 2024 + === "Shared Template Variables" + + {% + include-markdown "../collection_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ???+ tip + + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. + + + ```yaml + libraries: + Movies: + collection_files: + - pmm: oscars + template_variables: + collection_mode: show_items #(1)! + collection_order: alpha #(2)! + radarr_add_missing: true #(3)! + name_format: Emmys <<key_name>> Winners #(4)! + data: + starting: current_year-10 #(5)! + increment: 2 #(6)! + ending: current_year #(7)! + ``` + + 1. Shows the collection and all of its items within the Library tab in Plex + 2. Sorts the collection items alphabetically + 3. Adds items from the source list which are not in Plex to Radarr +4. Change the name of the collections to "Oscars YEAR_HERE Winners" + 5. If today is 2024, then create collections for Oscars 2014 onwards + 6. If starting year is 2014, then create collections for 2014, 2016, 2018, 2020, etc. + 7. If today is 2024, then the final collection is Oscars 2024 diff --git a/docs/defaults/award/other.md b/docs/defaults/award/other.md index db73c74a..6306bb63 100644 --- a/docs/defaults/award/other.md +++ b/docs/defaults/award/other.md @@ -30,46 +30,60 @@ libraries: - pmm: other_award ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -| Variable | Description & Values | -|:---------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. +??? info "Click to expand" -{% - include-markdown "../collection_variables.md" -%} + === "File-Specific Template Variables" -### Example Template Variable Amendments + The below template variables are available specifically for this PMM Defaults file. -The below is an example config.yml extract with some Template Variables added in to change how the file works. + Be sure to also check out the "Shared Template Variables" tab for additional variables. -???+ tip - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. + | Variable | Description & Values | + |:---------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | + | `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -```yaml -libraries: - Movies: - collection_files: - - pmm: other_award - template_variables: - use_berlinale: false #(1)! - collection_order: alpha #(2)! - radarr_add_missing: true #(3)! -``` + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. -1. Do not create the "Berlinale Golden Bears" collection -2. Sorts the collection items alphabetically -3. Adds items from the source list which are not in Plex to Radarr + === "Shared Template Variables" + + {% + include-markdown "../collection_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ???+ tip + + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. + + + ```yaml + libraries: + Movies: + collection_files: + - pmm: other_award + template_variables: + use_berlinale: false #(1)! + collection_order: alpha #(2)! + radarr_add_missing: true #(3)! + ``` + + 1. Do not create the "Berlinale Golden Bears" collection + 2. Sorts the collection items alphabetically + 3. Adds items from the source list which are not in Plex to Radarr \ No newline at end of file diff --git a/docs/defaults/award/spirit.md b/docs/defaults/award/spirit.md index 4dd5c358..7c04abd6 100644 --- a/docs/defaults/award/spirit.md +++ b/docs/defaults/award/spirit.md @@ -27,61 +27,74 @@ libraries: - pmm: spirit ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -| Variable | Description & Values | -|:---------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `use_year_collections` | **Description:** Turn the individual year collections off.<br>**Values:** `false` to turn of the collections | -| `year_collection_section` | **Description:** Change the collection section for year collections only. (Use quotes to not lose leading zeros `"05"`)<br>**Values:** Any number | -| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `data` | **Description:** Replaces the `data` dynamic collection value.<br><table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>starting</code></td><td>Controls the starting year for collections<br><strong>Default:</strong> current_year-5<br><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>ending</code></td><td>Controls the ending year for collections<br><strong>Default:</strong> current_year<br><strong>Values:</strong> Number greater than 1</td></tr><tr><td><code>increment</code></td><td>Controls the increment (i.e. every 5th year)<br><strong>Default:</strong> 1<br><strong>Values:</strong> Number greater than 0</td><td></td></tr></table><ul><li><strong><code>starting</code> and <code>ending</code> can also have the value <code>current_year</code></strong></li><li><strong>You can also use a value relative to the <code>current_year</code> by doing <code>current_year-5</code></strong></li></ul> | -| `exclude` | **Description:** Exclude these Years from creating a Dynamic Collection.<br>**Values:** List of Years | -| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `Independent Spirit Awards <<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | -| `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<key_name>> Independent Spirit Awards.`<br>**Values:** Any string with `<<key_name>>` in it. | +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. +??? info "Click to expand" -{% - include-markdown "../collection_variables.md" -%} + === "File-Specific Template Variables" -### Example Template Variable Amendments + The below template variables are available specifically for this PMM Defaults file. -The below is an example config.yml extract with some Template Variables added in to change how the file works. + Be sure to also check out the "Shared Template Variables" tab for additional variables. -???+ tip - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. + | Variable | Description & Values | + |:---------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `use_year_collections` | **Description:** Turn the individual year collections off.<br>**Values:** `false` to turn of the collections | + | `year_collection_section` | **Description:** Change the collection section for year collections only. (Use quotes to not lose leading zeros `"05"`)<br>**Values:** Any number | + | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | + | `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | + | `data` | **Description:** Replaces the `data` dynamic collection value.<br><table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>starting</code></td><td>Controls the starting year for collections<br><strong>Default:</strong> current_year-5<br><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>ending</code></td><td>Controls the ending year for collections<br><strong>Default:</strong> current_year<br><strong>Values:</strong> Number greater than 1</td></tr><tr><td><code>increment</code></td><td>Controls the increment (i.e. every 5th year)<br><strong>Default:</strong> 1<br><strong>Values:</strong> Number greater than 0</td><td></td></tr></table><ul><li><strong><code>starting</code> and <code>ending</code> can also have the value <code>current_year</code></strong></li><li><strong>You can also use a value relative to the <code>current_year</code> by doing <code>current_year-5</code></strong></li></ul> | + | `exclude` | **Description:** Exclude these Years from creating a Dynamic Collection.<br>**Values:** List of Years | + | `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `Independent Spirit Awards <<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | + | `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<key_name>> Independent Spirit Awards.`<br>**Values:** Any string with `<<key_name>>` in it. | -```yaml -libraries: - Movies: - collection_files: - - pmm: spirit - template_variables: - collection_mode: show_items #(1)! - collection_order: alpha #(2)! - radarr_add_missing: true #(3)! - name_format: Independent Spirit Awards <<key_name>> Winners #(4)! - data: - starting: current_year-10 #(5)! - increment: 2 #(6)! - ending: current_year #(7)! -``` + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. -1. Shows the collection and all of its items within the Library tab in Plex -2. Sorts the collection items alphabetically -3. Adds items from the source list which are not in Plex to Radarr -4. Change the name of the collections to "Independent Spirit Awards yearhere Winners" -5. If today is 2024, then create collections for Independent Spirit Awards 2014 onwards -6. If starting year is 2014, then create collections for 2014, 2016, 2018, 2020, etc. -7. If today is 2024, then the final collection is Independent Spirit Awards 2024 + === "Shared Template Variables" + + {% + include-markdown "../collection_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ???+ tip + + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. + + ```yaml + libraries: + Movies: + collection_files: + - pmm: spirit + template_variables: + collection_mode: show_items #(1)! + collection_order: alpha #(2)! + radarr_add_missing: true #(3)! + name_format: Independent Spirit Awards <<key_name>> Winners #(4)! + data: + starting: current_year-10 #(5)! + increment: 2 #(6)! + ending: current_year #(7)! + ``` + + 1. Shows the collection and all of its items within the Library tab in Plex + 2. Sorts the collection items alphabetically + 3. Adds items from the source list which are not in Plex to Radarr + 4. Change the name of the collections to "Independent Spirit Awards yearhere Winners" + 5. If today is 2024, then create collections for Independent Spirit Awards 2014 onwards + 6. If starting year is 2014, then create collections for 2014, 2016, 2018, 2020, etc. + 7. If today is 2024, then the final collection is Independent Spirit Awards 2024 diff --git a/docs/defaults/award/sundance.md b/docs/defaults/award/sundance.md index 6de8f322..e7548673 100644 --- a/docs/defaults/award/sundance.md +++ b/docs/defaults/award/sundance.md @@ -28,61 +28,74 @@ libraries: - pmm: sundance ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -| Variable | Description & Values | -|:---------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `use_year_collections` | **Description:** Turn the individual year collections off.<br>**Values:** `false` to turn of the collections | -| `year_collection_section` | **Description:** Change the collection section for year collections only. (Use quotes to not lose leading zeros `"05"`)<br>**Values:** Any number | -| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `data` | **Description:** Replaces the `data` dynamic collection value.<br><table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>starting</code></td><td>Controls the starting year for collections<br><strong>Default:</strong> current_year-5<br><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>ending</code></td><td>Controls the ending year for collections<br><strong>Default:</strong> current_year<br><strong>Values:</strong> Number greater than 1</td></tr><tr><td><code>increment</code></td><td>Controls the increment (i.e. every 5th year)<br><strong>Default:</strong> 1<br><strong>Values:</strong> Number greater than 0</td><td></td></tr></table><ul><li><strong><code>starting</code> and <code>ending</code> can also have the value <code>current_year</code></strong></li><li><strong>You can also use a value relative to the <code>current_year</code> by doing <code>current_year-5</code></strong></li></ul> | -| `exclude` | **Description:** Exclude these Years from creating a Dynamic Collection.<br>**Values:** List of Years | -| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `Sundance Film Festival <<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | -| `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `Sundance Film Festival of <<key_name>>.`<br>**Values:** Any string with `<<key_name>>` in it. | +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. +??? info "Click to expand" -{% - include-markdown "../collection_variables.md" -%} + === "File-Specific Template Variables" -### Example Template Variable Amendments + The below template variables are available specifically for this PMM Defaults file. -The below is an example config.yml extract with some Template Variables added in to change how the file works. + Be sure to also check out the "Shared Template Variables" tab for additional variables. -???+ tip + | Variable | Description & Values | + |:---------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `use_year_collections` | **Description:** Turn the individual year collections off.<br>**Values:** `false` to turn of the collections | + | `year_collection_section` | **Description:** Change the collection section for year collections only. (Use quotes to not lose leading zeros `"05"`)<br>**Values:** Any number | + | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | + | `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | + | `data` | **Description:** Replaces the `data` dynamic collection value.<br><table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>starting</code></td><td>Controls the starting year for collections<br><strong>Default:</strong> current_year-5<br><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>ending</code></td><td>Controls the ending year for collections<br><strong>Default:</strong> current_year<br><strong>Values:</strong> Number greater than 1</td></tr><tr><td><code>increment</code></td><td>Controls the increment (i.e. every 5th year)<br><strong>Default:</strong> 1<br><strong>Values:</strong> Number greater than 0</td><td></td></tr></table><ul><li><strong><code>starting</code> and <code>ending</code> can also have the value <code>current_year</code></strong></li><li><strong>You can also use a value relative to the <code>current_year</code> by doing <code>current_year-5</code></strong></li></ul> | + | `exclude` | **Description:** Exclude these Years from creating a Dynamic Collection.<br>**Values:** List of Years | + | `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `Sundance Film Festival <<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | + | `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `Sundance Film Festival of <<key_name>>.`<br>**Values:** Any string with `<<key_name>>` in it. | - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. -```yaml -libraries: - Movies: - collection_files: - - pmm: sundance - template_variables: - collection_mode: show_items #(1)! - collection_order: alpha #(2)! - radarr_add_missing: true #(3)! - name_format: Sundance Film Festival <<key_name>> Winners #(4)! - data: - starting: current_year-10 #(5)! - increment: 2 #(6)! - ending: current_year #(7)! -``` + === "Shared Template Variables" -1. Shows the collection and all of its items within the Library tab in Plex -2. Sorts the collection items alphabetically -3. Adds items from the source list which are not in Plex to Radarr -4. Change the name of the collections to "Sundance Film Festival yearhere Winners" -5. If today is 2024, then create collections for Sundance Film Festival 2014 onwards -6. If starting year is 2014, then create collections for 2014, 2016, 2018, 2020, etc. -7. If today is 2024, then the final collection is Sundance Film Festival 2024 \ No newline at end of file + {% + include-markdown "../collection_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ???+ tip + + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. + + + ```yaml + libraries: + Movies: + collection_files: + - pmm: sundance + template_variables: + collection_mode: show_items #(1)! + collection_order: alpha #(2)! + radarr_add_missing: true #(3)! + name_format: Sundance Film Festival <<key_name>> Winners #(4)! + data: + starting: current_year-10 #(5)! + increment: 2 #(6)! + ending: current_year #(7)! + ``` + + 1. Shows the collection and all of its items within the Library tab in Plex + 2. Sorts the collection items alphabetically + 3. Adds items from the source list which are not in Plex to Radarr + 4. Change the name of the collections to "Sundance Film Festival yearhere Winners" + 5. If today is 2024, then create collections for Sundance Film Festival 2014 onwards + 6. If starting year is 2014, then create collections for 2014, 2016, 2018, 2020, etc. + 7. If today is 2024, then the final collection is Sundance Film Festival 2024 \ No newline at end of file diff --git a/docs/defaults/both/actor.md b/docs/defaults/both/actor.md index 80358819..ee885bb1 100644 --- a/docs/defaults/both/actor.md +++ b/docs/defaults/both/actor.md @@ -31,62 +31,75 @@ libraries: - pmm: actor ``` -## Template Variable Default Values + +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -| Variable | Description & Values | -|:-----------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `style` | **Description:** Controls the visual theme of the collections created.<br>**Default:** `bw`<br>**Values:** `bw`, `rainier`, `signature`, `diiivoy`, or `diiivoycolor` | -| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | -| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `data` | **Description:** Replaces the `data` dynamic collection value.<table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>depth</code></td><td>Controls the depth within the casting credits to search for common actors<br><strong>Default:</strong> 5<br><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>limit</code></td><td>Controls the maximum number of collections to create<br><strong>Default:</strong> 25<br><strong>Values:</strong> Number greater than 0</td></tr></table> | -| `include` | **Description:** Force these Actors to be included to create a Dynamic Collection.<br>**Values:** List of Actor Names | -| `exclude` | **Description:** Exclude these Actors from creating a Dynamic Collection.<br>**Values:** List of Actor Names | -| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `<<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | -| `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s with <<key_name>>.`<br>**Values:** Any string with `<<key_name>>` in it. | -| `tmdb_birthday` | **Description:** Controls if the Definition is run based on `tmdb_person`'s Birthday. Has 3 possible attributes `this_month`, `before` and `after`.<br>**Values:**<table class="clearTable"><tr><td>`this_month`</td><td>Run's if Birthday is in current Month</td><td>`true`/`false`</td></tr><tr><td>`before`</td><td>Run if X Number of Days before the Birthday</td><td>Number 0 or greater</td></tr><tr><td>`after`</td><td>Run if X Number of Days after the Birthday</td><td>Number 0 or greater</td></tr></table> | -| `tmdb_person_offset_<<key>>`<sup>1</sup> | **Description:** Changes the summary tmdb_person_offset for the specific key.<br>**Default:** `0`<br>**Values:** Dictionary of Actor Name as the keys and the tmdb_person_offset as the value. | +??? info "Click to expand" -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. + === "File-Specific Template Variables" -{% - include-markdown "../collection_variables.md" -%} + The below template variables are available specifically for this PMM Defaults file. -### Example Template Variable Amendments + Be sure to also check out the "Shared Template Variables" tab for additional variables. -The below is an example config.yml extract with some Template Variables added in to change how the file works. + This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. -???+ tip + | Variable | Description & Values | + |:-----------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `style` | **Description:** Controls the visual theme of the collections created.<br>**Default:** `bw`<br>**Values:** `bw`, `rainier`, `signature`, `diiivoy`, or `diiivoycolor` | + | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | + | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | + | `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `data` | **Description:** Replaces the `data` dynamic collection value.<table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>depth</code></td><td>Controls the depth within the casting credits to search for common actors<br><strong>Default:</strong> 5<br><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>limit</code></td><td>Controls the maximum number of collections to create<br><strong>Default:</strong> 25<br><strong>Values:</strong> Number greater than 0</td></tr></table> | + | `include` | **Description:** Force these Actors to be included to create a Dynamic Collection.<br>**Values:** List of Actor Names | + | `exclude` | **Description:** Exclude these Actors from creating a Dynamic Collection.<br>**Values:** List of Actor Names | + | `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `<<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | + | `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s with <<key_name>>.`<br>**Values:** Any string with `<<key_name>>` in it. | + | `tmdb_birthday` | **Description:** Controls if the Definition is run based on `tmdb_person`'s Birthday. Has 3 possible attributes `this_month`, `before` and `after`.<br>**Values:**<table class="clearTable"><tr><td>`this_month`</td><td>Run's if Birthday is in current Month</td><td>`true`/`false`</td></tr><tr><td>`before`</td><td>Run if X Number of Days before the Birthday</td><td>Number 0 or greater</td></tr><tr><td>`after`</td><td>Run if X Number of Days after the Birthday</td><td>Number 0 or greater</td></tr></table> | + | `tmdb_person_offset_<<key>>`<sup>1</sup> | **Description:** Changes the summary tmdb_person_offset for the specific key.<br>**Default:** `0`<br>**Values:** Dictionary of Actor Name as the keys and the tmdb_person_offset as the value. | - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. -```yaml -libraries: - Movies: - collection_files: - - pmm: actor - template_variables: - data: - depth: 10 #(1)! - limit: 20 #(2)! - style: diiivoycolor #(3)! - sort_by: title.asc - use_separator: false #(4)! - tmdb_person_offset_Richard Brooks: 1 #(5)! -``` + === "Shared Template Variables" -1. Check the first 10 casting credits in each movie -2. Create 20 collections maximum -3. use the [diiivoy Color Style](#diiivoy-color-style) -4. Do not create an "Actors Collections" separator -5. There are two Richard Brooks, so use the 2nd [Richard Brooks](https://www.themoviedb.org/search?query=Richard%20Brooks) found on TMDb + {% + include-markdown "../collection_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ???+ tip + + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. + + ```yaml + libraries: + Movies: + collection_files: + - pmm: actor + template_variables: + data: + depth: 10 #(1)! + limit: 20 #(2)! + style: diiivoycolor #(3)! + sort_by: title.asc + use_separator: false #(4)! + tmdb_person_offset_Richard Brooks: 1 #(5)! + ``` + + 1. Check the first 10 casting credits in each movie + 2. Create 20 collections maximum + 3. use the [diiivoy Color Style](#diiivoy-color-style) + 4. Do not create an "Actors Collections" separator + 5. There are two Richard Brooks, so use the 2nd [Richard Brooks](https://www.themoviedb.org/search?query=Richard%20Brooks) found on TMDb diff --git a/docs/defaults/both/aspect.md b/docs/defaults/both/aspect.md index 303e56fe..bb547c06 100644 --- a/docs/defaults/both/aspect.md +++ b/docs/defaults/both/aspect.md @@ -36,51 +36,62 @@ libraries: - pmm: aspect ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -| Variable | Description & Values | -|:--------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | -| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `exclude` | **Description:** Exclude these Media Outlets from creating a Dynamic Collection.<br>**Values:** List of Media Outlet Keys | -| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `Based on a <<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | -| `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s based on or inspired by <<translated_key_name>>s.`<br>**Values:** Any string. | +??? info "Click to expand" + + === "File-Specific Template Variables" + + The below template variables are available specifically for this PMM Defaults file. + + Be sure to also check out the "Shared Template Variables" tab for additional variables. + + This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. + + | Variable | Description & Values | + |:--------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | + | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | + | `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `exclude` | **Description:** Exclude these Media Outlets from creating a Dynamic Collection.<br>**Values:** List of Media Outlet Keys | + | `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `Based on a <<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | + | `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s based on or inspired by <<translated_key_name>>s.`<br>**Values:** Any string. | 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. + === "Shared Template Variables" -{% - include-markdown "../collection_variables.md" -%} + {% + include-markdown "../collection_variables.md" + %} -### Example Template Variable Amendments + ### Example Template Variable Amendments -The below is an example config.yml extract with some Template Variables added in to change how the file works. + The below is an example config.yml extract with some Template Variables added in to change how the file works. -???+ tip + ???+ tip - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. -```yaml -libraries: - Movies: - collection_files: - - pmm: aspect - template_variables: - use_1.65: false #(1)! - sep_style: plum #(2)! -``` + ```yaml + libraries: + Movies: + collection_files: + - pmm: aspect + template_variables: + use_1.65: false #(1)! + sep_style: plum #(2)! + ``` -1. Do not create a "1.65 - Early Widescreen" collection -2. Use the plum [Separator Style](../separators.md#separator-styles) \ No newline at end of file + 1. Do not create a "1.65 - Early Widescreen" collection + 2. Use the plum [Separator Style](../separators.md#separator-styles) \ No newline at end of file diff --git a/docs/defaults/both/audio_language.md b/docs/defaults/both/audio_language.md index 9a408b53..1b14a950 100644 --- a/docs/defaults/both/audio_language.md +++ b/docs/defaults/both/audio_language.md @@ -30,253 +30,269 @@ libraries: - pmm: audio_language ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -| Variable | Description & Values | -|:------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | -| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `include` | **Description:** Overrides the [default include list](#default-include)<br>**Values:** List of [ISO 639-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)<br>**Values:** List of [ISO 639-2 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) | -| `exclude` | **Description:** Exclude these Audio Languages from creating a Dynamic Collection.<br>**Values:** List of [ISO 639-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)<br>**Values:** List of [ISO 639-2 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) | -| `append_include` | **Description:** Appends to the [default include list](#default-include)<br>**Values:** List of [ISO 639-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)<br>**Values:** List of [ISO 639-2 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) | -| `remove_include` | **Description:** Removes from the [default include list](#default-include)<br>**Values:** List of [ISO 639-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)<br>**Values:** List of [ISO 639-2 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) | -| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `<<key_name>> Audio`<br>**Values:** Any string with `<<key_name>>` in it. | -| `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s filmed in the <<key_name>> Language.`<br>**Values:** Any string. | +??? info "Click to expand" -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. + === "File-Specific Template Variables" -{% - include-markdown "../collection_variables.md" -%} + The below template variables are available specifically for this PMM Defaults file. -### Example Template Variable Amendments + Be sure to also check out the "Shared Template Variables" tab for additional variables. -The below is an example config.yml extract with some Template Variables added in to change how the file works. + This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. -???+ tip + | Variable | Description & Values | + |:------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | + | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | + | `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `include` | **Description:** Overrides the [default include list](#default-include)<br>**Values:** List of [ISO 639-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)<br>**Values:** List of [ISO 639-2 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) | + | `exclude` | **Description:** Exclude these Audio Languages from creating a Dynamic Collection.<br>**Values:** List of [ISO 639-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)<br>**Values:** List of [ISO 639-2 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) | + | `append_include` | **Description:** Appends to the [default include list](#default-include)<br>**Values:** List of [ISO 639-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)<br>**Values:** List of [ISO 639-2 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) | + | `remove_include` | **Description:** Removes from the [default include list](#default-include)<br>**Values:** List of [ISO 639-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)<br>**Values:** List of [ISO 639-2 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) | + | `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `<<key_name>> Audio`<br>**Values:** Any string with `<<key_name>>` in it. | + | `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s filmed in the <<key_name>> Language.`<br>**Values:** Any string. | - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. -```yaml -libraries: - Movies: - collection_files: - - pmm: audio_language - template_variables: - use_other: false #(1)! - use_separator: false #(2)! - exclude: - - fr #(3)! - sort_by: title.asc -``` + === "Shared Template Variables" -1. Do not create an "Other Audio" collection -2. Do not create an "Audio Language Collections" separator -3. Exclude "French" from having an Audio Collection + {% + include-markdown "../collection_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ???+ tip + + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. + + ```yaml + libraries: + Movies: + collection_files: + - pmm: audio_language + template_variables: + use_other: false #(1)! + use_separator: false #(2)! + exclude: + - fr #(3)! + sort_by: title.asc + ``` + + 1. Do not create an "Other Audio" collection + 2. Do not create an "Audio Language Collections" separator + 3. Exclude "French" from having an Audio Collection ## Default values -These are lists provided for reference to show what values will be in use if you do no customization. If you want to customize these values, use the methods described above. These do not show how to change a name or a list. +??? warning -### Default `include` + These are lists provided for reference to show what values will be in use if you do no customization. **These do not show how to change a name or a list.** -```yaml -include: - - ab # Abkhazian - - aa # Afar - - af # Afrikaans - - ak # Akan - - sq # Albanian - - am # Amharic - - ar # Arabic - - an # Aragonese - - hy # Armenian - - as # Assamese - - av # Avaric - - ae # Avestan - - ay # Aymara - - az # Azerbaijani - - bm # Bambara - - ba # Bashkir - - eu # Basque - - be # Belarusian - - bn # Bengali - - bi # Bislama - - bs # Bosnian - - br # Breton - - bg # Bulgarian - - my # Burmese - - ca # Catalan, Valencian - - km # Central Khmer - - ch # Chamorro - - ce # Chechen - - ny # Chichewa, Chewa, Nyanja - - zh # Chinese - - cu # Church Slavic, Old Slavonic, Church Slavonic, Old Bulgarian, Old Church Slavonic - - cv # Chuvash - - kw # Cornish - - co # Corsican - - cr # Cree - - hr # Croatian - - cs # Czech - - da # Danish - - dv # Divehi, Dhivehi, Maldivian - - nl # Dutch, Flemish - - dz # Dzongkha - - en # English - - eo # Esperanto - - et # Estonian - - ee # Ewe - - fo # Faroese - - fj # Fijian - - fil # Filipino - - fi # Finnish - - fr # French - - ff # Fulah - - gd # Gaelic, Scottish Gaelic - - gl # Galician - - lg # Ganda - - ka # Georgian - - de # German - - el # Greek, Modern (1453–) - - gn # Guarani - - gu # Gujarati - - ht # Haitian, Haitian Creole - - ha # Hausa - - he # Hebrew - - hz # Herero - - hi # Hindi - - ho # Hiri Motu - - hu # Hungarian - - is # Icelandic - - io # Ido - - ig # Igbo - - id # Indonesian - - ia # Interlingua (International Auxiliary Language Association) - - ie # Interlingue, Occidental - - iu # Inuktitut - - ik # Inupiaq - - ga # Irish - - it # Italian - - ja # Japanese - - jv # Javanese - - kl # Kalaallisut, Greenlandic - - kn # Kannada - - kr # Kanuri - - ks # Kashmiri - - kk # Kazakh - - ki # Kikuyu, Gikuyu - - rw # Kinyarwanda - - ky # Kirghiz, Kyrgyz - - kv # Komi - - kg # Kongo - - ko # Korean - - kj # Kuanyama, Kwanyama - - ku # Kurdish - - lo # Lao - - la # Latin - - lv # Latvian - - li # Limburgan, Limburger, Limburgish - - ln # Lingala - - lt # Lithuanian - - lu # Luba-Katanga - - lb # Luxembourgish, Letzeburgesch - - mk # Macedonian - - mg # Malagasy - - ms # Malay - - ml # Malayalam - - mt # Maltese - - gv # Manx - - mi # Maori - - mr # Marathi - - mh # Marshallese - - myn # Mayan - - mn # Mongolian - - na # Nauru - - nv # Navajo, Navaho - - ng # Ndonga - - ne # Nepali - - nd # North Ndebele - - se # Northern Sami - - no # Norwegian - - nb # Norwegian Bokmål - - nn # Norwegian Nynorsk - - oc # Occitan - - oj # Ojibwa - - or # Oriya - - om # Oromo - - os # Ossetian, Ossetic - - pi # Pali - - ps # Pashto, Pushto - - fa # Persian - - pl # Polish - - pt # Portuguese - - pa # Punjabi, Panjabi - - qu # Quechua - - ro # Romanian, Moldavian, Moldovan - - rm # Romansh - - rom # Romany - - rn # Rundi - - ru # Russian - - sm # Samoan - - sg # Sango - - sa # Sanskrit - - sc # Sardinian - - sr # Serbian - - sn # Shona - - ii # Sichuan Yi, Nuosu - - sd # Sindhi - - si # Sinhala, Sinhalese - - sk # Slovak - - sl # Slovenian - - so # Somali - - nr # South Ndebele - - st # Southern Sotho - - es # Spanish, Castilian - - su # Sundanese - - sw # Swahili - - ss # Swati - - sv # Swedish - - tl # Tagalog - - ty # Tahitian - - tai # Tai - - tg # Tajik - - ta # Tamil - - tt # Tatar - - te # Telugu - - th # Thai - - bo # Tibetan - - ti # Tigrinya - - to # Tonga (Tonga Islands) - - ts # Tsonga - - tn # Tswana - - tr # Turkish - - tk # Turkmen - - tw # Twi - - ug # Uighur, Uyghur - - uk # Ukrainian - - ur # Urdu - - uz # Uzbek - - ve # Venda - - vi # Vietnamese - - vo # Volapük - - wa # Walloon - - cy # Welsh - - fy # Western Frisian - - wo # Wolof - - xh # Xhosa - - yi # Yiddish - - yo # Yoruba - - za # Zhuang, Chuang - - zu # Zulu -``` + If you want to customize these values, use the methods described above. + + **Default `include`: + + ```yaml + include: + - ab # Abkhazian + - aa # Afar + - af # Afrikaans + - ak # Akan + - sq # Albanian + - am # Amharic + - ar # Arabic + - an # Aragonese + - hy # Armenian + - as # Assamese + - av # Avaric + - ae # Avestan + - ay # Aymara + - az # Azerbaijani + - bm # Bambara + - ba # Bashkir + - eu # Basque + - be # Belarusian + - bn # Bengali + - bi # Bislama + - bs # Bosnian + - br # Breton + - bg # Bulgarian + - my # Burmese + - ca # Catalan, Valencian + - km # Central Khmer + - ch # Chamorro + - ce # Chechen + - ny # Chichewa, Chewa, Nyanja + - zh # Chinese + - cu # Church Slavic, Old Slavonic, Church Slavonic, Old Bulgarian, Old Church Slavonic + - cv # Chuvash + - kw # Cornish + - co # Corsican + - cr # Cree + - hr # Croatian + - cs # Czech + - da # Danish + - dv # Divehi, Dhivehi, Maldivian + - nl # Dutch, Flemish + - dz # Dzongkha + - en # English + - eo # Esperanto + - et # Estonian + - ee # Ewe + - fo # Faroese + - fj # Fijian + - fil # Filipino + - fi # Finnish + - fr # French + - ff # Fulah + - gd # Gaelic, Scottish Gaelic + - gl # Galician + - lg # Ganda + - ka # Georgian + - de # German + - el # Greek, Modern (1453–) + - gn # Guarani + - gu # Gujarati + - ht # Haitian, Haitian Creole + - ha # Hausa + - he # Hebrew + - hz # Herero + - hi # Hindi + - ho # Hiri Motu + - hu # Hungarian + - is # Icelandic + - io # Ido + - ig # Igbo + - id # Indonesian + - ia # Interlingua (International Auxiliary Language Association) + - ie # Interlingue, Occidental + - iu # Inuktitut + - ik # Inupiaq + - ga # Irish + - it # Italian + - ja # Japanese + - jv # Javanese + - kl # Kalaallisut, Greenlandic + - kn # Kannada + - kr # Kanuri + - ks # Kashmiri + - kk # Kazakh + - ki # Kikuyu, Gikuyu + - rw # Kinyarwanda + - ky # Kirghiz, Kyrgyz + - kv # Komi + - kg # Kongo + - ko # Korean + - kj # Kuanyama, Kwanyama + - ku # Kurdish + - lo # Lao + - la # Latin + - lv # Latvian + - li # Limburgan, Limburger, Limburgish + - ln # Lingala + - lt # Lithuanian + - lu # Luba-Katanga + - lb # Luxembourgish, Letzeburgesch + - mk # Macedonian + - mg # Malagasy + - ms # Malay + - ml # Malayalam + - mt # Maltese + - gv # Manx + - mi # Maori + - mr # Marathi + - mh # Marshallese + - myn # Mayan + - mn # Mongolian + - na # Nauru + - nv # Navajo, Navaho + - ng # Ndonga + - ne # Nepali + - nd # North Ndebele + - se # Northern Sami + - no # Norwegian + - nb # Norwegian Bokmål + - nn # Norwegian Nynorsk + - oc # Occitan + - oj # Ojibwa + - or # Oriya + - om # Oromo + - os # Ossetian, Ossetic + - pi # Pali + - ps # Pashto, Pushto + - fa # Persian + - pl # Polish + - pt # Portuguese + - pa # Punjabi, Panjabi + - qu # Quechua + - ro # Romanian, Moldavian, Moldovan + - rm # Romansh + - rom # Romany + - rn # Rundi + - ru # Russian + - sm # Samoan + - sg # Sango + - sa # Sanskrit + - sc # Sardinian + - sr # Serbian + - sn # Shona + - ii # Sichuan Yi, Nuosu + - sd # Sindhi + - si # Sinhala, Sinhalese + - sk # Slovak + - sl # Slovenian + - so # Somali + - nr # South Ndebele + - st # Southern Sotho + - es # Spanish, Castilian + - su # Sundanese + - sw # Swahili + - ss # Swati + - sv # Swedish + - tl # Tagalog + - ty # Tahitian + - tai # Tai + - tg # Tajik + - ta # Tamil + - tt # Tatar + - te # Telugu + - th # Thai + - bo # Tibetan + - ti # Tigrinya + - to # Tonga (Tonga Islands) + - ts # Tsonga + - tn # Tswana + - tr # Turkish + - tk # Turkmen + - tw # Twi + - ug # Uighur, Uyghur + - uk # Ukrainian + - ur # Urdu + - uz # Uzbek + - ve # Venda + - vi # Vietnamese + - vo # Volapük + - wa # Walloon + - cy # Welsh + - fy # Western Frisian + - wo # Wolof + - xh # Xhosa + - yi # Yiddish + - yo # Yoruba + - za # Zhuang, Chuang + - zu # Zulu + ``` diff --git a/docs/defaults/both/based.md b/docs/defaults/both/based.md index 109918fa..e1d5d2dd 100644 --- a/docs/defaults/both/based.md +++ b/docs/defaults/both/based.md @@ -32,25 +32,35 @@ libraries: - pmm: based ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -| Variable | Description & Values | -|:--------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | -| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `exclude` | **Description:** Exclude these Media Outlets from creating a Dynamic Collection.<br>**Values:** List of Media Outlet Keys | -| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `Based on a <<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | -| `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s based on or inspired by <<translated_key_name>>s.`<br>**Values:** Any string. | +??? info "Click to expand" -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. + === "File-Specific Template Variables" + + The below template variables are available specifically for this PMM Defaults file. + + Be sure to also check out the "Shared Template Variables" tab for additional variables. + + This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. + + | Variable | Description & Values | + |:--------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | + | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | + | `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `exclude` | **Description:** Exclude these Media Outlets from creating a Dynamic Collection.<br>**Values:** List of Media Outlet Keys | + | `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `Based on a <<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | + | `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s based on or inspired by <<translated_key_name>>s.`<br>**Values:** Any string. | + + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. ### Example Template Variable Amendments @@ -64,23 +74,23 @@ The below is an example config.yml extract with some Template Variables added in That's a tooltip, you can press them to get more information. -```yaml -libraries: - Movies: - collection_files: - - pmm: based - template_variables: - sep_style: navy #(1)! - use_comics: false #(2)! - order_true_story: 01 #(3)! - visible_library_video_games: true #(4)! - visible_home_video_games: true #(5)! - visible_shared_video_games: true #(6)! -``` + ```yaml + libraries: + Movies: + collection_files: + - pmm: based + template_variables: + sep_style: navy #(1)! + use_comics: false #(2)! + order_true_story: 01 #(3)! + visible_library_video_games: true #(4)! + visible_home_video_games: true #(5)! + visible_shared_video_games: true #(6)! + ``` -1. Use the navy [Separator Style](../separators.md#separator-styles) -2. Do not create a "Based on a Comic" collection -3. Make the "Based on a True Story" collection appear in the collection list before the other collections in this file -4. Pin the "Based on a Video Game" collection to the Recommended tab of the library -5. Pin the "Based on a Video Game" collection to the home screen of the server owner -6. Pin the "Based on a Video Game" collection to the home screen of other users of the server + 1. Use the navy [Separator Style](../separators.md#separator-styles) + 2. Do not create a "Based on a Comic" collection + 3. Make the "Based on a True Story" collection appear in the collection list before the other collections in this file + 4. Pin the "Based on a Video Game" collection to the Recommended tab of the library + 5. Pin the "Based on a Video Game" collection to the home screen of the server owner + 6. Pin the "Based on a Video Game" collection to the home screen of other users of the server diff --git a/docs/defaults/both/collectionless.md b/docs/defaults/both/collectionless.md index f5d4c3e6..31cbfbc3 100644 --- a/docs/defaults/both/collectionless.md +++ b/docs/defaults/both/collectionless.md @@ -1,6 +1,6 @@ # Collectionless Collection -The `collectionless` Default Collection File is used to create a [Collectionless collection](../../builders/plex.md#plex-collectionless) to help Show/Hide Movies/Shows properly in your library. +The `collectionless` Default Collection File is used to create a [Collectionless collection](../../files/builders/plex.md#plex-collectionless) to help Show/Hide Movies/Shows properly in your library. ![](../images/collectionless.png) @@ -14,7 +14,7 @@ Requirements: For this file to work it needs to run last under `collection_files | Collection | Description | |:-----------------|:------------------------------------------------------------------------------------------------------------------------------------------| -| `Collectionless` | [Collectionless collection](../../builders/plex.md#plex-collectionless) to help Show/Hide Movies/Shows properly in your library.. | +| `Collectionless` | [Collectionless collection](../../files/builders/plex.md#plex-collectionless) to help Show/Hide Movies/Shows properly in your library.. | ## Config @@ -47,7 +47,7 @@ Note that the `template_variables:` section only needs to be used if you do want | `name_collectionless` | **Description:** Changes the name of the collection.<br>**Values:** New Collection Name | | `summary_collectionless` | **Description:** Changes the summary of the collection.<br>**Values:** New Collection Summary | | `sort_title` | **Description:** Sets the sort title for the collection.<br>**Default:** `~_Collectionless`<br>**Values:** Any String | -| `collection_order` | **Description:** Changes the Collection Order for all collections in this file.<br>**Default:** `alpha`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `collection_order` | **Description:** Changes the Collection Order for all collections in this file.<br>**Default:** `alpha`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | | `url_poster` | **Description:** Changes the poster url of thecollection.<br>**Values:** URL directly to the Image | | `exclude` | **Description:** Exclude these Collections from being considered for collectionless.<br>**Values:** List of Collections | | `exclude_prefix` | **Description:** Overrides the [default exclude_prefix list](#default-exclude_prefix). Exclude Collections with one of these prefixes from being considered for collectionless.<br>**Default:** [default exclude_prefix list](#default-exclude_prefix)<br>**Values:** List of Prefixes | | @@ -71,7 +71,11 @@ libraries: ## Default values -These are lists provided for reference to show what values will be in use if you do no customization. If you want to customize these values, use the methods described above. These do not show how to change a name or a list. +???+ tip + + These are lists provided for reference to show what values will be in use if you do no customization. **These do not show how to change a name or a list.** + + If you want to customize these values, use the methods described above. ### Default `exclude_prefix` diff --git a/docs/defaults/both/content_rating_cs.md b/docs/defaults/both/content_rating_cs.md index efafba35..79b3dcae 100644 --- a/docs/defaults/both/content_rating_cs.md +++ b/docs/defaults/both/content_rating_cs.md @@ -34,251 +34,267 @@ libraries: - pmm: content_rating_cs ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -| Variable | Description & Values | -|:------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | -| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** List of Content Ratings found in your library | -| `exclude` | **Description:** Exclude these Content Ratings from creating a Dynamic Collection.<br>**Values:** List of Content Ratings found in your library | -| `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of Content Ratings found in your library | -| `append_include` | **Description:** Appends to the [default include list](#default-include).<br>**Values:** List of Content Ratings found in your library | -| `remove_include` | **Description:** Removes from the [default include list](#default-include).<br>**Values:** List of Content Ratings found in your library | -| `append_addons` | **Description:** Appends to the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Content Ratings found in your library | -| `remove_addons` | **Description:** Removes from the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Content Ratings found in your library | -| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `Age <<key_name>>+ <<library_translationU>>s`<br>**Values:** Any string with `<<key_name>>` in it. | -| `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s that are rated <<key_name>> accorfing to the Common Sense Rating System.`<br>**Values:** Any string. | +??? info "Click to expand" -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. + === "File-Specific Template Variables" -{% - include-markdown "../collection_variables.md" -%} + The below template variables are available specifically for this PMM Defaults file. -### Example Template Variable Amendments + Be sure to also check out the "Shared Template Variables" tab for additional variables. -The below is an example config.yml extract with some Template Variables added in to change how the file works. + This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. -???+ tip + | Variable | Description & Values | + |:------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | + | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | + | `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** List of Content Ratings found in your library | + | `exclude` | **Description:** Exclude these Content Ratings from creating a Dynamic Collection.<br>**Values:** List of Content Ratings found in your library | + | `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of Content Ratings found in your library | + | `append_include` | **Description:** Appends to the [default include list](#default-include).<br>**Values:** List of Content Ratings found in your library | + | `remove_include` | **Description:** Removes from the [default include list](#default-include).<br>**Values:** List of Content Ratings found in your library | + | `append_addons` | **Description:** Appends to the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Content Ratings found in your library | + | `remove_addons` | **Description:** Removes from the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Content Ratings found in your library | + | `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `Age <<key_name>>+ <<library_translationU>>s`<br>**Values:** Any string with `<<key_name>>` in it. | + | `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s that are rated <<key_name>> accorfing to the Common Sense Rating System.`<br>**Values:** Any string. | - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. -```yaml -libraries: - Movies: - collection_files: - - pmm: content_rating_cs - template_variables: - sep_style: blue #(1)! - use_other: false #(2)! - append_addons: - German 18: #(3)! - - "de/18" #(4)! - sort_by: title.asc -``` + === "Shared Template Variables" + + {% + include-markdown "../collection_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ???+ tip + + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. + + ```yaml + libraries: + Movies: + collection_files: + - pmm: content_rating_cs + template_variables: + sep_style: blue #(1)! + use_other: false #(2)! + append_addons: + German 18: #(3)! + - "de/18" #(4)! + sort_by: title.asc + ``` -1. Use the blue [Separator Style](../separators.md#separator-styles) -2. Do not create a "Not Rated Movies/Shows" collection -3. Defines a collection which will be called "German 18", this does not need to already exist in your library -4. Adds the "de/18" content rating to the "German 18" addon list, "de/18" must exist in your library if the "German 18" content rating does not + 1. Use the blue [Separator Style](../separators.md#separator-styles) + 2. Do not create a "Not Rated Movies/Shows" collection + 3. Defines a collection which will be called "German 18", this does not need to already exist in your library + 4. Adds the "de/18" content rating to the "German 18" addon list, "de/18" must exist in your library if the "German 18" content rating does not ## Default values -These are lists provided for reference to show what values will be in use if you do no customization. If you want to customize these values, use the methods described above. These do not show how to change a name or a list. +??? warning -### Default `include` + These are lists provided for reference to show what values will be in use if you do no customization. **These do not show how to change a name or a list.** -```yaml -include: - - 1 - - 2 - - 3 - - 4 - - 5 - - 6 - - 7 - - 8 - - 9 - - 10 - - 11 - - 12 - - 13 - - 14 - - 15 - - 16 - - 17 - - 18 -``` + If you want to customize these values, use the methods described above. -### Default `addons` + **Default `include`**: -```yaml -addons: - 1: - - gb/U - - gb/0+ - - G - - TV-Y - - E - - gb/E - - G - All Ages - - "01" - 2: - - gb/U - - gb/0+ - - G - - TV-Y - - E - - gb/E - - G - All Ages - - "02" - 3: - - gb/U - - gb/0+ - - G - - TV-Y - - E - - gb/E - - G - All Ages - - "03" - 4: - - gb/U - - gb/0+ - - G - - TV-Y - - E - - gb/E - - G - All Ages - - "04" - 5: - - gb/U - - gb/0+ - - G - - TV-Y - - E - - gb/E - - G - All Ages - - "05" - 6: - - gb/U - - gb/0+ - - G - - TV-Y - - E - - gb/E - - G - All Ages - - "06" - 7: - - gb/PG - - TV-PG - - TV-Y7 - - TV-Y7-FV - - PG - - PG - Children - - "07" - 8: - - gb/PG - - TV-PG - - TV-Y7 - - TV-Y7-FV - - PG - - PG - Children - - "08" - 9: - - gb/PG - - TV-PG - - TV-Y7 - - TV-Y7-FV - - PG - - PG - Children - - gb/9+ - - "09" - 10: - - gb/PG - - TV-PG - - TV-Y7 - - TV-Y7-FV - - PG - - PG - Children - - gb/9+ - 11: - - gb/PG - - TV-PG - - TV-Y7 - - TV-Y7-FV - - PG - - PG - Children - - gb/9+ - 12: - - gb/12 - - gb/12A - - 12+ - - PG - - PG - Children - 13: - - gb/12 - - gb/12A - - 12+ - - PG-13 - - PG-13 - Teens 13 or older - 14: - - gb/12 - - 12 - - gb/12A - - 12+ - - PG-13 - - TV-14 - - 13 - - PG-13 - Teens 13 or older - 15: - - gb/15 - - gb/14+ - - TV-14 - - 13 - - 14 - - PG-13 - Teens 13 or older - 16: - - gb/15 - - gb/14+ - - TV-14 - - 13 - - 14 - - 15 - - PG-13 - Teens 13 or older - 17: - - gb/15 - - gb/14+ - - TV-14 - - 13 - - 14 - - 15 - - 16 - - R - 17+ (violence & profanity) - 18: - - gb/18 - - MA-17 - - TVMA - - TV-MA - - R - - 16 - - 17 - - gb/R18 - - gb/X - - X - - NC-17 - - R - 17+ (violence & profanity) - - R+ - Mild Nudity - - Rx - Hentai -``` \ No newline at end of file + ```yaml + include: + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + - 8 + - 9 + - 10 + - 11 + - 12 + - 13 + - 14 + - 15 + - 16 + - 17 + - 18 + ``` + + **Default `addons`**: + + ```yaml + addons: + 1: + - gb/U + - gb/0+ + - G + - TV-Y + - E + - gb/E + - G - All Ages + - "01" + 2: + - gb/U + - gb/0+ + - G + - TV-Y + - E + - gb/E + - G - All Ages + - "02" + 3: + - gb/U + - gb/0+ + - G + - TV-Y + - E + - gb/E + - G - All Ages + - "03" + 4: + - gb/U + - gb/0+ + - G + - TV-Y + - E + - gb/E + - G - All Ages + - "04" + 5: + - gb/U + - gb/0+ + - G + - TV-Y + - E + - gb/E + - G - All Ages + - "05" + 6: + - gb/U + - gb/0+ + - G + - TV-Y + - E + - gb/E + - G - All Ages + - "06" + 7: + - gb/PG + - TV-PG + - TV-Y7 + - TV-Y7-FV + - PG + - PG - Children + - "07" + 8: + - gb/PG + - TV-PG + - TV-Y7 + - TV-Y7-FV + - PG + - PG - Children + - "08" + 9: + - gb/PG + - TV-PG + - TV-Y7 + - TV-Y7-FV + - PG + - PG - Children + - gb/9+ + - "09" + 10: + - gb/PG + - TV-PG + - TV-Y7 + - TV-Y7-FV + - PG + - PG - Children + - gb/9+ + 11: + - gb/PG + - TV-PG + - TV-Y7 + - TV-Y7-FV + - PG + - PG - Children + - gb/9+ + 12: + - gb/12 + - gb/12A + - 12+ + - PG + - PG - Children + 13: + - gb/12 + - gb/12A + - 12+ + - PG-13 + - PG-13 - Teens 13 or older + 14: + - gb/12 + - 12 + - gb/12A + - 12+ + - PG-13 + - TV-14 + - 13 + - PG-13 - Teens 13 or older + 15: + - gb/15 + - gb/14+ + - TV-14 + - 13 + - 14 + - PG-13 - Teens 13 or older + 16: + - gb/15 + - gb/14+ + - TV-14 + - 13 + - 14 + - 15 + - PG-13 - Teens 13 or older + 17: + - gb/15 + - gb/14+ + - TV-14 + - 13 + - 14 + - 15 + - 16 + - R - 17+ (violence & profanity) + 18: + - gb/18 + - MA-17 + - TVMA + - TV-MA + - R + - 16 + - 17 + - gb/R18 + - gb/X + - X + - NC-17 + - R - 17+ (violence & profanity) + - R+ - Mild Nudity + - Rx - Hentai + ``` \ No newline at end of file diff --git a/docs/defaults/both/content_rating_de.md b/docs/defaults/both/content_rating_de.md index d6a7d50e..06bff72a 100644 --- a/docs/defaults/both/content_rating_de.md +++ b/docs/defaults/both/content_rating_de.md @@ -10,14 +10,14 @@ If you do not use the German-based rating system within Plex, this file will att Supported Library Types: Movie, Show -Recommendation: Set the Certification Country within your library's advanced settings to "United Kingdom" +Recommendation: Set the Certification Country within your library's advanced settings to "Germany" ## Collections Section 110 | Collection | Key | Description | |:------------------------------------------------------------------|:--------------------------------------------|:----------------------------------------------------------------------------------------| | `Ratings Collections` | `separator` | [Separator Collection](../separators.md) to denote the Section of Collections. | -| `<<Content Rating>> Movies/Shows`<br>**Example:** `BJPM Movies` | `<<Content Rating>>`<br>**Example:** `BJPM` | Collection of Movies/Shows that have this Content Rating. | +| `<<Content Rating>> Movies/Shows`<br>**Example:** `BPjM Movies` | `<<Content Rating>>`<br>**Example:** `BPjM` | Collection of Movies/Shows that have this Content Rating. | | `Not Rated Movies/Shows` | `other` | Collection of Movies/Shows that are Unrated, Not Rated or any other uncommon Ratings. | ## Config @@ -83,15 +83,15 @@ libraries: sep_style: stb #(1)! use_other: false #(2)! append_addons: - BJPM: #(3)! + BPjM: #(3)! - X #(4)! sort_by: title.asc ``` 1. Use the stb [Separator Style](../separators.md#separator-styles) 2. Do not create a "Not Rated Movies/Shows" collection -3. Defines a collection which will be called "BJPM", this does not need to already exist in your library -4. Adds the "X" content rating to the "BJPM" addon list, "X" must exist in your library if the "BJPM" content rating does not +3. Defines a collection which will be called "BPjM", this does not need to already exist in your library +4. Adds the "X" content rating to the "BPjM" addon list, "X" must exist in your library if the "BPjM" content rating does not ## Default values @@ -110,7 +110,7 @@ include: - 12 - 16 - 18 - - BJPM + - BPjM ``` ### Default `addons` @@ -200,7 +200,7 @@ include: - NC-17 - R+ - Mild Nudity - Rx - Hentai - BJPM: + BPjM: - de/BPjM Restricted - BPjM Restricted ``` \ No newline at end of file diff --git a/docs/defaults/both/content_rating_mal.md b/docs/defaults/both/content_rating_mal.md index caa26557..af7fa25e 100644 --- a/docs/defaults/both/content_rating_mal.md +++ b/docs/defaults/both/content_rating_mal.md @@ -34,29 +34,45 @@ libraries: - pmm: content_rating_mal ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -| Variable | Description & Values | -|:------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | -| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** List of Content Ratings found in your library | -| `exclude` | **Description:** Exclude these Content Ratings from creating a Dynamic Collection.<br>**Values:** List of Content Ratings found in your library | -| `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of Content Ratings found in your library | -| `append_include` | **Description:** Appends to the [default include list](#default-include).<br>**Values:** List of Content Ratings found in your library | -| `remove_include` | **Description:** Removes from the [default include list](#default-include).<br>**Values:** List of Content Ratings found in your library | -| `append_addons` | **Description:** Appends to the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Content Ratings found in your library | -| `remove_addons` | **Description:** Removes from the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Content Ratings found in your library | -| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `<<key_name>> <<library_translationU>>s`<br>**Values:** Any string with `<<key_name>>` in it. | -| `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s that are rated <<key_name>>.`<br>**Values:** Any string. | +??? info "Click to expand" -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. + === "File-Specific Template Variables" + + The below template variables are available specifically for this PMM Defaults file. + + Be sure to also check out the "Shared Template Variables" tab for additional variables. + + This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. + + | Variable | Description & Values | + |:------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | + | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | + | `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** List of Content Ratings found in your library | + | `exclude` | **Description:** Exclude these Content Ratings from creating a Dynamic Collection.<br>**Values:** List of Content Ratings found in your library | + | `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of Content Ratings found in your library | + | `append_include` | **Description:** Appends to the [default include list](#default-include).<br>**Values:** List of Content Ratings found in your library | + | `remove_include` | **Description:** Removes from the [default include list](#default-include).<br>**Values:** List of Content Ratings found in your library | + | `append_addons` | **Description:** Appends to the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Content Ratings found in your library | + | `remove_addons` | **Description:** Removes from the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Content Ratings found in your library | + | `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `<<key_name>> <<library_translationU>>s`<br>**Values:** Any string with `<<key_name>>` in it. | + | `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s that are rated <<key_name>>.`<br>**Values:** Any string. | + + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. + + === "Shared Template Variables" + + {% + include-markdown "../collection_variables.md" + %} ### Example Template Variable Amendments @@ -70,101 +86,105 @@ The below is an example config.yml extract with some Template Variables added in That's a tooltip, you can press them to get more information. -```yaml -libraries: - Movies: - collection_files: - - pmm: content_rating_mal - template_variables: - sep_style: tan #(1)! - use_other: false #(2)! - append_addons: - "R+ - Mild Nudity": #(3)! - - "de/18" #(4)! - sort_by: title.asc -``` + ```yaml + libraries: + Movies: + collection_files: + - pmm: content_rating_mal + template_variables: + sep_style: tan #(1)! + use_other: false #(2)! + append_addons: + "R+ - Mild Nudity": #(3)! + - "de/18" #(4)! + sort_by: title.asc + ``` -1. Use the tan [Separator Style](../separators.md#separator-styles) -2. Do not create a "Not Rated Movies/Shows" collection -3. Defines a collection which will be called "R+ - Mild Nudity", this does not need to already exist in your library -4. Adds the "de/18" content rating to the "R+ - Mild Nudity" addon list, "de/18" must exist in your library if the "R+ - Mild Nudity" content rating does not + 1. Use the tan [Separator Style](../separators.md#separator-styles) + 2. Do not create a "Not Rated Movies/Shows" collection + 3. Defines a collection which will be called "R+ - Mild Nudity", this does not need to already exist in your library + 4. Adds the "de/18" content rating to the "R+ - Mild Nudity" addon list, "de/18" must exist in your library if the "R+ - Mild Nudity" content rating does not ## Default values -These are lists provided for reference to show what values will be in use if you do no customization. If you want to customize these values, use the methods described above. These do not show how to change a name or a list. +??? tip -### Default `include` + These are lists provided for reference to show what values will be in use if you do no customization. **These do not show how to change a name or a list.** -```yaml -include: - - "G" - - "PG" - - "PG-13" - - "R" - - "R+" - - "Rx" -``` + If you want to customize these values, use the methods described above. -### Default `addons` + **Default `include`**: -```yaml - addons: - G: - - gb/U - - gb/0+ - - U - - G - - 1 - - 2 - - 3 - - 4 - - 5 - - 6 - - "01" - - "02" - - "03" - - "04" - - "05" - - "06" - - G - All Ages - PG: - - TV-Y7 - - TV-Y7-FV - - 7 - - 8 - - 9 - - "07" - - "08" - - "09" - - gb/PG - - gb/9+ - - 10 - - 11 - - 12 - - PG - Children - PG-13: - - 13 - - gb/12A - - 12+ - - PG-13 - - TV-13 - - gb/14+ - - gb/15 - - 14 - - 15 - - 16 - - PG-13 - Teens 13 or older - R: - - 17 - - 18 - - gb/18 - - MA-17 - - NC-17 - - R - - TVMA - - R - 17+ (violence & profanity) - R+: - - R+ - Mild Nudity - Rx: - - Rx - Hentai -``` + ```yaml + include: + - "G" + - "PG" + - "PG-13" + - "R" + - "R+" + - "Rx" + ``` + + **Default `addons`**: + + ```yaml + addons: + G: + - gb/U + - gb/0+ + - U + - G + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - "01" + - "02" + - "03" + - "04" + - "05" + - "06" + - G - All Ages + PG: + - TV-Y7 + - TV-Y7-FV + - 7 + - 8 + - 9 + - "07" + - "08" + - "09" + - gb/PG + - gb/9+ + - 10 + - 11 + - 12 + - PG - Children + PG-13: + - 13 + - gb/12A + - 12+ + - PG-13 + - TV-13 + - gb/14+ + - gb/15 + - 14 + - 15 + - 16 + - PG-13 - Teens 13 or older + R: + - 17 + - 18 + - gb/18 + - MA-17 + - NC-17 + - R + - TVMA + - R - 17+ (violence & profanity) + R+: + - R+ - Mild Nudity + Rx: + - Rx - Hentai + ``` diff --git a/docs/defaults/both/content_rating_uk.md b/docs/defaults/both/content_rating_uk.md index 883ab160..9df3d191 100644 --- a/docs/defaults/both/content_rating_uk.md +++ b/docs/defaults/both/content_rating_uk.md @@ -34,157 +34,173 @@ libraries: - pmm: content_rating_uk ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -| Variable | Description & Values | -|:------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | -| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** List of Content Ratings found in your library | -| `exclude` | **Description:** Exclude these Content Ratings from creating a Dynamic Collection.<br>**Values:** List of Content Ratings found in your library | -| `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of Content Ratings found in your library | -| `append_include` | **Description:** Appends to the [default include list](#default-include).<br>**Values:** List of Content Ratings found in your library | -| `remove_include` | **Description:** Removes from the [default include list](#default-include).<br>**Values:** List of Content Ratings found in your library | -| `append_addons` | **Description:** Appends to the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Content Ratings found in your library | -| `remove_addons` | **Description:** Removes from the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Content Ratings found in your library | -| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `<<key_name>> <<library_translationU>>s`<br>**Values:** Any string with `<<key_name>>` in it. | -| `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s that are rated <<key_name>>.`<br>**Values:** Any string. | +??? info "Click to expand" -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. + === "File-Specific Template Variables" -{% - include-markdown "../collection_variables.md" -%} + The below template variables are available specifically for this PMM Defaults file. -### Example Template Variable Amendments + Be sure to also check out the "Shared Template Variables" tab for additional variables. -The below is an example config.yml extract with some Template Variables added in to change how the file works. + This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. -???+ tip + | Variable | Description & Values | + |:------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | + | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | + | `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** List of Content Ratings found in your library | + | `exclude` | **Description:** Exclude these Content Ratings from creating a Dynamic Collection.<br>**Values:** List of Content Ratings found in your library | + | `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of Content Ratings found in your library | + | `append_include` | **Description:** Appends to the [default include list](#default-include).<br>**Values:** List of Content Ratings found in your library | + | `remove_include` | **Description:** Removes from the [default include list](#default-include).<br>**Values:** List of Content Ratings found in your library | + | `append_addons` | **Description:** Appends to the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Content Ratings found in your library | + | `remove_addons` | **Description:** Removes from the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Content Ratings found in your library | + | `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `<<key_name>> <<library_translationU>>s`<br>**Values:** Any string with `<<key_name>>` in it. | + | `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s that are rated <<key_name>>.`<br>**Values:** Any string. | - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. -```yaml -libraries: - Movies: - collection_files: - - pmm: content_rating_cs - template_variables: - sep_style: stb #(1)! - use_other: false #(2)! - append_addons: - 15: #(3)! - - de/15 #(4)! - sort_by: title.asc -``` + === "Shared Template Variables" -1. Use the stb [Separator Style](../separators.md#separator-styles) -2. Do not create a "Not Rated Movies/Shows" collection -3. Defines a collection which will be called "15", this does not need to already exist in your library -4. Adds the "de/15" content rating to the "15" addon list, "de/18" must exist in your library if the "15" content rating does not + {% + include-markdown "../collection_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ???+ tip + + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. + + ```yaml + libraries: + Movies: + collection_files: + - pmm: content_rating_cs + template_variables: + sep_style: stb #(1)! + use_other: false #(2)! + append_addons: + 15: #(3)! + - de/15 #(4)! + sort_by: title.asc + ``` + + 1. Use the stb [Separator Style](../separators.md#separator-styles) + 2. Do not create a "Not Rated Movies/Shows" collection + 3. Defines a collection which will be called "15", this does not need to already exist in your library + 4. Adds the "de/15" content rating to the "15" addon list, "de/18" must exist in your library if the "15" content rating does not ## Default values -These are lists provided for reference to show what values will be in use if you do no customization. If you want to customize these values, use the methods described above. These do not show how to change a name or a list. +??? tip -### Default `include` + These are lists provided for reference to show what values will be in use if you do no customization. **These do not show how to change a name or a list.** -```yaml -include: - - U - - PG - - 12 - - 12A - - 15 - - 18 - - R18 -``` + If you want to customize these values, use the methods described above. -### Default `addons` + **Default `include`**: -```yaml - addons: - U: - - gb/U - - gb/0+ - - G - - TV-Y - - TV-G - - E - - gb/E - - 1 - - 2 - - 3 - - 4 - - 5 - - 6 - - "01" - - "02" - - "03" - - "04" - - "05" - - "06" - - G - All Ages - PG: - - gb/PG - - gb/9+ - - TV-PG - - TV-Y7 - - TV-Y7-FV - - PG - - 7 - - 8 - - 9 - - 10 - - 11 - - "07" - - "08" - - "09" - - PG - Children - 12: - - gb/12 - - 12 - - PG-13 - Teens 13 or older - 12A: - - gb/12A - - 12+ - - PG-13 - - TV-13 - - 12 - - PG-13 - Teens 13 or older - 15: - - gb/15 - - gb/14+ - - TV-14 - - 13 - - 14 - - 15 - - PG-13 - Teens 13 or older - 18: - - gb/18 - - MA-17 - - TVMA - - TV-MA - - R - - 16 - - 17 - - 18 - - R - 17+ (violence & profanity) - - R+ - Mild Nudity - R18: - - gb/R18 - - gb/X - - X - - NC-17 - - Rx - Hentai -``` \ No newline at end of file + ```yaml + include: + - U + - PG + - 12 + - 12A + - 15 + - 18 + - R18 + ``` + + **Default `addons`**: + + ```yaml + addons: + U: + - gb/U + - gb/0+ + - G + - TV-Y + - TV-G + - E + - gb/E + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - "01" + - "02" + - "03" + - "04" + - "05" + - "06" + - G - All Ages + PG: + - gb/PG + - gb/9+ + - TV-PG + - TV-Y7 + - TV-Y7-FV + - PG + - 7 + - 8 + - 9 + - 10 + - 11 + - "07" + - "08" + - "09" + - PG - Children + 12: + - gb/12 + - 12 + - PG-13 - Teens 13 or older + 12A: + - gb/12A + - 12+ + - PG-13 + - TV-13 + - 12 + - PG-13 - Teens 13 or older + 15: + - gb/15 + - gb/14+ + - TV-14 + - 13 + - 14 + - 15 + - PG-13 - Teens 13 or older + 18: + - gb/18 + - MA-17 + - TVMA + - TV-MA + - R + - 16 + - 17 + - 18 + - R - 17+ (violence & profanity) + - R+ - Mild Nudity + R18: + - gb/R18 + - gb/X + - X + - NC-17 + - Rx - Hentai + ``` \ No newline at end of file diff --git a/docs/defaults/both/genre.md b/docs/defaults/both/genre.md index dfa7f380..85b85220 100644 --- a/docs/defaults/both/genre.md +++ b/docs/defaults/both/genre.md @@ -31,108 +31,124 @@ libraries: - pmm: genre ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -| Variable | Description & Values | -|:------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | -| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `exclude` | **Description:** Exclude these Genres from creating a Dynamic Collection.<br>**Values:** List of Genres found in your library | -| `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of Genres found in your library | -| `append_addons` | **Description:** Appends to the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Genres found in your library | -| `remove_addons` | **Description:** Removes from the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Genres found in your library | -| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `<<key_name>> <<library_translationU>>s`<br>**Values:** Any string with `<<key_name>>` in it. | -| `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s that have the genre <<key_name>>.`<br>**Values:** Any string. | +??? info "Click to expand" -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. + === "File-Specific Template Variables" -{% - include-markdown "../collection_variables.md" -%} + The below template variables are available specifically for this PMM Defaults file. -### Example Template Variable Amendments + Be sure to also check out the "Shared Template Variables" tab for additional variables. -The below is an example config.yml extract with some Template Variables added in to change how the file works. + This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. -???+ tip + | Variable | Description & Values | + |:------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | + | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | + | `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `exclude` | **Description:** Exclude these Genres from creating a Dynamic Collection.<br>**Values:** List of Genres found in your library | + | `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of Genres found in your library | + | `append_addons` | **Description:** Appends to the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Genres found in your library | + | `remove_addons` | **Description:** Removes from the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Genres found in your library | + | `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `<<key_name>> <<library_translationU>>s`<br>**Values:** Any string with `<<key_name>>` in it. | + | `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s that have the genre <<key_name>>.`<br>**Values:** Any string. | - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. -```yaml -libraries: - Movies: - collection_files: - - pmm: genre - template_variables: - sep_style: red #(1)! - exclude: - - Politics #(2)! - - News #(3)! - append_addons: - Horror: #(4)! - - Thriller #(5)! # Adds all thriller items to the Horror collection -``` + === "Shared Template Variables" -1. Use the red [Separator Style](../separators.md#separator-styles) -2. Do not create a "Politics" collection, and do not include it in any other collections that it may be in as part of an "include" -3. Do not create a "News" collection, and do not include it in any other collections that it may be in as part of an "include" -4. Create a "Horror" collection, this genre does not need to exist in your library -5. Include the "Thriller" genre in the "Horror" collection, the "Thriller" genre must exist in your library if the "Horror" genre does not + {% + include-markdown "../collection_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ???+ tip + + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. + + ```yaml + libraries: + Movies: + collection_files: + - pmm: genre + template_variables: + sep_style: red #(1)! + exclude: + - Politics #(2)! + - News #(3)! + append_addons: + Horror: #(4)! + - Thriller #(5)! # Adds all thriller items to the Horror collection + ``` + + 1. Use the red [Separator Style](../separators.md#separator-styles) + 2. Do not create a "Politics" collection, and do not include it in any other collections that it may be in as part of an "include" + 3. Do not create a "News" collection, and do not include it in any other collections that it may be in as part of an "include" + 4. Create a "Horror" collection, this genre does not need to exist in your library + 5. Include the "Thriller" genre in the "Horror" collection, the "Thriller" genre must exist in your library if the "Horror" genre does not ## Default values -These are lists provided for reference to show what values will be in use if you do no customization. If you want to customize these values, use the methods described above. These do not show how to change a name or a list. +???+ tip -### Default `addons` + These are lists provided for reference to show what values will be in use if you do no customization. **These do not show how to change a name or a list.** -```yaml -addons: - Action: - - Action/Adventure - - Action/adventure - - Action & Adventure - - Action & adventure - - Action and Adventure - - Action and adventure - Adventure: - - Action/Adventure - - Action/adventure - - Action & Adventure - - Action & adventure - - Action and Adventure - - Action and adventure - Biopic: - - Biography - Family: - - Kids & Family - Fantasy: - - SciFi & Fantasy - - Science Fiction & Fantasy - - Science-Fiction & Fantasy - - Sci-Fi & Fantasy - Film Noir: - Film-Noir - Politics: - - War & Politics - Science Fiction: - - SciFi - - Sci-Fi - - Science-Fiction - - SciFi & Fantasy - - Science Fiction & Fantasy - - Sci-Fi & Fantasy - Talk Show: - - Talk - War: - - War & Politics -``` \ No newline at end of file + If you want to customize these values, use the methods described above. + + **Default `addons`**: + + ```yaml + addons: + Action: + - Action/Adventure + - Action/adventure + - Action & Adventure + - Action & adventure + - Action and Adventure + - Action and adventure + Adventure: + - Action/Adventure + - Action/adventure + - Action & Adventure + - Action & adventure + - Action and Adventure + - Action and adventure + Biopic: + - Biography + Family: + - Kids & Family + Fantasy: + - SciFi & Fantasy + - Science Fiction & Fantasy + - Science-Fiction & Fantasy + - Sci-Fi & Fantasy + Film Noir: + Film-Noir + Politics: + - War & Politics + Science Fiction: + - SciFi + - Sci-Fi + - Science-Fiction + - SciFi & Fantasy + - Science Fiction & Fantasy + - Sci-Fi & Fantasy + Talk Show: + - Talk + War: + - War & Politics + ``` \ No newline at end of file diff --git a/docs/defaults/both/resolution.md b/docs/defaults/both/resolution.md index 3f5af7a2..92a1c334 100644 --- a/docs/defaults/both/resolution.md +++ b/docs/defaults/both/resolution.md @@ -37,88 +37,104 @@ libraries: - pmm: resolution ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -| Variable | Description & Values | -|:------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `style` | **Description:** Controls the visual theme of the collections created.<table class="clearTable"><tr><th>Values:</th></tr><tr><td><code>default</code></td><td>Default Theme</td></tr><tr><td><code>standards</code></td><td>Standards Theme</td></tr></table> | -| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | -| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** Any Resolutions found in your library | -| `exclude` | **Description:** Exclude these Resolutions from creating a Dynamic Collection.<br>**Values:** List of Resolutions found in your library | -| `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of Resolutions found in your library | -| `append_include` | **Description:** Appends to the [default include list](#default-include).<br>**Values:** List of Resolutions found in your library | -| `remove_include` | **Description:** Removes from the [default include list](#default-include).<br>**Values:** List of Resolutions found in your library | -| `append_addons` | **Description:** Appends to the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Resolutions found in your library | -| `remove_addons` | **Description:** Removes from the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Resolutions found in your library | -| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `<<key_name>> <<library_translationU>>s`<br>**Values:** Any string with `<<key_name>>` in it. | -| `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s that have the resolution <<key_name>>.`<br>**Values:** Any string. | +??? info "Click to expand" -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. + === "File-Specific Template Variables" -{% - include-markdown "../collection_variables.md" -%} + The below template variables are available specifically for this PMM Defaults file. -### Example Template Variable Amendments + Be sure to also check out the "Shared Template Variables" tab for additional variables. -The below is an example config.yml extract with some Template Variables added in to change how the file works. + This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. -???+ tip + | Variable | Description & Values | + |:------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `style` | **Description:** Controls the visual theme of the collections created.<table class="clearTable"><tr><th>Values:</th></tr><tr><td><code>default</code></td><td>Default Theme</td></tr><tr><td><code>standards</code></td><td>Standards Theme</td></tr></table> | + | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | + | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | + | `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** Any Resolutions found in your library | + | `exclude` | **Description:** Exclude these Resolutions from creating a Dynamic Collection.<br>**Values:** List of Resolutions found in your library | + | `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of Resolutions found in your library | + | `append_include` | **Description:** Appends to the [default include list](#default-include).<br>**Values:** List of Resolutions found in your library | + | `remove_include` | **Description:** Removes from the [default include list](#default-include).<br>**Values:** List of Resolutions found in your library | + | `append_addons` | **Description:** Appends to the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Resolutions found in your library | + | `remove_addons` | **Description:** Removes from the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Resolutions found in your library | + | `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `<<key_name>> <<library_translationU>>s`<br>**Values:** Any string with `<<key_name>>` in it. | + | `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s that have the resolution <<key_name>>.`<br>**Values:** Any string. | - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. -```yaml -libraries: - Movies: - collection_files: - - pmm: resolution - template_variables: - sep_style: green #(1)! - exclude: - - sd #(2)! - sort_by: title.asc -``` + === "Shared Template Variables" -1. Use the green [Separator Style](../separators.md#separator-styles) -2. Do not use the "sd" resolution as part of the "480p Movies/Shows" Collections + {% + include-markdown "../collection_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ???+ tip + + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. + + ```yaml + libraries: + Movies: + collection_files: + - pmm: resolution + template_variables: + sep_style: green #(1)! + exclude: + - sd #(2)! + sort_by: title.asc + ``` + + 1. Use the green [Separator Style](../separators.md#separator-styles) + 2. Do not use the "sd" resolution as part of the "480p Movies/Shows" Collections ## Default values -These are lists provided for reference to show what values will be in use if you do no customization. If you want to customize these values, use the methods described above. These do not show how to change a name or a list. +??? tip -### Default `include` + These are lists provided for reference to show what values will be in use if you do no customization. **These do not show how to change a name or a list.** -```yaml -include: - - 4k - - 1080 - - 720 - - 480 -``` + If you want to customize these values, use the methods described above. -### Default `addons` + **Default `include`**: -```yaml -addons: - 4k: - - 8k - 1080: - - 2k - 480: - - 144 - - 240 - - 360 - - sd - - 576 -``` \ No newline at end of file + ```yaml + include: + - 4k + - 1080 + - 720 + - 480 + ``` + + **Default `addons`**: + + ```yaml + addons: + 4k: + - 8k + 1080: + - 2k + 480: + - 144 + - 240 + - 360 + - sd + - 576 + ``` \ No newline at end of file diff --git a/docs/defaults/both/streaming.md b/docs/defaults/both/streaming.md index 4e6cfa98..99a378a1 100644 --- a/docs/defaults/both/streaming.md +++ b/docs/defaults/both/streaming.md @@ -45,31 +45,43 @@ libraries: - pmm: streaming ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -| Variable | Description & Values | -|:--------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | -| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `exclude` | **Description:** Exclude these Streaming Services from creating a Dynamic Collection.<br>**Values:** List of Streaming Service Keys | -| `region` | **Description:** Changes some Streaming Service lists to regional variants (see below table for more information.<br>**Default:** `us`<br>**Values:** `us`,`uk`,`ca`, `da`, `de`, `es`, `fr`, `it`, `pt-br` | -| `originals_only` | **Description:** Changes Streaming Service lists to only show original content produced by the service.<br>**Note**: Cannot be used with `region`, and only produces collections for `amazon`, `appletv`, `disney`, `max`, `hulu`, `netflix`, `paramount`, `peacock`<br>**Default:** `false`<br>**Values:** `true`, `false` | -| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `<<key_name>> <<library_translationU>>s`<br>**Values:** Any string with `<<key_name>>` in it. | -| `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s streaming on <<key_name>>.`<br>**Values:** Any string. | +??? info "Click to expand" -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. + === "File-Specific Template Variables" -{% - include-markdown "../collection_variables.md" -%} + The below template variables are available specifically for this PMM Defaults file. + + Be sure to also check out the "Shared Template Variables" tab for additional variables. + + This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. + + | Variable | Description & Values | + |:--------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | + | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | + | `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `exclude` | **Description:** Exclude these Streaming Services from creating a Dynamic Collection.<br>**Values:** List of Streaming Service Keys | + | `region` | **Description:** Changes some Streaming Service lists to regional variants (see below table for more information.<br>**Default:** `us`<br>**Values:** `us`,`uk`,`ca`, `da`, `de`, `es`, `fr`, `it`, `pt-br` | + | `originals_only` | **Description:** Changes Streaming Service lists to only show original content produced by the service.<br>**Note**: Cannot be used with `region`, and only produces collections for `amazon`, `appletv`, `disney`, `max`, `hulu`, `netflix`, `paramount`, `peacock`<br>**Default:** `false`<br>**Values:** `true`, `false` | + | `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `<<key_name>> <<library_translationU>>s`<br>**Values:** Any string with `<<key_name>>` in it. | + | `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s streaming on <<key_name>>.`<br>**Values:** Any string. | + + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. + + === "Shared Template Variables" + + {% + include-markdown "../collection_variables.md" + %} ## Regional Variants @@ -95,27 +107,27 @@ The below is an example config.yml extract with some Template Variables added in That's a tooltip, you can press them to get more information. -```yaml -libraries: - Movies: - collection_files: - - pmm: streaming - template_variables: - region: fr #(1)! - sep_style: amethyst #(2)! - visible_library_disney: true #(3)! - visible_home_disney: true #(4)! - visible_shared_disney: true #(5)! - sonarr_add_missing_hulu: true #(6)! - radarr_add_missing_amazon: true #(7)! - sort_by: random #(8)! -``` + ```yaml + libraries: + Movies: + collection_files: + - pmm: streaming + template_variables: + region: fr #(1)! + sep_style: amethyst #(2)! + visible_library_disney: true #(3)! + visible_home_disney: true #(4)! + visible_shared_disney: true #(5)! + sonarr_add_missing_hulu: true #(6)! + radarr_add_missing_amazon: true #(7)! + sort_by: random #(8)! + ``` -1. Use French region lists where possible -2. Use the amethyst [Separator Style](../separators.md#separator-styles) -3. Pin the "Disney+ Movies/Shows" collection to the Recommended tab of the library -4. Pin the "Disney+ Movies/Shows" collection to the home screen of the server owner -5. Pin the "Disney+ Movies/Shows" collection to the home screen of other users of the server -6. Add missing shows in your library from the "Hulu Shows" list to your Sonarr -7. Add missing movies in your library from the "Prime Video Movies" list to your Radarr -8. Sort all the collections created by this file randomly \ No newline at end of file + 1. Use French region lists where possible + 2. Use the amethyst [Separator Style](../separators.md#separator-styles) + 3. Pin the "Disney+ Movies/Shows" collection to the Recommended tab of the library + 4. Pin the "Disney+ Movies/Shows" collection to the home screen of the server owner + 5. Pin the "Disney+ Movies/Shows" collection to the home screen of other users of the server + 6. Add missing shows in your library from the "Hulu Shows" list to your Sonarr + 7. Add missing movies in your library from the "Prime Video Movies" list to your Radarr + 8. Sort all the collections created by this file randomly \ No newline at end of file diff --git a/docs/defaults/both/studio.md b/docs/defaults/both/studio.md index 8571b4bf..fd7889b0 100644 --- a/docs/defaults/both/studio.md +++ b/docs/defaults/both/studio.md @@ -31,734 +31,750 @@ libraries: - pmm: studio ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -| Variable | Description & Values | -|:------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | -| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** List of Studios found in your library | -| `exclude` | **Description:** Exclude these Studios from creating a Dynamic Collection.<br>**Values:** List of Studios found in your library | -| `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of Studios found in your library | -| `append_include` | **Description:** Appends to the [default include list](#default-include).<br>**Values:** List of Studios found in your library | -| `remove_include` | **Description:** Removes from the [default include list](#default-include).<br>**Values:** List of Studios found in your library | -| `append_addons` | **Description:** Appends to the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Studios found in your library | -| `remove_addons` | **Description:** Removes from the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Studios found in your library | -| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `<<key_name>> <<library_translationU>>s`<br>**Values:** Any string with `<<key_name>>` in it. | -| `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s that have the resolution <<key_name>>.`<br>**Values:** Any string. | +??? info "Click to expand" -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. + === "File-Specific Template Variables" -{% - include-markdown "../collection_variables.md" -%} + The below template variables are available specifically for this PMM Defaults file. -### Example Template Variable Amendments + Be sure to also check out the "Shared Template Variables" tab for additional variables. -The below is an example config.yml extract with some Template Variables added in to change how the file works. + This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. -???+ tip + | Variable | Description & Values | + |:------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | + | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | + | `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** List of Studios found in your library | + | `exclude` | **Description:** Exclude these Studios from creating a Dynamic Collection.<br>**Values:** List of Studios found in your library | + | `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of Studios found in your library | + | `append_include` | **Description:** Appends to the [default include list](#default-include).<br>**Values:** List of Studios found in your library | + | `remove_include` | **Description:** Removes from the [default include list](#default-include).<br>**Values:** List of Studios found in your library | + | `append_addons` | **Description:** Appends to the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Studios found in your library | + | `remove_addons` | **Description:** Removes from the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Studios found in your library | + | `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `<<key_name>> <<library_translationU>>s`<br>**Values:** Any string with `<<key_name>>` in it. | + | `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s that have the resolution <<key_name>>.`<br>**Values:** Any string. | - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. -```yaml -libraries: - Movies: - collection_files: - - pmm: studio - template_variables: - append_include: - - Big Bull Productions #(1)! - sort_by: title.asc - collection_mode: show_items #(2)! - sep_style: gray #(3)! -``` + === "Shared Template Variables" -1. add "Big Bull Productions" to the list of items that should be included in the Collection list -2. Show these collections and their items within the "Library" tab -3. Use the gray [Separator Style](../separators.md#separator-styles) + {% + include-markdown "../collection_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ???+ tip + + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. + + ```yaml + libraries: + Movies: + collection_files: + - pmm: studio + template_variables: + append_include: + - Big Bull Productions #(1)! + sort_by: title.asc + collection_mode: show_items #(2)! + sep_style: gray #(3)! + ``` + + 1. add "Big Bull Productions" to the list of items that should be included in the Collection list + 2. Show these collections and their items within the "Library" tab + 3. Use the gray [Separator Style](../separators.md#separator-styles) ## Default values -These are lists provided for reference to show what values will be in use if you do no customization. If you want to customize these values, use the methods described above. These do not show how to change a name or a list. +??? tip -### Default `include` + These are lists provided for reference to show what values will be in use if you do no customization. **These do not show how to change a name or a list.** -```yaml -include: -#### ANIMES ######################################################################################################## - - 8bit - - A-1 Pictures - - A.C.G.T. - - Acca effe - - Actas - - AIC - - Ajia-Do - - Akatsuki - - Animation Do - - Ankama - - APPP - - Arms - - Artland - - Artmic - - Arvo Animation - - Asahi Production - - Ashi Productions - - asread. - - AtelierPontdarc - - B.CMAY PICTURES - - Bandai Namco Pictures - - Bee Train - - Berlanti Productions - - Bibury Animation Studios - - bilibili - - Bones - - Brain's Base - - Bridge - - BUG FILMS - - C-Station - - C2C - - Children's Playground Entertainment - - Cloud Hearts - - CloverWorks - - Colored Pencil Animation - - CoMix Wave Films - - Connect - - Craftar Studios - - Creators in Pack - - CygamesPictures - - David Production - - Diomedéa - - DLE - - Doga Kobo - - domerica - - Drive - - EMT Squared - - Encourage Films - - ENGI - - feel. - - Felix Film - - Fenz - - GAINAX - - Gallop - - Geek Toys - - Gekkou - - Gemba - - GENCO - - Geno Studio - - GoHands - - Gonzo - - Graphinica - - Group Tac - - Hal Film Maker - - Haoliners Animation League - - Hoods Entertainment - - Hotline - - J.C.Staff - - Jumondou - - Kadokawa - - Khara - - Kinema Citrus - - Kyoto Animation - - Lan Studio - - LandQ Studio - - Lay-duce - - Lerche - - LIDENFILMS - - M.S.C - - Madhouse - - Magic Bus - - Maho Film - - Manglobe - - MAPPA - - Millepensee - - Namu Animation - - NAZ - - Nexus - - Nippon Animation - - Nomad - - Nut - - Okuruto Noboru - - OLM - - Orange - - Ordet - - OZ - - P.A. Works - - P.I.C.S. - - Passione - - Pb Animation Co. Ltd - - Pierrot - - Pine Jam - - Platinum Vision - - Polygon Pictures - - Pony Canyon - - Production +h. - - Production I.G - - Production IMS - - Production Reed - - Project No.9 - - Quad - - Radix - - Revoroot - - Saetta - - SANZIGEN - - Satelight - - Science SARU - - Sentai Filmworks - - Seven Arcs - - Shaft - - Shin-Ei Animation - - Shogakukan - - Shuka - - Signal.MD - - Silver - - SILVER LINK. - - Square Enix - - Staple Entertainment - - Studio 3Hz - - Studio A-CAT - - Studio Bind - - Studio Blanc. - - Studio Chizu - - Studio Comet - - Studio Deen - - Studio Elle - - Studio Ghibli - - Studio Flad - - Studio Gokumi - - Studio Guts - - Studio Hibari - - Studio Kafka - - Studio Kai - - Studio Mir - - studio MOTHER - - Studio Palette - - Studio Rikka - - Studio Signpost - - Studio VOLN - - STUDIO4°C - - Sunrise Beyond - - Sunrise - - SynergySP - - Tatsunoko Production - - Telecom Animation Film - - Tezuka Productions - - TMS Entertainment - - TNK - - Toei Animation - - Topcraft - - Triangle Staff - - Trigger - - TROYCA - - TYO Animations - - Typhoon Graphics - - ufotable - - V1 Studio - - W-Toon Studio - - Wawayu Animation - - White Fox - - Wit Studio - - Wolfsbane - - Xebec - - Yokohama Animation Lab - - Yostar Pictures - - Yumeta Company - - Zero-G - - Zexcs + If you want to customize these values, use the methods described above. -#### MOVIES & TV SHOWS ############################################################################################### - - 3 Arts Entertainment - - 6th & Idaho - - 20th Century Animation - - 20th Century Studios - - 20th Century Fox Television - - 21 Laps Entertainment - - 87Eleven - - 87North Productions - - 101 Studios - - 1492 Pictures - - A Bigger Boat - - A+E Studios - - A24 - - Aardman - - Aamir Khan Productions - - ABC Signature - - ABC Studios - - Ace Entertainment - - AGBO - - Amazon Studios - - Amblin Entertainment - - AMC Studios - - Anima Sola Productions - - Annapurna Pictures - - Ardustry Entertainment - - Artisan Entertainment - - Artists First - - Atlas Entertainment - - Atresmedia - - Bad Hat Harry Productions - - Bad Robot - - Bad Wolf - - Barunson E&A - - Bakken Record - - Bardel Entertainment - - BBC Studios - - Bill Melendez Productions - - Blade - - Bleecker Street - - Blown Deadline Productions - - Blue Ice Pictures - - Blue Sky Studios - - Bluegrass Films - - Blueprint Pictures - - Blumhouse Productions - - Blur Studio - - Bold Films - - Bona Film Group - - Bonanza Productions - - Boo Pictures - - Bosque Ranch Productions - - Box to Box Films - - Brandywine Productions - - Broken Road Productions - - Calt Production - - Canal+ - - Carnival Films - - Carolco - - Cartoon Saloon - - Carsey-Werner Company - - Castle Rock Entertainment - - CBS Productions - - CBS Studios - - CBS Television Studios - - Centropolis Entertainment - - Chernin Entertainment - - Chimp Television - - Chris Morgan Productions - - Cinergi Pictures Entertainment - - Columbia Pictures - - Constantin Film - - Cowboy Films - - Cross Creek Pictures - - Dark Horse Entertainment - - Davis Entertainment - - DC Comics - - Dino De Laurentiis Company - - Don Simpson Jerry Bruckheimer Films - - Doozer - - Dreams Salon Entertainment Culture - - DreamWorks Studios - - DreamWorks Pictures - - Eleventh Hour Films - - EMJAG Productions - - Endeavor Content - - Entertainment 360 - - Entertainment One - - Eon Productions - - Everest Entertainment - - Expectation Entertainment - - Exposure Labs - - Fandango - - Fields Entertainment - - FilmDistrict - - FilmNation Entertainment - - Flynn Picture Company - - Focus Features - - Food Network - - Fortiche Production - - Fox Television Studios - - Freckle Films - - Frederator Studios - - FremantleMedia - - Fuqua Films - - Gallagher Films Ltd - - Gary Sanchez Productions - - Gaumont - - Generator Entertainment - - Gracie Films - - Green Hat Films - - Grindstone Entertainment Group - - Hallmark - - HandMade Films - - Happy Madison Productions - - HartBeat Productions - - Hartswood Films - - Hasbro - - HBO - - Heyday Films - - Hughes Entertainment - - Hurwitz & Schlossberg Productions - - Hyperobject Industries - - Icon Entertainment International - - IFC Films - - Illumination Entertainment - - Imagin - - Imperative Entertainment - - Impossible Factual - - Ingenious Media - - Irwin Entertainment - - Jerry Bruckheimer Films - - Jessie Films - - Jinks-Cohen Company - - Kazak Productions - - Kennedy Miller Productions - - Kilter Films - - Kjam Media - - Kudos - - Kurtzman Orci - - Laika Entertainment - - Landscape Entertainment - - Laura Ziskin Productions - - Leftfield Pictures - - Legendary Pictures - - Let's Not Turn This Into a Whole Big Production - - Lifetime - - Levity Entertainment Group - - Lightstorm Entertainment - - Likely Story - - Lionsgate - - Live Entertainment - - Lord Miller Productions - - Lucasfilm Ltd - - Magnolia Pictures - - Malevolent Films - - Mandalay Entertainment - - Mandarin - - Mandarin Motion Pictures Limited - - Marv Films - - Marvel Animation - - Marvel Studios - - Matt Tolmach Productions - - Maximum Effort - - Media Res - - Metro-Goldwyn-Mayer - - Michael Patrick King Productions - - Millennium Films - - Miramax - - NEON - - Netflix - - New Line Cinema - - Nickelodeon Animation Studio - - NorthSouth Productions - - Nu Boyana Film Studios - - O2 Filmes - - Open Road Films - - Original Film - - Orion Pictures - - Palomar - - Paramount Animation - - Paramount Pictures - - Paramount Television Studios - - Participant - - Phoenix Pictures - - Piki Films - - Pixar - - Plan B Entertainment - - PlayStation Productions - - Playtone - - Plum Pictures - - Powerhouse Animation Studios - - PRA - - Prescience - - Prospect Park - - Pulse Films - - Radar Pictures - - RadicalMedia - - Railsplitter Pictures - - Rankin/Bass Productions - - RatPac Entertainment - - Red Dog Culture House - - Regency Pictures - - Reveille Productions - - Rip Cord Productions - - RocketScience - - Savoy Pictures - - Scenic Labs - - Scion Films - - Scott Free Productions - - Sculptor Media - - Sean Daniel Company - - Secret Hideout - - See-Saw Films - - Serendipity Pictures - - Show East - - Showtime Networks - - Sil-Metropole Organisation - - Silverback Films - - Siren Pictures - - SISTER - - Sixteen String Jack Productions - - SKA Films - - Sky studios - - Skydance - - Sony Pictures Animation - - Sony Pictures - - Sphère Média Plus - - Spyglass Entertainment - - Stöð 2 - - Star Thrower Entertainment - - Stark Raving Black Productions - - StudioCanal - - Studio 8 - - Studio Babelsberg - - Studio Dragon - - STX Entertainment - - Summit Entertainment - - Syfy - - Syncopy - - T-Street Productions - - Tall Ship Productions - - Team Downey - - Temple Street Productions - - The Cat in the Hat Productions - - The Donners' Company - - The Jim Henson Company - - The Kennedy-Marshall Company - - The Linson Company - - The Littlefield Company - - The Mark Gordon Company - - The Sea Change Project - - The Weinstein Company - - Tim Burton Productions - - TOHO - - Thunder Road - - Titmouse - - Tomorrow Studios - - Touchstone Pictures - - Touchstone Television - - Trademark Films - - Triage Entertainment - - Tribeca Productions - - TriStar Pictures - - TSG Entertainment - - Twisted Pictures - - UCP - - United Artists - - Universal Animation Studios - - Universal Pictures - - Universal Television - - Vancouver Media - - Vertigo Entertainment - - Village Roadshow Pictures - - W. Chump and Sons - - Walden Media - - Walt Disney Animation Studios - - Walt Disney Pictures - - Walt Disney Productions - - Warner Animation Group - - Warner Bros. Pictures - - Warner Bros. Television - - Warner Premiere - - warparty - - Waverly Films - - Wayfare Entertainment - - Williams Street - - Whitaker Entertainment - - Wiedemann & Berg Television - - Winkler Films - - Wolf Entertainment - - Working Title Films -``` + **Default `include`**: -### Default `addons` + ```yaml + include: + #### ANIMES ######################################################################################################## + - 8bit + - A-1 Pictures + - A.C.G.T. + - Acca effe + - Actas + - AIC + - Ajia-Do + - Akatsuki + - Animation Do + - Ankama + - APPP + - Arms + - Artland + - Artmic + - Arvo Animation + - Asahi Production + - Ashi Productions + - asread. + - AtelierPontdarc + - B.CMAY PICTURES + - Bandai Namco Pictures + - Bee Train + - Berlanti Productions + - Bibury Animation Studios + - bilibili + - Bones + - Brain's Base + - Bridge + - BUG FILMS + - C-Station + - C2C + - Children's Playground Entertainment + - Cloud Hearts + - CloverWorks + - Colored Pencil Animation + - CoMix Wave Films + - Connect + - Craftar Studios + - Creators in Pack + - CygamesPictures + - David Production + - Diomedéa + - DLE + - Doga Kobo + - domerica + - Drive + - EMT Squared + - Encourage Films + - ENGI + - feel. + - Felix Film + - Fenz + - GAINAX + - Gallop + - Geek Toys + - Gekkou + - Gemba + - GENCO + - Geno Studio + - GoHands + - Gonzo + - Graphinica + - Group Tac + - Hal Film Maker + - Haoliners Animation League + - Hoods Entertainment + - Hotline + - J.C.Staff + - Jumondou + - Kadokawa + - Khara + - Kinema Citrus + - Kyoto Animation + - Lan Studio + - LandQ Studio + - Lay-duce + - Lerche + - LIDENFILMS + - M.S.C + - Madhouse + - Magic Bus + - Maho Film + - Manglobe + - MAPPA + - Millepensee + - Namu Animation + - NAZ + - Nexus + - Nippon Animation + - Nomad + - Nut + - Okuruto Noboru + - OLM + - Orange + - Ordet + - OZ + - P.A. Works + - P.I.C.S. + - Passione + - Pb Animation Co. Ltd + - Pierrot + - Pine Jam + - Platinum Vision + - Polygon Pictures + - Pony Canyon + - Production +h. + - Production I.G + - Production IMS + - Production Reed + - Project No.9 + - Quad + - Radix + - Revoroot + - Saetta + - SANZIGEN + - Satelight + - Science SARU + - Sentai Filmworks + - Seven Arcs + - Shaft + - Shin-Ei Animation + - Shogakukan + - Shuka + - Signal.MD + - Silver + - SILVER LINK. + - Square Enix + - Staple Entertainment + - Studio 3Hz + - Studio A-CAT + - Studio Bind + - Studio Blanc. + - Studio Chizu + - Studio Comet + - Studio Deen + - Studio Elle + - Studio Ghibli + - Studio Flad + - Studio Gokumi + - Studio Guts + - Studio Hibari + - Studio Kafka + - Studio Kai + - Studio Mir + - studio MOTHER + - Studio Palette + - Studio Rikka + - Studio Signpost + - Studio VOLN + - STUDIO4°C + - Sunrise Beyond + - Sunrise + - SynergySP + - Tatsunoko Production + - Telecom Animation Film + - Tezuka Productions + - TMS Entertainment + - TNK + - Toei Animation + - Topcraft + - Triangle Staff + - Trigger + - TROYCA + - TYO Animations + - Typhoon Graphics + - ufotable + - V1 Studio + - W-Toon Studio + - Wawayu Animation + - White Fox + - Wit Studio + - Wolfsbane + - Xebec + - Yokohama Animation Lab + - Yostar Pictures + - Yumeta Company + - Zero-G + - Zexcs -```yaml -addons: - 8bit: - - 8-bit - 20th Century Studios: - - 20th Century - - 20th Century Animation - - 20th Century Fox - AIC: - - AIC ASTA - - AIC A.S.T.A - - AIC Build - - AAIC PLUS+ - - AIC RIGHTS - - AIC Spirits - Ajia-Do: - - Ajiado - Amazon Studios: - - Amazon - Amblin Entertainment: - - Amblin Television - APPP: - - A.P.P.P. - asread.: - - Asread - AtelierPontdarc: - - Atelier Pontdarc - B.CMAY PICTURES: - - G.CMay Animation & Film - Bandai Namco Pictures: - - Bandai Visual - - Bandai Visual Company - BBC Studios: - - BBC - - BBC Studios Natural History Unit - Bibury Animation Studios: - - Bibury Animation CG - Blue Sky Studios: - - Blue Sky Films - Canal+: - - Canal+ Polska - Cloud Hearts: - - CLOUDHEARTS - Columbia Pictures: - - Columbia TriStar - CoMix Wave Films: - - CoMix Wave - Craftar Studios: - - Craftar - CygamesPictures: - - Cygames Pictures - DC Comics: - - DC Films - - DC Entertainment - DreamWorks Studios: - - DreamWorks - - DreamWorks Animation - - DreamWorks Animation Television - - DreamWorks Classics - EMT Squared: - - EMT²0 - feel.: - - Feel - Gallop: - - Studio Gallop - Gaumont: - - Gaumont International Television - Geek Toys: - - GEEKTOYS - Gekkou: - - GEKKOU Production - GoHands: - - Go Hands - Gonzo: - - Gonzo Digimation - Hallmark: - - Hallmark Channel - - Hallmark Entertainment - - Hallmark Media - - Hallmark Movies & Mysteries - - The Hallmark Channel - Haoliners Animation League: - - Haoliners Huimeng Animation - - Haoliners Animation - Illumination Entertainment: - - Illumination Films - J.C.Staff: - - J.C. Staff - Khara: - - Studio Khara - Lan Studio: - - Studio LAN - Legendary Pictures: - - Legendary Television - LIDENFILMS: - - Liden Films - Lucasfilm Ltd: - - Lucasfilm - - Lucasfilm Animation - Mandarin: - - Mandarin Films - - Mandarin Television - Marvel Studios: - - Marvel Enterprises - - Marvel Entertainment - - Marvel - Metro-Goldwyn-Mayer: - - MGM - New Line Cinema: - - New Line - Nexus: - - Nexus Factory - P.A. Works: - - P.A.WORKS - Paramount Pictures: - - Paramount - Pierrot: - - Pierrot Plus - - Studio Pierrot - Pixar: - - Pixar Animation Studios - Plan B Entertainment: - - PlanB Entertainment - Platinum Vision: - - PlatinumVision - Production +h.: - - Production +h - Rankin/Bass Productions: - - Videocraft International - RatPac Entertainment: - - Dune Entertainment - Regency Pictures: - - Regency Enterprises - - New Regency Pictures - - Monarchy Enterprises S.a.r.l. - Science SARU: - - Science Saru - Seven Arcs: - - Seven - - Seven Arcs Pictures - Shogakukan: - - Shogakukan Production - Signal.MD: - - Signal MD - Silver: - - Studio Silver - SILVER LINK.: - - Silver Link - Sky studios: - - British Sky Broadcasting - - British Sky Broadcasting(BSkyB) - Skydance: - - Skydance Media - Sony Pictures: - - Sony - - Sony Pictures Animation - - Sony Pictures Television Studios - Studio Blanc.: - - Studio Blanc - Studio Deen: - - Studio DEEN - STX Entertainment: - - STX Films - The Kennedy-Marshall Company: - - The Kennedy/Marshall Company - The Mark Gordon Company: - - Tiger Aspect Productions - TOHO: - - Toho Pictures - - Toho Pictures, Inc. - TMS Entertainment: - - Tokyo Movie Shinsha - Toei Animation: - - Toei - TriStar Pictures: - - TriStar - Universal Pictures: - - Universal - - Universal Animation Studios - Walt Disney Pictures: - - Disney - Warner Animation Group: - - Warner Bros. Cartoon Studios - - Warner Animation - Warner Bros. Pictures: - - Warner - - Warner Animation Group - Yokohama Animation Lab: - - Yokohama Animation Laboratory -``` \ No newline at end of file + #### MOVIES & TV SHOWS ############################################################################################### + - 3 Arts Entertainment + - 6th & Idaho + - 20th Century Animation + - 20th Century Studios + - 20th Century Fox Television + - 21 Laps Entertainment + - 87Eleven + - 87North Productions + - 101 Studios + - 1492 Pictures + - A Bigger Boat + - A+E Studios + - A24 + - Aardman + - Aamir Khan Productions + - ABC Signature + - ABC Studios + - Ace Entertainment + - AGBO + - Amazon Studios + - Amblin Entertainment + - AMC Studios + - Anima Sola Productions + - Annapurna Pictures + - Ardustry Entertainment + - Artisan Entertainment + - Artists First + - Atlas Entertainment + - Atresmedia + - Bad Hat Harry Productions + - Bad Robot + - Bad Wolf + - Barunson E&A + - Bakken Record + - Bardel Entertainment + - BBC Studios + - Bill Melendez Productions + - Blade + - Bleecker Street + - Blown Deadline Productions + - Blue Ice Pictures + - Blue Sky Studios + - Bluegrass Films + - Blueprint Pictures + - Blumhouse Productions + - Blur Studio + - Bold Films + - Bona Film Group + - Bonanza Productions + - Boo Pictures + - Bosque Ranch Productions + - Box to Box Films + - Brandywine Productions + - Broken Road Productions + - Calt Production + - Canal+ + - Carnival Films + - Carolco + - Cartoon Saloon + - Carsey-Werner Company + - Castle Rock Entertainment + - CBS Productions + - CBS Studios + - CBS Television Studios + - Centropolis Entertainment + - Chernin Entertainment + - Chimp Television + - Chris Morgan Productions + - Cinergi Pictures Entertainment + - Columbia Pictures + - Constantin Film + - Cowboy Films + - Cross Creek Pictures + - Dark Horse Entertainment + - Davis Entertainment + - DC Comics + - Dino De Laurentiis Company + - Don Simpson Jerry Bruckheimer Films + - Doozer + - Dreams Salon Entertainment Culture + - DreamWorks Studios + - DreamWorks Pictures + - Eleventh Hour Films + - EMJAG Productions + - Endeavor Content + - Entertainment 360 + - Entertainment One + - Eon Productions + - Everest Entertainment + - Expectation Entertainment + - Exposure Labs + - Fandango + - Fields Entertainment + - FilmDistrict + - FilmNation Entertainment + - Flynn Picture Company + - Focus Features + - Food Network + - Fortiche Production + - Fox Television Studios + - Freckle Films + - Frederator Studios + - FremantleMedia + - Fuqua Films + - Gallagher Films Ltd + - Gary Sanchez Productions + - Gaumont + - Generator Entertainment + - Gracie Films + - Green Hat Films + - Grindstone Entertainment Group + - Hallmark + - HandMade Films + - Happy Madison Productions + - HartBeat Productions + - Hartswood Films + - Hasbro + - HBO + - Heyday Films + - Hughes Entertainment + - Hurwitz & Schlossberg Productions + - Hyperobject Industries + - Icon Entertainment International + - IFC Films + - Illumination Entertainment + - Imagin + - Imperative Entertainment + - Impossible Factual + - Ingenious Media + - Irwin Entertainment + - Jerry Bruckheimer Films + - Jessie Films + - Jinks-Cohen Company + - Kazak Productions + - Kennedy Miller Productions + - Kilter Films + - Kjam Media + - Kudos + - Kurtzman Orci + - Laika Entertainment + - Landscape Entertainment + - Laura Ziskin Productions + - Leftfield Pictures + - Legendary Pictures + - Let's Not Turn This Into a Whole Big Production + - Lifetime + - Levity Entertainment Group + - Lightstorm Entertainment + - Likely Story + - Lionsgate + - Live Entertainment + - Lord Miller Productions + - Lucasfilm Ltd + - Magnolia Pictures + - Malevolent Films + - Mandalay Entertainment + - Mandarin + - Mandarin Motion Pictures Limited + - Marv Films + - Marvel Animation + - Marvel Studios + - Matt Tolmach Productions + - Maximum Effort + - Media Res + - Metro-Goldwyn-Mayer + - Michael Patrick King Productions + - Millennium Films + - Miramax + - NEON + - Netflix + - New Line Cinema + - Nickelodeon Animation Studio + - NorthSouth Productions + - Nu Boyana Film Studios + - O2 Filmes + - Open Road Films + - Original Film + - Orion Pictures + - Palomar + - Paramount Animation + - Paramount Pictures + - Paramount Television Studios + - Participant + - Phoenix Pictures + - Piki Films + - Pixar + - Plan B Entertainment + - PlayStation Productions + - Playtone + - Plum Pictures + - Powerhouse Animation Studios + - PRA + - Prescience + - Prospect Park + - Pulse Films + - Radar Pictures + - RadicalMedia + - Railsplitter Pictures + - Rankin/Bass Productions + - RatPac Entertainment + - Red Dog Culture House + - Regency Pictures + - Reveille Productions + - Rip Cord Productions + - RocketScience + - Savoy Pictures + - Scenic Labs + - Scion Films + - Scott Free Productions + - Sculptor Media + - Sean Daniel Company + - Secret Hideout + - See-Saw Films + - Serendipity Pictures + - Show East + - Showtime Networks + - Sil-Metropole Organisation + - Silverback Films + - Siren Pictures + - SISTER + - Sixteen String Jack Productions + - SKA Films + - Sky studios + - Skydance + - Sony Pictures Animation + - Sony Pictures + - Sphère Média Plus + - Spyglass Entertainment + - Stöð 2 + - Star Thrower Entertainment + - Stark Raving Black Productions + - StudioCanal + - Studio 8 + - Studio Babelsberg + - Studio Dragon + - STX Entertainment + - Summit Entertainment + - Syfy + - Syncopy + - T-Street Productions + - Tall Ship Productions + - Team Downey + - Temple Street Productions + - The Cat in the Hat Productions + - The Donners' Company + - The Jim Henson Company + - The Kennedy-Marshall Company + - The Linson Company + - The Littlefield Company + - The Mark Gordon Company + - The Sea Change Project + - The Weinstein Company + - Tim Burton Productions + - TOHO + - Thunder Road + - Titmouse + - Tomorrow Studios + - Touchstone Pictures + - Touchstone Television + - Trademark Films + - Triage Entertainment + - Tribeca Productions + - TriStar Pictures + - TSG Entertainment + - Twisted Pictures + - UCP + - United Artists + - Universal Animation Studios + - Universal Pictures + - Universal Television + - Vancouver Media + - Vertigo Entertainment + - Village Roadshow Pictures + - W. Chump and Sons + - Walden Media + - Walt Disney Animation Studios + - Walt Disney Pictures + - Walt Disney Productions + - Warner Animation Group + - Warner Bros. Pictures + - Warner Bros. Television + - Warner Premiere + - warparty + - Waverly Films + - Wayfare Entertainment + - Williams Street + - Whitaker Entertainment + - Wiedemann & Berg Television + - Winkler Films + - Wolf Entertainment + - Working Title Films + ``` + + **Default `addons`**: + + ```yaml + addons: + 8bit: + - 8-bit + 20th Century Studios: + - 20th Century + - 20th Century Animation + - 20th Century Fox + AIC: + - AIC ASTA + - AIC A.S.T.A + - AIC Build + - AAIC PLUS+ + - AIC RIGHTS + - AIC Spirits + Ajia-Do: + - Ajiado + Amazon Studios: + - Amazon + Amblin Entertainment: + - Amblin Television + APPP: + - A.P.P.P. + asread.: + - Asread + AtelierPontdarc: + - Atelier Pontdarc + B.CMAY PICTURES: + - G.CMay Animation & Film + Bandai Namco Pictures: + - Bandai Visual + - Bandai Visual Company + BBC Studios: + - BBC + - BBC Studios Natural History Unit + Bibury Animation Studios: + - Bibury Animation CG + Blue Sky Studios: + - Blue Sky Films + Canal+: + - Canal+ Polska + Cloud Hearts: + - CLOUDHEARTS + Columbia Pictures: + - Columbia TriStar + CoMix Wave Films: + - CoMix Wave + Craftar Studios: + - Craftar + CygamesPictures: + - Cygames Pictures + DC Comics: + - DC Films + - DC Entertainment + DreamWorks Studios: + - DreamWorks + - DreamWorks Animation + - DreamWorks Animation Television + - DreamWorks Classics + EMT Squared: + - EMT²0 + feel.: + - Feel + Gallop: + - Studio Gallop + Gaumont: + - Gaumont International Television + Geek Toys: + - GEEKTOYS + Gekkou: + - GEKKOU Production + GoHands: + - Go Hands + Gonzo: + - Gonzo Digimation + Hallmark: + - Hallmark Channel + - Hallmark Entertainment + - Hallmark Media + - Hallmark Movies & Mysteries + - The Hallmark Channel + Haoliners Animation League: + - Haoliners Huimeng Animation + - Haoliners Animation + Illumination Entertainment: + - Illumination Films + J.C.Staff: + - J.C. Staff + Khara: + - Studio Khara + Lan Studio: + - Studio LAN + Legendary Pictures: + - Legendary Television + LIDENFILMS: + - Liden Films + Lucasfilm Ltd: + - Lucasfilm + - Lucasfilm Animation + Mandarin: + - Mandarin Films + - Mandarin Television + Marvel Studios: + - Marvel Enterprises + - Marvel Entertainment + - Marvel + Metro-Goldwyn-Mayer: + - MGM + New Line Cinema: + - New Line + Nexus: + - Nexus Factory + P.A. Works: + - P.A.WORKS + Paramount Pictures: + - Paramount + Pierrot: + - Pierrot Plus + - Studio Pierrot + Pixar: + - Pixar Animation Studios + Plan B Entertainment: + - PlanB Entertainment + Platinum Vision: + - PlatinumVision + Production +h.: + - Production +h + Rankin/Bass Productions: + - Videocraft International + RatPac Entertainment: + - Dune Entertainment + Regency Pictures: + - Regency Enterprises + - New Regency Pictures + - Monarchy Enterprises S.a.r.l. + Science SARU: + - Science Saru + Seven Arcs: + - Seven + - Seven Arcs Pictures + Shogakukan: + - Shogakukan Production + Signal.MD: + - Signal MD + Silver: + - Studio Silver + SILVER LINK.: + - Silver Link + Sky studios: + - British Sky Broadcasting + - British Sky Broadcasting(BSkyB) + Skydance: + - Skydance Media + Sony Pictures: + - Sony + - Sony Pictures Animation + - Sony Pictures Television Studios + Studio Blanc.: + - Studio Blanc + Studio Deen: + - Studio DEEN + STX Entertainment: + - STX Films + The Kennedy-Marshall Company: + - The Kennedy/Marshall Company + The Mark Gordon Company: + - Tiger Aspect Productions + TOHO: + - Toho Pictures + - Toho Pictures, Inc. + TMS Entertainment: + - Tokyo Movie Shinsha + Toei Animation: + - Toei + TriStar Pictures: + - TriStar + Universal Pictures: + - Universal + - Universal Animation Studios + Walt Disney Pictures: + - Disney + Warner Animation Group: + - Warner Bros. Cartoon Studios + - Warner Animation + Warner Bros. Pictures: + - Warner + - Warner Animation Group + Yokohama Animation Lab: + - Yokohama Animation Laboratory + ``` \ No newline at end of file diff --git a/docs/defaults/both/subtitle_language.md b/docs/defaults/both/subtitle_language.md index b2bc93ab..5e1d81ca 100644 --- a/docs/defaults/both/subtitle_language.md +++ b/docs/defaults/both/subtitle_language.md @@ -30,249 +30,270 @@ libraries: - pmm: subtitle_language ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -| Variable | Description & Values | -|:------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | -| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `include` | **Description:** Overrides the [default include list](#default-include)<br>**Values:** List of [ISO 639-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)<br>**Values:** List of [ISO 639-2 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) | -| `exclude` | **Description:** Exclude these Audio Languages from creating a Dynamic Collection.<br>**Values:** List of [ISO 639-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)<br>**Values:** List of [ISO 639-2 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) | -| `append_include` | **Description:** Appends to the [default include list](#default-include)<br>**Values:** List of [ISO 639-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)<br>**Values:** List of [ISO 639-2 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) | -| `remove_include` | **Description:** Removes from the [default include list](#default-include)<br>**Values:** List of [ISO 639-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)<br>**Values:** List of [ISO 639-2 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) | -| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `<<key_name>> Subtitles`<br>**Values:** Any string with `<<key_name>>` in it. | -| `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s with <<key_name>> Subtitles.`<br>**Values:** Any string. | +??? info "Click to expand" -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. + === "File-Specific Template Variables" -{% - include-markdown "../collection_variables.md" -%} + The below template variables are available specifically for this PMM Defaults file. -### Example Template Variable Amendments + Be sure to also check out the "Shared Template Variables" tab for additional variables. -The below is an example config.yml extract with some Template Variables added in to change how the file works. + This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. -???+ tip + | Variable | Description & Values | + |:------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | + | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | + | `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `include` | **Description:** Overrides the [default include list](#default-include)<br>**Values:** List of [ISO 639-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)<br>**Values:** List of [ISO 639-2 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) | + | `exclude` | **Description:** Exclude these Audio Languages from creating a Dynamic Collection.<br>**Values:** List of [ISO 639-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)<br>**Values:** List of [ISO 639-2 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) | + | `append_include` | **Description:** Appends to the [default include list](#default-include)<br>**Values:** List of [ISO 639-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)<br>**Values:** List of [ISO 639-2 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) | + | `remove_include` | **Description:** Removes from the [default include list](#default-include)<br>**Values:** List of [ISO 639-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)<br>**Values:** List of [ISO 639-2 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) | + | `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `<<key_name>> Subtitles`<br>**Values:** Any string with `<<key_name>>` in it. | + | `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s with <<key_name>> Subtitles.`<br>**Values:** Any string. | - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. -```yaml -libraries: - Movies: - collection_files: - - pmm: subtitle_language - template_variables: - use_other: false #(1)! - use_separator: false #(2)! - exclude: - - fr #(3)! - sort_by: title.asc -``` + === "Shared Template Variables" -1. Do not create an "Other Audio" collection -2. Do not create an "Audio Language Collections" separator -3. Exclude "French" from having an Audio Collection + {% + include-markdown "../collection_variables.md" + %} -## Default `include` + ### Example Template Variable Amendments -```yaml -include: - - ab # Abkhazian - - aa # Afar - - af # Afrikaans - - ak # Akan - - sq # Albanian - - am # Amharic - - ar # Arabic - - an # Aragonese - - hy # Armenian - - as # Assamese - - av # Avaric - - ae # Avestan - - ay # Aymara - - az # Azerbaijani - - bm # Bambara - - ba # Bashkir - - eu # Basque - - be # Belarusian - - bn # Bengali - - bi # Bislama - - bs # Bosnian - - br # Breton - - bg # Bulgarian - - my # Burmese - - ca # Catalan, Valencian - - km # Central Khmer - - ch # Chamorro - - ce # Chechen - - ny # Chichewa, Chewa, Nyanja - - zh # Chinese - - cu # Church Slavic, Old Slavonic, Church Slavonic, Old Bulgarian, Old Church Slavonic - - cv # Chuvash - - kw # Cornish - - co # Corsican - - cr # Cree - - hr # Croatian - - cs # Czech - - da # Danish - - dv # Divehi, Dhivehi, Maldivian - - nl # Dutch, Flemish - - dz # Dzongkha - - en # English - - eo # Esperanto - - et # Estonian - - ee # Ewe - - fo # Faroese - - fj # Fijian - - fil # Filipino - - fi # Finnish - - fr # French - - ff # Fulah - - gd # Gaelic, Scottish Gaelic - - gl # Galician - - lg # Ganda - - ka # Georgian - - de # German - - el # Greek, Modern (1453–) - - gn # Guarani - - gu # Gujarati - - ht # Haitian, Haitian Creole - - ha # Hausa - - he # Hebrew - - hz # Herero - - hi # Hindi - - ho # Hiri Motu - - hu # Hungarian - - is # Icelandic - - io # Ido - - ig # Igbo - - id # Indonesian - - ia # Interlingua (International Auxiliary Language Association) - - ie # Interlingue, Occidental - - iu # Inuktitut - - ik # Inupiaq - - ga # Irish - - it # Italian - - ja # Japanese - - jv # Javanese - - kl # Kalaallisut, Greenlandic - - kn # Kannada - - kr # Kanuri - - ks # Kashmiri - - kk # Kazakh - - ki # Kikuyu, Gikuyu - - rw # Kinyarwanda - - ky # Kirghiz, Kyrgyz - - kv # Komi - - kg # Kongo - - ko # Korean - - kj # Kuanyama, Kwanyama - - ku # Kurdish - - lo # Lao - - la # Latin - - lv # Latvian - - li # Limburgan, Limburger, Limburgish - - ln # Lingala - - lt # Lithuanian - - lu # Luba-Katanga - - lb # Luxembourgish, Letzeburgesch - - mk # Macedonian - - mg # Malagasy - - ms # Malay - - ml # Malayalam - - mt # Maltese - - gv # Manx - - mi # Maori - - mr # Marathi - - mh # Marshallese - - myn # Mayan - - mn # Mongolian - - na # Nauru - - nv # Navajo, Navaho - - ng # Ndonga - - ne # Nepali - - nd # North Ndebele - - se # Northern Sami - - no # Norwegian - - nb # Norwegian Bokmål - - nn # Norwegian Nynorsk - - oc # Occitan - - oj # Ojibwa - - or # Oriya - - om # Oromo - - os # Ossetian, Ossetic - - pi # Pali - - ps # Pashto, Pushto - - fa # Persian - - pl # Polish - - pt # Portuguese - - pa # Punjabi, Panjabi - - qu # Quechua - - ro # Romanian, Moldavian, Moldovan - - rm # Romansh - - rom # Romany - - rn # Rundi - - ru # Russian - - sm # Samoan - - sg # Sango - - sa # Sanskrit - - sc # Sardinian - - sr # Serbian - - sn # Shona - - ii # Sichuan Yi, Nuosu - - sd # Sindhi - - si # Sinhala, Sinhalese - - sk # Slovak - - sl # Slovenian - - so # Somali - - nr # South Ndebele - - st # Southern Sotho - - es # Spanish, Castilian - - su # Sundanese - - sw # Swahili - - ss # Swati - - sv # Swedish - - tl # Tagalog - - ty # Tahitian - - tai # Tai - - tg # Tajik - - ta # Tamil - - tt # Tatar - - te # Telugu - - th # Thai - - bo # Tibetan - - ti # Tigrinya - - to # Tonga (Tonga Islands) - - ts # Tsonga - - tn # Tswana - - tr # Turkish - - tk # Turkmen - - tw # Twi - - ug # Uighur, Uyghur - - uk # Ukrainian - - ur # Urdu - - uz # Uzbek - - ve # Venda - - vi # Vietnamese - - vo # Volapük - - wa # Walloon - - cy # Welsh - - fy # Western Frisian - - wo # Wolof - - xh # Xhosa - - yi # Yiddish - - yo # Yoruba - - za # Zhuang, Chuang - - zu # Zulu -``` \ No newline at end of file + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ???+ tip + + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. + + + ```yaml + libraries: + Movies: + collection_files: + - pmm: subtitle_language + template_variables: + use_other: false #(1)! + use_separator: false #(2)! + exclude: + - fr #(3)! + sort_by: title.asc + ``` + + 1. Do not create an "Other Audio" collection + 2. Do not create an "Audio Language Collections" separator + 3. Exclude "French" from having an Audio Collection + +## Default values + +??? tip + + These are lists provided for reference to show what values will be in use if you do no customization. **These do not show how to change a name or a list.** + + If you want to customize these values, use the methods described above. + + **Default `include`**: + + ```yaml + include: + - ab # Abkhazian + - aa # Afar + - af # Afrikaans + - ak # Akan + - sq # Albanian + - am # Amharic + - ar # Arabic + - an # Aragonese + - hy # Armenian + - as # Assamese + - av # Avaric + - ae # Avestan + - ay # Aymara + - az # Azerbaijani + - bm # Bambara + - ba # Bashkir + - eu # Basque + - be # Belarusian + - bn # Bengali + - bi # Bislama + - bs # Bosnian + - br # Breton + - bg # Bulgarian + - my # Burmese + - ca # Catalan, Valencian + - km # Central Khmer + - ch # Chamorro + - ce # Chechen + - ny # Chichewa, Chewa, Nyanja + - zh # Chinese + - cu # Church Slavic, Old Slavonic, Church Slavonic, Old Bulgarian, Old Church Slavonic + - cv # Chuvash + - kw # Cornish + - co # Corsican + - cr # Cree + - hr # Croatian + - cs # Czech + - da # Danish + - dv # Divehi, Dhivehi, Maldivian + - nl # Dutch, Flemish + - dz # Dzongkha + - en # English + - eo # Esperanto + - et # Estonian + - ee # Ewe + - fo # Faroese + - fj # Fijian + - fil # Filipino + - fi # Finnish + - fr # French + - ff # Fulah + - gd # Gaelic, Scottish Gaelic + - gl # Galician + - lg # Ganda + - ka # Georgian + - de # German + - el # Greek, Modern (1453–) + - gn # Guarani + - gu # Gujarati + - ht # Haitian, Haitian Creole + - ha # Hausa + - he # Hebrew + - hz # Herero + - hi # Hindi + - ho # Hiri Motu + - hu # Hungarian + - is # Icelandic + - io # Ido + - ig # Igbo + - id # Indonesian + - ia # Interlingua (International Auxiliary Language Association) + - ie # Interlingue, Occidental + - iu # Inuktitut + - ik # Inupiaq + - ga # Irish + - it # Italian + - ja # Japanese + - jv # Javanese + - kl # Kalaallisut, Greenlandic + - kn # Kannada + - kr # Kanuri + - ks # Kashmiri + - kk # Kazakh + - ki # Kikuyu, Gikuyu + - rw # Kinyarwanda + - ky # Kirghiz, Kyrgyz + - kv # Komi + - kg # Kongo + - ko # Korean + - kj # Kuanyama, Kwanyama + - ku # Kurdish + - lo # Lao + - la # Latin + - lv # Latvian + - li # Limburgan, Limburger, Limburgish + - ln # Lingala + - lt # Lithuanian + - lu # Luba-Katanga + - lb # Luxembourgish, Letzeburgesch + - mk # Macedonian + - mg # Malagasy + - ms # Malay + - ml # Malayalam + - mt # Maltese + - gv # Manx + - mi # Maori + - mr # Marathi + - mh # Marshallese + - myn # Mayan + - mn # Mongolian + - na # Nauru + - nv # Navajo, Navaho + - ng # Ndonga + - ne # Nepali + - nd # North Ndebele + - se # Northern Sami + - no # Norwegian + - nb # Norwegian Bokmål + - nn # Norwegian Nynorsk + - oc # Occitan + - oj # Ojibwa + - or # Oriya + - om # Oromo + - os # Ossetian, Ossetic + - pi # Pali + - ps # Pashto, Pushto + - fa # Persian + - pl # Polish + - pt # Portuguese + - pa # Punjabi, Panjabi + - qu # Quechua + - ro # Romanian, Moldavian, Moldovan + - rm # Romansh + - rom # Romany + - rn # Rundi + - ru # Russian + - sm # Samoan + - sg # Sango + - sa # Sanskrit + - sc # Sardinian + - sr # Serbian + - sn # Shona + - ii # Sichuan Yi, Nuosu + - sd # Sindhi + - si # Sinhala, Sinhalese + - sk # Slovak + - sl # Slovenian + - so # Somali + - nr # South Ndebele + - st # Southern Sotho + - es # Spanish, Castilian + - su # Sundanese + - sw # Swahili + - ss # Swati + - sv # Swedish + - tl # Tagalog + - ty # Tahitian + - tai # Tai + - tg # Tajik + - ta # Tamil + - tt # Tatar + - te # Telugu + - th # Thai + - bo # Tibetan + - ti # Tigrinya + - to # Tonga (Tonga Islands) + - ts # Tsonga + - tn # Tswana + - tr # Turkish + - tk # Turkmen + - tw # Twi + - ug # Uighur, Uyghur + - uk # Ukrainian + - ur # Urdu + - uz # Uzbek + - ve # Venda + - vi # Vietnamese + - vo # Volapük + - wa # Walloon + - cy # Welsh + - fy # Western Frisian + - wo # Wolof + - xh # Xhosa + - yi # Yiddish + - yo # Yoruba + - za # Zhuang, Chuang + - zu # Zulu + ``` \ No newline at end of file diff --git a/docs/defaults/both/universe.md b/docs/defaults/both/universe.md index 10cdb68d..c563aab1 100644 --- a/docs/defaults/both/universe.md +++ b/docs/defaults/both/universe.md @@ -43,108 +43,125 @@ libraries: - pmm: universe ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -| Variable | Description & Values | -|:---------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `minimum_items` | **Description:** Controls the minimum items that the collection must have to be created.<br>**Default:** `2`<br>**Values:** Any number | -| `name_mapping_<<key>>`<sup>1</sup> | **Description:** Sets the name mapping value for using assets of the specified key's collection. <br>**Values:** Any String | -| `imdb_list_<<key>>`<sup>1</sup> | **Description:** Adds the Movies in the IMDb List to the specified key's collection.<br>**Values:** List of IMDb List URLs | | | -| `mdblist_list_<<key>>`<sup>1</sup> | **Description:** Adds the Movies in the MDBList List to the specified key's collection. Overrides the [default mdblist_list](#default-mdblist_list) for that collection if used.<br>**Values:** List of MDBList List URLs | | | | -| `trakt_list_<<key>>`<sup>1</sup> | **Description:** Adds the Movies in the Trakt List to the specified key's collection.<br>**Values:** List of Trakt List URLs | | | | -| `data` | **Description:** Overrides the [default data dictionary](#default-data). Defines the data that the custom dynamic collection processes.<br>**Values:** Dictionary List of keys/names | -| `append_data` | **Description:** Appends to the [default data dictionary](#default-data).<br>**Values:** Dictionary List of keys/names | -| `exclude` | **Description:** Exclude these Universes from creating a Dynamic Collection.<br>**Values:** List of Universes | +??? info "Click to expand" -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. + === "File-Specific Template Variables" -{% - include-markdown "../collection_variables.md" -%} + The below template variables are available specifically for this PMM Defaults file. -### Example Template Variable Amendments + Be sure to also check out the "Shared Template Variables" tab for additional variables. -The below is an example config.yml extract with some Template Variables added in to change how the file works. + This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. -???+ tip + | Variable | Description & Values | + |:---------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | + | `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | + | `minimum_items` | **Description:** Controls the minimum items that the collection must have to be created.<br>**Default:** `2`<br>**Values:** Any number | + | `name_mapping_<<key>>`<sup>1</sup> | **Description:** Sets the name mapping value for using assets of the specified key's collection. <br>**Values:** Any String | + | `imdb_list_<<key>>`<sup>1</sup> | **Description:** Adds the Movies in the IMDb List to the specified key's collection.<br>**Values:** List of IMDb List URLs | | | + | `mdblist_list_<<key>>`<sup>1</sup> | **Description:** Adds the Movies in the MDBList List to the specified key's collection. Overrides the [default mdblist_list](#default-mdblist_list) for that collection if used.<br>**Values:** List of MDBList List URLs | | | | + | `trakt_list_<<key>>`<sup>1</sup> | **Description:** Adds the Movies in the Trakt List to the specified key's collection.<br>**Values:** List of Trakt List URLs | | | | + | `data` | **Description:** Overrides the [default data dictionary](#default-data). Defines the data that the custom dynamic collection processes.<br>**Values:** Dictionary List of keys/names | + | `append_data` | **Description:** Appends to the [default data dictionary](#default-data).<br>**Values:** Dictionary List of keys/names | + | `exclude` | **Description:** Exclude these Universes from creating a Dynamic Collection.<br>**Values:** List of Universes | - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. -```yaml -libraries: - Movies: - collection_files: - - pmm: universe - template_variables: - sep_style: salmon #(1)! - collection_order: release #(2)! - radarr_add_missing: true #(3)! - append_data: - monster: MonsterVerse #(4)! - trakt_list_monster: https://trakt.tv/users/rzepkowski/lists/monsterverse-movies #(5)! -``` + === "Shared Template Variables" -1. Use the salmon [Separator Style](../separators.md#separator-styles) -2. Sort the Universe collections by release date -3. Send missing items in your library from the source lists to Radarr -4. Create a new universe called "MonsterVerse", the key for this universe will be "monster" -5. Add a trakt list to the "monster" key + {% + include-markdown "../collection_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ???+ tip + + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. + + + ```yaml + libraries: + Movies: + collection_files: + - pmm: universe + template_variables: + sep_style: salmon #(1)! + collection_order: release #(2)! + radarr_add_missing: true #(3)! + append_data: + monster: MonsterVerse #(4)! + trakt_list_monster: https://trakt.tv/users/rzepkowski/lists/monsterverse-movies #(5)! + ``` + + 1. Use the salmon [Separator Style](../separators.md#separator-styles) + 2. Sort the Universe collections by release date + 3. Send missing items in your library from the source lists to Radarr + 4. Create a new universe called "MonsterVerse", the key for this universe will be "monster" + 5. Add a trakt list to the "monster" key ## Default values -These are lists provided for reference to show what values will be in use if you do no customization. If you want to customize these values, use the methods described above. These do not show how to change a name or a list. +??? tip -### Default `data` + These are lists provided for reference to show what values will be in use if you do no customization. **These do not show how to change a name or a list.** -```yaml -data: - avp: Alien / Predator - arrow: Arrowverse - dca: DC Animated Universe - dcu: DC Extended Universe - fast: Fast & Furious - marvel: In Association With Marvel - mcu: Marvel Cinematic Universe - middle: Middle Earth - mummy: The Mummy Universe - rocky: Rocky / Creed - trek: Star Trek - star: Star Wars Universe - askew: View Askewniverse - wizard: Wizarding World - xmen: X-Men Universe -``` + If you want to customize these values, use the methods described above. -### Default `mdblist_list` + **Default `data`**: -```yaml -trakt_list: - mcu: https://trakt.tv/users/donxy/lists/marvel-cinematic-universe - middle: https://trakt.tv/users/oya-kesh/lists/middle-earth - trek: https://trakt.tv/users/wdvhucb/lists/star-trek -mdblist_list: - avp: https://mdblist.com/lists/plexmetamanager/external/9243 - arrow: https://mdblist.com/lists/plexmetamanager/external/15113 - dca: https://mdblist.com/lists/plexmetamanager/external/15405 - dcu: https://mdblist.com/lists/plexmetamanager/external/15107 - fast: https://mdblist.com/lists/plexmetamanager/external/9246 - marvel: https://mdblist.com/lists/plexmetamanager/external/15110 - mummy: https://mdblist.com/lists/plexmetamanager/external/9249 - rocky: https://mdblist.com/lists/plexmetamanager/external/9248 - star: https://mdblist.com/lists/plexmetamanager/external/15105 - askew: https://mdblist.com/lists/plexmetamanager/external/15362 + ```yaml + data: + avp: Alien / Predator + arrow: Arrowverse + dca: DC Animated Universe + dcu: DC Extended Universe + fast: Fast & Furious + marvel: In Association With Marvel + mcu: Marvel Cinematic Universe + middle: Middle Earth + mummy: The Mummy Universe + rocky: Rocky / Creed + trek: Star Trek + star: Star Wars Universe + askew: View Askewniverse + wizard: Wizarding World + xmen: X-Men Universe + ``` + + **Default `mdblist_list`**: + + ```yaml + trakt_list: + mcu: https://trakt.tv/users/donxy/lists/marvel-cinematic-universe + middle: https://trakt.tv/users/oya-kesh/lists/middle-earth + trek: https://trakt.tv/users/wdvhucb/lists/star-trek + mdblist_list: + avp: https://mdblist.com/lists/plexmetamanager/external/9243 + arrow: https://mdblist.com/lists/plexmetamanager/external/15113 + dca: https://mdblist.com/lists/plexmetamanager/external/15405 + dcu: https://mdblist.com/lists/plexmetamanager/external/15107 + fast: https://mdblist.com/lists/plexmetamanager/external/9246 + marvel: https://mdblist.com/lists/plexmetamanager/external/15110 + mummy: https://mdblist.com/lists/plexmetamanager/external/9249 + rocky: https://mdblist.com/lists/plexmetamanager/external/9248 + star: https://mdblist.com/lists/plexmetamanager/external/15105 + askew: https://mdblist.com/lists/plexmetamanager/external/15362 wizard: https://mdblist.com/lists/plexmetamanager/external/23683 - xmen: https://mdblist.com/lists/plexmetamanager/external/9244 -``` + xmen: https://mdblist.com/lists/plexmetamanager/external/9244 + ``` diff --git a/docs/defaults/both/year.md b/docs/defaults/both/year.md index 5fe0f09d..05ab94d9 100644 --- a/docs/defaults/both/year.md +++ b/docs/defaults/both/year.md @@ -29,38 +29,67 @@ libraries: - pmm: year ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. + +??? info "Click to expand" + + === "File-Specific Template Variables" + + The below template variables are available specifically for this PMM Defaults file. + + Be sure to also check out the "Shared Template Variables" tab for additional variables. + This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. | Variable | Description & Values | |:------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Default:** `10`<br>**Values:** Number Greater than 0 | | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | +| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | +| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | | `data` | **Description:** Replaces the `data` dynamic collection value.<br><table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>starting</code></td><td>Controls the starting year for collections<br><strong>Default:</strong> current_year-10<br><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>ending</code></td><td>Controls the ending year for collections<br><strong>Default:</strong> current_year<br><strong>Values:</strong> Number greater than 1</td></tr><tr><td><code>increment</code></td><td>Controls the increment (i.e. every 5th year)<br><strong>Default:</strong> 1<br><strong>Values:</strong> Number greater than 0</td><td></td></tr></table><ul><li><strong><code>starting</code> and <code>ending</code> can also have the value <code>current_year</code></strong></li><li><strong>You can also use a value relative to the <code>current_year</code> by doing <code>current_year-5</code></strong></li></ul> | | `exclude` | **Description:** Exclude these Years from creating a Dynamic Collection.<br>**Values:** List of Years | 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. -{% - include-markdown "../collection_variables.md" -%} + === "Shared Template Variables" -### Example Template Variable Amendments + {% + include-markdown "../collection_variables.md" + %} -The below is an example config.yml extract with some Template Variables added in to change how the file works. + ### Example Template Variable Amendments -???+ tip + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ???+ tip + + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. + + {% + include-markdown "../collection_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ???+ tip + + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. ```yaml libraries: diff --git a/docs/defaults/chart/anilist.md b/docs/defaults/chart/anilist.md index 49d7ba60..1198d809 100644 --- a/docs/defaults/chart/anilist.md +++ b/docs/defaults/chart/anilist.md @@ -31,54 +31,67 @@ libraries: - pmm: anilist ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -| Variable | Description & Values | -|:---------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `limit` | **Description:** Changes the number of items in a collection for all collections in a Defaults file.<br>**Default:** `100`<br>**Values:** Number greater than 0 | -| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the number of items in a collection of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number greater than 0 | -| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. +??? info "Click to expand" -{% - include-markdown "../collection_variables.md" -%} -### Example Template Variable Amendments + === "File-Specific Template Variables" -The below is an example config.yml extract with some Template Variables added in to change how the file works. + The below template variables are available specifically for this PMM Defaults file. -???+ tip + Be sure to also check out the "Shared Template Variables" tab for additional variables. - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. + | Variable | Description & Values | + |:---------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `limit` | **Description:** Changes the number of items in a collection for all collections in a Defaults file.<br>**Default:** `100`<br>**Values:** Number greater than 0 | + | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the number of items in a collection of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number greater than 0 | + | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | + | `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -```yaml -libraries: - Movies: - collection_files: - - pmm: anilist - template_variables: - use_season: false #(1)! - order_top: 01 #(2)! - summary_top: "Top 10 Rated movies on AniList" #(3)! - limit_top: 10 #(4)! - visible_library_popular: true #(5)! - visible_home_popular: true #(6)! - visible_shared_popular: true #(7)! -``` -1. Do not create the "AniList Season" collection -2. Change the order of "AniList Top Rated" to appear before other collections created by this file -3. Amend the summary of the "AniList Top Rated" collection -4. Only allow a maximum of 10 items to appear in the "AniList Top Rated" collection -5. Pin the "AniList Popular" collection to the Recommended tab of the library -6. Pin the "AniList Popular" collection to the home screen of the server owner -7. Pin the "AniList Popular" collection to the home screen of other users of the server \ No newline at end of file + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. + + === "Shared Template Variables" + + {% + include-markdown "../collection_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ???+ tip + + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. + + ```yaml + libraries: + Movies: + collection_files: + - pmm: anilist + template_variables: + use_season: false #(1)! + order_top: 01 #(2)! + summary_top: "Top 10 Rated movies on AniList" #(3)! + limit_top: 10 #(4)! + visible_library_popular: true #(5)! + visible_home_popular: true #(6)! + visible_shared_popular: true #(7)! + ``` + 1. Do not create the "AniList Season" collection + 2. Change the order of "AniList Top Rated" to appear before other collections created by this file + 3. Amend the summary of the "AniList Top Rated" collection + 4. Only allow a maximum of 10 items to appear in the "AniList Top Rated" collection + 5. Pin the "AniList Popular" collection to the Recommended tab of the library + 6. Pin the "AniList Popular" collection to the home screen of the server owner + 7. Pin the "AniList Popular" collection to the home screen of other users of the server \ No newline at end of file diff --git a/docs/defaults/chart/basic.md b/docs/defaults/chart/basic.md index 6e3489aa..8b8adbcb 100644 --- a/docs/defaults/chart/basic.md +++ b/docs/defaults/chart/basic.md @@ -29,48 +29,61 @@ libraries: - pmm: basic ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -| Variable | Description & Values | -|:----------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `limit` | **Description:** Changes the Smart Filter Limit for all collections in a Defaults file.<br>**Values:** Number greater than 0 | -| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `in_the_last_<<key>>`<sup>1</sup> | **Description:** Changes how far back the Smart Filter looks.<table class="clearTable"><tr><td>**Default:**</td></tr><tr><td>`released`</td><td>`90`</td></tr><tr><td>`episodes`</td><td>`7`</td></tr></table>**Values:** Number greater than 0 | +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. +??? info "Click to expand" -{% - include-markdown "../collection_variables.md" -%} -### Example Template Variable Amendments + === "File-Specific Template Variables" -The below is an example config.yml extract with some Template Variables added in to change how the file works. + The below template variables are available specifically for this PMM Defaults file. -???+ tip + Be sure to also check out the "Shared Template Variables" tab for additional variables. - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. + | Variable | Description & Values | + |:----------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `limit` | **Description:** Changes the Smart Filter Limit for all collections in a Defaults file.<br>**Values:** Number greater than 0 | + | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number greater than 0 | + | `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `in_the_last_<<key>>`<sup>1</sup> | **Description:** Changes how far back the Smart Filter looks.<table class="clearTable"><tr><td>**Default:**</td></tr><tr><td>`released`</td><td>`90`</td></tr><tr><td>`episodes`</td><td>`7`</td></tr></table>**Values:** Number greater than 0 | -```yaml -libraries: - Movies: - collection_files: - - pmm: basic - template_variables: - in_the_last_episodes: 14 #(1)! - visible_library_released: true #(2)! - visible_home_released: true #(3)! - visible_shared_released: true #(4)! -``` + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. -1. Change the Smart Filter to look at episodes in the last 14 days. -2. Pin the "Newly Released" collection to the Recommended tab of the library -3. Pin the "Newly Released" collection to the home screen of the server owner -4. Pin the "Newly Released" collection to the home screen of other users of the server \ No newline at end of file + === "Shared Template Variables" + + {% + include-markdown "../collection_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ???+ tip + + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. + + ```yaml + libraries: + Movies: + collection_files: + - pmm: basic + template_variables: + in_the_last_episodes: 14 #(1)! + visible_library_released: true #(2)! + visible_home_released: true #(3)! + visible_shared_released: true #(4)! + ``` + + 1. Change the Smart Filter to look at episodes in the last 14 days. + 2. Pin the "Newly Released" collection to the Recommended tab of the library + 3. Pin the "Newly Released" collection to the home screen of the server owner + 4. Pin the "Newly Released" collection to the home screen of other users of the server \ No newline at end of file diff --git a/docs/defaults/chart/flixpatrol.md b/docs/defaults/chart/flixpatrol.md index fbe90b04..f3b1f7d3 100644 --- a/docs/defaults/chart/flixpatrol.md +++ b/docs/defaults/chart/flixpatrol.md @@ -34,47 +34,64 @@ libraries: - pmm: flixpatrol ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -| Variable | Description & Values | -|:---------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Default:** `10`<br>**Values:** Any Number 1-10 | -| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Any Number 1-10 | -| `in_the_last` | **Description:** Changes How many days of daily Top 10 Lists to look at.<br>**Default:** `1`<br>**Values:** Any Number 1-30 | -| `in_the_last_<<key>>`<sup>1</sup> | **Description:** Changes How many days of daily Top 10 Lists to look at.<br>**Default:** `in_the_last`<br>**Values:** Any Number 1-30 | -| `location` | **Description:** Changes the Builder Location for all collections in a Defaults file.<br>**Default:** `world`<br>**Values:** [`location` Attribute Options](../../builders/flixpatrol.md#top-platform-attributes) | -| `location_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Location of the specified key's collection.<br>**Default:** `location`<br>**Values:** [`location` Attribute Options](../../builders/flixpatrol.md#top-platform-attributes) | -| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. +??? info "Click to expand" -{% - include-markdown "../collection_variables.md" -%} -### Example Template Variable Amendments + === "File-Specific Template Variables" -The below is an example config.yml extract with some Template Variables added in to change how the file works. + The below template variables are available specifically for this PMM Defaults file. -???+ tip + Be sure to also check out the "Shared Template Variables" tab for additional variables. - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. + ???+ warning -```yaml -libraries: - Movies: - collection_files: - - pmm: flixpatrol - template_variables: - location: united_states #(1)! -``` + Due to Flixpatrol data limitations, Apple TV only works with the `world` location. If you set a country-specific location, Apple TV will fall-back to using the `world` location. -1. Change the location of the FlixPatrol collections to the United States of America + | Variable | Description & Values | + |:---------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Default:** `10`<br>**Values:** Any Number 1-10 | + | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Any Number 1-10 | + | `in_the_last` | **Description:** Changes How many days of daily Top 10 Lists to look at.<br>**Default:** `1`<br>**Values:** Any Number 1-30 | + | `in_the_last_<<key>>`<sup>1</sup> | **Description:** Changes How many days of daily Top 10 Lists to look at.<br>**Default:** `in_the_last`<br>**Values:** Any Number 1-30 | + | `location` | **Description:** Changes the Builder Location for all collections in a Defaults file.<br>**Default:** `world`<br>**Values:** [`location` Attribute Options](../../files/builders/flixpatrol.md#top-platform-attributes) | + | `location_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Location of the specified key's collection.<br>**Default:** `location`<br>**Values:** [`location` Attribute Options](../../files/builders/flixpatrol.md#top-platform-attributes) | + | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | + | `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | + + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. + + === "Shared Template Variables" + + {% + include-markdown "../collection_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ???+ tip + + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. + + ```yaml + libraries: + Movies: + collection_files: + - pmm: flixpatrol + template_variables: + location: united_states #(1)! + ``` + + 1. Change the location of the FlixPatrol collections to the United States of America diff --git a/docs/defaults/chart/imdb.md b/docs/defaults/chart/imdb.md index ddb92ea0..9296f371 100644 --- a/docs/defaults/chart/imdb.md +++ b/docs/defaults/chart/imdb.md @@ -32,46 +32,59 @@ libraries: - pmm: imdb ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -| Variable | Description & Values | -|:---------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. +??? info "Click to expand" -{% - include-markdown "../collection_variables.md" -%} -### Example Template Variable Amendments + === "File-Specific Template Variables" -The below is an example config.yml extract with some Template Variables added in to change how the file works. + The below template variables are available specifically for this PMM Defaults file. -???+ tip + Be sure to also check out the "Shared Template Variables" tab for additional variables. - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. + | Variable | Description & Values | + |:---------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | + | `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -```yaml -libraries: - Movies: - collection_files: - - pmm: imdb - template_variables: - use_lowest: false #(1)! - visible_library_top: true #(2)! - visible_home_top: true #(3)! - visible_shared_top: true #(4)! -``` -1. Do not create the "IMDb Lowest Rated" collection -2. Pin the "AniList Popular" collection to the Recommended tab of the library -3. Pin the "AniList Popular" collection to the home screen of the server owner -4. Pin the "AniList Popular" collection to the home screen of other users of the server \ No newline at end of file + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. + + === "Shared Template Variables" + + {% + include-markdown "../collection_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ???+ tip + + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. + + ```yaml + libraries: + Movies: + collection_files: + - pmm: imdb + template_variables: + use_lowest: false #(1)! + visible_library_top: true #(2)! + visible_home_top: true #(3)! + visible_shared_top: true #(4)! + ``` + 1. Do not create the "IMDb Lowest Rated" collection + 2. Pin the "AniList Popular" collection to the Recommended tab of the library + 3. Pin the "AniList Popular" collection to the home screen of the server owner + 4. Pin the "AniList Popular" collection to the home screen of other users of the server \ No newline at end of file diff --git a/docs/defaults/chart/myanimelist.md b/docs/defaults/chart/myanimelist.md index b79aed91..88c3ed60 100644 --- a/docs/defaults/chart/myanimelist.md +++ b/docs/defaults/chart/myanimelist.md @@ -42,8 +42,8 @@ Template Variables can be used to manipulate the file in various ways to slightl | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number greater than 0 | | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. diff --git a/docs/defaults/chart/other.md b/docs/defaults/chart/other.md index abc90343..63bad7f5 100644 --- a/docs/defaults/chart/other.md +++ b/docs/defaults/chart/other.md @@ -33,47 +33,60 @@ libraries: - pmm: other_chart ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -| Variable | Description & Values | -|:---------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `limit_anidb` | **Description:** Changes the Builder Limit of the AniDB Popular Collection.<br>**Default:** `30`<br>**Values:** Number greater than 0 | -| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. +??? info "Click to expand" -{% - include-markdown "../collection_variables.md" -%} -### Example Template Variable Amendments + === "File-Specific Template Variables" -The below is an example config.yml extract with some Template Variables added in to change how the file works. + The below template variables are available specifically for this PMM Defaults file. -???+ tip + Be sure to also check out the "Shared Template Variables" tab for additional variables. - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. + | Variable | Description & Values | + |:---------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `limit_anidb` | **Description:** Changes the Builder Limit of the AniDB Popular Collection.<br>**Default:** `30`<br>**Values:** Number greater than 0 | + | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | + | `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -```yaml -libraries: - Movies: - collection_files: - - pmm: other_chart - template_variables: - use_anidb: false #(1)! - visible_library_commonsense: true #(2)! - visible_home_commonsense: true #(3)! - visible_shared_commonsense: true #(4)! -``` -1. Do not create the "AniDB Popular" collection -2. Pin the "Common Sense Selection" collection to the Recommended tab of the library -3. Pin the "Common Sense Selection" collection to the home screen of the server owner -4. Pin the "Common Sense Selection" collection to the home screen of other users of the server \ No newline at end of file + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. + + === "Shared Template Variables" + + {% + include-markdown "../collection_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ???+ tip + + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. + + ```yaml + libraries: + Movies: + collection_files: + - pmm: other_chart + template_variables: + use_anidb: false #(1)! + visible_library_commonsense: true #(2)! + visible_home_commonsense: true #(3)! + visible_shared_commonsense: true #(4)! + ``` + 1. Do not create the "AniDB Popular" collection + 2. Pin the "Common Sense Selection" collection to the Recommended tab of the library + 3. Pin the "Common Sense Selection" collection to the home screen of the server owner + 4. Pin the "Common Sense Selection" collection to the home screen of other users of the server \ No newline at end of file diff --git a/docs/defaults/chart/tautulli.md b/docs/defaults/chart/tautulli.md index dffd9a91..5557eb7d 100644 --- a/docs/defaults/chart/tautulli.md +++ b/docs/defaults/chart/tautulli.md @@ -31,55 +31,68 @@ libraries: - pmm: tautulli ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -| Variable | Description & Values | -|:---------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `list_days` | **Description:** Changes the `list_days` attribute of the builder for all collections in a Defaults file.<br>**Values:** Number greater than 0 | -| `list_days_<<key>>`<sup>1</sup> | **Description:** Changes the `list_days` attribute of the builder of the specified key's collection.<br>**Values:** Number greater than 0 | -| `list_size` | **Description:** Changes the `list_size` attribute of the builder for all collections in a Defaults file.<br>**Values:** Number greater than 0 | -| `list_size_<<key>>`<sup>1</sup> | **Description:** Changes the `list_size` attribute of the builder of the specified key's collection.<br>**Values:** Number greater than 0 | -| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. +??? info "Click to expand" -{% - include-markdown "../collection_variables.md" -%} -### Example Template Variable Amendments + === "File-Specific Template Variables" -The below is an example config.yml extract with some Template Variables added in to change how the file works. + The below template variables are available specifically for this PMM Defaults file. -???+ tip + Be sure to also check out the "Shared Template Variables" tab for additional variables. - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. + | Variable | Description & Values | + |:---------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `list_days` | **Description:** Changes the `list_days` attribute of the builder for all collections in a Defaults file.<br>**Values:** Number greater than 0 | + | `list_days_<<key>>`<sup>1</sup> | **Description:** Changes the `list_days` attribute of the builder of the specified key's collection.<br>**Values:** Number greater than 0 | + | `list_size` | **Description:** Changes the `list_size` attribute of the builder for all collections in a Defaults file.<br>**Values:** Number greater than 0 | + | `list_size_<<key>>`<sup>1</sup> | **Description:** Changes the `list_size` attribute of the builder of the specified key's collection.<br>**Values:** Number greater than 0 | + | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | + | `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -```yaml -libraries: - Movies: - collection_files: - - pmm: tautulli - template_variables: - use_watched: false #(1)! - list_days_popular: 7 #(2)! - list_size_popular: 10 #(3)! - visible_library_popular: true #(4)! - visible_home_popular: true #(5)! - visible_shared_popular: true #(6)! -``` + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. -1. Do not create the "Plex Watched" collection -2. Change "Plex Popular" to look at items from the past 7 days -3. Change "Plex Popular" to have a maximum of 10 items -4. Pin the "Plex Popular" collection to the Recommended tab of the library -5. Pin the "Plex Popular" collection to the home screen of the server owner -6. Pin the "Plex Popular" collection to the home screen of other users of the server + === "Shared Template Variables" + + {% + include-markdown "../collection_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ???+ tip + + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. + + ```yaml + libraries: + Movies: + collection_files: + - pmm: tautulli + template_variables: + use_watched: false #(1)! + list_days_popular: 7 #(2)! + list_size_popular: 10 #(3)! + visible_library_popular: true #(4)! + visible_home_popular: true #(5)! + visible_shared_popular: true #(6)! + ``` + + 1. Do not create the "Plex Watched" collection + 2. Change "Plex Popular" to look at items from the past 7 days + 3. Change "Plex Popular" to have a maximum of 10 items + 4. Pin the "Plex Popular" collection to the Recommended tab of the library + 5. Pin the "Plex Popular" collection to the home screen of the server owner + 6. Pin the "Plex Popular" collection to the home screen of other users of the server diff --git a/docs/defaults/chart/tmdb.md b/docs/defaults/chart/tmdb.md index f23d268e..1a82b35b 100644 --- a/docs/defaults/chart/tmdb.md +++ b/docs/defaults/chart/tmdb.md @@ -34,51 +34,64 @@ libraries: - pmm: tmdb ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -| Variable | Description & Values | -|:---------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Default:** `100`<br>**Values:** Number greater than 0 | -| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number greater than 0 | -| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. +??? info "Click to expand" -{% - include-markdown "../collection_variables.md" -%} -### Example Template Variable Amendments + === "File-Specific Template Variables" -The below is an example config.yml extract with some Template Variables added in to change how the file works. + The below template variables are available specifically for this PMM Defaults file. -???+ tip + Be sure to also check out the "Shared Template Variables" tab for additional variables. - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. + | Variable | Description & Values | + |:---------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Default:** `100`<br>**Values:** Number greater than 0 | + | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number greater than 0 | + | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | + | `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -```yaml -libraries: - Movies: - collection_files: - - pmm: tmdb - template_variables: - use_trending: false #(1)! - limit_popular: 20 #(2)! - visible_library_popular: true #(3)! - visible_home_popular: true #(4)! - visible_shared_popular: true #(5)! -``` + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. -1. Do not create the "TMDb Trending" collection -2. Change "TMDb Popular" to have a maximum of 20 items -3. Pin the "TMDb Popular" collection to the Recommended tab of the library -4. Pin the "TMDb Popular" collection to the home screen of the server owner -5. Pin the "TMDb Popular" collection to the home screen of other users of the server \ No newline at end of file + === "Shared Template Variables" + + {% + include-markdown "../collection_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ???+ tip + + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. + + ```yaml + libraries: + Movies: + collection_files: + - pmm: tmdb + template_variables: + use_trending: false #(1)! + limit_popular: 20 #(2)! + visible_library_popular: true #(3)! + visible_home_popular: true #(4)! + visible_shared_popular: true #(5)! + ``` + + 1. Do not create the "TMDb Trending" collection + 2. Change "TMDb Popular" to have a maximum of 20 items + 3. Pin the "TMDb Popular" collection to the Recommended tab of the library + 4. Pin the "TMDb Popular" collection to the home screen of the server owner + 5. Pin the "TMDb Popular" collection to the home screen of other users of the server \ No newline at end of file diff --git a/docs/defaults/chart/trakt.md b/docs/defaults/chart/trakt.md index 1507f1db..600c0ec2 100644 --- a/docs/defaults/chart/trakt.md +++ b/docs/defaults/chart/trakt.md @@ -35,53 +35,66 @@ libraries: - pmm: trakt ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -| Variable | Description & Values | -|:---------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Default:** `100`<br>**Values:** Number Greater than 0 | -| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. +??? info "Click to expand" -{% - include-markdown "../collection_variables.md" -%} -### Example Template Variable Amendments + === "File-Specific Template Variables" -The below is an example config.yml extract with some Template Variables added in to change how the file works. + The below template variables are available specifically for this PMM Defaults file. -???+ tip + Be sure to also check out the "Shared Template Variables" tab for additional variables. - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. + | Variable | Description & Values | + |:---------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Default:** `100`<br>**Values:** Number Greater than 0 | + | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | + | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | + | `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -```yaml -libraries: - Movies: - collection_files: - - pmm: trakt - template_variables: - use_collected: false #(1)! - use_recommended: false #(2)! - limit: 20 #(3)! - visible_library_popular: true #(4)! - visible_home_popular: true #(5)! - visible_shared_popular: true #(6)! -``` + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. -1. Do not create the "Trakt Collected" collection -2. Do not create the "Trakt Recommended" collection -3. Change all collections built by this file to have a maximum of 20 items -4. Pin the "Trakt Popular" collection to the Recommended tab of the library -5. Pin the "Trakt Popular" collection to the home screen of the server owner -6. Pin the "Trakt Popular" collection to the home screen of other users of the server + === "Shared Template Variables" + + {% + include-markdown "../collection_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ???+ tip + + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. + + ```yaml + libraries: + Movies: + collection_files: + - pmm: trakt + template_variables: + use_collected: false #(1)! + use_recommended: false #(2)! + limit: 20 #(3)! + visible_library_popular: true #(4)! + visible_home_popular: true #(5)! + visible_shared_popular: true #(6)! + ``` + + 1. Do not create the "Trakt Collected" collection + 2. Do not create the "Trakt Recommended" collection + 3. Change all collections built by this file to have a maximum of 20 items + 4. Pin the "Trakt Popular" collection to the Recommended tab of the library + 5. Pin the "Trakt Popular" collection to the home screen of the server owner + 6. Pin the "Trakt Popular" collection to the home screen of other users of the server diff --git a/docs/defaults/collection_variables.md b/docs/defaults/collection_variables.md index 1b15213e..4b47b460 100644 --- a/docs/defaults/collection_variables.md +++ b/docs/defaults/collection_variables.md @@ -1,59 +1,55 @@ -## Shared Collection Template Variables +The below shared template variables are available for this file. -The below template variables are available for this PMM Defaults file. - -Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. - -| Variable | Description & Values | -|:-----------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `language` | **Description:** Set the language of Collection Names and Summaries<br>**Default:** `default`<br>**Values:** `default` (English), `fr` (French), or `de` (German) | -| `use_<<key>>`<sup>1</sup> | **Description:** Turns off individual Collections in a Defaults file.<br>**Values:** `false` to turn off the collection | -| `name_<<key>>`<sup>1</sup> | **Description:** Changes the name of the specified key's collection.<br>**Values:** New Collection Name | -| `summary_<<key>>`<sup>1</sup> | **Description:** Changes the summary of the specified key's collection.<br>**Values:** New Collection Summary | -| `collection_section` | **Description:** Changes the sort order of the collection sections against other default collection sections. (Use quotes to not lose leading zeros `"05"`)<br>**Values:** Any number | -| `sort_prefix` | **Description:** Changes the prefix of the sort title.<br>**Default:** `!`<br>**Values:** Any String | -| `sort_title` | **Description:** Changes the sort title of all collections.<br>**Default:** `<<sort_prefix>><<collection_section>><<pre>><<order_<<key>>>><<title>>`<br>**Values:** Any String | -| `name_mapping` | **Description:** Changes the `name_mapping` of all collections.<br>**Default:** `<<title>>`<br>**Values:** Any String with `<<key_name>>` in it. | -| `order_<<key>>`<sup>1</sup> | **Description:** Controls the sort order of the collections in their collection section.<br>**Values:** Any number | -| `collection_mode` | **Description:** Controls the collection mode of all collections in a Defaults file.<br>**Values:**<table class="clearTable"><tr><td>`default`</td><td>Library default</td></tr><tr><td>`hide`</td><td>Hide Collection</td></tr><tr><td>`hide_items`</td><td>Hide Items in this Collection</td></tr><tr><td>`show_items`</td><td>Show this Collection and its Items</td></tr></table> | -| `ignore_ids` | **Description:** Set a list or comma-separated string of TMDb/TVDb IDs to ignore in all collections.<br>**Values:** List or comma-separated string of TMDb/TVDb IDs | -| `ignore_imdb_ids` | **Description:** Set a list or comma-separated string of IMDb IDs to ignore in all collections.<br>**Values:** List or comma-separated string of IMDb IDs | -| `minimum_items` | **Description:** Set the number of minimum items for a collection to be created for all collections.<br>**Values:** Any number greater than 0 | -| `minimum_items_<<key>>`<sup>1</sup> | **Description:** Set the number of minimum items for a collection to be created for the specified key's collection.<br>**Values:** Any number greater than 0 | -| `delete_collections_named` | **Description:** Used to delete any collections in your plex named one of the given collections.<br>**Values:** List of Collection Names to delete | -| `url_poster` | **Description:** Changes the poster url for all collections.<br>**Values:** URL directly to the Image | -| `url_poster_<<key>>`<sup>1</sup> | **Description:** Changes the poster url of the specified key's collection.<br>**Values:** URL directly to the Image | -| `file_poster` | **Description:** Sets the poster filepath for all collections.<br>**Values:** Filepath directly to the Image | -| `file_poster_<<key>>`<sup>1</sup> | **Description:** Sets the poster filepath of the specified key's collection.<br>**Values:** Filepath directly to the Image | -| `url_background` | **Description:** Sets the background url for all collections.<br>**Values:** URL directly to the Image | -| `url_background__<<key>>`<sup>1</sup> | **Description:** Sets the background url of the specified key's collection.<br>**Values:** URL directly to the Image | -| `file_background` | **Description:** Sets the background filepath for all collections.<br>**Values:** Filepath directly to the Image | -| `file_background__<<key>>`<sup>1</sup> | **Description:** Sets the background filepath of the specified key's collection.<br>**Values:** Filepath directly to the Image | -| `visible_library` | **Description:** Controls visible on Library Recommended Tab for all collections in a Defaults file. (Only works with Plex Pass)<br>**Values:**<table class="clearTable"><tr><td>`true`</td><td>Visible</td></tr><tr><td>`false`</td><td>Not Visible</td></tr><tr><td>[Any `schedule` Option](../builders/details/schedule.md)</td><td>Visible When Scheduled</td></tr></table> | -| `visible_library_<<key>>`<sup>1</sup> | **Description:** Controls visible on Library Recommended Tab of the specified key's collection. (Only works with Plex Pass)<br>**Default:** `visible_library`<br>**Values:**<table class="clearTable"><tr><td>`true`</td><td>Visible</td></tr><tr><td>`false`</td><td>Not Visible</td></tr><tr><td>[Any `schedule` Option](../builders/details/schedule.md)</td><td>Visible When Scheduled</td></tr></table> | -| `visible_home` | **Description:** Controls visible on Home Tab for all collections in a Defaults file. (Only works with Plex Pass)<br>**Values:**<table class="clearTable"><tr><td>`true`</td><td>Visible</td></tr><tr><td>`false`</td><td>Not Visible</td></tr><tr><td>[Any `schedule` Option](../builders/details/schedule.md)</td><td>Visible When Scheduled</td></tr></table> | -| `visible_home_<<key>>`<sup>1</sup> | **Description:** Controls visible on Home Tab of the specified key's collection. (Only works with Plex Pass)<br>**Default:** `visible_home`<br>**Values:**<table class="clearTable"><tr><td>`true`</td><td>Visible</td></tr><tr><td>`false`</td><td>Not Visible</td></tr><tr><td>[Any `schedule` Option](../builders/details/schedule.md)</td><td>Visible When Scheduled</td></tr></table> | -| `visible_shared` | **Description:** Controls visible on Shared Users' Home Tab for all collections in a Defaults file. (Only works with Plex Pass)<br>**Values:**<table class="clearTable"><tr><td>`true`</td><td>Visible</td></tr><tr><td>`false`</td><td>Not Visible</td></tr><tr><td>[Any `schedule` Option](../builders/details/schedule.md)</td><td>Visible When Scheduled</td></tr></table> | -| `visible_shared_<<key>>`<sup>1</sup> | **Description:** Controls visible on Shared Users' Home Tab of the specified key's collection. (Only works with Plex Pass)<br>**Default:** `visible_shared`<br>**Values:**<table class="clearTable"><tr><td>`true`</td><td>Visible</td></tr><tr><td>`false`</td><td>Not Visible</td></tr><tr><td>[Any `schedule` Option](../builders/details/schedule.md)</td><td>Visible When Scheduled</td></tr></table> | -| `radarr_add_missing` | **Description:** Override Radarr `add_missing` attribute for all collections in a Defaults file.<br>**Values:** `true` or `false` | -| `radarr_add_missing_<<key>>`<sup>1</sup> | **Description:** Override Radarr `add_missing` attribute of the specified key's collection.<br>**Default:** `radarr_add_missing`<br>**Values:** `true` or `false` | -| `radarr_folder` | **Description:** Override Radarr `root_folder_path` attribute for all collections in a Defaults file.<br>**Values:** Folder Path | -| `radarr_folder_<<key>>`<sup>1</sup> | **Description:** Override Radarr `root_folder_path` attribute of the specified key's collection.<br>**Default:** `radarr_folder`<br>**Values:** Folder Path | -| `radarr_search` | **Description:** Override Radarr `search` attribute or all collections in a Defaults file.<br>**Values:** `true` or `false` | -| `radarr_search_<<key>>`<sup>1</sup> | **Description:** Override Radarr `search` attribute of the specified key's collection.<br>**Default:** `radarr_search`<br>**Values:** `true` or `false` | -| `radarr_tag` | **Description:** Override Radarr `tag` attribute for all collections in a Defaults file.<br>**Values:** List or comma-separated string of tags | -| `radarr_tag_<<key>>`<sup>1</sup> | **Description:** Override Radarr `tag` attribute of the specified key's collection.<br>**Default:** `radarr_tag`<br>**Values:** List or comma-separated string of tags | -| `item_radarr_tag` | **Description:** Used to append a tag in Radarr for every movie found by the builders that's in Radarr for all collections in a Defaults file.<br>**Values:** List or comma-separated string of tags | -| `item_radarr_tag_<<key>>`<sup>1</sup> | **Description:** Used to append a tag in Radarr for every movie found by the builders that's in Radarr of the specified key's collection.<br>**Default:** `item_radarr_tag`<br>**Values:** List or comma-separated string of tags | -| `sonarr_add_missing` | **Description:** Override Sonarr `add_missing` attribute for all collections in a Defaults file.<br>**Values:** `true` or `false` | -| `sonarr_add_missing_<<key>>`<sup>1</sup> | **Description:** Override Sonarr `add_missing` attribute of the specified key's collection.<br>**Default:** `sonarr_add_missing`<br>**Values:** `true` or `false` | -| `sonarr_folder` | **Description:** Override Sonarr `root_folder_path` attribute for all collections in a Defaults file.<br>**Values:** Folder Path | -| `sonarr_folder_<<key>>`<sup>1</sup> | **Description:** Override Sonarr `root_folder_path` attribute of the specified key's collection.<br>**Default:** `sonarr_folder`<br>**Values:** Folder Path | -| `sonarr_search` | **Description:** Override Sonarr `search` attribute or all collections in a Defaults file.<br>**Values:** `true` or `false` | -| `sonarr_search_<<key>>`<sup>1</sup> | **Description:** Override Sonarr `search` attribute of the specified key's collection.<br>**Default:** `sonarr_search`<br>**Values:** `true` or `false` | -| `sonarr_tag` | **Description:** Override Sonarr `tag` attribute for all collections in a Defaults file.<br>**Values:** List or comma-separated string of tags | -| `sonarr_tag_<<key>>`<sup>1</sup> | **Description:** Override Sonarr `tag` attribute of the specified key's collection.<br>**Default:** `sonarr_tag`<br>**Values:** List or comma-separated string of tags | -| `item_sonarr_tag` | **Description:** Used to append a tag in Sonarr for every series found by the builders that's in Sonarr for all collections in a Defaults file.<br>**Values:** List or comma-separated string of tags | -| `item_sonarr_tag_<<key>>`<sup>1</sup> | **Description:** Used to append a tag in Sonarr for every series found by the builders that's in Sonarr of the specified key's collection.<br>**Default:** `item_sonarr_tag`<br>**Values:** List or comma-separated string of tags | +| Variable | Description & Values | +|:-----------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `language` | **Description:** Set the language of Collection Names and Summaries<br>**Default:** `default`<br>**Values:** `default` (English), `fr` (French), or `de` (German) | +| `use_<<key>>`<sup>1</sup> | **Description:** Turns off individual Collections in a Defaults file.<br>**Values:** `false` to turn off the collection | +| `name_<<key>>`<sup>1</sup> | **Description:** Changes the name of the specified key's collection.<br>**Values:** New Collection Name | +| `summary_<<key>>`<sup>1</sup> | **Description:** Changes the summary of the specified key's collection.<br>**Values:** New Collection Summary | +| `collection_section` | **Description:** Changes the sort order of the collection sections against other default collection sections. (Use quotes to not lose leading zeros `"05"`)<br>**Values:** Any number | +| `sort_prefix` | **Description:** Changes the prefix of the sort title.<br>**Default:** `!`<br>**Values:** Any String | +| `sort_title` | **Description:** Changes the sort title of all collections.<br>**Default:** `<<sort_prefix>><<collection_section>><<pre>><<order_<<key>>>><<title>>`<br>**Values:** Any String | +| `name_mapping` | **Description:** Changes the `name_mapping` of all collections.<br>**Default:** `<<title>>`<br>**Values:** Any String with `<<key_name>>` in it. | +| `order_<<key>>`<sup>1</sup> | **Description:** Controls the sort order of the collections in their collection section.<br>**Values:** Any number | +| `collection_mode` | **Description:** Controls the collection mode of all collections in a Defaults file.<br>**Values:**<table class="clearTable"><tr><td>`default`</td><td>Library default</td></tr><tr><td>`hide`</td><td>Hide Collection</td></tr><tr><td>`hide_items`</td><td>Hide Items in this Collection</td></tr><tr><td>`show_items`</td><td>Show this Collection and its Items</td></tr></table> | +| `ignore_ids` | **Description:** Set a list or comma-separated string of TMDb/TVDb IDs to ignore in all collections.<br>**Values:** List or comma-separated string of TMDb/TVDb IDs | +| `ignore_imdb_ids` | **Description:** Set a list or comma-separated string of IMDb IDs to ignore in all collections.<br>**Values:** List or comma-separated string of IMDb IDs | +| `minimum_items` | **Description:** Set the number of minimum items for a collection to be created for all collections.<br>**Values:** Any number greater than 0 | +| `minimum_items_<<key>>`<sup>1</sup> | **Description:** Set the number of minimum items for a collection to be created for the specified key's collection.<br>**Values:** Any number greater than 0 | +| `delete_collections_named` | **Description:** Used to delete any collections in your plex named one of the given collections.<br>**Values:** List of Collection Names to delete | +| `url_poster` | **Description:** Changes the poster url for all collections.<br>**Values:** URL directly to the Image | +| `url_poster_<<key>>`<sup>1</sup> | **Description:** Changes the poster url of the specified key's collection.<br>**Values:** URL directly to the Image | +| `file_poster` | **Description:** Sets the poster filepath for all collections.<br>**Values:** Filepath directly to the Image | +| `file_poster_<<key>>`<sup>1</sup> | **Description:** Sets the poster filepath of the specified key's collection.<br>**Values:** Filepath directly to the Image | +| `url_background` | **Description:** Sets the background url for all collections.<br>**Values:** URL directly to the Image | +| `url_background__<<key>>`<sup>1</sup> | **Description:** Sets the background url of the specified key's collection.<br>**Values:** URL directly to the Image | +| `file_background` | **Description:** Sets the background filepath for all collections.<br>**Values:** Filepath directly to the Image | +| `file_background__<<key>>`<sup>1</sup> | **Description:** Sets the background filepath of the specified key's collection.<br>**Values:** Filepath directly to the Image | +| `visible_library` | **Description:** Controls visible on Library Recommended Tab for all collections in a Defaults file. (Only works with Plex Pass)<br>**Values:**<table class="clearTable"><tr><td>`true`</td><td>Visible</td></tr><tr><td>`false`</td><td>Not Visible</td></tr><tr><td>[Any `schedule` Option](../config/schedule.md)</td><td>Visible When Scheduled</td></tr></table> | +| `visible_library_<<key>>`<sup>1</sup> | **Description:** Controls visible on Library Recommended Tab of the specified key's collection. (Only works with Plex Pass)<br>**Default:** `visible_library`<br>**Values:**<table class="clearTable"><tr><td>`true`</td><td>Visible</td></tr><tr><td>`false`</td><td>Not Visible</td></tr><tr><td>[Any `schedule` Option](../config/schedule.md)</td><td>Visible When Scheduled</td></tr></table> | +| `visible_home` | **Description:** Controls visible on Home Tab for all collections in a Defaults file. (Only works with Plex Pass)<br>**Values:**<table class="clearTable"><tr><td>`true`</td><td>Visible</td></tr><tr><td>`false`</td><td>Not Visible</td></tr><tr><td>[Any `schedule` Option](../config/schedule.md)</td><td>Visible When Scheduled</td></tr></table> | +| `visible_home_<<key>>`<sup>1</sup> | **Description:** Controls visible on Home Tab of the specified key's collection. (Only works with Plex Pass)<br>**Default:** `visible_home`<br>**Values:**<table class="clearTable"><tr><td>`true`</td><td>Visible</td></tr><tr><td>`false`</td><td>Not Visible</td></tr><tr><td>[Any `schedule` Option](../config/schedule.md)</td><td>Visible When Scheduled</td></tr></table> | +| `visible_shared` | **Description:** Controls visible on Shared Users' Home Tab for all collections in a Defaults file. (Only works with Plex Pass)<br>**Values:**<table class="clearTable"><tr><td>`true`</td><td>Visible</td></tr><tr><td>`false`</td><td>Not Visible</td></tr><tr><td>[Any `schedule` Option](../config/schedule.md)</td><td>Visible When Scheduled</td></tr></table> | +| `visible_shared_<<key>>`<sup>1</sup> | **Description:** Controls visible on Shared Users' Home Tab of the specified key's collection. (Only works with Plex Pass)<br>**Default:** `visible_shared`<br>**Values:**<table class="clearTable"><tr><td>`true`</td><td>Visible</td></tr><tr><td>`false`</td><td>Not Visible</td></tr><tr><td>[Any `schedule` Option](../config/schedule.md)</td><td>Visible When Scheduled</td></tr></table> | +| `radarr_add_missing` | **Description:** Override Radarr `add_missing` attribute for all collections in a Defaults file.<br>**Values:** `true` or `false` | +| `radarr_add_missing_<<key>>`<sup>1</sup> | **Description:** Override Radarr `add_missing` attribute of the specified key's collection.<br>**Default:** `radarr_add_missing`<br>**Values:** `true` or `false` | +| `radarr_folder` | **Description:** Override Radarr `root_folder_path` attribute for all collections in a Defaults file.<br>**Values:** Folder Path | +| `radarr_folder_<<key>>`<sup>1</sup> | **Description:** Override Radarr `root_folder_path` attribute of the specified key's collection.<br>**Default:** `radarr_folder`<br>**Values:** Folder Path | +| `radarr_search` | **Description:** Override Radarr `search` attribute or all collections in a Defaults file.<br>**Values:** `true` or `false` | +| `radarr_search_<<key>>`<sup>1</sup> | **Description:** Override Radarr `search` attribute of the specified key's collection.<br>**Default:** `radarr_search`<br>**Values:** `true` or `false` | +| `radarr_tag` | **Description:** Override Radarr `tag` attribute for all collections in a Defaults file.<br>**Values:** List or comma-separated string of tags | +| `radarr_tag_<<key>>`<sup>1</sup> | **Description:** Override Radarr `tag` attribute of the specified key's collection.<br>**Default:** `radarr_tag`<br>**Values:** List or comma-separated string of tags | +| `item_radarr_tag` | **Description:** Used to append a tag in Radarr for every movie found by the builders that's in Radarr for all collections in a Defaults file.<br>**Values:** List or comma-separated string of tags | +| `item_radarr_tag_<<key>>`<sup>1</sup> | **Description:** Used to append a tag in Radarr for every movie found by the builders that's in Radarr of the specified key's collection.<br>**Default:** `item_radarr_tag`<br>**Values:** List or comma-separated string of tags | +| `sonarr_add_missing` | **Description:** Override Sonarr `add_missing` attribute for all collections in a Defaults file.<br>**Values:** `true` or `false` | +| `sonarr_add_missing_<<key>>`<sup>1</sup> | **Description:** Override Sonarr `add_missing` attribute of the specified key's collection.<br>**Default:** `sonarr_add_missing`<br>**Values:** `true` or `false` | +| `sonarr_folder` | **Description:** Override Sonarr `root_folder_path` attribute for all collections in a Defaults file.<br>**Values:** Folder Path | +| `sonarr_folder_<<key>>`<sup>1</sup> | **Description:** Override Sonarr `root_folder_path` attribute of the specified key's collection.<br>**Default:** `sonarr_folder`<br>**Values:** Folder Path | +| `sonarr_search` | **Description:** Override Sonarr `search` attribute or all collections in a Defaults file.<br>**Values:** `true` or `false` | +| `sonarr_search_<<key>>`<sup>1</sup> | **Description:** Override Sonarr `search` attribute of the specified key's collection.<br>**Default:** `sonarr_search`<br>**Values:** `true` or `false` | +| `sonarr_tag` | **Description:** Override Sonarr `tag` attribute for all collections in a Defaults file.<br>**Values:** List or comma-separated string of tags | +| `sonarr_tag_<<key>>`<sup>1</sup> | **Description:** Override Sonarr `tag` attribute of the specified key's collection.<br>**Default:** `sonarr_tag`<br>**Values:** List or comma-separated string of tags | +| `item_sonarr_tag` | **Description:** Used to append a tag in Sonarr for every series found by the builders that's in Sonarr for all collections in a Defaults file.<br>**Values:** List or comma-separated string of tags | +| `item_sonarr_tag_<<key>>`<sup>1</sup> | **Description:** Used to append a tag in Sonarr for every series found by the builders that's in Sonarr of the specified key's collection.<br>**Default:** `item_sonarr_tag`<br>**Values:** List or comma-separated string of tags | 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. \ No newline at end of file diff --git a/docs/defaults/example.md b/docs/defaults/example.md index d010cad0..3d42af42 100644 --- a/docs/defaults/example.md +++ b/docs/defaults/example.md @@ -1,141 +1,138 @@ ## Example Configuration File -<details> - <summary>Click to expand sample config.yml file:</summary> +??? example "Sample `config.yml` file (click to expand)" -```yaml -libraries: - Movies: # Must match a library name in your Plex - report_path: config/missing/Movies_missing.yml - template_variables: - sep_style: purple # use the purple separators globally for this library - collection_mode: hide # hide the collections within the "library" tab in Plex. - placeholder_imdb_id: tt8579674 # 1917 (2019) placeholder id for the separators, avoids a plex bug. - collection_files: - - pmm: separator_award # An "index card" - - pmm: bafta # BAFTA Awards - template_variables: # Show collections from current_year-10 onwards. - data: - starting: current_year-10 - ending: current_year - - pmm: golden # Golden Globes Awards - template_variables: # Show collections from current_year-10 onwards. - data: - starting: current_year-10 - ending: current_year - - pmm: oscars # The Oscars - template_variables: # Show collections from current_year-10 onwards. - data: - starting: current_year-10 - ending: current_year - - pmm: separator_chart # An "index card" - - pmm: basic # Some basic chart collections - - pmm: tmdb # TMDb Charts (Popular, Trending, etc.) - - pmm: audio_language # English, French, Arabic, German, etc. audio language - - pmm: resolution # 4K HDR, 1080P FHD, etc. with the standards style + ```yaml + libraries: + Movies: # Must match a library name in your Plex + report_path: config/missing/Movies_missing.yml + template_variables: + sep_style: purple # use the purple separators globally for this library + collection_mode: hide # hide the collections within the "library" tab in Plex. + placeholder_imdb_id: tt8579674 # 1917 (2019) placeholder id for the separators, avoids a plex bug. + collection_files: + - pmm: separator_award # An "index card" + - pmm: bafta # BAFTA Awards + template_variables: # Show collections from current_year-10 onwards. + data: + starting: current_year-10 + ending: current_year + - pmm: golden # Golden Globes Awards + template_variables: # Show collections from current_year-10 onwards. + data: + starting: current_year-10 + ending: current_year + - pmm: oscars # The Oscars + template_variables: # Show collections from current_year-10 onwards. + data: + starting: current_year-10 + ending: current_year + - pmm: separator_chart # An "index card" + - pmm: basic # Some basic chart collections + - pmm: tmdb # TMDb Charts (Popular, Trending, etc.) + - pmm: audio_language # English, French, Arabic, German, etc. audio language + - pmm: resolution # 4K HDR, 1080P FHD, etc. with the standards style + template_variables: + style: standards + - pmm: studio # DreamWorks Studios, Lucasfilm Ltd, etc. + - pmm: seasonal # Christmas, Halloween, etc. + template_variables: # Disable any US-specific seasonal collections + schedule_independence: never + schedule_thanksgiving: never + schedule_memorial: never + schedule_labor: never + - pmm: streaming # Streaming on Disney+, Netflix, etc. + template_variables: + originals_only: true # Only create collections for Original Content (i.e. Netflix Originals) + - pmm: universe # Marvel Cinematic Universe, Wizarding World, etc. + overlay_files: + - remove_overlays: false # Set to true if you want to remove overlays + # - reapply_overlays: false # If you are doing a lot of testing and changes like me, keep this to true to always reapply overlays - can cause image bloat + # - reset_overlays: tmdb # if you want to reset the poster to default poster from tmdb - can cause image bloat + - pmm: audio_codec # FLAC, DTS-X, TrueHD, etc. style: standard/compact. compact is default + - pmm: resolution # 4K HDR, 1080P FHD, etc. + - pmm: ribbon # Used for ribbon in bottom right + - pmm: streaming # Streaming on Disney+, Netflix, etc. + - pmm: video_format # Remux, DVD, Blu-Ray, etc. in bottom left + settings: + asset_directory: + - config/assets + + operations: + split_duplicates: false + assets_for_all: false + + TV Shows: # Must match a library name in your Plex + report_path: config/missing/TV_missing.yml + template_variables: + sep_style: plum # use the plum separators globally for this library + collection_mode: hide # hide the collections within the "library" tab in Plex. + placeholder_imdb_id: tt1190634 # The Boys (2019) placeholder id for the separators, avoids a plex bug. + collection_files: + - pmm: separator_award # An "index card" + - pmm: bafta # BAFTA Awards + template_variables: # Show collections from current_year-10 onwards. + data: + starting: current_year-10 + ending: current_year + - pmm: golden # Golden Globes Awards + template_variables: # Show collections from current_year-10 onwards. + data: + starting: current_year-10 + ending: current_year + - pmm: oscars # The Oscars + template_variables: # Show collections from current_year-10 onwards. + data: + starting: current_year-10 + ending: current_year + - pmm: separator_chart # An "index card" + - pmm: basic # Some basic chart collections + - pmm: tmdb # TMDb Charts (Popular, Trending, etc.) + - pmm: audio_language # English, French, Arabic, German, etc. audio language + - pmm: resolution # 4K HDR, 1080P FHD, etc. with the standards style + template_variables: + style: standards + - pmm: network # ABC, CBC, NBC, FOX, etc. + - pmm: streaming # Streaming on Disney+, Netflix, etc. + template_variables: + originals_only: true # Only create collections for Original Content (i.e. Netflix Originals) + overlay_files: + - remove_overlays: false # Set to true if you want to remove overlays + # - reapply_overlays: false # If you are doing a lot of testing and changes like me, keep this to true to always reapply overlays - can cause image bloat + # - reset_overlays: tmdb # if you want to reset the poster to default poster from tmdb - can cause image bloat + - pmm: audio_codec # FLAC, DTS-X, TrueHD, etc. on show and episode + - pmm: audio_codec + template_variables: + builder_level: episode + - pmm: episode_info # S##E## information in bottom right on episode + template_variables: + builder_level: episode + - pmm: resolution # 4K HDR, 1080P FHD, etc. on show, episode, and season + - pmm: resolution + template_variables: + builder_level: episode + - pmm: resolution + template_variables: + builder_level: season + - pmm: ribbon # Used for ribbon in bottom right on show + - pmm: status # Airing, Returning, Ended, Canceled on show + - pmm: versions # Will show duplicates for that media item on show and episode + - pmm: versions + template_variables: + builder_level: episode + - pmm: video_format # Remux, DVD, Blu-Ray, etc. in bottom left on show, episode, and season + - pmm: video_format + template_variables: + builder_level: episode + settings: + asset_directory: + - config/assets + + operations: + split_duplicates: false + assets_for_all: false + playlist_files: + - pmm: playlist template_variables: - style: standards - - pmm: studio # DreamWorks Studios, Lucasfilm Ltd, etc. - - pmm: seasonal # Christmas, Halloween, etc. - template_variables: # Disable any US-specific seasonal collections - schedule_independence: never - schedule_thanksgiving: never - schedule_memorial: never - schedule_labor: never - - pmm: streaming # Streaming on Disney+, Netflix, etc. - template_variables: - originals_only: true # Only create collections for Original Content (i.e. Netflix Originals) - - pmm: universe # Marvel Cinematic Universe, Wizarding World, etc. - overlay_files: - - remove_overlays: false # Set to true if you want to remove overlays - # - reapply_overlays: false # If you are doing a lot of testing and changes like me, keep this to true to always reapply overlays - can cause image bloat - # - reset_overlays: tmdb # if you want to reset the poster to default poster from tmdb - can cause image bloat - - pmm: audio_codec # FLAC, DTS-X, TrueHD, etc. style: standard/compact. compact is default - - pmm: resolution # 4K HDR, 1080P FHD, etc. - - pmm: ribbon # Used for ribbon in bottom right - - pmm: streaming # Streaming on Disney+, Netflix, etc. - - pmm: video_format # Remux, DVD, Blu-Ray, etc. in bottom left - settings: - asset_directory: - - config/assets - - operations: - split_duplicates: false - assets_for_all: false - - TV Shows: # Must match a library name in your Plex - report_path: config/missing/TV_missing.yml - template_variables: - sep_style: plum # use the plum separators globally for this library - collection_mode: hide # hide the collections within the "library" tab in Plex. - placeholder_imdb_id: tt1190634 # The Boys (2019) placeholder id for the separators, avoids a plex bug. - collection_files: - - pmm: separator_award # An "index card" - - pmm: bafta # BAFTA Awards - template_variables: # Show collections from current_year-10 onwards. - data: - starting: current_year-10 - ending: current_year - - pmm: golden # Golden Globes Awards - template_variables: # Show collections from current_year-10 onwards. - data: - starting: current_year-10 - ending: current_year - - pmm: oscars # The Oscars - template_variables: # Show collections from current_year-10 onwards. - data: - starting: current_year-10 - ending: current_year - - pmm: separator_chart # An "index card" - - pmm: basic # Some basic chart collections - - pmm: tmdb # TMDb Charts (Popular, Trending, etc.) - - pmm: audio_language # English, French, Arabic, German, etc. audio language - - pmm: resolution # 4K HDR, 1080P FHD, etc. with the standards style - template_variables: - style: standards - - pmm: network # ABC, CBC, NBC, FOX, etc. - - pmm: streaming # Streaming on Disney+, Netflix, etc. - template_variables: - originals_only: true # Only create collections for Original Content (i.e. Netflix Originals) - overlay_files: - - remove_overlays: false # Set to true if you want to remove overlays - # - reapply_overlays: false # If you are doing a lot of testing and changes like me, keep this to true to always reapply overlays - can cause image bloat - # - reset_overlays: tmdb # if you want to reset the poster to default poster from tmdb - can cause image bloat - - pmm: audio_codec # FLAC, DTS-X, TrueHD, etc. on show and episode - - pmm: audio_codec - template_variables: - builder_level: episode - - pmm: episode_info # S##E## information in bottom right on episode - template_variables: - builder_level: episode - - pmm: resolution # 4K HDR, 1080P FHD, etc. on show, episode, and season - - pmm: resolution - template_variables: - builder_level: episode - - pmm: resolution - template_variables: - builder_level: season - - pmm: ribbon # Used for ribbon in bottom right on show - - pmm: status # Airing, Returning, Ended, Canceled on show - - pmm: versions # Will show duplicates for that media item on show and episode - - pmm: versions - template_variables: - builder_level: episode - - pmm: video_format # Remux, DVD, Blu-Ray, etc. in bottom left on show, episode, and season - - pmm: video_format - template_variables: - builder_level: episode - settings: - asset_directory: - - config/assets - - operations: - split_duplicates: false - assets_for_all: false -playlist_files: -- pmm: playlist - template_variables: - libraries: Movies, TV Shows # Must match the names of your libraries in Plex. -``` - -</details> + libraries: Movies, TV Shows # Must match the names of your libraries in Plex. + ``` diff --git a/docs/defaults/guide.md b/docs/defaults/guide.md index 7872016a..530f106f 100644 --- a/docs/defaults/guide.md +++ b/docs/defaults/guide.md @@ -22,7 +22,7 @@ See the [Overlay Defaults](overlays.md) Page for more information on the specifi ## Configurations -To run a default pmm Metadata or Overlay file you can simply add it to your `collection_files` (For Collection Files) or `overlay_files` (For Overlay Files) using `pmm` like so: +To run a default pmm Collection or Overlay file you can simply add it to your `collection_files` (For Collection Files) or `overlay_files` (For Overlay Files) using `pmm` like so: ```yaml libraries: @@ -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.md). -**In addition to the defined `template_variables` almost all default Metadata and Overlay files have access to their respective [Metadata](collection_variables.md)/[Overlay](overlay_variables.md) Shared Variables.** +**In addition to the defined `template_variables` almost all default Collection and Overlay files have access to their respective [Collection](collection_variables.md)/[Overlay](overlay_variables.md) Shared Variables.** {% include-markdown "./example.md" diff --git a/docs/defaults/movie/content_rating_us.md b/docs/defaults/movie/content_rating_us.md index 2fe1042b..070d27cf 100644 --- a/docs/defaults/movie/content_rating_us.md +++ b/docs/defaults/movie/content_rating_us.md @@ -33,146 +33,163 @@ libraries: - pmm: content_rating_us ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -| Variable | Description & Values | -|:------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | -| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** List of Content Ratings found in your library | -| `exclude` | **Description:** Exclude these Content Ratings from creating a Dynamic Collection.<br>**Values:** List of Content Ratings found in your library | -| `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of Content Ratings found in your library | -| `append_include` | **Description:** Appends to the [default include list](#default-include).<br>**Values:** List of Content Ratings found in your library | -| `remove_include` | **Description:** Removes from the [default include list](#default-include).<br>**Values:** List of Content Ratings found in your library | -| `append_addons` | **Description:** Appends to the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Content Ratings found in your library | -| `remove_addons` | **Description:** Removes from the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Content Ratings found in your library | -| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `<<key_name>> <<library_translationU>>s`<br>**Values:** Any string with `<<key_name>>` in it. | -| `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s that are rated <<key_name>>.`<br>**Values:** Any string. | +??? info "Click to expand" -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. + === "File-Specific Template Variables" -{% - include-markdown "../collection_variables.md" -%} -### Example Template Variable Amendments + The below template variables are available specifically for this PMM Defaults file. -The below is an example config.yml extract with some Template Variables added in to change how the file works. + Be sure to also check out the "Shared Template Variables" tab for additional variables. -???+ tip + This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. + | Variable | Description & Values | + |:------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | + | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | + | `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** List of Content Ratings found in your library | + | `exclude` | **Description:** Exclude these Content Ratings from creating a Dynamic Collection.<br>**Values:** List of Content Ratings found in your library | + | `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of Content Ratings found in your library | + | `append_include` | **Description:** Appends to the [default include list](#default-include).<br>**Values:** List of Content Ratings found in your library | + | `remove_include` | **Description:** Removes from the [default include list](#default-include).<br>**Values:** List of Content Ratings found in your library | + | `append_addons` | **Description:** Appends to the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Content Ratings found in your library | + | `remove_addons` | **Description:** Removes from the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Content Ratings found in your library | + | `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `<<key_name>> <<library_translationU>>s`<br>**Values:** Any string with `<<key_name>>` in it. | + | `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s that are rated <<key_name>>.`<br>**Values:** Any string. | -```yaml -libraries: - Movies: - collection_files: - - pmm: content_rating_us - template_variables: - sep_style: blue #(1)! - use_other: false #(2)! - append_addons: - R: #(3)! - - "de/18" #(4)! - sort_by: title.asc -``` + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. -1. Use the blue [Separator Style](../separators.md#separator-styles) -2. Do not create a "Not Rated Movies" collection -3. Defines a collection which will be called "R", this does not need to already exist in your library -4. Adds the "de/18" content rating to the "R" addon list, "de/18" must exist in your library if the "R" content rating does not + === "Shared Template Variables" + + {% + include-markdown "../collection_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ???+ tip + + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. + + ```yaml + libraries: + Movies: + collection_files: + - pmm: content_rating_us + template_variables: + sep_style: blue #(1)! + use_other: false #(2)! + append_addons: + R: #(3)! + - "de/18" #(4)! + sort_by: title.asc + ``` + + 1. Use the blue [Separator Style](../separators.md#separator-styles) + 2. Do not create a "Not Rated Movies" collection + 3. Defines a collection which will be called "R", this does not need to already exist in your library + 4. Adds the "de/18" content rating to the "R" addon list, "de/18" must exist in your library if the "R" content rating does not ## Default values -These are lists provided for reference to show what values will be in use if you do no customization. If you want to customize these values, use the methods described above. These do not show how to change a name or a list. +???+ tip -### Default `include` + These are lists provided for reference to show what values will be in use if you do no customization. **These do not show how to change a name or a list.** -```yaml -include: - - G - - PG - - PG-13 - - R - - NC-17 -``` + If you want to customize these values, use the methods described above. -### Default `addons` + **Default `include`**: -```yaml -addons: - G: - - gb/U - - gb/0+ - - U - - TV-Y - - TV-G - - E - - gb/E - - 1 - - 2 - - 3 - - 4 - - 5 - - 6 - - "01" - - "02" - - "03" - - "04" - - "05" - - "06" - - G - All Ages - PG: - - gb/PG - - gb/9+ - - TV-PG - - TV-Y7 - - TV-Y7-FV - - 7 - - 8 - - 9 - - "07" - - "08" - - "09" - - "10" - - "11" - - PG - Children - PG-13: - - gb/12A - - gb/12 - - 12+ - - TV-13 - - gb/14+ - - gb/15 - - TV-14 - - 12 - - 13 - - 14 - - 15 - - 16 - - PG-13 - Teens 13 or older - R: - - 17 - - 18 - - gb/18 - - MA-17 - - TVMA - - TV-MA - - R - 17+ (violence & profanity) - - R+ - Mild Nudity - NC-17: - - gb/R18 - - gb/X - - R18 - - X - - Rx - Hentai -``` + ```yaml + include: + - G + - PG + - PG-13 + - R + - NC-17 + ``` + + **Default `addons`**: + + ```yaml + addons: + G: + - gb/U + - gb/0+ + - U + - TV-Y + - TV-G + - E + - gb/E + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - "01" + - "02" + - "03" + - "04" + - "05" + - "06" + - G - All Ages + PG: + - gb/PG + - gb/9+ + - TV-PG + - TV-Y7 + - TV-Y7-FV + - 7 + - 8 + - 9 + - "07" + - "08" + - "09" + - "10" + - "11" + - PG - Children + PG-13: + - gb/12A + - gb/12 + - 12+ + - TV-13 + - gb/14+ + - gb/15 + - TV-14 + - 12 + - 13 + - 14 + - 15 + - 16 + - PG-13 - Teens 13 or older + R: + - 17 + - 18 + - gb/18 + - MA-17 + - TVMA + - TV-MA + - R - 17+ (violence & profanity) + - R+ - Mild Nudity + NC-17: + - gb/R18 + - gb/X + - R18 + - X + - Rx - Hentai + ``` diff --git a/docs/defaults/movie/continent.md b/docs/defaults/movie/continent.md index 0b758408..5075bd64 100644 --- a/docs/defaults/movie/continent.md +++ b/docs/defaults/movie/continent.md @@ -35,436 +35,453 @@ Below is a screenshot of the alternative Color (`color`) style which can be set ![](../images/continent2.png) -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -| Variable | Description & Values | -|:------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `style` | **Description:** Controls the visual theme of the collections created<table class="clearTable"><tr><th>Values:</th></tr><tr><td><code>white</code></td><td>White Theme</td></tr><tr><td><code>color</code></td><td>Color Theme</td></tr></table> | -| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | -| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** List of Countries found in your library | -| `exclude` | **Description:** Exclude these Countries from creating a Dynamic Collection.<br>**Values:** List of Countries found in your library | -| `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of Countries found in your library | -| `append_include` | **Description:** Appends to the [default include list](#default-include).<br>**Values:** List of Countries found in your library | -| `remove_include` | **Description:** Removes from the [default include list](#default-include).<br>**Values:** List of Countries found in your library | -| `append_addons` | **Description:** Appends to the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Countries found in your library | -| `remove_addons` | **Description:** Removes from the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Countries found in your library | -| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `<<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | -| `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s filmed in <<key_name>>.`<br>**Values:** Any string. | +??? info "Click to expand" -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. + === "File-Specific Template Variables" -{% - include-markdown "../collection_variables.md" -%} -### Example Template Variable Amendments + The below template variables are available specifically for this PMM Defaults file. -The below is an example config.yml extract with some Template Variables added in to change how the file works. + Be sure to also check out the "Shared Template Variables" tab for additional variables. -???+ tip + This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. + | Variable | Description & Values | + |:------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `style` | **Description:** Controls the visual theme of the collections created<table class="clearTable"><tr><th>Values:</th></tr><tr><td><code>white</code></td><td>White Theme</td></tr><tr><td><code>color</code></td><td>Color Theme</td></tr></table> | + | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | + | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | + | `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** List of Countries found in your library | + | `exclude` | **Description:** Exclude these Countries from creating a Dynamic Collection.<br>**Values:** List of Countries found in your library | + | `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of Countries found in your library | + | `append_include` | **Description:** Appends to the [default include list](#default-include).<br>**Values:** List of Countries found in your library | + | `remove_include` | **Description:** Removes from the [default include list](#default-include).<br>**Values:** List of Countries found in your library | + | `append_addons` | **Description:** Appends to the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Countries found in your library | + | `remove_addons` | **Description:** Removes from the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Countries found in your library | + | `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `<<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | + | `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s filmed in <<key_name>>.`<br>**Values:** Any string. | -```yaml -libraries: - Movies: - collection_files: - - pmm: continent - template_variables: - use_other: false #(1)! - use_separator: false #(2)! - style: color #(3)! - exclude: - - Europe #(4)! - sort_by: title.asc -``` + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. -1. Do not create the "Other Continents" collection -2. Do not create a "Continent Collections" separator -3. Set the [Color Style](#color-style) -4. Exclude "Europe" from the list of collections that are created + === "Shared Template Variables" + + {% + include-markdown "../collection_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ???+ tip + + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. + + ```yaml + libraries: + Movies: + collection_files: + - pmm: continent + template_variables: + use_other: false #(1)! + use_separator: false #(2)! + style: color #(3)! + exclude: + - Europe #(4)! + sort_by: title.asc + ``` + + 1. Do not create the "Other Continents" collection + 2. Do not create a "Continent Collections" separator + 3. Set the [Color Style](#color-style) + 4. Exclude "Europe" from the list of collections that are created ## Default values -The following yml is provided for reference to show what values will be in use if you do no customization. If you want to customize these values, use the methods described above. These do not show how to change a name or a list. +???+ tip -### Default `include` + These are lists provided for reference to show what values will be in use if you do no customization. **These do not show how to change a name or a list.** -```yaml - include: - - Africa - - Americas - - Antarctica - - Asia - - Europe - - Oceania -``` + If you want to customize these values, use the methods described above. -### Default `addons` + **Default `include`**: -```yaml - addons: - Africa: - # Northern Africa: - - Algeria - - Egypt - - Libya - - Morocco - - Sudan - - Tunisia - - Western Sahara - # Eastern Africa: - - British Indian Ocean Territory - - Burundi - - Comoros - - Djibouti - - Eritrea - - Ethiopia - - French Southern Territories - - Kenya - - Madagascar - - Malawi - - Mauritius - - Mayotte - - Mozambique - - Réunion - - Rwanda - - Seychelles - - Somalia - - South Sudan - - Uganda - - Tanzania - - United Republic of Tanzania # Tanzania - - Zambia - - Zimbabwe - # Central Africa: - - Angola - - Cameroon - - Central African Republic - - Chad - - Republic of the Congo - - Congo # Republic of the Congo - - Democratic Republic of the Congo - - Zaire # Democratic Republic of the Congo - - Equatorial Guinea - - Gabon - - São Tomé and Príncipe - - Sao Tome and Principe # São Tomé and Príncipe - # Southern Africa: - - Botswana - - Eswatini - - Swaziland # Eswatini - - Lesotho - - Namibia - - South Africa - # Western Africa: - - Benin - - Burkina Faso - - Cape Verde - - Cabo Verde # Cape Verde - - Côte d'Ivoire - - Côte d’Ivoire # Côte d'Ivoire - - Ivory Coast # Côte d'Ivoire - - Gambia - - Ghana - - Guinea - - Guinea-Bissau - - Liberia - - Mali - - Mauritania - - Niger - - Nigeria - - Saint Helena, Ascension and Tristan da Cunha - - Saint Helena # Saint Helena, Ascension and Tristan da Cunha - - St. Helena # Saint Helena, Ascension and Tristan da Cunha - - Ascension # Saint Helena, Ascension and Tristan da Cunha - - Tristan da Cunha # Saint Helena, Ascension and Tristan da Cunha - - Senegal - - Sierra Leone - - Togo - Americas: - # Caribbean: - - Anguilla - - Antigua and Barbuda - - Antigua # Antigua and Barbuda - - Barbuda # Antigua and Barbuda - - Aruba - - Bahamas - - Barbados - - Bonaire, Sint Eustatius and Saba - - Bonaire # Bonaire, Sint Eustatius and Saba - - Sint Eustatius # Bonaire, Sint Eustatius and Saba - - Saba # Bonaire, Sint Eustatius and Saba - - Netherlands Antilles - - British Virgin Islands - - Cayman Islands - - Cuba - - Curaçao - - Dominica - - Dominican Republic - - Grenada - - Guadeloupe - - Haiti - - Jamaica - - Martinique - - Montserrat - - Puerto Rico - - Saint Barthélemy - - Saint Kitts and Nevis - - St. Kitts and Nevis # Saint Kitts and Nevis - - Saint Lucia - - St. Lucia # Saint Lucia - - Saint Martin - - Saint Vincent and the Grenadines - - Saint Vincent and Grenadines # Saint Vincent and the Grenadines - - St. Vincent and the Grenadines # Saint Vincent and the Grenadines - - St. Vincent and Grenadines # Saint Vincent and the Grenadines - - Sint Maarten - - Trinidad and Tobago - - Turks and Caicos Islands - - US Virgin Islands - - U.S. Virgin Islands # US Virgin Islands - - United States Virgin Islands # US Virgin Islands - # Central America: - - Belize - - Costa Rica - - El Salvador - - Guatemala - - Honduras - - Mexico - - Nicaragua - - Panama - # South America: - - Argentina - - Bolivia - - Plurinational State of Bolivia # Bolivia - - Bouvet Island - - Brazil - - Chile - - Colombia - - Ecuador - - Falkland Islands - - Malvinas # Falkland Islands - - French Guiana - - Guyana - - Paraguay - - Peru - - South Georgia and the South Sandwich Islands - - South Georgia and South Sandwich Islands # South Georgia and the South Sandwich Islands - - South Georgia # South Georgia and the South Sandwich Islands - - South Sandwich Islands # South Georgia and the South Sandwich Islands - - Suriname - - Uruguay - - Venezuela - - Bolivarian Republic of Venezuela # Venezuela - # North America: - - Bermuda - - Canada - - Greenland - - Saint Pierre and Miquelon - - St. Pierre and Miquelon # Saint Pierre and Miquelon - - United States - - United States of America # United States - Antarctica: - - Antarctica - Asia: - # Central Asia: - - Kazakhstan - - Kyrgyzstan - - Tajikistan - - Turkmenistan - - Uzbekistan - # Eastern Asia: - - China - - Hong Kong - - Hong Kong SAR China # Hong Kong - - Macao - - Macau # Macao - - Macau SAR China # Macao - - North Korea - - Democratic People's Republic of Korea # North Korea - - Japan - - Mongolia - - South Korea - - Republic of Korea # South Korea - - Korea # South Korea - - Taiwan - - Taiwan, Province of China # Taiwan - # South-Eastern Asia: - - Brunei - - Brunei Darussalam # Brunei - - Cambodia - - Indonesia - - Laos - - Lao People's Democratic Republic # Laos - - Lao # Laos - - Malaysia - - Myanmar - - Burma # Myanmar - - Philippines - - Singapore - - Thailand - - East Timor - - Timor-Leste # East Timor - - Vietnam - - Viet Nam # Vietnam - # Southern Asia: - - Afghanistan - - Bangladesh - - Bhutan - - India - - Iran - - Islamic Republic of Iran # Iran - - Maldives - - Nepal - - Pakistan - - Sri Lanka - # Western Asia: - - Armenia - - Azerbaijan - - Bahrain - - Cyprus - - Georgia - - Iraq - - Israel - - Jordan - - Kuwait - - Lebanon - - Oman - - Qatar - - Saudi Arabia - - Palestine - - State of Palestine # Palestine - - Syria - - Syrian Arab Republic # Syria - - Turkey - - Türkiye # Turkey - - United Arab Emirates - - Yemen - Europe: - # Eastern Europe: - - Belarus - - Bulgaria - - Czech Republic - - Czechia # Czech Republic - - Czechoslovakia # Czech Republic - - Hungary - - Poland - - Moldova - - Republic of Moldova # Moldova - - Romania - - Russia - - Russian Federation # Russia - - Soviet Union - - Slovakia - - Ukraine - # Northern Europe: - - Åland Islands - - Guernsey - - Jersey - - Sark - - Denmark - - Estonia - - Faroe Islands - - Finland - - Iceland - - Ireland - - Northern Ireland - - Isle of Man - - Latvia - - Lithuania - - Norway - - Svalbard and Jan Mayen Islands - - Svalbard and Jan Mayen # Svalbard and Jan Mayen Islands - - Sweden - - United Kingdom - # Southern Europe: - - Albania - - Andorra - - Bosnia and Herzegovina - - Croatia - - Gibraltar - - Greece - - Kosovo - - Vatican City - - Holy See # Vatican City - - Italy - - Malta - - Montenegro - - North Macedonia - - Macedonia # North Macedonia - - Republic of North Macedonia # North Macedonia - - Portugal - - San Marino - - Serbia - - Serbia and Montenegro - - Slovenia - - Spain - - Yugoslavia - # Western Europe: - - Austria - - Belgium - - France - - French Republic # France - - Germany - - East Germany - - Liechtenstein - - Luxembourg - - Monaco - - Netherlands - - Switzerland - Oceania: - # Australia and New Zealand: - - Australia - - Christmas Island - - Cocos (Keeling) Islands - - Heard Island and McDonald Islands - - Heard and McDonald Islands # Heard Island and McDonald Islands - - New Zealand - - Norfolk Island - # Melanesia: - - Fiji - - New Caledonia - - Papua New Guinea - - New Guinea # Papua New Guinea - - Solomon Islands - - Vanuatu - # Micronesia: - - Guam - - Kiribati - - Marshall Islands - - Micronesia - - Federated States of Micronesia # Micronesia - - Nauru - - Northern Mariana Islands - - Palau - - US Minor Outlying Islands - - United States Minor Outlying Islands # US Minor Outlying Islands - - United States Outlying Islands # US Minor Outlying Islands - - U.S. Minor Outlying Islands # US Minor Outlying Islands - - U.S. Outlying Islands # US Minor Outlying Islands - - US Outlying Islands # US Minor Outlying Islands - # Polynesia: - - American Samoa - - Cook Islands - - French Polynesia - - Niue - - Pitcairn - - Pitcairn Islands # Pitcairn - - Samoa - - Tokelau - - Tonga - - Tuvalu - - Wallis and Futuna Islands - - Wallis and Futuna # Wallis and Futuna Islands -``` + ```yaml + include: + - Africa + - Americas + - Antarctica + - Asia + - Europe + - Oceania + ``` + + **Default `addons`**: + + ```yaml + addons: + Africa: + # Northern Africa: + - Algeria + - Egypt + - Libya + - Morocco + - Sudan + - Tunisia + - Western Sahara + # Eastern Africa: + - British Indian Ocean Territory + - Burundi + - Comoros + - Djibouti + - Eritrea + - Ethiopia + - French Southern Territories + - Kenya + - Madagascar + - Malawi + - Mauritius + - Mayotte + - Mozambique + - Réunion + - Rwanda + - Seychelles + - Somalia + - South Sudan + - Uganda + - Tanzania + - United Republic of Tanzania # Tanzania + - Zambia + - Zimbabwe + # Central Africa: + - Angola + - Cameroon + - Central African Republic + - Chad + - Republic of the Congo + - Congo # Republic of the Congo + - Democratic Republic of the Congo + - Zaire # Democratic Republic of the Congo + - Equatorial Guinea + - Gabon + - São Tomé and Príncipe + - Sao Tome and Principe # São Tomé and Príncipe + # Southern Africa: + - Botswana + - Eswatini + - Swaziland # Eswatini + - Lesotho + - Namibia + - South Africa + # Western Africa: + - Benin + - Burkina Faso + - Cape Verde + - Cabo Verde # Cape Verde + - Côte d'Ivoire + - Côte d’Ivoire # Côte d'Ivoire + - Ivory Coast # Côte d'Ivoire + - Gambia + - Ghana + - Guinea + - Guinea-Bissau + - Liberia + - Mali + - Mauritania + - Niger + - Nigeria + - Saint Helena, Ascension and Tristan da Cunha + - Saint Helena # Saint Helena, Ascension and Tristan da Cunha + - St. Helena # Saint Helena, Ascension and Tristan da Cunha + - Ascension # Saint Helena, Ascension and Tristan da Cunha + - Tristan da Cunha # Saint Helena, Ascension and Tristan da Cunha + - Senegal + - Sierra Leone + - Togo + Americas: + # Caribbean: + - Anguilla + - Antigua and Barbuda + - Antigua # Antigua and Barbuda + - Barbuda # Antigua and Barbuda + - Aruba + - Bahamas + - Barbados + - Bonaire, Sint Eustatius and Saba + - Bonaire # Bonaire, Sint Eustatius and Saba + - Sint Eustatius # Bonaire, Sint Eustatius and Saba + - Saba # Bonaire, Sint Eustatius and Saba + - Netherlands Antilles + - British Virgin Islands + - Cayman Islands + - Cuba + - Curaçao + - Dominica + - Dominican Republic + - Grenada + - Guadeloupe + - Haiti + - Jamaica + - Martinique + - Montserrat + - Puerto Rico + - Saint Barthélemy + - Saint Kitts and Nevis + - St. Kitts and Nevis # Saint Kitts and Nevis + - Saint Lucia + - St. Lucia # Saint Lucia + - Saint Martin + - Saint Vincent and the Grenadines + - Saint Vincent and Grenadines # Saint Vincent and the Grenadines + - St. Vincent and the Grenadines # Saint Vincent and the Grenadines + - St. Vincent and Grenadines # Saint Vincent and the Grenadines + - Sint Maarten + - Trinidad and Tobago + - Turks and Caicos Islands + - US Virgin Islands + - U.S. Virgin Islands # US Virgin Islands + - United States Virgin Islands # US Virgin Islands + # Central America: + - Belize + - Costa Rica + - El Salvador + - Guatemala + - Honduras + - Mexico + - Nicaragua + - Panama + # South America: + - Argentina + - Bolivia + - Plurinational State of Bolivia # Bolivia + - Bouvet Island + - Brazil + - Chile + - Colombia + - Ecuador + - Falkland Islands + - Malvinas # Falkland Islands + - French Guiana + - Guyana + - Paraguay + - Peru + - South Georgia and the South Sandwich Islands + - South Georgia and South Sandwich Islands # South Georgia and the South Sandwich Islands + - South Georgia # South Georgia and the South Sandwich Islands + - South Sandwich Islands # South Georgia and the South Sandwich Islands + - Suriname + - Uruguay + - Venezuela + - Bolivarian Republic of Venezuela # Venezuela + # North America: + - Bermuda + - Canada + - Greenland + - Saint Pierre and Miquelon + - St. Pierre and Miquelon # Saint Pierre and Miquelon + - United States + - United States of America # United States + Antarctica: + - Antarctica + Asia: + # Central Asia: + - Kazakhstan + - Kyrgyzstan + - Tajikistan + - Turkmenistan + - Uzbekistan + # Eastern Asia: + - China + - Hong Kong + - Hong Kong SAR China # Hong Kong + - Macao + - Macau # Macao + - Macau SAR China # Macao + - North Korea + - Democratic People's Republic of Korea # North Korea + - Japan + - Mongolia + - South Korea + - Republic of Korea # South Korea + - Korea # South Korea + - Taiwan + - Taiwan, Province of China # Taiwan + # South-Eastern Asia: + - Brunei + - Brunei Darussalam # Brunei + - Cambodia + - Indonesia + - Laos + - Lao People's Democratic Republic # Laos + - Lao # Laos + - Malaysia + - Myanmar + - Burma # Myanmar + - Philippines + - Singapore + - Thailand + - East Timor + - Timor-Leste # East Timor + - Vietnam + - Viet Nam # Vietnam + # Southern Asia: + - Afghanistan + - Bangladesh + - Bhutan + - India + - Iran + - Islamic Republic of Iran # Iran + - Maldives + - Nepal + - Pakistan + - Sri Lanka + # Western Asia: + - Armenia + - Azerbaijan + - Bahrain + - Cyprus + - Georgia + - Iraq + - Israel + - Jordan + - Kuwait + - Lebanon + - Oman + - Qatar + - Saudi Arabia + - Palestine + - State of Palestine # Palestine + - Syria + - Syrian Arab Republic # Syria + - Turkey + - Türkiye # Turkey + - United Arab Emirates + - Yemen + Europe: + # Eastern Europe: + - Belarus + - Bulgaria + - Czech Republic + - Czechia # Czech Republic + - Czechoslovakia # Czech Republic + - Hungary + - Poland + - Moldova + - Republic of Moldova # Moldova + - Romania + - Russia + - Russian Federation # Russia + - Soviet Union + - Slovakia + - Ukraine + # Northern Europe: + - Åland Islands + - Guernsey + - Jersey + - Sark + - Denmark + - Estonia + - Faroe Islands + - Finland + - Iceland + - Ireland + - Northern Ireland + - Isle of Man + - Latvia + - Lithuania + - Norway + - Svalbard and Jan Mayen Islands + - Svalbard and Jan Mayen # Svalbard and Jan Mayen Islands + - Sweden + - United Kingdom + # Southern Europe: + - Albania + - Andorra + - Bosnia and Herzegovina + - Croatia + - Gibraltar + - Greece + - Kosovo + - Vatican City + - Holy See # Vatican City + - Italy + - Malta + - Montenegro + - North Macedonia + - Macedonia # North Macedonia + - Republic of North Macedonia # North Macedonia + - Portugal + - San Marino + - Serbia + - Serbia and Montenegro + - Slovenia + - Spain + - Yugoslavia + # Western Europe: + - Austria + - Belgium + - France + - French Republic # France + - Germany + - East Germany + - Liechtenstein + - Luxembourg + - Monaco + - Netherlands + - Switzerland + Oceania: + # Australia and New Zealand: + - Australia + - Christmas Island + - Cocos (Keeling) Islands + - Heard Island and McDonald Islands + - Heard and McDonald Islands # Heard Island and McDonald Islands + - New Zealand + - Norfolk Island + # Melanesia: + - Fiji + - New Caledonia + - Papua New Guinea + - New Guinea # Papua New Guinea + - Solomon Islands + - Vanuatu + # Micronesia: + - Guam + - Kiribati + - Marshall Islands + - Micronesia + - Federated States of Micronesia # Micronesia + - Nauru + - Northern Mariana Islands + - Palau + - US Minor Outlying Islands + - United States Minor Outlying Islands # US Minor Outlying Islands + - United States Outlying Islands # US Minor Outlying Islands + - U.S. Minor Outlying Islands # US Minor Outlying Islands + - U.S. Outlying Islands # US Minor Outlying Islands + - US Outlying Islands # US Minor Outlying Islands + # Polynesia: + - American Samoa + - Cook Islands + - French Polynesia + - Niue + - Pitcairn + - Pitcairn Islands # Pitcairn + - Samoa + - Tokelau + - Tonga + - Tuvalu + - Wallis and Futuna Islands + - Wallis and Futuna # Wallis and Futuna Islands + ``` diff --git a/docs/defaults/movie/country.md b/docs/defaults/movie/country.md index 9ec029d9..16eaf5ad 100644 --- a/docs/defaults/movie/country.md +++ b/docs/defaults/movie/country.md @@ -35,473 +35,490 @@ Below is a screenshot of the alternative Color (`color`) style which can be set ![](../images/country2.png) -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -| Variable | Description & Values | -|:------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `style` | **Description:** Controls the visual theme of the collections created<table class="clearTable"><tr><th>Values:</th></tr><tr><td><code>white</code></td><td>White Theme</td></tr><tr><td><code>color</code></td><td>Color Theme</td></tr></table> | -| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | -| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** List of Countries found in your library | -| `exclude` | **Description:** Exclude these Countries from creating a Dynamic Collection.<br>**Values:** List of Countries found in your library | -| `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of Countries found in your library | -| `append_include` | **Description:** Appends to the [default include list](#default-include).<br>**Values:** List of Countries found in your library | -| `remove_include` | **Description:** Removes from the [default include list](#default-include).<br>**Values:** List of Countries found in your library | -| `append_addons` | **Description:** Appends to the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Countries found in your library | -| `remove_addons` | **Description:** Removes from the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Countries found in your library | -| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `<<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | -| `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s filmed in <<key_name>>.`<br>**Values:** Any string. | +??? info "Click to expand" -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. + === "File-Specific Template Variables" -{% - include-markdown "../collection_variables.md" -%} -### Example Template Variable Amendments + The below template variables are available specifically for this PMM Defaults file. -The below is an example config.yml extract with some Template Variables added in to change how the file works. + Be sure to also check out the "Shared Template Variables" tab for additional variables. -???+ tip + This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. + | Variable | Description & Values | + |:------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `style` | **Description:** Controls the visual theme of the collections created<table class="clearTable"><tr><th>Values:</th></tr><tr><td><code>white</code></td><td>White Theme</td></tr><tr><td><code>color</code></td><td>Color Theme</td></tr></table> | + | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | + | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | + | `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** List of Countries found in your library | + | `exclude` | **Description:** Exclude these Countries from creating a Dynamic Collection.<br>**Values:** List of Countries found in your library | + | `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of Countries found in your library | + | `append_include` | **Description:** Appends to the [default include list](#default-include).<br>**Values:** List of Countries found in your library | + | `remove_include` | **Description:** Removes from the [default include list](#default-include).<br>**Values:** List of Countries found in your library | + | `append_addons` | **Description:** Appends to the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Countries found in your library | + | `remove_addons` | **Description:** Removes from the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Countries found in your library | + | `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `<<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | + | `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s filmed in <<key_name>>.`<br>**Values:** Any string. | -```yaml -libraries: - Movies: - collection_files: - - pmm: country - template_variables: - use_other: false #(1)! - use_separator: false #(2)! - style: color #(3)! - exclude: - - France #(4)! - sort_by: title.asc -``` + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. -1. Do not create the "Other Countries" collection -2. Do not create a "Country Collections" separator -3. Set the [Color Style](#color-style) -4. Exclude "France" from the list of collections that are created + === "Shared Template Variables" + + {% + include-markdown "../collection_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ???+ tip + + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. + + ```yaml + libraries: + Movies: + collection_files: + - pmm: country + template_variables: + use_other: false #(1)! + use_separator: false #(2)! + style: color #(3)! + exclude: + - France #(4)! + sort_by: title.asc + ``` + + 1. Do not create the "Other Countries" collection + 2. Do not create a "Country Collections" separator + 3. Set the [Color Style](#color-style) + 4. Exclude "France" from the list of collections that are created ## Default values -These are lists provided for reference to show what values will be in use if you do no customization. If you want to customize these values, use the methods described above. These do not show how to change a name or a list. +???+ tip -### Default `include` + These are lists provided for reference to show what values will be in use if you do no customization. **These do not show how to change a name or a list.** -```yaml - include: - # Northern Africa: - - Algeria - - Egypt - - Libya - - Morocco - - Sudan - - Tunisia - - Western Sahara - # Eastern Africa: - - British Indian Ocean Territory - - Burundi - - Comoros - - Djibouti - - Eritrea - - Ethiopia - - French Southern Territories - - Kenya - - Madagascar - - Malawi - - Mauritius - - Mayotte - - Mozambique - - Réunion - - Rwanda - - Seychelles - - Somalia - - South Sudan - - Uganda - - Tanzania - - Zambia - - Zimbabwe - # Central Africa: - - Angola - - Cameroon - - Central African Republic - - Chad - - Republic of the Congo - - Democratic Republic of the Congo - - Equatorial Guinea - - Gabon - - São Tomé and Príncipe - # Southern Africa: - - Botswana - - Eswatini - - Lesotho - - Namibia - - South Africa - # Western Africa: - - Benin - - Burkina Faso - - Cape Verde - - Côte d'Ivoire - - Gambia - - Ghana - - Guinea - - Guinea-Bissau - - Liberia - - Mali - - Mauritania - - Niger - - Nigeria - - Saint Helena, Ascension and Tristan da Cunha - - Senegal - - Sierra Leone - - Togo - # Caribbean: - - Anguilla - - Antigua and Barbuda - - Aruba - - Bahamas - - Barbados - - Bonaire, Sint Eustatius and Saba - - Netherlands Antilles - - British Virgin Islands - - Cayman Islands - - Cuba - - Curaçao - - Dominica - - Dominican Republic - - Grenada - - Guadeloupe - - Haiti - - Jamaica - - Martinique - - Montserrat - - Puerto Rico - - Saint Barthélemy - - Saint Kitts and Nevis - - Saint Lucia - - Saint Martin - - Saint Vincent and the Grenadines - - Sint Maarten - - Trinidad and Tobago - - Turks and Caicos Islands - - US Virgin Islands - # Central America: - - Belize - - Costa Rica - - El Salvador - - Guatemala - - Honduras - - Mexico - - Nicaragua - - Panama - # South America: - - Argentina - - Bolivia - - Bouvet Island - - Brazil - - Chile - - Colombia - - Ecuador - - Falkland Islands - - French Guiana - - Guyana - - Paraguay - - Peru - - South Georgia and the South Sandwich Islands - - Suriname - - Uruguay - - Venezuela - # North America: - - Bermuda - - Canada - - Greenland - - Saint Pierre and Miquelon - - United States - # Antarctica: - - Antarctica - # Central Asia: - - Kazakhstan - - Kyrgyzstan - - Tajikistan - - Turkmenistan - - Uzbekistan - # Eastern Asia: - - China - - Hong Kong - - Macao - - North Korea - - Japan - - Mongolia - - South Korea - - Taiwan - # South-Eastern Asia: - - Brunei - - Cambodia - - Indonesia - - Laos - - Malaysia - - Myanmar - - Philippines - - Singapore - - Thailand - - East Timor - - Vietnam - # Southern Asia: - - Afghanistan - - Bangladesh - - Bhutan - - India - - Iran - - Maldives - - Nepal - - Pakistan - - Sri Lanka - # Western Asia: - - Armenia - - Azerbaijan - - Bahrain - - Cyprus - - Georgia - - Iraq - - Israel - - Jordan - - Kuwait - - Lebanon - - Oman - - Qatar - - Saudi Arabia - - Palestine - - Syria - - Turkey - - United Arab Emirates - - Yemen - # Eastern Europe: - - Belarus - - Bulgaria - - Czech Republic - - Hungary - - Poland - - Moldova - - Romania - - Russia - - Slovakia - - Ukraine - # Northern Europe: - - Åland Islands - - Guernsey - - Jersey - - Sark - - Denmark - - Estonia - - Faroe Islands - - Finland - - Iceland - - Ireland - - Northern Ireland - - Isle of Man - - Latvia - - Lithuania - - Norway - - Svalbard and Jan Mayen Islands - - Sweden - - United Kingdom - # Southern Europe: - - Albania - - Andorra - - Bosnia and Herzegovina - - Croatia - - Gibraltar - - Greece - - Kosovo - - Vatican City - - Italy - - Malta - - Montenegro - - North Macedonia - - Portugal - - San Marino - - Serbia - - Serbia and Montenegro - - Slovenia - - Spain - - Yugoslavia - # Western Europe: - - Austria - - Belgium - - France - - Germany - - Liechtenstein - - Luxembourg - - Monaco - - Netherlands - - Switzerland - #Australia and New Zealand: - - Australia - - Christmas Island - - Cocos (Keeling) Islands - - Heard Island and McDonald Islands - - New Zealand - - Norfolk Island - # Melanesia: - - Fiji - - New Caledonia - - Papua New Guinea - - Solomon Islands - - Vanuatu - # Micronesia: - - Guam - - Kiribati - - Marshall Islands - - Micronesia - - Nauru - - Northern Mariana Islands - - Palau - - US Minor Outlying Islands - # Polynesia: - - American Samoa - - Cook Islands - - French Polynesia - - Niue - - Pitcairn Islands - - Samoa - - Tokelau - - Tonga - - Tuvalu - - Wallis and Futuna Islands -``` + If you want to customize these values, use the methods described above. -### Default `addons` + **Default `include`**: -```yaml - addons: - Tanzania: - - United Republic of Tanzania - Republic of the Congo: - - Congo - Democratic Republic of the Congo: - - Zaire - São Tomé and Príncipe: - - Sao Tome and Principe - Eswatini: - - Swaziland - Cape Verde: - - Cabo Verde - Côte d'Ivoire: - - Côte d’Ivoire - - Ivory Coast - Saint Helena, Ascension and Tristan da Cunha: - - Saint Helena - - St. Helena - - Ascension - - Tristan da Cunha - Antigua and Barbuda: - - Antigua - - Barbuda - Bonaire, Sint Eustatius and Saba: - - Bonaire - - Sint Eustatius - - Saba - Saint Kitts and Nevis: - - St. Kitts and Nevis - Saint Lucia: - - St. Lucia - Saint Vincent and the Grenadines: - - Saint Vincent and Grenadines - - St. Vincent and the Grenadines - - St. Vincent and Grenadines - US Virgin Islands: - - U.S. Virgin Islands - - United States Virgin Islands - Bolivia: - - Plurinational State of Bolivia - Falkland Islands: - - Malvinas - South Georgia and the South Sandwich Islands: - - South Georgia and South Sandwich Islands - - South Georgia - - South Sandwich Islands - Venezuela: - - Bolivarian Republic of Venezuela - Saint Pierre and Miquelon: - - St. Pierre and Miquelon - United States: - - United States of America - Hong Kong: - - Hong Kong SAR China - Macao: - - Macau - - Macau SAR China - North Korea: - - Democratic People's Republic of Korea - South Korea: - - Republic of Korea - - Korea - Taiwan: - - Taiwan, Province of China - Brunei: - - Brunei Darussalam - Laos: - - Lao People's Democratic Republic - - Lao - Myanmar: - - Burma - East Timor: - - Timor-Leste - Vietnam: - - Viet Nam - Iran: - - Islamic Republic of Iran - Palestine: - - State of Palestine - Syria: - - Syrian Arab Republic - Turkey: - - Türkiye - Czech Republic: - - Czechia - - Czechoslovakia - Moldova: - - Republic of Moldova - Russia: - - Russian Federation - - Soviet Union - Svalbard and Jan Mayen Islands: - - Svalbard and Jan Mayen - Vatican City: - - Holy See - North Macedonia: - - Macedonia - - Republic of North Macedonia - France: - - French Republic - Germany: - - East Germany - Heard Island and McDonald Islands: - - Heard and McDonald Islands - Papua New Guinea: - - New Guinea - Micronesia: - - Federated States of Micronesia - US Minor Outlying Islands: - - United States Minor Outlying Islands - - United States Outlying Islands - - U.S. Minor Outlying Islands - - U.S. Outlying Islands - - US Outlying Islands - Pitcairn Islands: - - Pitcairn - Wallis and Futuna Islands: - - Wallis and Futuna -``` + ```yaml + include: + # Northern Africa: + - Algeria + - Egypt + - Libya + - Morocco + - Sudan + - Tunisia + - Western Sahara + # Eastern Africa: + - British Indian Ocean Territory + - Burundi + - Comoros + - Djibouti + - Eritrea + - Ethiopia + - French Southern Territories + - Kenya + - Madagascar + - Malawi + - Mauritius + - Mayotte + - Mozambique + - Réunion + - Rwanda + - Seychelles + - Somalia + - South Sudan + - Uganda + - Tanzania + - Zambia + - Zimbabwe + # Central Africa: + - Angola + - Cameroon + - Central African Republic + - Chad + - Republic of the Congo + - Democratic Republic of the Congo + - Equatorial Guinea + - Gabon + - São Tomé and Príncipe + # Southern Africa: + - Botswana + - Eswatini + - Lesotho + - Namibia + - South Africa + # Western Africa: + - Benin + - Burkina Faso + - Cape Verde + - Côte d'Ivoire + - Gambia + - Ghana + - Guinea + - Guinea-Bissau + - Liberia + - Mali + - Mauritania + - Niger + - Nigeria + - Saint Helena, Ascension and Tristan da Cunha + - Senegal + - Sierra Leone + - Togo + # Caribbean: + - Anguilla + - Antigua and Barbuda + - Aruba + - Bahamas + - Barbados + - Bonaire, Sint Eustatius and Saba + - Netherlands Antilles + - British Virgin Islands + - Cayman Islands + - Cuba + - Curaçao + - Dominica + - Dominican Republic + - Grenada + - Guadeloupe + - Haiti + - Jamaica + - Martinique + - Montserrat + - Puerto Rico + - Saint Barthélemy + - Saint Kitts and Nevis + - Saint Lucia + - Saint Martin + - Saint Vincent and the Grenadines + - Sint Maarten + - Trinidad and Tobago + - Turks and Caicos Islands + - US Virgin Islands + # Central America: + - Belize + - Costa Rica + - El Salvador + - Guatemala + - Honduras + - Mexico + - Nicaragua + - Panama + # South America: + - Argentina + - Bolivia + - Bouvet Island + - Brazil + - Chile + - Colombia + - Ecuador + - Falkland Islands + - French Guiana + - Guyana + - Paraguay + - Peru + - South Georgia and the South Sandwich Islands + - Suriname + - Uruguay + - Venezuela + # North America: + - Bermuda + - Canada + - Greenland + - Saint Pierre and Miquelon + - United States + # Antarctica: + - Antarctica + # Central Asia: + - Kazakhstan + - Kyrgyzstan + - Tajikistan + - Turkmenistan + - Uzbekistan + # Eastern Asia: + - China + - Hong Kong + - Macao + - North Korea + - Japan + - Mongolia + - South Korea + - Taiwan + # South-Eastern Asia: + - Brunei + - Cambodia + - Indonesia + - Laos + - Malaysia + - Myanmar + - Philippines + - Singapore + - Thailand + - East Timor + - Vietnam + # Southern Asia: + - Afghanistan + - Bangladesh + - Bhutan + - India + - Iran + - Maldives + - Nepal + - Pakistan + - Sri Lanka + # Western Asia: + - Armenia + - Azerbaijan + - Bahrain + - Cyprus + - Georgia + - Iraq + - Israel + - Jordan + - Kuwait + - Lebanon + - Oman + - Qatar + - Saudi Arabia + - Palestine + - Syria + - Turkey + - United Arab Emirates + - Yemen + # Eastern Europe: + - Belarus + - Bulgaria + - Czech Republic + - Hungary + - Poland + - Moldova + - Romania + - Russia + - Slovakia + - Ukraine + # Northern Europe: + - Åland Islands + - Guernsey + - Jersey + - Sark + - Denmark + - Estonia + - Faroe Islands + - Finland + - Iceland + - Ireland + - Northern Ireland + - Isle of Man + - Latvia + - Lithuania + - Norway + - Svalbard and Jan Mayen Islands + - Sweden + - United Kingdom + # Southern Europe: + - Albania + - Andorra + - Bosnia and Herzegovina + - Croatia + - Gibraltar + - Greece + - Kosovo + - Vatican City + - Italy + - Malta + - Montenegro + - North Macedonia + - Portugal + - San Marino + - Serbia + - Serbia and Montenegro + - Slovenia + - Spain + - Yugoslavia + # Western Europe: + - Austria + - Belgium + - France + - Germany + - Liechtenstein + - Luxembourg + - Monaco + - Netherlands + - Switzerland + #Australia and New Zealand: + - Australia + - Christmas Island + - Cocos (Keeling) Islands + - Heard Island and McDonald Islands + - New Zealand + - Norfolk Island + # Melanesia: + - Fiji + - New Caledonia + - Papua New Guinea + - Solomon Islands + - Vanuatu + # Micronesia: + - Guam + - Kiribati + - Marshall Islands + - Micronesia + - Nauru + - Northern Mariana Islands + - Palau + - US Minor Outlying Islands + # Polynesia: + - American Samoa + - Cook Islands + - French Polynesia + - Niue + - Pitcairn Islands + - Samoa + - Tokelau + - Tonga + - Tuvalu + - Wallis and Futuna Islands + ``` + + **Default `addons`**: + + ```yaml + addons: + Tanzania: + - United Republic of Tanzania + Republic of the Congo: + - Congo + Democratic Republic of the Congo: + - Zaire + São Tomé and Príncipe: + - Sao Tome and Principe + Eswatini: + - Swaziland + Cape Verde: + - Cabo Verde + Côte d'Ivoire: + - Côte d’Ivoire + - Ivory Coast + Saint Helena, Ascension and Tristan da Cunha: + - Saint Helena + - St. Helena + - Ascension + - Tristan da Cunha + Antigua and Barbuda: + - Antigua + - Barbuda + Bonaire, Sint Eustatius and Saba: + - Bonaire + - Sint Eustatius + - Saba + Saint Kitts and Nevis: + - St. Kitts and Nevis + Saint Lucia: + - St. Lucia + Saint Vincent and the Grenadines: + - Saint Vincent and Grenadines + - St. Vincent and the Grenadines + - St. Vincent and Grenadines + US Virgin Islands: + - U.S. Virgin Islands + - United States Virgin Islands + Bolivia: + - Plurinational State of Bolivia + Falkland Islands: + - Malvinas + South Georgia and the South Sandwich Islands: + - South Georgia and South Sandwich Islands + - South Georgia + - South Sandwich Islands + Venezuela: + - Bolivarian Republic of Venezuela + Saint Pierre and Miquelon: + - St. Pierre and Miquelon + United States: + - United States of America + Hong Kong: + - Hong Kong SAR China + Macao: + - Macau + - Macau SAR China + North Korea: + - Democratic People's Republic of Korea + South Korea: + - Republic of Korea + - Korea + Taiwan: + - Taiwan, Province of China + Brunei: + - Brunei Darussalam + Laos: + - Lao People's Democratic Republic + - Lao + Myanmar: + - Burma + East Timor: + - Timor-Leste + Vietnam: + - Viet Nam + Iran: + - Islamic Republic of Iran + Palestine: + - State of Palestine + Syria: + - Syrian Arab Republic + Turkey: + - Türkiye + Czech Republic: + - Czechia + - Czechoslovakia + Moldova: + - Republic of Moldova + Russia: + - Russian Federation + - Soviet Union + Svalbard and Jan Mayen Islands: + - Svalbard and Jan Mayen + Vatican City: + - Holy See + North Macedonia: + - Macedonia + - Republic of North Macedonia + France: + - French Republic + Germany: + - East Germany + Heard Island and McDonald Islands: + - Heard and McDonald Islands + Papua New Guinea: + - New Guinea + Micronesia: + - Federated States of Micronesia + US Minor Outlying Islands: + - United States Minor Outlying Islands + - United States Outlying Islands + - U.S. Minor Outlying Islands + - U.S. Outlying Islands + - US Outlying Islands + Pitcairn Islands: + - Pitcairn + Wallis and Futuna Islands: + - Wallis and Futuna + ``` diff --git a/docs/defaults/movie/decade.md b/docs/defaults/movie/decade.md index 255ee100..4f9c6fc3 100644 --- a/docs/defaults/movie/decade.md +++ b/docs/defaults/movie/decade.md @@ -28,49 +28,62 @@ libraries: - pmm: decade ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -| Variable | Description & Values | -|:------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Default:** `100`<br>**Values:** Number Greater than 0 | -| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `critic_rating.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `exclude` | **Description:** Exclude these Decades from creating a Dynamic Collection.<br>**Values:** List of Decades found in your library | -| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `Best of <<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | -| `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `Top <<limit>> <<library_translation>>s of the <<key_name>>.`<br>**Values:** Any string. | +??? info "Click to expand" -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. + === "File-Specific Template Variables" -{% - include-markdown "../collection_variables.md" -%} -### Example Template Variable Amendments + The below template variables are available specifically for this PMM Defaults file. -The below is an example config.yml extract with some Template Variables added in to change how the file works. + Be sure to also check out the "Shared Template Variables" tab for additional variables. -???+ tip + This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. + | Variable | Description & Values | + |:------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Default:** `100`<br>**Values:** Number Greater than 0 | + | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | + | `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `critic_rating.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `exclude` | **Description:** Exclude these Decades from creating a Dynamic Collection.<br>**Values:** List of Decades found in your library | + | `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `Best of <<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | + | `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `Top <<limit>> <<library_translation>>s of the <<key_name>>.`<br>**Values:** Any string. | -```yaml -libraries: - Movies: - collection_files: - - pmm: year - template_variables: - sep_style: purple #(1)! - sort_by: title.asc - sort_by_2020: release.desc #(2)! -``` + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. -1. Use the purple [Separator Style](../separators.md#separator-styles) -2. Set the sort order for "Best of 2020s" to release date descending \ No newline at end of file + === "Shared Template Variables" + + {% + include-markdown "../collection_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ???+ tip + + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. + + ```yaml + libraries: + Movies: + collection_files: + - pmm: year + template_variables: + sep_style: purple #(1)! + sort_by: title.asc + sort_by_2020: release.desc #(2)! + ``` + + 1. Use the purple [Separator Style](../separators.md#separator-styles) + 2. Set the sort order for "Best of 2020s" to release date descending \ No newline at end of file diff --git a/docs/defaults/movie/director.md b/docs/defaults/movie/director.md index efb3bf6e..00afc339 100644 --- a/docs/defaults/movie/director.md +++ b/docs/defaults/movie/director.md @@ -28,61 +28,74 @@ libraries: - pmm: director ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -| Variable | Description & Values | -|:-----------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `style` | **Description:** Controls the visual theme of the collections created.<br>**Default:** `bw`<br>**Values:** `bw`, `rainier`, `signature`, `diiivoy`, or `diiivoycolor` | -| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | -| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `data` | **Description:** Replaces the `data` dynamic collection value.<table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>depth</code></td><td>Controls the depth within the casting credits to search for common actors<br><strong>Default:</strong> 5<br><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>limit</code></td><td>Controls the maximum number of collections to create<br><strong>Default:</strong> 25<br><strong>Values:</strong> Number greater than 0</td></tr></table> | -| `include` | **Description:** Force these Actors to be included to create a Dynamic Collection.<br>**Values:** List of Actor Names | -| `exclude` | **Description:** Exclude these Directors from creating a Dynamic Collection.<br>**Values:** List of Director Names | -| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `<<key_name>> (Director)`<br>**Values:** Any string with `<<key_name>>` in it. | -| `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s directed by <<key_name>>.`<br>**Values:** Any string with `<<key_name>>` in it. | -| `tmdb_birthday` | **Description:** Controls if the Definition is run based on `tmdb_person`'s Birthday. Has 3 possible attributes `this_month`, `before` and `after`.<br>**Values:**<table class="clearTable"><tr><td>`this_month`</td><td>Run's if Birthday is in current Month</td><td>`true`/`false`</td></tr><tr><td>`before`</td><td>Run if X Number of Days before the Birthday</td><td>Number 0 or greater</td></tr><tr><td>`after`</td><td>Run if X Number of Days after the Birthday</td><td>Number 0 or greater</td></tr></table> | -| `tmdb_person_offset_<<key>>`<sup>1</sup> | **Description:** Changes the summary tmdb_person_offset for the specific key.<br>**Default:** `0`<br>**Values:** Dictionary of Actor Name as the keys and the tmdb_person_offset as the value. | +??? info "Click to expand" -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. + === "File-Specific Template Variables" -{% - include-markdown "../collection_variables.md" -%} -### Example Template Variable Amendments + The below template variables are available specifically for this PMM Defaults file. -The below is an example config.yml extract with some Template Variables added in to change how the file works. + Be sure to also check out the "Shared Template Variables" tab for additional variables. -???+ tip + This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. + | Variable | Description & Values | + |:-----------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `style` | **Description:** Controls the visual theme of the collections created.<br>**Default:** `bw`<br>**Values:** `bw`, `rainier`, `signature`, `diiivoy`, or `diiivoycolor` | + | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | + | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | + | `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `data` | **Description:** Replaces the `data` dynamic collection value.<table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>depth</code></td><td>Controls the depth within the casting credits to search for common actors<br><strong>Default:</strong> 5<br><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>limit</code></td><td>Controls the maximum number of collections to create<br><strong>Default:</strong> 25<br><strong>Values:</strong> Number greater than 0</td></tr></table> | + | `include` | **Description:** Force these Actors to be included to create a Dynamic Collection.<br>**Values:** List of Actor Names | + | `exclude` | **Description:** Exclude these Directors from creating a Dynamic Collection.<br>**Values:** List of Director Names | + | `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `<<key_name>> (Director)`<br>**Values:** Any string with `<<key_name>>` in it. | + | `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s directed by <<key_name>>.`<br>**Values:** Any string with `<<key_name>>` in it. | + | `tmdb_birthday` | **Description:** Controls if the Definition is run based on `tmdb_person`'s Birthday. Has 3 possible attributes `this_month`, `before` and `after`.<br>**Values:**<table class="clearTable"><tr><td>`this_month`</td><td>Run's if Birthday is in current Month</td><td>`true`/`false`</td></tr><tr><td>`before`</td><td>Run if X Number of Days before the Birthday</td><td>Number 0 or greater</td></tr><tr><td>`after`</td><td>Run if X Number of Days after the Birthday</td><td>Number 0 or greater</td></tr></table> | + | `tmdb_person_offset_<<key>>`<sup>1</sup> | **Description:** Changes the summary tmdb_person_offset for the specific key.<br>**Default:** `0`<br>**Values:** Dictionary of Actor Name as the keys and the tmdb_person_offset as the value. | -```yaml -libraries: - Movies: - collection_files: - - pmm: director - template_variables: - data: - depth: 10 #(1)! - limit: 20 #(2)! - style: rainier #(3)! - sort_by: title.asc - use_separator: false #(4)! - tmdb_person_offset_Richard Brooks: 1 #(5)! -``` + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. -1. Check the first 10 casting credits in each movie -2. Create 20 collections maximum -3. use the [rainier Style](#rainier-style) -4. Do not create a "Directors Collections" separator -5. There are two Richard Brooks, so use the 2nd [Richard Brooks](https://www.themoviedb.org/search?query=Richard%20Brooks) found on TMDb + === "Shared Template Variables" + + {% + include-markdown "../collection_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ???+ tip + + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. + + ```yaml + libraries: + Movies: + collection_files: + - pmm: director + template_variables: + data: + depth: 10 #(1)! + limit: 20 #(2)! + style: rainier #(3)! + sort_by: title.asc + use_separator: false #(4)! + tmdb_person_offset_Richard Brooks: 1 #(5)! + ``` + + 1. Check the first 10 casting credits in each movie + 2. Create 20 collections maximum + 3. use the [rainier Style](#rainier-style) + 4. Do not create a "Directors Collections" separator + 5. There are two Richard Brooks, so use the 2nd [Richard Brooks](https://www.themoviedb.org/search?query=Richard%20Brooks) found on TMDb diff --git a/docs/defaults/movie/franchise.md b/docs/defaults/movie/franchise.md index f40528ff..3f2224ad 100644 --- a/docs/defaults/movie/franchise.md +++ b/docs/defaults/movie/franchise.md @@ -33,161 +33,169 @@ libraries: Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -Note that the `template_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. +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -**[Shared Collection Variables](../collection_variables.md) are NOT available to this default file.** +??? info "Click to expand" -| Variable | Description & Values | -|:-----------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `summary_<<key>>`<sup>1</sup> | **Description:** Changes the summary of the specified key's collection.<br>**Values:** New Collection Summary | -| `collection_section` | **Description:** Adds a sort title with this collection sections.<br>**Values:** Any number | -| `order_<<key>>`<sup>1</sup> | **Description:** Controls the sort order of the collections in their collection section.<br>**Values:** Any number | -| `collection_mode` | **Description:** Controls the collection mode of all collections in this file.<br>**Values:**<table class="clearTable"><tr><td>`default`</td><td>Library default</td></tr><tr><td>`hide`</td><td>Hide Collection</td></tr><tr><td>`hide_items`</td><td>Hide Items in this Collection</td></tr><tr><td>`show_items`</td><td>Show this Collection and its Items</td></tr></table> | -| `minimum_items` | **Description:** Controls the minimum items that the collection must have to be created.<br>**Default:** `2`<br>**Values:** Any number | -| `movie_<<key>>`<sup>1</sup> | **Description:** Adds the TMDb Movie IDs given to the specified key's collection. Overrides the [default movie](#default-movie) for that collection if used.<br>**Values:** List of TMDb Movie IDs | -| `name_mapping_<<key>>`<sup>1</sup> | **Description:** Sets the name mapping value for using assets of the specified key's collection.Overrides the [default name_mapping](#default-name_mapping) for that collection if used.<br>**Values:** Any String | -| `sort_title` | **Description:** Sets the sort title for all collections. Use `<<collection_name>>` to use the collection name. **Example:** `"!02_<<collection_name>>"`<br>**Values:** Any String with `<<collection_name>>` | -| `sort_title_<<key>>`<sup>1</sup> | **Description:** Sets the sort title of the specified key's collection.<br>**Default:** `sort_title`<br>**Values:** Any String | -| `build_collection` | **Description:** Controls if you want the collection to actually be built. i.e. you may just want these movies sent to Radarr.<br>**Values:** `false` to not build the collection | -| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `collection_order` | **Description:** Changes the Collection Order for all collections in this file.<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `title_override` | **Description:** Overrides the [default title_override dictionary](#default-title_override).<br>**Values:** Dictionary with `key: new_title` entries | -| `exclude` | **Description:** Exclude these TMDb Collections from creating a Dynamic Collection.<br>**Values:** List of TMDb Collection IDs | -| `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of TMDb Collection IDs | -| `append_addons` | **Description:** Appends to the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of TMDb Collection IDs | -| `remove_addons` | **Description:** Removes from the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of TMDb Collection IDs | -| `radarr_add_missing` | **Description:** Override Radarr `add_missing` attribute for all collections in a Defaults file.<br>**Values:** `true` or `false` | -| `radarr_add_missing_<<key>>`<sup>1</sup> | **Description:** Override Radarr `add_missing` attribute of the specified key's collection.<br>**Default:** `radarr_add_missing`<br>**Values:** `true` or `false` | -| `radarr_folder` | **Description:** Override Radarr `root_folder_path` attribute for all collections in a Defaults file.<br>**Values:** Folder Path | -| `radarr_folder_<<key>>`<sup>1</sup> | **Description:** Override Radarr `root_folder_path` attribute of the specified key's collection.<br>**Default:** `radarr_folder`<br>**Values:** Folder Path | -| `radarr_tag` | **Description:** Override Radarr `tag` attribute for all collections in a Defaults file.<br>**Values:** List or comma-separated string of tags | -| `radarr_tag_<<key>>`<sup>1</sup> | **Description:** Override Radarr `tag` attribute of the specified key's collection.<br>**Default:** `radarr_tag`<br>**Values:** List or comma-separated string of tags | -| `item_radarr_tag` | **Description:** Used to append a tag in Radarr for every movie found by the builders that's in Radarr for all collections in a Defaults file.<br>**Values:** List or comma-separated string of tags | -| `item_radarr_tag_<<key>>`<sup>1</sup> | **Description:** Used to append a tag in Radarr for every movie found by the builders that's in Radarr of the specified key's collection.<br>**Default:** `item_radarr_tag`<br>**Values:** List or comma-separated string of tags | + === "Template Variables" -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. + The below template variables are available specifically for this PMM Defaults file. -{% - include-markdown "../collection_variables.md" -%} -### Example Template Variable Amendments + **[Shared Collection Variables](../collection_variables.md) are NOT available to this default file.** -The below is an example config.yml extract with some Template Variables added in to change how the file works. + | Variable | Description & Values | + |:-----------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `summary_<<key>>`<sup>1</sup> | **Description:** Changes the summary of the specified key's collection.<br>**Values:** New Collection Summary | + | `collection_section` | **Description:** Adds a sort title with this collection sections.<br>**Values:** Any number | + | `order_<<key>>`<sup>1</sup> | **Description:** Controls the sort order of the collections in their collection section.<br>**Values:** Any number | + | `collection_mode` | **Description:** Controls the collection mode of all collections in this file.<br>**Values:**<table class="clearTable"><tr><td>`default`</td><td>Library default</td></tr><tr><td>`hide`</td><td>Hide Collection</td></tr><tr><td>`hide_items`</td><td>Hide Items in this Collection</td></tr><tr><td>`show_items`</td><td>Show this Collection and its Items</td></tr></table> | + | `minimum_items` | **Description:** Controls the minimum items that the collection must have to be created.<br>**Default:** `2`<br>**Values:** Any number | + | `movie_<<key>>`<sup>1</sup> | **Description:** Adds the TMDb Movie IDs given to the specified key's collection. Overrides the [default movie](#default-movie) for that collection if used.<br>**Values:** List of TMDb Movie IDs | + | `name_mapping_<<key>>`<sup>1</sup> | **Description:** Sets the name mapping value for using assets of the specified key's collection.Overrides the [default name_mapping](#default-name_mapping) for that collection if used.<br>**Values:** Any String | + | `sort_title` | **Description:** Sets the sort title for all collections. Use `<<collection_name>>` to use the collection name. **Example:** `"!02_<<collection_name>>"`<br>**Values:** Any String with `<<collection_name>>` | + | `sort_title_<<key>>`<sup>1</sup> | **Description:** Sets the sort title of the specified key's collection.<br>**Default:** `sort_title`<br>**Values:** Any String | + | `build_collection` | **Description:** Controls if you want the collection to actually be built. i.e. you may just want these movies sent to Radarr.<br>**Values:** `false` to not build the collection | + | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `collection_order` | **Description:** Changes the Collection Order for all collections in this file.<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | + | `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | + | `title_override` | **Description:** Overrides the [default title_override dictionary](#default-title_override).<br>**Values:** Dictionary with `key: new_title` entries | + | `exclude` | **Description:** Exclude these TMDb Collections from creating a Dynamic Collection.<br>**Values:** List of TMDb Collection IDs | + | `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of TMDb Collection IDs | + | `append_addons` | **Description:** Appends to the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of TMDb Collection IDs | + | `remove_addons` | **Description:** Removes from the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of TMDb Collection IDs | + | `radarr_add_missing` | **Description:** Override Radarr `add_missing` attribute for all collections in a Defaults file.<br>**Values:** `true` or `false` | + | `radarr_add_missing_<<key>>`<sup>1</sup> | **Description:** Override Radarr `add_missing` attribute of the specified key's collection.<br>**Default:** `radarr_add_missing`<br>**Values:** `true` or `false` | + | `radarr_folder` | **Description:** Override Radarr `root_folder_path` attribute for all collections in a Defaults file.<br>**Values:** Folder Path | + | `radarr_folder_<<key>>`<sup>1</sup> | **Description:** Override Radarr `root_folder_path` attribute of the specified key's collection.<br>**Default:** `radarr_folder`<br>**Values:** Folder Path | + | `radarr_tag` | **Description:** Override Radarr `tag` attribute for all collections in a Defaults file.<br>**Values:** List or comma-separated string of tags | + | `radarr_tag_<<key>>`<sup>1</sup> | **Description:** Override Radarr `tag` attribute of the specified key's collection.<br>**Default:** `radarr_tag`<br>**Values:** List or comma-separated string of tags | + | `item_radarr_tag` | **Description:** Used to append a tag in Radarr for every movie found by the builders that's in Radarr for all collections in a Defaults file.<br>**Values:** List or comma-separated string of tags | + | `item_radarr_tag_<<key>>`<sup>1</sup> | **Description:** Used to append a tag in Radarr for every movie found by the builders that's in Radarr of the specified key's collection.<br>**Default:** `item_radarr_tag`<br>**Values:** List or comma-separated string of tags | -???+ tip + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. -```yaml -libraries: - Movies: - collection_files: - - pmm: franchise - template_variables: - build_collection: false #(1)! - movie_105995: 336560 #(2)! - radarr_add_missing: true #(3)! -``` + ### Example Template Variable Amendments -1. Do not create any physical collections in Plex (normally used when you want to perform an "operation" instead, see the third tooltip for the example) -2. Add [TMDb Movie 336560](https://www.themoviedb.org/movie/336560-lake-placid-vs-anaconda) to [TMDb Collection 105995](https://www.themoviedb.org/collection/105995-anaconda-collection) -3. Add items missing from your library in Plex to Radarr. When used in this particular file, hundreds if not thousands of items may be sent to Radarr - proceed with caution! + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ???+ tip + + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. + + ```yaml + libraries: + Movies: + collection_files: + - pmm: franchise + template_variables: + build_collection: false #(1)! + movie_105995: 336560 #(2)! + radarr_add_missing: true #(3)! + ``` + + 1. Do not create any physical collections in Plex (normally used when you want to perform an "operation" instead, see the third tooltip for the example) + 2. Add [TMDb Movie 336560](https://www.themoviedb.org/movie/336560-lake-placid-vs-anaconda) to [TMDb Collection 105995](https://www.themoviedb.org/collection/105995-anaconda-collection) + 3. Add items missing from your library in Plex to Radarr. When used in this particular file, hundreds if not thousands of items may be sent to Radarr - proceed with caution! ## Default values -These are lists provided for reference to show what values will be in use if you do no customization. If you want to customize these values, use the methods described above. These do not show how to change a name or a list. +???+ tip -### Default `addons` + These are lists provided for reference to show what values will be in use if you do no customization. **These do not show how to change a name or a list.** -```yaml -addons: - 8091: # Alien - - 135416 # Prometheus - 2806: # American Pie - - 298820 # American Pie (Spin-off) - 87800: # Appleseed - - 371526 # Appleseed XIII - 477208: # DC Super Hero Girls - - 557495 # LEGO DC Super Hero Girls - 86066: # Despicable Me - - 544669 # Minions - 9485: # The Fast and the Furious - - 688042 # Hobbs & Shaw - 86115: # Garfield - - 373918 # Garfield CGI - 91361: # Halloween - - 126209 # Halloween (Rob Zombie Series) - 9818: # Mortal Kombat - - 931431 # Mortal Kombat - 495: # Shaft - - 608103 # Shaft (Reboot) - 1582: # Teenage Mutant Ninja Turtles - - 401562 # Teenage Mutant Ninja Turtles (Remake) - 111751: # Texas Chainsaw Massacre - - 425175 # Texas Chainsaw (Reboot) - 2467: # Tomb Raider - - 621142 # Tomb Raider (Reboot) - 748: # X-Men - - 453993 # The Wolverine -``` + If you want to customize these values, use the methods described above. -### Default `title_override` + **Default `addons`**: -```yaml -title_override: - 10: "Star Wars: Skywalker Saga" - 535313: Godzilla (MonsterVerse) - 535790: Godzilla (Anime) -``` + ```yaml + addons: + 8091: # Alien + - 135416 # Prometheus + 2806: # American Pie + - 298820 # American Pie (Spin-off) + 87800: # Appleseed + - 371526 # Appleseed XIII + 477208: # DC Super Hero Girls + - 557495 # LEGO DC Super Hero Girls + 86066: # Despicable Me + - 544669 # Minions + 9485: # The Fast and the Furious + - 688042 # Hobbs & Shaw + 86115: # Garfield + - 373918 # Garfield CGI + 91361: # Halloween + - 126209 # Halloween (Rob Zombie Series) + 9818: # Mortal Kombat + - 931431 # Mortal Kombat + 495: # Shaft + - 608103 # Shaft (Reboot) + 1582: # Teenage Mutant Ninja Turtles + - 401562 # Teenage Mutant Ninja Turtles (Remake) + 111751: # Texas Chainsaw Massacre + - 425175 # Texas Chainsaw (Reboot) + 2467: # Tomb Raider + - 621142 # Tomb Raider (Reboot) + 748: # X-Men + - 453993 # The Wolverine + ``` -### Default `movie` + **Default `title_override`**: -```yaml -105995: 336560 # Anaconda: Lake Placid vs. Anaconda -176097: 14177 # Barbershop: Beauty Shop -448150: 567604 # Deadpool: Once Upon a Deadpool -9735: 6466, 222724 # Friday the 13th: Freddy vs. Jason, Crystal Lake Memories: The Complete History of Friday the 13th -386382: 326359, 460793 # Frozen: Frozen Fever, Olaf's Frozen Adventure -2980: 43074 # Ghostbusters: Ghostbusters -374509: 18983 # Godzilla (Showa): Godzilla, King of the Monsters! -374511: 39256 # Godzilla (Heisei): Godzilla 1985 -535313: 293167 # Godzilla: Kong: Skull Island -9743: 11454 # The Hannibal Lecter: Manhunter -8354: 79218, 717095, 387893 # Ice Age: Ice Age: A Mammoth Christmas, Ice Age Continental Drift: Scrat Got Your Tongue, Ice Age: The Great Egg-Scapade -70068: 658009, 643413, 450001, 751391, 44249, 182127, 44865 # Ip Man: Ip Man: Kung Fu Master, Ip Man and Four Kings, Master Z: Ip Man Legacy, Young Ip Man: Crisis Time, The Legend Is Born: Ip Man, Ip Man: The Final Fight, The Grandmaster -328: 630322 # Jurassic Park: Battle at Big Rock -8580: 38575 # The Karate Kid: The Karate Kid -14740: 161143, 25472, 270946 # Madagascar: Madly Madagascar, Merry Madagascar, Penguins of Madagascar -9818: 664767 # Mortal Kombat: Mortal Kombat Legends: Scorpion's Revenge -171732: 39410 # Rebirth of Mothra: Mothra -8581: 6466, 23437 # A Nightmare on Elm Street: Freddy vs. Jason, A Nightmare on Elm Street -627517: 13155, 68728 # Oz: Return to Oz, Oz the Great and Powerful -10789: 157433 # Pet Sematary: Pet Sematary -708816: 305470, 306264 # Power Rangers: Power Rangers, Power Rangers Super Megaforce: The Legendary Battle -190435: 687354, 11667 # Street Fighter (Animated): Street Fighter Assassin's Fist, Street Fighter -1582: 1273 # Teenage Mutant Ninja Turtles: TMNT -10194: 130925 # Toy Story: Partysaurus Rex -63043: 73362 # TRON: TRON: The Next Day -748: 567604 # X-Men: Once Upon a Deadpool -``` + ```yaml + title_override: + 10: "Star Wars: Skywalker Saga" + 535313: Godzilla (MonsterVerse) + 535790: Godzilla (Anime) + ``` -### Default `name_mapping` + **Default `movie`**: -```yaml -1565: 28 Days-Weeks Later -508334: Angels in the -115838: Escape From -386534: Has Fallen -87359: Mission Impossible -133352: Resident Evil Biohazard -115575: Star Trek Alternate Reality -115570: Star Trek The Next Generation -151: Star Trek The Original Series -10: Star Wars Skywalker Saga -``` \ No newline at end of file + ```yaml + 105995: 336560 # Anaconda: Lake Placid vs. Anaconda + 176097: 14177 # Barbershop: Beauty Shop + 448150: 567604 # Deadpool: Once Upon a Deadpool + 9735: 6466, 222724 # Friday the 13th: Freddy vs. Jason, Crystal Lake Memories: The Complete History of Friday the 13th + 386382: 326359, 460793 # Frozen: Frozen Fever, Olaf's Frozen Adventure + 2980: 43074 # Ghostbusters: Ghostbusters + 374509: 18983 # Godzilla (Showa): Godzilla, King of the Monsters! + 374511: 39256 # Godzilla (Heisei): Godzilla 1985 + 535313: 293167 # Godzilla: Kong: Skull Island + 9743: 11454 # The Hannibal Lecter: Manhunter + 8354: 79218, 717095, 387893 # Ice Age: Ice Age: A Mammoth Christmas, Ice Age Continental Drift: Scrat Got Your Tongue, Ice Age: The Great Egg-Scapade + 70068: 658009, 643413, 450001, 751391, 44249, 182127, 44865 # Ip Man: Ip Man: Kung Fu Master, Ip Man and Four Kings, Master Z: Ip Man Legacy, Young Ip Man: Crisis Time, The Legend Is Born: Ip Man, Ip Man: The Final Fight, The Grandmaster + 328: 630322 # Jurassic Park: Battle at Big Rock + 8580: 38575 # The Karate Kid: The Karate Kid + 14740: 161143, 25472, 270946 # Madagascar: Madly Madagascar, Merry Madagascar, Penguins of Madagascar + 9818: 664767 # Mortal Kombat: Mortal Kombat Legends: Scorpion's Revenge + 171732: 39410 # Rebirth of Mothra: Mothra + 8581: 6466, 23437 # A Nightmare on Elm Street: Freddy vs. Jason, A Nightmare on Elm Street + 627517: 13155, 68728 # Oz: Return to Oz, Oz the Great and Powerful + 10789: 157433 # Pet Sematary: Pet Sematary + 708816: 305470, 306264 # Power Rangers: Power Rangers, Power Rangers Super Megaforce: The Legendary Battle + 190435: 687354, 11667 # Street Fighter (Animated): Street Fighter Assassin's Fist, Street Fighter + 1582: 1273 # Teenage Mutant Ninja Turtles: TMNT + 10194: 130925 # Toy Story: Partysaurus Rex + 63043: 73362 # TRON: TRON: The Next Day + 748: 567604 # X-Men: Once Upon a Deadpool + ``` + + **Default `name_mapping`**: + + ```yaml + 1565: 28 Days-Weeks Later + 508334: Angels in the + 115838: Escape From + 386534: Has Fallen + 87359: Mission Impossible + 133352: Resident Evil Biohazard + 115575: Star Trek Alternate Reality + 115570: Star Trek The Next Generation + 151: Star Trek The Original Series + 10: Star Wars Skywalker Saga + ``` \ No newline at end of file diff --git a/docs/defaults/movie/producer.md b/docs/defaults/movie/producer.md index 43310ae7..add932fc 100644 --- a/docs/defaults/movie/producer.md +++ b/docs/defaults/movie/producer.md @@ -28,61 +28,74 @@ libraries: - pmm: producer ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -| Variable | Description & Values | -|:-----------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `style` | **Description:** Controls the visual theme of the collections created.<br>**Default:** `bw`<br>**Values:** `bw`, `rainier`, `signature`, `diiivoy`, or `diiivoycolor` | -| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | -| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `data` | **Description:** Replaces the `data` dynamic collection value.<table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>depth</code></td><td>Controls the depth within the casting credits to search for common actors<br><strong>Default:</strong> 5<br><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>limit</code></td><td>Controls the maximum number of collections to create<br><strong>Default:</strong> 25<br><strong>Values:</strong> Number greater than 0</td></tr></table> | -| `include` | **Description:** Force these Actors to be included to create a Dynamic Collection.<br>**Values:** List of Actor Names | -| `exclude` | **Description:** Exclude these Producers from creating a Dynamic Collection.<br>**Values:** List of Producer Names | -| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `<<key_name>> (Producer)`<br>**Values:** Any string with `<<key_name>>` in it. | -| `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s produced by <<key_name>>.`<br>**Values:** Any string with `<<key_name>>` in it. | -| `tmdb_birthday` | **Description:** Controls if the Definition is run based on `tmdb_person`'s Birthday. Has 3 possible attributes `this_month`, `before` and `after`.<br>**Values:**<table class="clearTable"><tr><td>`this_month`</td><td>Run's if Birthday is in current Month</td><td>`true`/`false`</td></tr><tr><td>`before`</td><td>Run if X Number of Days before the Birthday</td><td>Number 0 or greater</td></tr><tr><td>`after`</td><td>Run if X Number of Days after the Birthday</td><td>Number 0 or greater</td></tr></table> | -| `tmdb_person_offset_<<key>>`<sup>1</sup> | **Description:** Changes the summary tmdb_person_offset for the specific key.<br>**Default:** `0`<br>**Values:** Dictionary of Actor Name as the keys and the tmdb_person_offset as the value. | +??? info "Click to expand" -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. + === "File-Specific Template Variables" -{% - include-markdown "../collection_variables.md" -%} -### Example Template Variable Amendments + The below template variables are available specifically for this PMM Defaults file. -The below is an example config.yml extract with some Template Variables added in to change how the file works. + Be sure to also check out the "Shared Template Variables" tab for additional variables. -???+ tip + This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. + | Variable | Description & Values | + |:-----------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `style` | **Description:** Controls the visual theme of the collections created.<br>**Default:** `bw`<br>**Values:** `bw`, `rainier`, `signature`, `diiivoy`, or `diiivoycolor` | + | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | + | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | + | `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `data` | **Description:** Replaces the `data` dynamic collection value.<table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>depth</code></td><td>Controls the depth within the casting credits to search for common actors<br><strong>Default:</strong> 5<br><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>limit</code></td><td>Controls the maximum number of collections to create<br><strong>Default:</strong> 25<br><strong>Values:</strong> Number greater than 0</td></tr></table> | + | `include` | **Description:** Force these Actors to be included to create a Dynamic Collection.<br>**Values:** List of Actor Names | + | `exclude` | **Description:** Exclude these Producers from creating a Dynamic Collection.<br>**Values:** List of Producer Names | + | `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `<<key_name>> (Producer)`<br>**Values:** Any string with `<<key_name>>` in it. | + | `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s produced by <<key_name>>.`<br>**Values:** Any string with `<<key_name>>` in it. | + | `tmdb_birthday` | **Description:** Controls if the Definition is run based on `tmdb_person`'s Birthday. Has 3 possible attributes `this_month`, `before` and `after`.<br>**Values:**<table class="clearTable"><tr><td>`this_month`</td><td>Run's if Birthday is in current Month</td><td>`true`/`false`</td></tr><tr><td>`before`</td><td>Run if X Number of Days before the Birthday</td><td>Number 0 or greater</td></tr><tr><td>`after`</td><td>Run if X Number of Days after the Birthday</td><td>Number 0 or greater</td></tr></table> | + | `tmdb_person_offset_<<key>>`<sup>1</sup> | **Description:** Changes the summary tmdb_person_offset for the specific key.<br>**Default:** `0`<br>**Values:** Dictionary of Actor Name as the keys and the tmdb_person_offset as the value. | -```yaml -libraries: - Movies: - collection_files: - - pmm: producer - template_variables: - data: - depth: 15 #(1)! - limit: 5 #(2)! - style: signature #(3)! - sort_by: title.asc - use_separator: false #(4)! - tmdb_person_offset_Richard Brooks: 1 #(5)! -``` + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. -1. Check the first 15 casting credits in each movie -2. Create 5 collections maximum -3. use the [rainier Style](#signature-style) -4. Do not create a "Producers Collections" separator -5. There are two Richard Brooks, so use the 2nd [Richard Brooks](https://www.themoviedb.org/search?query=Richard%20Brooks) found on TMDb + === "Shared Template Variables" + + {% + include-markdown "../collection_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ???+ tip + + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. + + ```yaml + libraries: + Movies: + collection_files: + - pmm: producer + template_variables: + data: + depth: 15 #(1)! + limit: 5 #(2)! + style: signature #(3)! + sort_by: title.asc + use_separator: false #(4)! + tmdb_person_offset_Richard Brooks: 1 #(5)! + ``` + + 1. Check the first 15 casting credits in each movie + 2. Create 5 collections maximum + 3. use the [rainier Style](#signature-style) + 4. Do not create a "Producers Collections" separator + 5. There are two Richard Brooks, so use the 2nd [Richard Brooks](https://www.themoviedb.org/search?query=Richard%20Brooks) found on TMDb diff --git a/docs/defaults/movie/region.md b/docs/defaults/movie/region.md index 74e5f745..26924d3f 100644 --- a/docs/defaults/movie/region.md +++ b/docs/defaults/movie/region.md @@ -35,448 +35,464 @@ Below is a screenshot of the alternative Color (`color`) style which can be set ![](../images/region2.png) -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -| Variable | Description & Values | -|:------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `style` | **Description:** Controls the visual theme of the collections created<table class="clearTable"><tr><th>Values:</th></tr><tr><td><code>white</code></td><td>White Theme</td></tr><tr><td><code>color</code></td><td>Color Theme</td></tr></table> | -| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | -| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** List of Countries found in your library | -| `exclude` | **Description:** Exclude these Countries from creating a Dynamic Collection.<br>**Values:** List of Countries found in your library | -| `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of Countries found in your library | -| `append_include` | **Description:** Appends to the [default include list](#default-include).<br>**Values:** List of Countries found in your library | -| `remove_include` | **Description:** Removes from the [default include list](#default-include).<br>**Values:** List of Countries found in your library | -| `append_addons` | **Description:** Appends to the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Countries found in your library | -| `remove_addons` | **Description:** Removes from the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Countries found in your library | -| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `<<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | -| `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s filmed in <<key_name>>.`<br>**Values:** Any string. | +??? info "Click to expand" -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. + === "File-Specific Template Variables" -{% - include-markdown "../collection_variables.md" -%} -### Example Template Variable Amendments + The below template variables are available specifically for this PMM Defaults file. -The below is an example config.yml extract with some Template Variables added in to change how the file works. + Be sure to also check out the "Shared Template Variables" tab for additional variables. -???+ tip + This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. + | Variable | Description & Values | + |:------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `style` | **Description:** Controls the visual theme of the collections created<table class="clearTable"><tr><th>Values:</th></tr><tr><td><code>white</code></td><td>White Theme</td></tr><tr><td><code>color</code></td><td>Color Theme</td></tr></table> | + | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | + | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | + | `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** List of Countries found in your library | + | `exclude` | **Description:** Exclude these Countries from creating a Dynamic Collection.<br>**Values:** List of Countries found in your library | + | `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of Countries found in your library | + | `append_include` | **Description:** Appends to the [default include list](#default-include).<br>**Values:** List of Countries found in your library | + | `remove_include` | **Description:** Removes from the [default include list](#default-include).<br>**Values:** List of Countries found in your library | + | `append_addons` | **Description:** Appends to the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Countries found in your library | + | `remove_addons` | **Description:** Removes from the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Countries found in your library | + | `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `<<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | + | `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s filmed in <<key_name>>.`<br>**Values:** Any string. | -```yaml -libraries: - Movies: - collection_files: - - pmm: region - template_variables: - use_other: false #(1)! - use_separator: false #(2)! - style: color #(3)! - exclude: - - French #(4)! - sort_by: title.asc -``` + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. -1. Do not create the "Other Regions" collection -2. Do not create a "Region Collections" separator -3. Set the [Color Style](#color-style) -4. Exclude "French" from the list of collections that are created + === "Shared Template Variables" + + {% + include-markdown "../collection_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ???+ tip + + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. + + ```yaml + libraries: + Movies: + collection_files: + - pmm: region + template_variables: + use_other: false #(1)! + use_separator: false #(2)! + style: color #(3)! + exclude: + - French #(4)! + sort_by: title.asc + ``` + + 1. Do not create the "Other Regions" collection + 2. Do not create a "Region Collections" separator + 3. Set the [Color Style](#color-style) + 4. Exclude "French" from the list of collections that are created ## Default values -The following yaml is provided for reference to show what values will be in use if you do no customization. If you want to customize these values, use the methods described above. These do not show how to change a name or a list. +???+ tip -### Default `include` + These are lists provided for reference to show what values will be in use if you do no customization. **These do not show how to change a name or a list.** -```yaml - include: - - Northern Africa - - Eastern Africa - - Central Africa - - Southern Africa - - Western Africa - - Caribbean - - Central America - - South America - - North America - - Antarctica - - Central Asia - - Eastern Asia - - South-Eastern Asia - - Southern Asia - - Western Asia - - Eastern Europe - - Northern Europe - - Southern Europe - - Western Europe - - Australia and New Zealand - - Melanesia - - Micronesia - - Polynesia -``` + If you want to customize these values, use the methods described above. + **Default `include`**: -### Default `addons` + ```yaml + include: + - Northern Africa + - Eastern Africa + - Central Africa + - Southern Africa + - Western Africa + - Caribbean + - Central America + - South America + - North America + - Antarctica + - Central Asia + - Eastern Asia + - South-Eastern Asia + - Southern Asia + - Western Asia + - Eastern Europe + - Northern Europe + - Southern Europe + - Western Europe + - Australia and New Zealand + - Melanesia + - Micronesia + - Polynesia + ``` -```yaml - addons: - Northern Africa: - - Algeria - - Egypt - - Libya - - Morocco - - Sudan - - Tunisia - - Western Sahara - Eastern Africa: - - British Indian Ocean Territory - - Burundi - - Comoros - - Djibouti - - Eritrea - - Ethiopia - - French Southern Territories - - Kenya - - Madagascar - - Malawi - - Mauritius - - Mayotte - - Mozambique - - Réunion - - Rwanda - - Seychelles - - Somalia - - South Sudan - - Uganda - - Tanzania - - United Republic of Tanzania # Tanzania - - Zambia - - Zimbabwe - Central Africa: - - Angola - - Cameroon - - Central African Republic - - Chad - - Republic of the Congo - - Congo # Republic of the Congo - - Democratic Republic of the Congo - - Zaire # Democratic Republic of the Congo - - Equatorial Guinea - - Gabon - - São Tomé and Príncipe - - Sao Tome and Principe # São Tomé and Príncipe - Southern Africa: - - Botswana - - Eswatini - - Swaziland # Eswatini - - Lesotho - - Namibia - - South Africa - Western Africa: - - Benin - - Burkina Faso - - Cape Verde - - Cabo Verde # Cape Verde - - Côte d'Ivoire - - Côte d’Ivoire # Côte d'Ivoire - - Ivory Coast # Côte d'Ivoire - - Gambia - - Ghana - - Guinea - - Guinea-Bissau - - Liberia - - Mali - - Mauritania - - Niger - - Nigeria - - Saint Helena, Ascension and Tristan da Cunha - - Saint Helena # Saint Helena, Ascension and Tristan da Cunha - - St. Helena # Saint Helena, Ascension and Tristan da Cunha - - Ascension # Saint Helena, Ascension and Tristan da Cunha - - Tristan da Cunha # Saint Helena, Ascension and Tristan da Cunha - - Senegal - - Sierra Leone - - Togo - Caribbean: - - Anguilla - - Antigua and Barbuda - - Antigua # Antigua and Barbuda - - Barbuda # Antigua and Barbuda - - Aruba - - Bahamas - - Barbados - - Bonaire, Sint Eustatius and Saba - - Bonaire # Bonaire, Sint Eustatius and Saba - - Sint Eustatius # Bonaire, Sint Eustatius and Saba - - Saba # Bonaire, Sint Eustatius and Saba - - Netherlands Antilles - - British Virgin Islands - - Cayman Islands - - Cuba - - Curaçao - - Dominica - - Dominican Republic - - Grenada - - Guadeloupe - - Haiti - - Jamaica - - Martinique - - Montserrat - - Puerto Rico - - Saint Barthélemy - - Saint Kitts and Nevis - - St. Kitts and Nevis # Saint Kitts and Nevis - - Saint Lucia - - St. Lucia # Saint Lucia - - Saint Martin - - Saint Vincent and the Grenadines - - Saint Vincent and Grenadines # Saint Vincent and the Grenadines - - St. Vincent and the Grenadines # Saint Vincent and the Grenadines - - St. Vincent and Grenadines # Saint Vincent and the Grenadines - - Sint Maarten - - Trinidad and Tobago - - Turks and Caicos Islands - - US Virgin Islands - - U.S. Virgin Islands # US Virgin Islands - - United States Virgin Islands # US Virgin Islands - Central America: - - Belize - - Costa Rica - - El Salvador - - Guatemala - - Honduras - - Mexico - - Nicaragua - - Panama - South America: - - Argentina - - Bolivia - - Plurinational State of Bolivia # Bolivia - - Bouvet Island - - Brazil - - Chile - - Colombia - - Ecuador - - Falkland Islands - - Malvinas # Falkland Islands - - French Guiana - - Guyana - - Paraguay - - Peru - - South Georgia and the South Sandwich Islands - - South Georgia and South Sandwich Islands # South Georgia and the South Sandwich Islands - - South Georgia # South Georgia and the South Sandwich Islands - - South Sandwich Islands # South Georgia and the South Sandwich Islands - - Suriname - - Uruguay - - Venezuela - - Bolivarian Republic of Venezuela # Venezuela - North America: - - Bermuda - - Canada - - Greenland - - Saint Pierre and Miquelon - - St. Pierre and Miquelon # Saint Pierre and Miquelon - - United States - - United States of America # United States - Antarctica: - - Antarctica - Central Asia: - - Kazakhstan - - Kyrgyzstan - - Tajikistan - - Turkmenistan - - Uzbekistan - Eastern Asia: - - China - - Hong Kong - - Hong Kong SAR China # Hong Kong - - Macao - - Macau # Macao - - Macau SAR China # Macao - - North Korea - - Democratic People's Republic of Korea # North Korea - - Japan - - Mongolia - - South Korea - - Republic of Korea # South Korea - - Korea # South Korea - - Taiwan - - Taiwan, Province of China # Taiwan - South-Eastern Asia: - - Brunei - - Brunei Darussalam # Brunei - - Cambodia - - Indonesia - - Laos - - Lao People's Democratic Republic # Laos - - Lao # Laos - - Malaysia - - Myanmar - - Burma # Myanmar - - Philippines - - Singapore - - Thailand - - East Timor - - Timor-Leste # East Timor - - Vietnam - - Viet Nam # Vietnam - Southern Asia: - - Afghanistan - - Bangladesh - - Bhutan - - India - - Iran - - Islamic Republic of Iran # Iran - - Maldives - - Nepal - - Pakistan - - Sri Lanka - Western Asia: - - Armenia - - Azerbaijan - - Bahrain - - Cyprus - - Georgia - - Iraq - - Israel - - Jordan - - Kuwait - - Lebanon - - Oman - - Qatar - - Saudi Arabia - - Palestine - - State of Palestine # Palestine - - Syria - - Syrian Arab Republic # Syria - - Turkey - - Türkiye # Turkey - - United Arab Emirates - - Yemen - Eastern Europe: - - Belarus - - Bulgaria - - Czech Republic - - Czechia # Czech Republic - - Czechoslovakia # Czech Republic - - Hungary - - Poland - - Moldova - - Republic of Moldova # Moldova - - Romania - - Russia - - Russian Federation # Russia - - Soviet Union # Russia - - Slovakia - - Ukraine - Northern Europe: - - Åland Islands - - Guernsey - - Jersey - - Sark - - Denmark - - Estonia - - Faroe Islands - - Finland - - Iceland - - Ireland - - Northern Ireland - - Isle of Man - - Latvia - - Lithuania - - Norway - - Svalbard and Jan Mayen Islands - - Svalbard and Jan Mayen # Svalbard and Jan Mayen Islands - - Sweden - - United Kingdom - Southern Europe: - - Albania - - Andorra - - Bosnia and Herzegovina - - Croatia - - Gibraltar - - Greece - - Kosovo - - Vatican City - - Holy See # Vatican City - - Italy - - Malta - - Montenegro - - North Macedonia - - Macedonia # North Macedonia - - Republic of North Macedonia # North Macedonia - - Portugal - - San Marino - - Serbia - - Serbia and Montenegro - - Slovenia - - Spain - - Yugoslavia - Western Europe: - - Austria - - Belgium - - France - - French Republic # France - - Germany - - East Germany - - Liechtenstein - - Luxembourg - - Monaco - - Netherlands - - Switzerland - Australia and New Zealand: - - Australia - - Christmas Island - - Cocos (Keeling) Islands - - Heard Island and McDonald Islands - - Heard and McDonald Islands # Heard Island and McDonald Islands - - New Zealand - - Norfolk Island - Melanesia: - - Fiji - - New Caledonia - - Papua New Guinea - - New Guinea # Papua New Guinea - - Solomon Islands - - Vanuatu - Micronesia: - - Guam - - Kiribati - - Marshall Islands - - Micronesia - - Federated States of Micronesia # Micronesia - - Nauru - - Northern Mariana Islands - - Palau - - US Minor Outlying Islands - - United States Minor Outlying Islands # US Minor Outlying Islands - - United States Outlying Islands # US Minor Outlying Islands - - U.S. Minor Outlying Islands # US Minor Outlying Islands - - U.S. Outlying Islands # US Minor Outlying Islands - - US Outlying Islands # US Minor Outlying Islands - Polynesia: - - American Samoa - - Cook Islands - - French Polynesia - - Niue - - Pitcairn - - Pitcairn Islands # Pitcairn - - Samoa - - Tokelau - - Tonga - - Tuvalu - - Wallis and Futuna Islands - - Wallis and Futuna # Wallis and Futuna Islands -``` + **Default `addons`**: + + ```yaml + addons: + Northern Africa: + - Algeria + - Egypt + - Libya + - Morocco + - Sudan + - Tunisia + - Western Sahara + Eastern Africa: + - British Indian Ocean Territory + - Burundi + - Comoros + - Djibouti + - Eritrea + - Ethiopia + - French Southern Territories + - Kenya + - Madagascar + - Malawi + - Mauritius + - Mayotte + - Mozambique + - Réunion + - Rwanda + - Seychelles + - Somalia + - South Sudan + - Uganda + - Tanzania + - United Republic of Tanzania # Tanzania + - Zambia + - Zimbabwe + Central Africa: + - Angola + - Cameroon + - Central African Republic + - Chad + - Republic of the Congo + - Congo # Republic of the Congo + - Democratic Republic of the Congo + - Zaire # Democratic Republic of the Congo + - Equatorial Guinea + - Gabon + - São Tomé and Príncipe + - Sao Tome and Principe # São Tomé and Príncipe + Southern Africa: + - Botswana + - Eswatini + - Swaziland # Eswatini + - Lesotho + - Namibia + - South Africa + Western Africa: + - Benin + - Burkina Faso + - Cape Verde + - Cabo Verde # Cape Verde + - Côte d'Ivoire + - Côte d’Ivoire # Côte d'Ivoire + - Ivory Coast # Côte d'Ivoire + - Gambia + - Ghana + - Guinea + - Guinea-Bissau + - Liberia + - Mali + - Mauritania + - Niger + - Nigeria + - Saint Helena, Ascension and Tristan da Cunha + - Saint Helena # Saint Helena, Ascension and Tristan da Cunha + - St. Helena # Saint Helena, Ascension and Tristan da Cunha + - Ascension # Saint Helena, Ascension and Tristan da Cunha + - Tristan da Cunha # Saint Helena, Ascension and Tristan da Cunha + - Senegal + - Sierra Leone + - Togo + Caribbean: + - Anguilla + - Antigua and Barbuda + - Antigua # Antigua and Barbuda + - Barbuda # Antigua and Barbuda + - Aruba + - Bahamas + - Barbados + - Bonaire, Sint Eustatius and Saba + - Bonaire # Bonaire, Sint Eustatius and Saba + - Sint Eustatius # Bonaire, Sint Eustatius and Saba + - Saba # Bonaire, Sint Eustatius and Saba + - Netherlands Antilles + - British Virgin Islands + - Cayman Islands + - Cuba + - Curaçao + - Dominica + - Dominican Republic + - Grenada + - Guadeloupe + - Haiti + - Jamaica + - Martinique + - Montserrat + - Puerto Rico + - Saint Barthélemy + - Saint Kitts and Nevis + - St. Kitts and Nevis # Saint Kitts and Nevis + - Saint Lucia + - St. Lucia # Saint Lucia + - Saint Martin + - Saint Vincent and the Grenadines + - Saint Vincent and Grenadines # Saint Vincent and the Grenadines + - St. Vincent and the Grenadines # Saint Vincent and the Grenadines + - St. Vincent and Grenadines # Saint Vincent and the Grenadines + - Sint Maarten + - Trinidad and Tobago + - Turks and Caicos Islands + - US Virgin Islands + - U.S. Virgin Islands # US Virgin Islands + - United States Virgin Islands # US Virgin Islands + Central America: + - Belize + - Costa Rica + - El Salvador + - Guatemala + - Honduras + - Mexico + - Nicaragua + - Panama + South America: + - Argentina + - Bolivia + - Plurinational State of Bolivia # Bolivia + - Bouvet Island + - Brazil + - Chile + - Colombia + - Ecuador + - Falkland Islands + - Malvinas # Falkland Islands + - French Guiana + - Guyana + - Paraguay + - Peru + - South Georgia and the South Sandwich Islands + - South Georgia and South Sandwich Islands # South Georgia and the South Sandwich Islands + - South Georgia # South Georgia and the South Sandwich Islands + - South Sandwich Islands # South Georgia and the South Sandwich Islands + - Suriname + - Uruguay + - Venezuela + - Bolivarian Republic of Venezuela # Venezuela + North America: + - Bermuda + - Canada + - Greenland + - Saint Pierre and Miquelon + - St. Pierre and Miquelon # Saint Pierre and Miquelon + - United States + - United States of America # United States + Antarctica: + - Antarctica + Central Asia: + - Kazakhstan + - Kyrgyzstan + - Tajikistan + - Turkmenistan + - Uzbekistan + Eastern Asia: + - China + - Hong Kong + - Hong Kong SAR China # Hong Kong + - Macao + - Macau # Macao + - Macau SAR China # Macao + - North Korea + - Democratic People's Republic of Korea # North Korea + - Japan + - Mongolia + - South Korea + - Republic of Korea # South Korea + - Korea # South Korea + - Taiwan + - Taiwan, Province of China # Taiwan + South-Eastern Asia: + - Brunei + - Brunei Darussalam # Brunei + - Cambodia + - Indonesia + - Laos + - Lao People's Democratic Republic # Laos + - Lao # Laos + - Malaysia + - Myanmar + - Burma # Myanmar + - Philippines + - Singapore + - Thailand + - East Timor + - Timor-Leste # East Timor + - Vietnam + - Viet Nam # Vietnam + Southern Asia: + - Afghanistan + - Bangladesh + - Bhutan + - India + - Iran + - Islamic Republic of Iran # Iran + - Maldives + - Nepal + - Pakistan + - Sri Lanka + Western Asia: + - Armenia + - Azerbaijan + - Bahrain + - Cyprus + - Georgia + - Iraq + - Israel + - Jordan + - Kuwait + - Lebanon + - Oman + - Qatar + - Saudi Arabia + - Palestine + - State of Palestine # Palestine + - Syria + - Syrian Arab Republic # Syria + - Turkey + - Türkiye # Turkey + - United Arab Emirates + - Yemen + Eastern Europe: + - Belarus + - Bulgaria + - Czech Republic + - Czechia # Czech Republic + - Czechoslovakia # Czech Republic + - Hungary + - Poland + - Moldova + - Republic of Moldova # Moldova + - Romania + - Russia + - Russian Federation # Russia + - Soviet Union # Russia + - Slovakia + - Ukraine + Northern Europe: + - Åland Islands + - Guernsey + - Jersey + - Sark + - Denmark + - Estonia + - Faroe Islands + - Finland + - Iceland + - Ireland + - Northern Ireland + - Isle of Man + - Latvia + - Lithuania + - Norway + - Svalbard and Jan Mayen Islands + - Svalbard and Jan Mayen # Svalbard and Jan Mayen Islands + - Sweden + - United Kingdom + Southern Europe: + - Albania + - Andorra + - Bosnia and Herzegovina + - Croatia + - Gibraltar + - Greece + - Kosovo + - Vatican City + - Holy See # Vatican City + - Italy + - Malta + - Montenegro + - North Macedonia + - Macedonia # North Macedonia + - Republic of North Macedonia # North Macedonia + - Portugal + - San Marino + - Serbia + - Serbia and Montenegro + - Slovenia + - Spain + - Yugoslavia + Western Europe: + - Austria + - Belgium + - France + - French Republic # France + - Germany + - East Germany + - Liechtenstein + - Luxembourg + - Monaco + - Netherlands + - Switzerland + Australia and New Zealand: + - Australia + - Christmas Island + - Cocos (Keeling) Islands + - Heard Island and McDonald Islands + - Heard and McDonald Islands # Heard Island and McDonald Islands + - New Zealand + - Norfolk Island + Melanesia: + - Fiji + - New Caledonia + - Papua New Guinea + - New Guinea # Papua New Guinea + - Solomon Islands + - Vanuatu + Micronesia: + - Guam + - Kiribati + - Marshall Islands + - Micronesia + - Federated States of Micronesia # Micronesia + - Nauru + - Northern Mariana Islands + - Palau + - US Minor Outlying Islands + - United States Minor Outlying Islands # US Minor Outlying Islands + - United States Outlying Islands # US Minor Outlying Islands + - U.S. Minor Outlying Islands # US Minor Outlying Islands + - U.S. Outlying Islands # US Minor Outlying Islands + - US Outlying Islands # US Minor Outlying Islands + Polynesia: + - American Samoa + - Cook Islands + - French Polynesia + - Niue + - Pitcairn + - Pitcairn Islands # Pitcairn + - Samoa + - Tokelau + - Tonga + - Tuvalu + - Wallis and Futuna Islands + - Wallis and Futuna # Wallis and Futuna Islands + ``` diff --git a/docs/defaults/movie/seasonal.md b/docs/defaults/movie/seasonal.md index 4b8caaab..c10c44fe 100644 --- a/docs/defaults/movie/seasonal.md +++ b/docs/defaults/movie/seasonal.md @@ -44,209 +44,229 @@ libraries: - pmm: seasonal ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -| Variable | Description & Values | -|:--------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `tmdb_collection_<<key>>`<sup>1</sup> | **Description:** Adds the TMDb Collection IDs given to the specified key's collection. Overrides the [default tmdb_collection](#default-tmdb_collection) for that collection if used.<br>**Values:** List of TMDb Collection IDs | -| `tmdb_movie_<<key>>`<sup>1</sup> | **Description:** Adds the TMDb Movie IDs given to the specified key's collection. Overrides the [default tmdb_movie](#default-tmdb_movie) for that collection if used.<br>**Values:** List of TMDb Movie IDs | | -| `imdb_list_<<key>>`<sup>1</sup> | **Description:** Adds the Movies in the IMDb List to the specified key's collection. Overrides the [default imdb_list](#default-imdb_list) for that collection if used.<br>**Values:** List of IMDb List URLs | | | -| `trakt_list_<<key>>`<sup>1</sup> | **Description:** Adds the Movies in the Trakt List to the specified key's collection.<br>**Values:** List of Trakt List URLs | | | | -| `mdblist_list_<<key>>`<sup>1</sup> | **Description:** Adds the Movies in the MDb List to the specified key's collection.<br>**Values:** List of MDbList URLs | | | | -| `emoji` | **Description:** Controls the Emoji Prefix for all Collections. Set to `""` to remove all emojis.<br>**Values:** Any String | -| `emoji_<<key>>`<sup>1</sup> | **Description:** Controls the Emoji Prefix for the specified key's collection.<br>**Values:** Any String | -| `limit` | **Description:** Changes the Builder Limit for all collections in this file.<br>**Values:** Number Greater than 0 | -| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in this file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `schedule` | **Description:** Changes the Schedule for all collections in this file. Use `daily` to have all collections show.<br>**Values:** [Any Schedule Option](../../builders/details/schedule.md) | -| `schedule_<<key>>`<sup>1</sup> | **Description:** Changes the Schedule of the specified key's collection. Overrides the [default schedule](#default-schedule) for that collection if used.<br>**Values:** [Any Schedule Option](../../builders/details/schedule.md) | -| `data` | **Description:** Overrides the [default data dictionary](#default-data). Defines the data that the custom dynamic collection processes.<br>**Values:** Dictionary List of keys/names | -| `append_data` | **Description:** Appends to the [default data dictionary](#default-data).<br>**Values:** Dictionary List of keys/names | -| `exclude` | **Description:** Exclude these Seasons from creating a Dynamic Collection.<br>**Values:** List of Seasons Keys | -| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `<<key_name>> <<library_translationU>>s`<br>**Values:** Any string with `<<key_name>>` in it. | -| `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `A collection of <<key_name>> <<library_translation>>s that may relate to the season.`<br>**Values:** Any string. | +??? info "Click to expand" -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. + === "File-Specific Template Variables" -{% - include-markdown "../collection_variables.md" -%} -### Example Template Variable Amendments + The below template variables are available specifically for this PMM Defaults file. -The below is an example config.yml extract with some Template Variables added in to change how the file works. + Be sure to also check out the "Shared Template Variables" tab for additional variables. -???+ tip + This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. + | Variable | Description & Values | + |:--------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `tmdb_collection_<<key>>`<sup>1</sup> | **Description:** Adds the TMDb Collection IDs given to the specified key's collection. Overrides the [default tmdb_collection](#default-tmdb_collection) for that collection if used.<br>**Values:** List of TMDb Collection IDs | + | `tmdb_movie_<<key>>`<sup>1</sup> | **Description:** Adds the TMDb Movie IDs given to the specified key's collection. Overrides the [default tmdb_movie](#default-tmdb_movie) for that collection if used.<br>**Values:** List of TMDb Movie IDs | | + | `imdb_list_<<key>>`<sup>1</sup> | **Description:** Adds the Movies in the IMDb List to the specified key's collection. Overrides the [default imdb_list](#default-imdb_list) for that collection if used.<br>**Values:** List of IMDb List URLs | | | + | `trakt_list_<<key>>`<sup>1</sup> | **Description:** Adds the Movies in the Trakt List to the specified key's collection.<br>**Values:** List of Trakt List URLs | | | | + | `mdblist_list_<<key>>`<sup>1</sup> | **Description:** Adds the Movies in the MDb List to the specified key's collection.<br>**Values:** List of MDbList URLs | | | | + | `emoji` | **Description:** Controls the Emoji Prefix for all Collections. Set to `""` to remove all emojis.<br>**Values:** Any String | + | `emoji_<<key>>`<sup>1</sup> | **Description:** Controls the Emoji Prefix for the specified key's collection.<br>**Values:** Any String | + | `limit` | **Description:** Changes the Builder Limit for all collections in this file.<br>**Values:** Number Greater than 0 | + | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | + | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in this file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `schedule` | **Description:** Changes the Schedule for all collections in this file. Use `daily` to have all collections show.<br>**Values:** [Any Schedule Option](../../config/schedule.md) | + | `schedule_<<key>>`<sup>1</sup> | **Description:** Changes the Schedule of the specified key's collection. Overrides the [default schedule](#default-schedule) for that collection if used.<br>**Values:** [Any Schedule Option](../../config/schedule.md) | + | `data` | **Description:** Overrides the [default data dictionary](#default-data). Defines the data that the custom dynamic collection processes.<br>**Values:** Dictionary List of keys/names | + | `append_data` | **Description:** Appends to the [default data dictionary](#default-data).<br>**Values:** Dictionary List of keys/names | + | `exclude` | **Description:** Exclude these Seasons from creating a Dynamic Collection.<br>**Values:** List of Seasons Keys | + | `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `<<key_name>> <<library_translationU>>s`<br>**Values:** Any string with `<<key_name>>` in it. | + | `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `A collection of <<key_name>> <<library_translation>>s that may relate to the season.`<br>**Values:** Any string. | -```yaml -libraries: - Movies: - collection_files: - - pmm: seasonal - template_variables: - use_independence: false #(1)! - schedule_thanksgiving: range(10/01-10/30) #(2)! - sort_by: random #(3)! - append_data: - apes: Planet of the Apes Day #(4)! - schedule_apes: range(11/24-11/26) #(5)! - imdb_list_apes: https://www.imdb.com/list/ls005126084/ #(6)! - emoji_veteran: "🐵 " #(7)! -``` + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. -1. Do not create the "Independence Day" collection -2. Set a custom schedule for the Thanksgiving Day collection -3. Sort the collections created by this file in random order -4. Create a new Seasonal collection called "Planet of the Apes Day", and set the key for this collection to `apes` -5. Set a scheduled range for the "Planet of the Apes Day" collection. Planet Of The Apes Day is 11/25. -6. Add an IMDb List to be used for the "Planet of the Apes Day" collection -7. Add the 🐵 emoji to the "Planet of the Apes Day" collection so that the title in Plex is "🐵 Planet of the Apes Day Movies" + === "Shared Template Variables" + + {% + include-markdown "../collection_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ???+ tip + + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. + + ```yaml + libraries: + Movies: + collection_files: + - pmm: seasonal + template_variables: + use_independence: false #(1)! + schedule_thanksgiving: range(10/01-10/30) #(2)! + sort_by: random #(3)! + append_data: + apes: Planet of the Apes Day #(4)! + schedule_apes: range(11/24-11/26) #(5)! + imdb_list_apes: https://www.imdb.com/list/ls005126084/ #(6)! + emoji_veteran: "🐵 " #(7)! + ``` + + 1. Do not create the "Independence Day" collection + 2. Set a custom schedule for the Thanksgiving Day collection + 3. Sort the collections created by this file in random order + 4. Create a new Seasonal collection called "Planet of the Apes Day", and set the key for this collection to `apes` + 5. Set a scheduled range for the "Planet of the Apes Day" collection. Planet Of The Apes Day is 11/25. + 6. Add an IMDb List to be used for the "Planet of the Apes Day" collection + 7. Add the 🐵 emoji to the "Planet of the Apes Day" collection so that the title in Plex is "🐵 Planet of the Apes Day Movies" ## Default values -These are lists provided for reference to show what values will be in use if you do no customization. If you want to customize these values, use the methods described above. These do not show how to change a name or a list. +??? tip -### Default `data` + These are lists provided for reference to show what values will be in use if you do no customization. **These do not show how to change a name or a list.** -```yaml -data: - years: New Year's Day - valentine: Valentine's Day - patrick: St. Patrick's Day - easter: Easter - mother: Mother's Day - memorial: Memorial Day - father: Father's Day - independence: Independence Day - labor: Labor Day - halloween: Halloween - veteran: Veteran's Day - thanksgiving: Thanksgiving - christmas: Christmas - aapi: Asian American & Pacific Islander Heritage Month - disabilities: Day of Persons with Disabilities - black_history: Black History Month - lgbtq: LGBTQ+ Pride Month - latinx: Latinx Heritage Month - women: Women's History Month -``` + If you want to customize these values, use the methods described above. -### Default `tmdb_collection` + **Default `data`**: -```yaml -tmdb_collection: - halloween: - - 185103 # Hotel Transylvania - - 11716 # Addams Family - - 750822 # Addams Family Animated - - 313086 # Conjuring - - 91361 # Halloween Collection - - 8581 # A Nightmare on Elm Street Collection - - 1733 # The Mummy Collection - - 8091 # Alien Collection - - 2980 # Ghostbusters - - 751156 # Hocus Pocus -``` + ```yaml + data: + years: New Year's Day + valentine: Valentine's Day + patrick: St. Patrick's Day + easter: Easter + mother: Mother's Day + memorial: Memorial Day + father: Father's Day + independence: Independence Day + labor: Labor Day + halloween: Halloween + veteran: Veteran's Day + thanksgiving: Thanksgiving + christmas: Christmas + aapi: Asian American & Pacific Islander Heritage Month + disabilities: Day of Persons with Disabilities + black_history: Black History Month + lgbtq: LGBTQ+ Pride Month + latinx: Latinx Heritage Month + women: Women's History Month + ``` -### Default `tmdb_movie` + **Default `tmdb_collection`**: -```yaml -tmdb_movie: - halloween: - - 23437 # A Nightmare on Elm Street (2010) -``` + ```yaml + tmdb_collection: + halloween: + - 185103 # Hotel Transylvania + - 11716 # Addams Family + - 750822 # Addams Family Animated + - 313086 # Conjuring + - 91361 # Halloween Collection + - 8581 # A Nightmare on Elm Street Collection + - 1733 # The Mummy Collection + - 8091 # Alien Collection + - 2980 # Ghostbusters + - 751156 # Hocus Pocus + ``` -### Default `imdb_list` + **Default `tmdb_movie`**: -```yaml -imdb_list: - years: https://www.imdb.com/list/ls066838460/ - valentine: - - https://www.imdb.com/list/ls000094398/ - - https://www.imdb.com/list/ls057783436/ - - https://www.imdb.com/list/ls064427905/ - patrick: https://www.imdb.com/list/ls063934595/ - easter: - - https://www.imdb.com/list/ls062665509/ - - https://www.imdb.com/list/ls051733651/ - mother: https://www.imdb.com/list/ls072551197/ - memorial: https://www.imdb.com/list/ls561621160/ - father: https://www.imdb.com/list/ls020471057/ - independence: - - https://www.imdb.com/list/ls068664510/ - - https://www.imdb.com/list/ls080925875/ - labor: https://www.imdb.com/list/ls002014923/ - halloween: - - https://www.imdb.com/list/ls023118929/ - - https://www.imdb.com/list/ls000099714/ - veteran: - - https://www.imdb.com/list/ls565595526/ - thanksgiving: - - https://www.imdb.com/list/ls000835734/ - - https://www.imdb.com/list/ls091597850/ - christmas: https://www.imdb.com/list/ls000096828/ - women: - - https://www.imdb.com/search/keyword/?keywords=women-in-film&ref_=fn_kw_kw_9 - - https://www.imdb.com/search/keyword/?keywords=women%27s-rights&ref_=fn_kw_kw_2 - - https://www.imdb.com/search/keyword/?keywords=women%27s-suffrage&ref_=fn_kw_kw_13 -``` + ```yaml + tmdb_movie: + halloween: + - 23437 # A Nightmare on Elm Street (2010) + ``` -### Default `mdblist` + **Default `imdb_list`**: -```yaml -mdblist_list: - aapi: - - https://mdblist.com/lists/plexmetamanager/asian-american-pacific-islander-heritage-month - disabilities: - - https://mdblist.com/lists/plexmetamanager/day-of-persons-with-disabilities - lgbtq: - - https://mdblist.com/lists/plexmetamanager/lgbtq-pride-month - latinx: - - https://mdblist.com/lists/plexmetamanager/latinx-heritage-month -``` + ```yaml + imdb_list: + years: https://www.imdb.com/list/ls066838460/ + valentine: + - https://www.imdb.com/list/ls000094398/ + - https://www.imdb.com/list/ls057783436/ + - https://www.imdb.com/list/ls064427905/ + patrick: https://www.imdb.com/list/ls063934595/ + easter: + - https://www.imdb.com/list/ls062665509/ + - https://www.imdb.com/list/ls051733651/ + mother: https://www.imdb.com/list/ls072551197/ + memorial: https://www.imdb.com/list/ls561621160/ + father: https://www.imdb.com/list/ls020471057/ + independence: + - https://www.imdb.com/list/ls068664510/ + - https://www.imdb.com/list/ls080925875/ + labor: https://www.imdb.com/list/ls002014923/ + halloween: + - https://www.imdb.com/list/ls023118929/ + - https://www.imdb.com/list/ls000099714/ + veteran: + - https://www.imdb.com/list/ls565595526/ + thanksgiving: + - https://www.imdb.com/list/ls000835734/ + - https://www.imdb.com/list/ls091597850/ + christmas: https://www.imdb.com/list/ls000096828 + ``` -### Default `track_list` + **Default `imdb_search`**: -```yaml -trakt_list: - black_history: - - https://trakt.tv/users/hoochzilla/lists/black-cinema?display=movie&sort=title,asc - - https://trakt.tv/users/bluephi8/lists/black-history?display=movie&sort=title,asc -``` + ```yaml + women: + - keyword.any: women-in-film, womens-rights,womens-suffrage` + ``` -### Default `schedule` + **Default `mdblist`**: -```yaml -schedule: - years: range(12/26-01/04) - valentine: range(02/01-02/29) - patrick: range(03/01-03/18) - easter: range(03/20-04/30) - mother: range(05/05-05/10) - memorial: range(5/18-6/7) - father: range(06/15-06/20) - independence: range(06/23-07/11) - labor: range(09/01-09/10) - halloween: range(10/01-10/31) - veteran: range(11/01-11/30) - thanksgiving: range(11/01-11/30) - christmas: range(12/01-12/31) - aapi: range(04/30-05/31) - disabilities: range(12/02-12/04) - black_history: range(02/01-03/01) - lgbtq: range(05/31-06/30) - latinx: range(09/15-10/15) - women: range(02/28-03/31) -``` + ```yaml + mdblist_list: + aapi: + - https://mdblist.com/lists/plexmetamanager/asian-american-pacific-islander-heritage-month + disabilities: + - https://mdblist.com/lists/plexmetamanager/day-of-persons-with-disabilities + lgbtq: + - https://mdblist.com/lists/plexmetamanager/lgbtq-pride-month + latinx: + - https://mdblist.com/lists/plexmetamanager/latinx-heritage-month + ``` + + **Default `trakt_list`**: + + ```yaml + trakt_list: + black_history: + - https://trakt.tv/users/hoochzilla/lists/black-cinema?display=movie&sort=title,asc + - https://trakt.tv/users/bluephi8/lists/black-history?display=movie&sort=title,asc + ``` + + **Default `schedule`**: + + ```yaml + schedule: + years: range(12/26-01/04) + valentine: range(02/01-02/29) + patrick: range(03/01-03/18) + easter: range(03/20-04/30) + mother: range(05/05-05/10) + memorial: range(5/18-6/7) + father: range(06/15-06/20) + independence: range(06/23-07/11) + labor: range(09/01-09/10) + halloween: range(10/01-10/31) + veteran: range(11/01-11/30) + thanksgiving: range(11/01-11/30) + christmas: range(12/01-12/31) + aapi: range(04/30-05/31) + disabilities: range(12/02-12/04) + black_history: range(02/01-03/01) + lgbtq: range(05/31-06/30) + latinx: range(09/15-10/15) + women: range(02/28-03/31) + ``` diff --git a/docs/defaults/movie/writer.md b/docs/defaults/movie/writer.md index 1089f9d0..6ca2235d 100644 --- a/docs/defaults/movie/writer.md +++ b/docs/defaults/movie/writer.md @@ -28,64 +28,77 @@ libraries: - pmm: writer ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -| Variable | Description & Values | -|:-----------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `style` | **Description:** Controls the visual theme of the collections created.<br>**Default:** `bw`<br>**Values:** `bw`, `rainier`, `signature`, `diiivoy`, or `diiivoycolor` | -| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | -| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `data` | **Description:** Replaces the `data` dynamic collection value.<table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>depth</code></td><td>Controls the depth within the casting credits to search for common actors<br><strong>Default:</strong> 5<br><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>limit</code></td><td>Controls the maximum number of collections to create<br><strong>Default:</strong> 25<br><strong>Values:</strong> Number greater than 0</td></tr></table> | -| `include` | **Description:** Force these Actors to be included to create a Dynamic Collection.<br>**Values:** List of Actor Names | -| `exclude` | **Description:** Exclude these Writers from creating a Dynamic Collection.<br>**Values:** List of Writer Names | -| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `<<key_name>> (Writer)`<br>**Values:** Any string with `<<key_name>>` in it. | -| `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s written by <<key_name>>.`<br>**Values:** Any string with `<<key_name>>` in it. | -| `tmdb_birthday` | **Description:** Controls if the Definition is run based on `tmdb_person`'s Birthday. Has 3 possible attributes `this_month`, `before` and `after`.<br>**Values:**<table class="clearTable"><tr><td>`this_month`</td><td>Run's if Birthday is in current Month</td><td>`true`/`false`</td></tr><tr><td>`before`</td><td>Run if X Number of Days before the Birthday</td><td>Number 0 or greater</td></tr><tr><td>`after`</td><td>Run if X Number of Days after the Birthday</td><td>Number 0 or greater</td></tr></table> | -| `tmdb_person_offset_<<key>>`<sup>1</sup> | **Description:** Changes the summary tmdb_person_offset for the specific key.<br>**Default:** `0`<br>**Values:** Dictionary of Actor Name as the keys and the tmdb_person_offset as the value. | +??? info "Click to expand" -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. + === "File-Specific Template Variables" + + The below template variables are available specifically for this PMM Defaults file. + + Be sure to also check out the "Shared Template Variables" tab for additional variables. + + This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. + + | Variable | Description & Values | + |:-----------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `style` | **Description:** Controls the visual theme of the collections created.<br>**Default:** `bw`<br>**Values:** `bw`, `rainier`, `signature`, `diiivoy`, or `diiivoycolor` | + | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | + | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | + | `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `data` | **Description:** Replaces the `data` dynamic collection value.<table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>depth</code></td><td>Controls the depth within the casting credits to search for common actors<br><strong>Default:</strong> 5<br><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>limit</code></td><td>Controls the maximum number of collections to create<br><strong>Default:</strong> 25<br><strong>Values:</strong> Number greater than 0</td></tr></table> | + | `include` | **Description:** Force these Actors to be included to create a Dynamic Collection.<br>**Values:** List of Actor Names | + | `exclude` | **Description:** Exclude these Writers from creating a Dynamic Collection.<br>**Values:** List of Writer Names | + | `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `<<key_name>> (Writer)`<br>**Values:** Any string with `<<key_name>>` in it. | + | `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s written by <<key_name>>.`<br>**Values:** Any string with `<<key_name>>` in it. | + | `tmdb_birthday` | **Description:** Controls if the Definition is run based on `tmdb_person`'s Birthday. Has 3 possible attributes `this_month`, `before` and `after`.<br>**Values:**<table class="clearTable"><tr><td>`this_month`</td><td>Run's if Birthday is in current Month</td><td>`true`/`false`</td></tr><tr><td>`before`</td><td>Run if X Number of Days before the Birthday</td><td>Number 0 or greater</td></tr><tr><td>`after`</td><td>Run if X Number of Days after the Birthday</td><td>Number 0 or greater</td></tr></table> | + | `tmdb_person_offset_<<key>>`<sup>1</sup> | **Description:** Changes the summary tmdb_person_offset for the specific key.<br>**Default:** `0`<br>**Values:** Dictionary of Actor Name as the keys and the tmdb_person_offset as the value. | + + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. {% include-markdown "../collection_variables.md" %} -{% - include-markdown "../collection_variables.md" -%} -### Example Template Variable Amendments + === "Shared Template Variables" -The below is an example config.yml extract with some Template Variables added in to change how the file works. + {% + include-markdown "../collection_variables.md" + %} -???+ tip + ### Example Template Variable Amendments - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. + The below is an example config.yml extract with some Template Variables added in to change how the file works. -```yaml -libraries: - Movies: - collection_files: - - pmm: writer - template_variables: - data: - depth: 10 #(1)! - limit: 20 #(2)! - style: diivivoy #(3)! - sort_by: title.asc - use_separator: false #(4)! - tmdb_person_offset_Richard Brooks: 1 #(5)! -``` + ???+ tip -1. Check the first 10 casting credits in each movie -2. Create 20 collections maximum -3. use the [diivivoy Style](#rainier-style) -4. Do not create a "Writers Collections" separator -5. There are two Richard Brooks, so use the 2nd [Richard Brooks](https://www.themoviedb.org/search?query=Richard%20Brooks) found on TMDb + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. + + ```yaml + libraries: + Movies: + collection_files: + - pmm: writer + template_variables: + data: + depth: 10 #(1)! + limit: 20 #(2)! + style: diivivoy #(3)! + sort_by: title.asc + use_separator: false #(4)! + tmdb_person_offset_Richard Brooks: 1 #(5)! + ``` + + 1. Check the first 10 casting credits in each movie + 2. Create 20 collections maximum + 3. use the [diivivoy Style](#rainier-style) + 4. Do not create a "Writers Collections" separator + 5. There are two Richard Brooks, so use the 2nd [Richard Brooks](https://www.themoviedb.org/search?query=Richard%20Brooks) found on TMDb diff --git a/docs/defaults/overlay_list.md b/docs/defaults/overlay_list.md index 3ac5fc66..3e85307a 100644 --- a/docs/defaults/overlay_list.md +++ b/docs/defaults/overlay_list.md @@ -6,7 +6,7 @@ It should be noted that when an overlay has :fontawesome-solid-circle-exclamatio 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_files` [section](../config/libraries.md#overlay-file) of your config.yml +These overlays are applied by calling the below paths into the `overlay_files` [section](../config/files.md) of your config.yml ### Chart Overlays diff --git a/docs/defaults/overlay_text_variables.md b/docs/defaults/overlay_text_variables.md index e2235db0..d986f21f 100644 --- a/docs/defaults/overlay_text_variables.md +++ b/docs/defaults/overlay_text_variables.md @@ -1,5 +1,3 @@ -## Text Overlay Template Variables - The below additional template variables are available for this PMM Defaults file as it is a text-based overlay. | Variable | Description & Values | diff --git a/docs/defaults/overlay_variables.md b/docs/defaults/overlay_variables.md index 663a8b2c..7fb8cac3 100644 --- a/docs/defaults/overlay_variables.md +++ b/docs/defaults/overlay_variables.md @@ -1,8 +1,4 @@ -## Shared Overlay Template Variables - -The below template variables are available for this PMM Defaults file. - -Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. +The below additional template variables are available for this PMM Defaults file as it is an Overlay file. | Variable | Description & Values | |:---------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| diff --git a/docs/defaults/overlays/aspect.md b/docs/defaults/overlays/aspect.md index 5530147f..c150e567 100644 --- a/docs/defaults/overlays/aspect.md +++ b/docs/defaults/overlays/aspect.md @@ -41,57 +41,70 @@ libraries: builder_level: season ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -| Variable( )| Default / Values( / Values )| -|:-----------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `horizontal_offset` | `150` | -| `horizontal_align` | `center` | -| `vertical_offset` | `0` | -| `vertical_align` | `bottom` | -| `back_color` | `#00000099` | -| `back_radius` | `30` | -| `back_width` | `305` | -| `back_height` | `105` || -| `text_<<key>>`<sup>1</sup> | **Description:** Choose the text for the Overlay.<br>**Default:** <table class="clearTable"><tr><th>Key</th><th>Default</th></tr><tr><td>`1.33`</td><td>`1.33`</td></tr><tr><td>`1.65`</td><td>`1.65`</td></tr><tr><td>`1.66`</td><td>`1.66`</td></tr><tr><td>`1.78`</td><td>`1.78`</td></tr><tr><td>`1.85`</td><td>`1.85`</td></tr><tr><td>`2.2`</td><td>`2.2`</td></tr><tr><td>`2.35`</td><td>`2.35`</td></tr><tr><td>`2.77`</td><td>`2.77`</td></tr></table>**Values:** Any String | -| `weight_<<key>>`<sup>1</sup> | **Description:** Controls the weight of the Overlay. Higher numbers have priority.<br>**Values:** Any Number | +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -{% - include-markdown "../overlay_variables.md" -%} +??? info "Click to expand" -{% - include-markdown "../overlay_text_variables.md" -%} + === "File-Specific Template Variables" -## Example Template Variable Amendments + The below template variables are available specifically for this PMM Defaults file. -The below is an example config.yml extract with some Template Variables added in to change how the file works. + Be sure to also check out the "Overlay Template Variables" tab for additional variables. -```yaml -libraries: - Movies: - overlay_files: - - pmm: aspect - template_variables: - text_1.33: "4:9" - text_1.77: "16:9" - TV Shows: - overlay_files: - - pmm: aspect - template_variables: - text_1.33: "4:9" - text_1.77: "16:9" - - pmm: aspect - template_variables: - overlay_level: episode - text_1.33: "4:9" - text_1.77: "16:9" - - pmm: aspect - template_variables: - overlay_level: season - text_1.33: "4:9" - text_1.77: "16:9" -``` \ No newline at end of file + | Variable( )| Default / Values( / Values )| + |:-----------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `horizontal_offset` | `150` | + | `horizontal_align` | `center` | + | `vertical_offset` | `0` | + | `vertical_align` | `bottom` | + | `back_color` | `#00000099` | + | `back_radius` | `30` | + | `back_width` | `305` | + | `back_height` | `105` || + | `text_<<key>>`<sup>1</sup> | **Description:** Choose the text for the Overlay.<br>**Default:** <table class="clearTable"><tr><th>Key</th><th>Default</th></tr><tr><td>`1.33`</td><td>`1.33`</td></tr><tr><td>`1.65`</td><td>`1.65`</td></tr><tr><td>`1.66`</td><td>`1.66`</td></tr><tr><td>`1.78`</td><td>`1.78`</td></tr><tr><td>`1.85`</td><td>`1.85`</td></tr><tr><td>`2.2`</td><td>`2.2`</td></tr><tr><td>`2.35`</td><td>`2.35`</td></tr><tr><td>`2.77`</td><td>`2.77`</td></tr></table>**Values:** Any String | + | `weight_<<key>>`<sup>1</sup> | **Description:** Controls the weight of the Overlay. Higher numbers have priority.<br>**Values:** Any Number | + + === "Overlay Template Variables" + + {% + include-markdown "../overlay_text_variables.md" + %} + + {% + include-markdown "../overlay_variables.md" + %} + + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ```yaml + libraries: + Movies: + overlay_files: + - pmm: aspect + template_variables: + text_1.33: "4:9" + text_1.77: "16:9" + TV Shows: + overlay_files: + - pmm: aspect + template_variables: + text_1.33: "4:9" + text_1.77: "16:9" + - pmm: aspect + template_variables: + overlay_level: episode + text_1.33: "4:9" + text_1.77: "16:9" + - pmm: aspect + template_variables: + overlay_level: season + text_1.33: "4:9" + text_1.77: "16:9" + ``` \ No newline at end of file diff --git a/docs/defaults/overlays/audio_codec.md b/docs/defaults/overlays/audio_codec.md index 48dbda41..a1658bc7 100644 --- a/docs/defaults/overlays/audio_codec.md +++ b/docs/defaults/overlays/audio_codec.md @@ -57,42 +57,54 @@ libraries: builder_level: episode ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -| Variable | Default / Values | -|:-----------------------------|:-------------------------------------------------------------------------------------------------------------| -| `horizontal_offset` | `0` | -| `horizontal_align` | `center` | -| `vertical_offset` | `15` | -| `vertical_align` | `top` | -| `back_color` | `#00000099` | -| `back_radius` | `30` | -| `back_width` | `305` | -| `back_height` | `105`/`189` | -| `style` | **Description:** Choose the Overlay Style.<br>**Default:** `compact`<br>**Values:** `compact` or `standard` | -| `builder_level` | **Description:** Choose the Overlay Level.<br>**Values:** `season` or `episode` | -| `weight_<<key>>`<sup>1</sup> | **Description:** Controls the weight of the Overlay. Higher numbers have priority.<br>**Values:** Any Number | -| `regex_<<key>>`<sup>1</sup> | **Description:** Controls the regex of the Overlay Search.<br>**Values:** Any Proper Regex | +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -1. Each default overlay has a `key` that when calling to effect a specific overlay you must replace `<<key>>` with when calling. +??? info "Click to expand" -{% - include-markdown "../overlay_variables.md" -%} + === "File-Specific Template Variables" -## Example Template Variable Amendments + The below template variables are available specifically for this PMM Defaults file. -The below is an example config.yml extract with some Template Variables added in to change how the file works. + Be sure to also check out the "Overlay Template Variables" tab for additional variables. -```yaml -libraries: - Movies: - overlay_files: - - pmm: audio_codec - template_variables: - use_opus: false - use_mp3: false - style: standard -``` + | Variable | Default / Values | + |:-----------------------------|:-------------------------------------------------------------------------------------------------------------| + | `horizontal_offset` | `0` | + | `horizontal_align` | `center` | + | `vertical_offset` | `15` | + | `vertical_align` | `top` | + | `back_color` | `#00000099` | + | `back_radius` | `30` | + | `back_width` | `305` | + | `back_height` | `105`/`189` | + | `style` | **Description:** Choose the Overlay Style.<br>**Default:** `compact`<br>**Values:** `compact` or `standard` | + | `builder_level` | **Description:** Choose the Overlay Level.<br>**Values:** `season` or `episode` | + | `weight_<<key>>`<sup>1</sup> | **Description:** Controls the weight of the Overlay. Higher numbers have priority.<br>**Values:** Any Number | + | `regex_<<key>>`<sup>1</sup> | **Description:** Controls the regex of the Overlay Search.<br>**Values:** Any Proper Regex | + + 1. Each default overlay has a `key` that when calling to effect a specific overlay you must replace `<<key>>` with when calling. + + === "Overlay Template Variables" + + {% + include-markdown "../overlay_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ```yaml + libraries: + Movies: + overlay_files: + - pmm: audio_codec + template_variables: + use_opus: false + use_mp3: false + style: standard + ``` diff --git a/docs/defaults/overlays/commonsense.md b/docs/defaults/overlays/commonsense.md index a5d519e8..2389f109 100644 --- a/docs/defaults/overlays/commonsense.md +++ b/docs/defaults/overlays/commonsense.md @@ -54,41 +54,53 @@ libraries: builder_level: episode ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -| Variable | Default / Values | -|:----------------------|:--------------------------------------------------------------------------------------------------------------------------------------------| -| `horizontal_offset` | `15` | -| `horizontal_align` | `left` | -| `vertical_offset` | `270` | -| `vertical_align` | `bottom` | -| `back_color` | `#00000099` | -| `back_radius` | `30` | -| `back_width` | `305` | -| `back_height` | `105` | -| `addon_offset` | **Description:** Text Addon Image Offset from the text.<br>**Default:** `15`<br>**Values:** Any number greater than 0 | -| `addon_position` | **Description:** Text Addon Image Alignment in relation to the text.<br>**Default:** `left`<br>**Values:** `left`, `right`, `top`, `bottom` | -| `pre_text` | **Description:** Choose the text before the key for the Overlay.<br>**Values:** Any String | -| `post_text` | **Description:** Choose the text after the key for the Overlay.<br>**Default:** `+`<br>**Values:** Any String | -| `pre_nr_text` | **Description:** Choose the text before the `nr` key for the Overlay.<br>**Values:** Any String | -| `post_nr_text` | **Description:** Choose the text after the `nr` key for the Overlay.<br>**Values:** Any String | -| `builder_level` | **Description:** Choose the Overlay Level.<br>**Values:** `season` or `episode` | +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -{% - include-markdown "../overlay_variables.md" -%} +??? info "Click to expand" -## Example Template Variable Amendments + === "File-Specific Template Variables" -The below is an example config.yml extract with some Template Variables added in to change how the file works. + The below template variables are available specifically for this PMM Defaults file. -```yaml -libraries: - Movies: - overlay_files: - - pmm: commonsense - template_variables: - pre_text: "CS" -``` + Be sure to also check out the "Overlay Template Variables" tab for additional variables. + + | Variable | Default / Values | + |:----------------------|:--------------------------------------------------------------------------------------------------------------------------------------------| + | `horizontal_offset` | `15` | + | `horizontal_align` | `left` | + | `vertical_offset` | `270` | + | `vertical_align` | `bottom` | + | `back_color` | `#00000099` | + | `back_radius` | `30` | + | `back_width` | `305` | + | `back_height` | `105` | + | `addon_offset` | **Description:** Text Addon Image Offset from the text.<br>**Default:** `15`<br>**Values:** Any number greater than 0 | + | `addon_position` | **Description:** Text Addon Image Alignment in relation to the text.<br>**Default:** `left`<br>**Values:** `left`, `right`, `top`, `bottom` | + | `pre_text` | **Description:** Choose the text before the key for the Overlay.<br>**Values:** Any String | + | `post_text` | **Description:** Choose the text after the key for the Overlay.<br>**Default:** `+`<br>**Values:** Any String | + | `pre_nr_text` | **Description:** Choose the text before the `nr` key for the Overlay.<br>**Values:** Any String | + | `post_nr_text` | **Description:** Choose the text after the `nr` key for the Overlay.<br>**Values:** Any String | + | `builder_level` | **Description:** Choose the Overlay Level.<br>**Values:** `season` or `episode` | + + === "Overlay Template Variables" + + {% + include-markdown "../overlay_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ```yaml + libraries: + Movies: + overlay_files: + - pmm: commonsense + template_variables: + pre_text: "CS" + ``` diff --git a/docs/defaults/overlays/content_rating_de.md b/docs/defaults/overlays/content_rating_de.md index 14980a3b..54e2e06d 100644 --- a/docs/defaults/overlays/content_rating_de.md +++ b/docs/defaults/overlays/content_rating_de.md @@ -19,7 +19,7 @@ Requirements: Use the [Mass Content Rating Update Library Operation](../../confi | 12 | `12` | | 16 | `16` | | 18 | `18` | -| BPJM | `bpjm` | +| BPjM | `bpjm` | | NR | `nr` | ## Config diff --git a/docs/defaults/overlays/content_rating_uk.md b/docs/defaults/overlays/content_rating_uk.md index d4ec82c4..31838d25 100644 --- a/docs/defaults/overlays/content_rating_uk.md +++ b/docs/defaults/overlays/content_rating_uk.md @@ -43,42 +43,54 @@ libraries: builder_level: episode ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -| Variable | Default / Values | -|:--------------------|:-----------------| -| `color` | `` | -| `horizontal_offset` | `15` | -| `horizontal_align` | `left` | -| `vertical_offset` | `270` | -| `vertical_align` | `bottom` | +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -| Variable | Description & Values | -|:------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `color` | **Description:** Color version of the content rating images<br>**Default:**`` Set to `false` if you want b&w version. | -| `back_color` | **Description:** Choose the back color in RGBA for the overlay lozenge.<br>**Default:**`#00000099` | -| `back_radius` | **Description:** Choose the back radius for the overlay lozenge.<br>**Default:**`30` | -| `back_width` | **Description:** Choose the back width for the overlay lozenge.<br>**Default:**`305` | -| `back_height` | **Description:** Choose the back height for the overlay lozenge.<br>**Default:**`105` | -| `addon_offset` | **Description:** Text Addon Image Offset from the text.<br>**Default:** `15`<br>**Values:** Any number greater than 0 | -| `addon_position` | **Description:** Text Addon Image Alignment in relation to the text.<br>**Default:** `left`<br>**Values:** `left`, `right`, `top`, `bottom` | -| `builder_level` | **Description:** Choose the Overlay Level.<br>**Values:** `season` or `episode` | +??? info "Click to expand" -{% - include-markdown "../overlay_variables.md" -%} + === "File-Specific Template Variables" -## Example Template Variable Amendments + The below template variables are available specifically for this PMM Defaults file. -The below is an example config.yml extract with some Template Variables added in to change how the file works. + Be sure to also check out the "Overlay Template Variables" tab for additional variables. -```yaml -libraries: - Movies: - overlay_files: - - pmm: content_rating_uk - template_variables: - color: false -``` + | Variable | Default / Values | + |:--------------------|:-----------------| + | `color` | `` | + | `horizontal_offset` | `15` | + | `horizontal_align` | `left` | + | `vertical_offset` | `270` | + | `vertical_align` | `bottom` | + + | Variable | Description & Values | + |:------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `color` | **Description:** Color version of the content rating images<br>**Default:**`` Set to `false` if you want b&w version. | + | `back_color` | **Description:** Choose the back color in RGBA for the overlay lozenge.<br>**Default:**`#00000099` | + | `back_radius` | **Description:** Choose the back radius for the overlay lozenge.<br>**Default:**`30` | + | `back_width` | **Description:** Choose the back width for the overlay lozenge.<br>**Default:**`305` | + | `back_height` | **Description:** Choose the back height for the overlay lozenge.<br>**Default:**`105` | + | `addon_offset` | **Description:** Text Addon Image Offset from the text.<br>**Default:** `15`<br>**Values:** Any number greater than 0 | + | `addon_position` | **Description:** Text Addon Image Alignment in relation to the text.<br>**Default:** `left`<br>**Values:** `left`, `right`, `top`, `bottom` | + | `builder_level` | **Description:** Choose the Overlay Level.<br>**Values:** `season` or `episode` | + + === "Overlay Template Variables" + + {% + include-markdown "../overlay_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ```yaml + libraries: + Movies: + overlay_files: + - pmm: content_rating_uk + template_variables: + color: false + ``` diff --git a/docs/defaults/overlays/content_rating_us_movie.md b/docs/defaults/overlays/content_rating_us_movie.md index 8094dd70..f7b50875 100644 --- a/docs/defaults/overlays/content_rating_us_movie.md +++ b/docs/defaults/overlays/content_rating_us_movie.md @@ -32,38 +32,50 @@ libraries: - pmm: content_rating_us_movie ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -| Variable | Default / Values | -|:--------------------|:--------------------------------------------------------------------------------------------------------------------------------------------| -| `color` | `` | -| `horizontal_offset` | `15` | -| `horizontal_align` | `left` | -| `vertical_offset` | `270` | -| `vertical_align` | `bottom` | -| `color` | **Description:** Color version of the content rating images<br>**Default:**`` Set to `false` if you want b&w version. | -| `back_color` | **Description:** Choose the back color in RGBA for the overlay lozenge.<br>**Default:**`#00000099` | -| `back_radius` | **Description:** Choose the back radius for the overlay lozenge.<br>**Default:**`30` | -| `back_width` | **Description:** Choose the back width for the overlay lozenge.<br>**Default:**`305` | -| `back_height` | **Description:** Choose the back height for the overlay lozenge.<br>**Default:**`105` | -| `addon_offset` | **Description:** Text Addon Image Offset from the text.<br>**Default:** `15`<br>**Values:** Any number greater than 0 | -| `addon_position` | **Description:** Text Addon Image Alignment in relation to the text.<br>**Default:** `left`<br>**Values:** `left`, `right`, `top`, `bottom` | +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -{% - include-markdown "../overlay_variables.md" -%} +??? info "Click to expand" -## Example Template Variable Amendments + === "File-Specific Template Variables" -The below is an example config.yml extract with some Template Variables added in to change how the file works. + The below template variables are available specifically for this PMM Defaults file. -```yaml -libraries: - Movies: - overlay_files: - - pmm: content_rating_us_movie - template_variables: - color: false -``` + Be sure to also check out the "Overlay Template Variables" tab for additional variables. + + | Variable | Default / Values | + |:--------------------|:--------------------------------------------------------------------------------------------------------------------------------------------| + | `color` | `` | + | `horizontal_offset` | `15` | + | `horizontal_align` | `left` | + | `vertical_offset` | `270` | + | `vertical_align` | `bottom` | + | `color` | **Description:** Color version of the content rating images<br>**Default:**`` Set to `false` if you want b&w version. | + | `back_color` | **Description:** Choose the back color in RGBA for the overlay lozenge.<br>**Default:**`#00000099` | + | `back_radius` | **Description:** Choose the back radius for the overlay lozenge.<br>**Default:**`30` | + | `back_width` | **Description:** Choose the back width for the overlay lozenge.<br>**Default:**`305` | + | `back_height` | **Description:** Choose the back height for the overlay lozenge.<br>**Default:**`105` | + | `addon_offset` | **Description:** Text Addon Image Offset from the text.<br>**Default:** `15`<br>**Values:** Any number greater than 0 | + | `addon_position` | **Description:** Text Addon Image Alignment in relation to the text.<br>**Default:** `left`<br>**Values:** `left`, `right`, `top`, `bottom` | + + === "Overlay Template Variables" + + {% + include-markdown "../overlay_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ```yaml + libraries: + Movies: + overlay_files: + - pmm: content_rating_us_movie + template_variables: + color: false + ``` diff --git a/docs/defaults/overlays/content_rating_us_show.md b/docs/defaults/overlays/content_rating_us_show.md index ef8d9190..40dc3e8c 100644 --- a/docs/defaults/overlays/content_rating_us_show.md +++ b/docs/defaults/overlays/content_rating_us_show.md @@ -38,46 +38,58 @@ libraries: builder_level: episode ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -| Variable | Default / Values | -|:---------------------|:--------------------------------------------------------------------------------------------------------------------------------------------| -| `color` | `` | -| `horizontal_offset` | `15` | -| `horizontal_align` | `left` | -| `vertical_offset` | `270` | -| `vertical_align` | `bottom` | -| `color` | **Description:** Color version of the content rating images<br>**Default:**`` Set to `false` if you want b&w version. | -| `back_color` | **Description:** Choose the back color in RGBA for the overlay lozenge.<br>**Default:**`#00000099` | -| `back_radius` | **Description:** Choose the back radius for the overlay lozenge.<br>**Default:**`30` | -| `back_width` | **Description:** Choose the back width for the overlay lozenge.<br>**Default:**`305` | -| `back_height` | **Description:** Choose the back height for the overlay lozenge.<br>**Default:**`105` | -| `addon_offset` | **Description:** Text Addon Image Offset from the text.<br>**Default:** `15`<br>**Values:** Any number greater than 0 | -| `addon_position` | **Description:** Text Addon Image Alignment in relation to the text.<br>**Default:** `left`<br>**Values:** `left`, `right`, `top`, `bottom` | +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -{% - include-markdown "../overlay_variables.md" -%} +??? info "Click to expand" -## Example Template Variable Amendments + === "File-Specific Template Variables" -The below is an example config.yml extract with some Template Variables added in to change how the file works. + The below template variables are available specifically for this PMM Defaults file. -```yaml -libraries: - TV Shows: - overlay_files: - - pmm: content_rating_us_show - template_variables: - color: false - - pmm: content_rating_us_show - template_variables: - color: false - builder_level: season - - pmm: content_rating_us_show - template_variables: - color: false - builder_level: episode -``` + Be sure to also check out the "Overlay Template Variables" tab for additional variables. + + | Variable | Default / Values | + |:---------------------|:--------------------------------------------------------------------------------------------------------------------------------------------| + | `color` | `` | + | `horizontal_offset` | `15` | + | `horizontal_align` | `left` | + | `vertical_offset` | `270` | + | `vertical_align` | `bottom` | + | `color` | **Description:** Color version of the content rating images<br>**Default:**`` Set to `false` if you want b&w version. | + | `back_color` | **Description:** Choose the back color in RGBA for the overlay lozenge.<br>**Default:**`#00000099` | + | `back_radius` | **Description:** Choose the back radius for the overlay lozenge.<br>**Default:**`30` | + | `back_width` | **Description:** Choose the back width for the overlay lozenge.<br>**Default:**`305` | + | `back_height` | **Description:** Choose the back height for the overlay lozenge.<br>**Default:**`105` | + | `addon_offset` | **Description:** Text Addon Image Offset from the text.<br>**Default:** `15`<br>**Values:** Any number greater than 0 | + | `addon_position` | **Description:** Text Addon Image Alignment in relation to the text.<br>**Default:** `left`<br>**Values:** `left`, `right`, `top`, `bottom` | + + === "Overlay Template Variables" + + {% + include-markdown "../overlay_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ```yaml + libraries: + TV Shows: + overlay_files: + - pmm: content_rating_us_show + template_variables: + color: false + - pmm: content_rating_us_show + template_variables: + color: false + builder_level: season + - pmm: content_rating_us_show + template_variables: + color: false + builder_level: episode + ``` diff --git a/docs/defaults/overlays/direct_play.md b/docs/defaults/overlays/direct_play.md index bfdc7cda..f47cbed2 100644 --- a/docs/defaults/overlays/direct_play.md +++ b/docs/defaults/overlays/direct_play.md @@ -22,39 +22,52 @@ libraries: - pmm: direct_play ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -| Variable | Default / Values | -|:--------------------|:--------------------------------------------------------------------------------| -| `horizontal_offset` | `0` | -| `horizontal_align` | `center` | -| `vertical_offset` | `150` | -| `vertical_align` | `bottom` | -| `back_color` | `#00000099` | -| `back_radius` | `30` | -| `back_width` | `305` | -| `back_height` | `170` | -| `builder_level` | **Description:** Choose the Overlay Level.<br>**Values:** `season` or `episode` | +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -{% - include-markdown "../overlay_variables.md" -%} +??? info "Click to expand" -{% - include-markdown "../overlay_text_variables.md" -%} + === "File-Specific Template Variables" -## Example Template Variable Amendments + The below template variables are available specifically for this PMM Defaults file. -The below is an example config.yml extract with some Template Variables added in to change how the file works. + Be sure to also check out the "Overlay Template Variables" tab for additional variables. -```yaml -libraries: - Movies: - overlay_files: - - pmm: direct_play - template_variables: - builder_level: episode -``` + | Variable | Default / Values | + |:--------------------|:--------------------------------------------------------------------------------| + | `horizontal_offset` | `0` | + | `horizontal_align` | `center` | + | `vertical_offset` | `150` | + | `vertical_align` | `bottom` | + | `back_color` | `#00000099` | + | `back_radius` | `30` | + | `back_width` | `305` | + | `back_height` | `170` | + | `builder_level` | **Description:** Choose the Overlay Level.<br>**Values:** `season` or `episode` | + + === "Overlay Template Variables" + + {% + include-markdown "../overlay_text_variables.md" + %} + + {% + include-markdown "../overlay_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + + ```yaml + libraries: + Movies: + overlay_files: + - pmm: direct_play + template_variables: + builder_level: episode + ``` diff --git a/docs/defaults/overlays/episode_info.md b/docs/defaults/overlays/episode_info.md index 42e61bed..1f476922 100644 --- a/docs/defaults/overlays/episode_info.md +++ b/docs/defaults/overlays/episode_info.md @@ -19,10 +19,20 @@ libraries: - pmm: episode_info ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. + +??? info "Click to expand" + + === "File-Specific Template Variables" + + The below template variables are available specifically for this PMM Defaults file. + + Be sure to also check out the "Overlay Template Variables" tab for additional variables. + | Variable | Default / Values | |:----------------------|:-----------------| | `horizontal_offset` | `15` | @@ -34,23 +44,26 @@ Template Variables can be used to manipulate the file in various ways to slightl | `back_width` | `305` | | `back_height` | `105` | -{% - include-markdown "../overlay_variables.md" -%} + === "Overlay Template Variables" -{% - include-markdown "../overlay_text_variables.md" -%} + {% + include-markdown "../overlay_text_variables.md" + %} -## Example Template Variable Amendments + {% + include-markdown "../overlay_variables.md" + %} -The below is an example config.yml extract with some Template Variables added in to change how the file works. + ### Example Template Variable Amendments -```yaml -libraries: - TV Shows: - overlay_files: - - pmm: episode_info - template_variables: - font_color: "#FFFFFF99" -``` + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + + ```yaml + libraries: + TV Shows: + overlay_files: + - pmm: episode_info + template_variables: + font_color: "#FFFFFF99" + ``` diff --git a/docs/defaults/overlays/flixpatrol.md b/docs/defaults/overlays/flixpatrol.md index bd8a2260..e0d3e509 100644 --- a/docs/defaults/overlays/flixpatrol.md +++ b/docs/defaults/overlays/flixpatrol.md @@ -34,64 +34,78 @@ libraries: - pmm: flixpatrol ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. + +??? info "Click to expand" + + === "File-Specific Template Variables" + + The below template variables are available specifically for this PMM Defaults file. + + Be sure to also check out the "Overlay Template Variables" tab for additional variables. + -| Variable | Default / Values | -|:--------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `horizontal_offset` | `30` | -| `horizontal_align` | `left`/`right` | -| `vertical_offset` | `465`/`670`/`875` | -| `vertical_align` | `top` | -| `back_color` | `#00000099` | -| `back_radius` | `30` | -| `back_width` | `160` | -| `back_height` | `160` | -| `back_padding` | `15` | -| `position` | **Description:** Changes the position of the Overlays.<br>**Default:** `right`<br>**Values:** `right`, `left`, or List of Coordinates | -| `style` | **Description:** Changes the style of the Logo Image.<br>**Default:** `round`<br>**Values:** `round` or `square` | -| `pre_text` | **Description:** Changes the text before the number.<br>**Default:** `TOP`<br>**Values:** Any String | -| `limit` | **Description:** Changes the Builder Limit for all overlays in a Defaults file.<br>**Default:** `10`<br>**Values:** Any Number 1-10 | -| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's overlay.<br>**Default:** `limit`<br>**Values:** Any Number 1-10 | -| `location` | **Description:** Changes the Builder Location for all overlays in a Defaults file.<br>**Default:** `world`<br>**Values:** [`location` Attribute Options](../../builders/flixpatrol.md#top-platform-attributes) | -| `location_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Location of the specified key's overlay.<br>**Default:** `location`<br>**Values:** [`location` Attribute Options](../../builders/flixpatrol.md#top-platform-attributes) | -| `in_the_last` | **Description:** Changes How many days of daily Top 10 Lists to look at.<br>**Default:** `1`<br>**Values:** Any Number 1-30 | -| `in_the_last_<<key>>`<sup>1</sup> | **Description:** Changes How many days of daily Top 10 Lists to look at.<br>**Default:** `in_the_last`<br>**Values:** Any Number 1-30 | -| `weight_<<key>>`<sup>1</sup> | **Description:** Controls the weight of the Overlay. Higher numbers have priority.<br>**Values:** Any Number | -| `addon_offset` | **Description:** Text Addon Image Offset from the text.<br>**Default:** `30`<br>**Values:** Any Number greater then 0 | -| `addon_position` | **Description:** Text Addon Image Alignment in relation to the text.<br>**Default:** `top`<br>**Values:** `left`, `right`, `top`, `bottom` | + | Variable | Default / Values | + |:--------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `horizontal_offset` | `30` | + | `horizontal_align` | `left`/`right` | + | `vertical_offset` | `465`/`670`/`875` | + | `vertical_align` | `top` | + | `back_color` | `#00000099` | + | `back_radius` | `30` | + | `back_width` | `160` | + | `back_height` | `160` | + | `back_padding` | `15` | + | `position` | **Description:** Changes the position of the Overlays.<br>**Default:** `right`<br>**Values:** `right`, `left`, or List of Coordinates | + | `style` | **Description:** Changes the style of the Logo Image.<br>**Default:** `round`<br>**Values:** `round` or `square` | + | `pre_text` | **Description:** Changes the text before the number.<br>**Default:** `TOP`<br>**Values:** Any String | + | `limit` | **Description:** Changes the Builder Limit for all overlays in a Defaults file.<br>**Default:** `10`<br>**Values:** Any Number 1-10 | + | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's overlay.<br>**Default:** `limit`<br>**Values:** Any Number 1-10 | + | `location` | **Description:** Changes the Builder Location for all overlays in a Defaults file.<br>**Default:** `world`<br>**Values:** [`location` Attribute Options](../../files/builders/flixpatrol.md#top-platform-attributes) | + | `location_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Location of the specified key's overlay.<br>**Default:** `location`<br>**Values:** [`location` Attribute Options](../../files/builders/flixpatrol.md#top-platform-attributes) | + | `in_the_last` | **Description:** Changes How many days of daily Top 10 Lists to look at.<br>**Default:** `1`<br>**Values:** Any Number 1-30 | + | `in_the_last_<<key>>`<sup>1</sup> | **Description:** Changes How many days of daily Top 10 Lists to look at.<br>**Default:** `in_the_last`<br>**Values:** Any Number 1-30 | + | `weight_<<key>>`<sup>1</sup> | **Description:** Controls the weight of the Overlay. Higher numbers have priority.<br>**Values:** Any Number | + | `addon_offset` | **Description:** Text Addon Image Offset from the text.<br>**Default:** `30`<br>**Values:** Any Number greater than 0 | + | `addon_position` | **Description:** Text Addon Image Alignment in relation to the text.<br>**Default:** `top`<br>**Values:** `left`, `right`, `top`, `bottom` | -1. Each default overlay has a `key` that when calling to effect a specific overlay you must replace `<<key>>` with when calling. + 1. Each default overlay has a `key` that when calling to effect a specific overlay you must replace `<<key>>` with when calling. -{% - include-markdown "../overlay_variables.md" - end="Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored." -%} + === "Overlay Template Variables" -???+ bug "Warning" + {% + include-markdown "../overlay_text_variables.md" + %} - `horizontal_offset`, `horizontal_align`, `vertical_offset`, and `vertical_align` are NOT available for use in this file + {% + include-markdown "../overlay_variables.md" + end="Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored." + %} -{% - include-markdown "../overlay_variables.md" - start="The below template variables are available for this PMM Defaults file." -%} + ???+ bug "Warning" -{% - include-markdown "../overlay_text_variables.md" -%} + `horizontal_offset`, `horizontal_align`, `vertical_offset`, and `vertical_align` are NOT available for use in this file -## Example Template Variable Amendments + {% + include-markdown "../overlay_variables.md" + start="The below template variables are available for this PMM Defaults file." + %} -The below is an example config.yml extract with some Template Variables added in to change how the file works. -```yaml -libraries: - Movies: - overlay_files: - - pmm: flixpatrol - template_variables: - location: united_states -``` + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + + ```yaml + libraries: + Movies: + overlay_files: + - pmm: flixpatrol + template_variables: + location: united_states + ``` diff --git a/docs/defaults/overlays/language_count.md b/docs/defaults/overlays/language_count.md index 531084be..a16d4774 100644 --- a/docs/defaults/overlays/language_count.md +++ b/docs/defaults/overlays/language_count.md @@ -35,40 +35,53 @@ libraries: builder_level: episode ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -| Variable | Default / Values | -|:-----------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `horizontal_offset` | `0` | -| `horizontal_align` | `center` | -| `vertical_offset` | `30` | -| `vertical_align` | `bottom` | -| `back_color` | `#00000099` | -| `back_radius` | `30` | -| `back_width` | `188` | -| `back_height` | `105` | -| `use_subtitles` | **Description:** Controls if the overlay is based on subtitle language instead of audio language.<br>**Values:** `true` to look at subtitle language instead of audio language | -| `minimum` | **Description:** Choose the minimum for the `multi` Overlay.<br>**Default:** `2` <br>**Values:** Any Number | -| `builder_level` | **Description:** Choose the Overlay Level.<br>**Values:** `season` or `episode` | -| `weight_<<key>>`<sup>1</sup> | **Description:** Controls the weight of the Overlay. Higher numbers have priority.<br>**Values:** Any Number | +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -1. Each default overlay has a `key` that when calling to effect a specific overlay you must replace `<<key>>` with when calling. +??? info "Click to expand" -{% - include-markdown "../overlay_variables.md" -%} + === "File-Specific Template Variables" -## Example Template Variable Amendments + The below template variables are available specifically for this PMM Defaults file. -The below is an example config.yml extract with some Template Variables added in to change how the file works. + Be sure to also check out the "Overlay Template Variables" tab for additional variables. -```yaml -libraries: - Movies: - overlay_files: - - pmm: language_count - template_variables: - use_subtitles: true -``` + | Variable | Default / Values | + |:-----------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `horizontal_offset` | `0` | + | `horizontal_align` | `center` | + | `vertical_offset` | `30` | + | `vertical_align` | `bottom` | + | `back_color` | `#00000099` | + | `back_radius` | `30` | + | `back_width` | `188` | + | `back_height` | `105` | + | `use_subtitles` | **Description:** Controls if the overlay is based on subtitle language instead of audio language.<br>**Values:** `true` to look at subtitle language instead of audio language | + | `minimum` | **Description:** Choose the minimum for the `multi` Overlay.<br>**Default:** `2` <br>**Values:** Any Number | + | `builder_level` | **Description:** Choose the Overlay Level.<br>**Values:** `season` or `episode` | + | `weight_<<key>>`<sup>1</sup> | **Description:** Controls the weight of the Overlay. Higher numbers have priority.<br>**Values:** Any Number | + + 1. Each default overlay has a `key` that when calling to effect a specific overlay you must replace `<<key>>` with when calling. + + === "Overlay Template Variables" + + {% + include-markdown "../overlay_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + + ```yaml + libraries: + Movies: + overlay_files: + - pmm: language_count + template_variables: + use_subtitles: true + ``` diff --git a/docs/defaults/overlays/languages.md b/docs/defaults/overlays/languages.md index 70f9d565..bb3a2927 100644 --- a/docs/defaults/overlays/languages.md +++ b/docs/defaults/overlays/languages.md @@ -118,61 +118,74 @@ libraries: builder_level: episode ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -| Variable | Default / Values | -|:------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `horizontal_offset` | `15`/`206`/`397`/`588`/`779` | -| `horizontal_align` | `left`/`right`/`center` | -| `vertical_offset` | `15`/`76`/`137`/`198`/`259` | -| `vertical_align` | `top`/`bottom`/`center` | -| `back_color` | `#00000099` | -| `back_radius` | `26`/` ` | -| `back_width` | `190` | -| `back_height` | `105` | -| `back_align` | `left`/`right` | -| `font` | `fonts/Inter-Bold.ttf` | -| `font_size` | `50` | -| `languages` | **Description:** Controls which Languages will be active.<br>**Default:** `["en", "de", "fr", "es", "pt", "ja"]` <br>**Values:** List of [ISO 639-1 Codes](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) for the Languages desired | -| `use_subtitles` | **Description:** Controls if the overlay is based on subtitle language instead of audio language.<br>**Values:** `true` to look at subtitle language instead of audio language | -| `builder_level` | **Description:** Choose the Overlay Level.<br>**Values:** `season` or `episode` | -| `horizontal_position` | **Description:** Choose the horizontal position for the flag group.<br>**Default:** `left`<br>**Values:** `left`, `left2`, `center`, `center_left`, `center_right`, `right` or `right2` | -| `vertical_position` | **Description:** Choose the vertical position for the flag group.<br>**Default:** `top`<br>**Values:** `top`, `top2`, `top3`, `center`, `center_top`, `center_bottom`, `bottom`, `bottom2` or `bottom3` | -| `overlay_limit` | **Description:** Choose the number of overlay this queue displays.<br>**Default:** `3`<br>**Values:** `1`, `2`, `3`, `4`, or `5` | -| `group_alignment` | **Description:** Choose the display alignment for the flag group.<br>**Default:** `vertical`<br>**Values:** `horizontal`, or `vertical` | -| `style` | **Description:** Controls the visual theme of the overlays created.<table class="clearTable"><tr><th>Values:</th></tr><tr><td><code>round</code></td><td>Round Theme</td></tr><tr><td><code>square</code></td><td>Square Theme</td></tr><tr><td><code>half</code></td><td>Square Flag with Round Background</td></tr></table> | -| `flag_alignment` | **Description:** Controls the flag alignment in the backdrop.<br>**Default:** `left`<br>**Values:** `left` or `right` | -| `offset` | **Description:** Controls the offset between the flag and the text.<br>**Default:** `10`<br>**Values:** Any Integer 0 or greater | -| `use_lowercase` | **Description:** Controls if the overlay display is in lowercase.<br>**Values:** `true` to use lowercase text | -| `position` | **Description:** Use the Custom Given Queue instead of the the provided Queues.<br>**Values:** List of Coordinates | -| `country_<<key>>`<sup>1</sup> | **Description:** Controls the country image for the Overlay.<br>**Default:** Listed in the [Table](#supported-audiosubtitle-language-flags) above<br>**Values:** [ISO 3166-1 Country Code](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) for the flag desired | -| `weight_<<key>>`<sup>1</sup> | **Description:** Controls the weight of the Overlay. Higher numbers have priority.<br>**Values:** Any Number | +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -1. Each default overlay has a `key` that when calling to effect a specific overlay you must replace `<<key>>` with when calling. +??? info "Click to expand" -{% - include-markdown "../overlay_variables.md" -%} + === "File-Specific Template Variables" -{% - include-markdown "../overlay_text_variables.md" -%} + The below template variables are available specifically for this PMM Defaults file. -## Example Template Variable Amendments + Be sure to also check out the "Overlay Template Variables" tab for additional variables. -The below is an example config.yml extract with some Template Variables added in to change how the file works. + | Variable | Default / Values | + |:------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `horizontal_offset` | `15`/`206`/`397`/`588`/`779` | + | `horizontal_align` | `left`/`right`/`center` | + | `vertical_offset` | `15`/`76`/`137`/`198`/`259` | + | `vertical_align` | `top`/`bottom`/`center` | + | `back_color` | `#00000099` | + | `back_radius` | `26`/` ` | + | `back_width` | `190` | + | `back_height` | `105` | + | `back_align` | `left`/`right` | + | `font` | `fonts/Inter-Bold.ttf` | + | `font_size` | `50` | + | `languages` | **Description:** Controls which Languages will be active.<br>**Default:** `["en", "de", "fr", "es", "pt", "ja"]` <br>**Values:** List of [ISO 639-1 Codes](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) for the Languages desired | + | `use_subtitles` | **Description:** Controls if the overlay is based on subtitle language instead of audio language.<br>**Values:** `true` to look at subtitle language instead of audio language | + | `builder_level` | **Description:** Choose the Overlay Level.<br>**Values:** `season` or `episode` | + | `horizontal_position` | **Description:** Choose the horizontal position for the flag group.<br>**Default:** `left`<br>**Values:** `left`, `left2`, `center`, `center_left`, `center_right`, `right` or `right2` | + | `vertical_position` | **Description:** Choose the vertical position for the flag group.<br>**Default:** `top`<br>**Values:** `top`, `top2`, `top3`, `center`, `center_top`, `center_bottom`, `bottom`, `bottom2` or `bottom3` | + | `overlay_limit` | **Description:** Choose the number of overlay this queue displays.<br>**Default:** `3`<br>**Values:** `1`, `2`, `3`, `4`, or `5` | + | `group_alignment` | **Description:** Choose the display alignment for the flag group.<br>**Default:** `vertical`<br>**Values:** `horizontal`, or `vertical` | + | `style` | **Description:** Controls the visual theme of the overlays created.<table class="clearTable"><tr><th>Values:</th></tr><tr><td><code>round</code></td><td>Round Theme</td></tr><tr><td><code>square</code></td><td>Square Theme</td></tr><tr><td><code>half</code></td><td>Square Flag with Round Background</td></tr></table> | + | `flag_alignment` | **Description:** Controls the flag alignment in the backdrop.<br>**Default:** `left`<br>**Values:** `left` or `right` | + | `offset` | **Description:** Controls the offset between the flag and the text.<br>**Default:** `10`<br>**Values:** Any Integer 0 or greater | + | `use_lowercase` | **Description:** Controls if the overlay display is in lowercase.<br>**Values:** `true` to use lowercase text | + | `position` | **Description:** Use the Custom Given Queue instead of the the provided Queues.<br>**Values:** List of Coordinates | + | `country_<<key>>`<sup>1</sup> | **Description:** Controls the country image for the Overlay.<br>**Default:** Listed in the [Table](#supported-audiosubtitle-language-flags) above<br>**Values:** [ISO 3166-1 Country Code](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) for the flag desired | + | `weight_<<key>>`<sup>1</sup> | **Description:** Controls the weight of the Overlay. Higher numbers have priority.<br>**Values:** Any Number | -```yaml -libraries: - Movies: - overlay_files: - - pmm: languages - template_variables: - languages: - - en - - ja - use_subtitles: true - style: square -``` + 1. Each default overlay has a `key` that when calling to effect a specific overlay you must replace `<<key>>` with when calling. + + === "Overlay Template Variables" + + {% + include-markdown "../overlay_text_variables.md" + %} + + {% + include-markdown "../overlay_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + + ```yaml + libraries: + Movies: + overlay_files: + - pmm: languages + template_variables: + languages: + - en + - ja + use_subtitles: true + style: square + ``` diff --git a/docs/defaults/overlays/mediastinger.md b/docs/defaults/overlays/mediastinger.md index 9744ba9d..3b0d03cf 100644 --- a/docs/defaults/overlays/mediastinger.md +++ b/docs/defaults/overlays/mediastinger.md @@ -19,34 +19,47 @@ libraries: - pmm: mediastinger ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -| Variable | Default / Values | -|:--------------------|:-------------------| -| `horizontal_offset` | `200` | -| `horizontal_align` | `right` | -| `vertical_offset` | `15` | -| `vertical_align` | `top` | -| `back_color` | `#00000099` | -| `back_radius` | `30` | -| `back_width` | `105` | -| `back_height` | `105` | +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -{% - include-markdown "../overlay_variables.md" -%} +??? info "Click to expand" -## Example Template Variable Amendments + === "File-Specific Template Variables" -The below is an example config.yml extract with some Template Variables added in to change how the file works. + The below template variables are available specifically for this PMM Defaults file. -```yaml -libraries: - Movies: - overlay_files: - - pmm: mediastinger - template_variables: - font_color: "#FFFFFF99" -``` + Be sure to also check out the "Overlay Template Variables" tab for additional variables. + + | Variable | Default / Values | + |:--------------------|:-------------------| + | `horizontal_offset` | `200` | + | `horizontal_align` | `right` | + | `vertical_offset` | `15` | + | `vertical_align` | `top` | + | `back_color` | `#00000099` | + | `back_radius` | `30` | + | `back_width` | `105` | + | `back_height` | `105` | + + === "Overlay Template Variables" + + {% + include-markdown "../overlay_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + + ```yaml + libraries: + Movies: + overlay_files: + - pmm: mediastinger + template_variables: + font_color: "#FFFFFF99" + ``` diff --git a/docs/defaults/overlays/network.md b/docs/defaults/overlays/network.md index 75dfb0f5..521e040b 100644 --- a/docs/defaults/overlays/network.md +++ b/docs/defaults/overlays/network.md @@ -25,43 +25,56 @@ libraries: builder_level: episode ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -| Variable | Default / Values | -|:--------------------|:-----------------| -| `horizontal_offset` | `15` | -| `horizontal_align` | `left` | -| `vertical_offset` | `510` | -| `vertical_align` | `bottom` | -| `back_color` | `#00000099` | -| `back_radius` | `30` | -| `back_width` | `305` | -| `back_height` | `105` | +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. + +??? info "Click to expand" + + === "File-Specific Template Variables" + + The below template variables are available specifically for this PMM Defaults file. + + Be sure to also check out the "Overlay Template Variables" tab for additional variables. + + | Variable | Default / Values | + |:--------------------|:-----------------| + | `horizontal_offset` | `15` | + | `horizontal_align` | `left` | + | `vertical_offset` | `510` | + | `vertical_align` | `bottom` | + | `back_color` | `#00000099` | + | `back_radius` | `30` | + | `back_width` | `305` | + | `back_height` | `105` | -{% - include-markdown "../overlay_variables.md" -%} + === "Overlay Template Variables" -## Example Template Variable Amendments + {% + include-markdown "../overlay_variables.md" + %} -The below is an example config.yml extract with some Template Variables added in to change how the file works. + ### Example Template Variable Amendments -```yaml -libraries: - TV Shows: - overlay_files: - - pmm: network - template_variables: - vertical_offset: 390 - - pmm: network - template_variables: - vertical_offset: 390 - builder_level: season - - pmm: network - template_variables: - vertical_offset: 390 - builder_level: episode -``` + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + + ```yaml + libraries: + TV Shows: + overlay_files: + - pmm: network + template_variables: + vertical_offset: 390 + - pmm: network + template_variables: + vertical_offset: 390 + builder_level: season + - pmm: network + template_variables: + vertical_offset: 390 + builder_level: episode + ``` diff --git a/docs/defaults/overlays/ratings.md b/docs/defaults/overlays/ratings.md index db9b37ef..9599543a 100644 --- a/docs/defaults/overlays/ratings.md +++ b/docs/defaults/overlays/ratings.md @@ -4,7 +4,7 @@ The `ratings` Default Overlay File is used to create an overlay based on the Cri This file only updates the overlays based on the data in Plex, it will not pull the ratings directly from any third-party website, see recommendations below for more info. -**Please read [PMM Ratings Explained](../../pmm/install/guides/ratings.md) for more understanding on how PMM interacts with ratings.** +**Please read [PMM Ratings Explained](../../pmm/guides/ratings.md) for more understanding on how PMM interacts with ratings.** ![](images/ratings_overlay.png) @@ -14,7 +14,7 @@ Supported Overlay Level: Movie, Show, Episode Requirements: Template Variables must be configured, otherwise this file will not apply any overlays. -Recommendations: Use the [Mass * Rating Update Library Operation](../../config/operations.md#mass--rating-update) and the [Mass Episode * Rating Update Library Operation](../../config/operations.md#mass-episode--rating-update) to update Plex to the Ratings you want on the Overlay. +Recommendations: Use the [Mass * Rating Update Library Operation](../../config/operations.md) and the [Mass Episode * Rating Update Library Operation](../../config/operations.md) to update Plex to the Ratings you want on the Overlay. ## Config @@ -60,130 +60,142 @@ The below YAML in your config.yml will create the overlays: mass_episode_audience_rating_update: tmdb ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -These can be prepended with `rating1_`, `rating2_`, or `rating3_` to change that attribute on each rating individually. +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -???+ warning +??? info "Click to expand" - To amend `horizontal_offset` and `vertical_offset` you **must** prepend the variable with `rating1_`, `rating2_`, or `rating3_` + === "File-Specific Template Variables" -| Variable | Default / Values | -|:-----------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `horizontal_offset` | `30` | -| `horizontal_align` | `left` | -| `vertical_offset` | `0` | -| `vertical_align` | `center` | -| `back_color` | `#00000099` | -| `back_radius` | `30` | -| `back_width` | `160` | -| `back_height` | `160` | -| `back_padding` | `15` | -| `back_radius` | `30` | -| `rating1` | **Description:** Choose the rating to display in rating1.<br>**Values:** `critic`, `audience`, or `user` | -| `rating1_image` | **Description:** Choose the rating image to display in rating1.<br>**Values:** `anidb`, `imdb`, `letterboxd`, `tmdb`, `metacritic`, `rt_popcorn`, `rt_tomato`, `trakt`, `mal`, `mdb`, or `star` | -| `rating1_style` | **Description:** Choose the rating number style for rating1.<br>**Values:** <table class="clearTable"><tr><td>Ten Scale</td><td><code>""</code></td><td><code>8.7</code>, <code>9.0</code></td></tr><tr><td>Ten Scale removing <code>.0</code> </td><td><code>"#"</code></td><td><code>8.7</code>, <code>9</code></td></tr><tr><td>Hundred Scale</td><td><code>"%"</code></td><td><code>87</code>, <code>90</code></td></tr><tr><td>Five Scale</td><td><code>"/"</code></td><td><code>8.6</code> rating in plex will show as <code>4.3</code> on the overlay</td></tr></table> | -| `rating1_extra` | **Description:** Extra text after rating1.<br>**Default:** `%` for `rt_popcorn`, `rt_tomato`, `tmdb`. <br>**Values:** Any Value | -| `rating2` | **Description:** Choose the rating to display in rating2.<br>**Values:** `critic`, `audience`, or `user` | -| `rating2_image` | **Description:** Choose the rating image to display in rating2.<br>**Values:** `anidb`, `imdb`, `letterboxd`, `tmdb`, `metacritic`, `rt_popcorn`, `rt_tomato`, `trakt`, `mal`, `mdb`, or `star` | -| `rating2_style` | **Description:** Choose the rating number style for rating2.<br>**Values:** <table class="clearTable"><tr><td>Ten Scale</td><td><code>""</code></td><td><code>8.7</code>, <code>9.0</code></td></tr><tr><td>Ten Scale removing <code>.0</code> </td><td><code>"#"</code></td><td><code>8.7</code>, <code>9</code></td></tr><tr><td>Hundred Scale</td><td><code>"%"</code></td><td><code>87</code>, <code>90</code></td></tr><tr><td>Five Scale</td><td><code>"/"</code></td><td><code>8.6</code> rating in plex will show as <code>4.3</code> on the overlay</td></tr></table> | -| `rating2_extra` | **Description:** Extra text after rating2.<br>**Default:** `%` for `rt_popcorn`, `rt_tomato`, `tmdb`. <br>**Values:** Any Value | -| `rating3` | **Description:** Choose the rating to display in rating3.<br>**Values:** `critic`, `audience`, or `user` | -| `rating3_image` | **Description:** Choose the rating image to display in rating3.<br>**Values:** `anidb`, `imdb`, `letterboxd`, `tmdb`, `metacritic`, `rt_popcorn`, `rt_tomato`, `trakt`, `mal`, `mdb`, or `star` | -| `rating3_style` | **Description:** Choose the rating number style for rating3.<br>**Values:** <table class="clearTable"><tr><td>Ten Scale</td><td><code>""</code></td><td><code>8.7</code>, <code>9.0</code></td></tr><tr><td>Ten Scale removing <code>.0</code> </td><td><code>"#"</code></td><td><code>8.7</code>, <code>9</code></td></tr><tr><td>Hundred Scale</td><td><code>"%"</code></td><td><code>87</code>, <code>90</code></td></tr><tr><td>Five Scale</td><td><code>"/"</code></td><td><code>8.6</code> rating in plex will show as <code>4.3</code> on the overlay</td></tr></table> | -| `rating3_extra` | **Description:** Extra text after rating3.<br>**Default:** `%` for `rt_popcorn`, `rt_tomato`, `tmdb`. <br>**Values:** Any Value | -| `horizontal_position` | **Description:** Choose the horizontal position for the rating group.<br>**Default:** `left`<br>**Values:** `left`, `right`, or `center` | -| `vertical_position` | **Description:** Choose the vertical position for the rating group.<br>**Default:** `center`<br>**Values:** `top`, `bottom`, or `center` | -| `rating_alignment` | **Description:** Choose the display alignment for the rating group.<br>**Default:** `vertical`<br>**Values:** `horizontal`, or `vertical` | -| `minimum_rating` | **Description:** Minimum Rating to display<br>**Default:** 0.0<br>**Values:** Any Number | -| `fresh_rating` | **Description:** Determines when ratings are considered Fresh<br>**Default:** 6.0<br>**Values:** Any Number | -| `maximum_rating` | **Description:** Maximum Rating to display<br>**Default:** 10.0<br>**Values:** Any Number | -| `addon_offset`<sup>1</sup> | **Description:** Text Addon Image Offset from the text.<br>**Default:** `15`<br>**Values:** Any number greater than 0 | -| `addon_position`<sup>1</sup> | **Description:** Text Addon Image Alignment in relation to the text.<br>**Default:** `top`<br>**Values:** `left`, `right`, `top`, `bottom` | -| `builder_level` | **Description:** Choose the Overlay Level.<br>**Values:** `episode` | + The below template variables are available specifically for this PMM Defaults file. -1. These Variables can be prepended with `rating1_`, `rating2_`, or `rating3_` to change that attribute on each rating individually. + Be sure to also check out the "Overlay Template Variables" tab for additional variables. -{% - include-markdown "../overlay_variables.md" -%} + These can be prepended with `rating1_`, `rating2_`, or `rating3_` to change that attribute on each rating individually. -{% - include-markdown "../overlay_text_variables.md" -%} + ???+ warning -## Example Template Variable Amendments + To amend `horizontal_offset` and `vertical_offset` you **must** prepend the variable with `rating1_`, `rating2_`, or `rating3_` -The below is an example config.yml extract with some Template Variables added in to change how the file works. + | Variable | Default / Values | + |:-----------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `horizontal_offset` | `30` | + | `horizontal_align` | `left` | + | `vertical_offset` | `0` | + | `vertical_align` | `center` | + | `back_color` | `#00000099` | + | `back_radius` | `30` | + | `back_width` | `160` | + | `back_height` | `160` | + | `back_padding` | `15` | + | `back_radius` | `30` | + | `rating1` | **Description:** Choose the rating to display in rating1.<br>**Values:** `critic`, `audience`, or `user` | + | `rating1_image` | **Description:** Choose the rating image to display in rating1.<br>**Values:** `anidb`, `imdb`, `letterboxd`, `tmdb`, `metacritic`, `rt_popcorn`, `rt_tomato`, `trakt`, `mal`, `mdb`, or `star` | + | `rating1_style` | **Description:** Choose the rating number style for rating1.<br>**Values:** <table class="clearTable"><tr><td>Ten Scale</td><td><code>""</code></td><td><code>8.7</code>, <code>9.0</code></td></tr><tr><td>Ten Scale removing <code>.0</code> </td><td><code>"#"</code></td><td><code>8.7</code>, <code>9</code></td></tr><tr><td>Hundred Scale</td><td><code>"%"</code></td><td><code>87</code>, <code>90</code></td></tr><tr><td>Five Scale</td><td><code>"/"</code></td><td><code>8.6</code> rating in plex will show as <code>4.3</code> on the overlay</td></tr></table> | + | `rating1_extra` | **Description:** Extra text after rating1.<br>**Default:** `%` for `rt_popcorn`, `rt_tomato`, `tmdb`. <br>**Values:** Any Value | + | `rating2` | **Description:** Choose the rating to display in rating2.<br>**Values:** `critic`, `audience`, or `user` | + | `rating2_image` | **Description:** Choose the rating image to display in rating2.<br>**Values:** `anidb`, `imdb`, `letterboxd`, `tmdb`, `metacritic`, `rt_popcorn`, `rt_tomato`, `trakt`, `mal`, `mdb`, or `star` | + | `rating2_style` | **Description:** Choose the rating number style for rating2.<br>**Values:** <table class="clearTable"><tr><td>Ten Scale</td><td><code>""</code></td><td><code>8.7</code>, <code>9.0</code></td></tr><tr><td>Ten Scale removing <code>.0</code> </td><td><code>"#"</code></td><td><code>8.7</code>, <code>9</code></td></tr><tr><td>Hundred Scale</td><td><code>"%"</code></td><td><code>87</code>, <code>90</code></td></tr><tr><td>Five Scale</td><td><code>"/"</code></td><td><code>8.6</code> rating in plex will show as <code>4.3</code> on the overlay</td></tr></table> | + | `rating2_extra` | **Description:** Extra text after rating2.<br>**Default:** `%` for `rt_popcorn`, `rt_tomato`, `tmdb`. <br>**Values:** Any Value | + | `rating3` | **Description:** Choose the rating to display in rating3.<br>**Values:** `critic`, `audience`, or `user` | + | `rating3_image` | **Description:** Choose the rating image to display in rating3.<br>**Values:** `anidb`, `imdb`, `letterboxd`, `tmdb`, `metacritic`, `rt_popcorn`, `rt_tomato`, `trakt`, `mal`, `mdb`, or `star` | + | `rating3_style` | **Description:** Choose the rating number style for rating3.<br>**Values:** <table class="clearTable"><tr><td>Ten Scale</td><td><code>""</code></td><td><code>8.7</code>, <code>9.0</code></td></tr><tr><td>Ten Scale removing <code>.0</code> </td><td><code>"#"</code></td><td><code>8.7</code>, <code>9</code></td></tr><tr><td>Hundred Scale</td><td><code>"%"</code></td><td><code>87</code>, <code>90</code></td></tr><tr><td>Five Scale</td><td><code>"/"</code></td><td><code>8.6</code> rating in plex will show as <code>4.3</code> on the overlay</td></tr></table> | + | `rating3_extra` | **Description:** Extra text after rating3.<br>**Default:** `%` for `rt_popcorn`, `rt_tomato`, `tmdb`. <br>**Values:** Any Value | + | `horizontal_position` | **Description:** Choose the horizontal position for the rating group.<br>**Default:** `left`<br>**Values:** `left`, `right`, or `center` | + | `vertical_position` | **Description:** Choose the vertical position for the rating group.<br>**Default:** `center`<br>**Values:** `top`, `bottom`, or `center` | + | `rating_alignment` | **Description:** Choose the display alignment for the rating group.<br>**Default:** `vertical`<br>**Values:** `horizontal`, or `vertical` | + | `minimum_rating` | **Description:** Minimum Rating to display<br>**Default:** 0.0<br>**Values:** Any Number | + | `fresh_rating` | **Description:** Determines when ratings are considered Fresh<br>**Default:** 6.0<br>**Values:** Any Number | + | `maximum_rating` | **Description:** Maximum Rating to display<br>**Default:** 10.0<br>**Values:** Any Number | + | `addon_offset`<sup>1</sup> | **Description:** Text Addon Image Offset from the text.<br>**Default:** `15`<br>**Values:** Any number greater than 0 | + | `addon_position`<sup>1</sup> | **Description:** Text Addon Image Alignment in relation to the text.<br>**Default:** `top`<br>**Values:** `left`, `right`, `top`, `bottom` | + | `builder_level` | **Description:** Choose the Overlay Level.<br>**Values:** `episode` | -**Note: This example uses fonts not packaged with PMM. See [bullmoose20's Configs](https://github.com/meisnate12/Plex-Meta-Manager-Configs/tree/master/bullmoose20)** + 1. These Variables can be prepended with `rating1_`, `rating2_`, or `rating3_` to change that attribute on each rating individually. -```yaml - Movies: - overlay_files: - - pmm: ratings - template_variables: - rating1: critic - rating1_image: imdb - rating1_font: config/metadata/fonts/Impact.ttf - rating1_font_size: 70 + === "Overlay Template Variables" - rating2: audience - rating2_image: rt_popcorn - rating2_font: config/metadata/fonts/Adlib.ttf - rating2_font_size: 63 + {% + include-markdown "../overlay_text_variables.md" + %} - rating3: user - rating3_image: tmdb - rating3_font: config/metadata/fonts/Avenir_95_Black.ttf - rating3_font_size: 70 + {% + include-markdown "../overlay_variables.md" + %} - horizontal_position: right - operations: - mass_critic_rating_update: imdb - mass_audience_rating_update: mdb_tomatoesaudience - mass_user_rating_update: tmdb - TV Shows: - overlay_files: - - pmm: ratings - template_variables: - rating1: critic - rating1_image: imdb - rating1_font: config/metadata/fonts/Impact.ttf - rating1_font_size: 70 + ### Example Template Variable Amendments - rating2: audience - rating2_image: rt_popcorn - rating2_font: config/metadata/fonts/Adlib.ttf - rating2_font_size: 63 + The below is an example config.yml extract with some Template Variables added in to change how the file works. - rating3: user - rating3_image: tmdb - rating3_font: config/metadata/fonts/Avenir_95_Black.ttf - rating3_font_size: 70 + **Note: This example uses fonts not packaged with PMM. See [bullmoose20's Configs](https://github.com/meisnate12/Plex-Meta-Manager-Configs/tree/master/bullmoose20)** - horizontal_position: right - - pmm: ratings - template_variables: - builder_level: episode - - rating1: critic - rating1_image: imdb - rating1_font: config/metadata/fonts/Impact.ttf - rating1_font_size: 70 + ```yaml + Movies: + overlay_files: + - pmm: ratings + template_variables: + rating1: critic + rating1_image: imdb + rating1_font: config/metadata/fonts/Impact.ttf + rating1_font_size: 70 - rating2: audience - rating2_image: tmdb - rating2_font: config/metadata/fonts/Avenir_95_Black.ttf - rating2_font_size: 70 + rating2: audience + rating2_image: rt_popcorn + rating2_font: config/metadata/fonts/Adlib.ttf + rating2_font_size: 63 - horizontal_position: right - operations: - mass_critic_rating_update: imdb - mass_audience_rating_update: mdb_tomatoesaudience - mass_user_rating_update: tmdb - mass_episode_critic_rating_update: imdb - mass_episode_audience_rating_update: tmdb -``` + rating3: user + rating3_image: tmdb + rating3_font: config/metadata/fonts/Avenir_95_Black.ttf + rating3_font_size: 70 + + horizontal_position: right + operations: + mass_critic_rating_update: imdb + mass_audience_rating_update: mdb_tomatoesaudience + mass_user_rating_update: tmdb + TV Shows: + overlay_files: + - pmm: ratings + template_variables: + rating1: critic + rating1_image: imdb + rating1_font: config/metadata/fonts/Impact.ttf + rating1_font_size: 70 + + rating2: audience + rating2_image: rt_popcorn + rating2_font: config/metadata/fonts/Adlib.ttf + rating2_font_size: 63 + + rating3: user + rating3_image: tmdb + rating3_font: config/metadata/fonts/Avenir_95_Black.ttf + rating3_font_size: 70 + + horizontal_position: right + - pmm: ratings + template_variables: + builder_level: episode + + rating1: critic + rating1_image: imdb + rating1_font: config/metadata/fonts/Impact.ttf + rating1_font_size: 70 + + rating2: audience + rating2_image: tmdb + rating2_font: config/metadata/fonts/Avenir_95_Black.ttf + rating2_font_size: 70 + + horizontal_position: right + operations: + mass_critic_rating_update: imdb + mass_audience_rating_update: mdb_tomatoesaudience + mass_user_rating_update: tmdb + mass_episode_critic_rating_update: imdb + mass_episode_audience_rating_update: tmdb + ``` diff --git a/docs/defaults/overlays/resolution.md b/docs/defaults/overlays/resolution.md index 38dfa0c1..c586788d 100644 --- a/docs/defaults/overlays/resolution.md +++ b/docs/defaults/overlays/resolution.md @@ -110,47 +110,60 @@ libraries: builder_level: episode ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -| Variable | Default / Values | -|:-----------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------| -| `horizontal_offset` | `15` | -| `horizontal_align` | `left` | -| `vertical_offset` | `15` | -| `vertical_align` | `top` | -| `back_color` | `#00000099` | -| `back_radius` | `30` | -| `back_width` | `305` | -| `back_height` | `105`/`189` | -| `use_resolution` | **Description:** Turns off all Resolution Overlays in the Defaults file.<br>**Values:** `false` to turn off the overlays | -| `use_edition` | **Description:** Turns off all Edition Overlays in the Defaults file.<br>**Values:** `false` to turn off the overlays | -| `builder_level` | **Description:** Choose the Overlay Level.<br>**Values:** `season` or `episode` | -| `weight_<<key>>`<sup>1</sup> | **Description:** Controls the weight of the Overlay. Higher numbers have priority. **Only works with Edition keys.**<br>**Values:** Any Number | +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -1. Each default overlay has a `key` that when calling to effect a specific overlay you must replace `<<key>>` with when calling. +??? info "Click to expand" -{% - include-markdown "../overlay_variables.md" -%} + === "File-Specific Template Variables" -## Example Template Variable Amendments + The below template variables are available specifically for this PMM Defaults file. -The below is an example config.yml extract with some Template Variables added in to change how the file works. + Be sure to also check out the "Overlay Template Variables" tab for additional variables. -```yaml -libraries: - Movies: - overlay_files: - - pmm: resolution - template_variables: - use_dv: false - use_hdr: false - use_1080p: false - use_720p: false - use_576p: false - use_480p: false - use_1080p_hdr: false - use_1080p_dv: false -``` + | Variable | Default / Values | + |:-----------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------| + | `horizontal_offset` | `15` | + | `horizontal_align` | `left` | + | `vertical_offset` | `15` | + | `vertical_align` | `top` | + | `back_color` | `#00000099` | + | `back_radius` | `30` | + | `back_width` | `305` | + | `back_height` | `105`/`189` | + | `use_resolution` | **Description:** Turns off all Resolution Overlays in the Defaults file.<br>**Values:** `false` to turn off the overlays | + | `use_edition` | **Description:** Turns off all Edition Overlays in the Defaults file.<br>**Values:** `false` to turn off the overlays | + | `builder_level` | **Description:** Choose the Overlay Level.<br>**Values:** `season` or `episode` | + | `weight_<<key>>`<sup>1</sup> | **Description:** Controls the weight of the Overlay. Higher numbers have priority. **Only works with Edition keys.**<br>**Values:** Any Number | + + 1. Each default overlay has a `key` that when calling to effect a specific overlay you must replace `<<key>>` with when calling. + + === "Overlay Template Variables" + + {% + include-markdown "../overlay_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + + ```yaml + libraries: + Movies: + overlay_files: + - pmm: resolution + template_variables: + use_dv: false + use_hdr: false + use_1080p: false + use_720p: false + use_576p: false + use_480p: false + use_1080p_hdr: false + use_1080p_dv: false + ``` diff --git a/docs/defaults/overlays/ribbon.md b/docs/defaults/overlays/ribbon.md index 908ba796..a43a372e 100644 --- a/docs/defaults/overlays/ribbon.md +++ b/docs/defaults/overlays/ribbon.md @@ -45,40 +45,50 @@ libraries: - pmm: ribbon ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -. +??? info "Click to expand" -| Variable | Default / Values | -|:-----------------------------|:------------------------------------------------------------------------------------------------------------------------| -| `horizontal_offset` | `0` | -| `horizontal_align` | `right` | -| `vertical_offset` | `0` | -| `vertical_align` | `bottom` | -| `use_all` | **Description:** Used to turn on/off all keys. <br>**Default:** `true` <br>**Values:** `true` or `false` | -| `weight_<<key>>`<sup>1</sup> | **Description:** Controls the weight of the Overlay. Higher numbers have priority.<br>**Values:** Any Number | -| `style` | **Description:** Controls the color of the ribbon. <br>**Default:** `yellow` <br>**Values:** `yellow, gray, black, red` | + === "File-Specific Template Variables" -1. Each default overlay has a `key` that when calling to effect a specific overlay you must replace `<<key>>` with when calling. + The below template variables are available specifically for this PMM Defaults file. -{% - include-markdown "../overlay_variables.md" -%} + Be sure to also check out the "Overlay Template Variables" tab for additional variables. -## Example Template Variable Amendments + | Variable | Default / Values | + |:-----------------------------|:------------------------------------------------------------------------------------------------------------------------| + | `horizontal_offset` | `0` | + | `horizontal_align` | `right` | + | `vertical_offset` | `0` | + | `vertical_align` | `bottom` | + | `use_all` | **Description:** Used to turn on/off all keys. <br>**Default:** `true` <br>**Values:** `true` or `false` | + | `weight_<<key>>`<sup>1</sup> | **Description:** Controls the weight of the Overlay. Higher numbers have priority.<br>**Values:** Any Number | + | `style` | **Description:** Controls the color of the ribbon. <br>**Default:** `yellow` <br>**Values:** `yellow, gray, black, red` | -The below is an example config.yml extract with some Template Variables added in to change how the file works. + 1. Each default overlay has a `key` that when calling to effect a specific overlay you must replace `<<key>>` with when calling. -```yaml -libraries: - Movies: - overlay_files: - - pmm: ribbon - template_variables: - style: black - weight_metacritic: 35 - use_common: false -``` + === "Overlay Template Variables" + + {% + include-markdown "../overlay_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + + ```yaml + libraries: + Movies: + overlay_files: + - pmm: ribbon + template_variables: + style: black + weight_metacritic: 35 + use_common: false + ``` diff --git a/docs/defaults/overlays/runtimes.md b/docs/defaults/overlays/runtimes.md index 02fcc2a5..53a677c3 100644 --- a/docs/defaults/overlays/runtimes.md +++ b/docs/defaults/overlays/runtimes.md @@ -25,40 +25,53 @@ libraries: builder_level: episode ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -| Variable | Default / Values | -|:--------------------|:-----------------------------------------------------------------------------------------------------------------------------------------| -| `horizontal_offset` | `15` | -| `horizontal_align` | `right` | -| `vertical_offset` | `30` | -| `vertical_align` | `bottom` | -| `back_color` | `#00000099` | -| `back_radius` | `30` | -| `back_width` | `600` | -| `back_height` | `105` | -| `text` | **Description:** Choose the text that appears prior to the runtime on the Overlay.<br>**Default:** `Runtime: `<br>**Values:** Any String | +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -{% - include-markdown "../overlay_variables.md" -%} +??? info "Click to expand" -{% - include-markdown "../overlay_text_variables.md" -%} + === "File-Specific Template Variables" -## Example Template Variable Amendments + The below template variables are available specifically for this PMM Defaults file. -The below is an example config.yml extract with some Template Variables added in to change how the file works. + Be sure to also check out the "Overlay Template Variables" tab for additional variables. -```yaml -libraries: - TV Shows: - overlay_files: - - pmm: runtimes - template_variables: - builder_level: episode - font: fonts/Inter-Bold.ttf -``` + | Variable | Default / Values | + |:--------------------|:-----------------------------------------------------------------------------------------------------------------------------------------| + | `horizontal_offset` | `15` | + | `horizontal_align` | `right` | + | `vertical_offset` | `30` | + | `vertical_align` | `bottom` | + | `back_color` | `#00000099` | + | `back_radius` | `30` | + | `back_width` | `600` | + | `back_height` | `105` | + | `text` | **Description:** Choose the text that appears prior to the runtime on the Overlay.<br>**Default:** `Runtime: `<br>**Values:** Any String | + + === "Overlay Template Variables" + + {% + include-markdown "../overlay_text_variables.md" + %} + + {% + include-markdown "../overlay_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + + ```yaml + libraries: + TV Shows: + overlay_files: + - pmm: runtimes + template_variables: + builder_level: episode + font: fonts/Inter-Bold.ttf + ``` diff --git a/docs/defaults/overlays/status.md b/docs/defaults/overlays/status.md index 60c31b78..9a7f4525 100644 --- a/docs/defaults/overlays/status.md +++ b/docs/defaults/overlays/status.md @@ -28,43 +28,56 @@ libraries: - pmm: status ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -| Variable | Default / Values | -|:-----------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `horizontal_offset` | `15` | -| `horizontal_align` | `left` | -| `vertical_offset` | `330` | -| `vertical_align` | `top` | -| `back_color` | `#00000099` | -| `back_radius` | `30` | -| `back_width` | `305` | -| `back_height` | `105` | -| `last` | **Description:** Episode Air Date in the last number of days for the AIRING Overlay.<br>**Default:** `14`<br>**Values:** Any number greater than 0 | -| `text_<<key>>`<sup>1</sup> | **Description:** Choose the text for the Overlay.<br>**Default:** <table class="clearTable"><tr><th>Key</th><th>Default</th></tr><tr><td>`airing`</td><td>`AIRING`</td></tr><tr><td>`returning`</td><td>`RETURNING`</td></tr><tr><td>`canceled`</td><td>`CANCELED`</td></tr><tr><td>`ended`</td><td>`ENDED`</td></tr></table>**Values:** Any String | -| `weight_<<key>>`<sup>1</sup> | **Description:** Controls the weight of the Overlay. Higher numbers have priority.<br>**Values:** Any Number | +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -1. Each default overlay has a `key` that when calling to effect a specific overlay you must replace `<<key>>` with when calling. +??? info "Click to expand" -{% - include-markdown "../overlay_variables.md" -%} + === "File-Specific Template Variables" -{% - include-markdown "../overlay_text_variables.md" -%} + The below template variables are available specifically for this PMM Defaults file. -## Example Template Variable Amendments + Be sure to also check out the "Overlay Template Variables" tab for additional variables. -The below is an example config.yml extract with some Template Variables added in to change how the file works. + | Variable | Default / Values | + |:-----------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `horizontal_offset` | `15` | + | `horizontal_align` | `left` | + | `vertical_offset` | `330` | + | `vertical_align` | `top` | + | `back_color` | `#00000099` | + | `back_radius` | `30` | + | `back_width` | `305` | + | `back_height` | `105` | + | `last` | **Description:** Episode Air Date in the last number of days for the AIRING Overlay.<br>**Default:** `14`<br>**Values:** Any number greater than 0 | + | `text_<<key>>`<sup>1</sup> | **Description:** Choose the text for the Overlay.<br>**Default:** <table class="clearTable"><tr><th>Key</th><th>Default</th></tr><tr><td>`airing`</td><td>`AIRING`</td></tr><tr><td>`returning`</td><td>`RETURNING`</td></tr><tr><td>`canceled`</td><td>`CANCELED`</td></tr><tr><td>`ended`</td><td>`ENDED`</td></tr></table>**Values:** Any String | + | `weight_<<key>>`<sup>1</sup> | **Description:** Controls the weight of the Overlay. Higher numbers have priority.<br>**Values:** Any Number | -```yaml -libraries: - TV Shows: - overlay_files: - - pmm: status - template_variables: - text_canceled: "C A N C E L L E D" -``` + 1. Each default overlay has a `key` that when calling to effect a specific overlay you must replace `<<key>>` with when calling. + + === "Overlay Template Variables" + + {% + include-markdown "../overlay_text_variables.md" + %} + + {% + include-markdown "../overlay_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + + ```yaml + libraries: + TV Shows: + overlay_files: + - pmm: status + template_variables: + text_canceled: "C A N C E L L E D" + ``` diff --git a/docs/defaults/overlays/streaming.md b/docs/defaults/overlays/streaming.md index e358c8f5..d99d6fbd 100644 --- a/docs/defaults/overlays/streaming.md +++ b/docs/defaults/overlays/streaming.md @@ -47,52 +47,64 @@ libraries: - pmm: streaming ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -| Variable | Description & Values | -|:-----------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `horizontal_offset` | **Description:** Change the horizontal offset.<br>**Default Value:** `15` | -| `horizontal_align` | **Description:** Change the horizontal alignment.<br>**Default Value:** `left` | -| `vertical_offset` | **Description:** Change the vertical offset.<br>**Default Value:** `390` | -| `vertical_align` | **Description:** Change the vertical alignment.<br>**Default Value:** `bottom` | -| `back_color` | **Description:** Change the back color.<br>**Default Value:** `#00000099` | -| `back_radius` | **Description:** Change the back (lozenge) radius .<br>**Default Value:** `30` | -| `back_width` | **Description:** Change the back (lozenge) width.<br>**Default Value:** `305` | -| `back_height` | **Description:** Change the back (lozenge) height.<br>**Default Value:** `105` | -| `region` | **Description:** Changes some Streaming Service lists to regional variants (see below table for more information.<br>**Default:** `us`<br>**Values:** `us`,`uk`,`ca`, `da`, `de`, `es`, `fr`, `it`, `pt-br` | -| `originals_only` | **Description:** Changes Streaming Service overlays to only apply to original content produced by the service.<br>**Note**: Cannot be used with `region`, and only produces overlays for `amazon`, `appletv`, `disney`, `max`, `hulu`, `netflix`, `paramount`, `peacock`<br>**Default:** `false`<br>**Values:** `true`, `false` | -| `weight_<<key>>`<sup>1</sup> | **Description:** Controls the weight of the Overlay. Higher numbers have priority.<br>**Values:** Any Number | +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -1. Each default overlay has a `key` that when calling to effect a specific overlay you must replace `<<key>>` with when calling. +??? info "Click to expand" -## Regional Variants + === "File-Specific Template Variables" -Some logic is applied to allow for regional streaming service lists to be available to users depending on where they are, as detailed below: + The below template variables are available specifically for this PMM Defaults file. -| Region | Key | Description | -|:-----------------|:---------------------------------|-------------------------------------------------------------------------------------------------------------------------------------| -| any besides `us` | `amazon`, `disney`, `netflix` | These overlays will use regional variant lists to ensure the overlays are applied to what is available in the region specified | -| any besides `uk` | `all4`, `britbox`, `hayu`, `now` | These overlays will not be used if the region is not `uk` as these streaming services are UK-focused | -| any besides `ca` | `crave` | These overlays will not be used if the region is not `ca` as these streaming services are Canada-focused | -| `ca` | `max`, `showtime` | These overlays will not be used if the region is `ca` as these streaming services are part of the Crave streaming service in Canada | + Be sure to also check out the "Overlay Template Variables" tab for additional variables. -{% - include-markdown "../overlay_variables.md" -%} + | Variable | Description & Values | + |:-----------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `horizontal_offset` | **Description:** Change the horizontal offset.<br>**Default Value:** `15` | + | `horizontal_align` | **Description:** Change the horizontal alignment.<br>**Default Value:** `left` | + | `vertical_offset` | **Description:** Change the vertical offset.<br>**Default Value:** `390` | + | `vertical_align` | **Description:** Change the vertical alignment.<br>**Default Value:** `bottom` | + | `back_color` | **Description:** Change the back color.<br>**Default Value:** `#00000099` | + | `back_radius` | **Description:** Change the back (lozenge) radius .<br>**Default Value:** `30` | + | `back_width` | **Description:** Change the back (lozenge) width.<br>**Default Value:** `305` | + | `back_height` | **Description:** Change the back (lozenge) height.<br>**Default Value:** `105` | + | `region` | **Description:** Changes some Streaming Service lists to regional variants (see below table for more information.<br>**Default:** `us`<br>**Values:** `us`,`uk`,`ca`, `da`, `de`, `es`, `fr`, `it`, `pt-br` | + | `originals_only` | **Description:** Changes Streaming Service overlays to only apply to original content produced by the service.<br>**Note**: Cannot be used with `region`, and only produces overlays for `amazon`, `appletv`, `disney`, `max`, `hulu`, `netflix`, `paramount`, `peacock`<br>**Default:** `false`<br>**Values:** `true`, `false` | + | `weight_<<key>>`<sup>1</sup> | **Description:** Controls the weight of the Overlay. Higher numbers have priority.<br>**Values:** Any Number | -## Example Template Variable Amendments + 1. Each default overlay has a `key` that when calling to effect a specific overlay you must replace `<<key>>` with when calling. -The below is an example config.yml extract with some Template Variables added in to change how the file works. + === "Overlay Template Variables" -```yaml -libraries: - Movies: - overlay_files: - - pmm: streaming - template_variables: - originals_only: true - use_peacock: false - weight_netflix: 100 -``` + {% + include-markdown "../overlay_variables.md" + %} + + ## Regional Variants + + Some logic is applied to allow for regional streaming service lists to be available to users depending on where they are, as detailed below: + + | Region | Key | Description | + |:-----------------|:---------------------------------|-------------------------------------------------------------------------------------------------------------------------------------| + | any besides `us` | `amazon`, `disney`, `netflix` | These overlays will use regional variant lists to ensure the overlays are applied to what is available in the region specified | + | any besides `uk` | `all4`, `britbox`, `hayu`, `now` | These overlays will not be used if the region is not `uk` as these streaming services are UK-focused | + | any besides `ca` | `crave` | These overlays will not be used if the region is not `ca` as these streaming services are Canada-focused | + | `ca` | `max`, `showtime` | These overlays will not be used if the region is `ca` as these streaming services are part of the Crave streaming service in Canada | + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ```yaml + libraries: + Movies: + overlay_files: + - pmm: streaming + template_variables: + originals_only: true + use_peacock: false + weight_netflix: 100 + ``` diff --git a/docs/defaults/overlays/studio.md b/docs/defaults/overlays/studio.md index 9266f94b..f7609aae 100644 --- a/docs/defaults/overlays/studio.md +++ b/docs/defaults/overlays/studio.md @@ -22,56 +22,69 @@ libraries: - pmm: studio ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -| Variable | Default / Values | -|:--------------------|:-------------------------------------------------------------------------------------------------| -| `horizontal_offset` | `15` | -| `horizontal_align` | `left` | -| `vertical_offset` | `150` | -| `vertical_align` | `bottom` | -| `back_color` | `#00000099` | -| `back_radius` | `30` | -| `back_width` | `305` | -| `back_height` | `105` | -| `builder_level` | **Description:** Choose the Overlay Level.<br>**Values:** `season` or `episode` | -| `style` | **Description:** Choose between the standard size or the **bigger** one.<br>**Values:** `bigger` | +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -Preview of the bigger style +??? info "Click to expand" -![](images/studio_bigger.jpg) + === "File-Specific Template Variables" -{% - include-markdown "../overlay_variables.md" -%} + The below template variables are available specifically for this PMM Defaults file. -## Example Template Variable Amendments + Be sure to also check out the "Overlay Template Variables" tab for additional variables. -The below is an example config.yml extract with some Template Variables added in to change how the file works. + | Variable | Default / Values | + |:--------------------|:-------------------------------------------------------------------------------------------------| + | `horizontal_offset` | `15` | + | `horizontal_align` | `left` | + | `vertical_offset` | `150` | + | `vertical_align` | `bottom` | + | `back_color` | `#00000099` | + | `back_radius` | `30` | + | `back_width` | `305` | + | `back_height` | `105` | + | `builder_level` | **Description:** Choose the Overlay Level.<br>**Values:** `season` or `episode` | + | `style` | **Description:** Choose between the standard size or the **bigger** one.<br>**Values:** `bigger` | -```yaml -libraries: - Movies: - overlay_files: - - pmm: studio - template_variables: - vertical_offset: 390 - TV Shows: - overlay_files: - - pmm: studio - - pmm: studio - template_variables: - builder_level: season - vertical_align: bottom - vertical_offset: 15 - horizontal_align: left - horizontal_offset: 15 - style: bigger - - pmm: studio - template_variables: - builder_level: episode - vertical_align: top - vertical_offset: 15 -``` + Preview of the bigger style + + ![](images/studio_bigger.jpg) + + === "Overlay Template Variables" + + {% + include-markdown "../overlay_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + + ```yaml + libraries: + Movies: + overlay_files: + - pmm: studio + template_variables: + vertical_offset: 390 + TV Shows: + overlay_files: + - pmm: studio + - pmm: studio + template_variables: + builder_level: season + vertical_align: bottom + vertical_offset: 15 + horizontal_align: left + horizontal_offset: 15 + style: bigger + - pmm: studio + template_variables: + builder_level: episode + vertical_align: top + vertical_offset: 15 + ``` diff --git a/docs/defaults/overlays/versions.md b/docs/defaults/overlays/versions.md index 5decc4e5..1ff24e66 100644 --- a/docs/defaults/overlays/versions.md +++ b/docs/defaults/overlays/versions.md @@ -28,35 +28,49 @@ libraries: builder_level: episode ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -| Variable | Default / Values | -|:--------------------|:--------------------------------------------------------------------------------| -| `horizontal_offset` | `15`/`235` | -| `horizontal_align` | `right`/`center` | -| `vertical_offset` | `1050`/`15` | -| `vertical_align` | `top` | -| `back_color` | `#00000099` | -| `back_radius` | `30` | -| `back_width` | `105` | -| `back_height` | `105` | -| `builder_level` | **Description:** Choose the Overlay Level.<br>**Values:** `season` or `episode` | +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -{% - include-markdown "../overlay_variables.md" -%} +??? info "Click to expand" -## Example Template Variable Amendments + === "File-Specific Template Variables" -The below is an example config.yml extract with some Template Variables added in to change how the file works. + The below template variables are available specifically for this PMM Defaults file. -```yaml -libraries: - Movies: - overlay_files: - - pmm: versions - template_variables: - back_color: "#FFFFFF99" -``` + Be sure to also check out the "Overlay Template Variables" tab for additional variables. + + | Variable | Default / Values | + |:--------------------|:--------------------------------------------------------------------------------| + | `horizontal_offset` | `15`/`235` | + | `horizontal_align` | `right`/`center` | + | `vertical_offset` | `1050`/`15` | + | `vertical_align` | `top` | + | `back_color` | `#00000099` | + | `back_radius` | `30` | + | `back_width` | `105` | + | `back_height` | `105` | + | `builder_level` | **Description:** Choose the Overlay Level.<br>**Values:** `season` or `episode` | + + === "Overlay Template Variables" + + {% + include-markdown "../overlay_variables.md" + %} + + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + + ```yaml + libraries: + Movies: + overlay_files: + - pmm: versions + template_variables: + back_color: "#FFFFFF99" + ``` diff --git a/docs/defaults/overlays/video_format.md b/docs/defaults/overlays/video_format.md index 33e60d42..4a10118d 100644 --- a/docs/defaults/overlays/video_format.md +++ b/docs/defaults/overlays/video_format.md @@ -41,46 +41,59 @@ libraries: builder_level: episode ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -| Variable | Default / Values | -|:-----------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `horizontal_offset` | `15` | -| `horizontal_align` | `left` | -| `vertical_offset` | `30` | -| `vertical_align` | `bottom` | -| `back_color` | `#00000099` | -| `back_radius` | `30` | -| `back_width` | `305` | -| `back_height` | `105` | -| `builder_level` | **Description:** Choose the Overlay Level.<br>**Values:** `season` or `episode` | -| `text_<<key>>`<sup>1</sup> | **Description:** Choose the text for the Overlay.<br>**Default:** <table class="clearTable"><tr><th>Key</th><th>Default</th></tr><tr><td>`remux`</td><td>`REMUX`</td></tr><tr><td>`bluray`</td><td>`BLU-RAY`</td></tr><tr><td>`web`</td><td>`WEB`</td></tr><tr><td>`hdtv`</td><td>`HDTV`</td></tr><tr><td>`dvd`</td><td>`DVD`</td></tr><tr><td>`sdtv`</td><td>`SDTV`</td></tr></table>**Values:** Any String | -| `weight_<<key>>`<sup>1</sup> | **Description:** Controls the weight of the Overlay. Higher numbers have priority.<br>**Values:** Any Number | -| `regex_<<key>>`<sup>1</sup> | **Description:** Controls the regex of the Overlay Search.<br>**Values:** Any Proper Regex | +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -1. Each default overlay has a `key` that when calling to effect a specific overlay you must replace `<<key>>` with when calling. +??? info "Click to expand" -{% - include-markdown "../overlay_variables.md" -%} + === "File-Specific Template Variables" -{% - include-markdown "../overlay_text_variables.md" -%} + The below template variables are available specifically for this PMM Defaults file. -## Example Template Variable Amendments + Be sure to also check out the "Overlay Template Variables" tab for additional variables. -The below is an example config.yml extract with some Template Variables added in to change how the file works. + | Variable | Default / Values | + |:-----------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `horizontal_offset` | `15` | + | `horizontal_align` | `left` | + | `vertical_offset` | `30` | + | `vertical_align` | `bottom` | + | `back_color` | `#00000099` | + | `back_radius` | `30` | + | `back_width` | `305` | + | `back_height` | `105` | + | `builder_level` | **Description:** Choose the Overlay Level.<br>**Values:** `season` or `episode` | + | `text_<<key>>`<sup>1</sup> | **Description:** Choose the text for the Overlay.<br>**Default:** <table class="clearTable"><tr><th>Key</th><th>Default</th></tr><tr><td>`remux`</td><td>`REMUX`</td></tr><tr><td>`bluray`</td><td>`BLU-RAY`</td></tr><tr><td>`web`</td><td>`WEB`</td></tr><tr><td>`hdtv`</td><td>`HDTV`</td></tr><tr><td>`dvd`</td><td>`DVD`</td></tr><tr><td>`sdtv`</td><td>`SDTV`</td></tr></table>**Values:** Any String | + | `weight_<<key>>`<sup>1</sup> | **Description:** Controls the weight of the Overlay. Higher numbers have priority.<br>**Values:** Any Number | + | `regex_<<key>>`<sup>1</sup> | **Description:** Controls the regex of the Overlay Search.<br>**Values:** Any Proper Regex | -```yaml -libraries: - Movies: - overlay_files: - - pmm: video_format - template_variables: - text_bluray: BLURAY - use_sdtv: false - use_dvd: false -``` + 1. Each default overlay has a `key` that when calling to effect a specific overlay you must replace `<<key>>` with when calling. + + === "Overlay Template Variables" + + {% + include-markdown "../overlay_text_variables.md" + %} + + {% + include-markdown "../overlay_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + + ```yaml + libraries: + Movies: + overlay_files: + - pmm: video_format + template_variables: + text_bluray: BLURAY + use_sdtv: false + use_dvd: false + ``` diff --git a/docs/defaults/playlist.md b/docs/defaults/playlist.md index 8d5667ee..89e9f702 100644 --- a/docs/defaults/playlist.md +++ b/docs/defaults/playlist.md @@ -43,7 +43,7 @@ Note that the `template_variables:` section only needs to be used if you do want | `use_<<key>>`<sup>1</sup> | **Description:** Turns off individual Playlists in a Defaults file.<br>**Values:** `false` to turn off the playlist | | `name_<<key>>`<sup>1</sup> | **Description:** Changes the name of the specified key's playlist.<br>**Values:** New Playlist Name | | `summary_<<key>>`<sup>1</sup> | **Description:** Changes the summary of the specified key's playlist.<br>**Values:** New Playlist Summary | -| `libraries` | **Description:** Sets the names of the libraries to use for the Playlists.<br>**Default:** `Movies, TV Shows`<br>**Values:** Comma-separated string or list of library mapping names defined in the `libraries` attribute in the base of your [Configuration File](../config/configuration.md. | +| `libraries` | **Description:** Sets the names of the libraries to use for the Playlists.<br>**Default:** `Movies, TV Shows`<br>**Values:** Comma-separated string or list of library mapping names defined in the `libraries` attribute in the base of your [Configuration File](../config/overview.md. | | `sync_to_user` | **Description:** Sets the users to sync all playlists to.<br>**Default:** `playlist_sync_to_users` Global Setting Value<br>**Values:** Comma-separated string or list of user names. | | `sync_to_user_<<key>>`<sup>1</sup> | **Description:** Sets the users to sync the specified key's playlist to.<br>**Default:** `sync_to_user` Value<br>**Values:** Comma-separated string or list of user names. | | `exclude_user` | **Description:** Sets the users to exclude from sync for all playlists.<br>**Default:** `playlist_sync_to_users` Global Setting Value<br>**Values:** Comma-separated string or list of user names. | @@ -84,7 +84,11 @@ playlist_files: ## Default values -These are lists provided for reference to show what values will be in use if you do no customization. If you want to customize these values, use the methods described above. These do not show how to change a name or a list. +???+ tip + + These are lists provided for reference to show what values will be in use if you do no customization. **These do not show how to change a name or a list.** + + If you want to customize these values, use the methods described above. ### Default `trakt_list` diff --git a/docs/defaults/show/content_rating_us.md b/docs/defaults/show/content_rating_us.md index d22fda04..db5d1454 100644 --- a/docs/defaults/show/content_rating_us.md +++ b/docs/defaults/show/content_rating_us.md @@ -31,139 +31,156 @@ libraries: - pmm: content_rating_us ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -| Variable | Description & Values | -|:------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | -| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** List of Content Ratings found in your library | -| `exclude` | **Description:** Exclude these Content Ratings from creating a Dynamic Collection.<br>**Values:** List of Content Ratings found in your library | -| `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of Content Ratings found in your library | -| `append_include` | **Description:** Appends to the [default include list](#default-include).<br>**Values:** List of Content Ratings found in your library | -| `remove_include` | **Description:** Removes from the [default include list](#default-include).<br>**Values:** List of Content Ratings found in your library | -| `append_addons` | **Description:** Appends to the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Content Ratings found in your library | -| `remove_addons` | **Description:** Removes from the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Content Ratings found in your library | -| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `<<key_name>> <<library_translationU>>s`<br>**Values:** Any string with `<<key_name>>` in it. | -| `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s that are rated <<key_name>>.`<br>**Values:** Any string. | +??? info "Click to expand" -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. + === "File-Specific Template Variables" -{% - include-markdown "../collection_variables.md" -%} -### Example Template Variable Amendments + The below template variables are available specifically for this PMM Defaults file. -The below is an example config.yml extract with some Template Variables added in to change how the file works. + Be sure to also check out the "Shared Template Variables" tab for additional variables. -???+ tip + This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. + | Variable | Description & Values | + |:------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | + | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | + | `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** List of Content Ratings found in your library | + | `exclude` | **Description:** Exclude these Content Ratings from creating a Dynamic Collection.<br>**Values:** List of Content Ratings found in your library | + | `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of Content Ratings found in your library | + | `append_include` | **Description:** Appends to the [default include list](#default-include).<br>**Values:** List of Content Ratings found in your library | + | `remove_include` | **Description:** Removes from the [default include list](#default-include).<br>**Values:** List of Content Ratings found in your library | + | `append_addons` | **Description:** Appends to the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Content Ratings found in your library | + | `remove_addons` | **Description:** Removes from the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Content Ratings found in your library | + | `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `<<key_name>> <<library_translationU>>s`<br>**Values:** Any string with `<<key_name>>` in it. | + | `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s that are rated <<key_name>>.`<br>**Values:** Any string. | -```yaml -libraries: - Movies: - collection_files: - - pmm: content_rating_us - template_variables: - sep_style: blue #(1)! - use_other: false #(2)! - append_addons: - R: #(3)! - - "de/18" #(4)! - sort_by: title.asc -``` + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. -1. Use the blue [Separator Style](../separators.md#separator-styles) -2. Do not create a "Not Rated Movies" collection -3. Defines a collection which will be called "R", this does not need to already exist in your library -4. Adds the "de/18" content rating to the "R" addon list, "de/18" must exist in your library if the "R" content rating does not + === "Shared Template Variables" + + {% + include-markdown "../collection_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ???+ tip + + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. + + ```yaml + libraries: + Movies: + collection_files: + - pmm: content_rating_us + template_variables: + sep_style: blue #(1)! + use_other: false #(2)! + append_addons: + R: #(3)! + - "de/18" #(4)! + sort_by: title.asc + ``` + + 1. Use the blue [Separator Style](../separators.md#separator-styles) + 2. Do not create a "Not Rated Movies" collection + 3. Defines a collection which will be called "R", this does not need to already exist in your library + 4. Adds the "de/18" content rating to the "R" addon list, "de/18" must exist in your library if the "R" content rating does not ## Default values -These are lists provided for reference to show what values will be in use if you do no customization. If you want to customize these values, use the methods described above. These do not show how to change a name or a list. +??? tip -### Default `include` + These are lists provided for reference to show what values will be in use if you do no customization. **These do not show how to change a name or a list.** -```yaml -include: - - TV-G - - TV-Y - - TV-PG - - TV-14 - - TV-MA -``` + If you want to customize these values, use the methods described above. -### Default `addons` + **Default `include`**: -```yaml -addons: - TV-G: - - gb/U - - gb/0+ - - U - - G - - 1 - - 2 - - 3 - - 4 - - 5 - - 6 - - "01" - - "02" - - "03" - - "04" - - "05" - - "06" - - G - All Ages - TV-Y: - - TV-Y7 - - TV-Y7-FV - - 7 - - 8 - - 9 - - "07" - - "08" - - "09" - TV-PG: - - gb/PG - - gb/9+ - - 10 - - 11 - - 12 - - 13 - - PG - Children - TV-14: - - gb/12A - - 12+ - - PG-13 - - TV-13 - - gb/14+ - - gb/15 - - 14 - - 15 - - 16 - - 17 - - PG-13 - Teens 13 or older - TV-MA: - - 18 - - gb/18 - - MA-17 - - NC-17 - - R - - TVMA - - R - 17+ (violence & profanity) - - R+ - Mild Nudity - - Rx - Hentai -``` + ```yaml + include: + - TV-G + - TV-Y + - TV-PG + - TV-14 + - TV-MA + ``` + + **Default `addons`**: + + ```yaml + addons: + TV-G: + - gb/U + - gb/0+ + - U + - G + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - "01" + - "02" + - "03" + - "04" + - "05" + - "06" + - G - All Ages + TV-Y: + - TV-Y7 + - TV-Y7-FV + - 7 + - 8 + - 9 + - "07" + - "08" + - "09" + TV-PG: + - gb/PG + - gb/9+ + - 10 + - 11 + - 12 + - 13 + - PG - Children + TV-14: + - gb/12A + - 12+ + - PG-13 + - TV-13 + - gb/14+ + - gb/15 + - 14 + - 15 + - 16 + - 17 + - PG-13 - Teens 13 or older + TV-MA: + - 18 + - gb/18 + - MA-17 + - NC-17 + - R + - TVMA + - R - 17+ (violence & profanity) + - R+ - Mild Nudity + - Rx - Hentai + ``` diff --git a/docs/defaults/show/continent.md b/docs/defaults/show/continent.md index 051724db..6b07e3b4 100644 --- a/docs/defaults/show/continent.md +++ b/docs/defaults/show/continent.md @@ -35,373 +35,390 @@ Below is a screenshot of the alternative Color (`color`) style which can be set ![](../images/continent2.png) -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -| Variable | Description & Values | -|:--------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `style` | **Description:** Controls the visual theme of the collections created<table class="clearTable"><tr><th>Values:</th></tr><tr><td><code>white</code></td><td>White Theme</td></tr><tr><td><code>color</code></td><td>Color Theme</td></tr></table> | -| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | -| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | -| `exclude` | **Description:** Exclude these Countries from creating a Dynamic Collection.<br>**Values:** List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | -| `addons` | **Description:** Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | -| `append_include` | **Description:** Appends to the [default include list](#default-include).<br>**Values:** List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | -| `remove_include` | **Description:** Removes from the [default include list](#default-include).<br>**Values:** List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | -| `append_addons` | **Description:** Appends to the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | -| `remove_addons` | **Description:** Removes from the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | -| `key_name_override` | **Description:** Overrides the [default key_name_override dictionary](#default-key_name_override).<br>**Values:** Dictionary with `key: new_key_name` entries | -| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `<<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | -| `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s filmed in <<key_name>>.`<br>**Values:** Any string. | +??? info "Click to expand" -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. + === "File-Specific Template Variables" -{% - include-markdown "../collection_variables.md" -%} -### Example Template Variable Amendments + The below template variables are available specifically for this PMM Defaults file. -The below is an example config.yml extract with some Template Variables added in to change how the file works. + Be sure to also check out the "Shared Template Variables" tab for additional variables. -???+ tip + This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. + | Variable | Description & Values | + |:--------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `style` | **Description:** Controls the visual theme of the collections created<table class="clearTable"><tr><th>Values:</th></tr><tr><td><code>white</code></td><td>White Theme</td></tr><tr><td><code>color</code></td><td>Color Theme</td></tr></table> | + | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | + | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | + | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | + | `exclude` | **Description:** Exclude these Countries from creating a Dynamic Collection.<br>**Values:** List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | + | `addons` | **Description:** Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | + | `append_include` | **Description:** Appends to the [default include list](#default-include).<br>**Values:** List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | + | `remove_include` | **Description:** Removes from the [default include list](#default-include).<br>**Values:** List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | + | `append_addons` | **Description:** Appends to the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | + | `remove_addons` | **Description:** Removes from the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | + | `key_name_override` | **Description:** Overrides the [default key_name_override dictionary](#default-key_name_override).<br>**Values:** Dictionary with `key: new_key_name` entries | + | `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `<<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | + | `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s filmed in <<key_name>>.`<br>**Values:** Any string. | -```yaml -libraries: - Movies: - collection_files: - - pmm: continent - template_variables: - use_other: false #(1)! - use_separator: false #(2)! - style: color #(3)! - exclude: - - Europe #(4)! - sort_by: title.asc -``` + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. -1. Do not create the "Other Continents" collection -2. Do not create a "Continent Collections" separator -3. Set the [Color Style](#color-style) -4. Exclude "Europe" from the list of collections that are created + === "Shared Template Variables" + + {% + include-markdown "../collection_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ???+ tip + + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. + + ```yaml + libraries: + Movies: + collection_files: + - pmm: continent + template_variables: + use_other: false #(1)! + use_separator: false #(2)! + style: color #(3)! + exclude: + - Europe #(4)! + sort_by: title.asc + ``` + + 1. Do not create the "Other Continents" collection + 2. Do not create a "Continent Collections" separator + 3. Set the [Color Style](#color-style) + 4. Exclude "Europe" from the list of collections that are created ## Default values -These are lists provided for reference to show what values will be in use if you do no customization. If you want to customize these values, use the methods described above. These do not show how to change a name or a list. +??? tip -### Default `include` + These are lists provided for reference to show what values will be in use if you do no customization. **These do not show how to change a name or a list.** -```yaml - include: - - Africa - - Americas - - Antarctica - - Asia - - Europe - - Oceania -``` + If you want to customize these values, use the methods described above. -### Default `addons` + **Default `include`**: -```yaml - addons: - Africa: - # Northern Africa: - - dz # Algeria - - eg # Egypt - - ly # Libya - - ma # Morocco - - sd # Sudan - - tn # Tunisia - - eh # Western Sahara - # Eastern Africa: - - io # British Indian Ocean Territory - - bi # Burundi - - km # Comoros - - dj # Djibouti - - er # Eritrea - - et # Ethiopia - - tf # French Southern Territories - - ke # Kenya - - mg # Madagascar - - mw # Malawi - - mu # Mauritius - - yt # Mayotte - - mz # Mozambique - - re # Réunion - - rw # Rwanda - - sc # Seychelles - - so # Somalia - - ss # South Sudan - - ug # Uganda - - tz # Tanzania [United Republic of Tanzania] - - zm # Zambia - - zw # Zimbabwe - # Central Africa: - - ao # Angola - - cm # Cameroon - - cf # Central African Republic - - td # Chad - - cg # Republic of the Congo [Congo] - - cd # Democratic Republic of the Congo - - zr # Zaire - - gq # Equatorial Guinea - - ga # Gabon - - st # São Tomé and Príncipe [Sao Tome and Principe] - # Southern Africa: - - bw # Botswana - - sz # Eswatini [Swaziland] - - ls # Lesotho - - na # Namibia - - za # South Africa - # Western Africa: - - bj # Benin - - bf # Burkina Faso - - cv # Cape Verde [Cabo Verde] - - ci # Côte d'Ivoire [Côte d’Ivoire] [Ivory Coast] - - gm # Gambia - - gh # Ghana - - gn # Guinea - - gw # Guinea-Bissau - - lr # Liberia - - ml # Mali - - mr # Mauritania - - ne # Niger - - ng # Nigeria - - sh # Saint Helena, Ascension and Tristan da Cunha [Ascension] [Tristan da Cunha] [Saint Helena] - - sn # Senegal - - sl # Sierra Leone - - tg # Togo - Americas: - # Caribbean: - - ai # Anguilla - - ag # Antigua and Barbuda [Antigua] [Barbuda] - - aw # Aruba - - bs # Bahamas - - bb # Barbados - - bq # Bonaire, Sint Eustatius and Saba [Bonaire] [Sint Eustatius] [Saba] - - an # Netherlands Antilles - - vg # British Virgin Islands - - ky # Cayman Islands - - cu # Cuba - - cw # Curaçao - - dm # Dominica - - do # Dominican Republic - - gd # Grenada - - gp # Guadeloupe - - ht # Haiti - - jm # Jamaica - - mq # Martinique - - ms # Montserrat - - pr # Puerto Rico - - bl # Saint Barthélemy - - kn # Saint Kitts and Nevis - - lc # Saint Lucia - - mf # Saint Martin - - vc # Saint Vincent and the Grenadines - - sx # Sint Maarten - - tt # Trinidad and Tobago - - tc # Turks and Caicos Islands - - vi # US Virgin Islands [U.S. Virgin Islands] [United States Virgin Islands] - # Central America: - - bz # Belize - - cr # Costa Rica - - sv # El Salvador - - gt # Guatemala - - hn # Honduras - - mx # Mexico - - ni # Nicaragua - - pa # Panama - # South America: - - ar # Argentina - - bo # Bolivia [Plurinational State of Bolivia] - - bv # Bouvet Island - - br # Brazil - - cl # Chile - - co # Colombia - - ec # Ecuador - - fk # Falkland Islands [Malvinas] - - gf # French Guiana - - gy # Guyana - - py # Paraguay - - pe # Peru - - gs # South Georgia and the South Sandwich Islands [South Georgia] [South Sandwich Islands] - - sr # Suriname - - uy # Uruguay - - ve # Venezuela [Bolivarian Republic of Venezuela] - # North America: - - bm # Bermuda - - ca # Canada - - gl # Greenland - - pm # Saint Pierre and Miquelon - - us # United States [United States of America] - Antarctica: - - aq # Antarctica - Asia: - # Central Asia: - - kz # Kazakhstan - - kg # Kyrgyzstan - - tj # Tajikistan - - tm # Turkmenistan - - uz # Uzbekistan - # Eastern Asia: - - cn # China - - hk # Hong Kong - - mo # Macao - - kp # North Korea [Democratic People's Republic of Korea] - - jp # Japan - - mn # Mongolia - - kr # South Korea [Republic of Korea] [Korea] - - tw # Taiwan [Taiwan, Province of China] - # South-Eastern Asia: - - bn # Brunei [Brunei Darussalam] - - kh # Cambodia - - id # Indonesia - - la # Laos [Lao People's Democratic Republic] [Lao] - - my # Malaysia - - mm # Myanmar - - bu # Burma - - ph # Philippines - - sg # Singapore - - th # Thailand - - tp # East Timor - - tl # Timor-Leste - - vn # Vietnam [Viet Nam] - # Southern Asia: - - af # Afghanistan - - bd # Bangladesh - - bt # Bhutan - - in # India - - ir # Iran [Islamic Republic of Iran] - - mv # Maldives - - np # Nepal - - pk # Pakistan - - lk # Sri Lanka - # Western Asia: - - am # Armenia - - az # Azerbaijan - - bh # Bahrain - - cy # Cyprus - - ge # Georgia - - iq # Iraq - - il # Israel - - jo # Jordan - - kw # Kuwait - - lb # Lebanon - - om # Oman - - qa # Qatar - - sa # Saudi Arabia - - ps # Palestine [State of Palestine] - - sy # Syria [Syrian Arab Republic] - - tr # Turkey [Türkiye] - - ae # United Arab Emirates - - ye # Yemen - Europe: - # Eastern Europe: - - by # Belarus - - bg # Bulgaria - - cz # Czech Republic [Czechia] - - cs # Czechoslovakia - - hu # Hungary - - pl # Poland - - md # Moldova [Republic of Moldova] - - ro # Romania - - ru # Russia [Russian Federation] - - su # Soviet Union - - sk # Slovakia - - ua # Ukraine - # Northern Europe: - - ax # Åland Islands - - gg # Guernsey - - je # Jersey - - cq # Sark - - dk # Denmark - - ee # Estonia - - fo # Faroe Islands - - fi # Finland - - is # Iceland - - ie # Ireland - - im # Isle of Man - - lv # Latvia - - lt # Lithuania - - no # Norway - - sj # Svalbard and Jan Mayen Islands [Svalbard and Jan Mayen] - - se # Sweden - - gb # United Kingdom - # Southern Europe: - - al # Albania - - ad # Andorra - - ba # Bosnia and Herzegovina - - hr # Croatia - - gi # Gibraltar - - gr # Greece - - xk # Kosovo - - va # Vatican City [Holy See] - - it # Italy - - mt # Malta - - me # Montenegro - - mk # North Macedonia [Macedonia] [Republic of North Macedonia] - - pt # Portugal - - sm # San Marino - - rs # Serbia - - si # Slovenia - - es # Spain - - yu # Yugoslavia - # Western Europe: - - at # Austria - - be # Belgium - - fr # France [French Republic] - - de # Germany - - dd # East Germany - - li # Liechtenstein - - lu # Luxembourg - - mc # Monaco - - nl # Netherlands - - ch # Switzerland - Oceania: - # Australia and New Zealand: - - au # Australia - - cx # Christmas Island - - cc # Cocos (Keeling) Islands - - hm # Heard Island and McDonald Islands - - nz # New Zealand - - nf # Norfolk Island - # Melanesia: - - fj # Fiji - - nc # New Caledonia - - pg # Papua New Guinea [New Guinea] - - sb # Solomon Islands - - vu # Vanuatu - # Micronesia: - - gu # Guam - - ki # Kiribati - - mh # Marshall Islands - - fm # Micronesia [Federated States of Micronesia] - - nr # Nauru - - mp # Northern Mariana Islands - - pw # Palau - - um # US Minor Outlying Islands - # Polynesia: - - as # American Samoa - - ck # Cook Islands - - pf # French Polynesia - - nu # Niue - - pn # Pitcairn [Pitcairn Islands] - - ws # Samoa - - tk # Tokelau - - to # Tonga - - tv # Tuvalu - - wf # Wallis and Futuna Islands -``` \ No newline at end of file + ```yaml + include: + - Africa + - Americas + - Antarctica + - Asia + - Europe + - Oceania + ``` + + **Default `addons`**: + + ```yaml + addons: + Africa: + # Northern Africa: + - dz # Algeria + - eg # Egypt + - ly # Libya + - ma # Morocco + - sd # Sudan + - tn # Tunisia + - eh # Western Sahara + # Eastern Africa: + - io # British Indian Ocean Territory + - bi # Burundi + - km # Comoros + - dj # Djibouti + - er # Eritrea + - et # Ethiopia + - tf # French Southern Territories + - ke # Kenya + - mg # Madagascar + - mw # Malawi + - mu # Mauritius + - yt # Mayotte + - mz # Mozambique + - re # Réunion + - rw # Rwanda + - sc # Seychelles + - so # Somalia + - ss # South Sudan + - ug # Uganda + - tz # Tanzania [United Republic of Tanzania] + - zm # Zambia + - zw # Zimbabwe + # Central Africa: + - ao # Angola + - cm # Cameroon + - cf # Central African Republic + - td # Chad + - cg # Republic of the Congo [Congo] + - cd # Democratic Republic of the Congo + - zr # Zaire + - gq # Equatorial Guinea + - ga # Gabon + - st # São Tomé and Príncipe [Sao Tome and Principe] + # Southern Africa: + - bw # Botswana + - sz # Eswatini [Swaziland] + - ls # Lesotho + - na # Namibia + - za # South Africa + # Western Africa: + - bj # Benin + - bf # Burkina Faso + - cv # Cape Verde [Cabo Verde] + - ci # Côte d'Ivoire [Côte d’Ivoire] [Ivory Coast] + - gm # Gambia + - gh # Ghana + - gn # Guinea + - gw # Guinea-Bissau + - lr # Liberia + - ml # Mali + - mr # Mauritania + - ne # Niger + - ng # Nigeria + - sh # Saint Helena, Ascension and Tristan da Cunha [Ascension] [Tristan da Cunha] [Saint Helena] + - sn # Senegal + - sl # Sierra Leone + - tg # Togo + Americas: + # Caribbean: + - ai # Anguilla + - ag # Antigua and Barbuda [Antigua] [Barbuda] + - aw # Aruba + - bs # Bahamas + - bb # Barbados + - bq # Bonaire, Sint Eustatius and Saba [Bonaire] [Sint Eustatius] [Saba] + - an # Netherlands Antilles + - vg # British Virgin Islands + - ky # Cayman Islands + - cu # Cuba + - cw # Curaçao + - dm # Dominica + - do # Dominican Republic + - gd # Grenada + - gp # Guadeloupe + - ht # Haiti + - jm # Jamaica + - mq # Martinique + - ms # Montserrat + - pr # Puerto Rico + - bl # Saint Barthélemy + - kn # Saint Kitts and Nevis + - lc # Saint Lucia + - mf # Saint Martin + - vc # Saint Vincent and the Grenadines + - sx # Sint Maarten + - tt # Trinidad and Tobago + - tc # Turks and Caicos Islands + - vi # US Virgin Islands [U.S. Virgin Islands] [United States Virgin Islands] + # Central America: + - bz # Belize + - cr # Costa Rica + - sv # El Salvador + - gt # Guatemala + - hn # Honduras + - mx # Mexico + - ni # Nicaragua + - pa # Panama + # South America: + - ar # Argentina + - bo # Bolivia [Plurinational State of Bolivia] + - bv # Bouvet Island + - br # Brazil + - cl # Chile + - co # Colombia + - ec # Ecuador + - fk # Falkland Islands [Malvinas] + - gf # French Guiana + - gy # Guyana + - py # Paraguay + - pe # Peru + - gs # South Georgia and the South Sandwich Islands [South Georgia] [South Sandwich Islands] + - sr # Suriname + - uy # Uruguay + - ve # Venezuela [Bolivarian Republic of Venezuela] + # North America: + - bm # Bermuda + - ca # Canada + - gl # Greenland + - pm # Saint Pierre and Miquelon + - us # United States [United States of America] + Antarctica: + - aq # Antarctica + Asia: + # Central Asia: + - kz # Kazakhstan + - kg # Kyrgyzstan + - tj # Tajikistan + - tm # Turkmenistan + - uz # Uzbekistan + # Eastern Asia: + - cn # China + - hk # Hong Kong + - mo # Macao + - kp # North Korea [Democratic People's Republic of Korea] + - jp # Japan + - mn # Mongolia + - kr # South Korea [Republic of Korea] [Korea] + - tw # Taiwan [Taiwan, Province of China] + # South-Eastern Asia: + - bn # Brunei [Brunei Darussalam] + - kh # Cambodia + - id # Indonesia + - la # Laos [Lao People's Democratic Republic] [Lao] + - my # Malaysia + - mm # Myanmar + - bu # Burma + - ph # Philippines + - sg # Singapore + - th # Thailand + - tp # East Timor + - tl # Timor-Leste + - vn # Vietnam [Viet Nam] + # Southern Asia: + - af # Afghanistan + - bd # Bangladesh + - bt # Bhutan + - in # India + - ir # Iran [Islamic Republic of Iran] + - mv # Maldives + - np # Nepal + - pk # Pakistan + - lk # Sri Lanka + # Western Asia: + - am # Armenia + - az # Azerbaijan + - bh # Bahrain + - cy # Cyprus + - ge # Georgia + - iq # Iraq + - il # Israel + - jo # Jordan + - kw # Kuwait + - lb # Lebanon + - om # Oman + - qa # Qatar + - sa # Saudi Arabia + - ps # Palestine [State of Palestine] + - sy # Syria [Syrian Arab Republic] + - tr # Turkey [Türkiye] + - ae # United Arab Emirates + - ye # Yemen + Europe: + # Eastern Europe: + - by # Belarus + - bg # Bulgaria + - cz # Czech Republic [Czechia] + - cs # Czechoslovakia + - hu # Hungary + - pl # Poland + - md # Moldova [Republic of Moldova] + - ro # Romania + - ru # Russia [Russian Federation] + - su # Soviet Union + - sk # Slovakia + - ua # Ukraine + # Northern Europe: + - ax # Åland Islands + - gg # Guernsey + - je # Jersey + - cq # Sark + - dk # Denmark + - ee # Estonia + - fo # Faroe Islands + - fi # Finland + - is # Iceland + - ie # Ireland + - im # Isle of Man + - lv # Latvia + - lt # Lithuania + - no # Norway + - sj # Svalbard and Jan Mayen Islands [Svalbard and Jan Mayen] + - se # Sweden + - gb # United Kingdom + # Southern Europe: + - al # Albania + - ad # Andorra + - ba # Bosnia and Herzegovina + - hr # Croatia + - gi # Gibraltar + - gr # Greece + - xk # Kosovo + - va # Vatican City [Holy See] + - it # Italy + - mt # Malta + - me # Montenegro + - mk # North Macedonia [Macedonia] [Republic of North Macedonia] + - pt # Portugal + - sm # San Marino + - rs # Serbia + - si # Slovenia + - es # Spain + - yu # Yugoslavia + # Western Europe: + - at # Austria + - be # Belgium + - fr # France [French Republic] + - de # Germany + - dd # East Germany + - li # Liechtenstein + - lu # Luxembourg + - mc # Monaco + - nl # Netherlands + - ch # Switzerland + Oceania: + # Australia and New Zealand: + - au # Australia + - cx # Christmas Island + - cc # Cocos (Keeling) Islands + - hm # Heard Island and McDonald Islands + - nz # New Zealand + - nf # Norfolk Island + # Melanesia: + - fj # Fiji + - nc # New Caledonia + - pg # Papua New Guinea [New Guinea] + - sb # Solomon Islands + - vu # Vanuatu + # Micronesia: + - gu # Guam + - ki # Kiribati + - mh # Marshall Islands + - fm # Micronesia [Federated States of Micronesia] + - nr # Nauru + - mp # Northern Mariana Islands + - pw # Palau + - um # US Minor Outlying Islands + # Polynesia: + - as # American Samoa + - ck # Cook Islands + - pf # French Polynesia + - nu # Niue + - pn # Pitcairn [Pitcairn Islands] + - ws # Samoa + - tk # Tokelau + - to # Tonga + - tv # Tuvalu + - wf # Wallis and Futuna Islands + ``` \ No newline at end of file diff --git a/docs/defaults/show/country.md b/docs/defaults/show/country.md index 80cd8a47..7ec45b7f 100644 --- a/docs/defaults/show/country.md +++ b/docs/defaults/show/country.md @@ -35,368 +35,385 @@ Below is a screenshot of the alternative Color (`color`) style which can be set ![](../images/country2.png) -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -| Variable | Description & Values | -|:--------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `style` | **Description:** Controls the visual theme of the collections created<table class="clearTable"><tr><th>Values:</th></tr><tr><td><code>white</code></td><td>White Theme</td></tr><tr><td><code>color</code></td><td>Color Theme</td></tr></table> | -| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | -| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | -| `exclude` | **Description:** Exclude these Countries from creating a Dynamic Collection.<br>**Values:** List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | -| `addons` | **Description:** Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | -| `append_include` | **Description:** Appends to the [default include list](#default-include).<br>**Values:** List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | -| `remove_include` | **Description:** Removes from the [default include list](#default-include).<br>**Values:** List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | -| `append_addons` | **Description:** Appends to the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | -| `remove_addons` | **Description:** Removes from the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | -| `key_name_override` | **Description:** Overrides the [default key_name_override dictionary](#default-key_name_override).<br>**Values:** Dictionary with `key: new_key_name` entries | -| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `<<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | -| `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s filmed in <<key_name>>.`<br>**Values:** Any string. | +??? info "Click to expand" -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. + === "File-Specific Template Variables" -{% - include-markdown "../collection_variables.md" -%} -### Example Template Variable Amendments + The below template variables are available specifically for this PMM Defaults file. -The below is an example config.yml extract with some Template Variables added in to change how the file works. + Be sure to also check out the "Shared Template Variables" tab for additional variables. -???+ tip + This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. + | Variable | Description & Values | + |:--------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `style` | **Description:** Controls the visual theme of the collections created<table class="clearTable"><tr><th>Values:</th></tr><tr><td><code>white</code></td><td>White Theme</td></tr><tr><td><code>color</code></td><td>Color Theme</td></tr></table> | + | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | + | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | + | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | + | `exclude` | **Description:** Exclude these Countries from creating a Dynamic Collection.<br>**Values:** List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | + | `addons` | **Description:** Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | + | `append_include` | **Description:** Appends to the [default include list](#default-include).<br>**Values:** List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | + | `remove_include` | **Description:** Removes from the [default include list](#default-include).<br>**Values:** List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | + | `append_addons` | **Description:** Appends to the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | + | `remove_addons` | **Description:** Removes from the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | + | `key_name_override` | **Description:** Overrides the [default key_name_override dictionary](#default-key_name_override).<br>**Values:** Dictionary with `key: new_key_name` entries | + | `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `<<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | + | `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s filmed in <<key_name>>.`<br>**Values:** Any string. | -```yaml -libraries: - Movies: - collection_files: - - pmm: country - template_variables: - use_other: false #(1)! - use_separator: false #(2)! - style: color #(3)! - exclude: - - France #(4)! - sort_by: title.asc -``` + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. -1. Do not create the "Other Countries" collection -2. Do not create a "Country Collections" separator -3. Set the [Color Style](#color-style) -4. Exclude "France" from the list of collections that are created + === "Shared Template Variables" + + {% + include-markdown "../collection_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ???+ tip + + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. + + ```yaml + libraries: + Movies: + collection_files: + - pmm: country + template_variables: + use_other: false #(1)! + use_separator: false #(2)! + style: color #(3)! + exclude: + - France #(4)! + sort_by: title.asc + ``` + + 1. Do not create the "Other Countries" collection + 2. Do not create a "Country Collections" separator + 3. Set the [Color Style](#color-style) + 4. Exclude "France" from the list of collections that are created ## Default values -These are lists provided for reference to show what values will be in use if you do no customization. If you want to customize these values, use the methods described above. These do not show how to change a name or a list. +??? tip -### Default `include` + These are lists provided for reference to show what values will be in use if you do no customization. **These do not show how to change a name or a list.** -```yaml -include: - # Northern Africa: - - dz # Algeria - - eg # Egypt - - ly # Libya - - ma # Morocco - - sd # Sudan - - tn # Tunisia - - eh # Western Sahara - # Eastern Africa: - - io # British Indian Ocean Territory - - bi # Burundi - - km # Comoros - - dj # Djibouti - - er # Eritrea - - et # Ethiopia - - tf # French Southern Territories - - ke # Kenya - - mg # Madagascar - - mw # Malawi - - mu # Mauritius - - yt # Mayotte - - mz # Mozambique - - re # Réunion - - rw # Rwanda - - sc # Seychelles - - so # Somalia - - ss # South Sudan - - ug # Uganda - - tz # Tanzania [United Republic of Tanzania] - - zm # Zambia - - zw # Zimbabwe - # Central Africa: - - ao # Angola - - cm # Cameroon - - cf # Central African Republic - - td # Chad - - cg # Republic of the Congo [Congo] - - cd # Democratic Republic of the Congo - - gq # Equatorial Guinea - - ga # Gabon - - st # São Tomé and Príncipe [Sao Tome and Principe] - # Southern Africa: - - bw # Botswana - - sz # Eswatini [Swaziland] - - ls # Lesotho - - na # Namibia - - za # South Africa - # Western Africa: - - bj # Benin - - bf # Burkina Faso - - cv # Cape Verde [Cabo Verde] - - ci # Côte d'Ivoire [Côte d’Ivoire] [Ivory Coast] - - gm # Gambia - - gh # Ghana - - gn # Guinea - - gw # Guinea-Bissau - - lr # Liberia - - ml # Mali - - mr # Mauritania - - ne # Niger - - ng # Nigeria - - sh # Saint Helena, Ascension and Tristan da Cunha [Ascension] [Tristan da Cunha] [Saint Helena] - - sn # Senegal - - sl # Sierra Leone - - tg # Togo - # Caribbean: - - ai # Anguilla - - ag # Antigua and Barbuda [Antigua] [Barbuda] - - aw # Aruba - - bs # Bahamas - - bb # Barbados - - bq # Bonaire, Sint Eustatius and Saba [Bonaire] [Sint Eustatius] [Saba] - - an # Netherlands Antilles - - vg # British Virgin Islands - - ky # Cayman Islands - - cu # Cuba - - cw # Curaçao - - dm # Dominica - - do # Dominican Republic - - gd # Grenada - - gp # Guadeloupe - - ht # Haiti - - jm # Jamaica - - mq # Martinique - - ms # Montserrat - - pr # Puerto Rico - - bl # Saint Barthélemy - - kn # Saint Kitts and Nevis - - lc # Saint Lucia - - mf # Saint Martin - - vc # Saint Vincent and the Grenadines - - sx # Sint Maarten - - tt # Trinidad and Tobago - - tc # Turks and Caicos Islands - - vi # US Virgin Islands [U.S. Virgin Islands] [United States Virgin Islands] - # Central America: - - bz # Belize - - cr # Costa Rica - - sv # El Salvador - - gt # Guatemala - - hn # Honduras - - mx # Mexico - - ni # Nicaragua - - pa # Panama - # South America: - - ar # Argentina - - bo # Bolivia [Plurinational State of Bolivia] - - bv # Bouvet Island - - br # Brazil - - cl # Chile - - co # Colombia - - ec # Ecuador - - fk # Falkland Islands [Malvinas] - - gf # French Guiana - - gy # Guyana - - py # Paraguay - - pe # Peru - - gs # South Georgia and the South Sandwich Islands [South Georgia] [South Sandwich Islands] - - sr # Suriname - - uy # Uruguay - - ve # Venezuela [Bolivarian Republic of Venezuela] - # North America: - - bm # Bermuda - - ca # Canada - - gl # Greenland - - pm # Saint Pierre and Miquelon - - us # United States [United States of America] - # Antarctica: - - aq # Antarctica - # Central Asia: - - kz # Kazakhstan - - kg # Kyrgyzstan - - tj # Tajikistan - - tm # Turkmenistan - - uz # Uzbekistan - # Eastern Asia: - - cn # China - - hk # Hong Kong - - mo # Macao - - kp # North Korea [Democratic People's Republic of Korea] - - jp # Japan - - mn # Mongolia - - kr # South Korea [Republic of Korea] [Korea] - - tw # Taiwan [Taiwan, Province of China] - # South-Eastern Asia: - - bn # Brunei [Brunei Darussalam] - - kh # Cambodia - - id # Indonesia - - la # Laos [Lao People's Democratic Republic] [Lao] - - my # Malaysia - - mm # Myanmar - - ph # Philippines - - sg # Singapore - - th # Thailand - - tp # East Timor - - vn # Vietnam [Viet Nam] - # Southern Asia: - - af # Afghanistan - - bd # Bangladesh - - bt # Bhutan - - in # India - - ir # Iran [Islamic Republic of Iran] - - mv # Maldives - - np # Nepal - - pk # Pakistan - - lk # Sri Lanka - # Western Asia: - - am # Armenia - - az # Azerbaijan - - bh # Bahrain - - cy # Cyprus - - ge # Georgia - - iq # Iraq - - il # Israel - - jo # Jordan - - kw # Kuwait - - lb # Lebanon - - om # Oman - - qa # Qatar - - sa # Saudi Arabia - - ps # Palestine [State of Palestine] - - sy # Syria [Syrian Arab Republic] - - tr # Turkey [Türkiye] - - ae # United Arab Emirates - - ye # Yemen - # Eastern Europe: - - by # Belarus - - bg # Bulgaria - - cz # Czech Republic [Czechia] - - hu # Hungary - - pl # Poland - - md # Moldova [Republic of Moldova] - - ro # Romania - - ru # Russia [Russian Federation] - - sk # Slovakia - - ua # Ukraine - # Northern Europe: - - ax # Åland Islands - - gg # Guernsey - - je # Jersey - - cq # Sark - - dk # Denmark - - ee # Estonia - - fo # Faroe Islands - - fi # Finland - - is # Iceland - - ie # Ireland - - im # Isle of Man - - lv # Latvia - - lt # Lithuania - - no # Norway - - sj # Svalbard and Jan Mayen Islands [Svalbard and Jan Mayen] - - se # Sweden - - gb # United Kingdom - # Southern Europe: - - al # Albania - - ad # Andorra - - ba # Bosnia and Herzegovina - - hr # Croatia - - gi # Gibraltar - - gr # Greece - - xk # Kosovo - - va # Vatican City [Holy See] - - it # Italy - - mt # Malta - - me # Montenegro - - mk # North Macedonia [Macedonia] [Republic of North Macedonia] - - pt # Portugal - - sm # San Marino - - rs # Serbia - - si # Slovenia - - es # Spain - - yu # Yugoslavia - # Western Europe: - - at # Austria - - be # Belgium - - fr # France [French Republic] - - de # Germany - - li # Liechtenstein - - lu # Luxembourg - - mc # Monaco - - nl # Netherlands - - ch # Switzerland - # Australia and New Zealand: - - au # Australia - - cx # Christmas Island - - cc # Cocos (Keeling) Islands - - hm # Heard Island and McDonald Islands - - nz # New Zealand - - nf # Norfolk Island - # Melanesia: - - fj # Fiji - - nc # New Caledonia - - pg # Papua New Guinea [New Guinea] - - sb # Solomon Islands - - vu # Vanuatu - # Micronesia: - - gu # Guam - - ki # Kiribati - - mh # Marshall Islands - - fm # Micronesia [Federated States of Micronesia] - - nr # Nauru - - mp # Northern Mariana Islands - - pw # Palau - - um # US Minor Outlying Islands - # Polynesia: - - as # American Samoa - - ck # Cook Islands - - pf # French Polynesia - - nu # Niue - - pn # Pitcairn [Pitcairn Islands] - - ws # Samoa - - tk # Tokelau - - to # Tonga - - tv # Tuvalu - - wf # Wallis and Futuna Islands -``` + If you want to customize these values, use the methods described above. -### Default `addons` + **Default `include`**: -```yaml - addons: - cd: # Democratic Republic of the Congo - - zr # Zaire - mm: # Myanmar - - bu # Burma - tp: # East Timor - - tl # Timor-Leste - cz: # Czech Republic - - cs # Czechoslovakia - ru: # Russia - - su # Soviet Union - de: # Germany - - dd # East Germany -``` \ No newline at end of file + ```yaml + include: + # Northern Africa: + - dz # Algeria + - eg # Egypt + - ly # Libya + - ma # Morocco + - sd # Sudan + - tn # Tunisia + - eh # Western Sahara + # Eastern Africa: + - io # British Indian Ocean Territory + - bi # Burundi + - km # Comoros + - dj # Djibouti + - er # Eritrea + - et # Ethiopia + - tf # French Southern Territories + - ke # Kenya + - mg # Madagascar + - mw # Malawi + - mu # Mauritius + - yt # Mayotte + - mz # Mozambique + - re # Réunion + - rw # Rwanda + - sc # Seychelles + - so # Somalia + - ss # South Sudan + - ug # Uganda + - tz # Tanzania [United Republic of Tanzania] + - zm # Zambia + - zw # Zimbabwe + # Central Africa: + - ao # Angola + - cm # Cameroon + - cf # Central African Republic + - td # Chad + - cg # Republic of the Congo [Congo] + - cd # Democratic Republic of the Congo + - gq # Equatorial Guinea + - ga # Gabon + - st # São Tomé and Príncipe [Sao Tome and Principe] + # Southern Africa: + - bw # Botswana + - sz # Eswatini [Swaziland] + - ls # Lesotho + - na # Namibia + - za # South Africa + # Western Africa: + - bj # Benin + - bf # Burkina Faso + - cv # Cape Verde [Cabo Verde] + - ci # Côte d'Ivoire [Côte d’Ivoire] [Ivory Coast] + - gm # Gambia + - gh # Ghana + - gn # Guinea + - gw # Guinea-Bissau + - lr # Liberia + - ml # Mali + - mr # Mauritania + - ne # Niger + - ng # Nigeria + - sh # Saint Helena, Ascension and Tristan da Cunha [Ascension] [Tristan da Cunha] [Saint Helena] + - sn # Senegal + - sl # Sierra Leone + - tg # Togo + # Caribbean: + - ai # Anguilla + - ag # Antigua and Barbuda [Antigua] [Barbuda] + - aw # Aruba + - bs # Bahamas + - bb # Barbados + - bq # Bonaire, Sint Eustatius and Saba [Bonaire] [Sint Eustatius] [Saba] + - an # Netherlands Antilles + - vg # British Virgin Islands + - ky # Cayman Islands + - cu # Cuba + - cw # Curaçao + - dm # Dominica + - do # Dominican Republic + - gd # Grenada + - gp # Guadeloupe + - ht # Haiti + - jm # Jamaica + - mq # Martinique + - ms # Montserrat + - pr # Puerto Rico + - bl # Saint Barthélemy + - kn # Saint Kitts and Nevis + - lc # Saint Lucia + - mf # Saint Martin + - vc # Saint Vincent and the Grenadines + - sx # Sint Maarten + - tt # Trinidad and Tobago + - tc # Turks and Caicos Islands + - vi # US Virgin Islands [U.S. Virgin Islands] [United States Virgin Islands] + # Central America: + - bz # Belize + - cr # Costa Rica + - sv # El Salvador + - gt # Guatemala + - hn # Honduras + - mx # Mexico + - ni # Nicaragua + - pa # Panama + # South America: + - ar # Argentina + - bo # Bolivia [Plurinational State of Bolivia] + - bv # Bouvet Island + - br # Brazil + - cl # Chile + - co # Colombia + - ec # Ecuador + - fk # Falkland Islands [Malvinas] + - gf # French Guiana + - gy # Guyana + - py # Paraguay + - pe # Peru + - gs # South Georgia and the South Sandwich Islands [South Georgia] [South Sandwich Islands] + - sr # Suriname + - uy # Uruguay + - ve # Venezuela [Bolivarian Republic of Venezuela] + # North America: + - bm # Bermuda + - ca # Canada + - gl # Greenland + - pm # Saint Pierre and Miquelon + - us # United States [United States of America] + # Antarctica: + - aq # Antarctica + # Central Asia: + - kz # Kazakhstan + - kg # Kyrgyzstan + - tj # Tajikistan + - tm # Turkmenistan + - uz # Uzbekistan + # Eastern Asia: + - cn # China + - hk # Hong Kong + - mo # Macao + - kp # North Korea [Democratic People's Republic of Korea] + - jp # Japan + - mn # Mongolia + - kr # South Korea [Republic of Korea] [Korea] + - tw # Taiwan [Taiwan, Province of China] + # South-Eastern Asia: + - bn # Brunei [Brunei Darussalam] + - kh # Cambodia + - id # Indonesia + - la # Laos [Lao People's Democratic Republic] [Lao] + - my # Malaysia + - mm # Myanmar + - ph # Philippines + - sg # Singapore + - th # Thailand + - tp # East Timor + - vn # Vietnam [Viet Nam] + # Southern Asia: + - af # Afghanistan + - bd # Bangladesh + - bt # Bhutan + - in # India + - ir # Iran [Islamic Republic of Iran] + - mv # Maldives + - np # Nepal + - pk # Pakistan + - lk # Sri Lanka + # Western Asia: + - am # Armenia + - az # Azerbaijan + - bh # Bahrain + - cy # Cyprus + - ge # Georgia + - iq # Iraq + - il # Israel + - jo # Jordan + - kw # Kuwait + - lb # Lebanon + - om # Oman + - qa # Qatar + - sa # Saudi Arabia + - ps # Palestine [State of Palestine] + - sy # Syria [Syrian Arab Republic] + - tr # Turkey [Türkiye] + - ae # United Arab Emirates + - ye # Yemen + # Eastern Europe: + - by # Belarus + - bg # Bulgaria + - cz # Czech Republic [Czechia] + - hu # Hungary + - pl # Poland + - md # Moldova [Republic of Moldova] + - ro # Romania + - ru # Russia [Russian Federation] + - sk # Slovakia + - ua # Ukraine + # Northern Europe: + - ax # Åland Islands + - gg # Guernsey + - je # Jersey + - cq # Sark + - dk # Denmark + - ee # Estonia + - fo # Faroe Islands + - fi # Finland + - is # Iceland + - ie # Ireland + - im # Isle of Man + - lv # Latvia + - lt # Lithuania + - no # Norway + - sj # Svalbard and Jan Mayen Islands [Svalbard and Jan Mayen] + - se # Sweden + - gb # United Kingdom + # Southern Europe: + - al # Albania + - ad # Andorra + - ba # Bosnia and Herzegovina + - hr # Croatia + - gi # Gibraltar + - gr # Greece + - xk # Kosovo + - va # Vatican City [Holy See] + - it # Italy + - mt # Malta + - me # Montenegro + - mk # North Macedonia [Macedonia] [Republic of North Macedonia] + - pt # Portugal + - sm # San Marino + - rs # Serbia + - si # Slovenia + - es # Spain + - yu # Yugoslavia + # Western Europe: + - at # Austria + - be # Belgium + - fr # France [French Republic] + - de # Germany + - li # Liechtenstein + - lu # Luxembourg + - mc # Monaco + - nl # Netherlands + - ch # Switzerland + # Australia and New Zealand: + - au # Australia + - cx # Christmas Island + - cc # Cocos (Keeling) Islands + - hm # Heard Island and McDonald Islands + - nz # New Zealand + - nf # Norfolk Island + # Melanesia: + - fj # Fiji + - nc # New Caledonia + - pg # Papua New Guinea [New Guinea] + - sb # Solomon Islands + - vu # Vanuatu + # Micronesia: + - gu # Guam + - ki # Kiribati + - mh # Marshall Islands + - fm # Micronesia [Federated States of Micronesia] + - nr # Nauru + - mp # Northern Mariana Islands + - pw # Palau + - um # US Minor Outlying Islands + # Polynesia: + - as # American Samoa + - ck # Cook Islands + - pf # French Polynesia + - nu # Niue + - pn # Pitcairn [Pitcairn Islands] + - ws # Samoa + - tk # Tokelau + - to # Tonga + - tv # Tuvalu + - wf # Wallis and Futuna Islands + ``` + + **Default `addons`**: + + ```yaml + addons: + cd: # Democratic Republic of the Congo + - zr # Zaire + mm: # Myanmar + - bu # Burma + tp: # East Timor + - tl # Timor-Leste + cz: # Czech Republic + - cs # Czechoslovakia + ru: # Russia + - su # Soviet Union + de: # Germany + - dd # East Germany + ``` \ No newline at end of file diff --git a/docs/defaults/show/decade.md b/docs/defaults/show/decade.md index 4b0b0b19..dfaf1577 100644 --- a/docs/defaults/show/decade.md +++ b/docs/defaults/show/decade.md @@ -28,52 +28,65 @@ libraries: - pmm: decade ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -| Variable | Description & Values | -|:------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Default:** `100`<br>**Values:** Number Greater than 0 | -| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `critic_rating.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `exclude` | **Description:** Exclude these Decades from creating a Dynamic Collection.<br>**Values:** List of Decades found in your library | -| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `Best of <<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | -| `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `Top <<limit>> <<library_translation>>s of the <<key_name>>.`<br>**Values:** Any string. | +??? info "Click to expand" -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. + === "File-Specific Template Variables" + + The below template variables are available specifically for this PMM Defaults file. + + Be sure to also check out the "Shared Template Variables" tab for additional variables. + + This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. + + | Variable | Description & Values | + |:------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Default:** `100`<br>**Values:** Number Greater than 0 | + | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | + | `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `critic_rating.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `exclude` | **Description:** Exclude these Decades from creating a Dynamic Collection.<br>**Values:** List of Decades found in your library | + | `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `Best of <<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | + | `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `Top <<limit>> <<library_translation>>s of the <<key_name>>.`<br>**Values:** Any string. | + + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. {% include-markdown "../collection_variables.md" %} -{% - include-markdown "../collection_variables.md" -%} -### Example Template Variable Amendments + === "Shared Template Variables" -The below is an example config.yml extract with some Template Variables added in to change how the file works. + {% + include-markdown "../collection_variables.md" + %} -???+ tip + ### Example Template Variable Amendments - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. + The below is an example config.yml extract with some Template Variables added in to change how the file works. -```yaml -libraries: - Movies: - collection_files: - - pmm: year - template_variables: - sep_style: purple #(1)! - sort_by: title.asc - sort_by_2020: release.desc #(2)! -``` + ???+ tip -1. Use the purple [Separator Style](../separators.md#separator-styles) -2. Set the sort order for "Best of 2020s" to release date descending \ No newline at end of file + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. + + ```yaml + libraries: + Movies: + collection_files: + - pmm: year + template_variables: + sep_style: purple #(1)! + sort_by: title.asc + sort_by_2020: release.desc #(2)! + ``` + + 1. Use the purple [Separator Style](../separators.md#separator-styles) + 2. Set the sort order for "Best of 2020s" to release date descending \ No newline at end of file diff --git a/docs/defaults/show/franchise.md b/docs/defaults/show/franchise.md index 33f5c923..d0c41e69 100644 --- a/docs/defaults/show/franchise.md +++ b/docs/defaults/show/franchise.md @@ -29,128 +29,136 @@ libraries: - pmm: franchise ``` + ## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -Note that the `template_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. +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -**[Shared Collection Variables](../collection_variables.md) are NOT available to this default file.** +??? info "Click to expand" -| Variable | Description & Values | -|:-----------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `summary_<<key>>`<sup>1</sup> | **Description:** Changes the summary of the specified key's collection.<br>**Values:** New Collection Summary | -| `collection_section` | **Description:** Adds a sort title with this collection sections.<br>**Values:** Any number | -| `order_<<key>>`<sup>1</sup> | **Description:** Controls the sort order of the collections in their collection section.<br>**Values:** Any number | -| `collection_mode` | **Description:** Controls the collection mode of all collections in this file.<br>**Values:**<table class="clearTable"><tr><td>`default`</td><td>Library default</td></tr><tr><td>`hide`</td><td>Hide Collection</td></tr><tr><td>`hide_items`</td><td>Hide Items in this Collection</td></tr><tr><td>`show_items`</td><td>Show this Collection and its Items</td></tr></table> | -| `minimum_items` | **Description:** Controls the minimum items that the collection must have to be created.<br>**Default:** `2`<br>**Values:** Any number | -| `name_mapping_<<key>>`<sup>1</sup> | **Description:** Sets the name mapping value for using assets of the specified key's collection.<br>**Values:** Any String | -| `sort_title` | **Description:** Sets the sort title for all collections. Use `<<collection_name>>` to use the collection name. **Example:** `"!02_<<collection_name>>"`<br>**Values:** Any String with `<<collection_name>>` | -| `sort_title_<<key>>`<sup>1</sup> | **Description:** Sets the sort title of the specified key's collection.<br>**Default:** `sort_title`<br>**Values:** Any String | -| `build_collection` | **Description:** Controls if you want the collection to actually be built. i.e. you may just want these shows sent to Sonarr.<br>**Values:** `false` to not build the collection | -| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `collection_order` | **Description:** Changes the Collection Order for all collections in this file.<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `exclude` | **Description:** Exclude these Collections from creating a Dynamic Collection.<br>**Values:** List of Collection IDs | -| `data` | **Description:** Overrides the [default data dictionary](#default-data). Defines the data that the custom dynamic collection processes.<br>**Values:** Dictionary List of TMDb Main Show ID | -| `append_data` | **Description:** Appends to the [default data dictionary](#default-data).<br>**Values:** Dictionary List of TMDb Main Show ID | -| `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of TMDb Show IDs | -| `append_addons` | **Description:** Appends to the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of TMDb Show IDs | -| `remove_addons` | **Description:** Removes from the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of TMDb Show IDs | -| `sonarr_add_missing` | **Description:** Override Sonarr `add_missing` attribute for all collections in a Defaults file.<br>**Values:** `true` or `false` | -| `sonarr_add_missing_<<key>>`<sup>1</sup> | **Description:** Override Sonarr `add_missing` attribute of the specified key's collection.<br>**Default:** `sonarr_add_missing`<br>**Values:** `true` or `false` | -| `sonarr_folder` | **Description:** Override Sonarr `root_folder_path` attribute for all collections in a Defaults file.<br>**Values:** Folder Path | -| `sonarr_folder_<<key>>`<sup>1</sup> | **Description:** Override Sonarr `root_folder_path` attribute of the specified key's collection.<br>**Default:** `sonarr_folder`<br>**Values:** Folder Path | -| `sonarr_tag` | **Description:** Override Sonarr `tag` attribute for all collections in a Defaults file.<br>**Values:** List or comma-separated string of tags | -| `sonarr_tag_<<key>>`<sup>1</sup> | **Description:** Override Sonarr `tag` attribute of the specified key's collection.<br>**Default:** `sonarr_tag`<br>**Values:** List or comma-separated string of tags | -| `item_sonarr_tag` | **Description:** Used to append a tag in Sonarr for every show found by the builders that's in Sonarr for all collections in a Defaults file.<br>**Values:** List or comma-separated string of tags | -| `item_sonarr_tag_<<key>>`<sup>1</sup> | **Description:** Used to append a tag in Sonarr for every show found by the builders that's in Sonarr of the specified key's collection.<br>**Default:** `item_sonarr_tag`<br>**Values:** List or comma-separated string of tags | + === "Template Variables" -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. + The below template variables are available specifically for this PMM Defaults file. -{% - include-markdown "../collection_variables.md" -%} -### Example Template Variable Amendments + **[Shared Collection Variables](../collection_variables.md) are NOT available to this default file.** -The below is an example config.yml extract with some Template Variables added in to change how the file works. + | Variable | Description & Values | + |:-----------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `summary_<<key>>`<sup>1</sup> | **Description:** Changes the summary of the specified key's collection.<br>**Values:** New Collection Summary | + | `collection_section` | **Description:** Adds a sort title with this collection sections.<br>**Values:** Any number | + | `order_<<key>>`<sup>1</sup> | **Description:** Controls the sort order of the collections in their collection section.<br>**Values:** Any number | + | `collection_mode` | **Description:** Controls the collection mode of all collections in this file.<br>**Values:**<table class="clearTable"><tr><td>`default`</td><td>Library default</td></tr><tr><td>`hide`</td><td>Hide Collection</td></tr><tr><td>`hide_items`</td><td>Hide Items in this Collection</td></tr><tr><td>`show_items`</td><td>Show this Collection and its Items</td></tr></table> | + | `minimum_items` | **Description:** Controls the minimum items that the collection must have to be created.<br>**Default:** `2`<br>**Values:** Any number | + | `name_mapping_<<key>>`<sup>1</sup> | **Description:** Sets the name mapping value for using assets of the specified key's collection.<br>**Values:** Any String | + | `sort_title` | **Description:** Sets the sort title for all collections. Use `<<collection_name>>` to use the collection name. **Example:** `"!02_<<collection_name>>"`<br>**Values:** Any String with `<<collection_name>>` | + | `sort_title_<<key>>`<sup>1</sup> | **Description:** Sets the sort title of the specified key's collection.<br>**Default:** `sort_title`<br>**Values:** Any String | + | `build_collection` | **Description:** Controls if you want the collection to actually be built. i.e. you may just want these shows sent to Sonarr.<br>**Values:** `false` to not build the collection | + | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `collection_order` | **Description:** Changes the Collection Order for all collections in this file.<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | + | `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | + | `exclude` | **Description:** Exclude these Collections from creating a Dynamic Collection.<br>**Values:** List of Collection IDs | + | `data` | **Description:** Overrides the [default data dictionary](#default-data). Defines the data that the custom dynamic collection processes.<br>**Values:** Dictionary List of TMDb Main Show ID | + | `append_data` | **Description:** Appends to the [default data dictionary](#default-data).<br>**Values:** Dictionary List of TMDb Main Show ID | + | `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of TMDb Show IDs | + | `append_addons` | **Description:** Appends to the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of TMDb Show IDs | + | `remove_addons` | **Description:** Removes from the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of TMDb Show IDs | + | `sonarr_add_missing` | **Description:** Override Sonarr `add_missing` attribute for all collections in a Defaults file.<br>**Values:** `true` or `false` | + | `sonarr_add_missing_<<key>>`<sup>1</sup> | **Description:** Override Sonarr `add_missing` attribute of the specified key's collection.<br>**Default:** `sonarr_add_missing`<br>**Values:** `true` or `false` | + | `sonarr_folder` | **Description:** Override Sonarr `root_folder_path` attribute for all collections in a Defaults file.<br>**Values:** Folder Path | + | `sonarr_folder_<<key>>`<sup>1</sup> | **Description:** Override Sonarr `root_folder_path` attribute of the specified key's collection.<br>**Default:** `sonarr_folder`<br>**Values:** Folder Path | + | `sonarr_tag` | **Description:** Override Sonarr `tag` attribute for all collections in a Defaults file.<br>**Values:** List or comma-separated string of tags | + | `sonarr_tag_<<key>>`<sup>1</sup> | **Description:** Override Sonarr `tag` attribute of the specified key's collection.<br>**Default:** `sonarr_tag`<br>**Values:** List or comma-separated string of tags | + | `item_sonarr_tag` | **Description:** Used to append a tag in Sonarr for every show found by the builders that's in Sonarr for all collections in a Defaults file.<br>**Values:** List or comma-separated string of tags | + | `item_sonarr_tag_<<key>>`<sup>1</sup> | **Description:** Used to append a tag in Sonarr for every show found by the builders that's in Sonarr of the specified key's collection.<br>**Default:** `item_sonarr_tag`<br>**Values:** List or comma-separated string of tags | -???+ tip + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. + ### Example Template Variable Amendments -```yaml -libraries: - TV Shows: - collection_files: - - pmm: franchise - template_variables: - append_data: - "31917": Pretty Little Liars #(1)! - append_addons: - 31917: [46958, 79863, 110531] #(2)! - sonarr_add_missing: true #(3)! -``` + The below is an example config.yml extract with some Template Variables added in to change how the file works. -1. Add [TMDB Show 31917](https://www.themoviedb.org/tv/31917-pretty-little-liars) to the data dictionary -2. Add [TMDb Shows 46958](https://www.themoviedb.org/tv/46958), [79863](https://www.themoviedb.org/tv/79863) and [110531](https://www.themoviedb.org/tv/110531) as addons of [TMDB Show 31917](https://www.themoviedb.org/tv/31917-pretty-little-liars) so that they appear in the same collection -3. Add items missing from your library in Plex to Sonarr + ???+ tip + + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. + + ```yaml + libraries: + TV Shows: + collection_files: + - pmm: franchise + template_variables: + append_data: + "31917": Pretty Little Liars #(1)! + append_addons: + 31917: [46958, 79863, 110531] #(2)! + sonarr_add_missing: true #(3)! + ``` + + 1. Add [TMDb Show 31917](https://www.themoviedb.org/tv/31917-pretty-little-liars) to the data dictionary + 2. Add [TMDb Shows 46958](https://www.themoviedb.org/tv/46958), [79863](https://www.themoviedb.org/tv/79863) and [110531](https://www.themoviedb.org/tv/110531) as addons of [TMDb Show 31917](https://www.themoviedb.org/tv/31917-pretty-little-liars) so that they appear in the same collection + 3. Add items missing from your library in Plex to Sonarr ## Default values -These are lists provided for reference to show what values will be in use if you do no customization. If you want to customize these values, use the methods described above. These do not show how to change a name or a list. +??? tip -### Default `data` + These are lists provided for reference to show what values will be in use if you do no customization. **These do not show how to change a name or a list.** -```yaml -data: - "121": Doctor Who - "253": Star Trek - "549": Law & Order - "951": Archie Comics - "1402": The Walking Dead - "1412": Arrowverse - "1431": CSI - "4614": NCIS - "4629": Stargate - "8514": "RuPaul's Drag Race" - "6357": The Twilight Zone - "10222": The Real Housewives - "31917": Pretty Little Liars - "44006": One Chicago - "73586": Yellowstone - "75219": 9-1-1 - "79744": The Rookie - "80748": FBI - "85536": Star Wars -``` + If you want to customize these values, use the methods described above. -### Default `addons` + **Default `data`**: -```yaml -addons: - 121: [57243, 1057, 424, 203, 64073] # Doctor Who: K-9 & Company, Torchwood, The Sarah Jane Adventures, Class - 253: [655, 1855, 314, 67198, 85949, 85948] # Star Trek, The Next Generation, Voyager, Enterprise, Discovery, Picard, Lower Decks - 549: [2734, 4601, 3357, 32632, 72496, 157088, 106158] # Law & Order: Special Victims Unit, Criminal Intent, Trial by Jury, LA, True Crime, Organized Crime - 951: [25641, 4489, 24211, 9829, 605, 69050, 79242, 87539] # The Archie Show, Sabrina, The Teenage Witch, Josie and the Pussycats, Josie and the Pussycats in Outer Space, The New Archies, Riverdale, Chilling Adventures of Sabrina, Katy Keene - 1402: [62286, 94305] # The Walking Dead: Fear the Walking Dead, World Beyond - 1412: [60735, 62688, 62643, 71663, 89247] # Arrow: The Flash, Supergirl, Legends of Tomorrow, Black Lightning, Batwoman - 1431: [1620, 2458, 122194, 61811] # CSI: Miami, NY, Vegas, Cyber - 4614: [17610, 124271, 61387, 4376] # NCIS: Los Angeles, Hawaii, New Orleans, JAG - 4629: [2290, 5148, 72925] # Stargate SG-1: Atlantis, Universe, Origins - 8514: [200870, 212798, 38409, 200865, 67482, 124045, 216276, 77233, 92611, 98888, 94038, 127841, 67564, 122692, 139203, 203734, 108934, 204701, 210689, 155431, 106475, 152261, 66769] #Drag Race: Sweden, Sweden Untucked, Untucked, Belgium, All-Stars, Spain, Brazil, Thailand, UK, Secret Celebrity, Canada, Italy, All Stars Untucked, Australia, Philippines, Canada VS the World, Holland, Philippines Untucked, Spain Untucked, UK VS the World, Vegas Revue, France, Ruvealed - 6357: [1918, 83135, 16399] # The Twilight Zone (multiple) - 10222: [34268, 32390, 17380, 18204, 65300, 10222, 31493, 217065, 14808, 136105, 61868, 39283, 62087, 76474, 70612, 110381, 70463, 67480, 196592, 139703, 126149, 59556, 113333, 214463, 131449, 216849] # Real Housewives of Orange County: Miami, BH, ATL, NJ, Potomac, DC, Capetown, NYC, Ult. Girls Trip, Cheshire, Dallas, Melbourne, Hungary, Toronto, SLC, Sydney, Auckland, Dubai, ATL Porsha’s Family Matters, Johannesburg, Vancouver, Jersey, Amsterdam, Durban, Cheshire Christmas Cruising - 31917: [46958, 79863, 110531] # Pretty Little Liars: Ravenswood, The Perfectionists, Original Sin - 44006: [58841, 62650, 67993] # Chicago Fire: Med, PD, Justice - 73586: [157744, 118357, 157732] #Yellowstone: 1883, 1923, 1883: The Bass Reeves Story - 75219: 89393 # 9-1-1: 9-1-1 Lone Star - 79744: 201992 # The Rookie: Feds - 80748: [94372, 121658] # FBI: Most Wanted, International - 85536: [71412, 3478, 105971, 92830, 83867, 60554, 82856, 115036, 114461, 202879, 114462, 114476, 114478, 79093] # Star Wars Galaxy of Adventures: Forces of Destiny, The Clone Wars, The Bad Batch, Obi-Wan Kenobi, Andor, Rebels, The Mandalorian, The Book of Boba Fett, Ahsoka, Skeleton Crew, Rangers of the New Republic, Lando, Visions, Resistance -``` + ```yaml + data: + "121": Doctor Who + "253": Star Trek + "549": Law & Order + "951": Archie Comics + "1402": The Walking Dead + "1412": Arrowverse + "1431": CSI + "4614": NCIS + "4629": Stargate + "8514": "RuPaul's Drag Race" + "6357": The Twilight Zone + "10222": The Real Housewives + "31917": Pretty Little Liars + "44006": One Chicago + "73586": Yellowstone + "75219": 9-1-1 + "79744": The Rookie + "80748": FBI + "85536": Star Wars + ``` + + **Default `addons`**: + + ```yaml + addons: + 121: [57243, 1057, 424, 203, 64073] # Doctor Who: K-9 & Company, Torchwood, The Sarah Jane Adventures, Class + 253: [655, 1855, 314, 67198, 85949, 85948] # Star Trek, The Next Generation, Voyager, Enterprise, Discovery, Picard, Lower Decks + 549: [2734, 4601, 3357, 32632, 72496, 157088, 106158] # Law & Order: Special Victims Unit, Criminal Intent, Trial by Jury, LA, True Crime, Organized Crime + 951: [25641, 4489, 24211, 9829, 605, 69050, 79242, 87539] # The Archie Show, Sabrina, The Teenage Witch, Josie and the Pussycats, Josie and the Pussycats in Outer Space, The New Archies, Riverdale, Chilling Adventures of Sabrina, Katy Keene + 1402: [62286, 94305] # The Walking Dead: Fear the Walking Dead, World Beyond + 1412: [60735, 62688, 62643, 71663, 89247] # Arrow: The Flash, Supergirl, Legends of Tomorrow, Black Lightning, Batwoman + 1431: [1620, 2458, 122194, 61811] # CSI: Miami, NY, Vegas, Cyber + 4614: [17610, 124271, 61387, 4376] # NCIS: Los Angeles, Hawaii, New Orleans, JAG + 4629: [2290, 5148, 72925] # Stargate SG-1: Atlantis, Universe, Origins + 8514: [200870, 212798, 38409, 200865, 67482, 124045, 216276, 77233, 92611, 98888, 94038, 127841, 67564, 122692, 139203, 203734, 108934, 204701, 210689, 155431, 106475, 152261, 66769] #Drag Race: Sweden, Sweden Untucked, Untucked, Belgium, All-Stars, Spain, Brazil, Thailand, UK, Secret Celebrity, Canada, Italy, All Stars Untucked, Australia, Philippines, Canada VS the World, Holland, Philippines Untucked, Spain Untucked, UK VS the World, Vegas Revue, France, Ruvealed + 6357: [1918, 83135, 16399] # The Twilight Zone (multiple) + 10222: [34268, 32390, 17380, 18204, 65300, 10222, 31493, 217065, 14808, 136105, 61868, 39283, 62087, 76474, 70612, 110381, 70463, 67480, 196592, 139703, 126149, 59556, 113333, 214463, 131449, 216849] # Real Housewives of Orange County: Miami, BH, ATL, NJ, Potomac, DC, Capetown, NYC, Ult. Girls Trip, Cheshire, Dallas, Melbourne, Hungary, Toronto, SLC, Sydney, Auckland, Dubai, ATL Porsha’s Family Matters, Johannesburg, Vancouver, Jersey, Amsterdam, Durban, Cheshire Christmas Cruising + 31917: [46958, 79863, 110531] # Pretty Little Liars: Ravenswood, The Perfectionists, Original Sin + 44006: [58841, 62650, 67993] # Chicago Fire: Med, PD, Justice + 73586: [157744, 118357, 157732] #Yellowstone: 1883, 1923, 1883: The Bass Reeves Story + 75219: 89393 # 9-1-1: 9-1-1 Lone Star + 79744: 201992 # The Rookie: Feds + 80748: [94372, 121658] # FBI: Most Wanted, International + 85536: [71412, 3478, 105971, 92830, 83867, 60554, 82856, 115036, 114461, 202879, 114462, 114476, 114478, 79093] # Star Wars Galaxy of Adventures: Forces of Destiny, The Clone Wars, The Bad Batch, Obi-Wan Kenobi, Andor, Rebels, The Mandalorian, The Book of Boba Fett, Ahsoka, Skeleton Crew, Rangers of the New Republic, Lando, Visions, Resistance + ``` diff --git a/docs/defaults/show/network.md b/docs/defaults/show/network.md index 515e33a3..ed57c860 100644 --- a/docs/defaults/show/network.md +++ b/docs/defaults/show/network.md @@ -26,512 +26,529 @@ libraries: - pmm: network ``` -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -| Variable | Description & Values | -|:------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | -| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** List of Networks found in your library | -| `exclude` | **Description:** Exclude these Networks from creating a Dynamic Collection.<br>**Values:** List of Networks found in your library | -| `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of Networks found in your library | -| `append_include` | **Description:** Appends to the [default include list](#default-include).<br>**Values:** List of Networks found in your library | -| `remove_include` | **Description:** Removes from the [default include list](#default-include).<br>**Values:** List of Networks found in your library | -| `append_addons` | **Description:** Appends to the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Networks found in your library | -| `remove_addons` | **Description:** Removes from the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Networks found in your library | -| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `<<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | -| `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s broadcast on <<key_name>>.`<br>**Values:** Any string. | +??? info "Click to expand" -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. + === "File-Specific Template Variables" -{% - include-markdown "../collection_variables.md" -%} -### Example Template Variable Amendments + The below template variables are available specifically for this PMM Defaults file. -The below is an example config.yml extract with some Template Variables added in to change how the file works. + Be sure to also check out the "Shared Template Variables" tab for additional variables. -???+ tip + This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. + | Variable | Description & Values | + |:------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | + | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | + | `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** List of Networks found in your library | + | `exclude` | **Description:** Exclude these Networks from creating a Dynamic Collection.<br>**Values:** List of Networks found in your library | + | `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of Networks found in your library | + | `append_include` | **Description:** Appends to the [default include list](#default-include).<br>**Values:** List of Networks found in your library | + | `remove_include` | **Description:** Removes from the [default include list](#default-include).<br>**Values:** List of Networks found in your library | + | `append_addons` | **Description:** Appends to the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Networks found in your library | + | `remove_addons` | **Description:** Removes from the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Networks found in your library | + | `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `<<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | + | `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s broadcast on <<key_name>>.`<br>**Values:** Any string. | -```yaml -libraries: - Movies: - collection_files: - - pmm: network - template_variables: - append_exclude: - - BBC #(1)! - sort_by: title.asc - collection_mode: show_items #(2)! - sep_style: gray #(3)! -``` + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. -1. exclude "BBC" from the list of items that should be included in the Collection list -2. Show these collections and their items within the "Library" tab -3. Use the gray [Separator Style](../separators.md#separator-styles) + === "Shared Template Variables" + + {% + include-markdown "../collection_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ???+ tip + + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. + + ```yaml + libraries: + Movies: + collection_files: + - pmm: network + template_variables: + append_exclude: + - BBC #(1)! + sort_by: title.asc + collection_mode: show_items #(2)! + sep_style: gray #(3)! + ``` + + 1. exclude "BBC" from the list of items that should be included in the Collection list + 2. Show these collections and their items within the "Library" tab + 3. Use the gray [Separator Style](../separators.md#separator-styles) ## Default values -These are lists provided for reference to show what values will be in use if you do no customization. If you want to customize these values, use the methods described above. These do not show how to change a name or a list. +??? tip -### Default `include` + These are lists provided for reference to show what values will be in use if you do no customization. **These do not show how to change a name or a list.** -```yaml - include: - - "#0" - - ABC - - ABC Family - - ABC Kids - - ABC TV - - ABS-CBN - - Acorn TV - - Adult Swim - - AHC - - Alibi - - ALTBalaji - - Amazon Kids+ - - AMC - - AMC+ - - Animal Planet - - Antena 3 - - Apple TV+ - - ARD - - Arte - - Atresplayer Premium - - AT-X - - Audience - - AXN - - Azteca Uno - - A&E - - BBC America - - BBC Four - - BBC iPlayer - - BBC One - - BBC Three - - BBC Two - - BET - - BET+ - - bilibili - - BluTV - - Boomerang - - Bravo - - BritBox - - C More - - Canale 5 - - Canal+ - - Cartoon Network - - Cartoonito - - CBC - - CBC Television - - Cbeebies - - CBS - - Channel 3 - - Channel 4 - - Channel 5 - - CHCH-DT - - Cinemax - - Citytv - - CNN - - Comedy Central - - Cooking Channel - - Crackle - - Criterion Channel - - Crunchyroll - - CTV - - Cuatro - - Curiosity Stream - - Dave - - DC Universe - - Discovery - - Discovery Kids - - discovery+ - - Disney Channel - - Disney Junior - - Disney XD - - Disney+ - - DR1 - - Eden - - Elisa Viihde - - Elisa Viihde Viaplay - - Epix - - ESPN - - E! - - Facebook Watch - - Family Channel - - Ficción Producciones - - Flooxer - - Food Network - - FOX - - Fox Kids - - France 2 - - Freeform - - Freevee - - Fuji TV - - FX - - FXX - - GAİN - - Game Show Network - - Global TV - - Globoplay - - GMA Network - - Hallmark - - HBO - - HBO Max - - HGTV - - History - - HOT3 - - Hulu - - ICTV - - IFC - - IMDb TV - - Investigation Discovery - - ION Television - - iQiyi - - ITV - - ITV Encore - - ITV1 - - ITV2 - - ITV3 - - ITV4 - - ITVBe - - ITVX - - joyn - - Kan 11 - - KBS2 - - Kids WB - - La 1 - - La Une - - Las Estrellas - - Lifetime - - Lionsgate+ - - Logo - - MasterClass - - Max - - MBC - - MGM+ - - mitele - - Movistar Plus+ - - MTV - - M-Net - - National Geographic - - NBC - - Netflix - - Network 10 - - NHK - - Nick - - Nick Jr - - Nickelodeon - - Nicktoons - - Nine Network - - Nippon TV - - NRK1 - - OCS City - - OCS Max - - ORF - - Oxygen - - Pantaya - - Paramount Network - - Paramount+ - - PBS - - PBS Kids - - Peacock - - Planète+ A&E - - Prime Video - - Rai 1 - - Reelz - - The Roku Channel - - RTÉ One - - RTL - - RTL Télé - - RTP1 - - RÚV - - S4C - - SAT.1 - - SBS - - Science - - Shahid - - Showcase - - Showmax - - Showtime - - Shudder - - Sky - - Smithsonian - - Space - - Spectrum - - Spike - - Stan - - Starz - - STAR+ - - Sundance TV - - SVT1 - - Syfy - - Syndication - - TBS - - Telecinco - - Telefe - - Telemundo - - Televisión de Galicia - - Televisión Pública Argentina - - Tencent Video - - TF1 - - The CW - - The Roku Channel - - The WB - - TLC - - TNT - - Tokyo MX - - Travel Channel - - truTV - - Turner Classic Movies - - TV 2 - - tv asahi - - TV Globo - - TV Land - - TV Tokyo - - TV3 - - TV4 - - TVB Jade - - tving - - tvN - - TVNZ 1 - - TVP1 - - UKTV - - UniMás - - Universal Kids - - Universal TV - - Univision - - UPN - - USA Network - - VH1 - - Viaplay - - Vice - - Virgin Media One - - ViuTV - - ViX+ - - VRT 1 - - VTM - - W - - WE tv - - YLE - - Youku - - YouTube - - ZDF - - ZEE5 -``` + If you want to customize these values, use the methods described above. -### Default `addons` + **Default `include`**: -```yaml + ```yaml + include: + - "#0" + - ABC + - ABC Family + - ABC Kids + - ABC TV + - ABS-CBN + - Acorn TV + - Adult Swim + - AHC + - Alibi + - ALTBalaji + - Amazon Kids+ + - AMC + - AMC+ + - Animal Planet + - Antena 3 + - Apple TV+ + - ARD + - Arte + - Atresplayer Premium + - AT-X + - Audience + - AXN + - Azteca Uno + - A&E + - BBC America + - BBC Four + - BBC iPlayer + - BBC One + - BBC Three + - BBC Two + - BET + - BET+ + - bilibili + - BluTV + - Boomerang + - Bravo + - BritBox + - C More + - Canale 5 + - Canal+ + - Cartoon Network + - Cartoonito + - CBC + - CBC Television + - Cbeebies + - CBS + - Channel 3 + - Channel 4 + - Channel 5 + - CHCH-DT + - Cinemax + - Citytv + - CNN + - Comedy Central + - Cooking Channel + - Crackle + - Criterion Channel + - Crunchyroll + - CTV + - Cuatro + - Curiosity Stream + - Dave + - DC Universe + - Discovery + - Discovery Kids + - discovery+ + - Disney Channel + - Disney Junior + - Disney XD + - Disney+ + - DR1 + - Eden + - Elisa Viihde + - Elisa Viihde Viaplay + - Epix + - ESPN + - E! + - Facebook Watch + - Family Channel + - Ficción Producciones + - Flooxer + - Food Network + - FOX + - Fox Kids + - France 2 + - Freeform + - Freevee + - Fuji TV + - FX + - FXX + - GAİN + - Game Show Network + - Global TV + - Globoplay + - GMA Network + - Hallmark + - HBO + - HBO Max + - HGTV + - History + - HOT3 + - Hulu + - ICTV + - IFC + - IMDb TV + - Investigation Discovery + - ION Television + - iQiyi + - ITV + - ITV Encore + - ITV1 + - ITV2 + - ITV3 + - ITV4 + - ITVBe + - ITVX + - joyn + - Kan 11 + - KBS2 + - Kids WB + - La 1 + - La Une + - Las Estrellas + - Lifetime + - Lionsgate+ + - Logo + - MasterClass + - Max + - MBC + - MGM+ + - mitele + - Movistar Plus+ + - MTV + - M-Net + - National Geographic + - NBC + - Netflix + - Network 10 + - NHK + - Nick + - Nick Jr + - Nickelodeon + - Nicktoons + - Nine Network + - Nippon TV + - NRK1 + - OCS City + - OCS Max + - ORF + - Oxygen + - Pantaya + - Paramount Network + - Paramount+ + - PBS + - PBS Kids + - Peacock + - Planète+ A&E + - Prime Video + - Rai 1 + - Reelz + - The Roku Channel + - RTÉ One + - RTL + - RTL Télé + - RTP1 + - RÚV + - S4C + - SAT.1 + - SBS + - Science + - Shahid + - Showcase + - Showmax + - Showtime + - Shudder + - Sky + - Smithsonian + - Space + - Spectrum + - Spike + - Stan + - Starz + - STAR+ + - Sundance TV + - SVT1 + - Syfy + - Syndication + - TBS + - Telecinco + - Telefe + - Telemundo + - Televisión de Galicia + - Televisión Pública Argentina + - Tencent Video + - TF1 + - The CW + - The Roku Channel + - The WB + - TLC + - TNT + - Tokyo MX + - Travel Channel + - truTV + - Turner Classic Movies + - TV 2 + - tv asahi + - TV Globo + - TV Land + - TV Tokyo + - TV3 + - TV4 + - TVB Jade + - tving + - tvN + - TVNZ 1 + - TVP1 + - UKTV + - UniMás + - Universal Kids + - Universal TV + - Univision + - UPN + - USA Network + - VH1 + - Viaplay + - Vice + - Virgin Media One + - ViuTV + - ViX+ + - VRT 1 + - VTM + - W + - WE tv + - YLE + - Youku + - YouTube + - ZDF + - ZEE5 + ``` -addons: - ABC: - - ABC.com - ABC TV: - - ABC (AU) - - ABC Comedy - - ABC Me - - ABC News - - ABC iview - AMC: - - AMC.com - Animal Planet: - - Animal Planet Brasil - - Animal Planet Deutschland - BET: - - BET Her - Canal+: - - Canal+ Poland - - Canal+ Family - - Canal+ Discovery - - Canal+ Afrique - Cartoon Network: - - Cartoon Network Latin America - - Cartoon Network Anything - CBC: - - CBCDrama - CBC Television: - - CBC Gem - - CBC News Network - - CBC Comedy - CBS: - - CBS.com - - CBS All Access - CTV: - - CTV Two - - CTV News Channel - - CTV Sci-Fi Channel - - CTV Comedy Channel - - CTV Life Channel - - ctv.ca - Discovery: - - Discovery Health Channel - - Discovery Channel - - Discovery Home & Health Brasil - - Discovery Family - - Discovery Real Time - - Discovery Asia - - Discovery Home & Health - - Discovery Life - - Discovery World - - Discovery Science - Disney Channel: - - Toon Disney - - Playhouse Disney - - Disney Channel Asia - - disney.com - - Disney Channel Middle East - Disney Junior: - - Disney Junior Latin America - - Disney Junior Brasil - Disney+: - - Disney+ Hotstar - ESPN: - - ESPN2 - - ESPN+ - - ESPN Classic - - ESPNU - - ESPNews - - ESPN Australia - - Sony ESPN - - ESPN.com - - ESPN Deportes - FOX: - - Fox - - Fox News Channel - - Fox Sports - - Fox Reality Channel - - Fox Sports Networks - - Fox Latin America - - Fox Brasil - - Fox Soccer - - Fox Sports 2 - - Fox Nation - - Fox Sports 1 - - fox.com - - Fox Sports Detroit - Freevee: - - Amazon Freevee - Hallmark: - - Hallmark Channel - - Hallmark Drama - - Hallmark Movie & Mysteries - - Hallmark Movies Now - HBO: - - HBO Brasil - - HBO Europe - - HBO Asia - - HBO Latin America - - HBO España - - HBO Nordic - - HBO Canada - - HBO Family - - HBO Mundi - HGTV: - - HGTV Canada - History: - - History Channel Italia - - H2 - Lifetime: - - Lifetime Movies - Max: - - HBO Go - - HBO Max - MTV: - - MTV2 - - MTV3 - - MTV Lebanon - - MTV Latin America - - MTV Italia - - MTV Australia - - MTV Canada - - MTV Global - - MTV Nederland - National Geographic: - - National Geographic Channel - - National Geographic Brasil - - National Geographic Latinoamerica - - National Geographic India - NBC: - - CNBC - - MSNBC - - NBCSN - - CNBC Europe - - CNBC Asia - - WNBC - - Nikkei CNBC - - KNBC - - CNBC World - - CNBC TV18 - - NBC Weather Plus - - NBC Radio Network - Network Ten: - - Network 10 - Nickelodeon: - - Nick at Nite - ReelzChannel: - - Reelz - Sky: - - Sky One - - Sky Atlantic - - Sky Arts - - Sky History - - Sky Living - - Sky Crime - - Sky Uno - - Sky Max - - Sky Sports - - Sky Documentaries - - Sky Nature - - Sky News - - Sky Cinema - - Sky News Australia - - Sky Italia - - Sky Comedy - - Sky Sports F1 - - Sky Two - - Sky Witness - - sky Travel - - Sky Vision - - Sky News Weather Channel - - SkyShowtime - Smithsonian: - - Smithsonian Channel - - Smithsonian Earth - Spike: - - Spike TV - Starz: - - Starz Encore - Sundance TV: - - SundanceTV - TBS: - - TBS.com - - TBS Brasil - The CW: - - CW seed - TNT: - - TNT Comedy - - TNT Latin America - - TNT España - - TNT Serie - - TNT Glitz - Travel Channel: - - Travel Channel United Kingdom - VH1: - - VH1 Classic - Vice: - - Viceland - - Vice TV - - Vice.com -``` \ No newline at end of file + **Default `addons`**: + + ```yaml + + addons: + ABC: + - ABC.com + ABC TV: + - ABC (AU) + - ABC Comedy + - ABC Me + - ABC News + - ABC iview + AMC: + - AMC.com + Animal Planet: + - Animal Planet Brasil + - Animal Planet Deutschland + BET: + - BET Her + Canal+: + - Canal+ Poland + - Canal+ Family + - Canal+ Discovery + - Canal+ Afrique + Cartoon Network: + - Cartoon Network Latin America + - Cartoon Network Anything + CBC: + - CBCDrama + CBC Television: + - CBC Gem + - CBC News Network + - CBC Comedy + CBS: + - CBS.com + - CBS All Access + CTV: + - CTV Two + - CTV News Channel + - CTV Sci-Fi Channel + - CTV Comedy Channel + - CTV Life Channel + - ctv.ca + Discovery: + - Discovery Health Channel + - Discovery Channel + - Discovery Home & Health Brasil + - Discovery Family + - Discovery Real Time + - Discovery Asia + - Discovery Home & Health + - Discovery Life + - Discovery World + - Discovery Science + Disney Channel: + - Toon Disney + - Playhouse Disney + - Disney Channel Asia + - disney.com + - Disney Channel Middle East + Disney Junior: + - Disney Junior Latin America + - Disney Junior Brasil + Disney+: + - Disney+ Hotstar + ESPN: + - ESPN2 + - ESPN+ + - ESPN Classic + - ESPNU + - ESPNews + - ESPN Australia + - Sony ESPN + - ESPN.com + - ESPN Deportes + FOX: + - Fox + - Fox News Channel + - Fox Sports + - Fox Reality Channel + - Fox Sports Networks + - Fox Latin America + - Fox Brasil + - Fox Soccer + - Fox Sports 2 + - Fox Nation + - Fox Sports 1 + - fox.com + - Fox Sports Detroit + Freevee: + - Amazon Freevee + Hallmark: + - Hallmark Channel + - Hallmark Drama + - Hallmark Movie & Mysteries + - Hallmark Movies Now + HBO: + - HBO Brasil + - HBO Europe + - HBO Asia + - HBO Latin America + - HBO España + - HBO Nordic + - HBO Canada + - HBO Family + - HBO Mundi + HGTV: + - HGTV Canada + History: + - History Channel Italia + - H2 + Lifetime: + - Lifetime Movies + Max: + - HBO Go + - HBO Max + MTV: + - MTV2 + - MTV3 + - MTV Lebanon + - MTV Latin America + - MTV Italia + - MTV Australia + - MTV Canada + - MTV Global + - MTV Nederland + National Geographic: + - National Geographic Channel + - National Geographic Brasil + - National Geographic Latinoamerica + - National Geographic India + NBC: + - CNBC + - MSNBC + - NBCSN + - CNBC Europe + - CNBC Asia + - WNBC + - Nikkei CNBC + - KNBC + - CNBC World + - CNBC TV18 + - NBC Weather Plus + - NBC Radio Network + Network Ten: + - Network 10 + Nickelodeon: + - Nick at Nite + ReelzChannel: + - Reelz + Sky: + - Sky One + - Sky Atlantic + - Sky Arts + - Sky History + - Sky Living + - Sky Crime + - Sky Uno + - Sky Max + - Sky Sports + - Sky Documentaries + - Sky Nature + - Sky News + - Sky Cinema + - Sky News Australia + - Sky Italia + - Sky Comedy + - Sky Sports F1 + - Sky Two + - Sky Witness + - sky Travel + - Sky Vision + - Sky News Weather Channel + - SkyShowtime + Smithsonian: + - Smithsonian Channel + - Smithsonian Earth + Spike: + - Spike TV + Starz: + - Starz Encore + Sundance TV: + - SundanceTV + TBS: + - TBS.com + - TBS Brasil + The CW: + - CW seed + TNT: + - TNT Comedy + - TNT Latin America + - TNT España + - TNT Serie + - TNT Glitz + Travel Channel: + - Travel Channel United Kingdom + VH1: + - VH1 Classic + Vice: + - Viceland + - Vice TV + - Vice.com + ``` \ No newline at end of file diff --git a/docs/defaults/show/region.md b/docs/defaults/show/region.md index 8f157bbe..ce777126 100644 --- a/docs/defaults/show/region.md +++ b/docs/defaults/show/region.md @@ -35,385 +35,402 @@ Below is a screenshot of the alternative Color (`color`) style which can be set ![](../images/region2.png) -## Template Variable Default Values +## Template Variables Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy. -This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. +Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored. -| Variable | Description & Values | -|:--------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `style` | **Description:** Controls the visual theme of the collections created<table class="clearTable"><tr><th>Values:</th></tr><tr><td><code>white</code></td><td>White Theme</td></tr><tr><td><code>color</code></td><td>Color Theme</td></tr></table> | -| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | -| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | -| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | -| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) | -| `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | -| `exclude` | **Description:** Exclude these Countries from creating a Dynamic Collection.<br>**Values:** List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | -| `addons` | **Description:** Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | -| `append_include` | **Description:** Appends to the [default include list](#default-include).<br>**Values:** List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | -| `remove_include` | **Description:** Removes from the [default include list](#default-include).<br>**Values:** List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | -| `append_addons` | **Description:** Appends to the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | -| `remove_addons` | **Description:** Removes from the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | -| `key_name_override` | **Description:** Overrides the [default key_name_override dictionary](#default-key_name_override).<br>**Values:** Dictionary with `key: new_key_name` entries | -| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `<<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | -| `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s filmed in <<key_name>>.`<br>**Values:** Any string. | +??? info "Click to expand" -1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. + === "File-Specific Template Variables" -{% - include-markdown "../collection_variables.md" -%} -### Example Template Variable Amendments + The below template variables are available specifically for this PMM Defaults file. -The below is an example config.yml extract with some Template Variables added in to change how the file works. + Be sure to also check out the "Shared Template Variables" tab for additional variables. -???+ tip + This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well. - Anywhere you see this icon: - - > :fontawesome-solid-circle-plus: - - That's a tooltip, you can press them to get more information. + | Variable | Description & Values | + |:--------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `style` | **Description:** Controls the visual theme of the collections created<table class="clearTable"><tr><th>Values:</th></tr><tr><td><code>white</code></td><td>White Theme</td></tr><tr><td><code>color</code></td><td>Color Theme</td></tr></table> | + | `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 | + | `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 | + | `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> | + | `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) | + | `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | + | `exclude` | **Description:** Exclude these Countries from creating a Dynamic Collection.<br>**Values:** List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | + | `addons` | **Description:** Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | + | `append_include` | **Description:** Appends to the [default include list](#default-include).<br>**Values:** List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | + | `remove_include` | **Description:** Removes from the [default include list](#default-include).<br>**Values:** List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | + | `append_addons` | **Description:** Appends to the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | + | `remove_addons` | **Description:** Removes from the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of [2 digit ISO 3166-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | + | `key_name_override` | **Description:** Overrides the [default key_name_override dictionary](#default-key_name_override).<br>**Values:** Dictionary with `key: new_key_name` entries | + | `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `<<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. | + | `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s filmed in <<key_name>>.`<br>**Values:** Any string. | -```yaml -libraries: - Movies: - collection_files: - - pmm: region - template_variables: - use_other: false #(1)! - use_separator: false #(2)! - style: color #(3)! - exclude: - - fr #(4)! - sort_by: title.asc -``` + 1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling. -1. Do not create the "Other Regions" collection -2. Do not create a "Region Collections" separator -3. Set the [Color Style](#color-style) -4. Exclude "French" from the list of collections that are created + === "Shared Template Variables" + + {% + include-markdown "../collection_variables.md" + %} + + ### Example Template Variable Amendments + + The below is an example config.yml extract with some Template Variables added in to change how the file works. + + ???+ tip + + Anywhere you see this icon: + + > :fontawesome-solid-circle-plus: + + That's a tooltip, you can press them to get more information. + + ```yaml + libraries: + Movies: + collection_files: + - pmm: region + template_variables: + use_other: false #(1)! + use_separator: false #(2)! + style: color #(3)! + exclude: + - fr #(4)! + sort_by: title.asc + ``` + + 1. Do not create the "Other Regions" collection + 2. Do not create a "Region Collections" separator + 3. Set the [Color Style](#color-style) + 4. Exclude "French" from the list of collections that are created ## Default values -These are lists provided for reference to show what values will be in use if you do no customization. If you want to customize these values, use the methods described above. These do not show how to change a name or a list. +??? tip -### Default `include` + These are lists provided for reference to show what values will be in use if you do no customization. **These do not show how to change a name or a list.** -```yaml - include: - - Northern Africa - - Eastern Africa - - Central Africa - - Southern Africa - - Western Africa - - Caribbean - - Central America - - South America - - North America - - Antarctica - - Central Asia - - Eastern Asia - - South-Eastern Asia - - Southern Asia - - Western Asia - - Eastern Europe - - Northern Europe - - Southern Europe - - Western Europe - - Australia and New Zealand - - Melanesia - - Micronesia - - Polynesia -``` + If you want to customize these values, use the methods described above. -### Default `addons` + **Default `include`**: -```yaml - addons: - Northern Africa: - - dz # Algeria - - eg # Egypt - - ly # Libya - - ma # Morocco - - sd # Sudan - - tn # Tunisia - - eh # Western Sahara - Eastern Africa: - - io # British Indian Ocean Territory - - bi # Burundi - - km # Comoros - - dj # Djibouti - - er # Eritrea - - et # Ethiopia - - tf # French Southern Territories - - ke # Kenya - - mg # Madagascar - - mw # Malawi - - mu # Mauritius - - yt # Mayotte - - mz # Mozambique - - re # Réunion - - rw # Rwanda - - sc # Seychelles - - so # Somalia - - ss # South Sudan - - ug # Uganda - - tz # Tanzania [United Republic of Tanzania] - - zm # Zambia - - zw # Zimbabwe - Central Africa: - - ao # Angola - - cm # Cameroon - - cf # Central African Republic - - td # Chad - - cg # Republic of the Congo [Congo] - - cd # Democratic Republic of the Congo - - zr # Zaire - - gq # Equatorial Guinea - - ga # Gabon - - st # São Tomé and Príncipe [Sao Tome and Principe] - Southern Africa: - - bw # Botswana - - sz # Eswatini [Swaziland] - - ls # Lesotho - - na # Namibia - - za # South Africa - Western Africa: - - bj # Benin - - bf # Burkina Faso - - cv # Cape Verde [Cabo Verde] - - ci # Côte d'Ivoire [Côte d’Ivoire] [Ivory Coast] - - gm # Gambia - - gh # Ghana - - gn # Guinea - - gw # Guinea-Bissau - - lr # Liberia - - ml # Mali - - mr # Mauritania - - ne # Niger - - ng # Nigeria - - sh # Saint Helena, Ascension and Tristan da Cunha [Ascension] [Tristan da Cunha] [Saint Helena] - - sn # Senegal - - sl # Sierra Leone - - tg # Togo - Caribbean: - - ai # Anguilla - - ag # Antigua and Barbuda [Antigua] [Barbuda] - - aw # Aruba - - bs # Bahamas - - bb # Barbados - - bq # Bonaire, Sint Eustatius and Saba [Bonaire] [Sint Eustatius] [Saba] - - an # Netherlands Antilles - - vg # British Virgin Islands - - ky # Cayman Islands - - cu # Cuba - - cw # Curaçao - - dm # Dominica - - do # Dominican Republic - - gd # Grenada - - gp # Guadeloupe - - ht # Haiti - - jm # Jamaica - - mq # Martinique - - ms # Montserrat - - pr # Puerto Rico - - bl # Saint Barthélemy - - kn # Saint Kitts and Nevis - - lc # Saint Lucia - - mf # Saint Martin - - vc # Saint Vincent and the Grenadines - - sx # Sint Maarten - - tt # Trinidad and Tobago - - tc # Turks and Caicos Islands - - vi # US Virgin Islands [U.S. Virgin Islands] [United States Virgin Islands] - Central America: - - bz # Belize - - cr # Costa Rica - - sv # El Salvador - - gt # Guatemala - - hn # Honduras - - mx # Mexico - - ni # Nicaragua - - pa # Panama - South America: - - ar # Argentina - - bo # Bolivia [Plurinational State of Bolivia] - - bv # Bouvet Island - - br # Brazil - - cl # Chile - - co # Colombia - - ec # Ecuador - - fk # Falkland Islands [Malvinas] - - gf # French Guiana - - gy # Guyana - - py # Paraguay - - pe # Peru - - gs # South Georgia and the South Sandwich Islands [South Georgia] [South Sandwich Islands] - - sr # Suriname - - uy # Uruguay - - ve # Venezuela [Bolivarian Republic of Venezuela] - North America: - - bm # Bermuda - - ca # Canada - - gl # Greenland - - pm # Saint Pierre and Miquelon - - us # United States [United States of America] - Antarctica: - - aq # Antarctica - Central Asia: - - kz # Kazakhstan - - kg # Kyrgyzstan - - tj # Tajikistan - - tm # Turkmenistan - - uz # Uzbekistan - Eastern Asia: - - cn # China - - hk # Hong Kong - - mo # Macao - - kp # North Korea [Democratic People's Republic of Korea] - - jp # Japan - - mn # Mongolia - - kr # South Korea [Republic of Korea] [Korea] - - tw # Taiwan [Taiwan, Province of China] - South-Eastern Asia: - - bn # Brunei [Brunei Darussalam] - - kh # Cambodia - - id # Indonesia - - la # Laos [Lao People's Democratic Republic] [Lao] - - my # Malaysia - - mm # Myanmar - - bu # Burma - - ph # Philippines - - sg # Singapore - - th # Thailand - - tp # East Timor - - tl # Timor-Leste - - vn # Vietnam [Viet Nam] - Southern Asia: - - af # Afghanistan - - bd # Bangladesh - - bt # Bhutan - - in # India - - ir # Iran [Islamic Republic of Iran] - - mv # Maldives - - np # Nepal - - pk # Pakistan - - lk # Sri Lanka - Western Asia: - - am # Armenia - - az # Azerbaijan - - bh # Bahrain - - cy # Cyprus - - ge # Georgia - - iq # Iraq - - il # Israel - - jo # Jordan - - kw # Kuwait - - lb # Lebanon - - om # Oman - - qa # Qatar - - sa # Saudi Arabia - - ps # Palestine [State of Palestine] - - sy # Syria [Syrian Arab Republic] - - tr # Turkey [Türkiye] - - ae # United Arab Emirates - - ye # Yemen - Eastern Europe: - - by # Belarus - - bg # Bulgaria - - cz # Czech Republic [Czechia] - - cs # Czechoslovakia - - hu # Hungary - - pl # Poland - - md # Moldova [Republic of Moldova] - - ro # Romania - - ru # Russia [Russian Federation] - - su # Soviet Union - - sk # Slovakia - - ua # Ukraine - Northern Europe: - - ax # Åland Islands - - gg # Guernsey - - je # Jersey - - cq # Sark - - dk # Denmark - - ee # Estonia - - fo # Faroe Islands - - fi # Finland - - is # Iceland - - ie # Ireland - - im # Isle of Man - - lv # Latvia - - lt # Lithuania - - no # Norway - - sj # Svalbard and Jan Mayen Islands [Svalbard and Jan Mayen] - - se # Sweden - - gb # United Kingdom - Southern Europe: - - al # Albania - - ad # Andorra - - ba # Bosnia and Herzegovina - - hr # Croatia - - gi # Gibraltar - - gr # Greece - - xk # Kosovo - - va # Vatican City [Holy See] - - it # Italy - - mt # Malta - - me # Montenegro - - mk # North Macedonia [Macedonia] [Republic of North Macedonia] - - pt # Portugal - - sm # San Marino - - rs # Serbia - - si # Slovenia - - es # Spain - - yu # Yugoslavia - Western Europe: - - at # Austria - - be # Belgium - - fr # France [French Republic] - - de # Germany - - dd # East Germany - - li # Liechtenstein - - lu # Luxembourg - - mc # Monaco - - nl # Netherlands - - ch # Switzerland - Australia and New Zealand: - - au # Australia - - cx # Christmas Island - - cc # Cocos (Keeling) Islands - - hm # Heard Island and McDonald Islands - - nz # New Zealand - - nf # Norfolk Island - Melanesia: - - fj # Fiji - - nc # New Caledonia - - pg # Papua New Guinea [New Guinea] - - sb # Solomon Islands - - vu # Vanuatu - Micronesia: - - gu # Guam - - ki # Kiribati - - mh # Marshall Islands - - fm # Micronesia [Federated States of Micronesia] - - nr # Nauru - - mp # Northern Mariana Islands - - pw # Palau - - um # US Minor Outlying Islands - Polynesia: - - as # American Samoa - - ck # Cook Islands - - pf # French Polynesia - - nu # Niue - - pn # Pitcairn [Pitcairn Islands] - - ws # Samoa - - tk # Tokelau - - to # Tonga - - tv # Tuvalu - - wf # Wallis and Futuna Islands -``` \ No newline at end of file + ```yaml + include: + - Northern Africa + - Eastern Africa + - Central Africa + - Southern Africa + - Western Africa + - Caribbean + - Central America + - South America + - North America + - Antarctica + - Central Asia + - Eastern Asia + - South-Eastern Asia + - Southern Asia + - Western Asia + - Eastern Europe + - Northern Europe + - Southern Europe + - Western Europe + - Australia and New Zealand + - Melanesia + - Micronesia + - Polynesia + ``` + + **Default `addons`**: + + ```yaml + addons: + Northern Africa: + - dz # Algeria + - eg # Egypt + - ly # Libya + - ma # Morocco + - sd # Sudan + - tn # Tunisia + - eh # Western Sahara + Eastern Africa: + - io # British Indian Ocean Territory + - bi # Burundi + - km # Comoros + - dj # Djibouti + - er # Eritrea + - et # Ethiopia + - tf # French Southern Territories + - ke # Kenya + - mg # Madagascar + - mw # Malawi + - mu # Mauritius + - yt # Mayotte + - mz # Mozambique + - re # Réunion + - rw # Rwanda + - sc # Seychelles + - so # Somalia + - ss # South Sudan + - ug # Uganda + - tz # Tanzania [United Republic of Tanzania] + - zm # Zambia + - zw # Zimbabwe + Central Africa: + - ao # Angola + - cm # Cameroon + - cf # Central African Republic + - td # Chad + - cg # Republic of the Congo [Congo] + - cd # Democratic Republic of the Congo + - zr # Zaire + - gq # Equatorial Guinea + - ga # Gabon + - st # São Tomé and Príncipe [Sao Tome and Principe] + Southern Africa: + - bw # Botswana + - sz # Eswatini [Swaziland] + - ls # Lesotho + - na # Namibia + - za # South Africa + Western Africa: + - bj # Benin + - bf # Burkina Faso + - cv # Cape Verde [Cabo Verde] + - ci # Côte d'Ivoire [Côte d’Ivoire] [Ivory Coast] + - gm # Gambia + - gh # Ghana + - gn # Guinea + - gw # Guinea-Bissau + - lr # Liberia + - ml # Mali + - mr # Mauritania + - ne # Niger + - ng # Nigeria + - sh # Saint Helena, Ascension and Tristan da Cunha [Ascension] [Tristan da Cunha] [Saint Helena] + - sn # Senegal + - sl # Sierra Leone + - tg # Togo + Caribbean: + - ai # Anguilla + - ag # Antigua and Barbuda [Antigua] [Barbuda] + - aw # Aruba + - bs # Bahamas + - bb # Barbados + - bq # Bonaire, Sint Eustatius and Saba [Bonaire] [Sint Eustatius] [Saba] + - an # Netherlands Antilles + - vg # British Virgin Islands + - ky # Cayman Islands + - cu # Cuba + - cw # Curaçao + - dm # Dominica + - do # Dominican Republic + - gd # Grenada + - gp # Guadeloupe + - ht # Haiti + - jm # Jamaica + - mq # Martinique + - ms # Montserrat + - pr # Puerto Rico + - bl # Saint Barthélemy + - kn # Saint Kitts and Nevis + - lc # Saint Lucia + - mf # Saint Martin + - vc # Saint Vincent and the Grenadines + - sx # Sint Maarten + - tt # Trinidad and Tobago + - tc # Turks and Caicos Islands + - vi # US Virgin Islands [U.S. Virgin Islands] [United States Virgin Islands] + Central America: + - bz # Belize + - cr # Costa Rica + - sv # El Salvador + - gt # Guatemala + - hn # Honduras + - mx # Mexico + - ni # Nicaragua + - pa # Panama + South America: + - ar # Argentina + - bo # Bolivia [Plurinational State of Bolivia] + - bv # Bouvet Island + - br # Brazil + - cl # Chile + - co # Colombia + - ec # Ecuador + - fk # Falkland Islands [Malvinas] + - gf # French Guiana + - gy # Guyana + - py # Paraguay + - pe # Peru + - gs # South Georgia and the South Sandwich Islands [South Georgia] [South Sandwich Islands] + - sr # Suriname + - uy # Uruguay + - ve # Venezuela [Bolivarian Republic of Venezuela] + North America: + - bm # Bermuda + - ca # Canada + - gl # Greenland + - pm # Saint Pierre and Miquelon + - us # United States [United States of America] + Antarctica: + - aq # Antarctica + Central Asia: + - kz # Kazakhstan + - kg # Kyrgyzstan + - tj # Tajikistan + - tm # Turkmenistan + - uz # Uzbekistan + Eastern Asia: + - cn # China + - hk # Hong Kong + - mo # Macao + - kp # North Korea [Democratic People's Republic of Korea] + - jp # Japan + - mn # Mongolia + - kr # South Korea [Republic of Korea] [Korea] + - tw # Taiwan [Taiwan, Province of China] + South-Eastern Asia: + - bn # Brunei [Brunei Darussalam] + - kh # Cambodia + - id # Indonesia + - la # Laos [Lao People's Democratic Republic] [Lao] + - my # Malaysia + - mm # Myanmar + - bu # Burma + - ph # Philippines + - sg # Singapore + - th # Thailand + - tp # East Timor + - tl # Timor-Leste + - vn # Vietnam [Viet Nam] + Southern Asia: + - af # Afghanistan + - bd # Bangladesh + - bt # Bhutan + - in # India + - ir # Iran [Islamic Republic of Iran] + - mv # Maldives + - np # Nepal + - pk # Pakistan + - lk # Sri Lanka + Western Asia: + - am # Armenia + - az # Azerbaijan + - bh # Bahrain + - cy # Cyprus + - ge # Georgia + - iq # Iraq + - il # Israel + - jo # Jordan + - kw # Kuwait + - lb # Lebanon + - om # Oman + - qa # Qatar + - sa # Saudi Arabia + - ps # Palestine [State of Palestine] + - sy # Syria [Syrian Arab Republic] + - tr # Turkey [Türkiye] + - ae # United Arab Emirates + - ye # Yemen + Eastern Europe: + - by # Belarus + - bg # Bulgaria + - cz # Czech Republic [Czechia] + - cs # Czechoslovakia + - hu # Hungary + - pl # Poland + - md # Moldova [Republic of Moldova] + - ro # Romania + - ru # Russia [Russian Federation] + - su # Soviet Union + - sk # Slovakia + - ua # Ukraine + Northern Europe: + - ax # Åland Islands + - gg # Guernsey + - je # Jersey + - cq # Sark + - dk # Denmark + - ee # Estonia + - fo # Faroe Islands + - fi # Finland + - is # Iceland + - ie # Ireland + - im # Isle of Man + - lv # Latvia + - lt # Lithuania + - no # Norway + - sj # Svalbard and Jan Mayen Islands [Svalbard and Jan Mayen] + - se # Sweden + - gb # United Kingdom + Southern Europe: + - al # Albania + - ad # Andorra + - ba # Bosnia and Herzegovina + - hr # Croatia + - gi # Gibraltar + - gr # Greece + - xk # Kosovo + - va # Vatican City [Holy See] + - it # Italy + - mt # Malta + - me # Montenegro + - mk # North Macedonia [Macedonia] [Republic of North Macedonia] + - pt # Portugal + - sm # San Marino + - rs # Serbia + - si # Slovenia + - es # Spain + - yu # Yugoslavia + Western Europe: + - at # Austria + - be # Belgium + - fr # France [French Republic] + - de # Germany + - dd # East Germany + - li # Liechtenstein + - lu # Luxembourg + - mc # Monaco + - nl # Netherlands + - ch # Switzerland + Australia and New Zealand: + - au # Australia + - cx # Christmas Island + - cc # Cocos (Keeling) Islands + - hm # Heard Island and McDonald Islands + - nz # New Zealand + - nf # Norfolk Island + Melanesia: + - fj # Fiji + - nc # New Caledonia + - pg # Papua New Guinea [New Guinea] + - sb # Solomon Islands + - vu # Vanuatu + Micronesia: + - gu # Guam + - ki # Kiribati + - mh # Marshall Islands + - fm # Micronesia [Federated States of Micronesia] + - nr # Nauru + - mp # Northern Mariana Islands + - pw # Palau + - um # US Minor Outlying Islands + Polynesia: + - as # American Samoa + - ck # Cook Islands + - pf # French Polynesia + - nu # Niue + - pn # Pitcairn [Pitcairn Islands] + - ws # Samoa + - tk # Tokelau + - to # Tonga + - tv # Tuvalu + - wf # Wallis and Futuna Islands + ``` \ No newline at end of file diff --git a/docs/builders/details/arr.md b/docs/files/arr.md similarity index 88% rename from docs/builders/details/arr.md rename to docs/files/arr.md index e288ccfc..a3cd456f 100644 --- a/docs/builders/details/arr.md +++ b/docs/files/arr.md @@ -2,7 +2,8 @@ ## Radarr Definition Settings -All the following attributes can override the global/library [Radarr](../../config/radarr.md) attributes which are the default unless otherwise specified. +All the following attributes can override the global/library [Radarr](../config/radarr.md) attributes which are the +default unless otherwise specified. | Attribute | Description & Values | |:--------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -22,7 +23,8 @@ All the following attributes can override the global/library [Radarr](../../conf ## Sonarr Definition Settings -All the following attributes can override the global/library [Sonarr](../../config/sonarr.md) attributes which are the default unless otherwise specified. +All the following attributes can override the global/library [Sonarr](../config/sonarr.md) attributes which are the +default unless otherwise specified. | Attribute | Description & Values | |:--------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -50,26 +52,33 @@ You can add items to Radarr/Sonarr in two different ways. ### Arr Add Missing -When `radarr_add_missing`/`sonarr_add_missing` are true the items missing from the collection/playlist will be added to Radarr/Sonarr. +When `radarr_add_missing`/`sonarr_add_missing` are true the items missing from the collection/playlist will be added to +Radarr/Sonarr. ### Arr Add Existing -When `radarr_add_existing`/`sonarr_add_existing` are true the items that exist in the collection/playlist will be added to Radarr/Sonarr. +When `radarr_add_existing`/`sonarr_add_existing` are true the items that exist in the collection/playlist will be added +to Radarr/Sonarr. -If your Radarr/Sonarr has different file system mappings from your plex use `radarr_path`/`sonarr_path` along with `plex_path` from your [Radarr](../../config/radarr.md)/[Sonarr](../../config/sonarr.md) global config settings. +If your Radarr/Sonarr has different file system mappings from your plex use `radarr_path`/`sonarr_path` along with +`plex_path` from your [Radarr](../config/radarr.md)/[Sonarr](../config/sonarr.md) global config settings. -### Radarr Add Details +### Radarr Add Settings -When adding a movie in Radarr you get the screen below to set these options use `radarr_folder`, `radarr_monitor`, `radarr_availability`, `radarr_quality`, `radarr_tag`, and `radarr_search`. +When adding a movie in Radarr you get the screen below to set these options use `radarr_folder`, `radarr_monitor`, +`radarr_availability`, `radarr_quality`, `radarr_tag`, and `radarr_search`. -![Radarr Details](radarr.png) +![Radarr Details](images/radarr.png) -### Sonarr Add Details +### Sonarr Add Settings -When adding a show in Sonarr you get the screen below to set these options use `sonarr_folder`, `sonarr_monitor`, `sonarr_quality`, `sonarr_language`, `sonarr_series`, `sonarr_season`, `sonarr_tag`, `sonarr_search`, and `sonarr_cutoff_search`. +When adding a show in Sonarr you get the screen below to set these options use `sonarr_folder`, `sonarr_monitor`, +`sonarr_quality`, `sonarr_language`, `sonarr_series`, `sonarr_season`, `sonarr_tag`, `sonarr_search`, and +`sonarr_cutoff_search`. -![Sonarr Details](sonarr.png) +![Sonarr Details](images/sonarr.png) -## Arr Edit Details +## Arr Edit Settings -When editing the details of items that exist in the collection/playlist and in Radarr/Sonarr use `item_radarr_tag` and `item_sonarr_tag` \ No newline at end of file +When editing the details of items that exist in the collection/playlist and in Radarr/Sonarr use `item_radarr_tag` and +`item_sonarr_tag` \ No newline at end of file diff --git a/docs/builders/anidb.md b/docs/files/builders/anidb.md similarity index 98% rename from docs/builders/anidb.md rename to docs/files/builders/anidb.md index 15025a04..6f5ce258 100644 --- a/docs/builders/anidb.md +++ b/docs/files/builders/anidb.md @@ -58,7 +58,7 @@ Finds every anime in AniDB's [Popular Anime](https://anidb.net/latest/anime/popu The expected input is a single integer value of how much anime to query with a max of 30. -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. ```yaml collections: diff --git a/docs/builders/anilist.md b/docs/files/builders/anilist.md similarity index 98% rename from docs/builders/anilist.md rename to docs/files/builders/anilist.md index b7c7c37f..8654aa4f 100644 --- a/docs/builders/anilist.md +++ b/docs/files/builders/anilist.md @@ -21,7 +21,7 @@ Finds every anime in AniList's [Top Rated Anime](https://anilist.co/search/anime The expected input is a single integer value of how many movies/shows to query. -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. ```yaml collections: @@ -37,7 +37,7 @@ Finds every anime in AniList's [Popular Anime](https://anilist.co/search/anime/p The expected input is a single integer value of how many movies/shows to query. -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. ```yaml collections: @@ -53,7 +53,7 @@ Finds every anime in AniList's [Trending Anime](https://anilist.co/search/anime/ The expected input is a single integer value of how many movies/shows to query. -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. ```yaml collections: @@ -105,7 +105,7 @@ Gets anime in AniList User's Anime list. The different sub-attributes are detail Both `username` and `list_name` are required. -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. | Attribute | Description | |:------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -136,7 +136,7 @@ Finds the anime specified by the AniList Search the options are detailed below. There are three fields per search option when using AniList's Search just like Plex's Advanced Filters in the Web UI. The first is the **Attribute** (what attribute you wish to search), the second is the **Modifier** (which modifier to use), and the third is the **Term** (actual term to search). -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. ## Special Attributes diff --git a/docs/builders/flixpatrol.md b/docs/files/builders/flixpatrol.md similarity index 99% rename from docs/builders/flixpatrol.md rename to docs/files/builders/flixpatrol.md index 0a2723b0..7a6220e0 100644 --- a/docs/builders/flixpatrol.md +++ b/docs/files/builders/flixpatrol.md @@ -14,7 +14,7 @@ Finds every item from [FlixPatrol's Top Platform Lists](https://flixpatrol.com/t The only required attribute is `platform`. -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. ### Top Platform Attributes diff --git a/docs/builders/icheckmovies.md b/docs/files/builders/icheckmovies.md similarity index 97% rename from docs/builders/icheckmovies.md rename to docs/files/builders/icheckmovies.md index 6e0f6bc6..59ff7d09 100644 --- a/docs/builders/icheckmovies.md +++ b/docs/files/builders/icheckmovies.md @@ -15,7 +15,7 @@ Finds every movie in the ICheckMovies List. The expected input is a ICheckMovies List URL. Multiple values are supported as either a list or a comma-separated string. -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. ```yaml collections: diff --git a/docs/builders/imdb.md b/docs/files/builders/imdb.md similarity index 78% rename from docs/builders/imdb.md rename to docs/files/builders/imdb.md index 8fa05fbf..8f936978 100644 --- a/docs/builders/imdb.md +++ b/docs/files/builders/imdb.md @@ -2,14 +2,14 @@ You can find items using the features of [IMDb.com](https://www.imdb.com/) (IMDb). -| Attribute | Description | Works with Movies | Works with Shows | Works with Playlists and Custom Sort | -|:------------------------------------|:------------------------------------------------------------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:---------------------------------------------------------------------:| -| [`imdb_id`](#imdb-id) | Gets the movie/show specified. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| [`imdb_chart`](#imdb-chart) | Gets every movie/show in an IMDb Chart like [IMDb Top 250 Movies](https://www.imdb.com/chart/top). | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| [`imdb_list`](#imdb-list) | Gets every movie/show in an IMDb List or [IMDb Keyword Search](https://www.imdb.com/search/keyword/). | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| [`imdb_watchlist`](#imdb-watchlist) | Gets every movie/show in an IMDb User's Watchlist. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| [`imdb_award`](#imdb-award) | Gets every movie/show in an [IMDb Event](https://www.imdb.com/event/). | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| [`imdb_search`](#imdb-search) | Gets every movie/show in an [IMDb Search](https://www.imdb.com/search/title/). | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | +| Attribute | Description | Works with Movies | Works with Shows | Works with Playlists and Custom Sort | +|:------------------------------------|:----------------------------------------------------------------------------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:---------------------------------------------------------------------:| +| [`imdb_id`](#imdb-id) | Gets the movie/show specified. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| [`imdb_chart`](#imdb-chart) | Gets every movie/show in an IMDb Chart like [IMDb Top 250 Movies](https://www.imdb.com/chart/top). | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | +| [`imdb_list`](#imdb-list) | Gets every movie/show in an IMDb List | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | +| [`imdb_watchlist`](#imdb-watchlist) | Gets every movie/show in an IMDb User's Watchlist. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | +| [`imdb_award`](#imdb-award) | Gets every movie/show in an [IMDb Event](https://www.imdb.com/event/). | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| [`imdb_search`](#imdb-search) | Gets every movie/show in an [IMDb Search](https://www.imdb.com/search/title/). Can also be used for Keyword searches. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | ## IMDb ID @@ -29,7 +29,7 @@ Finds every item in an IMDb Chart. The expected input are the options below. Multiple values are supported as either a list or a comma-separated string. -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. | Name | Attribute | Works with Movies | Works with Shows | |:-------------------------------------------------------------------------------|:-----------------|:------------------------------------------:|:------------------------------------------:| @@ -52,11 +52,19 @@ collections: ## IMDb List -Finds every item in an IMDb List or [Keyword Search](https://www.imdb.com/search/keyword/). +???+ danger "Important Notice" -The expected input is an IMDb List URL or IMDb Keyword Search URL. Multiple values are supported as a list only a comma-separated string will not work. + Due to recent changes in IMDb's code, `imdb_list` can no longer be used for any url which starts with + `https://www.imdb.com/search/` or `https://www.imdb.com/filmosearch/`. -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. + These must instead use the [IMDb Search Builder](#imdb-search) + + +Finds every item in an IMDb List. + +The expected input is an IMDb List URL. Multiple values are supported as a list only a comma-separated string will not work. + +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. ```yaml collections: @@ -65,62 +73,25 @@ collections: collection_order: custom sync_mode: sync ``` -```yaml -collections: - IMDb Top 250: - imdb_list: https://www.imdb.com/search/title/?groups=top_250 - collection_order: custom - sync_mode: sync -``` -```yaml -collections: - Christmas: - imdb_list: - - https://www.imdb.com/list/ls025976544/ - - https://www.imdb.com/list/ls003863000/ - - https://www.imdb.com/list/ls027454200/ - - https://www.imdb.com/list/ls027886673/ - - https://www.imdb.com/list/ls097998599/ - sync_mode: sync - collection_order: alpha -``` You can also limit the number of items to search for by using the `limit` and `url` parameters under `imdb_list`. ```yaml collections: - IMDb Popular: + Christmas: imdb_list: - url: https://www.imdb.com/search/title/?title_type=feature,tv_movie,documentary,short - limit: 50 - collection_order: custom + - url: https://www.imdb.com/list/ls025976544/ + limit: 10 + - url: https://www.imdb.com/list/ls003863000/ + limit: 10 + - url: https://www.imdb.com/list/ls027454200/ + limit: 10 + - url: https://www.imdb.com/list/ls027886673/ + limit: 10 + - url: https://www.imdb.com/list/ls097998599/ + limit: 10 sync_mode: sync -``` - -This can be used for multiple lists as seen below. - -```yaml -collections: - Top Action: - imdb_list: - - url: https://www.imdb.com/search/title/?title_type=feature&release_date=1990-01-01,&user_rating=5.0,10.0&num_votes=100000,&genres=action - limit: 100 - - url: https://www.imdb.com/search/title/?title_type=feature&release_date=1990-01-01,&user_rating=5.0,10.0&num_votes=100000,&genres=action&sort=user_rating,desc - limit: 100 -``` - -You can also find episodes using `imdb_list` like so. - -```yaml -collections: - The Simpsons Top 100 Episodes: - collection_order: custom - builder_level: episode - sync_mode: sync - imdb_list: - url: https://www.imdb.com/search/title/?series=tt0096697&sort=user_rating,desc - limit: 100 - summary: The top 100 Simpsons episodes by IMDb user rating + collection_order: alpha ``` ## IMDb Watchlist @@ -129,7 +100,7 @@ Finds every item in an IMDb User's Watchlist. The expected input is an IMDb User ID (example: `ur12345678`). Multiple values are supported as a list or as a comma-separated string. -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. ```yaml collections: @@ -188,54 +159,60 @@ collections: Finds every item using an [IMDb Advance Title Search](https://www.imdb.com/search/title/). -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. -| Search Parameter | Description | -|:-------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `limit` | Specify how items you want returned by the query.<br>**Options:** Any Integer greater then `0`<br>**Default:** `100` | -| `sort_by` | Choose from one of the many available sort options.<br>**Options:** `popularity.asc`, `popularity.desc`, `title.asc`, `title.desc`, `rating.asc`, `rating.desc`, `votes.asc`, `votes.desc`, `box_office.asc`, `box_office.desc`, `runtime.asc`, `runtime.desc`, `year.asc`, `year.desc`, `release.asc`, `release.desc`<br>**Default:** `popularity.asc` | -| `title` | Search by title name.<br>**Options:** Any String | -| `type` | Item must match at least one given type. Can be a comma-separated list.<br>**Options:** `movie`, `tv_series`, `short`, `tv_episode`, `tv_mini_series`, `tv_movie`, `tv_special`, `tv_short`, `video_game`, `video`, `music_video`, `podcast_series`, `podcast_episode` | -| `type.not` | Item must not match any of the given types. Can be a comma-separated list.<br>**Options:** `movie`, `tv_series`, `short`, `tv_episode`, `tv_mini_series`, `tv_movie`, `tv_special`, `tv_short`, `video_game`, `video`, `music_video`, `podcast_series`, `podcast_episode` | -| `release.after` | Item must have been released after the given date.<br>**Options:** `today` or Date in the format `YYYY-MM-DD` | -| `release.before` | Item must have been released before the given date.<br>**Options:** `today` or Date in the format `YYYY-MM-DD` | -| `rating.gte` | Item must have an IMDb Rating greater then or equal to the given number.<br>**Options:** Any Number `0.1` - `10.0`<br>**Example:** `7.5` | -| `rating.lte` | Item must have an IMDb Rating less then or equal to the given number.<br>**Options:** Any Number `0.1` - `10.0`<br>**Example:** `7.5` | -| `votes.gte` | Item must have a Number of Votes greater then or equal to the given number.<br>**Options:** Any Integer greater then `0`<br>**Example:** `1000` | -| `votes.lte` | Item must have a Number of Votes less then or equal to the given number.<br>**Options:** Any Integer greater then `0`<br>**Example:** `1000` | -| `genre` | Item must match all genres given. Can be a comma-separated list.<br>**Options:** `action`, `adventure`, `animation`, `biography`, `comedy`, `documentary`, `drama`, `crime`, `family`, `history`, `news`, `short`, `western`, `sport`, `reality-tv`, `horror`, `fantasy`, `film-noir`, `music`, `romance`, `talk-show`, `thriller`, `war`, `sci-fi`, `musical`, `mystery`, `game-show` | -| `genre.any` | Item must match at least one given genre. Can be a comma-separated list.<br>**Options:** `action`, `adventure`, `animation`, `biography`, `comedy`, `documentary`, `drama`, `crime`, `family`, `history`, `news`, `short`, `western`, `sport`, `reality-tv`, `horror`, `fantasy`, `film-noir`, `music`, `romance`, `talk-show`, `thriller`, `war`, `sci-fi`, `musical`, `mystery`, `game-show` | -| `genre.not` | Item must not match any og the given genres. Can be a comma-separated list.<br>**Options:** `action`, `adventure`, `animation`, `biography`, `comedy`, `documentary`, `drama`, `crime`, `family`, `history`, `news`, `short`, `western`, `sport`, `reality-tv`, `horror`, `fantasy`, `film-noir`, `music`, `romance`, `talk-show`, `thriller`, `war`, `sci-fi`, `musical`, `mystery`, `game-show` | -| `event` | Item must have been nominated for a category at the event given. Can be a comma-separated list.<br>**Options:** `cannes`, `choice`, `spirit`, `sundance`, `bafta`, `oscar`, `emmy`, `golden`, `oscar_picture`, `oscar_director`, `national_film_board_preserved`, `razzie`, or any [IMDb Event ID](https://www.imdb.com/event/all/) (ex. `ev0050888`) | -| `event.winning` | Item must have won a category at the event given. Can be a comma-separated list.<br>**Options:** `cannes`, `choice`, `spirit`, `sundance`, `bafta`, `oscar`, `emmy`, `golden`, `oscar_picture`, `oscar_director`, `national_film_board_preserved`, `razzie`, or any [IMDb Event ID](https://www.imdb.com/event/all/) (ex. `ev0050888`) | -| `imdb_top` | Item must be in the top number of given Movies.<br>**Options:** Any Integer greater then `0` | -| `imdb_bottom` | Item must be in the bottom number of given Movies.<br>**Options:** Any Integer greater then `0` | -| `company` | Item must have been released by any company given. Can be a comma-separated list.<br>**Options:** `fox`, `dreamworks`, `mgm`, `paramount`, `sony`, `universal`, `disney`, `warner`, or any IMDb Company ID (ex. `co0023400`) | -| `content_rating` | Item must have the given content rating. Can be a list.<br>**Options:** Dictionary with two attributes `rating` and `region`<br>`rating`: Any String to match the content rating<br>`region`: [2 Digit ISO 3166 Country Code](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | -| `country` | Item must match with every given country. Can be a comma-separated list.<br>**Options:** [2 Digit ISO 3166 Country Code](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | -| `country.any` | Item must match at least one given country. Can be a comma-separated list.<br>**Options:** [2 Digit ISO 3166 Country Code](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | -| `country.not` | Item must not match any given country. Can be a comma-separated list.<br>**Options:** [2 Digit ISO 3166 Country Code](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | -| `country.origin` | Item must match any given country as the origin country. Can be a comma-separated list.<br>**Options:** [2 Digit ISO 3166 Country Code](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | -| `keyword` | Item must match with every given keyword. Can be a comma-separated list.<br>**Options:** Any String | -| `keyword.any` | Item must match at least one given keyword. Can be a comma-separated list.<br>**Options:** Any String | -| `keyword.not` | Item must not match any given keyword. Can be a comma-separated list.<br>**Options:** Any String | -| `series` | Item must match at least one given series. Can be a comma-separated list.<br>**Options:** Any IMDb ID (ex. `tt0096697`) | -| `series.not` | Item must not match any given series. Can be a comma-separated list.<br>**Options:** Any IMDb ID (ex. `tt0096697`) | -| `list` | Item must be on every given list. Can be a comma-separated list.<br>**Options:** Any IMDb List ID (ex. `ls000024621`) | -| `list.any` | Item must be on at least one given lists. Can be a comma-separated list.<br>**Options:** Any IMDb List ID (ex. `ls000024621`) | -| `list.not` | Item must not be on any given lists. Can be a comma-separated list.<br>**Options:** Any IMDb List ID (ex. `ls000024621`) | -| `language` | Item must match any given language. Can be a comma-separated list.<br>**Options:** [ISO 639-2 Language Codes](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) | -| `language.any` | Item must match at least one given language. Can be a comma-separated list.<br>**Options:** [ISO 639-2 Language Codes](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) | -| `language.not` | Item must not match any given language. Can be a comma-separated list.<br>**Options:** [ISO 639-2 Language Codes](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) | -| `language.primary` | Item must match any given language as the primary language. Can be a comma-separated list.<br>**Options:** [ISO 639-2 Language Codes](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) | -| `popularity.gte` | Item must have a Popularity greater then or equal to the given number.<br>**Options:** Any Integer greater then `0`<br>**Example:** `1000` | -| `popularity.lte` | Item must have a Popularity less then or equal to the given number.<br>**Options:** Any Integer greater then `0`<br>**Example:** `1000` | -| `cast` | Item must have all the given cast members. Can be a comma-separated list.<br>**Options:** Any IMDb Person ID (ex. `nm0000138`) | -| `cast.any` | Item must have any of the given cast members. Can be a comma-separated list.<br>**Options:** Any IMDb Person ID (ex. `nm0000138`) | -| `cast.not` | Item must not have any of the given cast members. Can be a comma-separated list.<br>**Options:** Any IMDb Person ID (ex. `nm0000138`) | -| `runtime.gte` | Item must have a Runtime greater then or equal to the given number.<br>**Options:** Any Integer greater then `0`<br>**Example:** `1000` | -| `runtime.lte` | Item must have a Runtime less then or equal to the given number.<br>**Options:** Any Integer greater then `0`<br>**Example:** `1000` | -| `adult` | Include adult titles in the search results.<br>**Options:** `true`/`false` | +???+ tip + + We strongly recommend you use the [IMDb Search website](https://www.imdb.com/search/) to manually verify that the options you have selected are valid. + + You can also view the available keywords on the [IMDb Keyword Search page](https://www.imdb.com/search/keyword/). + +| Search Parameter | Description | +|:-------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `limit` | Specify how items you want returned by the query.<br>**Options:** Any Integer greater then `0`<br>**Default:** `100` | +| `sort_by` | Choose from one of the many available sort options.<br>**Options:** `popularity.asc`, `popularity.desc`, `title.asc`, `title.desc`, `rating.asc`, `rating.desc`, `votes.asc`, `votes.desc`, `box_office.asc`, `box_office.desc`, `runtime.asc`, `runtime.desc`, `year.asc`, `year.desc`, `release.asc`, `release.desc`<br>**Default:** `popularity.asc` | +| `title` | Search by title name.<br>**Options:** Any String | +| `type` | Item must match at least one given type. Can be a comma-separated list.<br>**Options:** `movie`, `tv_series`, `short`, `tv_episode`, `tv_mini_series`, `tv_movie`, `tv_special`, `tv_short`, `video_game`, `video`, `music_video`, `podcast_series`, `podcast_episode` | +| `type.not` | Item must not match any of the given types. Can be a comma-separated list.<br>**Options:** `movie`, `tv_series`, `short`, `tv_episode`, `tv_mini_series`, `tv_movie`, `tv_special`, `tv_short`, `video_game`, `video`, `music_video`, `podcast_series`, `podcast_episode` | +| `release.after` | Item must have been released after the given date.<br>**Options:** `today` or Date in the format `YYYY-MM-DD` | +| `release.before` | Item must have been released before the given date.<br>**Options:** `today` or Date in the format `YYYY-MM-DD` | +| `rating.gte` | Item must have an IMDb Rating greater then or equal to the given number.<br>**Options:** Any Number `0.1` - `10.0`<br>**Example:** `7.5` | +| `rating.lte` | Item must have an IMDb Rating less then or equal to the given number.<br>**Options:** Any Number `0.1` - `10.0`<br>**Example:** `7.5` | +| `votes.gte` | Item must have a Number of Votes greater then or equal to the given number.<br>**Options:** Any Integer greater then `0`<br>**Example:** `1000` | +| `votes.lte` | Item must have a Number of Votes less then or equal to the given number.<br>**Options:** Any Integer greater then `0`<br>**Example:** `1000` | +| `genre` | Item must match all genres given. Can be a comma-separated list.<br>**Options:** `action`, `adventure`, `animation`, `biography`, `comedy`, `documentary`, `drama`, `crime`, `family`, `history`, `news`, `short`, `western`, `sport`, `reality-tv`, `horror`, `fantasy`, `film-noir`, `music`, `romance`, `talk-show`, `thriller`, `war`, `sci-fi`, `musical`, `mystery`, `game-show` | +| `genre.any` | Item must match at least one given genre. Can be a comma-separated list.<br>**Options:** `action`, `adventure`, `animation`, `biography`, `comedy`, `documentary`, `drama`, `crime`, `family`, `history`, `news`, `short`, `western`, `sport`, `reality-tv`, `horror`, `fantasy`, `film-noir`, `music`, `romance`, `talk-show`, `thriller`, `war`, `sci-fi`, `musical`, `mystery`, `game-show` | +| `genre.not` | Item must not match any og the given genres. Can be a comma-separated list.<br>**Options:** `action`, `adventure`, `animation`, `biography`, `comedy`, `documentary`, `drama`, `crime`, `family`, `history`, `news`, `short`, `western`, `sport`, `reality-tv`, `horror`, `fantasy`, `film-noir`, `music`, `romance`, `talk-show`, `thriller`, `war`, `sci-fi`, `musical`, `mystery`, `game-show` | +| `event` | Item must have been nominated for a category at the event given. Can be a comma-separated list.<br>**Options:** `cannes`, `choice`, `spirit`, `sundance`, `bafta`, `oscar`, `emmy`, `golden`, `oscar_picture`, `oscar_director`, `national_film_board_preserved`, `razzie`, or any [IMDb Event ID](https://www.imdb.com/event/all/) (ex. `ev0050888`) | +| `event.winning` | Item must have won a category at the event given. Can be a comma-separated list.<br>**Options:** `cannes`, `choice`, `spirit`, `sundance`, `bafta`, `oscar`, `emmy`, `golden`, `oscar_picture`, `oscar_director`, `national_film_board_preserved`, `razzie`, or any [IMDb Event ID](https://www.imdb.com/event/all/) (ex. `ev0050888`) | +| `imdb_top` | Item must be in the top number of given Movies.<br>**Options:** Any Integer greater then `0` | +| `imdb_bottom` | Item must be in the bottom number of given Movies.<br>**Options:** Any Integer greater then `0` | +| `company` | Item must have been released by any company given. Can be a comma-separated list.<br>**Options:** `fox`, `dreamworks`, `mgm`, `paramount`, `sony`, `universal`, `disney`, `warner`, or any IMDb Company ID (ex. `co0023400`) | +| `content_rating` | Item must have the given content rating. Can be a list.<br>**Options:** Dictionary with two attributes `rating` and `region`<br>`rating`: Any String to match the content rating<br>`region`: [2 Digit ISO 3166 Country Code](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | +| `country` | Item must match with every given country. Can be a comma-separated list.<br>**Options:** [2 Digit ISO 3166 Country Code](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | +| `country.any` | Item must match at least one given country. Can be a comma-separated list.<br>**Options:** [2 Digit ISO 3166 Country Code](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | +| `country.not` | Item must not match any given country. Can be a comma-separated list.<br>**Options:** [2 Digit ISO 3166 Country Code](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | +| `country.origin` | Item must match any given country as the origin country. Can be a comma-separated list.<br>**Options:** [2 Digit ISO 3166 Country Code](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) | +| `keyword` | Item must match with every given keyword. Can be a comma-separated list.<br>**Options:** Any Valid [IMDb Keyword](https://www.imdb.com/search/keyword/) | +| `keyword.any` | Item must match at least one given keyword. Can be a comma-separated list.<br>**Options:** Any Valid [IMDb Keyword](https://www.imdb.com/search/keyword/) | +| `keyword.not` | Item must not match any given keyword. Can be a comma-separated list.<br>**Options:** Any String | +| `series` | Item must match at least one given series. Can be a comma-separated list.<br>**Options:** Any IMDb ID (ex. `tt0096697`) | +| `series.not` | Item must not match any given series. Can be a comma-separated list.<br>**Options:** Any IMDb ID (ex. `tt0096697`) | +| `list` | Item must be on every given list. Can be a comma-separated list.<br>**Options:** Any IMDb List ID (ex. `ls000024621`) | +| `list.any` | Item must be on at least one given lists. Can be a comma-separated list.<br>**Options:** Any IMDb List ID (ex. `ls000024621`) | +| `list.not` | Item must not be on any given lists. Can be a comma-separated list.<br>**Options:** Any IMDb List ID (ex. `ls000024621`) | +| `language` | Item must match any given language. Can be a comma-separated list.<br>**Options:** [ISO 639-2 Language Codes](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) | +| `language.any` | Item must match at least one given language. Can be a comma-separated list.<br>**Options:** [ISO 639-2 Language Codes](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) | +| `language.not` | Item must not match any given language. Can be a comma-separated list.<br>**Options:** [ISO 639-2 Language Codes](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) | +| `language.primary` | Item must match any given language as the primary language. Can be a comma-separated list.<br>**Options:** [ISO 639-2 Language Codes](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) | +| `popularity.gte` | Item must have a Popularity greater then or equal to the given number.<br>**Options:** Any Integer greater then `0`<br>**Example:** `1000` | +| `popularity.lte` | Item must have a Popularity less then or equal to the given number.<br>**Options:** Any Integer greater then `0`<br>**Example:** `1000` | +| `cast` | Item must have all the given cast members. Can be a comma-separated list.<br>**Options:** Any IMDb Person ID (ex. `nm0000138`) | +| `cast.any` | Item must have any of the given cast members. Can be a comma-separated list.<br>**Options:** Any IMDb Person ID (ex. `nm0000138`) | +| `cast.not` | Item must not have any of the given cast members. Can be a comma-separated list.<br>**Options:** Any IMDb Person ID (ex. `nm0000138`) | +| `runtime.gte` | Item must have a Runtime greater then or equal to the given number.<br>**Options:** Any Integer greater then `0`<br>**Example:** `1000` | +| `runtime.lte` | Item must have a Runtime less then or equal to the given number.<br>**Options:** Any Integer greater then `0`<br>**Example:** `1000` | +| `adult` | Include adult titles in the search results.<br>**Options:** `true`/`false` | ### Examples @@ -277,4 +254,4 @@ collections: sort_by: rating.desc limit: 100 summary: The top 100 Simpsons episodes by IMDb user rating -``` +``` \ No newline at end of file diff --git a/docs/builders/letterboxd.md b/docs/files/builders/letterboxd.md similarity index 98% rename from docs/builders/letterboxd.md rename to docs/files/builders/letterboxd.md index c24a215c..a9911af9 100644 --- a/docs/builders/letterboxd.md +++ b/docs/files/builders/letterboxd.md @@ -15,7 +15,7 @@ Finds every movie in the Letterboxd List or [Letterboxd Films Search](https://le The expected input is a Letterboxd List URL or Letterboxd Film Search URL. Multiple values are supported as either a list or a comma-separated string. -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. Using the `limit` filter attribute is recommended when using a Letterboxd Film Search as the number of results returned could be very large. diff --git a/docs/builders/mdblist.md b/docs/files/builders/mdblist.md similarity index 98% rename from docs/builders/mdblist.md rename to docs/files/builders/mdblist.md index 511fa25e..6bd25c1a 100644 --- a/docs/builders/mdblist.md +++ b/docs/files/builders/mdblist.md @@ -12,7 +12,7 @@ Finds every item in a [MdbList List](https://mdblist.com/toplists/). The expected input is an MdbList List URL. Multiple values are supported as a list only a comma-separated string will not work. -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. ```yaml collections: diff --git a/docs/builders/myanimelist.md b/docs/files/builders/myanimelist.md similarity index 96% rename from docs/builders/myanimelist.md rename to docs/files/builders/myanimelist.md index 9e89b88d..7f56439c 100644 --- a/docs/builders/myanimelist.md +++ b/docs/files/builders/myanimelist.md @@ -2,7 +2,7 @@ You can find anime using the features of [MyAnimeList.net](https://myanimelist.net/) (MyAnimeList). -[Configuring MyAnimeList](../config/myanimelist.md) in the config is required for any of these builders. +[Configuring MyAnimeList](../../config/myanimelist.md) in the config is required for any of these builders. | Attribute | Description | Works with Movies | Works with Shows | Works with Playlists and Custom Sort | |:----------------------------------------------|:------------------------------------------------------------------------------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:------------------------------------------:| @@ -25,7 +25,7 @@ You can find anime using the features of [MyAnimeList.net](https://myanimelist.n Gets every anime in a MyAnimeList search. The different sub-attributes are detailed below. At least one attribute is required. -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. | Attribute | Description | |:-----------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -65,7 +65,7 @@ Gets every anime in MyAnimeList's [Top Airing Anime](https://myanimelist.net/top The expected input value is a single integer value of how many movies/shows to query. -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. ```yaml collections: @@ -81,7 +81,7 @@ Gets every anime in MyAnimeList's [Top Airing Anime](https://myanimelist.net/top The expected input value is a single integer value of how many movies/shows to query. -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. ```yaml collections: @@ -97,7 +97,7 @@ Gets every anime in MyAnimeList's [Top Upcoming Anime](https://myanimelist.net/t The expected input value is a single integer value of how many movies/shows to query. -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. ```yaml collections: @@ -113,7 +113,7 @@ Gets every anime in MyAnimeList's [Top Anime TV Series](https://myanimelist.net/ The expected input value is a single integer value of how many movies/shows to query. -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. ```yaml collections: @@ -129,7 +129,7 @@ Gets every anime in MyAnimeList's [Top Anime Movies](https://myanimelist.net/top The expected input value is a single integer value of how many movies/shows to query. -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. ```yaml collections: @@ -145,7 +145,7 @@ Gets every anime in MyAnimeList's [Top Anime OVA Series](https://myanimelist.net The expected input value is a single integer value of how many movies/shows to query. -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. ```yaml collections: @@ -161,7 +161,7 @@ Gets every anime in MyAnimeList's [Top Anime Specials](https://myanimelist.net/t The expected input value is a single integer value of how many movies/shows to query. -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. ```yaml collections: @@ -177,7 +177,7 @@ Gets every anime in MyAnimeList's [Most Popular Anime](https://myanimelist.net/t The expected input value is a single integer value of how many movies/shows to query. -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. ```yaml collections: @@ -193,7 +193,7 @@ Gets every anime in MyAnimeList's [Most Favorited Anime](https://myanimelist.net The expected input value is a single integer value of how many movies/shows to query. -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. ```yaml collections: @@ -209,7 +209,7 @@ Gets the suggested anime in by MyAnimeList for the authorized user. (Maximum: 10 The expected input value is a single integer value of how many movies/shows to query. -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. ```yaml collections: @@ -235,7 +235,7 @@ collections: Gets anime in MyAnimeList User's Anime list. The different sub-attributes are detailed below. The only required attribute is `username` -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. | Attribute | Description | |:-----------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -260,7 +260,7 @@ collections: Gets anime in MyAnimeList's [Seasonal Anime](https://myanimelist.net/anime/season) list the options are detailed below. -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. | Attribute | Description & Values | |:----------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| diff --git a/docs/files/builders/overview.md b/docs/files/builders/overview.md new file mode 100644 index 00000000..25e2f3ce --- /dev/null +++ b/docs/files/builders/overview.md @@ -0,0 +1,99 @@ +# Builders + +Builders use third-party services to source items to be added to the collection. Multiple builders can be used in the same collection from a variety of sources listed below. + + +::cards:: cols=5 image-bg + +- title: Plex (Smart) + content: | + Creates Smart Collections based on the metadata inside your Plex Server. Results are dynamic and will update as your library updates without the need to re-run PMM (Collections Only) + image: ../../../assets/icons/plex.png + url: "../smart" + +- title: Plex (Dumb) + content: Grabs items based on the metadata inside your Plex Server. Results are static and require PMM to re-run to update. + image: ../../../assets/icons/plex_dumb.png + url: "../plex" + +- title: TMDb + content: Grabs items based on metadata and lists on TheMovieDb.org + image: ../../../assets/icons/tmdb.png + url: "../tmdb" + +- title: TVDb + content: Grabs items based on metadata and lists on TheTVDb.com + image: ../../../assets/icons/tvdb.png + url: "../tvdb" + +- title: IMDb + content: Grabs items based on metadata and lists on IMDb.com + image: ../../../assets/icons/imdb.png + url: "../imdb" + +- title: Trakt + content: Grabs items based on metadata and lists on Trakt.tv + image: ../../../assets/icons/trakt.png + url: "../trakt" + +- title: Tautulli + content: Grabs items based on metadata and lists in your Tautulli + image: ../../../assets/icons/tautulli.png + url: "../tautulli" + +- title: Radarr + content: Grabs items based on metadata and lists in your Radarr + image: ../../../assets/icons/radarr.png + url: "../radarr" + +- title: Sonarr + content: Grabs items based on metadata and lists in your Sonarr + image: ../../../assets/icons/sonarr.png + url: "../sonarr" + +- title: MdbList + content: Grabs items based on metadata and lists on MdbList.com + image: ../../../assets/icons/mdblist.png + url: "../mdblist" + +- title: Letterboxd + content: Grabs items based on metadata and lists on Letterboxd.com + image: ../../../assets/icons/letterboxd.png + url: "../letterboxd" + +- title: ICheckMovies + content: Grabs items based on metadata and lists on ICheckMovies.com + image: ../../../assets/icons/icheckmovies.png + url: "../icheckmovies" + +- title: FlixPatrol + content: Grabs items based on metadata and lists on FlixPatrol.com + image: ../../../assets/icons/flixpatrol.png + url: "../flixpatrol" + +- title: AniDB + content: Grabs items based on metadata and lists on AniDB.net + image: ../../../assets/icons/anidb.png + url: "../anidb" + +- title: AniList + content: Grabs items based on metadata and lists on AniList.co + image: ../../../assets/icons/anilist.png + url: "../anilist" + +- title: MyAnimeList + content: Grabs items based on metadata and lists on MyAnimeList.net + image: ../../../assets/icons/myanimelist.png + url: "../myanimelist" + +- title: Reciperr + content: Grabs items based on metadata and lists on reciperr.com + image: ../../../assets/icons/reciperr.png + url: "../reciperr" + +- title: StevenLu + content: Grabs items based on metadata and lists on StevenLu.com + image: ../../../assets/icons/stevenlu.png + url: "../stevenlu" + +::/cards:: diff --git a/docs/builders/plex.md b/docs/files/builders/plex.md similarity index 98% rename from docs/builders/plex.md rename to docs/files/builders/plex.md index 8ce38035..c627573f 100644 --- a/docs/builders/plex.md +++ b/docs/files/builders/plex.md @@ -8,7 +8,7 @@ The results of these builders are static and require PMM to re-run in order to u | Attribute | Description | Works with Movies | Works with Shows | Works with Playlists and Custom Sort | |:----------------------------------------------|:----------------------------------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:------------------------------------------:| -| [`plex_all`](#plex-all) | Gets every movie/show in your library. Useful with [Filters](filters.md) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| [`plex_all`](#plex-all) | Gets every movie/show in your library. Useful with [Filters](../filters.md) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | | [`plex_watchlist`](#plex-watchlist) | Gets every movie/show in your Watchlist. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | | [`plex_pilots`](#plex-pilots) | Gets the first episode of every show in your library | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | | [`plex_collectionless`](#plex-collectionless) | Gets every movie/show that is not in a collection | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | @@ -16,7 +16,7 @@ The results of these builders are static and require PMM to re-run in order to u ## Plex All -Finds every item in your library. Useful with [Filters](filters.md). +Finds every item in your library. Useful with [Filters](../filters.md). The expected input is either true or false. @@ -43,7 +43,7 @@ The expected input is the sort you want returned. It defaults to `added.asc`. | `critic_rating.asc`<br>`critic_rating.desc` | Sort by Critic Rating | | `added.asc`<br>`added.desc` | Sort by Date Added to your Watchlist | -The `sync_mode: sync` and `collection_order: custom` Details are recommended. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended. ```yaml collections: @@ -107,13 +107,13 @@ collections: Uses Plex's [Advanced Filters](https://support.plex.tv/articles/201273953-collections/) to find all items based on the search parameters provided. -Any Advanced Filter made using the Plex UI should be able to be recreated using `plex_search`. If you're having trouble getting `plex_search` to work correctly, build the collection you want inside of Plex's Advanced Filters and take a screenshot of the parameters in the Plex UI and post it in either the [Discussions](https://github.com/meisnate12/Plex-Meta-Manager/discussions) or on [Discord](https://discord.gg/TsdpsFYqqm), and I'll do my best to help you. +Any Advanced Filter made using the Plex UI should be able to be recreated using `plex_search`. If you're having trouble getting `plex_search` to work correctly, build the collection you want inside of Plex's Advanced Filters and take a screenshot of the parameters in the Plex UI and post it in either the [Discussions](https://github.com/meisnate12/Plex-Meta-Manager/discussions) or on [Discord](https://metamanager.wiki/en/latest/discord/), and I'll do my best to help you. like Plex's [Advanced Filters](https://support.plex.tv/articles/201273953-collections/) you have to start each search with either `any` or `all` as a base. You can only have one base attribute and all search attributes must be under the base. Inside the base attribute you can use any search below or nest more `any` or `all`. You can have as many nested `any` or `all` next to each other as you want. If using multiple `any` or `all` you will have to do so in the form of a list. -**Note: To search by `season`, `episode`, `album`, or `track` you must use the `builder_level` [Detail](details/metadata.md) to change the type of items the collection holds.** +**Note: To search by `season`, `episode`, `album`, or `track` you must use the `builder_level` [Setting](../settings.md) to change the type of items the collection holds.** There are a couple other attributes you can have at the top level only along with the base attribute are: @@ -216,6 +216,7 @@ Tag search can take multiple values as a **list or a comma-separated string**. | Tag Search | Description | Movie<br>Libraries | Show<br>Libraries | Music<br>Libraries | |:---------------------------|:----------------------------------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:------------------------------------------:| | `actor` | Uses the actor tags to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| `episode_actor` | Uses the episode actor tags to match | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | | `audio_language` | Uses the audio language tags to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | | `collection` | Uses the collection tags to match for top level collections | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | | `season_collection` | Uses the collection tags to match for season collections | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | @@ -439,7 +440,7 @@ Here's an example of an episode collection using `plex_search`. summary: A collection of the highest rated simpsons episodes. ``` -If you specify TMDb Person ID's using the Detail `tmdb_person` and then tell either `actor`, `director`, `producer`, or `writer` to add `tmdb`, the script will translate the TMDb Person IDs into their names and run the search on those names. +If you specify TMDb Person ID's using the Setting `tmdb_person` and then tell either `actor`, `director`, `producer`, or `writer` to add `tmdb`, the script will translate the TMDb Person IDs into their names and run the search on those names. ```yaml collections: diff --git a/docs/builders/radarr.md b/docs/files/builders/radarr.md similarity index 93% rename from docs/builders/radarr.md rename to docs/files/builders/radarr.md index cee6f4da..2c4d7ce7 100644 --- a/docs/builders/radarr.md +++ b/docs/files/builders/radarr.md @@ -2,7 +2,7 @@ You can find items in your Plex using the features of [Radarr](https://radarr.video/). -[Configuring Radarr](../config/radarr.md) in the config is required for any of these builders. +[Configuring Radarr](../../config/radarr.md) in the config is required for any of these builders. | Attribute | Description | Works with Movies | Works with Shows | Works with Playlists and Custom Sort | |:------------------------------------|:---------------------------------------------|:------------------------------------------:|:----------------------------------------:|:----------------------------------------:| diff --git a/docs/builders/reciperr.md b/docs/files/builders/reciperr.md similarity index 95% rename from docs/builders/reciperr.md rename to docs/files/builders/reciperr.md index 7e4f62eb..682b02f4 100644 --- a/docs/builders/reciperr.md +++ b/docs/files/builders/reciperr.md @@ -14,7 +14,7 @@ Finds every movie on Reciperr a list. The expected input is the url that points to the JSON data or a list of urls that do. -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. ```yaml collections: diff --git a/docs/builders/smart.md b/docs/files/builders/smart.md similarity index 98% rename from docs/builders/smart.md rename to docs/files/builders/smart.md index 91e47528..d5bab23d 100644 --- a/docs/builders/smart.md +++ b/docs/files/builders/smart.md @@ -38,19 +38,19 @@ This is extremely useful because smart collections don't follow normal show/hide To have the Smart Label Collections to eliminate Plex Collectionless you have to go all in on using them. A good rule of thumb to make sure this works correctly is that every item in your library should have a max of one non-smart collection. -Reach out on the [Plex Meta Manager Discord](https://discord.gg/TsdpsFYqqm) or in the [GitHub Discussions](https://github.com/meisnate12/Plex-Meta-Manager/discussions) for help if you're having any issues getting this to work properly. +Reach out on the [Plex Meta Manager Discord](https://metamanager.wiki/en/latest/discord/) or in the [GitHub Discussions](https://github.com/meisnate12/Plex-Meta-Manager/discussions) for help if you're having any issues getting this to work properly. ## Smart Filter Uses Plex's [Advanced Filters](https://support.plex.tv/articles/201273953-collections/) to create a smart collection based on the filter parameters provided. -Any Advanced Filter made using the Plex UI should be able to be recreated using `smart_filter`. If you're having trouble getting `smart_filter` to work correctly, build the collection you want inside of Plex's Advanced Filters and take a screenshot of the parameters in the Plex UI and post it in either the [Discussions](https://github.com/meisnate12/Plex-Meta-Manager/discussions) or on [Discord](https://discord.gg/TsdpsFYqqm), and I'll do my best to help you. +Any Advanced Filter made using the Plex UI should be able to be recreated using `smart_filter`. If you're having trouble getting `smart_filter` to work correctly, build the collection you want inside of Plex's Advanced Filters and take a screenshot of the parameters in the Plex UI and post it in either the [Discussions](https://github.com/meisnate12/Plex-Meta-Manager/discussions) or on [Discord](https://metamanager.wiki/en/latest/discord/), and I'll do my best to help you. like Plex's [Advanced Filters](https://support.plex.tv/articles/201273953-collections/) you have to start each filter with either `any` or `all` as a base. You can only have one base attribute and all filter attributes must be under the base. Inside the base attribute you can use any filter below or nest more `any` or `all`. You can have as many nested `any` or `all` next to each other as you want. If using multiple `any` or `all` you will have to do so in the form of a list. -**Note: To search by `season`, `episode`, `album`, or `track` you must use the `builder_level` [Detail](details/metadata.md) to change the type of items the collection holds.** +**Note: To search by `season`, `episode`, `album`, or `track` you must use the `builder_level` [Setting](../settings.md) to change the type of items the collection holds.** There are a couple other attributes you can have at the top level only along with the base attribute are: @@ -151,6 +151,7 @@ Tag filter can take multiple values as a **list or a comma-separated string**. | Tag Search | Description | Movie<br>Libraries | Show<br>Libraries | Music<br>Libraries | |:---------------------------|:----------------------------------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:------------------------------------------:| | `actor` | Uses the actor tags to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | +| `episode_actor` | Uses the episode actor tags to match | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | | `audio_language` | Uses the audio language tags to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | | `collection` | Uses the collection tags to match for top level collections | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | | `season_collection` | Uses the collection tags to match for season collections | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | @@ -354,7 +355,7 @@ collections: limit: 20 ``` -If you specify TMDb Person ID's using the Detail `tmdb_person` and then tell either `actor`, `director`, `producer`, or `writer` to add `tmdb`, the script will translate the TMDb Person IDs into their names and run the filter on those names. +If you specify TMDb Person ID's using the Setting `tmdb_person` and then tell either `actor`, `director`, `producer`, or `writer` to add `tmdb`, the script will translate the TMDb Person IDs into their names and run the filter on those names. ```yaml collections: diff --git a/docs/builders/sonarr.md b/docs/files/builders/sonarr.md similarity index 93% rename from docs/builders/sonarr.md rename to docs/files/builders/sonarr.md index 72ac98d3..a181b52b 100644 --- a/docs/builders/sonarr.md +++ b/docs/files/builders/sonarr.md @@ -2,7 +2,7 @@ You can find items in your Plex using the features of [Sonarr](https://sonarr.tv/). -[Configuring Sonarr](../config/sonarr.md) in the config is required for any of these builders. +[Configuring Sonarr](../../config/sonarr.md) in the config is required for any of these builders. | Attribute | Description | Works with Movies | Works with Shows | Works with Playlists and Custom Sort | |:------------------------------------|:---------------------------------------------|:----------------------------------------:|:------------------------------------------:|:----------------------------------------:| diff --git a/docs/builders/stevenlu.md b/docs/files/builders/stevenlu.md similarity index 95% rename from docs/builders/stevenlu.md rename to docs/files/builders/stevenlu.md index 98735d57..a9805b96 100644 --- a/docs/builders/stevenlu.md +++ b/docs/files/builders/stevenlu.md @@ -14,7 +14,7 @@ Finds every movie on [StevenLu's Popular Movies List](https://movies.stevenlu.co The expected input is `true`. -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. ```yaml collections: diff --git a/docs/builders/tautulli.md b/docs/files/builders/tautulli.md similarity index 94% rename from docs/builders/tautulli.md rename to docs/files/builders/tautulli.md index 360b3536..d1474921 100644 --- a/docs/builders/tautulli.md +++ b/docs/files/builders/tautulli.md @@ -2,7 +2,7 @@ You can find items in your Plex using the features of [Tautulli](https://tautulli.com/). -[Configuring Tautulli](../config/tautulli.md) in the config is required for any of these builders. +[Configuring Tautulli](../../config/tautulli.md) in the config is required for any of these builders. It has watch analytics that can show the most watched or most popular Movies/Shows in each Library. @@ -21,7 +21,7 @@ Both Tautulli Popular and Tautulli Watched have the same sub-attributes detailed | `list_minimum` | Minimum Number of Users Watching/Plays to add to the list. | :fontawesome-solid-circle-xmark:{ .red } | `0` | | `list_size` | Number of Movies/Shows to add to this list. | :fontawesome-solid-circle-xmark:{ .red } | `10` | -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. ```yaml collections: diff --git a/docs/builders/tmdb.md b/docs/files/builders/tmdb.md similarity index 98% rename from docs/builders/tmdb.md rename to docs/files/builders/tmdb.md index 759fd98f..5166e60a 100644 --- a/docs/builders/tmdb.md +++ b/docs/files/builders/tmdb.md @@ -108,7 +108,7 @@ collections: Finds every item in the TMDb List. -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. ```yaml collections: @@ -302,7 +302,7 @@ Finds the movies/shows in TMDb's [Popular Movies](https://www.themoviedb.org/mov Use `tmdb_region` with this builder to set the region. -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. ```yaml collections: @@ -318,7 +318,7 @@ Finds the movies in TMDb's [Now Playing](https://www.themoviedb.org/movie/now-pl Use `tmdb_region` with this builder to set the region. -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. ```yaml collections: @@ -334,7 +334,7 @@ Finds the movies/shows in TMDb's [Top Rated Movies](https://www.themoviedb.org/m Use `tmdb_region` with this builder to set the region. -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. ```yaml collections: @@ -350,7 +350,7 @@ Finds the movies in TMDb's [Upcoming Movies](https://www.themoviedb.org/movie/up Use `tmdb_region` with this builder to set the region. -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. ```yaml collections: @@ -364,7 +364,7 @@ collections: Finds the shows in TMDb's [Airing Today Shows](https://www.themoviedb.org/tv/airing-today) list. -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. ```yaml collections: @@ -378,7 +378,7 @@ collections: Finds the shows in TMDb's [On TV Shows](https://www.themoviedb.org/tv/on-the-air) list. -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. ```yaml collections: @@ -392,7 +392,7 @@ collections: Finds the movies/shows in TMDb's Trending Daily list. -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. ```yaml collections: @@ -406,7 +406,7 @@ collections: Finds the movies/shows in TMDb's Trending Weekly list. -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. ```yaml collections: @@ -422,7 +422,7 @@ Uses [TMDb's Discover Search](https://developer.themoviedb.org/docs/search-and-q I've observed many attributes that begin with `with_` or `without_` being able to use `|` as an `OR` and `&` as an `AND` when specifying multiple items even though it's not listed as possible. -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. | Type | Description | |:-------------------|:--------------------------------------------------| @@ -438,7 +438,7 @@ The `sync_mode: sync` and `collection_order: custom` Details are recommended sin | Movie Parameters | Description | |:--------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `limit` | Specify how many movies you want returned by the query.<br>**Type:** Integer<br>**Default:** 100 | -| `region` | Specify a [ISO 3166-1 code](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) to filter release dates. Must be uppercase. Will use the `region` specified in the [TMDb Config](../config/tmdb.md) by default.<br>**Type:** `^[A-Z]{2}$` | +| `region` | Specify a [ISO 3166-1 code](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) to filter release dates. Must be uppercase. Will use the `region` specified in the [TMDb Config](../../config/tmdb.md) by default.<br>**Type:** `^[A-Z]{2}$` | | `sort_by` | Choose from one of the many available sort options.<br>**Type:** Any [sort options](#sort-options) below<br>**Default:** `popularity.desc` | | `certification_country` | Used in conjunction with the certification parameter, use this to specify a country with a valid certification.<br>**Type:** String | | `certification` | Filter results with a valid certification from the `certification_country` parameter.<br>**Type:** String | diff --git a/docs/builders/trakt.md b/docs/files/builders/trakt.md similarity index 98% rename from docs/builders/trakt.md rename to docs/files/builders/trakt.md index c08c670e..f2aa3103 100644 --- a/docs/builders/trakt.md +++ b/docs/files/builders/trakt.md @@ -2,7 +2,7 @@ You can find items using the features of [Trakt.tv](https://trakt.tv/) (Trakt). -[Configuring Trakt](../config/trakt.md) in the config is required for any of these builders. +[Configuring Trakt](../../config/trakt.md) in the config is required for any of these builders. | Attribute | Description | Works with Movies | Works with Shows | Works with Playlists and Custom Sort | |:--------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:------------------------------------------:| @@ -19,13 +19,13 @@ Finds every item in the Trakt List. The expected input is a Trakt List URL. Multiple values are supported only as a list. -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. **Trakt Lists cannot be sorted through the API, but the list is always returned to the default list order if you own the list.** ???+ tip - If you have [authorized Trakt](../config/trakt.md) then you can use private Trakt Lists, this is not possible if you have not authorized Trakt. + If you have [authorized Trakt](../../config/trakt.md) then you can use private Trakt Lists, this is not possible if you have not authorized Trakt. ???+ warning @@ -62,7 +62,7 @@ collections: Finds the movies/shows in the Trakt Chart. The options are detailed below. -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. | Attribute | Description & Values | |:-----------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -117,7 +117,7 @@ collections: Finds every movie/show in the Trakt Userlist. -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. | Attribute | Description & Values | |:-----------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -156,7 +156,7 @@ Finds the movies/shows in Trakt's Recommendations for [Movies](https://trakt.doc The expected input is a single integer value of how many movies/shows to query. -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. ```yaml collections: @@ -172,7 +172,7 @@ Finds the 10 movies in Trakt's Top Box Office [Movies](https://trakt.tv/movies/b The expected input is true. -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. ```yaml collections: diff --git a/docs/builders/tvdb.md b/docs/files/builders/tvdb.md similarity index 98% rename from docs/builders/tvdb.md rename to docs/files/builders/tvdb.md index a51d23c4..2c7cbae6 100644 --- a/docs/builders/tvdb.md +++ b/docs/files/builders/tvdb.md @@ -19,7 +19,7 @@ Finds every item in a [TVDb List](https://www.thetvdb.com/lists) or [TVDb Userli The expected input is a TVDb List URL or TVDb Userlist URL. Multiple values are supported as either a list or a comma-separated string. -The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order. +The `sync_mode: sync` and `collection_order: custom` Setting are recommended since the lists are continuously updated and in a specific order. ```yaml collections: diff --git a/docs/config/data/collections.md b/docs/files/collections.md similarity index 62% rename from docs/config/data/collections.md rename to docs/files/collections.md index 3c6b33fc..fee9e090 100644 --- a/docs/config/data/collections.md +++ b/docs/files/collections.md @@ -1,12 +1,15 @@ # Collection Files -Collection Files holds information on how Plex Meta Manager should create collections. There are a large number of builders available to build collections, +Collection Files holds information on how Plex Meta Manager should create collections. There are a large number of +builders available to build collections, ## Overview -This is a basic Collections File which contains the structure to build a collection called "Top 50 Grossing Films of All Time (Worldwide)" +This is a basic Collections File which contains the structure to build a collection called "Top 50 Grossing Films of All +Time (Worldwide)" -The collection order is set to be the same as is received from the source list, and items added/removed from the source list will be added/removed from the collection in the Plex library. +The collection order is set to be the same as is received from the source list, and items added/removed from the source +list will be added/removed from the collection in the Plex library. ???+ example "Example "MyCollections.yml"" @@ -23,11 +26,13 @@ The collection order is set to be the same as is received from the source list, 1. This must appear once and **only once** in any Metadata file 2. This creates a collection based on tmdb list ID 10, https://www.themoviedb.org/list/10 would also be accepted 3. This will sort the items in the Plex collection to be the same as the order in the list - 4. Syncs the collection to the list, so that if an item is added/removed from the list, the same is done to the collection. Set this to `append` if you only want it to add things and not remove them. + 4. Syncs the collection to the list, so that if an item is added/removed from the list, the same is done to the + collection. Set this to `append` if you only want it to add things and not remove them. -For the purpose of this example, we are going to save the File as `MyCollections.yml` within the location mapped as `config` in our setup. +For the purpose of this example, we are going to save the File as `MyCollections.yml` within the location mapped as +`config` in our setup. -I then call "MyCollections.yml" in my [Configuration File](../configuration.md) within the `collection_files` section +I then call "MyCollections.yml" in my [Configuration File](../config/overview.md) within the `collection_files` section ???+ example "config.yml Example Collection File Addition" @@ -43,28 +48,32 @@ I then call "MyCollections.yml" in my [Configuration File](../configuration.md) 1. This must match the name of a library in your Plex server 2. `config` refers to the location that you mapped to `config` when following the PMM Installation Guides. -Whenever I execute Plex Meta Manager and the Movies library is run, MyCollections.yml will run and my "Top 50 Grossing Films of All Time (Worldwide)" will be created/updated. +Whenever I execute Plex Meta Manager and the Movies library is run, MyCollections.yml will run and my "Top 50 Grossing +Films of All Time (Worldwide)" will be created/updated. ## File Attributes Collection Files can utilize the following top-level attributes -| Attribute | Description | -|:-----------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------| -| [`templates`](../../builders/templates.md) | contains definitions of templates that can be leveraged by multiple collections | -| [`external_templates`](../../builders/templates.md#external-templates) | contains [path types](../../builders/files.md#paths) that point to external templates that can be leveraged by multiple collections | -| [`collections`](#collection-operations--attributes) | contains definitions of collections you wish to add to one or more libraries | -| [`dynamic_collections`](#dynamic-collections) | contains definitions of [dynamic collections](../../builders/dynamic.md) you wish to create | +| Attribute | Description | +|:--------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------| +| [`templates`](templates.md) | contains definitions of templates that can be leveraged by multiple collections | +| [`external_templates`](templates.md#external-templates) | contains [file blocks](../config/files.md) that point to external templates that can be leveraged by multiple collections | +| [`collections`](#collection-operations--attributes) | contains definitions of collections you wish to add to one or more libraries | +| [`dynamic_collections`](#dynamic-collections) | contains definitions of [dynamic collections](dynamic.md) you wish to create | -* One of `metadata`, `collections` or `dynamic_collections` must be present for the File to run, else you will receive an error when trying to run the file against your library. +* One of `metadata`, `collections` or `dynamic_collections` must be present for the File to run, else you will receive +an error when trying to run the file against your library. -* Example Files can be found in the [Plex Meta Manager Configs Repository](https://github.com/meisnate12/Plex-Meta-Manager-Configs/tree/master/PMM) +* Example Files can be found in the +[Plex Meta Manager Configs Repository](https://github.com/meisnate12/Plex-Meta-Manager-Configs/tree/master/PMM) ## Collection Operations & Attributes -Whilst [Library Operations](../operations.md) are used to control library-wide operations, Collection Files can be used as a method to perform more limited operations, such as: +Whilst [Library Operations](../config/operations.md) are used to control library-wide operations, Collection Files can +be used as a method to perform more limited operations, such as: -* Syncing collections with the source list if one is used (such as Trakt Lists, TMDB Lists, etc.) +* Syncing collections with the source list if one is used (such as Trakt Lists, TMDb Lists, etc.) * Sending missing media to Sonarr/Radarr @@ -72,7 +81,8 @@ Whilst [Library Operations](../operations.md) are used to control library-wide o * Showing and Hiding collections at set intervals (i.e. show Christmas collections in December only) -These operations can be performed without the need to physically build a collection (using the `build_collection: false` attribute) +These operations can be performed without the need to physically build a collection (using the `build_collection: false` +attribute) Examples of these can be seen here @@ -91,7 +101,8 @@ Examples of these can be seen here ``` 1. This is a Trakt List builder, telling PMM to build a collection based on the items in this list - 1. If items are removed from the source list, having sync mode set to `append` means they will not be removed from the collection in Plex. Set this to `sync` if you want the items removed in the collection too + 2. If items are removed from the source list, having sync mode set to `append` means they will not be removed + from the collection in Plex. Set this to `sync` if you want the items removed in the collection too 3. Sort the collection in the order that it is received from the Trakt list === "Example 2 - Send to Arr" @@ -105,7 +116,8 @@ Examples of these can be seen here ``` 1. Sorts the collection in the same order as is received by the source list - 2. Sends items that are in the source list but are not in your Plex library to Radarr. Replace with `sonarr_add_missing` for any show-based builder. + 2. Sends items that are in the source list but are not in your Plex library to Radarr. Replace with + `sonarr_add_missing` for any show-based builder. === "Example 3 - Add labels" @@ -133,13 +145,17 @@ Examples of these can be seen here 1. Tells PMM to not physically build a collection, but it will still perform the actions of the collection 2. Only run this collection from December 1st through December 31st - 3. If today is not part of the above scheduled range, delete the Christmas Extravaganza collection if it exists in the Plex library + 3. If today is not part of the above scheduled range, delete the Christmas Extravaganza collection if it exists + in the Plex library There are multiple types of attributes that can be utilized within a collection: -* [Builders](../../builders/overview.md) -* [Settings/Updates](../../metadata/update.md) -* [Filters](../../builders/filters.md) +* [Builders](builders/overview.md) +* [Filters](filters.md) +* [Settings](settings.md) +* [Radarr/Sonarr Settings](settings.md) +* [Collection/Playlist Metadata Updates](updates.md) +* [Item Metadata Updates](item_updates.md) ## Example File @@ -159,8 +175,8 @@ collections: summary: Movies Trending across the internet Popular: tmdb_popular: 40 - imdb_list: - url: https://www.imdb.com/search/title/?title_type=feature,tv_movie,documentary,short + imdb_search: + type: movie, tv_movie limit: 40 sort_title: +2_Popular sync_mode: sync @@ -170,7 +186,8 @@ collections: ## Dynamic Collections -In addition to manually defining each Collection that you want in your library, Plex Meta Manager can also dynamically create collections based on a variety of different criteria, such as +In addition to manually defining each Collection that you want in your library, Plex Meta Manager can also dynamically +create collections based on a variety of different criteria, such as * Collections for the top `X` popular people on TMDb (Bruce Willis, Tom Hanks etc.) @@ -180,4 +197,4 @@ In addition to manually defining each Collection that you want in your library, * Collections for each of a Trakt Users Lists. -A full list of the available options is available on the [Dynamic Collections](../../builders/dynamic.md) page \ No newline at end of file +A full list of the available options is available on the [Dynamic Collections](dynamic.md) page \ No newline at end of file diff --git a/docs/files/dynamic.md b/docs/files/dynamic.md new file mode 100644 index 00000000..d6b7e3dd --- /dev/null +++ b/docs/files/dynamic.md @@ -0,0 +1,589 @@ +# Dynamic Collections + +Plex Meta Manager can dynamically create collections based on different criteria, such as + +* Collections based on the Collections from TMDb for every item in the library. ( +[Star Wars](https://www.themoviedb.org/collection/10-star-wars-collection), +[Harry Potter](https://www.themoviedb.org/collection/1241), etc...) + +* Collections based on each of a Users Trakt Lists + +* Collections for the top `X` popular people on TMDb (Bruce Willis, Tom Hanks, etc...) + +* Collections for each decade represented in the library (Best of 1990s, Best of 2000s, etc...) + +* Collections for each of the moods/styles within a Music library (A Cappella, Pop Rock, etc...) + +The main purpose of dynamic collections is to automate the creation of collections which would otherwise require +considerable user input and repetition (such as creating a collection for every genre). + +## Using Dynamic Collections + +Each dynamic collection definition creates a set of collection definitions based on some given criteria and uses either +the built-in default template or a user defined custom template to dynamically create collection definitions. + +#### Collection Naming + +By default, the collections generated will be named for the thing being used to create them; things like genres, +countries, actors, or even Trakt List Names. + +To change the name of the collection, you can use dynamic collection attributes including `title_format`, +`remove_suffix`, `remove_prefix`, `key_name_override`, and `title_override` all detailed below. + +#### Dynamic Keys & Key Names + +A `dynamic key` or `key` for short is used to refer to a specific value/result from the dynamic collection criteria that +will be used to create the collection. + +A `key_name` is the name that replaces `<<key_name>>` in `title_format` to create the collection titles for each key. + +An example of some keys and their names that would be generated from a `tmdb_collection` dynamic collection are: + +* `key`: "10" + + * `key_name`: Star Wars Collection + +* `key`: "1241" + + * `key_name`: Harry Potter Collection + +| `key` | `key_name` | +|:------|:------------------------| +| 10 | Star Wars Collection | +| 1241 | Harry Potter Collection | + + +### Example Key Usage + +Keys can be used for a number of purposes, examples can be found throughout this page. A few examples are shown below: + +* Excluding the "Horror" key from the `Genre` dynamic collection definition + +```yaml +dynamic_collections: + Genres: # mapping name does not matter, just needs to be unique + type: genre + exclude: + - Horror +``` + +* Using the `key_name_override` attribute to change the formatting of "France" to "French" so that a collection can be +named "French Cinema" instead of simply "France" + + * This particular example also uses the `title_format` attribute to manipulate the naming convention of the + collections. + +```yaml +dynamic_collections: + Countries: # mapping name does not matter, just needs to be unique + type: country + title_format: <<key_name>> Cinema + key_name_override: + France: French +``` + +* Using the `addons` attribute to combine multiple `keys`, i.e. merging "MTV2", "MTV3" and "MTV (UK)" into one "MTV" +collection. + + * When doing this, individual collections will not be created for the individual MTV collections, instead they will + be merged within the "MTV" collection. + +```yaml +dynamic_collections: + networks: + type: network + addons: + MTV: + - MTV2 + - MTV3 + - MTV (UK) +``` + +## Dynamic Collection Definition + +Each dynamic collection definition must have a mapping name (just like standard collections) under the +`dynamic_collections` attribute, which is also attached to the collection as a label to mark it as having been created +by this dynamic collection. + +??? example "Dynamic Collection Example (click to expand)" + + This example will create a collection for every TMDb Collection associated with items in the library. + + ```yaml + dynamic_collections: + TMDb Collections: # This name is the mapping name + type: tmdb_collection + remove_suffix: "Collection" + ``` + +## Attributes + +??? blank "`type` & `data` - Used to specify the type of Dynamic Collection.<a class="headerlink" href="#type-data" title="Permanent link">¶</a>" + + <div id="type-data" />Used to specify the type of Dynamic Collection and its data. `type` is required for every + dynamic collection and `data` is required for any type that uses the attribute. + + <hr style="margin: 0px;"> + + **Attribute:** `type` & `data` + + **Accepted Values:** See [Dynamic Collection Types & Data](dynamic_types.md) + +??? blank "`exclude` - Used to exclude a list of keys from being created into collections.<a class="headerlink" href="#exclude" title="Permanent link">¶</a>" + + <div id="exclude" />Used to exclude a list of `dynamic keys` from being created into collections. + + <hr style="margin: 0px;"> + + **Attribute:** `exclude` + + **Accepted Values:** List of keys + + ???+ example "Example" + + For example when making a `genre` dynamic collection definition you can exclude "Horror" from having a + collection created from the key. + + ```yaml + dynamic_collections: + Genres: # mapping name does not matter, just needs to be unique + type: genre + exclude: + - Horror + ``` + +??? blank "`addons` - Used to define how multiple keys can be combined under a parent key.<a class="headerlink" href="#addons" title="Permanent link">¶</a>" + + <div id="addons" />Used to define how multiple `dynamic keys` can be combined under a parent key. + + You can define custom parent keys under addons by just using the a key that doesnt exist; it will be considered a + custom key combining all keys into one key. + + <hr style="margin: 0px;"> + + **Attribute:** `addons` + + **Accepted Values:** [Dictionary](../pmm/yaml.md#dictionaries) where the key is the `dynamic key` and the value is a + list of `dynamic keys` to combine. + + ???+ example "Example" + + In this example the attribute is used to merge "MTV2", "MTV3" and "MTV (UK)" into the "MTV" collection. + + ```yaml + dynamic_collections: + networks: + type: network + addons: + MTV: + - MTV2 + - MTV3 + - MTV (UK) + ``` + +??? blank "`template` - Used to define which templates are used.<a class="headerlink" href="#template" title="Permanent link">¶</a>" + + <div id="template" />Used to define which templates are used for these dynamic collections. Each dynamic collection + `type` has its own default template, but if you want to define and use your own template you can. + + Each template is passed a few template variables you can use. + + * `value`: The list of keys and addons + + * `key`: The dynamic key + + * `key_name`: The key after `key_name_override`, `remove_prefix`, or `remove_suffix` are run on it. + + <hr style="margin: 0px;"> + + **Attribute:** `template` + + **Accepted Values:** Name of template or list of templates to use + + ???+ example "Example" + + In this example the template removes the limit on the `smart_filter` so it shows all items in each network. + + Press the :fontawesome-solid-circle-plus: icon to learn more + + ```yaml + templates: + network collection: #(1)! + smart_filter: + sort_by: critic_rating.desc + all: + network: <<value>> + dynamic_collections: + Networks: #(2)! + type: network + title_format: <<key_name>> + template: network collection #(3)! + ``` + + 1. This is the mapping name of the template. + 2. This is the mapping name of the Dynamic Collection Definition. + 3. This must match the mapping name of the template you want to use. + +??? blank "`template_variables` - Used to define template variables by key.<a class="headerlink" href="#template-variables" title="Permanent link">¶</a>" + + <div id="template-variables" />Used to define template variables by key. This attribute will allow multiple template + variables to be set per dynamic key. + + ???+ tip + + You can set a default value for a variable by using `default` instead of the dynamic key. + + <hr style="margin: 0px;"> + + **Attribute:** `template_variables` + + **Accepted Values:** [Dictionary](../pmm/yaml.md#dictionaries) where the key is the template variable and the value + is another [Dictionary](../pmm/yaml.md#dictionaries) where the key is the `dynamic key` of the collection you want + change the template variable for and the value is the new value for the template variable. + + ???+ example "Example" + + For example, when using `type: tmdb_collection` and you want to define a poster url for some collections. + + ```yaml + templates: + my_template: + optional: + - my_collection_poster + tmdb_collection_details: <<value>> + collection_order: release + url_poster: <<my_collection_poster>> + dynamic_collections: + TMDb Collections: # This name is the mapping name + type: tmdb_collection + remove_suffix: "Collection" + template: my_template + template_variables: #(1)! + my_collection_poster: #(2)! + 119: https://www.themoviedb.org/t/p/original/oENY593nKRVL2PnxXsMtlh8izb4.jpg #(3)! + 531241: https://www.themoviedb.org/t/p/original/nogV4th2P5QWYvQIMiWHj4CFLU9.jpg #(4)! + ``` + + 1. Template variables are placed under `template_variables`. + 2. `my_collection_poster` is the template variable being changed. + 3. For key `119` use the url as the my_collection_poster template variable. + 4. For key `531241` use the url as the my_collection_poster template variable. + +??? blank "`remove_suffix` - Used to remove the defined suffixes.<a class="headerlink" href="#remove-suffix" title="Permanent link">¶</a>" + + <div id="remove-suffix" />Used to remove the defined suffixes from the key before it’s used in the collection title. + + <hr style="margin: 0px;"> + + **Attribute:** `remove_suffix` + + **Accepted Values:** List or comma-separated string of suffixes to remove + + ???+ example "Example" + + When using `type: tmdb_collection` you may not want every collection title to end with `Collection`. + + ```yaml + dynamic_collections: + TMDb Collections: # This name is the mapping name + type: tmdb_collection + remove_suffix: "Collection" + ``` + +??? blank "`remove_prefix` - Used to remove the defined prefixes.<a class="headerlink" href="#remove-prefix" title="Permanent link">¶</a>" + + <div id="remove-prefix" />Used to remove the defined prefixes from the key before it’s used in the collection title. + + <hr style="margin: 0px;"> + + **Attribute:** `remove_prefix` + + **Accepted Values:** List or comma-separated string of prefixes to remove + + ???+ example "Example" + + When using `type: tmdb_collection` you may not want every collection title to start with `The`. + + ```yaml + dynamic_collections: + TMDb Collections: # This name is the mapping name + type: tmdb_collection + remove_prefix: "The" + ``` + +??? blank "`title_format` - Used to specify the format you want the collection titles to be.<a class="headerlink" href="#title-format" title="Permanent link">¶</a>" + + <div id="title-format" />Used to specify the format you want the collection titles to be. + + There are a few special tags you can include in the `title_format`: + + * `<<key_name>>` is **required** and is what will be replaced by the dynamic key name. + + * `<<limit>>` will be replaced the limit template variable if passed to the definition. + + * `<<library_type>>` will be replaced with either `movie`, `show`, `artist`, or `video` depending on your library + type. + + * `<<library_typeU>>` will be replaced with either `Movie`, `Show`, `Artist`, or `Video` depending on your library + type. + + <hr style="margin: 0px;"> + + **Attribute:** `title_format` + + **Accepted Values:** String with `<<key_name>>` in it. + + ???+ example "Example" + + ```yaml + dynamic_collections: + Genres: # mapping name does not matter just needs to be unique + type: genre + title_format: Top 50 <<key_name>> <<library_type>>s + ``` + +??? blank "`key_name_override` - Used to override key names before being formatted into titles.<a class="headerlink" href="#key-name-override" title="Permanent link">¶</a>" + + <div id="key-name-override" />Defines how key names can be overridden before they are formatted into collection + titles. + + <hr style="margin: 0px;"> + + **Attribute:** `key_name_override` + + **Accepted Values:** [Dictionary](../pmm/yaml.md#dictionaries) where the key is the key name you want to change and + the value is what to change that key name to. + + ???+ example "Example" + + This example uses `key_name_override` to change the formatting of "France" to "French" so that a collection can + be named "French Cinema" instead of simply "France". + + * This particular example also uses the `title_format` attribute to manipulate the naming convention of the + collections. + + ```yaml + dynamic_collections: + Countries: # mapping name does not matter, just needs to be unique + type: country + title_format: <<key_name>> Cinema + key_name_override: + France: French + ``` + +??? blank "`title_override` - Used to override titles ignoring title formatting.<a class="headerlink" href="#title-override" title="Permanent link">¶</a>" + + <div id="title-override" />Defines how collection titles can be overridden ignoring title formatting. + + <hr style="margin: 0px;"> + + **Attribute:** `title_override` + + **Accepted Values:** [Dictionary](../pmm/yaml.md#dictionaries) where the key is the `dynamic key` you want to change + and the value is what to change the title to. + + ???+ example "Example" + + This example will override the TMDb Star Wars collection which has an TMDb ID of `10` with `Star Wars Universe. + + ```yaml + dynamic_collections: + TMDb Collections: # mapping name does not matter, just needs to be unique + type: tmdb_collection + remove_suffix: "Collection" + title_override: + 10: Star Wars Universe + ``` + +??? blank "`custom_keys` - Used to allow the use of custom keys.<a class="headerlink" href="#custom-keys" title="Permanent link">¶</a>" + + <div id="custom-keys" />Defines if custom keys are allowed. **Defaults to `true`** + + <hr style="margin: 0px;"> + + **Attribute:** `custom_keys` + + **Accepted Values:** `true` or `false` + + ???+ example "Example" + + ```yaml + dynamic_collections: + TMDb Collections: # mapping name does not matter, just needs to be unique + type: tmdb_collection + remove_suffix: "Collection" + custom_keys: false + ``` + +??? blank "`test` - Used to run all collections in this set as tests.<a class="headerlink" href="#test" title="Permanent link">¶</a>" + + <div id="test" />Used to run all collections in this set with `test: true` in each collection definition. + **Defaults to `fales`** + + <hr style="margin: 0px;"> + + **Attribute:** `test` + + **Accepted Values:** `true` or `false` + + ???+ example "Example" + + ```yaml + dynamic_collections: + Genres: # mapping name does not matter just needs to be unique + type: genre + test: true + ``` + +??? blank "`sync` - Used to remove dynamic collections that are no longer in the creation list.<a class="headerlink" href="#sync" title="Permanent link">¶</a>" + + <div id="sync" />Will remove dynamic collections that are no longer in the creation list. **Defaults to `fales`** + + ???+ warning + + The mapping name is added as a label to any collection created using this dynamic collection set and because of + this when `sync` is true all collections with that label not found in this run will be deleted. + + <hr style="margin: 0px;"> + + **Attribute:** `sync` + + **Accepted Values:** `true` or `false` + + ???+ example "Example" + + ```yaml + dynamic_collections: + Trakt Liked Lists: # mapping name does not matter just needs to be unique + type: trakt_liked_lists + sync: true + ``` + +??? blank "`include` - Used to define a specific list of keys to be made into collections.<a class="headerlink" href="#include" title="Permanent link">¶</a>" + + <div id="include" />Define a list of keys to be made into collections. + + ???+ warning + + This cannot be used with `exclude`. + + ???+ tip + + Use with the `other_name` attribute to create a catch-all collection for all keys not in the `include` list or + in any [`addons`](#addons) list. + + <hr style="margin: 0px;"> + + **Attribute:** `include` + + **Accepted Values:** `true` or `false` + + ???+ example "Example" + + ```yaml + dynamic_collections: + Genres: # mapping name does not matter just needs to be unique + type: genre + include: + - Action + - Adventure + - Animation + - Comedy + - Family + - Fantasy + - Horror + - Romance + - Science Fiction + - War + ``` + +??? blank "`other_name` - Used to create an "other" collection.<a class="headerlink" href="#other-name" title="Permanent link">¶</a>" + + <div id="other-name" />Will create an "other" collection when also using the [`include`](#include) by specifying the + "other" collection's name as `other_name`. When defined, all keys not in [`include`](#include) or + [`addons`](#addons) will be combined into this collection. + + <hr style="margin: 0px;"> + + **Attribute:** `other_name` + + **Accepted Values:** String to make the "other" collection's name + + ???+ example "Example" + + ```yaml + dynamic_collections: + Genres: # mapping name does not matter just needs to be unique + type: genre + other_name: Other Genres + include: + - Action + - Adventure + - Animation + - Comedy + - Family + - Fantasy + - Horror + - Romance + - Science Fiction + - War + ``` + +??? blank "`other_template` - Used to define which templates the dynamic other collection uses.<a class="headerlink" href="#other-template" title="Permanent link">¶</a>" + + <div id="other-template" />Used to define which templates are used for the dynamic other collection when they need + to be different from the regular collection templates. + + ???+ tip + + To use an other collection you must be using the [`include`](#include) and [`other_name`](#other-name) + attributes. + + Each template is passed a few template variables you can use. + + * `value`: The list of keys and addons + + * `key`: The dynamic key + + * `key_name`: The key after `key_name_override`, `remove_prefix`, or `remove_suffix` are run on it. + + * `included_keys`: The list of included keys + + * `used_keys`: The list of all keys used (included_keys and their addon keys) + + <hr style="margin: 0px;"> + + **Attribute:** `other_template` + + **Accepted Values:** Name of template or list of templates to use for the other collection only + + ???+ example "Example" + + ```yaml + templates: + Other: + plex_search: + any: + genre: <key> + summary: Other Genres found in the library. + dynamic_collections: + Genres: # mapping name does not matter just needs to be unique + type: genre + other_name: Top Other Genres + other_template: Other + include: + - Action + - Adventure + - Animation + - Comedy + - Family + - Fantasy + - Horror + - Romance + - Science Fiction + - War + ``` + +{% + include-markdown "./dynamic_examples.md" +%} \ No newline at end of file diff --git a/docs/files/dynamic_examples.md b/docs/files/dynamic_examples.md new file mode 100644 index 00000000..75e82357 --- /dev/null +++ b/docs/files/dynamic_examples.md @@ -0,0 +1,259 @@ +## Dynamic Collection Examples + +???+ example + + ```yaml + templates: + genre collection: #(4)! + smart_filter: + limit: 100 + sort_by: critic_rating.desc + all: + genre: <<value>> + dynamic_collections: + Genres: + type: genre #(1)! + exclude: #(2)! + - Talk Show + template: genre collection #(3)! + ``` + + 1. Uses the `genre` type to create dynamic collections based on each genre found in the library. + 2. Uses `exclude` to exclude the `Talk Show` genre. + 3. Uses the template called `genre collection` for these collections. + 4. This is the same template as the default for `genre` but the `limit` has been increased to 100 from 50. + +#### Example: + +* Create dynamic collections based on each genre found in the library (TV and Movies) +* Amend the template to increase the limit from 50 to 100 +* Exclude the "Talk Show" genre +* Name the collection "Top [Genre] Movies" or "Top [Genre] Shows" + +```yaml +templates: + genre collection: + smart_filter: + limit: 100 + sort_by: critic_rating.desc + all: + genre: <<value>> +dynamic_collections: + Genres: # mapping name does not matter just needs to be unique + type: genre + exclude: + - Talk Show + title_format: Top <<key_name>> <<library_type>>s + template: genre collection +``` + + + +#### Example: + +* Create dynamic collections based on each content rating found in the library (TV and Movies) +* Amend the template to increase the limit from 50 to 100 + +```yaml +templates: + content rating collection: + smart_filter: + limit: 100 + sort_by: critic_rating.desc + all: + content_rating: <<value>> +dynamic_collections: + Content Ratings: # mapping name does not matter just needs to be unique + type: content_rating + template: content rating collection +``` + + + +#### Example + +* Create dynamic collections based on each year found in the library (TV and Movies) +* Use the `include` attribute to only show collections for years "2020", "2021" and "2022" +* Name the collection "Best of [Year]" + +```yaml +dynamic_collections: + Years: # mapping name does not matter just needs to be unique + type: year + include: + - 2020 + - 2021 + - 2022 + title_format: Best of <<key_name>> +``` + + + + +#### Example: + +* Create a collection for each decade found in the library (TV and Movies) +* Name the collection "Top [Decade] Movies" +* Rename the `2020` collection name to "Top 2020 Movies (so far)" + +```yaml +dynamic_collections: + Decades: # mapping name does not matter just needs to be unique + type: decade + title_format: Top <<key_name>> <<library_type>>s + title_override: + 2020: Top 2020 Movies (so far) +``` + + + + +#### Example: + +* Create a collection for the top movies from each country found in the library +* Name the collection "Top [Country] Cinema" +* The `key_name_override` attribute is used here in combination with the `title_format` to change the collection name from "France" which would be the default title, to "Top French Cinema" + +```yaml +dynamic_collections: + Countries: # mapping name does not matter just needs to be unique + type: country + title_format: Top <<key_name>> Cinema + key_name_override: + France: French + Germany: German + India: Indian +``` + + + +#### Example: + +* Create a collection for each resolution found in the library +* Name the collection "[Resolution] Movies" +* Combine 480p, 576p and SD into a collection called "SD Movies" +```yaml +dynamic_collections: + Resolutions: # mapping name does not matter just needs to be unique + type: resolution + addons: + 480p: + - 576p + - SD + title_override: + 480p: SD Movies +``` + + + + +#### Example: + +* Create a collection for the top 20 artists for each mood found in the Music library +* Amend the template to increase the limit from 10 to 20 +* Name the collection "Top 20 [Mood] Artists" + +```yaml +templates: + mood collection: + smart_filter: + limit: 20 + sort_by: plays.desc + all: + artist_mood: <<value>> +dynamic_collections: + Moods: # mapping name does not matter just needs to be unique + type: mood + title_format: Top 20 <<key_name>> Artists + template: mood collection +``` + + +#### Example: + +* Create a collection for the top 20 albums for each mood found in the Music library +* Amend the template to increase the limit from 10 to 20 +* Name the collection "Top 20 [Mood] Albums" + +```yaml +templates: + mood collection: + smart_filter: + limit: 20 + sort_by: plays.desc + all: + album_mood: <<value>> +dynamic_collections: + Moods: # mapping name does not matter just needs to be unique + type: album_mood + title_format: Top 20 <<key_name>> Albums + template: mood collection +``` + + +#### Example: + +* Create a collection for the top 100 tracks for each mood found in the Music library +* Amend the template to increase the limit from 50 to 100 +* Name the collection "Top 100 [Mood] Tracks" + +```yaml +templates: + mood collection: + smart_filter: + limit: 100 + sort_by: plays.desc + all: + track_mood: <<value>> +dynamic_collections: + Moods: # mapping name does not matter just needs to be unique + type: track_mood + title_format: Top 100 <<key_name>> Tracks + template: mood collection +``` + + + + +#### Example: + +* Create a collection for the top 10 artists for each style found in the Music library +* Name the collection "Top [Style] Artists" + +```yaml +templates: + style collection: + smart_filter: + limit: 10 + sort_by: plays.desc + all: + artist_style: <<value>> +dynamic_collections: + Styles: # mapping name does not matter just needs to be unique + type: style + title_format: Top <<key_name>> <<library_type>> + template: style collection +``` + + + +#### Example: + +* Create a collection for the top 10 albums for each style found in the Music library +* Name the collection "Top [Style] Albums" + +```yaml +templates: + style collection: + builder_level: album + smart_filter: + limit: 10 + sort_by: plays.desc + all: + album_style: <<value>> +dynamic_collections: + Styles: # mapping name does not matter just needs to be unique + type: album_style + title_format: Top <<key_name>> Albums + template: style collection +``` diff --git a/docs/files/dynamic_types.md b/docs/files/dynamic_types.md new file mode 100644 index 00000000..a4bbe33f --- /dev/null +++ b/docs/files/dynamic_types.md @@ -0,0 +1,1464 @@ +# Dynamic Collection Types & Data + +Every dynamic collection definition requires the `type` attribute which determines the attribute used to dynamically +create collections. + +Depending on the `type` of dynamic collection, `data` is used to specify the options that are required to fulfill the +requirements of creating the collection. + +??? blank "`tmdb_collection` - Collections based on TMDb Collections.<a class="headerlink" href="#tmdb-collection" title="Permanent link">¶</a>" + + <div id="tmdb-collection" />Creates collections based on the TMDb Collections associated with items in the library. + + <hr style="margin: 0px;"> + + **`type` Value:** `tmdb_collection` + + **`data` Value:** Not Used + + **Valid Library Types:** Movies + + **Key Values:** TMDb Collection ID + + **Key Name Value:** TMDb Collection Title + + **Default `title_format`:** `<<key_name>>` + + ??? tip "Default Template (click to expand)" + + ```yaml + default_template: + tmdb_collection_details: <<value>> + minimum_items: 2 + ``` + + ???+ example "Example" + + ```yaml + dynamic_collections: + TMDb Collections: # This name is the mapping name + type: tmdb_collection + remove_suffix: Collection + remove_prefix: The + ``` + +??? blank "`tmdb_popular_people` - Collections based on actors found on [TMDb's Popular People List](https://www.themoviedb.org/person).<a class="headerlink" href="#tmdb-popular-people" title="Permanent link">¶</a>" + + <div id="tmdb-popular-people" />Creates collections based on each actor found on + [TMDb's Popular People List](https://www.themoviedb.org/person). + + <hr style="margin: 0px;"> + + **`type` Value:** `tmdb_popular_people` + + **`data` Value:** Number greater than 0 + + **Valid Library Types:** Movies and Shows + + **Key Values:** TMDb Person ID + + **Key Name Value:** TMDb Person Name + + **Default `title_format`:** `<<key_name>>` + + ??? tip "Default Template (click to expand)" + + ```yaml + default_template: + tmdb_person: <<value>> + plex_search: + all: + actor: tmdb + ``` + + ???+ example "Example" + + Creates a collection for the top 10 popular people according to TMDb. + + ```yaml + dynamic_collections: + TMDb Popular People: # This name is the mapping name + type: tmdb_popular_people + data: 10 + ``` + +??? blank "`original_language` - Collections based on TMDb original languages.<a class="headerlink" href="#original-language" title="Permanent link">¶</a>" + + <div id="original-language" />Creates collections based on the TMDb original language associated with items in the + library. + + <hr style="margin: 0px;"> + + **`type` Value:** `original_language` + + **`data` Value:** Not Used + + **Valid Library Types:** Movies and Shows + + **Key Values:** [ISO 639-1 Code](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) + + **Key Name Value:** ISO Language Name + + **Default `title_format`:** `<<key_name>> <<library_type>>s` + + ??? tip "Default Template (click to expand)" + + ```yaml + default_template: + plex_all: true + filters: + original_language: <<value>> + ``` + + ???+ example "Example" + + ```yaml + dynamic_collections: + TMDb Languages: # This name is the mapping name + type: original_language + ``` + +??? blank "`origin_country` - Collections based on TMDb origin countries.<a class="headerlink" href="#origin-country" title="Permanent link">¶</a>" + + <div id="origin-country" />Creates collections based on the TMDb origin country associated with items in the library. + + <hr style="margin: 0px;"> + + **`type` Value:** `origin_country` + + **`data` Value:** Not Used + + **Valid Library Types:** Shows + + **Key Values:** [ISO 3166-1 alpha-2 country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) + + **Key Name Value:** ISO Country Name + + **Default `title_format`:** `<<key_name>> <<library_type>>s` + + ??? tip "Default Template (click to expand)" + + ```yaml + default_template: + plex_all: true + filters: + origin_country: <<value>> + ``` + + ???+ example "Example" + + ```yaml + dynamic_collections: + TMDb Countries: # This name is the mapping name + type: origin_country + ``` + +??? blank "`trakt_user_lists` - Collections based on Trakt Lists by users.<a class="headerlink" href="#trakt-user-lists" title="Permanent link">¶</a>" + + <div id="trakt-user-lists" />Creates collections for each of the Trakt lists for the specified users. Use `me` to + reference the authenticated user. + + ???+ warning + + Requires [Trakt Authentication](../config/trakt.md) to be configured within the Configuration File. + + <hr style="margin: 0px;"> + + **`type` Value:** `trakt_user_lists` + + **`data` Value:** List of Trakt Users (Use `me` to reference the authenticated user) + + **Valid Library Types:** Movies and Shows + + **Key Values:** Trakt List URL + + **Key Name Value:** Trakt List Title + + **Default `title_format`:** `<<key_name>>` + + ??? tip "Default Template (click to expand)" + + ```yaml + default_template: + trakt_list_details: <<value>> + ``` + + ???+ example "Example" + + ```yaml + dynamic_collections: + Trakt User Lists: # This name is the mapping name + type: trakt_user_lists + data: + - me + - yozoraxcii + ``` + +??? blank "`trakt_liked_lists` - Collections based on liked Trakt Lists.<a class="headerlink" href="#trakt-liked-lists" title="Permanent link">¶</a>" + + <div id="trakt-liked-lists" />Creates collections for each of the Trakt lists that the authenticated user has liked. + + ???+ warning + + Requires [Trakt Authentication](../config/trakt.md) to be configured within the Configuration File. + + <hr style="margin: 0px;"> + + **`type` Value:** `trakt_liked_lists` + + **`data` Value:** Not Used + + **Valid Library Types:** Movies and Shows + + **Key Values:** Trakt List URL + + **Key Name Value:** Trakt List Title + + **Default `title_format`:** `<<key_name>>` + + ??? tip "Default Template (click to expand)" + + ```yaml + default_template: + trakt_list_details: <<value>> + ``` + + ???+ example "Example" + + ```yaml + dynamic_collections: + Trakt Liked Lists: # This name is the mapping name + type: trakt_liked_lists + ``` + +??? blank "`trakt_people_list` - Collections based on people on Trakt Lists.<a class="headerlink" href="#trakt-people-list" title="Permanent link">¶</a>" + + <div id="trakt-people-list" />Creates collections for each of the people found within Trakt lists that the user + specifies. + + ???+ warning + + Requires [Trakt Authentication](../config/trakt.md) to be configured within the Configuration File. + + <hr style="margin: 0px;"> + + **`type` Value:** `trakt_people_list` + + **`data` Value:** List of Trakt URLs + + **Valid Library Types:** Movies and Shows + + **Key Values:** TMDb Person ID + + **Key Name Value:** TMDb Person Name + + **Default `title_format`:** `<<key_name>>` + + ??? tip "Default Template (click to expand)" + + ```yaml + default_template: + tmdb_person: <<value>> + plex_search: + all: + actor: tmdb + ``` + + ???+ example "Example" + + ```yaml + dynamic_collections: + Trakt People Lists: + type: trakt_people_list + data: + - https://trakt.tv/users/ash9001/lists/all-time-top-actors + ``` + +??? blank "`actor` - Collections based on actor credits.<a class="headerlink" href="#actor" title="Permanent link">¶</a>" + + <div id="actor" />Creates collections for each actor found in the library based on given criteria. + + <hr style="margin: 0px;"> + + **`type` Value:** `actor` + + **`data` Value:** [Dictionary](../pmm/yaml.md#dictionaries) of Attributes + + ??? blank "`depth` - Determines how many "top" acting credits per item.<a class="headerlink" href="#actor-depth" title="Permanent link">¶</a>" + + <div id="actor-depth" />This determines how many "top" acting credits there are for each item. Acting credits + are parsed in top billing order. + + **Allowed Values:** Number greater than 0 + + **Default:** `3` + + ??? blank "`minimum` - Determines the minimum number of "top" acting credits.<a class="headerlink" href="#actor-minimum" title="Permanent link">¶</a>" + + <div id="actor-minimum" />Determines the minimum number of "top" acting credits. For a collection for this actor + to be created they must meet the minimum number of "top" acting credits. + + ???+ warning + + The number of "top" acting credits per item is determined by the `depth` value. + + **Allowed Values:** Number greater than 0 + + **Default:** `3` + + ??? blank "`limit` - Determines the maximum number of actor collections to create.<a class="headerlink" href="#actor-limit" title="Permanent link">¶</a>" + + <div id="actor-limit" />Determines the maximum number of actor collections to create. + + **Allowed Values:** Number greater than 0 + + **Default:** None + + **Valid Library Types:** Movies and Shows + + **Key Values:** Person Name + + **Key Name Value:** Person Name + + **Default `title_format`:** `<<key_name>>` + + ??? tip "Default Template (click to expand)" + + ```yaml + default_template: + plex_search: + any: + actor: <<value>> + ``` + + ???+ example "Examples" + + This example creates a collection for each of the top 25 actors who appear in the "top" 5 acting credits of an + item in the library. + + ```yaml + dynamic_collections: + Top Actors: # mapping name does not matter just needs to be unique + type: actor + data: + depth: 5 + limit: 25 + ``` + + This example creates a collection for each of the actors who appear in the "top" 5 acting credits of an item in + the library for at least 20 items. + + ```yaml + dynamic_collections: + Actors: # mapping name does not matter just needs to be unique + type: actor + data: + depth: 5 + minimum: 20 + ``` + +??? blank "`director` - Collections based on directors.<a class="headerlink" href="#director" title="Permanent link">¶</a>" + + <div id="director" />Creates collections for each director found in the library based on given criteria. + + <hr style="margin: 0px;"> + + **`type` Value:** `director` + + **`data` Value:** [Dictionary](../pmm/yaml.md#dictionaries) of Attributes + + ??? blank "`depth` - Determines how many "top" directing credits per item.<a class="headerlink" href="#director-depth" title="Permanent link">¶</a>" + + <div id="director-depth" />This determines how many "top" directing credits there are for each item. Directing + credits are parsed in top billing order. + + **Allowed Values:** Number greater than 0 + + **Default:** `3` + + ??? blank "`minimum` - Determines the minimum number of "top" directing credits.<a class="headerlink" href="#director-minimum" title="Permanent link">¶</a>" + + <div id="director-minimum" />Determines the minimum number of "top" directing credits. For a collection for this + director to be created they must meet the minimum number of "top" directing credits. + + ???+ warning + + The number of "top" directing credits per item is determined by the `depth` value. + + **Allowed Values:** Number greater than 0 + + **Default:** `3` + + ??? blank "`limit` - Determines the maximum number of director collections to create.<a class="headerlink" href="#director-limit" title="Permanent link">¶</a>" + + <div id="director-limit" />Determines the maximum number of director collections to create. + + **Allowed Values:** Number greater than 0 + + **Default:** None + + **Valid Library Types:** Movies + + **Key Values:** Person Name + + **Key Name Value:** Person Name + + **Default `title_format`:** `<<key_name>>` + + ??? tip "Default Template (click to expand)" + + ```yaml + default_template: + plex_search: + any: + director: <<value>> + ``` + + ???+ example "Examples" + + This example creates a collection for the each of the top 5 directors who appear as the "top" directing credits + of movies. + + ```yaml + dynamic_collections: + Top Directors: # mapping name does not matter just needs to be unique + type: director + data: + depth: 1 + limit: 5 + ``` + + This example creates a collection for the each of the directors who appear as the "top" directing credits of + movies the library for at least 10 movies. + + ```yaml + dynamic_collections: + Directors: # mapping name does not matter just needs to be unique + type: director + data: + depth: 1 + minimum: 10 + ``` + +??? blank "`writer` - Collections based on writers.<a class="headerlink" href="#director" title="Permanent link">¶</a>" + + <div id="director" />Creates collections for each writer found in the library based on given criteria. + + <hr style="margin: 0px;"> + + **`type` Value:** `writer` + + **`data` Value:** [Dictionary](../pmm/yaml.md#dictionaries) of Attributes + + ??? blank "`depth` - Determines how many "top" writing credits per item.<a class="headerlink" href="#writer-depth" title="Permanent link">¶</a>" + + <div id="writer-depth" />This determines how many "top" writing credits there are for each item. Writing credits + are parsed in top billing order. + + **Allowed Values:** Number greater than 0 + + **Default:** `3` + + ??? blank "`minimum` - Determines the minimum number of "top" writing credits.<a class="headerlink" href="#writer-minimum" title="Permanent link">¶</a>" + + <div id="writer-minimum" />Determines the minimum number of "top" writing credits. For a collection for this + writer to be created they must meet the minimum number of "top" writing credits. + + ???+ warning + + The number of "top" writing credits per item is determined by the `depth` value. + + **Allowed Values:** Number greater than 0 + + **Default:** `3` + + ??? blank "`limit` - Determines the maximum number of writer collections to create.<a class="headerlink" href="#writer-limit" title="Permanent link">¶</a>" + + <div id="writer-limit" />Determines the maximum number of writer collections to create. + + **Allowed Values:** Number greater than 0 + + **Default:** None + + **Valid Library Types:** Movies + + **Key Values:** Person Name + + **Key Name Value:** Person Name + + **Default `title_format`:** `<<key_name>>` + + ??? tip "Default Template (click to expand)" + + ```yaml + default_template: + plex_search: + any: + writer: <<value>> + ``` + + ???+ example "Examples" + + This example creates a collection for the each of the top 5 writers who appear as the "top" writing credits of + movies. + + ```yaml + dynamic_collections: + Top Writers: # mapping name does not matter just needs to be unique + type: writer + data: + depth: 1 + limit: 5 + ``` + + This example creates a collection for the each of the writers who appear as the "top" writing credits of movies + the library for at least 10 movies. + + ```yaml + dynamic_collections: + Writers: # mapping name does not matter just needs to be unique + type: writer + data: + depth: 1 + minimum: 10 + ``` + +??? blank "`producer` - Collections based on producers.<a class="headerlink" href="#director" title="Permanent link">¶</a>" + + <div id="director" />Creates collections for each producer found in the library based on given criteria. + + <hr style="margin: 0px;"> + + **`type` Value:** `producer` + + **`data` Value:** [Dictionary](../pmm/yaml.md#dictionaries) of Attributes + + ??? blank "`depth` - Determines how many "top" producing credits per item.<a class="headerlink" href="#producer-depth" title="Permanent link">¶</a>" + + <div id="producer-depth" />This determines how many "top" producing credits there are for each item. Producing + credits are parsed in top billing order. + + **Allowed Values:** Number greater than 0 + + **Default:** `3` + + ??? blank "`minimum` - Determines the minimum number of "top" producing credits.<a class="headerlink" href="#producer-minimum" title="Permanent link">¶</a>" + + <div id="producer-minimum" />Determines the minimum number of "top" producing credits. For a collection for this + producer to be created they must meet the minimum number of "top" producing credits. + + ???+ warning + + The number of "top" producing credits per item is determined by the `depth` value. + + **Allowed Values:** Number greater than 0 + + **Default:** `3` + + ??? blank "`limit` - Determines the maximum number of producer collections to create.<a class="headerlink" href="#producer-limit" title="Permanent link">¶</a>" + + <div id="producer-limit" />Determines the maximum number of producer collections to create. + + **Allowed Values:** Number greater than 0 + + **Default:** None + + **Valid Library Types:** Movies + + **Key Values:** Person Name + + **Key Name Value:** Person Name + + **Default `title_format`:** `<<key_name>>` + + ??? tip "Default Template (click to expand)" + + ```yaml + default_template: + plex_search: + any: + producer: <<value>> + ``` + + ???+ example "Examples" + + This example creates a collection for the each of the top 5 producers who appear as the "top" producing credits + of movies. + + ```yaml + dynamic_collections: + Top Producers: # mapping name does not matter just needs to be unique + type: producer + data: + depth: 1 + limit: 5 + ``` + + This example creates a collection for the each of the producers who appear as the "top" producing credits of + movies the library for at least 10 movies. + + ```yaml + Producers: # mapping name does not matter just needs to be unique + type: producers + data: + depth: 1 + minimum: 10 + ``` + +??? blank "`genre` - Collections based on genres.<a class="headerlink" href="#genre" title="Permanent link">¶</a>" + + <div id="genre" />Creates collections for each genre found in the library. + + <hr style="margin: 0px;"> + + **`type` Value:** `genre` + + **`data` Value:** Not Used + + **Valid Library Types:** Movies, Shows, Music, and Video + + **Key Values:** Genre + + **Key Name Value:** Genre + + **Default `title_format`:** `Top <<key_name>> <<library_type>>s` + + ??? tip "Default Template (click to expand)" + + ```yaml + default_template: + smart_filter: + limit: 50 + sort_by: critic_rating.desc + any: + genre: <<value>> + ``` + + ???+ example "Example" + + This example creates collections based on each genre found in the library. + + ```yaml + dynamic_collections: + Genres: # mapping name does not matter just needs to be unique + type: genre + ``` + +??? blank "`album_genre` - Collections based on album genres.<a class="headerlink" href="#album-genre" title="Permanent link">¶</a>" + + <div id="album-genre" />Creates album collections for each genre associated with albums found in the music library. + + <hr style="margin: 0px;"> + + **`type` Value:** `genre` + + **`data` Value:** Not Used + + **Valid Library Types:** Music + + **Key Values:** Genre + + **Key Name Value:** Genre + + **Default `title_format`:** `Top <<key_name>> Albums` + + ??? tip "Default Template (click to expand)" + + ```yaml + default_template: + builder_level: album + smart_filter: + limit: 50 + sort_by: plays.desc + any: + album_genre: <<value>> + ``` + + ???+ example "Example" + + This example creates album collections for each genre associated with albums found in the music library. + + ```yaml + dynamic_collections: + Genres: # mapping name does not matter just needs to be unique + type: album_genre + ``` + +??? blank "`content_rating` - Collections based on content ratings.<a class="headerlink" href="#content-rating" title="Permanent link">¶</a>" + + <div id="content-rating" />Creates collections for each content rating found in the library. + + <hr style="margin: 0px;"> + + **`type` Value:** `content_rating` + + **`data` Value:** Not Used + + **Valid Library Types:** Movies, Shows, and Video + + **Key Values:** Content Rating + + **Key Name Value:** Content Rating + + **Default `title_format`:** `Top <<key_name>> <<library_type>>s` + + ??? tip "Default Template (click to expand)" + + ```yaml + default_template: + smart_filter: + limit: 50 + sort_by: critic_rating.desc + any: + content_rating: <<value>> + ``` + + ???+ example "Example" + + This example creates collections based on each genre found in the library. + + ```yaml + dynamic_collections: + Content Ratings: # mapping name does not matter just needs to be unique + type: content_rating + ``` + +??? blank "`year` - Collections based on content ratings.<a class="headerlink" href="#year" title="Permanent link">¶</a>" + + <div id="year" />Creates collections for each year found in the library. + + <hr style="margin: 0px;"> + + **`type` Value:** `year` + + **`data` Value:** Not Used + + **Valid Library Types:** Movies and Shows + + **Key Values:** Year + + **Key Name Value:** Year + + **Default `title_format`:** `Best <<library_type>>s of <<key_name>>` + + ??? tip "Default Template (click to expand)" + + ```yaml + default_template: + smart_filter: + limit: 50 + sort_by: critic_rating.desc + any: + year: <<value>> + ``` + + ???+ example "Example" + + This example creates collections based on each year found in the library. + + ```yaml + dynamic_collections: + Years: # mapping name does not matter just needs to be unique + type: year + ``` + +??? blank "`episode_year` - Collections based on content ratings.<a class="headerlink" href="#episode-year" title="Permanent link">¶</a>" + + <div id="episode-year" />Creates collections for each year associated with episodes found in the library. + + <hr style="margin: 0px;"> + + **`type` Value:** `episode_year` + + **`data` Value:** Not Used + + **Valid Library Types:** Shows + + **Key Values:** Year + + **Key Name Value:** Year + + **Default `title_format`:** `Best Episodes of <<key_name>>` + + ??? tip "Default Template (click to expand)" + + ```yaml + default_template: + builder_level: episode + smart_filter: + limit: 50 + sort_by: critic_rating.desc + any: + year: <<value>> + ``` + + ???+ example "Example" + + This example creates collections based on each year found in the library. + + ```yaml + dynamic_collections: + Years: # mapping name does not matter just needs to be unique + type: year + ``` + +??? blank "`decade` - Collections based on decades.<a class="headerlink" href="#decade" title="Permanent link">¶</a>" + + <div id="decade" />Creates collections for each decade found in the library. + + <hr style="margin: 0px;"> + + **`type` Value:** `decade` + + **`data` Value:** Not Used + + **Valid Library Types:** Movies and Shows + + **Key Values:** Decade + + **Key Name Value:** Decade with an `s` at the end + + **Default `title_format`:** `Best <<library_type>> of the <<key_name>>` + + ??? tip "Default Templates (click to expand)" + + === "Movie Default" + + ```yaml + default_template: + smart_filter: + limit: 50 + sort_by: critic_rating.desc + any: + decade: <<value>> + ``` + + === "Show Default" + + Shows don't inherently have a decade attribute so pmm just passes all years from the decade as a list. + + ```yaml + default_template: + smart_filter: + limit: 50 + sort_by: critic_rating.desc + any: + year: <<value>> + ``` + + ???+ example "Example" + + This example creates collections based on each decade found in the library. + + ```yaml + dynamic_collections: + Decades: # mapping name does not matter just needs to be unique + type: decade + ``` + +??? blank "`country` - Collections based on countries.<a class="headerlink" href="#country" title="Permanent link">¶</a>" + + <div id="country" />Creates collections for each country found in the library. + + <hr style="margin: 0px;"> + + **`type` Value:** `country` + + **`data` Value:** Not Used + + **Valid Library Types:** Movies, Music, Video + + **Key Values:** Country + + **Key Name Value:** Country + + **Default `title_format`:** `Top <<key_name>> <<library_type>>s` + + ??? tip "Default Template (click to expand)" + + ```yaml + default_template: + smart_filter: + limit: 50 + sort_by: critic_rating.desc + any: + country: <<value>> + ``` + + ???+ example "Example" + + This example creates collections based on each country found in the library. + + ```yaml + dynamic_collections: + Countries: # mapping name does not matter just needs to be unique + type: country + ``` + +??? blank "`resolution` - Collections based on resolutions.<a class="headerlink" href="#resolution" title="Permanent link">¶</a>" + + <div id="resolution" />Creates collections for each resolution found in the library. + + <hr style="margin: 0px;"> + + **`type` Value:** `resolution` + + **`data` Value:** Not Used + + **Valid Library Types:** Movies and Shows + + **Key Values:** Resolution + + **Key Name Value:** Resolution + + **Default `title_format`:** `<<key_name>> <<library_type>>s` + + ??? tip "Default Template (click to expand)" + + ```yaml + default_template: + smart_filter: + limit: 50 + sort_by: title.asc + any: + resolution: <<value>> + ``` + + ???+ example "Example" + + This example creates collections based on each resolution found in the library. + + ```yaml + dynamic_collections: + Resolutions: # mapping name does not matter just needs to be unique + type: resolution + ``` + +??? blank "`subtitle_language` - Collections based on subtitle languages.<a class="headerlink" href="#subtitle-language" title="Permanent link">¶</a>" + + <div id="subtitle-language" />Creates collections for each subtitle language found in the library. + + <hr style="margin: 0px;"> + + **`type` Value:** `subtitle_language` + + **`data` Value:** Not Used + + **Valid Library Types:** Movies and Shows + + **Key Values:** [ISO 639-1 Code](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) + + **Key Name Value:** ISO Language Name + + **Default `title_format`:** `Top <<key_name>> <<library_type>>s` + + ??? tip "Default Template (click to expand)" + + ```yaml + default_template: + smart_filter: + limit: 50 + sort_by: critic_rating.asc + any: + subtitle_language: <<value>> + ``` + + ???+ example "Example" + + This example creates collections based on each subtitle language found in the library. + + ```yaml + dynamic_collections: + Subtitle Languages: # mapping name does not matter just needs to be unique + type: subtitle_language + ``` + +??? blank "`audio_language` - Collections based on audio languages.<a class="headerlink" href="#audio-language" title="Permanent link">¶</a>" + + <div id="audio-language" />Creates collections for each audio language found in the library. + + <hr style="margin: 0px;"> + + **`type` Value:** `audio_language` + + **`data` Value:** Not Used + + **Valid Library Types:** Movies and Shows + + **Key Values:** [ISO 639-1 Code](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) + + **Key Name Value:** ISO Language Name + + **Default `title_format`:** `Top <<key_name>> <<library_type>>s` + + ??? tip "Default Template (click to expand)" + + ```yaml + default_template: + smart_filter: + limit: 50 + sort_by: critic_rating.asc + any: + audio_language: <<value>> + ``` + + ???+ example "Example" + + This example creates collections based on each audio language found in the library. + + ```yaml + dynamic_collections: + Audio Languages: # mapping name does not matter just needs to be unique + type: audio_language + ``` + +??? blank "`studio` - Collections based on studios.<a class="headerlink" href="#studio" title="Permanent link">¶</a>" + + <div id="studio" />Creates collections for each studio found in the library. + + <hr style="margin: 0px;"> + + **`type` Value:** `studio` + + **`data` Value:** Not Used + + **Valid Library Types:** Movies and Shows + + **Key Values:** Studio + + **Key Name Value:** Studio + + **Default `title_format`:** `Top <<key_name>> <<library_type>>s` + + ??? tip "Default Template (click to expand)" + + ```yaml + default_template: + smart_filter: + limit: 50 + sort_by: critic_rating.asc + any: + studio: <<value>> + ``` + + ???+ example "Example" + + This example creates collections based on each studio found in the library. + + ```yaml + dynamic_collections: + Studios: # mapping name does not matter just needs to be unique + type: studio + ``` + +??? blank "`edition` - Collections based on editions.<a class="headerlink" href="#edition" title="Permanent link">¶</a>" + + <div id="edition" />Creates collections for each edition found in the library. + + <hr style="margin: 0px;"> + + **`type` Value:** `edition` + + **`data` Value:** Not Used + + **Valid Library Types:** Movies + + **Key Values:** Edition + + **Key Name Value:** Edition + + **Default `title_format`:** `Top <<key_name>> <<library_type>>s` + + ??? tip "Default Template (click to expand)" + + ```yaml + default_template: + smart_filter: + limit: 50 + sort_by: critic_rating.asc + any: + edition: <<value>> + ``` + + ???+ example "Example" + + This example creates collections based on each edition found in the library. + + ```yaml + dynamic_collections: + Editions: # mapping name does not matter just needs to be unique + type: edition + ``` + +??? blank "`network` - Collections based on networks.<a class="headerlink" href="#network" title="Permanent link">¶</a>" + + <div id="network" />Creates collections for each network found in the library. + + <hr style="margin: 0px;"> + + **`type` Value:** `network` + + **`data` Value:** Not Used + + **Valid Library Types:** Shows + + **Key Values:** Network + + **Key Name Value:** Network + + **Default `title_format`:** `Top <<key_name>> <<library_type>>s` + + ??? tip "Default Template (click to expand)" + + ```yaml + default_template: + smart_filter: + limit: 50 + sort_by: critic_rating.asc + any: + network: <<value>> + ``` + + ???+ example "Example" + + This example creates collections based on each network found in the library. + + ```yaml + dynamic_collections: + Networks: # mapping name does not matter just needs to be unique + type: network + ``` + +??? blank "`mood` - Collections based on artist moods.<a class="headerlink" href="#mood" title="Permanent link">¶</a>" + + <div id="mood" />Creates collections for each mood associated with an artist found in the library. + + <hr style="margin: 0px;"> + + **`type` Value:** `mood` + + **`data` Value:** Not Used + + **Valid Library Types:** Music + + **Key Values:** Mood + + **Key Name Value:** Mood + + **Default `title_format`:** `Most Played <<key_name>> Artists` + + ??? tip "Default Template (click to expand)" + + ```yaml + default_template: + smart_filter: + limit: 10 + sort_by: plays.desc + any: + artist_mood: <<value>> + ``` + + ???+ example "Example" + + This example creates collections based on each artist mood found in the library. + + ```yaml + dynamic_collections: + Moods: # mapping name does not matter just needs to be unique + type: mood + ``` + +??? blank "`album_mood` - Collections based on album moods.<a class="headerlink" href="#album-mood" title="Permanent link">¶</a>" + + <div id="album-mood" />Creates collections for each mood associated with an album found in the library. + + <hr style="margin: 0px;"> + + **`type` Value:** `album_mood` + + **`data` Value:** Not Used + + **Valid Library Types:** Music + + **Key Values:** Mood + + **Key Name Value:** Mood + + **Default `title_format`:** `Most Played <<key_name>> Albums` + + ??? tip "Default Template (click to expand)" + + ```yaml + default_template: + builder_level: album + smart_filter: + limit: 10 + sort_by: plays.desc + any: + album_mood: <<value>> + ``` + + ???+ example "Example" + + This example creates collections based on each album mood found in the library. + + ```yaml + dynamic_collections: + Moods: # mapping name does not matter just needs to be unique + type: album_mood + ``` + +??? blank "`track_mood` - Collections based on track moods.<a class="headerlink" href="#track-mood" title="Permanent link">¶</a>" + + <div id="track-mood" />Creates collections for each mood associated with a track found in the library. + + <hr style="margin: 0px;"> + + **`type` Value:** `track_mood` + + **`data` Value:** Not Used + + **Valid Library Types:** Music + + **Key Values:** Mood + + **Key Name Value:** Mood + + **Default `title_format`:** `Most Played <<key_name>> Tracks` + + ??? tip "Default Template (click to expand)" + + ```yaml + default_template: + builder_level: track + smart_filter: + limit: 50 + sort_by: plays.desc + any: + track_mood: <<value>> + ``` + + ???+ example "Example" + + This example creates collections based on each track mood found in the library. + + ```yaml + dynamic_collections: + Moods: # mapping name does not matter just needs to be unique + type: track_mood + ``` + +??? blank "`style` - Collections based on artist styles.<a class="headerlink" href="#style" title="Permanent link">¶</a>" + + <div id="style" />Creates collections for each style associated with an artist found in the library. + + <hr style="margin: 0px;"> + + **`type` Value:** `style` + + **`data` Value:** Not Used + + **Valid Library Types:** Music + + **Key Values:** Style + + **Key Name Value:** Style + + **Default `title_format`:** `Most Played <<key_name>> Artists` + + ??? tip "Default Template (click to expand)" + + ```yaml + default_template: + smart_filter: + limit: 10 + sort_by: plays.desc + any: + artist_style: <<value>> + ``` + + ???+ example "Example" + + This example creates collections based on each artist style found in the library. + + ```yaml + dynamic_collections: + Styles: # mapping name does not matter just needs to be unique + type: style + ``` + +??? blank "`album_style` - Collections based on album styles.<a class="headerlink" href="#album-style" title="Permanent link">¶</a>" + + <div id="album-style" />Creates collections for each style associated with an album found in the library. + + <hr style="margin: 0px;"> + + **`type` Value:** `album_style` + + **`data` Value:** Not Used + + **Valid Library Types:** Music + + **Key Values:** Style + + **Key Name Value:** Style + + **Default `title_format`:** `Most Played <<key_name>> Artists` + + ??? tip "Default Template (click to expand)" + + ```yaml + default_template: + builder_level: album + smart_filter: + limit: 10 + sort_by: plays.desc + any: + album_style: <<value>> + ``` + + ???+ example "Example" + + This example creates collections based on each album style found in the library. + + ```yaml + dynamic_collections: + Styles: # mapping name does not matter just needs to be unique + type: album_style + ``` + +??? blank "`number` - Collections based on defined numbers.<a class="headerlink" href="#number" title="Permanent link">¶</a>" + + <div id="number" />Creates collections for each number based on given criteria. + + <hr style="margin: 0px;"> + + **`type` Value:** `number` + + **`data` Value:** [Dictionary](../pmm/yaml.md#dictionaries) of Attributes + + ??? blank "`starting` - Determines the starting number.<a class="headerlink" href="#number-starting" title="Permanent link">¶</a>" + + <div id="number-starting" />This determines the starting number of collections to create. + + **Allowed Values:** Number greater than 0, `current_year`, or relative year `current_year-#` (`#` is the number of years back from the current year) + + **Default:** `0` + + ??? blank "`ending` - Determines the ending number.<a class="headerlink" href="#number-ending" title="Permanent link">¶</a>" + + <div id="number-ending" />This determines the ending number of collections to create. + + **Allowed Values:** Number greater than 1, `current_year`, or relative year `current_year-#` (`#` is the number of years back from the current year) + + **Default:** `1` + + ??? blank "`increment` - Determines amount incremented.<a class="headerlink" href="#number-increment" title="Permanent link">¶</a>" + + <div id="number-increment" />Determines the amount incremented from one collection to the other. + + **Allowed Values:** Number greater than 0 + + **Default:** `1` + + **Valid Library Types:** Movies, Shows, Music, and Video + + **Key Values:** Number + + **Key Name Value:** Number + + **Default `title_format`:** `<<key_name>>` + + ???+ warning + + There's no default template for this type one has to be specified. + + ???+ example "Example" + + This example create a collection for the Oscar Winner by Year for the last 5 years and names the collection + "Oscars Winners [Number]". + + ```yaml + templates: + Oscars: + summary: Academy Awards (Oscars) Winners for <<key>> + imdb_search: + release.after: <<key>>-01-01 + release.before: <<key>>-12-31 + event.winning: oscar_picture, oscar_director + sort_by: popularity.asc + sync_mode: sync + collection_order: custom + dynamic_collections: + Oscars Winners Awards: + type: number + sync: true + data: + starting: current_year-5 + ending: current_year + title_format: Oscars Winners <<key_name>> + template: + - Oscars + ``` + +??? blank "`custom` - Collections based on given values.<a class="headerlink" href="#custom" title="Permanent link">¶</a>" + + <div id="custom" />Creates collections for each custom `dynamic key: key_name` pair defined. + + <hr style="margin: 0px;"> + + **`type` Value:** `custom` + + **`data` Value:** [Dictionary](../pmm/yaml.md#dictionaries) with the keys being the `dynamic key` and the values + being the `key name` + + **Valid Library Types:** Movies, Shows, Music, and Video + + **Key Values:** `dynamic key` + + **Key Name Value:** `key_name` + + **Default `title_format`:** `<<key_name>>` + + ???+ warning + + There's no default template for this type one has to be specified. + + ???+ example "Example" + + This example creates a collection for the various Streaming Services and names them "[Key Name] Movies". + + ```yaml + templates: + streaming: + cache_builders: 1 + smart_label: release.desc + sync_mode: sync + mdblist_list: https://mdblist.com/lists/plexmetamanager/<<key>>-movies + url_poster: https://raw.githubusercontent.com/meisnate12/Plex-Meta-Manager-Images/master/streaming/<<key_name_encoded>>.jpg + + dynamic_collections: + Streaming: + type: custom + data: + all-4: All 4 + appletv: Apple TV+ + bet: BET+ + britbox: BritBox + disney: Disney+ + max: Max + hulu: Hulu + netflix: Netflix + now: NOW + paramount: Paramount+ + peacock: Peacock + amazon-prime-video: Prime Video + title_format: <<key_name>> Movies + template: + - streaming + - shared + ``` + +{% + include-markdown "./dynamic_examples.md" +%} \ No newline at end of file diff --git a/docs/builders/filters.md b/docs/files/filters.md similarity index 99% rename from docs/builders/filters.md rename to docs/files/filters.md index a795e008..cb48ad55 100644 --- a/docs/builders/filters.md +++ b/docs/files/filters.md @@ -4,7 +4,7 @@ Filters allow for you to filter every item added to the collection/overlay/playl ## Using Filters -Filters cannot do anything alone they require the use of at least one [Builder](overview.md) to function. +Filters cannot do anything alone they require the use of at least one [Builder](builders/overview.md) to function. You can have multiple filters in each set but an item must match at least one value from **each** filter to not be ignored. The values for each must match what Plex has including special characters in order to match. @@ -34,7 +34,7 @@ You can use the `plex_all: true` builder to filter from your entire library. ???+ warning - Filters can be very slow, particularly on larger libraries. Try to build or narrow your items using a [Smart Label Collection](smart.md#smart-label), [Plex Search](plex.md#plex-search) or another [Builder](overview.md) if possible. + Filters can be very slow, particularly on larger libraries. Try to build or narrow your items using a [Smart Label Collection](builders/smart.md#smart-label), [Plex Search](builders/plex.md#plex-search) or another [Builder](overview.md) if possible. ## String Filters @@ -211,7 +211,7 @@ Special Filters each have their own set of rules for how they're used. ## Table Annotations -<sup>**1**</sup> Filters using the special `episodes`/`tracks` [filter](#special-filters) with the [default percent](details/definition.md). +<sup>**1**</sup> Filters using the special `episodes`/`tracks` [filter](#special-filters) with the [default percent](settings.md). <sup>**2**</sup> Also filters out missing movies/shows from being added to Radarr/Sonarr. These Values also cannot use the `count` modifiers. diff --git a/docs/builders/details/display.png b/docs/files/images/display.png similarity index 100% rename from docs/builders/details/display.png rename to docs/files/images/display.png diff --git a/docs/config/data/example_4k.png b/docs/files/images/example_4k.png similarity index 100% rename from docs/config/data/example_4k.png rename to docs/files/images/example_4k.png diff --git a/docs/config/data/example_4khdr.png b/docs/files/images/example_4khdr.png similarity index 100% rename from docs/config/data/example_4khdr.png rename to docs/files/images/example_4khdr.png diff --git a/docs/config/data/example_addonoffset.png b/docs/files/images/example_addonoffset.png similarity index 100% rename from docs/config/data/example_addonoffset.png rename to docs/files/images/example_addonoffset.png diff --git a/docs/config/data/example_backdrop.png b/docs/files/images/example_backdrop.png similarity index 100% rename from docs/config/data/example_backdrop.png rename to docs/files/images/example_backdrop.png diff --git a/docs/config/data/example_blur.png b/docs/files/images/example_blur.png similarity index 100% rename from docs/config/data/example_blur.png rename to docs/files/images/example_blur.png diff --git a/docs/config/data/example_episodetext.png b/docs/files/images/example_episodetext.png similarity index 100% rename from docs/config/data/example_episodetext.png rename to docs/files/images/example_episodetext.png diff --git a/docs/config/data/example_positional.png b/docs/files/images/example_positional.png similarity index 100% rename from docs/config/data/example_positional.png rename to docs/files/images/example_positional.png diff --git a/docs/config/data/example_specialtext.png b/docs/files/images/example_specialtext.png similarity index 100% rename from docs/config/data/example_specialtext.png rename to docs/files/images/example_specialtext.png diff --git a/docs/config/data/example_specialtextmodifier.png b/docs/files/images/example_specialtextmodifier.png similarity index 100% rename from docs/config/data/example_specialtextmodifier.png rename to docs/files/images/example_specialtextmodifier.png diff --git a/docs/config/data/example_text.png b/docs/files/images/example_text.png similarity index 100% rename from docs/config/data/example_text.png rename to docs/files/images/example_text.png diff --git a/docs/config/data/myoverlays_example.png b/docs/files/images/myoverlays_example.png similarity index 100% rename from docs/config/data/myoverlays_example.png rename to docs/files/images/myoverlays_example.png diff --git a/docs/builders/details/radarr.png b/docs/files/images/radarr.png similarity index 100% rename from docs/builders/details/radarr.png rename to docs/files/images/radarr.png diff --git a/docs/builders/details/sonarr.png b/docs/files/images/sonarr.png similarity index 100% rename from docs/builders/details/sonarr.png rename to docs/files/images/sonarr.png diff --git a/docs/builders/details/item_metadata.md b/docs/files/item_updates.md similarity index 100% rename from docs/builders/details/item_metadata.md rename to docs/files/item_updates.md diff --git a/docs/files/metadata.md b/docs/files/metadata.md new file mode 100644 index 00000000..5efb8a9a --- /dev/null +++ b/docs/files/metadata.md @@ -0,0 +1,480 @@ +# Metadata Files + +You can have the script edit the metadata of Items by adding them to the `metadata` mapping of a Metadata File. + +??? example "Examples of multiple metadata edits in each library type (click to expand)" + === "Movies" + ```yaml + metadata: + Godzilla (1954): + match: + title: Godzilla + year: 1954 + content_rating: R + Godzilla (1998): + match: + title: Godzilla + year: 1998 + sort_title: Godzilla 03 + content_rating: PG-13 + Shin Godzilla: + sort_title: Godzilla 06 + content_rating: R + Godzilla 1985: + content_rating: PG + "Godzilla 2000: Millennium": + originally_available: 1999-08-18 + Godzilla Against MechaGodzilla: + originally_available: 2002-03-23 + Godzilla Raids Again: + content_rating: G + originally_available: 1955-05-21 + Godzilla vs. Biollante: + content_rating: PG + Godzilla vs. Destoroyah: + content_rating: PG + originally_available: 1995-01-19 + Godzilla vs. Gigan: + content_rating: G + originally_available: 1972-09-14 + Godzilla vs. Hedorah: + content_rating: G + originally_available: 1971-04-01 + Godzilla vs. King Ghidorah: + content_rating: PG + originally_available: 1991-04-28 + Godzilla vs. Mechagodzilla: + content_rating: G + originally_available: 1974-03-24 + Godzilla vs. Mechagodzilla II: + content_rating: PG + Godzilla vs. Megaguirus: + content_rating: PG + originally_available: 2000-08-31 + Godzilla vs. Megalon: + content_rating: G + originally_available: 1973-03-17 + Godzilla vs. Mothra: + content_rating: PG + originally_available: 1992-04-28 + Godzilla vs. SpaceGodzilla: + content_rating: PG + originally_available: 1994-01-19 + Godzilla, King of the Monsters!: + content_rating: G + "Godzilla, Mothra and King Ghidorah: Giant Monsters All-Out Attack": + content_rating: PG + originally_available: 2001-08-31 + "Godzilla: Final Wars": + content_rating: PG + originally_available: 2004-12-13 + "Godzilla: Tokyo S.O.S.": + originally_available: 2003-12-14 + Halloween (Rob Zombie): + match: + title: + - Halloween (Rob Zombie) + - Halloween + year: 2007 + "Halo 4: Forward Unto Dawn": + match: + title: + - Halo 4: Forward Unto Dawn + - Halo 4 Forward Unto Dawn + tmdb_show: 56295 + content_rating: R + ``` + + === "TV Shows" + ```yaml + metadata: + "Avatar: The Last Airbender": + sort_title: Avatar 01 + seasons: + 1: + title: "Book One: Water" + summary: >- + After a lapse of 100 years, the Avatar-spiritual master of the elements-has returned. And just in + the nick of time. The Four Nations (Water, Earth, Fire, and Air) have become unbalanced. The Fire + Nation wants to rule the world, and its first conquest will be the Northern Water Tribe. It's up to + a 12-year-old Airbender named Aang to find a way to stop it. Join Aang, Katara, Sokka, Momo, and + Appa as they head north on the adventure of a lifetime. + episodes: + 1: + user_rating: 9.1 + 2: + title: "Book Two: Earth" + summary: >- + Avatar Aang continues his quest to master the four elements before the end of summer. Together with + Katara, Sokka, Momo, and Appa, he journeys across the Earth Kingdom in search of an Earthbending + mentor. Along the way, he confronts Princess Azula, treacherous daughter of Firelord Ozai and + sister to Prince Zuko. More powerful than her brother, Azula will stop nothing to defeat the Avatar. + But Aang and the gang find plenty of Earth Kingdom allies to help them along the way. From the swamps + of the South to the Earth King's palace, Avatar: Book 2 is an adventure like no other. + 3: + title: "Book Three: Fire" + summary: >- + Having survived the terrible battle with Azula, Aang faces new challenges as he and his brave + friends secretly enter the Fire Nation. Their quest is to find and defeat Firelord Ozai. Along + the way, they discover that Ozai has plans of his own. The leader of the Fire Nation intends to + use the massive power of Sozin's comet to spread his dominion permanently across the four nations. + Short on time, Aang has a lot of bending to learn and no master to help him learn it. However, his + friends are there to help, and he finds unexpected allies deep in the heart of the Fire Nation. In + the spectacular four-part conclusion, Aang must fulfill his destiny and become a fully realized + Avatar, or watch the world go up in smoke. + episodes: + 21: + summary: The Epic Series Final of Avatar The Last Airbender + "Avatar: The Legend of Korra": + match: + title: + - "Avatar: The Legend of Korra" + - The Legend of Korra + sort_title: Avatar 02 + original_title: The Legend of Korra + seasons: + 1: + title: "Book One: Air" + 2: + title: "Book Two: Spirits" + 3: + title: "Book Three: Change" + 4: + title: "Book Four: Balance" + ``` + + === "Music" + ```yaml + metadata: + "Linkin Park": + country: "United States of America" + album_sorting: newest + albums: + "Hybrid Theory": + originally_available: "2000-10-24" + tracks: + 1: + user_rating: 5 + "One Step Closer": + user_rating: 5 + "Meteora": + originally_available: "2003-03-25" + album_sorting: newest + tracks: + 9: + user_rating: 5 + "Numb": + user_rating: 5 + "Minutes To Midnight": + originally_available: "2007-05-14" + ``` + +## Matching Items + +The `match` attribute is used to match movies within Plex to that definition within the Metadata file. One definition +can match and edit multiple items. The available matching options are outlined below. + +=== "Movies" + | <div style="width:165px">Attribute</div> | Description | + |:-----------------------------------------|:--------------------------------------------------------------------------------------------------------------| + | `title`<sup>1</sup> | Only matches movies that exactly match the movie's Title.<br>Can be a list (only one needs to match). | + | `year` | Only matches movies that were released in the given year. | + | `mapping_id`<sup>2</sup> | Only matches movies that have the given TMDb or IMDb ID. | + | `edition`<sup>3</sup> | Only matches movies that exactly match the movie's Edition.<br>Can be a list (only one needs to match). | + | `edition_contains`<sup>3</sup> | Only matches where the movie's Edition contains the given string.<br>Can be a list (only one needs to match). | + | `blank_edition`<sup>3</sup> | Only matches movies that have no Edition.<br>**Default:** `false`<br>**Values:** `true` or `false` | + +=== "TV Shows" + | <div style="width:165px">Attribute</div> | Allowed Values | + |:-----------------------------------------|:----------------------------------------------------------------------------------------------------| + | `title`<sup>1</sup> | Only matches shows that exactly match the show's Title.<br>Can be a list (only one needs to match). | + | `year` | Only matches shows that were released in the given year. | + | `mapping_id`<sup>2</sup> | Only matches shows that have the given TVDb or IMDb ID. | + +=== "Music" + | <div style="width:165px">Attribute</div> | Allowed Values | + |:-----------------------------------------|:--------------------------------------------------------------------------------------------------------| + | `title`<sup>1</sup> | Only matches artists that exactly match the artist's Title.<br>Can be a list (only one needs to match). | + +1. When `title` is not provided and the mapping name was not specified as an ID, the default behaviour is to use the +mapping name as `title` for matching. + +2. When `mapping_id` is not provided and the mapping name was specified as an ID, the default behaviour is to use the +mapping name as `mapping_id` for matching. + +3. When the server does not have a Plex Pass then the Edition Field is not accessible. In this scenario, PMM will check +the movie's filepath for `{edition-...}` to determine what the edition is. + +??? example "Matching Examples (click to expand)" + === "Movies" + #### Example 1 - `title` and `mapping_id` + + The below example shows how `title` and `mapping_id` can be used to match movies. + + ```yaml + metadata: + movie1: # Matches via the title "Star Wars" + match: + title: Star Wars + edits... + movie2: # Matches via TMDb ID: 299534 + match: + mapping_id: 299534 + edits... + movie3: # Matches via IMDb ID: tt4154756 + match: + mapping_id: tt4154756 + edits... + movie4: # Matches via the title "9" + match: + title: 9 + edits... + ``` + + The Mapping Name can also be used to reduce line-count, as shown here: + + ```yaml + metadata: + Star Wars: # Matches via the title "Star Wars" + edits... + 299534: # Matches via TMDb ID: 299534 + edits... + tt4154756: # Matches via IMDb ID: tt4154756 + edits... + "9": # Matches via the title "9" + edits... + ``` + + **Note:** to search for a movie titled with a number from the mapping name you must surround the number in + quotes like in the example below. Otherwise, it will look for the movie associated with that TMDb ID. + + #### Example 2 - `title` and `year` + + The below example shows how `title` and `year` can be used to match movies. + + In this example, there are two movies in the library called "Godzilla", so the `year` attribute is used to + identify which movie is being matched. + + ```yaml + metadata: + Godzilla (1954): # Matches via the title "Godzilla" released in 1954 + match: + title: Godzilla + year: 1954 + edits... + Godzilla (1998): # Matches via the title "Godzilla" released in 1998 + match: + title: Godzilla + year: 1998 + edits... + ``` + + #### Example 3 - using `editions` + + The edition attributes can be used to further specify which version of a movie should be matched within Plex. + + This can be combined with Example 1 as follows + + ```yaml + metadata: + movie1: # Matches via the title "Star Wars" and edition containing "4K77" + match: + title: Star Wars + edition_contains: 4K77 + edits... + ``` + + If you wanted to specify the version of Star Wars which does not have an edition, then the `blank_edition` + attribute can be used as shown below: + + ```yaml + metadata: + movie1: # Matches via the title "Star Wars" and checks for no edition version + match: + title: Star Wars + blank_edition: true + edits... + ``` + + === "TV Shows" + #### Example 1 - `title` and `mapping_id` + + The below example shows how `title` and `mapping_id` can be used to match shows. + + ```yaml + metadata: + show1: # Matches via the title "Game of Thrones" + match: + title: Game of Thrones + edits... + show2: # Matches via TVDb ID: 366524 + match: + mapping_id: 366524 + edits... + show3: # Matches via IMDb ID: tt10234724 + match: + mapping_id: tt10234724 + edits... + show4: # Matches via the title "24" + match: + title: 24 + edits... + ``` + + The Mapping Name can also be used to reduce line-count, as shown here: + + ```yaml + metadata: + Game of Thrones: # Matches via the Name "Game of Thrones" + edits... + 366524: # Matches via TVDb ID: 366524 + edits... + tt10234724: # Matches via IMDb ID: tt10234724 + edits... + "24": # Matches via the Name "24" + edits... + ``` + + **Note:** to search for a show titled with a number from the mapping name you must surround the number in quotes + like in the example below. Otherwise, it will look for the show associated with that TVDb ID. + + #### Example 2 - `title` and `year` + + The below example shows how `title` and `year` can be used to match shows. + + In this example, there are two shows in the library called "Vikings", so the `year` attribute is used to + identify which show is being matched. + + ```yaml + metadata: + Vikings (2012): # Matches via the title "Vikings" released in 2012 + match: + title: Vikings + year: 2012 + edits... + Vikings (2013): # Matches via the title "Vikings" released in 2013 + match: + title: Vikings + year: 2013 + edits... + ``` + + === "Music" + #### Example 1 - `title` + + The below example shows how `title` can be used to match artists. + + ```yaml + metadata: + artist1: # Matches via the title "Ke$ha" + match: + title: Ke$ha + edits... + artist2: # Matches via the title "311" + match: + title: 311 + edits... + ``` + + The Mapping Name can also be used to reduce line-count, as shown here: + + ```yaml + metadata: + Ke$ha: # Matches via the Name "Ke$ha" + edits... + "311": # Matches via the Name "311" + edits... + ``` + +## Metadata Edits + +The available attributes for editing movies are as follows + +### Special Attributes + +| Attribute | Description | Item Types | +|:------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------| +| `run_definition` | Used to specify if this definition runs.<br>Multiple can be used for one definition as a list or comma separated string. One `false` or unmatched library type will cause it to fail.<br>**Values:** `movie`, `show`, `artist`, `true`, `false` | `Movies`, `Shows`, `Artists` | +| `tmdb_show` | TMDb Show ID to use for metadata. Used when the Movie in your library is actually a miniseries on TMDb. (Example: [Halo 4: Forward Unto Dawn](https://www.themoviedb.org/tv/56295) or [IT](https://www.themoviedb.org/tv/19614)) **This is not used to say this movie is the given ID.** | `Movies` | +| `f1_season` | F1 Season Year to make the Show represent a Season of F1 Races. See [Formula 1 Metadata Guide](../pmm/guides/formula.md) for more information. | `Shows` | +| `round_prefix` | Used only with `f1_season` to add the round as a prefix to the Season (Race) Titles i.e. `Australian Grand Prix` --> `01 - Australian Grand Prix`. | `Shows` | +| `shorten_gp` | Used only with `f1_season` to shorten `Grand Prix` to `GP` in the Season (Race) Titles i.e. `Australian Grand Prix` --> `Australian GP`. | `Shows` | +| `seasons` | Attribute used to edit season metadata. The mapping name is the season number (use 0 for specials) or the season name. | `Shows` | +| `episodes` | Attribute used to edit episode metadata. The mapping name is the episode number in that season, the title of the episode, or the Originally Available date in the format `MM/DD`. | `Seasons` | +| `update_seasons` | Used to specify if this definition's seasons metadata will update.<br>Multiple can be used for one definition as a list or comma separated string. One `false` will cause it to fail.<br>**Values:** `true`, `false` | `Shows` | +| `update_episodes` | Used to specify if this definition's episodes metadata will update.<br>Multiple can be used for one definition as a list or comma separated string. One `false` will cause it to fail.<br>**Values:** `true`, `false` | `Shows` | +| `albums` | Attribute used to edit album metadata. The mapping name is the album name. | `Artists` | +| `tracks` | Attribute used to edit track metadata. The mapping name is the track number on that Album, or the title of the Track. | `Albums` | + +1. If the server does not have a Plex Pass then the Edition Field is not accessible. In this case PMM will check the +movies filepath for `{edition-MOVIES EDITION}` to determine what the edition is. + +### General Attributes + +| Attribute | <div style="width:295px">Allowed Values</div> | Item Types | +|:-----------------------|:---------------------------------------------------------------|:------------------------------------------------------------------------| +| `title` | Text to change Title. | `Movies`, `Shows`, `Seasons`, `Episodes`, `Tracks` | +| `sort_title` | Text to change Sort Title. | `Movies`, `Shows`, `Episodes`, `Artists`, `Albums`, `Tracks` | +| `edition`<sup>1</sup> | Text to change Edition. | `Movies` | +| `original_title` | Text to change Original Title. | `Movies`, `Shows` | +| `originally_available` | Date to change Originally Available.<br>**Format:** YYYY-MM-DD | `Movies`, `Shows`, `Episodes`, `Albums` | +| `content_rating` | Text to change Content Rating. | `Movies`, `Shows`, `Episodes` | +| `user_rating` | Number to change User Rating. | `Movies`, `Shows`, `Seasons`, `Episodes`, `Artists`, `Albums`, `Tracks` | +| `audience_rating` | Number to change Audience Rating. | `Movies`, `Shows`, `Episodes` | +| `critic_rating` | Number to change Critic Rating. | `Movies`, `Shows`, `Episodes`, `Albums` | +| `studio` | Text to change Studio. | `Movies`, `Shows` | +| `tagline` | Text to change Tagline. | `Movies`, `Shows` | +| `summary` | Text to change Summary. | `Movies`, `Shows`, `Seasons`, `Episodes`, `Artists`, `Albums`, `Tracks` | +| `record_label` | Text to change Record Label. | `Albums` | +| `track` | Text to change Track. | `Tracks` | +| `disc` | Text to change Disc. | `Tracks` | +| `original_artist` | Text to change Original Artist. | `Tracks` | + +1. Requires Plex Pass + +### Tag Attributes + +You can add `.remove` to any tag attribute to only remove those tags i.e. `genre.remove`. + +You can add `.sync` to any tag attribute to sync all tags vs just appending the new ones i.e. `genre.sync`. + +| Attribute | <div style="width:440px">Allowed Values</div> | Item Types | +|:-----------------|:---------------------------------------------------------|:------------------------------------------------------------------------| +| `director` | List or comma-separated text of each Director Tag. | `Movies`, `Episodes` | +| `country` | List or comma-separated text of each Country Tag. | `Movies` | +| `genre` | List or comma-separated text of each Genre Tag. | `Movies`, `Shows`, `Artists`, `Albums` | +| `writer` | List or comma-separated text of each Writer Tag. | `Movies`, `Episodes` | +| `producer` | List or comma-separated text of each Producer Tag. | `Movies` | +| `collection` | List or comma-separated text of each Collection Tag. | `Movies`, `Shows`, `Seasons`, `Episodes`, `Artists`, `Albums`, `Tracks` | +| `label` | List or comma-separated text of each Label Tag. | `Movies`, `Shows`, `Seasons`, `Episodes`, `Artists`, `Albums`, `Tracks` | +| `style` | List or comma-separated text of each Style Tag. | `Artists`, `Albums` | +| `mood` | List or comma-separated text of each Mood Tag. | `Artists`, `Albums`, `Tracks` | +| `country` | List or comma-separated text of each Country Tag. | `Artists` | +| `similar_artist` | List or comma-separated text of each Similar Artist Tag. | `Artists` | + +### Image Attributes + +| Attribute | <div style="width:365px">Allowed Values</div> | Item Types | +|:------------------|:-------------------------------------------------|:--------------------------------------------------------------| +| `url_poster` | URL of image publicly available on the internet. | `Movies`, `Shows`, `Seasons`, `Episodes`, `Artists`, `Albums` | +| `file_poster` | Path to image in the file system. | `Movies`, `Shows`, `Seasons`, `Episodes`, `Artists`, `Albums` | +| `url_background` | URL of image publicly available on the internet. | `Movies`, `Shows`, `Seasons`, `Episodes`, `Artists`, `Albums` | +| `file_background` | Path to image in the file system. | `Movies`, `Shows`, `Seasons`, `Episodes`, `Artists`, `Albums` | + +### Advanced Attributes + +| <div style="width:200px">Attribute</div> | Allowed Values | <div style="width:110px">Item Types</div> | +|:-----------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------| +| `metadata_language`<sup>1</sup> | `default`, `ar-SA`, `ca-ES`, `cs-CZ`, `da-DK`, `de-DE`, `el-GR`, `en-AU`, `en-CA`, `en-GB`, `en-US`, `es-ES`, `es-MX`, `et-EE`, `fa-IR`, `fi-FI`, `fr-CA`, `fr-FR`, `he-IL`, `hi-IN`, `hu-HU`, `id-ID`, `it-IT`, `ja-JP`, `ko-KR`, `lt-LT`, `lv-LV`, `nb-NO`, `nl-NL`, `pl-PL`, `pt-BR`, `pt-PT`, `ro-RO`, `ru-RU`, `sk-SK`, `sv-SE`, `th-TH`, `tr-TR`, `uk-UA`, `vi-VN`, `zh-CN`, `zh-HK`, `zh-TW` | `Movies` | +| `use_original_title`<sup>1</sup> | `default`: Library default<br>`no`: No<br>`yes`: Yes | `Movies` | +| `episode_sorting` | <table class="clearTable"><tbody><tr><td>`default`</td><td>Library default</td></tr><tr><td>`oldest`</td><td>Oldest first</td></tr><tr><td>`newest`</td><td>Newest first</td></tr></tbody></table> | `Shows` | +| `keep_episodes` | <table class="clearTable"><tbody><tr><td>`all`</td><td>All episodes</td></tr><tr><td>`5_latest`</td><td>5 latest episodes</td></tr><tr><td>`3_latest`</td><td>3 latest episodes</td></tr><tr><td>`latest`</td><td>Latest episodes</td></tr><tr><td>`past_3`</td><td>Episodes added in the past 3 days</td></tr><tr><td>`past_7`</td><td>Episodes added in the past 7 days</td></tr><tr><td>`past_30`</td><td>Episodes added in the past 30 days</td></tr></tbody></table> | `Shows` | +| `delete_episodes` | <table class="clearTable"><tbody><tr><td>`never`</td><td>Never</td></tr><tr><td>`day`</td><td>After a day</td></tr><tr><td>`week`</td><td>After a week</td></tr><tr><td>`refresh`</td><td>On next refresh</td></tr></tbody></table> | `Shows` | +| `season_display` | <table class="clearTable"><tbody><tr><td>`default`</td><td>Library default</td></tr><tr><td>`show`</td><td>Show</td></tr><tr><td>`hide`</td><td>Hide</td></tr></tbody></table> | `Shows` | +| `episode_ordering` | <table class="clearTable"><tbody><tr><td>`default`</td><td>Library default</td></tr><tr><td>`tmdb_aired`</td><td>The Movie Database (Aired)</td></tr><tr><td>`tvdb_aired`</td><td>TheTVDb (Aired)</td></tr><tr><td>`tvdb_dvd`</td><td>TheTVDb (DVD)</td></tr><tr><td>`tvdb_absolute`</td><td>TheTVDb (Absolute)</td></tr></tbody></table> | `Shows` | +| `metadata_language`<sup>2</sup> | `default`, `ar-SA`, `ca-ES`, `cs-CZ`, `da-DK`, `de-DE`, `el-GR`, `en-AU`, `en-CA`, `en-GB`, `en-US`, `es-ES`, `es-MX`, `et-EE`, `fa-IR`, `fi-FI`, `fr-CA`, `fr-FR`, `he-IL`, `hi-IN`, `hu-HU`, `id-ID`, `it-IT`, `ja-JP`, `ko-KR`, `lt-LT`, `lv-LV`, `nb-NO`, `nl-NL`, `pl-PL`, `pt-BR`, `pt-PT`, `ro-RO`, `ru-RU`, `sk-SK`, `sv-SE`, `th-TH`, `tr-TR`, `uk-UA`, `vi-VN`, `zh-CN`, `zh-HK`, `zh-TW` | `Shows` | +| `use_original_title`<sup>2</sup> | <table class="clearTable"><tbody><tr><td>`default`</td><td>Library default</td></tr><tr><td>`no`</td><td>No</td></tr><tr><td>`yes`</td><td>Yes</td></tr></tbody></table> | `Shows` | +| `album_sorting` | <table class="clearTable"><tbody><tr><td>`default`</td><td>Library default</td></tr><tr><td>`oldest`</td><td>Oldest first</td></tr><tr><td>`newest`</td><td>Newest first</td></tr><tr><td>`name`</td><td>Alphabetical</td></tr></tbody></table> | `Artists` | + +1. Must be using the **New Plex Movie Agent**. +2. Must be using the **New Plex TV Agent** diff --git a/docs/config/data/overlays.md b/docs/files/overlays.md similarity index 84% rename from docs/config/data/overlays.md rename to docs/files/overlays.md index d8177c1a..22295aa6 100644 --- a/docs/config/data/overlays.md +++ b/docs/files/overlays.md @@ -37,11 +37,11 @@ This specific example will target items in my library with a 4K resolution and w Here is an example of how the Overlay will look - ![myoverlays_example.png](myoverlays_example.png) + ![myoverlays_example.png](images/myoverlays_example.png) For the purpose of this example, we are going to save the File as `MyOverlays.yml` within the location mapped as `config` in our setup. -I then call "MyOverlays.yml" in my [Configuration File](../configuration.md) within the `Overlay_files` section +I then call "MyOverlays.yml" in my [Configuration File](../config/overview.md) within the `Overlay_files` section ???+ example "config.yml Example Overlay File Addition" @@ -78,11 +78,11 @@ Whenever I execute Plex Meta Manager and the Movies library is run, MyOverlays.y Overlay Files can utilize the following top-level attributes -| Attribute | Description | -|:-----------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------| -| [`templates`](../../builders/templates.md) | contains definitions of templates that can be leveraged by multiple Overlays | -| [`external_templates`](../../builders/templates.md#external-templates) | contains [path types](../../builders/files.md#paths) that point to external templates that can be leveraged by multiple Overlays | -| [`overlays`](#overlay-attributes) | contains definitions of Overlays you wish to add to one or more libraries | +| Attribute | Description | +|:--------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------| +| [`templates`](templates.md) | contains definitions of templates that can be leveraged by multiple Overlays | +| [`external_templates`](templates.md#external-templates) | contains [file blocks](../config/files.md) that point to external templates that can be leveraged by multiple overlays | +| [`overlays`](#overlay-attributes) | contains definitions of Overlays you wish to add to one or more libraries | * Example Files can be found in the [Plex Meta Manager Configs Repository](https://github.com/meisnate12/Plex-Meta-Manager-Configs/tree/master/PMM) @@ -106,13 +106,13 @@ Although Overlays are modular in that you can pick and choose what you would lik Plex Meta Manager and Plex **will not** remove old Overlaid images from the Plex file structure or database when new updates are available. On large libraries, this can often result in Image Bloat. - * We recommend you read more about this and the solution on the [Plex Image Cleanup](../../pmm/essentials/scripts/image-cleanup.md) page. + * We recommend you read more about this and the solution on the [Plex Image Cleanup](../pmm/scripts/image-cleanup.md) page. There is an attribute called `reapply_overlays` which, when set to true, will force overlays to reapply even when it is not necessary to do so [overlays only update when something has changed, this bypasses that behaviour]. This will increase how long Plex Meta Manager takes to run and will also result in Image Bloat. - * Ensure `reapply_overlays` is set to `false` if you see it in your Configuration File. If it has previously been set to true we recommend using [Plex Image Cleanup](../../pmm/essentials/scripts/image-cleanup.md) to get rid of the bloat. + * Ensure `reapply_overlays` is set to `false` if you see it in your Configuration File. If it has previously been set to true we recommend using [Plex Image Cleanup](../pmm/scripts/image-cleanup.md) to get rid of the bloat. -To remove all overlays from your library, add `remove_overlays: true` to the `overlay_files` [Libraries Attribute](../libraries.md#remove-overlays).** +To remove all overlays from your library, add `remove_overlays: true` to the `overlay_files` [Libraries Attribute](../config/libraries.md).** * See the above note on Plex Meta Manager not removing the overlaid images, this is still true here. @@ -127,21 +127,21 @@ To remove all overlays from your library, add `remove_overlays: true` to the `ov Overlay Files can utilize the following top-level attributes -| Attribute | Description | -|:-----------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------| -| [`templates`](../../builders/templates.md) | contains definitions of templates that can be leveraged by multiple overlays | -| [`external_templates`](../../builders/templates.md#external-templates) | contains [path types](../../builders/files.md#paths) that point to external templates that can be leveraged by multiple overlays | -| [`queues`](#overlay-queues) | contains the positional attributes of queues | -| [`overlays`](#overlay-attributes) | contains definitions of overlays you wish to add | +| Attribute | Description | +|:--------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------| +| [`templates`](templates.md) | contains definitions of templates that can be leveraged by multiple overlays | +| [`external_templates`](templates.md#external-templates) | contains [file blocks](../config/files.md) that point to external templates that can be leveraged by multiple overlays | +| [`queues`](#overlay-queues) | contains the positional attributes of queues | +| [`overlays`](#overlay-attributes) | contains definitions of overlays you wish to add | * `overlays` is required in order to run the Overlay File. * Example Overlay Files can be found in the [Plex Meta Manager Configs Repository](https://github.com/meisnate12/Plex-Meta-Manager-Configs/tree/master/PMM) There are multiple types of attributes that can be utilized within an overlay: -* [Builders](../../builders/overview.md) -* [Settings/Updates](../../metadata/update.md) -* [Filters](../../builders/filters.md) +* [Builders](builders/overview.md) +* [Filters](filters.md) +* [Settings](settings.md) ## Example Files @@ -157,7 +157,7 @@ overlays: resolution: 4K ``` -![example_4k.png](example_4k.png) +![example_4k.png](images/example_4k.png) I can then layer another Overlay for items which have HDR. @@ -175,43 +175,43 @@ overlays: hdr: true ``` -![example_4khdr.png](example_4khdr.png) +![example_4khdr.png](images/example_4khdr.png) ## Advanced Overlay Attributes The below attributes are also available for Overlay files, to give more granular control over how they function. -| Attribute | Description | Required | -|:---------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------:| -| `name` | Name of the overlay. | :fontawesome-solid-circle-check:{ .green } | -| `file` | Local location of the Overlay Image. | :fontawesome-solid-circle-xmark:{ .red } | -| `url` | URL of Overlay Image Online. | :fontawesome-solid-circle-xmark:{ .red } | -| `git` | Location in the [Configs Repo](https://github.com/meisnate12/Plex-Meta-Manager-Configs) of the Overlay Image. | :fontawesome-solid-circle-xmark:{ .red } | -| `repo` | Location in the [Custom Repo](../settings.md#custom-repo) of the Overlay Image. | :fontawesome-solid-circle-xmark:{ .red } | -| [`group`](#overlay-groups) | Name of the Grouping for this overlay. Only one overlay with the highest weight per group will be applied.<br>**`weight` is required when using `group`**<br>**Values:** group name | :fontawesome-solid-circle-xmark:{ .red } | -| [`queue`](#overlay-queues) | Name of the Queue for this overlay. Define `queue` positions using the `queues` attribute at the top level of an Overlay File. Overlay with the highest weight is applied to the first position and so on.<br>**`weight` is required when using `queue`**<br>**Values:** queue name | :fontawesome-solid-circle-xmark:{ .red } | -| `weight` | Weight of this overlay in its group or queue.<br>**`group` or `queue` is required when using `weight`**<br>**Values:** Integer 0 or greater | :fontawesome-solid-circle-xmark:{ .red } | -| `horizontal_offset` | Horizontal Offset of this overlay. Can be a %.<br>**`vertical_offset` is required when using `horizontal_offset`**<br>**Value:** Integer 0 or greater or 0%-100% | :fontawesome-solid-circle-xmark:{ .red } | -| `horizontal_align` | Horizontal Alignment of the overlay.<br>**Values:** `left`, `center`, `right` | :fontawesome-solid-circle-xmark:{ .red } | -| `vertical_offset` | Vertical Offset of this overlay. Can be a %.<br>**`horizontal_offset` is required when using `vertical_offset`**<br>**Value:** Integer 0 or greater or 0%-100% | :fontawesome-solid-circle-xmark:{ .red } | -| `vertical_align` | Vertical Alignment of the overlay.<br>**Values:** `top`, `center`, `bottom` | :fontawesome-solid-circle-xmark:{ .red } | -| `font` | System Font Filename or path to font file for the Text Overlay.<br>**Value:** System Font Filename or path to font file | :fontawesome-solid-circle-xmark:{ .red } | -| `font_style` | Font style for Variable Fonts. Only needed when using a Variable Font.<br>**Value:** Variable Font Style | :fontawesome-solid-circle-xmark:{ .red } | -| `font_size` | Font Size for the Text Overlay.<br>**Value:** Integer greater than 0 | :fontawesome-solid-circle-xmark:{ .red } | -| `font_color` | Font Color for the Text Overlay.<br>**Value:** Color Hex Code in format `#RGB`, `#RGBA`, `#RRGGBB` or `#RRGGBBAA`. | :fontawesome-solid-circle-xmark:{ .red } | -| `stroke_width` | Font Stroke Width for the Text Overlay.<br>**Value:** Integer greater than 0 | :fontawesome-solid-circle-xmark:{ .red } | -| `stroke_color` | Font Stroke Color for the Text Overlay.<br>**Value:** Color Hex Code in format `#RGB`, `#RGBA`, `#RRGGBB` or `#RRGGBBAA`. | :fontawesome-solid-circle-xmark:{ .red } | -| `back_color` | Backdrop Color for the Text Overlay.<br>**Value:** Color Hex Code in format `#RGB`, `#RGBA`, `#RRGGBB` or `#RRGGBBAA`. | :fontawesome-solid-circle-xmark:{ .red } | -| `back_width` | Backdrop Width for the Text Overlay. If `back_width` is not specified the Backdrop Sizes to the text<br>**`back_height` is required when using `back_width`**<br>**Value:** Integer greater than 0 | :fontawesome-solid-circle-xmark:{ .red } | -| `back_height` | Backdrop Height for the Text Overlay. If `back_height` is not specified the Backdrop Sizes to the text<br>**`back_width` is required when using `back_height`**<br>**Value:** Integer greater than 0 | :fontawesome-solid-circle-xmark:{ .red } | -| `back_align` | Alignment for the Text Overlay inside the backdrop. If `back_align` is not specified the Backdrop Centers the text<br>**`back_width` and `back_height` are required when using `back_align`**<br>**Values:** `left`, `right`, `center`, `top`, `bottom` | :fontawesome-solid-circle-xmark:{ .red } | -| `back_padding` | Backdrop Padding for the Text Overlay.<br>**Value:** Integer greater than 0 | :fontawesome-solid-circle-xmark:{ .red } | -| `back_radius` | Backdrop Radius for the Text Overlay.<br>**Value:** Integer greater than 0 | :fontawesome-solid-circle-xmark:{ .red } | -| `back_line_color` | Backdrop Line Color for the Text Overlay.<br>**Value:** Color Hex Code in format `#RGB`, `#RGBA`, `#RRGGBB` or `#RRGGBBAA`. | :fontawesome-solid-circle-xmark:{ .red } | -| `back_line_width` | Backdrop Line Width for the Text Overlay.<br>**Value:** Integer greater than 0 | :fontawesome-solid-circle-xmark:{ .red } | -| `addon_offset` | Text Addon Image Offset from the text.<br>**`addon_offset` Only works with text overlays**<br>**Value:** Integer 0 or greater | :fontawesome-solid-circle-xmark:{ .red } | -| `addon_position` | Text Addon Image Alignment in relation to the text.<br>**`addon_position` Only works with text overlays**<br>**Values:** `left`, `right`, `top`, `bottom` | :fontawesome-solid-circle-xmark:{ .red } | +| Attribute | Description | Required | +|:---------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------:| +| `name` | Name of the overlay. | :fontawesome-solid-circle-check:{ .green } | +| `file` | Local location of the Overlay Image. | :fontawesome-solid-circle-xmark:{ .red } | +| `url` | URL of Overlay Image Online. | :fontawesome-solid-circle-xmark:{ .red } | +| `git` | Location in the [Configs Repo](https://github.com/meisnate12/Plex-Meta-Manager-Configs) of the Overlay Image. | :fontawesome-solid-circle-xmark:{ .red } | +| `repo` | Location in the [Custom Repo](../config/settings.md) of the Overlay Image. | :fontawesome-solid-circle-xmark:{ .red } | +| [`group`](#overlay-groups) | Name of the Grouping for this overlay. Only one overlay with the highest weight per group will be applied.<br>**`weight` is required when using `group`**<br>**Values:** group name | :fontawesome-solid-circle-xmark:{ .red } | +| [`queue`](#overlay-queues) | Name of the Queue for this overlay. Define `queue` positions using the `queues` attribute at the top level of an Overlay File. Overlay with the highest weight is applied to the first position and so on.<br>**`weight` is required when using `queue`**<br>**Values:** queue name | :fontawesome-solid-circle-xmark:{ .red } | +| `weight` | Weight of this overlay in its group or queue.<br>**`group` or `queue` is required when using `weight`**<br>**Values:** Integer 0 or greater | :fontawesome-solid-circle-xmark:{ .red } | +| `horizontal_offset` | Horizontal Offset of this overlay. Can be a %.<br>**`vertical_offset` is required when using `horizontal_offset`**<br>**Value:** Integer 0 or greater or 0%-100% | :fontawesome-solid-circle-xmark:{ .red } | +| `horizontal_align` | Horizontal Alignment of the overlay.<br>**Values:** `left`, `center`, `right` | :fontawesome-solid-circle-xmark:{ .red } | +| `vertical_offset` | Vertical Offset of this overlay. Can be a %.<br>**`horizontal_offset` is required when using `vertical_offset`**<br>**Value:** Integer 0 or greater or 0%-100% | :fontawesome-solid-circle-xmark:{ .red } | +| `vertical_align` | Vertical Alignment of the overlay.<br>**Values:** `top`, `center`, `bottom` | :fontawesome-solid-circle-xmark:{ .red } | +| `font` | System Font Filename or path to font file for the Text Overlay.<br>**Value:** System Font Filename or path to font file | :fontawesome-solid-circle-xmark:{ .red } | +| `font_style` | Font style for Variable Fonts. Only needed when using a Variable Font.<br>**Value:** Variable Font Style | :fontawesome-solid-circle-xmark:{ .red } | +| `font_size` | Font Size for the Text Overlay.<br>**Value:** Integer greater than 0 | :fontawesome-solid-circle-xmark:{ .red } | +| `font_color` | Font Color for the Text Overlay.<br>**Value:** Color Hex Code in format `#RGB`, `#RGBA`, `#RRGGBB` or `#RRGGBBAA`. | :fontawesome-solid-circle-xmark:{ .red } | +| `stroke_width` | Font Stroke Width for the Text Overlay.<br>**Value:** Integer greater than 0 | :fontawesome-solid-circle-xmark:{ .red } | +| `stroke_color` | Font Stroke Color for the Text Overlay.<br>**Value:** Color Hex Code in format `#RGB`, `#RGBA`, `#RRGGBB` or `#RRGGBBAA`. | :fontawesome-solid-circle-xmark:{ .red } | +| `back_color` | Backdrop Color for the Text Overlay.<br>**Value:** Color Hex Code in format `#RGB`, `#RGBA`, `#RRGGBB` or `#RRGGBBAA`. | :fontawesome-solid-circle-xmark:{ .red } | +| `back_width` | Backdrop Width for the Text Overlay. If `back_width` is not specified the Backdrop Sizes to the text<br>**`back_height` is required when using `back_width`**<br>**Value:** Integer greater than 0 | :fontawesome-solid-circle-xmark:{ .red } | +| `back_height` | Backdrop Height for the Text Overlay. If `back_height` is not specified the Backdrop Sizes to the text<br>**`back_width` is required when using `back_height`**<br>**Value:** Integer greater than 0 | :fontawesome-solid-circle-xmark:{ .red } | +| `back_align` | Alignment for the Text Overlay inside the backdrop. If `back_align` is not specified the Backdrop Centers the text<br>**`back_width` and `back_height` are required when using `back_align`**<br>**Values:** `left`, `right`, `center`, `top`, `bottom` | :fontawesome-solid-circle-xmark:{ .red } | +| `back_padding` | Backdrop Padding for the Text Overlay.<br>**Value:** Integer greater than 0 | :fontawesome-solid-circle-xmark:{ .red } | +| `back_radius` | Backdrop Radius for the Text Overlay.<br>**Value:** Integer greater than 0 | :fontawesome-solid-circle-xmark:{ .red } | +| `back_line_color` | Backdrop Line Color for the Text Overlay.<br>**Value:** Color Hex Code in format `#RGB`, `#RGBA`, `#RRGGBB` or `#RRGGBBAA`. | :fontawesome-solid-circle-xmark:{ .red } | +| `back_line_width` | Backdrop Line Width for the Text Overlay.<br>**Value:** Integer greater than 0 | :fontawesome-solid-circle-xmark:{ .red } | +| `addon_offset` | Text Addon Image Offset from the text.<br>**`addon_offset` Only works with text overlays**<br>**Value:** Integer 0 or greater | :fontawesome-solid-circle-xmark:{ .red } | +| `addon_position` | Text Addon Image Alignment in relation to the text.<br>**`addon_position` Only works with text overlays**<br>**Values:** `left`, `right`, `top`, `bottom` | :fontawesome-solid-circle-xmark:{ .red } | * If `url`, `git`, and `repo` are all not defined then PMM will look in your `config/overlays` folder for a `.png` file named the same as the `name` attribute. @@ -222,7 +222,7 @@ Positional overlays can be of any size and use `horizontal_offset`, `horizontal_ ???+ tip - This overlay example uses one of the [PMM Default Overlay](../../defaults/overlays.md) images, which isn't necessary but is used just for this example. + This overlay example uses one of the [PMM Default Overlay](../defaults/overlays.md) images, which isn't necessary but is used just for this example. ```yaml overlays: @@ -237,7 +237,7 @@ overlays: vertical_align: bottom ``` -![example_positional.png](example_positional.png) +![example_positional.png](images/example_positional.png) ### Blurring Overlay @@ -256,7 +256,7 @@ overlays: resolution: 4K ``` -![](example_blur.png) +![](images/example_blur.png) ### Backdrop Overlay @@ -277,7 +277,7 @@ overlays: This example could be useful if you want to have a black banner, and then use a [Text Overlay](#text-overlay) to add text on top. -![example_backdrop.png](example_backdrop.png) +![example_backdrop.png](images/example_backdrop.png) ### Text Overlay @@ -314,7 +314,7 @@ overlays: Note that we have built up on our backdrop overlay that we created in our previous example -![example_text.png](example_text.png) +![example_text.png](images/example_text.png) #### Special Text Variables @@ -343,7 +343,7 @@ There are multiple Special Text Variables that can be used when formatting the t ???+ tip - You can use the `mass_audience_rating_update` or `mass_critic_rating_update` [Library Operation](../operations.md) to update your plex ratings to various services like `tmdb`, `imdb`, `mdb`, `metacritic`, `letterboxd` and many more. + You can use the `mass_audience_rating_update` or `mass_critic_rating_update` [Library Operation](../config/operations.md) to update your plex ratings to various services like `tmdb`, `imdb`, `mdb`, `metacritic`, `letterboxd` and many more. ```yaml overlays: @@ -368,7 +368,7 @@ overlays: Note that we have once again built up on our backdrop overlay that we created in one of our previous examples -![example_text.png](example_specialtext.png) +![example_text.png](images/example_specialtext.png) #### Special Text Modifiers @@ -397,7 +397,7 @@ overlays: plex_all: true ``` -![example_specialtextmodifier.png](example_specialtextmodifier.png) +![example_specialtextmodifier.png](images/example_specialtextmodifier.png) I want to add `S##E##` to all my episode images. ```yaml @@ -423,7 +423,7 @@ overlays: plex_all: true ``` -![example_episodetext.png](example_episodetext.png) +![example_episodetext.png](images/example_episodetext.png) ##### Common Special Text Uses @@ -448,7 +448,7 @@ Use `addon_position` to control which side of the text the image will be located ???+ tip - This overlay example uses one of the [PMM Default Overlay](../../defaults/overlays.md) images, which isn't necessary but is used just for this example. + This overlay example uses one of the [PMM Default Overlay](../defaults/overlays.md) images, which isn't necessary but is used just for this example. ```yaml overlays: @@ -472,7 +472,7 @@ overlays: plex_all: true ``` -![example_addonoffset.png](example_addonoffset.png) +![example_addonoffset.png](images/example_addonoffset.png) ### Overlay Groups diff --git a/docs/files/overview.md b/docs/files/overview.md new file mode 100644 index 00000000..dd4b2a35 --- /dev/null +++ b/docs/files/overview.md @@ -0,0 +1,139 @@ +# Files + +{% + include-markdown "../config/file_types.md" +%} + +* **See [File Blocks](../config/files.md) for more information on how to define files in the config.** + +## Definition Component Overview + +There are a few different types of attributes that can be used in any given Collection/Overlay/Playlist File. + +### Builders + +[Builders](builders/overview.md) are attributes placed at the top level of the definition that tell PMM what items +belong in a collection/overlay/playlist. Multiple builders can be used in one definition. These could come from a +variety of sources including but not limited to: + +* Your own Plex Sever using the Advance Filters. +* A Tautulli instance with your most played items. +* A List of media online on a site like IMDb, TMDb, or TVDb. + +???+ example "Builder Example" + + ```yaml + collections: + My Test Collection 1: + plex_search: + any: + genre: Action + My Test Collection 2: + imdb_chart: top_movies + My Test Collection 3: + imdb_search: + type: movie + limit: 100 + genre: action + votes.gte: 1000 + plex_search: + any: + genre: Action + ``` + +### Filters + +[Filters](filters.md) are all put under a single attribute `filters`. These attributes will filter out items only after +builders find them. **Filters alone do nothing, they need builders.** + +There are some specific filters that can filter missing items sent to Radarr/Sonarr and if needed you can use the +[`only_filter_missing` setting](settings.md) to have the filter only effect the missing items. + +Running filters are often slower than builders so whenever possible use only builders to build the definition. + +???+ example "Filter Example" + + This uses the `plex_all` Buidler to get every item currently in the plex library and then checks TMDb if they have +eithr `aftercreditsstinger` or `duringcreditsstinger` as a keyword. + + ```yaml + collections: + My Test Collection 1: + plex_all: true + filters: + tmdb_keyword: aftercreditsstinger, duringcreditsstinger + ``` + +### Settings + +[Settings](settings.md) are attributes placed at the top level of the definition that tells PMM how to run the +definition. Each setting will affect how the definition is run or shown in the log. + +???+ example "Setting Example" + + This sets the colleciton to only build if the builders find at **minimum 10 items** and will sync items to the +collection (removing items that no longer are found by the builders). + + ```yaml + collections: + My Test Collection 1: + sync_mode: sync + minimum_items: 10 + plex_search: + any: + genre: Action + ``` + +### Radarr/Sonarr Settings + +[Radarr/Sonarr Settings](arr.md) are attributes placed at the top level of the definition that tells PMM how +Radarr/Sonarr is handled in this specific definition. + +???+ example "Setting Example" + + This sets the colleciton to add missing movies from the builders to Radarr. + + ```yaml + collections: + My Test Collection 1: + radarr_add_missing: true + imdb_search: + type: movie + limit: 100 + genre: action + votes.gte: 1000 + ``` + +### Collection/Playlist Metadata Updates + +[Updates](updates.md) are attributes placed at the top level of the definition that tells PMM Metadata Changes for the +Collection/Playlist. + +???+ example "Collection/Playlist Metadata Update Example" + + ```yaml + collections: + My Test Collection 1: + summary: This is my test collection's summary + plex_search: + any: + genre: Action + ``` + +### Item Metadata Updates + +[Item Updates](item_updates.md) are attributes placed at the top level of the definition that tells PMM Metadata Changes +for every item found in the Collection/Playlist. + +???+ example "Item Metadata Update Example" + + This will add the genre `Credits` to every item found after builders and filters are run. + + ```yaml + collections: + My Test Collection 1: + item_genre: Credits + plex_all: true + filters: + tmdb_keyword: aftercreditsstinger, duringcreditsstinger + ``` diff --git a/docs/metadata/playlist.md b/docs/files/playlists.md similarity index 63% rename from docs/metadata/playlist.md rename to docs/files/playlists.md index 51bfee98..44db7198 100644 --- a/docs/metadata/playlist.md +++ b/docs/files/playlists.md @@ -2,17 +2,21 @@ Playlist files are used to create and maintain playlists on the Plex Server. -If utilized to their fullest, these files can be used to maintain the entire server's collections and playlists, and can be used as a backup for these in the event of a restore requirement. +If utilized to their fullest, these files can be used to maintain the entire server's collections and playlists, and can +be used as a backup for these in the event of a restore requirement. ???+ tip - Playlists are defined in one or more Playlist files that are mapped in the [Playlist Files Attribute](../config/playlists.md) within the Configuration File. + Playlists are defined in one or more Playlist files that are mapped in the + [Playlist Files Attribute](../config/playlists.md) within the Configuration File. -You can use the [`playlist_report` setting](../config/settings.md#playlist-report) to get a list of your playlists printed out in your log. +You can use the [`playlist_report` setting](../config/settings.md) to get a list of your playlists printed out in your +log. ## Example -This example is a Playlist file with a basic overlay which is saved in a file called `MyPlaylists.yml` within the location mapped as `config` in my setup. +This example is a Playlist file with a basic overlay which is saved in a file called `MyPlaylists.yml` within the +location mapped as `config` in my setup. ???+ example "Example "MyPlaylists.yml"" @@ -30,9 +34,10 @@ This example is a Playlist file with a basic overlay which is saved in a file ca 1. This must appear once and **only once** in any Metadata file 2. This creates a collection based on tmdb list ID 10, https://www.themoviedb.org/list/10 would also be accepted 3. This will sort the items in the Plex collection to be the same as the order in the list - 4. Syncs the collection to the list, so that if an item is added/removed from the list, the same is done to the collection. Set this to `append` if you only want it to add things and not remove them. + 4. Syncs the collection to the list, so that if an item is added/removed from the list, the same is done to the + collection. Set this to `append` if you only want it to add things and not remove them. -???+ example "config.yml Example Metadata Path Addition" +???+ example "config.yml Example Collection File Addition" Click the :fontawesome-solid-circle-plus: icon to learn more @@ -54,7 +59,8 @@ This file would then be defined in my `config.yml` file as a `playlist_files` it ???+ warning "Important Note" - Playlist files are not called within the `libraries` section, they are defined at the root identation as you can see in the below example. + Playlist files are not called within the `libraries` section, they are defined at the root identation as you can see + in the below example. ???+ example "config.yml Example Playlists Addition" @@ -70,7 +76,8 @@ This file would then be defined in my `config.yml` file as a `playlist_files` it - file: config/MyPlaylists.yml #(2)! ``` - 1. Note that Playlist files are not called within the `libraries` section, they are defined at the root identation as you can see here + 1. Note that Playlist files are not called within the `libraries` section, they are defined at the root identation + as you can see here 2. `config` refers to the location that you mapped to `config` when following the PMM Installation Guides. ## Playlist Attributes @@ -79,18 +86,21 @@ Plex Meta Manager can automatically build and update playlists defined within th These are the attributes which can be utilized within the Playlist File: -| Attribute | Description | -|:----------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------| -| [`templates`](templates.md) | contains definitions of templates that can be leveraged by multiple playlists | -| [`external_templates`](templates.md#external-templates) | contains [path types](../builders/files.md#paths) that point to external templates that can be leveraged by multiple playlists | -| [`playlists`](#playlist-attributes) | contains definitions of playlists you wish to add to the server | +| Attribute | Description | +|:--------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------| +| [`templates`](templates.md) | contains definitions of templates that can be leveraged by multiple playlists | +| [`external_templates`](templates.md#external-templates) | contains [file blocks](../config/files.md) that point to external templates that can be leveraged by multiple playlists | +| [`playlists`](#playlist-attributes) | contains definitions of playlists you wish to add to the server | * `playlists` is required in order to run the Playlist File. -* You can find example Playlist Files in the [Plex Meta Manager Configs Repository](https://github.com/meisnate12/Plex-Meta-Manager-Configs/tree/master/PMM) -* Plex does not support the "Continue Watching" feature for playlists, you can [vote for the feature here](https://forums.plex.tv/t/playlists-remember-position-for-subsequent-resume/84866/39) +* You can find example Playlist Files in the +[Plex Meta Manager Configs Repository](https://github.com/meisnate12/Plex-Meta-Manager-Configs/tree/master/PMM) +* Plex does not support the "Continue Watching" feature for playlists, you can +[vote for the feature here](https://forums.plex.tv/t/playlists-remember-position-for-subsequent-resume/84866/39) -Each playlist requires its own section within the `playlists` attribute and unlike collections, playlists can only be built using one Builder as their ordering is inherited from the builder; it is not possible to combine builders. +Each playlist requires its own section within the `playlists` attribute and unlike collections, playlists can only be +built using one Builder as their ordering is inherited from the builder; it is not possible to combine builders. ```yaml playlists: @@ -104,24 +114,28 @@ playlists: There are multiple types of attributes that can be utilized within a playlist: -* [Builders](builders.md) -* [Settings/Updates](update.md) +* [Builders](builders/overview.md) * [Filters](filters.md) +* [Settings](settings.md) +* [Radarr/Sonarr Settings](settings.md) +* [Collection/Playlist Metadata Updates](updates.md) +* [Item Metadata Updates](item_updates.md) ### Special Playlist Attributes -| Attribute | Description | Required | -|:------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------:| -| `libraries` | Determine which libraries the playlist will be built from.<br>**Options:** Comma-separated string or list of library mapping names defined in the `libraries` attribute in the base of your [Configuration File](../config/configuration.md. | :fontawesome-solid-circle-check:{ .green } | -| `sync_to_users` | Determine which Users have the playlist synced.<br>This will override the global [`playlist_sync_to_users` Setting](../config/settings.md#playlist-sync-to-users).<br>**Options:** Comma-separated string or list of users, `all` for every user who has server access, or leave blank for just the server owner. | :fontawesome-solid-circle-xmark:{ .red } | -| `exclude_users` | Determine which Users will be excluded from having the playlist synced.<br>This will override the global [`playlist_excude_users` Setting](../config/settings.md#playlist-exclude-users).<br>**Options:** Comma-separated string or list of users, `all` for every user who has server access, or leave blank for just the server owner. | :fontawesome-solid-circle-xmark:{ .red } | -| `delete_playlist` | Will delete this playlist for the users defined by sync_to_users.<br>**Options:** `true` or `false` | :fontawesome-solid-circle-xmark:{ .red } | +| Attribute | Description | Required | +|:------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------:| +| `libraries` | Determine which libraries the playlist will be built from.<br>**Options:** Comma-separated string or list of library mapping names defined in the `libraries` attribute in the base of your [Configuration File](../overview.md. | :fontawesome-solid-circle-check:{ .green } | +| `sync_to_users` | Determine which Users have the playlist synced.<br>This will override the global [`playlist_sync_to_users` Setting](../config/settings.md).<br>**Options:** Comma-separated string or list of users, `all` for every user who has server access, or leave blank for just the server owner. | :fontawesome-solid-circle-xmark:{ .red } | +| `exclude_users` | Determine which Users will be excluded from having the playlist synced.<br>This will override the global [`playlist_excude_users` Setting](../config/settings.md).<br>**Options:** Comma-separated string or list of users, `all` for every user who has server access, or leave blank for just the server owner. | :fontawesome-solid-circle-xmark:{ .red } | +| `delete_playlist` | Will delete this playlist for the users defined by sync_to_users.<br>**Options:** `true` or `false` | :fontawesome-solid-circle-xmark:{ .red } | * Any defined playlist will be always be visible by The Plex Media Server owner, so it doesn't need to be defined within `sync_to_users`. ## Example Playlists -In the following example, media is pulled from the `Movies` and `TV Shows` libraries into the one Playlist, and the playlist is shared with a specific set of users: +In the following example, media is pulled from the `Movies` and `TV Shows` libraries into the one Playlist, and the +playlist is shared with a specific set of users: ```yaml playlists: diff --git a/docs/files/settings.md b/docs/files/settings.md new file mode 100644 index 00000000..70fab992 --- /dev/null +++ b/docs/files/settings.md @@ -0,0 +1,60 @@ +--- +search: + boost: 3 +--- +# Definition Settings + +All the following attributes serve various functions as how the definition functions inside of Plex Meta Manager. + +| Attribute | Description & Values | +|:-----------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `name` | **Description:** Used to specify the name of the definition in Plex as different than the mapping name.<br>**Values:** Any String | +| `limit` | **Description:** Used to specify the max number of items for the definition<br>**Values:** Number greater than 0 | +| `template` | **Description:** Used to specify a template and template variables to use for this definition. See the [Templates Page](templates.md) for more information.<br>**Values:** Dictionary | +| `schedule` | **Description:** Used to specify the schedule when this definition will run.<br>**Default:** `daily`<br>**Values:** [Any Schedule Option](../config/schedule.md) | +| `run_again` | **Description:** Used to try and add all the missing items to the definition again after the daily run.<br>**Default:** `false`<br>**Values:** `true` or `false` | +| `sync_mode` | **Description:** Used to change how builders sync with this definition.<br>**Default:** `sync_mode` [settings value](../config/settings.md) in the Configuration File<br>**Values:**<table class="clearTable"><tr><td>`append`</td><td>Only Add Items to the Collection</td></tr><tr><td>`sync`</td><td>Add & Remove Items from the Collection</td></tr></table> | +| `builder_level` | **Description:** Make season, episode, album or track collections/overlays from `plex_all`, `plex_search`, `trakt_list`, or `imdb_list` Builders and Filters<br>**Values:**<table class="clearTable"><tr><td>`season`</td><td>Collection contains seasons</td></tr><tr><td>`episode`</td><td>Collection contains episodes</td></tr><tr><td>`album`</td><td>Collection contains albums</td></tr><tr><td>`track`</td><td>Collection contains tracks</td></tr></table> | +| `minimum_items` | **Description:** Minimum items that must be found to add to a definition.<br>**Default:** `minimum_items` [settings value](../config/settings.md) in the Configuration File<br>**Values:** number greater than 0 | +| `delete_below_minimum` | **Description:** Deletes the definition if below the minimum.<br>**Default:** `delete_below_minimum` [settings value](../config/settings.md) in the Configuration File<br>**Values:** `true` or `false` | +| `delete_not_scheduled` | **Description:** Deletes the definition if its skipped because its not scheduled.<br>**Default:** `delete_not_scheduled` [settings value](../config/settings.md) in the Configuration File<br>**Values:** `true` or `false` | +| `tmdb_region` | **Description:** Sets the region for `tmdb_popular`, `tmdb_now_playing`, `tmdb_top_rated`, and `tmdb_upcoming` | +| `validate_builders` | **Description:** When set to false the definition will not fail if one builder fails.<br>**Default:** `true`<br>**Values:** `true` or `false` | +| `cache_builders` | **Description:** Caches the items found by the builders for a number of days. This is useful if you run the same configuration on multiple libraries/servers in one run just set the value to `1`.<br>**Default:** `0` <br>**Values:** number 0 or greater | +| `blank_collection` | **Description:** When set to true the collection will be created with no builders and no items added.<br>**Default:** `false`<br>**Values:** `true` or `false` | +| `build_collection` | **Description:** When set to false the collection won't be created but items can still be added to Radarr/Sonarr. Does not work for playlists.<br>**Default:** `true`<br>**Values:** `true` or `false` | +| `server_preroll` | **Description:** Used to set the `Movie pre-roll video` Text box in Plex under Settings -> Extras.<br>You can run this with a [schedule](../config/schedule.md) to change the pre-rolls automatically.<br>**Values:** Any String | +| `missing_only_released` | **Description:** definition Level `missing_only_released` toggle.<br>**Default:** `missing_only_released` [settings value](../config/settings.md) in the Configuration File<br>**Values:** `true` or `false` | +| `only_filter_missing` | **Description:** definition Level `only_filter_missing` toggle.<br>**Default:** `only_filter_missing` [settings value](../config/settings.md) in the Configuration File<br>**Values:** `true` or `false` | +| `show_filtered` | **Description:** definition level `show_filtered` toggle.<br>**Default:** `show_filtered` [settings value](../config/settings.md) in the Configuration File<br>**Values:** `true` or `false` | +| `show_missing` | **Description:** definition level `show_missing` toggle.<br>**Default:** `show_missing` [settings value](../config/settings.md) in the Configuration File<br>**Values:** `true` or `false` | +| `save_report` | **Description:** definition level `save_report` toggle.<br>**Default:** `save_report` [settings value](../config/settings.md) in the Configuration File<br>**Values:** `true` or `false` | +| `ignore_ids` | **Description:** definition level `ignore_ids` which is combined with the library and global `ignore_ids`.<br>**Default:** `ignore_ids` [settings value](../config/settings.md) in the Configuration File<br>**Values:** List or comma-separated String of TMDb/TVDb IDs | +| `ignore_imdb_ids` | **Description:** definition level `ignore_imdb_ids` which is combined with the library and global `ignore_imdb_ids`.<br>**Default:** `ignore_imdb_ids` [settings value](../config/settings.md) in the Configuration File<br>**Values:** List or comma-separated String of IMDb IDs | +| `name_mapping` | **Description:** Used to specify the folder name in the [Image Assets Directory](../pmm/guides/assets.md) i.e. if your definition name contains characters that are not allowed in file paths (i.e. for windows `<`, `>`, `:`, `"`, `/`, `\`, `?`, `*` cannot be in the file path), but you want them in your name you can this to specify the name in the file system.<br>**Values:** Any String | +| `test` | **Description:** When running in Test Mode (`--run-tests` [option](../pmm/environmental.md)) only definitions with `test: true` will be run.<br>**Default:** `false`<br>**Values:** `true` or `false` | +| `tmdb_birthday` | **Description:** Controls if the Definition is run based on `tmdb_person`'s Birthday. Has 3 possible attributes `this_month`, `before` and `after`.<br>**Values:**<table class="clearTable"><tr><td>`this_month`</td><td>Run's if Birthday is in current Month</td><td>`true`/`false`</td></tr><tr><td>`before`</td><td>Run if X Number of Days before the Birthday</td><td>Number 0 or greater</td></tr><tr><td>`after`</td><td>Run if X Number of Days after the Birthday</td><td>Number 0 or greater</td></tr></table> | +| `changes_webhooks` | **Description:** Used to specify a definition changes webhook for just this definition.<br>**Values:** List of webhooks | +| `sync_to_trakt_list` | **Description:** Used to specify a trakt list you want the definition synced to.<br>**Values:** Trakt List Slug you want to sync to | +| `sync_missing_to_trakt_list` | **Description:** Used to also sync missing items to the Trakt List specified by `sync_to_trakt_list`.<br>**Default:** `false`<br>**Values:** `true` or `false` | +| `run_definition` | **Description:** Used to specify if this definition runs.<br>Multiple can be used for one definition as a list or comma separated string. One `false` or unmatched library type will cause it to fail.<br>**Values:** `movie`, `show`, `artist`, `true`, `false` | +| `default_percent` | **Description:** Used to declare the default percent for `episodes`, `seasons`, `tracks`, and `albums` [special filters](filters.md#special-filters). Default is 50.<br>**Values:** Integer between 1 and 100 | +| `ignore_blank_results` | **Description:** Used to not have Errors resulting from blank results from builders.<br>**Default:** `false`<br>**Values:** `true` or `false` | +| `only_run_on_create` | **Description:** Used to only run the collection definition if the collection doesn't already exist.<br>**Default:** `false`<br>**Values:** `true` or `false` | +| `delete_collections_named` | **Description:** Used to delete any collections in your plex named one of the given collections.<br>**Values:** List of Collection Names to delete | + +An example of using `default_percent` which is used in an external yml file and not within config.yml: + +```yml + HDR10Plus: + default_percent: 35 #default default_percent is 50 + template: + - name: Resolution + weight: 400 + opt1: hdr10p + plex_search: + all: + hdr: true + filters: + filepath.regex: 'HDR10\+|HDR10P' +``` \ No newline at end of file diff --git a/docs/files/templates.md b/docs/files/templates.md new file mode 100644 index 00000000..ada30993 --- /dev/null +++ b/docs/files/templates.md @@ -0,0 +1,498 @@ +# Templates + +Collection, Playlist, Metadata, and Overlay Files often share a lot of common or generalizable configuration details. +Templates allow you to define these details in order for them to be used across multiple definitions. + +Templates definitions are placed under the top level attribute `templates`. The `templates` top level attribute and its +templates can either be defined in the same file as the other definitions or from an external file using the top level +`external_templates` attribute. See [File Blocks](../config/files.md) for how to define files for `external_templates`. + +??? example "External Template Example (click to expand)" + + In this example this is a file in your config folder called `my_templates.yml`. + + ```yaml + templates: + Actor: + plex_search: + all: + actor: tmdb + tmdb_person: <<person>> + sort_title: "!_<<collection_name>>" + sync_mode: sync + collection_order: release + ``` + + This is a Collection File in your config folder called `actors.yml`. + + ```yaml + external_templates: + - file: config/my_templates.yml + collections: + Bruce Lee: + template: {name: Actor, person: 19429} + Chris Pratt: + template: + name: Actor + person: 73457 + ``` + +## Template Definition + +Inside a template definition, you can use all the [Builders](builders/overview.md), [Filters](filters.md), +[Settings](settings.md), [Updates](updates.md), and [Item Updates](item_updates.md) attributes that you can give +collections/playlists [except `template`; templates cannot be nested]. + +In addition, templates also have a few special attributes that they can use: + +??? blank "`default` - Sets what template variables default to.<a class="headerlink" href="#default" title="Permanent link">¶</a>" + + <div id="default" />The `default` attribute allows default values for template variables to be used if they're not + specified in the call. It's value is a dictionary of key value pairs where the key is the template variable and the + value is the default value to set it to when not provided. + + **A variable cannot be default if it is a conditional variable.** + + ???+ example "Example" + + Click the :fontawesome-solid-circle-plus: icon to learn more + + ```yaml + templates: + Actor: + default: + my_sync_mode: sync #(1)! + plex_search: + all: + actor: tmdb + tmdb_person: <<person>> + sort_title: "!_<<collection_name>>" + sync_mode: <<my_sync_mode>> #(2)! + collection_order: release + collections: + Bruce Lee: + template: + name: Actor + person: 19429 + my_sync_mode: append #(3)! + Chris Pratt: + template: #(4)! + name: Actor + person: 73457 + ``` + + 1. This sets the default value of the template variable `my_sync_mode` to `sync`. + 2. The value for template variable `my_sync_mode` will replace `<<my_sync_mode>>` here. + 3. This specifiys that `my_sync_mode` for this definition will be `append`. + 4. Since `my_sync_mode` is not passed to this definition the value of `my_sync_mode` will be the default `sync`. + +??? blank "`optional` - List of template variables to be removed when not provided.<a class="headerlink" href="#optional" title="Permanent link">¶</a>" + + <div id="optional" />The `optional` attribute can specify variables that when not specified on the template call + will cause any attribute using one of those variables to be ignored in the template. It's value is a list of + template variables to be considered optional. + + **You can make any template variable optional per collection by setting it to `null`.** + + **A variable cannot be optional if it is a conditional variable or has a default value.** + + ???+ example "Example" + + Click the :fontawesome-solid-circle-plus: icon to learn more + + ```yaml + templates: + Actor: + optional: + - my_sync_mode #(1)! + plex_search: + all: + actor: tmdb + tmdb_person: <<person>> + sort_title: "!_<<collection_name>>" + sync_mode: <<my_sync_mode>> #(2)! + collection_order: release + collections: + Bruce Lee: + template: + name: Actor + person: 19429 + my_sync_mode: append #(3)! + Chris Pratt: + template: #(4)! + name: Actor + person: 73457 + ``` + + 1. This sets the template variable `my_sync_mode` as an optional variable. + 2. The value for template variable `my_sync_mode` will replace `<<my_sync_mode>>` here or removed as optional. + 3. This specifiys that `my_sync_mode` for this definition will be `append`. + 4. Since `my_sync_mode` is not passed to this definition it will ignore the entire `sync_mode` attribute in the + template. + +??? blank "`conditionals` - Can set template variables based on other template variables.<a class="headerlink" href="#conditionals" title="Permanent link">¶</a>" + + <div id="conditionals" />Each conditional is identified by its mapping name under the top level `conditionals` + attribute can have these attributes: + + | Attribute | Description | + |:------------:|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | `conditions` | A list of condition blocks where if all conditions are met then the variable will be the `value` specified in that condition block. Once all conditions in a block are met, that `value` will be used and no other blocks will be run.<br>**This attribute is required** | + | `default` | The default value for when no condition block is met. If default is not specified the variable becomes an optional variable.<br>**This attribute is optional** | + + #### Condition Blocks + + A condition block consists of one or more key value pairs comparing given template variables to pre supplied static + values. + + The key is the name of the template variable who's value you want to compare. While the value is the staic value or + values to compare aginst. Every condition block must also have the `value` key which will be the value of the + template variable if all the conditions in that block are met. + + There are three ways to compare values: + + 1. Using no modifier: + + * The given template variable's value must equal the static value or be in the list of static values. + + 2. Using the not modifier by appending `.not` to the key template variable: + + * The given template variable's value must not equal the static value or not be in the list of static values. + + 3. Using the exists modifier by appending `.exists` to the key template variable: + + * While `ture` the template variable specified must exist in the template call. + * While anything but `true` the template variable specified must not exist in the template call. + + ???+ example "Example" + + Click the :fontawesome-solid-circle-plus: icon to learn more + + ```yaml + templates: + CustomTemplate: + conditionals: #(1)! + offset: #(2)! + default: 15 #(3)! + conditions: #(4)! + - align.exists: false #(5)! + value: 150 + - align: center #(6)! + value: 0 + - align: [top, bottom] #(7)! + value: 15 + key_name: #(8)! + conditions: #(9)! + - style: standards #(10)! + key: 1080 + value: Full HD + - style: standards #(11)! + key: 4k + value: Ultra HD + ``` + + 1. This is the main `conditionals` attribute to start the whole seciton. + 2. This is the main mapping of the conditional template variable `offset`. + 3. This sets the default variable of `offset` to `15`. + 4. This is the base attribute for the condition blocks. + 5. If the variable `align` is not provided to the template then set the variable to `150`. + 6. If the variable `align` is passed with the value `center` then set the variable to `0`. + 7. If the variable `align` is passed with the value `top` or `bottom` then set the variable to `15`. + 8. This is the main mapping of the conditional template variable `key_name`.<br><br>Since `default` is not used + `key_name` will be added to the optional variable list. + 9. This is the base attribute for the condition blocks. + 10. If the variable `style` is passed with the value `standards` and the variable `key` is passed with the value + `1080` then set the variable to `Full HD`. + 11. If the variable `style` is passed with the value `standards` and the variable `key` is passed with the value + `4k` then set the variable to `Ultra HD`. + +??? blank "`move_prefix` - List of prefixes to move to the end of the collection/playlist name for sorting.<a class="headerlink" href="#move-prefix" title="Permanent link">¶</a>" + + <div id="move-prefix" />The `move_prefix` attribute can be used to specify a list or comma-separated string of + prefixes to move to the end of the collection/playlist name for sorting. This changes the template variables + `collection_sort` and `playlist_sort`. + + ???+ example "Example" + + If you have `move_prefix: The, A, An` and a collection is called `The Avengers` then `<<collection_sort>>` is + replaced with `Avengers, The` instead of `The Avengers` for that collection, but the collection `Iron Man` will + still just be `Iron Man`. + + ```yaml + templates: + Movies: + move_prefix: The, A, An + tmdb_collection: <<tmdb_id>> + sort_title: <<collection_sort>> + collection_order: release + collections: + The Avengers: + template: + name: Movies + tmdb_id: 86311 + Iron Man: + template: + name: Movies + tmdb_id: 131292 + ``` + +Every template also has access to these template variables: + +* Either `<<collection_name>>`, `<<playlist_name>>`, or `<<overlay_name>>` which is the name of the definition. +* `<<mapping_name>>` is the original mapping name for the definition in the YAML file. +* Either `<<collection_sort>>` or `<<playlist_sort>>` which is the name of the definition after `move_prefix` is applied. +* `<<library_type>>` which is the library type (`movie`, `show`, `artist`, `video`). +* `<<library_name>>` which is the name of the library. +* All template variables can append `_encoded` to the variable name to use a URL encode version of the variable. ex. +`<<collection_name_encoded>>` + +## Template Call + +To call a template from a definition you use the `template` attribute with the `name` attribute under it. Any attribute +besides `name` under `template` is considered a template variables which are used to define the data that going to be +changing in the template. + +???+ tip + + The name of the template and the template variable names that you define are arbitrary, but they must match exactly + between the template definition and the template call. + +### Template Name + +The `name` attribute is what tells the template call which template to use. Its value must correspond exactly to the +template mapping name you want to call. + +??? example "Template Name Example (click to expand)" + + This is an example using the template name `Actor` showing the template being called in two different ways. + + ```yaml + templates: + Actor: #(1)! + plex_search: + all: + actor: tmdb + tmdb_person: <<person>> + sort_title: "!_<<collection_name>>" + sync_mode: sync + collection_order: release + collections: + Bruce Lee: + template: {name: Actor, person: 19429} #(2)! + Chris Pratt: + template: + name: Actor #(3)! + person: 73457 + ``` + + 1. This defines the template name as `Actor`. + 2. This calls the `Actor` template using inline YAML syntax. + 3. This calls the `Actor` template using a more readable YAML syntax. + +### Template Variables + +Any other attribute aside from `name` under `template` is considered a template variable whose name must correspond +exactly with the template variable name surrounded by `<<` and `>>` in the template definition. These template variables +will replace any part of any value that contains the template variable name surrounded by `<<` and `>>` in the template +with the specified template variable's value. + +??? example "Template Variables Example (click to expand)" + + This is an example using the template name `Actor` showing the template being called in two different ways. + + ```yaml + templates: + Actor: + plex_search: + all: + actor: tmdb + tmdb_person: <<person>> #(1)! + sort_title: "!_<<collection_name>>" + sync_mode: sync + collection_order: release + collections: + Bruce Lee: + template: {name: Actor, person: 19429} #(2)! + Chris Pratt: + template: + name: Actor + person: 73457 #(3)! + ``` + + 1. The template variable `person` will replace `<<person>>` here. + 2. This calls the `Actor` template with the template variable `person` set to `19429` using inline YAML syntax. + 3. This calls the `Actor` template with the template variable `person` set to `73457` using a more readable YAML syntax. + +### Multi-Template Variables + +When using multiple Templates in a single definition you can send the same variable to all templates by using the +`variables` attribute. + +??? example "Multi-Template Variables Example (click to expand)" + + ```yaml + templates: + Actor: + plex_search: + all: + actor: tmdb + tmdb_person: <<person>> + sort_title: "!_<<collection_name>>" + Common: + summary: "Movies that <<collection_name>> (TMDb ID: <<person>>) are in" + sync_mode: sync + collection_order: release + collections: + Bruce Lee: + variables: {person: 19429} + template: [{name: Actor}, {name: Common}] + Chris Pratt: + variables: + person: 19429 + template: + - name: Actor + - name: Common + ``` + +## Template Example + +For this example were trying to create a template for all our various Actor/Actress Collections to save space in the +YAML file and allow easier changes to all the Collections at once. + +This is the example Collection File we're going to convert to using templates. + +```yaml +collections: + Bruce Lee: + plex_search: + all: + actor: tmdb + tmdb_person: 19429 + sort_title: "!_Bruce Lee" #(1)! + sync_mode: sync + collection_order: release + Chris Pratt: + plex_search: + all: + actor: tmdb + tmdb_person: 73457 + sort_title: "!_Chris Pratt" #(2)! + sync_mode: sync + collection_order: release +``` + +1. This is wrapped in quotes because it contains a character [`!`] which has +[syntactic meaning in YAML files](../pmm/yaml.md#string-literals). This "quoting special characters" is a general YAML +requirement, not something specific to `sort_title`. +2. This is wrapped in quotes because it contains a character [`!`] which has +[syntactic meaning in YAML files](../pmm/yaml.md#string-literals). This "quoting special characters" is a general YAML requirement, not something +specific to `sort_title`. + +You can continue adding definitions this way, but there's a lot of repetition there. Both of these collections have the +same `sync_mode`, `collection_order`, and `actor` settings; the other two details, `tmdb_person` and `sort_title`, +depend on a value defined in the collection. + +Those repetitive aspects can be moved into a template and leveraged by multiple collections. For this example it might +look something like this: + +```yaml +templates: + Actor: + plex_search: + all: + actor: tmdb + tmdb_person: <<person>> + sort_title: "!_<<collection_name>>" + sync_mode: sync + collection_order: release +``` + +The only things that change are the ID that is used with `tmdb_person` and the name of the collection that is used +in `sort_title`. + +Those two things surrounded by `<< >>` are "template variables" that you can define for any collection using this +template, like this: + +```yaml +collections: + Chris Pratt: + template: + name: Actor + person: 73457 +``` + +or to do it in a single line you can do this + +```yaml +collections: + Bruce Lee: + template: {name: Actor, person: 19429} +``` + +Note that we provide the template name `Actor` and the value to insert in the place of `<<person>>`. The +`<<collection_name>>` is a template variable that is always available and doesn't have to be called out like +`<<person>>`. + +Here's the full example Actor template and two different ways to use it, as it would appear in a collection file. + +```yaml +templates: + Actor: + plex_search: + all: + actor: tmdb + tmdb_person: <<person>> + sort_title: "!_<<collection_name>>" + sync_mode: sync + collection_order: release +collections: + Bruce Lee: + template: {name: Actor, person: 19429} + Chris Pratt: + template: + name: Actor + person: 73457 +``` + +## Advanced Example + +Here's an example IMDb Genre template and two different ways to call it. + +```yaml +templates: + IMDb Genre: + default: + title: feature + limit: 100 + optional: + - poster_id + imdb_search: + type: movie + release.after: 1989-12-31 + rating.gte: 5.0 + votes.gte: 10000 + genre.any: <<genre>> + limit: <<limit>> + sort_title: "!_<<collection_name>>" + url_poster: https://theposterdb.com/api/assets/<<poster_id>> + sync_mode: sync + collection_order: alpha +collections: + Action: + template: + name: IMDb Genre + 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, 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} + summary: Romantic Comedy is a genre that attempts to catch the viewer’s heart with the combination of love and humor. This sub-genre is light-hearted and usually places the two protagonists in humorous situation. Romantic-Comedy film revolves around a romantic ideal, such as true love. In the end, the ideal triumphs over the situation or obstacle, thus creating a happy ending. + filters: + genre: Comedy +``` + +Check out the example files in the +[Plex Meta Manager Configs Repository](https://github.com/meisnate12/Plex-Meta-Manager-Configs/tree/master/meisnate12) +for more uses and examples. diff --git a/docs/builders/details/metadata.md b/docs/files/updates.md similarity index 82% rename from docs/builders/details/metadata.md rename to docs/files/updates.md index ca01edc7..0858c2f5 100644 --- a/docs/builders/details/metadata.md +++ b/docs/files/updates.md @@ -4,25 +4,23 @@ All the following attributes update various details of the definition's Metadata **Only `tmdb_person` works with Playlists.** -| Attribute | Description & Values | -|:-----------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `tmdb_person` | **Description:** Changes summary and poster to a TMDb Person's biography and profile to the first specified person as well as allow the people specified to be used in [Plex Searches](../plex.md#plex-search).<br>**Values:** TMDb Person ID or Actor Name (Will pull the first ID from the TMDb search results) (List or Comma-separated string) | -| `tmdb_person_offset` | **Description:** Offsets which search results are used by `tmdb_person`.<br>**Values:** Any number greater than 0<br>**Default:** 0 | -| `tmdb_birthday` | **Description:** Controls if the Definition is run based on `tmdb_person`'s Birthday. Has 3 possible attributes `this_month`, `before` and `after`.<br>**Values:**<table class="clearTable"><tr><td>`this_month`</td><td>Run's if Birthday is in current Month</td><td>`true`/`false`</td></tr><tr><td>`before`</td><td>Run if X Number of Days before the Birthday</td><td>Number 0 or greater</td></tr><tr><td>`after`</td><td>Run if X Number of Days after the Birthday</td><td>Number 0 or greater</td></tr></table> | -| `sort_title` | **Description:** Changes the sort title.<br>You can "promote" certain collections to the top of a library by creating a sort title starting with a `+` or "demote" certain collections to the bottom of a library by creating a sort title starting with a `~`.<br>**Values:** Text to change Sort Title | -| `content_rating` | **Description:** Changes the content rating.<br>**Values:** Text to change Content Rating | -| `label` | **Description:** Appends new labels.<br>**Values:** Comma-separated string of labels to append | -| `label.remove` | **Description:** Removes existing labels from the collection.<br>**Values:** Comma-separated string of labels to remove | -| `label.sync` | **Description:** Matches the labels of the collection to the labels provided (Leave blank to remove all labels)<br>**Values:** Comma-separated string of labels to sync | -| `collection_mode` | **Description:** Changes the Collection Mode<br>**Values:**<table class="clearTable"><tr><td>`default`</td><td>Library default</td></tr><tr><td>`hide`</td><td>Hide Collection</td></tr><tr><td>`hide_items`</td><td>Hide Items in this Collection</td></tr><tr><td>`show_items`</td><td>Show this Collection and its Items</td></tr></table> | -| `collection_order` | **Description:** Changes the Collection Order<br>**Normal Collections Only**<br>When using `custom.asc`/`custom.desc` you can only have a single builder in the collection.<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom.asc`/`custom.desc`</td><td>Order Collection Via the Builder Order ascending or descending</td></tr><tr><td>[Any `plex_search` Sort Option](../plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | -| `collection_filtering` | **Description:** Changes the Collection Filtering<br>**Smart Collections Only**<br>**Values:**<table class="clearTable"><tr><td>`admin`</td><td>Always the server admin user</td></tr><tr><td>`user`</td><td>User currently viewing the content</td></tr></table> | -| `builder_level` | **Description:** Make season, episode, album or track collections/overlays from `plex_all`, `plex_search`, `trakt_list`, or `imdb_list` Builders and Filters<br>**Values:**<table class="clearTable"><tr><td>`season`</td><td>Collection contains seasons</td></tr><tr><td>`episode`</td><td>Collection contains episodes</td></tr><tr><td>`album`</td><td>Collection contains albums</td></tr><tr><td>`track`</td><td>Collection contains tracks</td></tr></table> | -| `visible_library` | **Description:** Changes collection visible on Library Recommended Tab (Only works with Plex Pass)<br>**Values:**<table class="clearTable"><tr><td>`true`</td><td>Visible</td></tr><tr><td>`false`</td><td>Not Visible</td></tr><tr><td>[Any `schedule` Option](schedule.md)</td><td>Visible When Scheduled</td></tr></table> | -| `visible_home` | **Description:** Changes collection visible on Home Tab (Only works with Plex Pass)<br>**Values:**<table class="clearTable"><tr><td>`true`</td><td>Visible</td></tr><tr><td>`false`</td><td>Not Visible</td></tr><tr><td>[Any `schedule` Option](schedule.md)</td><td>Visible When Scheduled</td></tr></table> | -| `visible_shared` | **Description:** Changes collection visible on Shared Users' Home Tab (Only works with Plex Pass)<br>**Values:**<table class="clearTable"><tr><td>`true`</td><td>Visible</td></tr><tr><td>`false`</td><td>Not Visible</td></tr><tr><td>[Any `schedule` Option](schedule.md)</td><td>Visible When Scheduled</td></tr></table> | -| `url_theme` | **Description:** Changes the Collection Theme to the URL provided.<br>**Values:** URL to mp3 file | -| `file_theme` | **Description:** Changes the Collection Theme to the file location provided.<br>**Values:** Path to mp3 file | +| Attribute | Description & Values | +|:-----------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `tmdb_person` | **Description:** Changes summary and poster to a TMDb Person's biography and profile to the first specified person as well as allow the people specified to be used in [Plex Searches](builders/plex.md#plex-search).<br>**Values:** TMDb Person ID or Actor Name (Will pull the first ID from the TMDb search results) (List or Comma-separated string) | +| `tmdb_person_offset` | **Description:** Offsets which search results are used by `tmdb_person`.<br>**Values:** Any number greater than 0<br>**Default:** 0 | +| `sort_title` | **Description:** Changes the sort title.<br>You can "promote" certain collections to the top of a library by creating a sort title starting with a `+` or "demote" certain collections to the bottom of a library by creating a sort title starting with a `~`.<br>**Values:** Text to change Sort Title | +| `content_rating` | **Description:** Changes the content rating.<br>**Values:** Text to change Content Rating | +| `label` | **Description:** Appends new labels.<br>**Values:** Comma-separated string of labels to append | +| `label.remove` | **Description:** Removes existing labels from the collection.<br>**Values:** Comma-separated string of labels to remove | +| `label.sync` | **Description:** Matches the labels of the collection to the labels provided (Leave blank to remove all labels)<br>**Values:** Comma-separated string of labels to sync | +| `collection_mode` | **Description:** Changes the Collection Mode<br>**Values:**<table class="clearTable"><tr><td>`default`</td><td>Library default</td></tr><tr><td>`hide`</td><td>Hide Collection</td></tr><tr><td>`hide_items`</td><td>Hide Items in this Collection</td></tr><tr><td>`show_items`</td><td>Show this Collection and its Items</td></tr></table> | +| `collection_order` | **Description:** Changes the Collection Order<br>**Normal Collections Only**<br>When using `custom.asc`/`custom.desc` you can only have a single builder in the collection.<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom.asc`/`custom.desc`</td><td>Order Collection Via the Builder Order ascending or descending</td></tr><tr><td>[Any `plex_search` Sort Option](builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> | +| `collection_filtering` | **Description:** Changes the Collection Filtering<br>**Smart Collections Only**<br>**Values:**<table class="clearTable"><tr><td>`admin`</td><td>Always the server admin user</td></tr><tr><td>`user`</td><td>User currently viewing the content</td></tr></table> | +| `visible_library` | **Description:** Changes collection visible on Library Recommended Tab (Only works with Plex Pass)<br>**Values:**<table class="clearTable"><tr><td>`true`</td><td>Visible</td></tr><tr><td>`false`</td><td>Not Visible</td></tr><tr><td>[Any `schedule` Option](../config/schedule.md)</td><td>Visible When Scheduled</td></tr></table> | +| `visible_home` | **Description:** Changes collection visible on Home Tab (Only works with Plex Pass)<br>**Values:**<table class="clearTable"><tr><td>`true`</td><td>Visible</td></tr><tr><td>`false`</td><td>Not Visible</td></tr><tr><td>[Any `schedule` Option](../config/schedule.md)</td><td>Visible When Scheduled</td></tr></table> | +| `visible_shared` | **Description:** Changes collection visible on Shared Users' Home Tab (Only works with Plex Pass)<br>**Values:**<table class="clearTable"><tr><td>`true`</td><td>Visible</td></tr><tr><td>`false`</td><td>Not Visible</td></tr><tr><td>[Any `schedule` Option](../config/schedule.md)</td><td>Visible When Scheduled</td></tr></table> | +| `url_theme` | **Description:** Changes the Collection Theme to the URL provided.<br>**Values:** URL to mp3 file | +| `file_theme` | **Description:** Changes the Collection Theme to the file location provided.<br>**Values:** Path to mp3 file | * Here's an example of how the collections can look on the Home Page. @@ -49,7 +47,9 @@ All the following attributes update the poster of the collection/playlist from v **All of these details work with Playlists.** -If no poster is specified the script will look in the library's [Image Asset Directories](../../pmm/install/guides/assets.md) for a folder named either the collection/playlist name or the `name_mapping` if specified and look for a `poster.ext` file in that folder (replacing .ext with the image extension). +If no poster is specified the script will look in the library's [Image Asset Directories](../pmm/guides/assets.md) for a +folder named either the collection/playlist name or the `name_mapping` if specified and look for a `poster.ext` file in +that folder (replacing .ext with the image extension). | Attribute | Description & Values | |:-------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -67,7 +67,9 @@ All the following attributes update the background of the collection/playlist fr **All of these details work with Playlists.** -If no background is specified the script will look in the library's [Image Asset Directories](../../pmm/install/guides/assets.md) for a folder named either the collection/playlist name or the `name_mapping` if specified and look for a `background.ext` file in that folder (replacing .ext with the image extension). +If no background is specified the script will look in the library's [Image Asset Directories](../pmm/guides/assets.md) +for a folder named either the collection/playlist name or the `name_mapping` if specified and look for a +`background.ext` file in that folder (replacing .ext with the image extension). | Attribute | Description & Values | |:------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| diff --git a/docs/home.md b/docs/home.md index dd0c9c8b..ead06111 100644 --- a/docs/home.md +++ b/docs/home.md @@ -7,7 +7,7 @@ [![Develop GitHub commits since latest stable release (by SemVer)](https://img.shields.io/github/commits-since/meisnate12/plex-meta-manager/latest/develop?label=Commits%20in%20Develop&style=plastic)](https://github.com/meisnate12/Plex-Meta-Manager/tree/develop) [![Nightly GitHub commits since latest stable release (by SemVer)](https://img.shields.io/github/commits-since/meisnate12/plex-meta-manager/latest/nightly?label=Commits%20in%20Nightly&style=plastic)](https://github.com/meisnate12/Plex-Meta-Manager/tree/nightly) -[![Discord](https://img.shields.io/discord/822460010649878528?color=%2300bc8c&label=Discord&style=plastic)](https://discord.gg/NfH6mGFuAB) +[![Discord](https://img.shields.io/discord/822460010649878528?color=%2300bc8c&label=Discord&style=plastic)](https://metamanager.wiki/en/latest/discord/) [![Reddit](https://img.shields.io/reddit/subreddit-subscribers/PlexMetaManager?color=%2300bc8c&label=r%2FPlexMetaManager&style=plastic)](https://www.reddit.com/r/PlexMetaManager/) [![Wiki](https://img.shields.io/readthedocs/plex-meta-manager?color=%2300bc8c&style=plastic)](https://metamanager.wiki) [![Translations](https://img.shields.io/weblate/progress/plex-meta-manager?color=00bc8c&server=https%3A%2F%2Ftranslations.metamanager.wiki&style=plastic)](https://translations.metamanager.wiki/projects/plex-meta-manager/#languages) @@ -43,14 +43,13 @@ Transform your media library with Plex Meta Manager and discover its full potent Here are some examples of the things you can achieve using Plex Meta Manager! -**Example Movie Collections using the [Plex Meta Manager Defaults](#Plex Meta Manager-defaults.md)** (click to enlarge): +**Example Movie Collections using the [Plex Meta Manager Defaults](defaults/collections.md)** (click to enlarge): -![Movie Collection Preview](assets/movie-collection-preview.png){width="600"} +![Movie Collection Preview](images/movie-collection-preview.png){width="600"} -**Example Show Overlays using the [Plex Meta Manager Defaults](#Plex Meta Manager-defaults.md)** (click to enlarge): - -![Show Library Preview](assets/show-library-preview.png){ width="600" } +**Example Show Overlays using the [Plex Meta Manager Defaults](defaults/overlays.md)** (click to enlarge): +![Show Library Preview](images/show-library-preview.png){ width="600" } ## Plex Meta Manager Defaults @@ -58,17 +57,17 @@ Want your library to look like the above images? With the [PMM Defaults](defaul Want to see what the community has to offer? Check out the [Plex Meta Manager Configs](https://github.com/meisnate12/Plex-Meta-Manager-Configs) repository on GitHub to see user-submitted configuration files, or even add your own to the mix! -With Plex Meta Manager, you can also manage metadata for all your media types, from movies and shows to music and more. And since your metadata is managed outside of your libraries, you'll never have to worry about losing your customizations in the event of a media server database loss, you can simply reapply them! It is also easy to move your customizations between servers if you need to. +With Plex Meta Manager, you can also manage metadata for all your media types, from movies and shows to music and more. And since your metadata is managed outside your libraries, you'll never have to worry about losing your customizations in the event of a media server database loss, you can simply reapply them! It is also easy to move your customizations between servers if you need to. ## Getting Started To get started with Plex Meta Manager, follow these simple steps: -1. Install Plex Meta Manager on your device. You can find the installation instructions for a variety of platforms [here](pmm/install/installation.md). +1. Install Plex Meta Manager on your device. You can find the installation instructions for a variety of platforms [here](pmm/install/overview.md). -2. Once you have installed Plex Meta Manager, create your [Configuration File](config/configuration.md). This file contains important information such as URLs and credentials needed to connect to services like Plex and TMDb +2. Once you have installed Plex Meta Manager, create your [Configuration File](config/overview.md). This file contains important information such as URLs and credentials needed to connect to services like Plex and TMDb -3. After creating the Configuration File, you can start updating Metadata and building automatic Collections by creating a [Collection File](config/data/collections.md) for each Library you want to work with. If you'd rather use some of our pre-made Collection Files, take a look at the [Plex Meta Manager Defaults](#defaults-and-user-metadataoverlay-files) +3. After creating the Configuration File, you can start updating Metadata and building automatic Collections by creating a [Collection File](files/collections.md) for each Library you want to work with. If you'd rather use some of our pre-made Collection Files, take a look at the [Plex Meta Manager Defaults](defaults/guide.md) 4. Finally, check out the [Wiki](https://metamanager.wiki/), you'll find new and exciting ways to truly unlock the potential of your libraries. @@ -76,9 +75,19 @@ To get started with Plex Meta Manager, follow these simple steps: If you're a beginner to the concepts of Python, Git and/or Plex Meta Manager and find the above steps challenging, don't worry. We've got some step-by-step guides that can help you get started. These guides will take you through the process of installing Plex Meta Manager, creating your Configuration File and getting some basic Collections up and running. - 1. The [Local Walkthrough](pmm/install/guides/local.md) covers installing Plex Meta Manager natively [not in docker] on your local computer or a remote server. - 2. The [Docker Walkthrough](pmm/install/guides/docker.md) covers installing Plex Meta Manager via Docker. - 3. The [unRAID Walkthrough](pmm/install/guides/unraid.md) gets you started configuring Plex Meta Manager in UNRaid. It doesn't go through the same steps with regard to creating the config file and collection file, so you may want to go through the [Docker Walkthrough](pmm/install/guides/docker.md) first on your computer to gain that understanding. +For those who need full installation walkthroughs, please refer to the following walkthrough guides: + + * [Local Walkthrough](pmm/install/local.md) - follow this if you are running the script directly on Windows, OS X, or Linux + * [Docker Walkthrough](pmm/install/docker.md) - this discusses using Docker at the command line + +If you are using unRAID, Kubernetes, QNAP, or Synology refer to the following basic guide to Docker container setup for each system: + +**this doesn't cover the PMM setup specifics found in the guides above with regard to creating the config file and collection file, so you may want to go through the [Docker Walkthrough](pmm/install/docker.md) first on your computer to gain that understanding.** + + * [unRAID Walkthrough](pmm/install/unraid.md) + * [Kubernetes Walkthrough](pmm/install/kubernetes.md) + * [QNAP Walkthrough](pmm/install/qnap.md) + * [Synology Walkthrough](pmm/install/synology.md) ## Example Usage @@ -98,15 +107,13 @@ Plex Meta Manager gives you endless possibilities to curate and organize your me But if you don't want to spend time manually creating Collections and Overlays, we've got you covered. Check out the [PMM Defaults](defaults/guide.md) - a handcrafted selection of tried-and-tested Collections and Overlays made by the Plex Meta Manager team. - - ## Develop & Nightly Branches The Develop and Nightly branches are "beta" versions of Plex Meta Manager that are updated more frequently than the stable version (Master branch). These branches are where bug fixes, new features, and other changes are added before being released to the Master branch. However, these branches (especially Nightly) are recommended for more technical users who don't mind updating frequently to get the latest changes. Keep in mind that these beta branches may have bugs or other issues that could cause problems with Plex Meta Manager or your media server. So, if you're not comfortable with technical issues, it's best to stick with the Master branch. -??? "Develop Branch - Click to Expand" +??? "Develop Branch (click to expand)" [![Develop GitHub commits since latest stable release (by SemVer)](https://img.shields.io/github/commits-since/meisnate12/plex-meta-manager/latest/develop?label=Commits%20in%20Develop&style=plastic)](https://github.com/meisnate12/Plex-Meta-Manager/tree/develop) @@ -132,7 +139,7 @@ However, these branches (especially Nightly) are recommended for more technical If switching to the develop branch, it is recommended to also use the [develop branch of the wiki](https://metamanager.wiki/en/develop/), which documents any changes made from the Master branch. -??? warning "Nightly Branch - Click to Expand" +??? warning "Nightly Branch (click to expand)" [![Nightly GitHub commits since latest stable release (by SemVer)](https://img.shields.io/github/commits-since/meisnate12/plex-meta-manager/latest/nightly?label=Commits%20in%20Nightly&style=plastic)](https://github.com/meisnate12/Plex-Meta-Manager/tree/nightly) @@ -157,11 +164,11 @@ However, these branches (especially Nightly) are recommended for more technical git checkout master ``` - As this branch is subject to extreme change, there is no promise of the feature being documented in the [nightly](https://metamanager.wiki/en/nightly/) branch of the wiki and all discussions relating to changes made in the nightly branch will be held within the [Plex Meta Manager Discord Server](https://discord.gg/NfH6mGFuAB). + As this branch is subject to extreme change, there is no promise of the feature being documented in the [nightly](https://metamanager.wiki/en/nightly/) branch of the wiki and all discussions relating to changes made in the nightly branch will be held within the [Plex Meta Manager Discord Server](https://metamanager.wiki/en/latest/discord/). ## Discord Support Server -If you're looking for support for any questions or issues you might have, or if you just want to be a part of our growing community, Join the [Plex Meta Manager Discord Server](https://discord.gg/NfH6mGFuAB). +If you're looking for support for any questions or issues you might have, or if you just want to be a part of our growing community, Join the [Plex Meta Manager Discord Server](https://metamanager.wiki/en/latest/discord/). ## Feature Requests @@ -169,10 +176,13 @@ At Plex Meta Manager, we value our community's input and actively seek feedback ## Errors and Configuration Questions -If you're having trouble, we recommend first joining the [Plex Meta Manager Discord Server](https://discord.gg/NfH6mGFuAB) and seeking support there. If that isn't possible for you, here's what you can do: +If you're having trouble, we recommend first joining the [Plex Meta Manager Discord Server](https://metamanager.wiki/en/latest/discord/) and seeking support there. If that isn't possible for you, here's what you can do: * If you get an error, update to the latest version and check if the issue persists. If it does, report the bug by filling out the [Bug Report](https://github.com/meisnate12/Plex-Meta-Manager/issues/new?assignees=meisnate12&labels=status%3Anot-yet-viewed%2C+bug&template=bug_report.md&title=Bug%3A+) template. * If you spot a mistake or have an idea to improve the [Plex Meta Manager Wiki](https://metamanager.wiki/), submit a request using the [Wiki Request](https://github.com/meisnate12/Plex-Meta-Manager/issues/new?assignees=meisnate12&labels=status%3Anot-yet-viewed%2C+documentation&template=3.docs_request.yml&title=%5BDocs%5D%3A+) template. * If you have a question about metadata configuration, start a discussion on the [Discussions](https://github.com/meisnate12/Plex-Meta-Manager/discussions). Remember, the community helps shape the future of Plex Meta Manager, so your input is valuable! -For support on any of the above, visit the [Discord server](https://discord.gg/ugfKXpFND8). \ No newline at end of file +For support on any of the above, visit the [Discord server](https://metamanager.wiki/en/latest/discord/). + +## Contributing +* Pull Requests are greatly encouraged, please submit all Pull Requests to the nightly branch. \ No newline at end of file diff --git a/docs/images/movie-collection-preview.png b/docs/images/movie-collection-preview.png new file mode 100644 index 00000000..0e0fa302 Binary files /dev/null and b/docs/images/movie-collection-preview.png differ diff --git a/docs/images/show-library-preview.png b/docs/images/show-library-preview.png new file mode 100644 index 00000000..ce98351d Binary files /dev/null and b/docs/images/show-library-preview.png differ diff --git a/docs/metadata/blur.png b/docs/metadata/blur.png deleted file mode 100644 index 9defcfb7..00000000 Binary files a/docs/metadata/blur.png and /dev/null differ diff --git a/docs/metadata/builders.md b/docs/metadata/builders.md deleted file mode 100644 index 82b2d3df..00000000 --- a/docs/metadata/builders.md +++ /dev/null @@ -1,24 +0,0 @@ -# Builders - -Builders use third-party services to source items to be added to the collection. Multiple builders can be used in the same collection from a variety of sources listed below. - -| Name | Description | Requires Config | -|:--------------------------------------------|:----------------------------------------------------------------------------------------------|:-------------------------------------------------:| -| [Plex](../builders/plex.md) | Grabs items based on the metadata inside your Plex Server. | :fontawesome-solid-circle-check:{ .green } | -| [Smart](../builders/smart.md) | Creates Smart Collections based on the metadata inside your Plex Server. (Collections Only) | :fontawesome-solid-circle-check:{ .green } | -| [TMDb](../builders/tmdb.md) | Grabs items based on metadata and lists on [TheMovieDb.org](https://www.themoviedb.org/). | :fontawesome-solid-circle-check:{ .green } | -| [TVDb](../builders/tvdb.md) | Grabs items based on metadata and lists on [TheTVDb.com](https://www.thetvdb.com/). | :fontawesome-solid-circle-xmark:{ .red } | -| [IMDb](../builders/imdb.md) | Grabs items based on metadata and lists on [IMDb.com](https://www.imdb.com/). | :fontawesome-solid-circle-xmark:{ .red } | -| [Trakt](../builders/trakt.md) | Grabs items based on metadata and lists on [Trakt.tv](https://trakt.tv/). | :fontawesome-solid-circle-check:{ .green } | -| [Tautulli](../builders/tautulli.md) | Grabs items based on metadata and lists in your [Tautulli](https://tautulli.com/). | :fontawesome-solid-circle-check:{ .green } | -| [Radarr](../builders/radarr.md) | Grabs items based on metadata and lists in your [Radarr](https://radarr.video/) . | :fontawesome-solid-circle-check:{ .green } | -| [Sonarr](../builders/sonarr.md) | Grabs items based on metadata and lists in your [Sonarr](https://sonarr.tv/). | :fontawesome-solid-circle-check:{ .green } | -| [MdbList](../builders/mdblist.md) | Grabs items based on metadata and lists on [MdbList.com](https://mdblist.com/). | :fontawesome-solid-circle-xmark:{ .red } | -| [Letterboxd](../builders/letterboxd.md) | Grabs items based on metadata and lists on [Letterboxd.com](https://letterboxd.com/). | :fontawesome-solid-circle-xmark:{ .red } | -| [ICheckMovies](../builders/icheckmovies.md) | Grabs items based on metadata and lists on [ICheckMovies.com](https://www.icheckmovies.com/). | :fontawesome-solid-circle-xmark:{ .red } | -| [FlixPatrol](../builders/flixpatrol.md) | Grabs items based on metadata and lists on [FlixPatrol.com](https://flixpatrol.com/). | :fontawesome-solid-circle-xmark:{ .red } | -| [Reciperr](../builders/reciperr.md) | Grabs items based on metadata and lists on [reciperr.com](https://reciperr.com/). | :fontawesome-solid-circle-xmark:{ .red } | -| [StevenLu](../builders/stevenlu.md) | Grabs items based on metadata and lists on [StevenLu.com](https://movies.stevenlu.com/). | :fontawesome-solid-circle-xmark:{ .red } | -| [AniDB](../builders/anidb.md) | Grabs items based on metadata and lists on [AniDB.net](https://anidb.net/). | :fontawesome-solid-circle-xmark:{ .red } | -| [AniList](../builders/anilist.md) | Grabs items based on metadata and lists on [AniList.co](https://anilist.co/). | :fontawesome-solid-circle-xmark:{ .red } | -| [MyAnimeList](../builders/myanimelist.md) | Grabs items based on metadata and lists on [MyAnimeList.net](https://myanimelist.net/). | :fontawesome-solid-circle-check:{ .green } | \ No newline at end of file diff --git a/docs/metadata/dynamic.md b/docs/metadata/dynamic.md deleted file mode 100644 index 4bfdb2f5..00000000 --- a/docs/metadata/dynamic.md +++ /dev/null @@ -1,105 +0,0 @@ -# Dynamic Collections - -Plex Meta Manager can dynamically create collections based on different criteria, such as -* Collections based on the Collections from TMDb for every item in the library. ([Star Wars](https://www.themoviedb.org/collection/10-star-wars-collection), [Harry Potter](https://www.themoviedb.org/collection/1241), etc...) -* Collections based on each of a Users Trakt Lists -* Collections for the top `X` popular people on TMDb (Bruce Willis, Tom Hanks, etc...) -* Collections for each decade represented in the library (Best of 1990s, Best of 2000s, etc...) -* Collections for each of the moods/styles within a Music library (A Cappella, Pop Rock, etc...) - -The main purpose of dynamic collections is to automate the creation of collections which would otherwise require considerable user input and repetition (such as creating a collection for every genre). - -Each dynamic collection must have a mapping name (just like standard collections), which is also attached to the collection as a label to mark it as having been created by this dynamic collection. - -This example will create a collection for every TMDb Collection associated with items in the library. - -```yaml -dynamic_collections: - TMDb Collections: # This name is the mapping name - type: tmdb_collection - remove_suffix: "Collection" -``` - -## Collection Naming - -By default, the collections generated will be named for the thing being used to create them; things like genres, countries, actors or even Trakt List Names. - -There are many attributes that can change the titles, including `title_format`, `remove_suffix`, `remove_prefix`, `key_name_override`, and `title_override` all detailed below. - -## Dynamic Keys & Key Names - -A `dynamic key` or `key` for short is used to refer to a specific value/result from the dynamic collection criteria that will be used to create the collection. - -A `key_name` is the name that replaces `<<key_name>>` in `title_format` to create the collection titles for each key. - -An example of some keys and their names that would be generated from a `tmdb_collection` dynamic collection are -* `key`: "10" - * `key_name`: Star Wars Collection -* `key`: "1241" - * `key_name`: Harry Potter Collection - -### Example Key Usage - -Keys can be used for a number of purposes, examples can be found throughout this page. A few examples are shown below: - -* Excluding the "Horror" key from the `Genre` dynamic collection definition - -```yaml -dynamic_collections: - Genres: # mapping name does not matter, just needs to be unique - type: genre - exclude: - - Horror -``` - -* Using the `key_name_override` attribute to change the formatting of "France" to "French" so that a collection can be named "French Cinema" instead of simply "France" - * This particular example also uses the `title_format` attribute to manipulate the naming convention of the collections. - -```yaml -dynamic_collections: - Countries: # mapping name does not matter, just needs to be unique - type: country - title_format: <<key_name>> Cinema - key_name_override: - France: French -``` - -* Using the `addons` attribute to combine multiple `keys`, i.e. merging "MTV2", "MTV3" and "MTV (UK)" into one "MTV" collection. - * When doing this, individual collections will not be created for the individual MTV collections, instead they will be merged within the "MTV" collection. - -```yaml -dynamic_collections: - networks: - type: network - addons: - MTV: - - MTV2 - - MTV3 - - MTV (UK) -``` - -## Attributes - -| Attribute | Description | Required | -|:--------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------:| -| [`type`](#type--data) | Type of Dynamic Collection to be created. | :fontawesome-solid-circle-check:{ .green } | -| [`data`](#type--data) | Data to determine how dynamic collections with a certain `type` are created. | Depends on `type` | -| [`exclude`](#exclude) | Exclude this list of keys from being created into collections. | :fontawesome-solid-circle-xmark:{ .red } | -| [`addons`](#addons) | Defines how multiple keys can be combined under a parent key. | :fontawesome-solid-circle-xmark:{ .red } | -| [`template`](#template) | Name of the template to use for these dynamic collections. | :fontawesome-solid-circle-xmark:{ .red } | -| [`template_variables`](#template-variables) | Defines how template variables can be defined by key. | :fontawesome-solid-circle-xmark:{ .red } | -| [`other_template`](#other-template) | Name of the template to use for the other collection. | :fontawesome-solid-circle-xmark:{ .red } | -| [`remove_suffix`](#remove-prefixsuffix) | Removes the defined suffixes from the key before it's used in the collection title. | :fontawesome-solid-circle-xmark:{ .red } | -| [`remove_prefix`](#remove-prefixsuffix) | Removes the defined prefixes from the key before it's used in the collection title. | :fontawesome-solid-circle-xmark:{ .red } | -| [`title_format`](#title-format) | This is the format for the collection titles. | :fontawesome-solid-circle-xmark:{ .red } | -| [`key_name_override`](#key-name-override) | Defines how key names can be overridden before they are formatted into collection titles. | :fontawesome-solid-circle-xmark:{ .red } | -| [`title_override`](#title-override) | Defines how collection titles can be overridden ignoring title formatting. | :fontawesome-solid-circle-xmark:{ .red } | -| [`custom_keys`](#custom-keys) | Defines if custom keys are allowed. | :fontawesome-solid-circle-xmark:{ .red } | -| [`test`](#test) | Will add `test: true` to all collections for test runs. | :fontawesome-solid-circle-xmark:{ .red } | -| [`sync`](#sync) | Will remove dynamic collections that are no longer in the creation list. | :fontawesome-solid-circle-xmark:{ .red } | -| [`include`](#include) | Define a list of keys to be made into collections. | :fontawesome-solid-circle-xmark:{ .red } | -| [`other_name`](#other-name) | Used in combination with `include`. When defined, all keys not in `include` or `addons` will be combined into this collection. | :fontawesome-solid-circle-xmark:{ .red } | - -{% - include-markdown "./dynamic_types.md" -%} \ No newline at end of file diff --git a/docs/metadata/dynamic_types.md b/docs/metadata/dynamic_types.md deleted file mode 100644 index 86530299..00000000 --- a/docs/metadata/dynamic_types.md +++ /dev/null @@ -1,2243 +0,0 @@ -# Dynamic Collection Types - -Specifies the type of dynamic collection to be created. - -Depending on the `type` of dynamic collection, `data` is used to specify the options that are required to fulfill the requirements of creating the collection. - -| Type Option | Description | Uses<br>`data` | Movies | Shows | Music | Video | -|:----------------------------------------------|:------------------------------------------------------------------------------------------------------------|:------------------------------------------------:|:------------------------------------------:|:------------------------------------------:|:------------------------------------------:|:------------------------------------------:| -| [`tmdb_collection`](#tmdb-collection) | Create a collection for each TMDb Collection associated with an item in the library | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`tmdb_popular_people`](#tmdb-popular-people) | Create a collection for each actor found on [TMDb's Popular People List](https://www.themoviedb.org/person) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`original_language`](#original-language) | Create a collection for each TMDb original language associated with an item in the library | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`origin_country`](#origin-country) | Create a collection for each TMDb origin country associated with an item in the library | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`trakt_user_lists`](#trakt-user-lists) | Create a collection for each list from specific trakt users | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`trakt_liked_lists`](#trakt-liked-lists) | Create a collection for each list the authenticated trakt user likes | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`trakt_people_list`](#trakt-people-list) | Create a collection for each actor found in the trakt list | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`actor`](#actor) | Create a collection for each actor found in the library | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`director`](#director) | Create a collection for each director found in the library | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`writer`](#writer) | Create a collection for each writer found in the library | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`producer`](#producer) | Create a collection for each producer found in the library | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`genre`](#genre) | Create a collection for each genre found in the library | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| [`album_genre`](#album-genre) | Create a collection for each album genre found in the library | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| [`content_rating`](#content-rating) | Create a collection for each content rating found in the library | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | -| [`year`](#year) | Create a collection for each year found in the library | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`episode_year`](#episode-year) | Create a collection for each episode year found in the library | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`decade`](#decade) | Create a collection for each decade found in the library | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`country`](#country) | Create a collection for each country found in the library | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| [`resolution`](#resolution) | Create a collection for each resolution found in the library | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`subtitle_language`](#subtitle-language) | Create a collection for each subtitle language found in the library | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`audio_language`](#audio-language) | Create a collection for each audio language found in the library | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`studio`](#studio) | Create a collection for each studio found in the library | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`edition`](#edition) | Create a collection for each edition found in the library | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`network`](#network) | Create a collection for each network found in the library | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| [`mood`](#mood) | Create a collection for each artist mood found in the library | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| [`album_mood`](#album-mood) | Create a collection for each album mood found in the library | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| [`track_mood`](#track-mood) | Create a collection for each track mood found in the library | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| [`style`](#style) | Create a collection for each artist style found in the library | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| [`album_style`](#album-style) | Create a collection for each album style found in the library | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| [`number`](#number) | Creates a collection for each number defined | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| [`custom`](#custom) | Creates a collection for each custom `key: key_name` pair defined. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | - -## TMDb Collection - -Create collections based on the TMDb Collections associated with items in the library. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th><code>type</code></th> - <td><code>tmdb_collection</code></td> - </tr> - <tr> - <th><code>data</code></th> - <td>Not Used</td> - </tr> - <tr> - <th>Keys</th> - <td>TMDb Collection ID</td> - </tr> - <tr> - <th>Key Names</th> - <td>TMDb Collection Title</td> - </tr> - <tr> - <th>Default <code>title_format</code></th> - <td><code><<key_name>></code></td> - </tr> - <tr> - <th>Default Template</th> - <td> - -```yaml -default_template: - tmdb_collection_details: <<value>> - minimum_items: 2 -``` - -</td> - </tr> -</table> - -#### Example: Create collection for every TMDb Collection found in the library. - -```yaml -dynamic_collections: - TMDb Collections: # This name is the mapping name - type: tmdb_collection - remove_suffix: Collection - remove_prefix: The -``` - -## TMDb Popular People - -Create collections based on each actor found on [TMDb's Popular People List](https://www.themoviedb.org/person). - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th><code>type</code></th> - <td><code>tmdb_popular_people</code></td> - </tr> - <tr> - <th><code>data</code></th> - <td>Number greater than 0</td> - </tr> - <tr> - <th>Keys</th> - <td>TMDb Person ID</td> - </tr> - <tr> - <th>Key Names</th> - <td>TMDb Person Name</td> - </tr> - <tr> - <th>Default <code>title_format</code></th> - <td><code><<key_name>></code></td> - </tr> - <tr> - <th>Default Template</th> - <td> - -```yaml -default_template: - tmdb_person: <<value>> - plex_search: - all: - actor: tmdb -``` - -</td> - </tr> -</table> - -#### Example: Create collection for the top 10 popular people - -```yaml -dynamic_collections: - TMDb Popular People: # This name is the mapping name - type: tmdb_popular_people - data: 10 -``` - -## Original Language - -Create collections based on the TMDb original language associated with items in the library. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th><code>type</code></th> - <td><code>original_language</code></td> - </tr> - <tr> - <th><code>data</code></th> - <td>Not Used</td> - </tr> - <tr> - <th>Keys</th> - <td><a href="https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes">ISO 639-1 Code</a></td> - </tr> - <tr> - <th>Key Names</th> - <td>ISO Language Name</td> - </tr> - <tr> - <th>Default <code>title_format</code></th> - <td><code><<key_name>> <<library_type>>s</code></td> - </tr> - <tr> - <th>Default Template</th> - <td> - -```yaml -default_template: - plex_all: true - filters: - original_language: <<value>> -``` - -</td> - </tr> -</table> - -#### Example: Create collection for every TMDb Original Language found in the library. - -```yaml -dynamic_collections: - TMDb Languages: # This name is the mapping name - type: original_language -``` - -## Origin Country - -Create collections based on the TMDb origin country associated with items in the library. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th><code>type</code></th> - <td><code>origin_country</code></td> - </tr> - <tr> - <th><code>data</code></th> - <td>Not Used</td> - </tr> - <tr> - <th>Keys</th> - <td><a href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2">ISO 3166-1 alpha-2 country code</a></td> - </tr> - <tr> - <th>Key Names</th> - <td>ISO Country Name</td> - </tr> - <tr> - <th>Default <code>title_format</code></th> - <td><code><<key_name>> <<library_type>>s</code></td> - </tr> - <tr> - <th>Default Template</th> - <td> - -```yaml -default_template: - plex_all: true - filters: - origin_country: <<value>> -``` - -</td> - </tr> -</table> - -#### Example: Create collection for every TMDb Origin Country found in the library. - -```yaml -dynamic_collections: - TMDb Countries: # This name is the mapping name - type: origin_country -``` - -## Trakt User Lists - -Create collections for each of the Trakt lists for the specified users. Use `me` to reference the authenticated user. - -* Requires [Trakt Authentication](../config/trakt.md) to be configured within the Configuration File - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th><code>type</code></th> - <td><code>trakt_user_lists</code></td> - </tr> - <tr> - <th><code>data</code></th> - <td>List of Trakt Users</td> - </tr> - <tr> - <th>Keys</th> - <td>Trakt List URL</td> - </tr> - <tr> - <th>Key Names</th> - <td>Trakt List Title</td> - </tr> - <tr> - <th>Default <code>title_format</code></th> - <td><code><<key_name>></code></td> - </tr> - <tr> - <th>Default Template</th> - <td> - -```yaml -default_template: - trakt_list_details: <<value>> -``` - -</td> - </tr> -</table> - -#### Example: Create collections for each of the lists that the users have created - -```yaml -dynamic_collections: - Trakt User Lists: # This name is the mapping name - type: trakt_user_lists - data: - - me - - yozoraxcii -``` - -## Trakt Liked Lists - -Create collections for each of the Trakt lists that the authenticated user has liked. - -* Requires [Trakt Authentication](../config/trakt.md) to be configured within the Configuration File - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th><code>type</code></th> - <td><code>trakt_liked_lists</code></td> - </tr> - <tr> - <th><code>data</code></th> - <td>Not Used</td> - </tr> - <tr> - <th>Keys</th> - <td>Trakt List URL</td> - </tr> - <tr> - <th>Key Names</th> - <td>Trakt List Title</td> - </tr> - <tr> - <th>Default <code>title_format</code></th> - <td><code><<key_name>></code></td> - </tr> - <tr> - <th>Default Template</th> - <td> - -```yaml -default_template: - trakt_list_details: <<value>> -``` - -</td> - </tr> -</table> - -#### Example: Create collections for each of the lists that the user has liked within Trakt - -```yaml -dynamic_collections: - Trakt Liked Lists: # This name is the mapping name - type: trakt_liked_lists -``` - -## Trakt People List - -Create collections for each of the people found within Trakt lists that the user specifies. - -* Requires [Trakt Authentication](../config/trakt.md) to be configured within the Configuration File - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th><code>type</code></th> - <td><code>trakt_people_list</code></td> - </tr> - <tr> - <th><code>data</code></th> - <td>List of Trakt URLs</td> - </tr> - <tr> - <th>Keys</th> - <td>TMDb Person ID</td> - </tr> - <tr> - <th>Key Names</th> - <td>TMDb Person Name</td> - </tr> - <tr> - <th>Default <code>title_format</code></th> - <td><code><<key_name>></code></td> - </tr> - <tr> - <th>Default Template</th> - <td> - -```yaml -default_template: - tmdb_person: <<value>> - plex_search: - all: - actor: tmdb -``` - -</td> - </tr> -</table> - -#### Example: Create a collection for each of the people on the trakt list -```yaml -dynamic_collections: - Trakt People Lists: - type: trakt_people_list - data: - - https://trakt.tv/users/ash9001/lists/all-time-top-actors -``` - -## Actor - -Create a collection for each actor found in the library. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th><code>type</code></th> - <td><code>actor</code></td> - </tr> - <tr> - <th><code>data</code>s</th> - <td> - <table class="clearTable"> - <tr> - <th>Attribute</th> - <th>Description & Values</th> - </tr> - <tr> - <td><code>depth</code></td> - <td><strong>Values:</strong> Number greater than 0</td> - <td><strong>Default:</strong> 3</td> - </tr> - <tr> - <td><code>minimum</code></td> - <td><strong>Values:</strong> Number greater than 0</td> - <td><strong>Default:</strong> 3</td> - </tr> - <tr> - <td><code>limit</code></td> - <td><strong>Values:</strong> Number greater than 0</td> - <td><strong>Default:</strong> None</td> - </tr> - </table> - </td> - </tr> - <tr> - <th>Keys</th> - <td>Person Name</td> - </tr> - <tr> - <th>Key Names</th> - <td>Person Name</td> - </tr> - <tr> - <th>Default <code>title_format</code></th> - <td><code><<key_name>></code></td> - </tr> - <tr> - <th>Default Template</th> - <td> - -```yaml -default_template: - plex_search: - any: - actor: <<value>> -``` - -</td> - </tr> -</table> - -* `depth` determines how many top billed actor per item they are in. (i.e. if they play a cameo role, this is unlikely to be counted) -* `minimum` determines the minimum number of times the actor must appear within `depth` for the collection to be created. -* `limit` determines the number of actor collection to max out at. (i.e. if to make collections for the top 25 actors) - -#### Example: - -* Create a collection for the top 25 actors who appear in the top 5 billing credits of movies - -```yaml -dynamic_collections: - Top Actors: # mapping name does not matter just needs to be unique - type: actor - data: - depth: 5 - limit: 25 -``` - -#### Example: - -* Create a collection for actors who appear in the top 5 billing credits of movies -* Only create the collection if they are in the top 5 billing credits of at least 20 movies - -```yaml -dynamic_collections: - Actors: # mapping name does not matter just needs to be unique - type: actor - data: - depth: 5 - minimum: 20 -``` - -## Director - -Create a collection for each director found in the library. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th><code>type</code></th> - <td><code>director</code></td> - </tr> - <tr> - <th><code>data</code>s</th> - <td> - <table class="clearTable"> - <tr> - <th>Attribute</th> - <th>Description & Values</th> - </tr> - <tr> - <td><code>depth</code></td> - <td><strong>Values:</strong> Number greater than 0</td> - <td><strong>Default:</strong> 3</td> - </tr> - <tr> - <td><code>minimum</code></td> - <td><strong>Values:</strong> Number greater than 0</td> - <td><strong>Default:</strong> 3</td> - </tr> - <tr> - <td><code>limit</code></td> - <td><strong>Values:</strong> Number greater than 0</td> - <td><strong>Default:</strong> None</td> - </tr> - </table> - </td> - </tr> - <tr> - <th>Keys</th> - <td>Person Name</td> - </tr> - <tr> - <th>Key Names</th> - <td>Person Name</td> - </tr> - <tr> - <th>Default <code>title_format</code></th> - <td><code><<key_name>></code></td> - </tr> - <tr> - <th>Default Template</th> - <td> - -```yaml -default_template: - plex_search: - any: - director: <<value>> -``` - -</td> - </tr> -</table> - -* `depth` determines how many directors are looked at per item. -* `minimum` determines the minimum number of times the director must appear within `depth` for the collection to be created. -* `limit` determines the number of director collection to max out at. (i.e. if to make collections for the top 25 directors) - -#### Example: - -* Create a collection for the top 5 directors who appear in the top director credit of movies - -```yaml -dynamic_collections: - Top Directors: # mapping name does not matter just needs to be unique - type: director - data: - depth: 1 - limit: 5 -``` - -#### Example: - -* Create a collection for directors who appear in the top director credits of movies -* Only create the collection if they are in the top director credits of at least 10 movies - -```yaml -dynamic_collections: - Directors: # mapping name does not matter just needs to be unique - type: director - data: - depth: 1 - minimum: 10 -``` - -## Writer - -Create a collection for each writer found in the library. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th><code>type</code></th> - <td><code>writer</code></td> - </tr> - <tr> - <th><code>data</code>s</th> - <td> - <table class="clearTable"> - <tr> - <th>Attribute</th> - <th>Description & Values</th> - </tr> - <tr> - <td><code>depth</code></td> - <td><strong>Values:</strong> Number greater than 0</td> - <td><strong>Default:</strong> 3</td> - </tr> - <tr> - <td><code>minimum</code></td> - <td><strong>Values:</strong> Number greater than 0</td> - <td><strong>Default:</strong> 3</td> - </tr> - <tr> - <td><code>limit</code></td> - <td><strong>Values:</strong> Number greater than 0</td> - <td><strong>Default:</strong> None</td> - </tr> - </table> - </td> - </tr> - <tr> - <th>Keys</th> - <td>Person Name</td> - </tr> - <tr> - <th>Key Names</th> - <td>Person Name</td> - </tr> - <tr> - <th>Default <code>title_format</code></th> - <td><code><<key_name>></code></td> - </tr> - <tr> - <th>Default Template</th> - <td> - -```yaml -default_template: - plex_search: - any: - writer: <<value>> -``` - -</td> - </tr> -</table> - -* `depth` determines how many writers are looked at per item. -* `minimum` determines the minimum number of times the writer must appear within `depth` for the collection to be created. -* `limit` determines the number of writer collection to max out at. (i.e. if to make collections for the top 25 writers) - -#### Example: - -* Create a collection for the top 5 writers who appear in the top writer credit of movies - -```yaml -dynamic_collections: - Top Writers: # mapping name does not matter just needs to be unique - type: writer - data: - depth: 1 - limit: 5 -``` - -#### Example: - -* Create a collection for writers who appear in the top writer credits of movies -* Only create the collection if they are in the top writer credits of at least 10 movies - -```yaml -dynamic_collections: - Writers: # mapping name does not matter just needs to be unique - type: writer - data: - depth: 1 - minimum: 10 -``` - -## Producer - -Create a collection for each producer found in the library. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th><code>type</code></th> - <td><code>producer</code></td> - </tr> - <tr> - <th><code>data</code>s</th> - <td> - <table class="clearTable"> - <tr> - <th>Attribute</th> - <th>Description & Values</th> - </tr> - <tr> - <td><code>depth</code></td> - <td><strong>Values:</strong> Number greater than 0</td> - <td><strong>Default:</strong> 3</td> - </tr> - <tr> - <td><code>minimum</code></td> - <td><strong>Values:</strong> Number greater than 0</td> - <td><strong>Default:</strong> 3</td> - </tr> - <tr> - <td><code>limit</code></td> - <td><strong>Values:</strong> Number greater than 0</td> - <td><strong>Default:</strong> None</td> - </tr> - </table> - </td> - </tr> - <tr> - <th>Keys</th> - <td>Person Name</td> - </tr> - <tr> - <th>Key Names</th> - <td>Person Name</td> - </tr> - <tr> - <th>Default <code>title_format</code></th> - <td><code><<key_name>></code></td> - </tr> - <tr> - <th>Default Template</th> - <td> - -```yaml -default_template: - plex_search: - all: - producer: <<value>> -``` - -</td> - </tr> -</table> - -* `depth` determines how many producers are looked at per item. -* `minimum` determines the minimum number of times the producer must appear within `depth` for the collection to be created. -* `limit` determines the number of producer collection to max out at. (i.e. if to make collections for the top 25 producers) - -#### Example: - -* Create a collection for the top 5 producers who appear in the top producer credit of movies - -```yaml -dynamic_collections: - Top Producers: # mapping name does not matter just needs to be unique - type: producer - data: - depth: 1 - limit: 5 -``` - -#### Example: - -* Create a collection for producers who appear in the top producer credits of movies -* Only create the collection if they are in the top producer credits of at least 10 movies - -```yaml -dynamic_collections: - Producers: # mapping name does not matter just needs to be unique - type: producers - data: - depth: 1 - minimum: 10 -``` - -## Genre - -Create a collection for each genre found in the library. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th><code>type</code></th> - <td><code>genre</code></td> - </tr> - <tr> - <th><code>data</code></th> - <td>Not Used</td> - </tr> - <tr> - <th>Keys</th> - <td>Genre</td> - </tr> - <tr> - <th>Key Names</th> - <td>Genre</td> - </tr> - <tr> - <th>Default <code>title_format</code></th> - <td><code>Top <<key_name>> <<library_type>>s</code></td> - </tr> - <tr> - <th>Default Template</th> - <td> - -```yaml -default_template: - smart_filter: - limit: 50 - sort_by: critic_rating.desc - any: - genre: <<value>> -``` - -</td> - </tr> -</table> - -#### Example: - -* Create dynamic collections based on each genre found in the library (TV and Movies) -* Amend the template to increase the limit from 50 to 100 -* Exclude the "Talk Show" genre -* Name the collection "Top [Genre] Movies" or "Top [Genre] Shows" - -```yaml -templates: - genre collection: - smart_filter: - limit: 100 - sort_by: critic_rating.desc - all: - genre: <<value>> -dynamic_collections: - Genres: # mapping name does not matter just needs to be unique - type: genre - exclude: - - Talk Show - title_format: Top <<key_name>> <<library_type>>s - template: genre collection -``` - -## Album Genre - -Create a collection for each album genre found in the library. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th><code>type</code></th> - <td><code>album_genre</code></td> - </tr> - <tr> - <th><code>data</code></th> - <td>Not Used</td> - </tr> - <tr> - <th>Keys</th> - <td>Genre</td> - </tr> - <tr> - <th>Key Names</th> - <td>Genre</td> - </tr> - <tr> - <th>Default <code>title_format</code></th> - <td><code>Top <<key_name>> Albums</code></td> - </tr> - <tr> - <th>Default Template</th> - <td> - -```yaml -default_template: - smart_filter: - limit: 50 - sort_by: plays.desc - any: - album_genre: <<value>> -``` - -</td> - </tr> -</table> - -#### Example: - -* Create dynamic collections based on each Album genre found in the library -* Amend the template to increase the limit from 10 to 20 -* Exclude the "Pop" genre -* Name the collection "Top 20 [Genre] Albums" - -```yaml -templates: - genre collection: - smart_filter: - limit: 100 - sort_by: plays.desc - all: - album_genre: <<value>> -dynamic_collections: - Genres: # mapping name does not matter just needs to be unique - type: album_genre - exclude: - - Pop - title_format: Top 20 <<key_name>> <<library_type>>s - template: genre collection -``` - -## Content Rating - -Create a collection for each content rating found in the library. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th><code>type</code></th> - <td><code>content_rating</code></td> - </tr> - <tr> - <th><code>data</code></th> - <td>Not Used</td> - </tr> - <tr> - <th>Keys</th> - <td>Content Rating</td> - </tr> - <tr> - <th>Key Names</th> - <td>Content Rating</td> - </tr> - <tr> - <th>Default <code>title_format</code></th> - <td><code>Top <<key_name>> <<library_type>>s</code></td> - </tr> - <tr> - <th>Default Template</th> - <td> - -```yaml -default_template: - smart_filter: - limit: 50 - sort_by: critic_rating.desc - any: - content_rating: <<value>> -``` - -</td> - </tr> -</table> - -#### Example: - -* Create dynamic collections based on each content rating found in the library (TV and Movies) -* Amend the template to increase the limit from 50 to 100 - -```yaml -templates: - content rating collection: - smart_filter: - limit: 100 - sort_by: critic_rating.desc - all: - content_rating: <<value>> -dynamic_collections: - Content Ratings: # mapping name does not matter just needs to be unique - type: content_rating - template: content rating collection -``` - -## Year - -Create a collection for each year found in the library. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th><code>type</code></th> - <td><code>year</code></td> - </tr> - <tr> - <th><code>data</code></th> - <td>Not Used</td> - </tr> - <tr> - <th>Keys</th> - <td>Year</td> - </tr> - <tr> - <th>Key Names</th> - <td>Year</td> - </tr> - <tr> - <th>Default <code>title_format</code></th> - <td><code>Best <<library_type>>s of <<key_name>></code></td> - </tr> - <tr> - <th>Default Template</th> - <td> - -```yaml -default_template: - smart_filter: - limit: 50 - sort_by: critic_rating.desc - any: - year: <<value>> -``` - -</td> - </tr> -</table> - -#### Example - -* Create dynamic collections based on each year found in the library (TV and Movies) -* Use the `include` attribute to only show collections for years "2020", "2021" and "2022" -* Name the collection "Best of [Year]" - -```yaml -dynamic_collections: - Years: # mapping name does not matter just needs to be unique - type: year - include: - - 2020 - - 2021 - - 2022 - title_format: Best of <<key_name>> -``` - -## Episode Year - -Create a collection for each episode year found in the library. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th><code>type</code></th> - <td><code>episode_year</code></td> - </tr> - <tr> - <th><code>data</code></th> - <td>Not Used</td> - </tr> - <tr> - <th>Keys</th> - <td>Episode Year</td> - </tr> - <tr> - <th>Key Names</th> - <td>Year</td> - </tr> - <tr> - <th>Default <code>title_format</code></th> - <td><code>Best <<library_type>>s of <<key_name>></code></td> - </tr> - <tr> - <th>Default Template</th> - <td> - -```yaml -default_template: - smart_filter: - limit: 50 - sort_by: critic_rating.desc - any: - episode_year: <<value>> -``` - -</td> - </tr> -</table> - -#### Example - -* Create dynamic collections based on each year found in the library (TV and Movies) -* Use the `include` attribute to only show collections for years "2020", "2021" and "2022" -* Name the collection "Best of [Year]" - -```yaml -dynamic_collections: - Years: # mapping name does not matter just needs to be unique - type: episode_year - include: - - 2020 - - 2021 - - 2022 - title_format: Best of <<key_name>> -``` - -## Decade - -Create a collection for each decade found in the library - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th><code>type</code></th> - <td><code>decade</code></td> - </tr> - <tr> - <th><code>data</code></th> - <td>Not Used</td> - </tr> - <tr> - <th>Keys</th> - <td>Decade</td> - </tr> - <tr> - <th>Key Names</th> - <td>Decade</td> - </tr> - <tr> - <th>Default <code>title_format</code></th> - <td><code>Best <<library_type>>s of <<key_name>></code></td> - </tr> - <tr> - <th>Default Template</th> - <td> - -```yaml -default_template: - smart_filter: - limit: 50 - sort_by: critic_rating.desc - any: - decade: <<value>> -``` - -</td> - </tr> -</table> - -#### Example: - -* Create a collection for each decade found in the library (TV and Movies) -* Name the collection "Top [Decade] Movies" -* Rename the `2020` collection name to "Top 2020 Movies (so far)" - -```yaml -dynamic_collections: - Decades: # mapping name does not matter just needs to be unique - type: decade - title_format: Top <<key_name>> <<library_type>>s - title_override: - 2020: Top 2020 Movies (so far) -``` - -## Country - -Create a collection for each country found in the library - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th><code>type</code></th> - <td><code>country</code></td> - </tr> - <tr> - <th><code>data</code></th> - <td>Not Used</td> - </tr> - <tr> - <th>Keys</th> - <td>Country</td> - </tr> - <tr> - <th>Key Names</th> - <td>Country</td> - </tr> - <tr> - <th>Default <code>title_format</code></th> - <td><code>Top <<key_name>> <<library_type>>s</code></td> - </tr> - <tr> - <th>Default Template</th> - <td> - -```yaml -default_template: - smart_filter: - limit: 50 - sort_by: critic_rating.desc - any: - country: <<value>> -``` - -</td> - </tr> -</table> - -#### Example: - -* Create a collection for the top movies from each country found in the library -* Name the collection "Top [Country] Cinema" -* The `key_name_override` attribute is used here in combination with the `title_format` to change the collection name from "France" which would be the default title, to "Top French Cinema" - -```yaml -dynamic_collections: - Countries: # mapping name does not matter just needs to be unique - type: country - title_format: Top <<key_name>> Cinema - key_name_override: - France: French - Germany: German - India: Indian -``` - -## Resolution - -Create a collection for each resolution found in the library - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th><code>type</code></th> - <td><code>resolution</code></td> - </tr> - <tr> - <th><code>data</code></th> - <td>Not Used</td> - </tr> - <tr> - <th>Keys</th> - <td>Resolution</td> - </tr> - <tr> - <th>Key Names</th> - <td>Resolution</td> - </tr> - <tr> - <th>Default <code>title_format</code></th> - <td><code><<key_name>> <<library_type>>s</code></td> - </tr> - <tr> - <th>Default Template</th> - <td> - -```yaml -default_template: - smart_filter: - limit: 50 - sort_by: title.asc - any: - resolution: <<value>> -``` - -</td> - </tr> -</table> - -#### Example: - -* Create a collection for each resolution found in the library -* Name the collection "[Resolution] Movies" -* Combine 480p, 576p and SD into a collection called "SD Movies" -```yaml -dynamic_collections: - Resolutions: # mapping name does not matter just needs to be unique - type: resolution - addons: - 480p: - - 576p - - SD - title_override: - 480p: SD Movies -``` - -## Subtitle Language - -Create a collection for each subtitle language found in the library - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th><code>type</code></th> - <td><code>subtitle_language</code></td> - </tr> - <tr> - <th><code>data</code></th> - <td>Not Used</td> - </tr> - <tr> - <th>Keys</th> - <td><a href="https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes">ISO 639-1 Code</a></td> - </tr> - <tr> - <th>Key Names</th> - <td>Subtitle Language Name</td> - </tr> - <tr> - <th>Default <code>title_format</code></th> - <td><code>Top <<key_name>> <<library_type>>s</code></td> - </tr> - <tr> - <th>Default Template</th> - <td> - -```yaml -default_template: - smart_filter: - limit: 50 - sort_by: critic_rating.asc - any: - subtitle_language: <<value>> -``` - -</td> - </tr> -</table> - -#### Example: - -* Create a collection for each subtitle language found in the library - -```yaml -dynamic_collections: - Subtitle Languages: # mapping name does not matter just needs to be unique - type: subtitle_language -``` - -## Audio Language - -Create a collection for each audio language found in the library - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th><code>type</code></th> - <td><code>audio_language</code></td> - </tr> - <tr> - <th><code>data</code></th> - <td>Not Used</td> - </tr> - <tr> - <th>Keys</th> - <td><a href="https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes">ISO 639-1 Code</a></td> - </tr> - <tr> - <th>Key Names</th> - <td>Audio Language Name</td> - </tr> - <tr> - <th>Default <code>title_format</code></th> - <td><code>Top <<key_name>> <<library_type>>s</code></td> - </tr> - <tr> - <th>Default Template</th> - <td> - -```yaml -default_template: - smart_filter: - limit: 50 - sort_by: critic_rating.asc - any: - audio_language: <<value>> -``` - -</td> - </tr> -</table> - -#### Example: - -* Create a collection for each audio language found in the library - -```yaml -dynamic_collections: - Audio Languages: # mapping name does not matter just needs to be unique - type: audio_language -``` - -## Studio - -Create a collection for each studio found in the library. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th><code>type</code></th> - <td><code>studio</code></td> - </tr> - <tr> - <th><code>data</code></th> - <td>Not Used</td> - </tr> - <tr> - <th>Keys</th> - <td>Studio</td> - </tr> - <tr> - <th>Key Names</th> - <td>Studio</td> - </tr> - <tr> - <th>Default <code>title_format</code></th> - <td><code>Top <<key_name>> <<library_type>>s</code></td> - </tr> - <tr> - <th>Default Template</th> - <td> - -```yaml -default_template: - smart_filter: - limit: 50 - sort_by: critic_rating.desc - any: - studio: <<value>> -``` - -</td> - </tr> -</table> - - -#### Example: - -* Create a collection for each studio found in a Movies library - -```yaml -templates: - studio collection: - smart_filter: - sort_by: critic_rating.desc - all: - studio: <<value>> -dynamic_collections: - Studios: # mapping name does not matter just needs to be unique - type: studio - title_format: <<key_name>> - template: studio collection -``` - -## Edition - -Create a collection for each edition found in the library. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th><code>type</code></th> - <td><code>edition</code></td> - </tr> - <tr> - <th><code>data</code></th> - <td>Not Used</td> - </tr> - <tr> - <th>Keys</th> - <td>Editions</td> - </tr> - <tr> - <th>Key Names</th> - <td>Edition</td> - </tr> - <tr> - <th>Default <code>title_format</code></th> - <td><code>Top <<key_name>> <<library_type>>s</code></td> - </tr> - <tr> - <th>Default Template</th> - <td> - -```yaml -default_template: - smart_filter: - limit: 50 - sort_by: critic_rating.desc - any: - edition: <<value>> -``` - -</td> - </tr> -</table> - - -#### Example: - -* Create a collection for each edition found in a Movies library - -```yaml -templates: - edition collection: - smart_filter: - sort_by: critic_rating.desc - all: - edition: <<value>> -dynamic_collections: - Sditions: # mapping name does not matter just needs to be unique - type: edition - title_format: <<key_name>> - template: edition collection -``` - -## Network - -Create a collection for each network found in the library. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th><code>type</code></th> - <td><code>network</code></td> - </tr> - <tr> - <th><code>data</code></th> - <td>Not Used</td> - </tr> - <tr> - <th>Keys</th> - <td>Network</td> - </tr> - <tr> - <th>Key Names</th> - <td>Network</td> - </tr> - <tr> - <th>Default <code>title_format</code></th> - <td><code>Top <<key_name>> <<library_type>>s</code></td> - </tr> - <tr> - <th>Default Template</th> - <td> - -```yaml -default_template: - smart_filter: - limit: 50 - sort_by: critic_rating.desc - any: - network: <<value>> -``` - -</td> - </tr> -</table> - - -#### Example: - -* Create a collection for each network found in a TV Shows library - -```yaml -templates: - network collection: - smart_filter: - sort_by: critic_rating.desc - all: - network: <<value>> -dynamic_collections: - Networks: # mapping name does not matter just needs to be unique - type: network - title_format: <<key_name>> - template: network collection -``` - -## Mood - -Create a collection for each artist mood found in the library. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th><code>type</code></th> - <td><code>mood</code></td> - </tr> - <tr> - <th><code>data</code></th> - <td>Not Used</td> - </tr> - <tr> - <th>Keys</th> - <td>Mood</td> - </tr> - <tr> - <th>Key Names</th> - <td>Mood</td> - </tr> - <tr> - <th>Default <code>title_format</code></th> - <td><code>Most Played <<value>> <<library_type>>s</code></td> - </tr> - <tr> - <th>Default Template</th> - <td> - -```yaml -default_template: - smart_filter: - limit: 10 - sort_by: plays.desc - any: - artist_mood: <<value>> -``` - -</td> - </tr> -</table> - -#### Example: - -* Create a collection for the top 20 artists for each mood found in the Music library -* Amend the template to increase the limit from 10 to 20 -* Name the collection "Top 20 [Mood] Artists" - -```yaml -templates: - mood collection: - smart_filter: - limit: 20 - sort_by: plays.desc - all: - artist_mood: <<value>> -dynamic_collections: - Moods: # mapping name does not matter just needs to be unique - type: mood - title_format: Top 20 <<key_name>> Artists - template: mood collection -``` - -## Album Mood - -Create a collection for each album mood found in the library. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th><code>type</code></th> - <td><code>album_mood</code></td> - </tr> - <tr> - <th><code>data</code></th> - <td>Not Used</td> - </tr> - <tr> - <th>Keys</th> - <td>Mood</td> - </tr> - <tr> - <th>Key Names</th> - <td>Mood</td> - </tr> - <tr> - <th>Default <code>title_format</code></th> - <td><code>Most Played <<value>> Albums</code></td> - </tr> - <tr> - <th>Default Template</th> - <td> - -```yaml -default_template: - smart_filter: - limit: 10 - sort_by: plays.desc - any: - album_mood: <<value>> -``` - -</td> - </tr> -</table> - -#### Example: - -* Create a collection for the top 20 albums for each mood found in the Music library -* Amend the template to increase the limit from 10 to 20 -* Name the collection "Top 20 [Mood] Albums" - -```yaml -templates: - mood collection: - smart_filter: - limit: 20 - sort_by: plays.desc - all: - album_mood: <<value>> -dynamic_collections: - Moods: # mapping name does not matter just needs to be unique - type: album_mood - title_format: Top 20 <<key_name>> Albums - template: mood collection -``` - -## Track Mood - -Create a collection for each track mood found in the library. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th><code>type</code></th> - <td><code>track_mood</code></td> - </tr> - <tr> - <th><code>data</code></th> - <td>Not Used</td> - </tr> - <tr> - <th>Keys</th> - <td>Mood</td> - </tr> - <tr> - <th>Key Names</th> - <td>Mood</td> - </tr> - <tr> - <th>Default <code>title_format</code></th> - <td><code>Most Played <<value>> Tracks</code></td> - </tr> - <tr> - <th>Default Template</th> - <td> - -```yaml -default_template: - smart_filter: - limit: 50 - sort_by: plays.desc - any: - track_mood: <<value>> -``` - -</td> - </tr> -</table> - -#### Example: - -* Create a collection for the top 100 tracks for each mood found in the Music library -* Amend the template to increase the limit from 50 to 100 -* Name the collection "Top 100 [Mood] Tracks" - -```yaml -templates: - mood collection: - smart_filter: - limit: 100 - sort_by: plays.desc - all: - track_mood: <<value>> -dynamic_collections: - Moods: # mapping name does not matter just needs to be unique - type: track_mood - title_format: Top 100 <<key_name>> Tracks - template: mood collection -``` - -## Style - -Create a collection for each artist style found in the library. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th><code>type</code></th> - <td><code>style</code></td> - </tr> - <tr> - <th><code>data</code></th> - <td>Not Used</td> - </tr> - <tr> - <th>Keys</th> - <td>Style</td> - </tr> - <tr> - <th>Key Names</th> - <td>Style</td> - </tr> - <tr> - <th>Default <code>title_format</code></th> - <td><code>Most Played <<key_name>> <<library_type>>s</code></td> - </tr> - <tr> - <th>Default Template</th> - <td> - -```yaml -default_template: - smart_filter: - limit: 10 - sort_by: plays.desc - any: - artist_style: <<value>> -``` - -</td> - </tr> -</table> - -#### Example: - -* Create a collection for the top 10 artists for each style found in the Music library -* Name the collection "Top [Style] Artists" - -```yaml -templates: - style collection: - smart_filter: - limit: 10 - sort_by: plays.desc - all: - artist_style: <<value>> -dynamic_collections: - Styles: # mapping name does not matter just needs to be unique - type: style - title_format: Top <<key_name>> <<library_type>> - template: style collection -``` - -## Album Style - -Create a collection for each album style found in the library. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th><code>type</code></th> - <td><code>album_style</code></td> - </tr> - <tr> - <th><code>data</code></th> - <td>Not Used</td> - </tr> - <tr> - <th>Keys</th> - <td>Style</td> - </tr> - <tr> - <th>Key Names</th> - <td>Style</td> - </tr> - <tr> - <th>Default <code>title_format</code></th> - <td><code>Most Played <<key_name>> Albums</code></td> - </tr> - <tr> - <th>Default Template</th> - <td> - -```yaml -default_template: - smart_filter: - limit: 10 - sort_by: plays.desc - any: - album_style: <<value>> -``` - -</td> - </tr> -</table> - -#### Example: - -* Create a collection for the top 10 albums for each style found in the Music library -* Name the collection "Top [Style] Albums" - -```yaml -templates: - style collection: - builder_level: album - smart_filter: - limit: 10 - sort_by: plays.desc - all: - album_style: <<value>> -dynamic_collections: - Styles: # mapping name does not matter just needs to be unique - type: album_style - title_format: Top <<key_name>> Albums - template: style collection -``` - -## Number - -Creates a collection for each number defined. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th><code>type</code></th> - <td><code>number</code></td> - </tr> - <tr> - <th><code>data</code>s</th> - <td> - <table class="clearTable"> - <tr> - <th>Attribute</th> - <th>Description & Values</th> - </tr> - <tr> - <td><code>starting</code></td> - <td><strong>Values:</strong> Number greater than 0</td> - <td><strong>Default:</strong> 0</td> - </tr> - <tr> - <td><code>ending</code></td> - <td><strong>Values:</strong> Number greater than 1</td> - <td><strong>Default:</strong> 1</td> - </tr> - <tr> - <td><code>increment</code></td> - <td><strong>Values:</strong> Number greater than 0</td> - <td><strong>Default:</strong> 1</td> - </tr> - </table> - <ul> - <li><strong><code>starting</code> and <code>ending</code> can also have the value <code>current_year</code></strong></li> - <li><strong>You can also use a value relative to the <code>current_year</code> by doing <code>current_year-5</code></strong></li> - </ul> - </td> - </tr> - <tr> - <th>Keys</th> - <td>Number</td> - </tr> - <tr> - <th>Key Names</th> - <td>Number</td> - </tr> - <tr> - <th>Default <code>title_format</code></th> - <td><code><<key_name>></code></td> - </tr> - <tr> - <th>Default Template</th> - <td>**None**</td> - </tr> -</table> - - -#### Example: - -* Create a collection for the Oscar Winner by Year for the last 5 years -* Name the collection "Oscars Winners [Number]" - -```yaml -templates: - Oscars: - summary: Academy Awards (Oscars) Winners for <<key>> - imdb_list: https://www.imdb.com/search/title/?release_date=<<key>>-01-01,<<key>>-12-31&groups=oscar_winner&sort=moviemeter,asc - sync_mode: sync - collection_order: custom -dynamic_collections: - Oscars Winners Awards: - type: number - sync: true - data: - starting: current_year-5 - ending: current_year - title_format: Oscars Winners <<key_name>> - template: - - Oscars -``` - -## Custom - -Creates a collection for each custom `key: key_name` pair defined. - -<table class="dualTable colwidths-auto align-default table"> - <tr> - <th><code>type</code></th> - <td><code>custom</code></td> - </tr> - <tr> - <th><code>data</code>s</th> - <td>Strings to iterate</td> - </tr> - <tr> - <th>Keys</th> - <td><code>key</code></td> - </tr> - <tr> - <th>Key Names</th> - <td><code>key_name</code></td> - </tr> - <tr> - <th>Default <code>title_format</code></th> - <td><code><<key_name>></code></td> - </tr> - <tr> - <th>Default Template</th> - <td><strong>None</strong></td> - </tr> -</table> - -#### Example: - -* Create a collection for the various Streaming Services -* Name the collection "[Key Name] Movies" - -```yaml - - -templates: - streaming: - cache_builders: 1 - smart_label: release.desc - sync_mode: sync - mdblist_list: https://mdblist.com/lists/plexmetamanager/<<key>>-movies - url_poster: https://raw.githubusercontent.com/meisnate12/Plex-Meta-Manager-Images/master/streaming/<<key_name_encoded>>.jpg - -dynamic_collections: - Streaming: - type: custom - data: - all-4: All 4 - appletv: Apple TV+ - bet: BET+ - britbox: BritBox - disney: Disney+ - max: Max - hulu: Hulu - netflix: Netflix - now: NOW - paramount: Paramount+ - peacock: Peacock - amazon-prime-video: Prime Video - title_format: <<key_name>> Movies - template: - - streaming - - shared -``` - -## Exclude - -Exclude this list of `keys` from being created into collections. - -For example when making a `genre` dynamic collection definition you can exclude "Horror" from having a collection created from the key. - -```yaml -dynamic_collections: - Genres: # mapping name does not matter, just needs to be unique - type: genre - exclude: - - Horror -``` - -## Addons - -Defines how multiple `keys` can be combined under a parent key. - -For example, the `addons` attribute can be used to combine multiple `keys`, i.e. merging "MTV2", "MTV3" and "MTV (UK)" into the "MTV" collection. - -```yaml -dynamic_collections: - networks: - type: network - addons: - MTV: - - MTV2 - - MTV3 - - MTV (UK) -``` - -You can also define custom keys under addons if the main key doesn't exist as a key it will be considered a custom key combining all keys into one key. - -## Template - -Name of the template to use for these dynamic collections. Each `type` has its own default template, but if you want to define and use your own template you can. - -Each template is passed a few template variables you can use. -* `value`: The list of keys and addons -* `key`: The dynamic key -* `key_name`: The key after `key_name_override`, `remove_prefix`, or `remove_suffix` are run on it. - -For example, the template below removes the limit on the `smart_filter` so it shows all items in each network - -```yaml -templates: - network collection: - smart_filter: - sort_by: critic_rating.desc - all: - network: <<value>> -dynamic_collections: - Networks: # mapping name does not matter just needs to be unique - type: network - title_format: <<key_name>> - template: network collection -``` - -## Template Variables - -Defines how template variables can be defined by key. - -For example, when using `type: tmdb_collection` and you want to define a poster url for some collections - -```yaml -templates: - my_template: - optional: - - my_collection_poster - tmdb_collection_details: <<value>> - collection_order: release - url_poster: <<my_collection_poster>> -dynamic_collections: - TMDb Collections: # This name is the mapping name - type: tmdb_collection - remove_suffix: "Collection" - template: my_template - template_variables: - my_collection_poster: - 119: https://www.themoviedb.org/t/p/original/oENY593nKRVL2PnxXsMtlh8izb4.jpg - 531241: https://www.themoviedb.org/t/p/original/nogV4th2P5QWYvQIMiWHj4CFLU9.jpg -``` - -## Other Template - -Name of the template to use for the other collection. Will use the same template as the rest of the dynamic collections unless specified. - -Each template is passed a few template variables you can use. -* `value`: The list of keys and addons -* `key`: The dynamic key -* `key_name`: The key after `key_name_override`, `remove_prefix`, or `remove_suffix` are run on it. -* `included_keys`: The list of included keys -* `used_keys`: The list of all keys used (included_keys and their addon keys) - -## Remove Prefix/Suffix - -Removes the defined prefixes/suffixes from the key before it’s used in the collection title. - -For example, when using `type: tmdb_collection` you may not want every collection title to end with `Collection` - -```yaml -dynamic_collections: - TMDb Collections: # This name is the mapping name - type: tmdb_collection - remove_suffix: "Collection" -``` - -## Title Format - -This is the format for the collection titles. - -there are two special tags you can include in the `title_format` -* `<<key_name>>` is required and is what will be replaced by the dynamic key name. -* `<<library_type>>` will be replaced with either Movie, Show, or Artist depending on your library type. - -Here's an example using `title_format`. - -```yaml -dynamic_collections: - Genres: # mapping name does not matter just needs to be unique - type: genre - title_format: Top 50 <<key_name>> <<library_type>>s -``` - -## Key Name Override - -Defines how key names can be overridden before they are formatted into collection titles. - -This example uses the `key_name_override` attribute to change the formatting of "France" to "French" so that a collection can be named "French Cinema" instead of simply "France" - * This particular example also uses the `title_format` attribute to manipulate the naming convention of the collections. - -```yaml -dynamic_collections: - Countries: # mapping name does not matter, just needs to be unique - type: country - title_format: <<key_name>> Cinema - key_name_override: - France: French -``` - -## Title Override - -Defines how collection titles can be overridden ignoring title formatting. - -Here's an example using `title_override` that will override the TMDb Star Wars collection which has an TMDb ID of `10` with `Star Wars Universe. - -```yaml -dynamic_collections: - TMDb Collections: # mapping name does not matter, just needs to be unique - type: tmdb_collection - remove_suffix: "Collection" - title_override: - 10: Star Wars Universe -``` - -## Custom Keys - -Defines if custom keys are allowed. Can be `true` or `false`. Defaults to `true`. - -Here's an example using `custom_keys`. - -```yaml -dynamic_collections: - TMDb Collections: # mapping name does not matter, just needs to be unique - type: tmdb_collection - remove_suffix: "Collection" - custom_keys: false -``` - -## Test - -Will add `test: true` to all collections for test runs. - -Here's an example using `test`. - -```yaml -dynamic_collections: - Genres: # mapping name does not matter just needs to be unique - type: genre - test: true -``` - -## Sync - -Will remove dynamic collections that are no longer in the creation list. - -The mapping name is added as a label to any collection created using dynamic and because of this when `sync` is true all collections with that label not found in this run will be deleted. - -Here's an example using `sync`. - -```yaml -dynamic_collections: - Trakt Liked Lists: # mapping name does not matter just needs to be unique - type: trakt_liked_lists - sync: true -``` - -## Include - -Define a list of keys to be made into collections. - -This cannot be used with `exclude`. - -Here's an example using `include`. - -```yaml -dynamic_collections: - Genres: # mapping name does not matter just needs to be unique - type: genre - include: - - Action - - Adventure - - Animation - - Comedy - - Family - - Fantasy - - Horror - - Romance - - Science Fiction - - War -``` - -## Other Name - -Used in combination with `include`. When defined, all keys not in `include` or `addons` will be combined into this collection. - -This is the main reason to use `include`. It allows a catch all collection for everything not defined in the config file. - -Here's an example using `other_name`. - -```yaml -dynamic_collections: - Genres: # mapping name does not matter just needs to be unique - type: genre - other_name: Top Other Movies - include: - - Action - - Adventure - - Animation - - Comedy - - Family - - Fantasy - - Horror - - Romance - - Science Fiction - - War -``` diff --git a/docs/metadata/filters.md b/docs/metadata/filters.md deleted file mode 100644 index 860362ef..00000000 --- a/docs/metadata/filters.md +++ /dev/null @@ -1,301 +0,0 @@ -# Filters - -Filters allow for you to filter every item added to the collection/overlay/playlist from every builder using the `filters` attribute. - -## Using Filters - -Filters cannot do anything alone they require the use of at least one [Builder](builders.md) to function. - -You can have multiple filters in each set but an item must match at least one value from **each** filter to not be ignored. The values for each must match what Plex has including special characters in order to match. - -```yaml -filters: - genre: Action - country: Germany -``` - -Anything that doesn't have both the Genre `Action` and the Country `Germany` will be ignored. - -Multiple Filter Sets can be given as a list. With multiple sets only one of the sets must pass for the item to not be ignored. - -```yaml -filters: - - genre: Action - country: Germany - - genre: Comedy - country: France -``` - -Anything that doesn't have either both the Genre `Action` and the Country `Germany` or the Genre `Comedy` and the Country `France` will be ignored. - -All filter options are listed below. To display items filtered out add `show_filtered: true` to the definition. - -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.md) if possible.** - -## Table Annotations - -<sup>**1**</sup> Filters using the special `episodes`/`tracks` [filter](#special-filters) with the [default percent](../builders/details/definition.md). - -<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`. - -String filters can take multiple values **only as a list**. - -### Modifier - -| String Modifier | Description | -|:----------------|:-------------------------------------------------------------------------------| -| No Modifier | Matches every item where the attribute contains the given string | -| `.not` | Matches every item where the attribute does not contain the given string | -| `.is` | Matches every item where the attribute exactly matches the given string | -| `.isnot` | Matches every item where the attribute does not exactly match the given string | -| `.begins` | Matches every item where the attribute begins with the given string | -| `.ends` | Matches every item where the attribute ends with the given string | -| `.regex` | Matches every item where the attribute matches the regex given | - -### Attribute - -| String Filter | Description | Movies | Shows | Seasons | Episodes | Artists | Albums | Track | -|:---------------------------------------------------|:-----------------------------------------|:------------------------------------------:|:--------------------------------------------------------------------------------:|:--------------------------------------------------------------------------------:|:------------------------------------------:|:--------------------------------------------------------------------------------:|:--------------------------------------------------------------------------------:|:------------------------------------------:| -| `title` | Uses the title attribute to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| `tmdb_title`<sup>**[2](#table-annotations)**</sup> | Uses the title from TMDb to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `summary` | Uses the summary attribute to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| `studio` | Uses the studio attribute to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `edition` | Uses the edition attribute to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `record_label` | Uses the record label attribute to match | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| `folder` | Uses the item's folder to match | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `filepath` | Uses the item's filepath to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green }<sup>**[1](#table-annotations)**</sup> | :fontawesome-solid-circle-check:{ .green }<sup>**[1](#table-annotations)**</sup> | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green }<sup>**[1](#table-annotations)**</sup> | :fontawesome-solid-circle-check:{ .green }<sup>**[1](#table-annotations)**</sup> | :fontawesome-solid-circle-check:{ .green } | -| `audio_track_title` | Uses the audio track titles to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green }<sup>**[1](#table-annotations)**</sup> | :fontawesome-solid-circle-check:{ .green }<sup>**[1](#table-annotations)**</sup> | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green }<sup>**[1](#table-annotations)**</sup> | :fontawesome-solid-circle-check:{ .green }<sup>**[1](#table-annotations)**</sup> | :fontawesome-solid-circle-check:{ .green } | -| `subtitle_track_title` | Uses the subtitle track titles to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green }<sup>**[1](#table-annotations)**</sup> | :fontawesome-solid-circle-check:{ .green }<sup>**[1](#table-annotations)**</sup> | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green }<sup>**[1](#table-annotations)**</sup> | :fontawesome-solid-circle-check:{ .green }<sup>**[1](#table-annotations)**</sup> | :fontawesome-solid-circle-check:{ .green } | -| `video_codec` | Uses the video codec tags to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green }<sup>**[1](#table-annotations)**</sup> | :fontawesome-solid-circle-check:{ .green }<sup>**[1](#table-annotations)**</sup> | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `video_profile` | Uses the video profile tags to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green }<sup>**[1](#table-annotations)**</sup> | :fontawesome-solid-circle-check:{ .green }<sup>**[1](#table-annotations)**</sup> | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `audio_codec` | Uses the audio codec tags to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green }<sup>**[1](#table-annotations)**</sup> | :fontawesome-solid-circle-check:{ .green }<sup>**[1](#table-annotations)**</sup> | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `audio_profile` | Uses the audio profile tags to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green }<sup>**[1](#table-annotations)**</sup> | :fontawesome-solid-circle-check:{ .green }<sup>**[1](#table-annotations)**</sup> | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | - -## Tag Filters - -Tag filters can be used with either no modifier or with `.not`. - -Tag filters can take multiple values as a **list or a comma-separated string**. - -### Modifier - -| Tag Modifier | Description | -|:-------------|:------------------------------------------------------------------------------------------| -| No Modifier | Matches every item where the attribute matches the given string | -| `.not` | Matches every item where the attribute does not match the given string | -| `.regex` | Matches every item where one value of this attribute matches the regex. | -| `.count_lt` | Matches every item where the attribute count is less than the given number | -| `.count_lte` | Matches every item where the attribute count is less than the given number | -| `.count_gt` | Matches every item where the attribute count is greater than the given number | -| `.count_gte` | Matches every item where the attribute count is greater than or equal to the given number | - -### Attribute - -| Tag Filters | Description | Movies | Shows | Seasons | Episodes | Artists | Albums | Track | -|:-------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------:|:--------------------------------------------------------------------------------:|:--------------------------------------------------------------------------------:|:------------------------------------------:|:------------------------------------------:|:------------------------------------------:|:------------------------------------------:| -| `actor` | Uses the actor tags to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `collection` | Uses the collection tags to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| `content_rating` | Uses the content rating tags to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `network` | Uses the network tags to match | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `country` | Uses the country tags to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `director` | Uses the director tags to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `genre` | Uses the genre tags to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| `label` | Uses the label tags to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| `producer` | Uses the actor tags to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `year`<sup>**[3](#table-annotations)**</sup> | Uses the year tag to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| `writer` | Uses the writer tags to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `resolution` | Uses the resolution tag to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green }<sup>**[1](#table-annotations)**</sup> | :fontawesome-solid-circle-check:{ .green }<sup>**[1](#table-annotations)**</sup> | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `audio_language` | Uses the audio language tags to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green }<sup>**[1](#table-annotations)**</sup> | :fontawesome-solid-circle-check:{ .green }<sup>**[1](#table-annotations)**</sup> | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `subtitle_language` | Uses the subtitle language tags to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green }<sup>**[1](#table-annotations)**</sup> | :fontawesome-solid-circle-check:{ .green }<sup>**[1](#table-annotations)**</sup> | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `tmdb_genre`<sup>**[2](#table-annotations)**</sup> | Uses the genres from TMDb to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `tmdb_keyword`<sup>**[2](#table-annotations)**</sup> | Uses the keywords from TMDb to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `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` | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `imdb_keyword`<sup>**[2](#table-annotations)**</sup> | Uses the keywords from IMDb to match See [Special](#special-filters) for more attributes | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | - -## Boolean Filters - -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 | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| `has_edition` | Matches every item that has or does not have an edition | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `has_stinger` | Matches every item that has a [media stinger](http://www.mediastinger.com/) (After/During Credits Scene) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `has_dolby_vision` | Matches every item that has or does not have a dolby vision | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green }<sup>**[1](#table-annotations)**</sup> | :fontawesome-solid-circle-check:{ .green }<sup>**[1](#table-annotations)**</sup> | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `has_overlay` | Matches every item that has or does not have an overlay | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | - -## Date Filters - -Date filters can be used with either no modifier or with `.not`, `.before`, `.after`, or `.regex`. - -Date filters can **NOT** take multiple values. - -### Modifier - -| Date Modifier | Description | Format | -|:--------------|:----------------------------------------------------------------------|:--------------------------------------------------------------------------:| -| No Modifier | Matches every item where the date attribute is in the last X days | **Format:** number of days<br>e.g. `30` | -| `.not` | Matches every item where the date attribute is not in the last X days | **Format:** number of days<br>e.g. `30` | -| `.before` | Matches every item where the date attribute is before the given date | **Format:** MM/DD/YYYY or `today` for the current day<br>e.g. `01/01/2000` | -| `.after` | Matches every item where the date attribute is after the given date | **Format:** MM/DD/YYYY or `today` for the current day<br>e.g. `01/01/2000` | -| `.regex` | Matches every item where the attribute matches the regex given | N/A | - -### Attribute - -| Date Filters | Description | Movies | Shows | Seasons | Episodes | Artists | Albums | Track | -|:----------------------------------------------------------------|:-------------------------------------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:------------------------------------------:|:------------------------------------------:|:------------------------------------------:|:------------------------------------------:|:------------------------------------------:| -| `release` | Uses the release date attribute (originally available) to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| `added` | Uses the date added attribute to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| `last_played` | Uses the date last played attribute to match | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| `first_episode_aired`<sup>**[2](#table-annotations)**</sup> | Uses the first episode aired date to match | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `last_episode_aired`<sup>**[2](#table-annotations)</sup> | Uses the last episode aired date to match | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `last_episode_aired_or_never`<sup>[2](#table-annotations)</sup> | Similar to `last_episode_aired` but also includes those that haven't aired yet | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | - -## Number Filters - -Number filters must use `.gt`, `.gte`, `.lt`, or `.lte` as a modifier. - -Number filters can **NOT** take multiple values. - -### Modifier - -| Number Modifier | Description | Format | -|:----------------|:-------------------------------------------------------------------------------------------|:-------------------------------------------------:| -| No Modifier | Matches every item where the number attribute is equal to the given number | **Format:** number<br>e.g. `30`, `1995`, or `7.5` | -| `.not` | Matches every item where the number attribute is not equal to the given number | **Format:** number<br>e.g. `30`, `1995`, or `7.5` | -| `.gt` | Matches every item where the number attribute is greater than the given number | **Format:** number<br>e.g. `30`, `1995`, or `7.5` | -| `.gte` | Matches every item where the number attribute is greater than or equal to the given number | **Format:** number<br>e.g. `30`, `1995`, or `7.5` | -| `.lt` | Matches every item where the number attribute is less than the given number | **Format:** number<br>e.g. `30`, `1995`, or `7.5` | -| `.lte` | Matches every item where the number attribute is less than or equal to the given number | **Format:** number<br>e.g. `30`, `1995`, or `7.5` | - -### Attribute - -| 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` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| `tmdb_year`<sup>**[2](#table-annotations)**</sup><sup>**[3](#table-annotations)**</sup> | Uses the year on TMDb to match<br>minimum: `1` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `critic_rating` | Uses the critic rating attribute to match<br>`0.0` - `10.0` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| `audience_rating` | Uses the audience rating attribute to match<br> `0.0` - `10.0` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `user_rating` | Uses the user rating attribute to match<br>`0.0` - `10.0` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| `tmdb_vote_count`<sup>**[2](#table-annotations)**</sup> | Uses the tmdb vote count to match<br>minimum: `1` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `tmdb_vote_average`<sup>**[2](#table-annotations)**</sup> | Uses the tmdb vote average rating to match<br>minimum: `0.0` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `plays` | Uses the plays attribute to match<br>minimum: `1` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| `duration` | Uses the duration attribute to match using minutes<br>minimum: `0.0` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | -| `channels` | Uses the audio channels attribute to match<br>minimum: `0` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green }<sup>**[1](#table-annotations)**</sup> | :fontawesome-solid-circle-check:{ .green }<sup>**[1](#table-annotations)**</sup> | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `height` | Uses the height attribute to match<br>minimum: `0` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green }<sup>**[1](#table-annotations)**</sup> | :fontawesome-solid-circle-check:{ .green }<sup>**[1](#table-annotations)**</sup> | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `width` | Uses the width attribute to match<br>minimum: `0` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green }<sup>**[1](#table-annotations)**</sup> | :fontawesome-solid-circle-check:{ .green }<sup>**[1](#table-annotations)**</sup> | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `aspect` | Uses the aspect attribute to match<br>minimum: `0.0` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green }<sup>**[1](#table-annotations)**</sup> | :fontawesome-solid-circle-check:{ .green }<sup>**[1](#table-annotations)**</sup> | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `versions` | Uses the number of versions found to match<br>minimum: `0` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green }<sup>**[1](#table-annotations)**</sup> | :fontawesome-solid-circle-check:{ .green }<sup>**[1](#table-annotations)**</sup> | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green }<sup>**[1](#table-annotations)**</sup> | :fontawesome-solid-circle-check:{ .green }<sup>**[1](#table-annotations)**</sup> | :fontawesome-solid-circle-check:{ .green } | -| `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` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | - -## Special Filters - -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 | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| `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. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `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. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `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. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| `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. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `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` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `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` | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `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` | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `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 | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | - -## Collection Filter Examples - -A few examples are listed below: - -```yaml -collections: - 1080p Documentaries: - plex_search: - all: - genre: Documentary - summary: A collection of 1080p Documentaries - filters: - resolution: 1080 -``` -```yaml -collections: - Daniel Craig only James Bonds: - imdb_list: https://www.imdb.com/list/ls006405458/ - filters: - actor: Daniel Craig -``` -```yaml -collections: - French Romance: - plex_search: - all: - genre: Romance - filters: - audio_language: Français -``` -```yaml -collections: - Romantic Comedies: - plex_search: - all: - genre: Romance - filters: - genre: Comedy -``` -```yaml -collections: - 9.0 Movies: - plex_all: true - filters: - rating.gte: 9 -``` -```yaml -collections: - Summer 2020 Movies: - plex_all: true - filters: - release.after: 5/1/2020 - release.before: 8/31/2020 -``` -```yaml -collections: - Movies Released in the Last 180 Days: - plex_all: true - filters: - release: 180 -``` -```yaml -collections: - Good Adam Sandler Romantic Comedies: - plex_search: - all: - genre: Romance - actor: Adam Sandler - filters: - genre: Comedy - rating.gte: 7 -``` -```yaml -collections: - Movies with Commentary: - plex_all: true - filters: - audio_track_title: Commentary -``` diff --git a/docs/metadata/metadata.md b/docs/metadata/metadata.md deleted file mode 100644 index ed83aa1c..00000000 --- a/docs/metadata/metadata.md +++ /dev/null @@ -1,130 +0,0 @@ -# Metadata Files - -Metadata files are used to create and maintain collections and metadata within the Plex libraries on the server. - -If utilized to their fullest, these files can be used to maintain the entire server's collections and metadata, and can be used as a backup for these in the event of a restore requirement. - -Collections, templates, metadata, and dynamic collections are defined within one or more Metadata files, which are linked to libraries in the [Libraries Attribute](../config/libraries) within the [Configuration File](../config/configuration.md). - -These are the attributes which can be used within the Metadata File: - -| Attribute | Description | -|:--------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| [`templates`](templates.md) | contains definitions of templates that can be leveraged by multiple collections | -| [`external_templates`](templates.md#external-templates) | contains [path types](../builders/files.md#paths) that point to external templates that can be leveraged by multiple collections | -| [`collections`](#collection-attributes) | contains definitions of collections you wish to add to one or more libraries | -| [`dynamic_collections`](#dynamic-collection-attributes) | contains definitions of [dynamic collections](dynamic.md) you wish to create | -| [`metadata`](#metadata-attributes) | contains definitions of metadata changes to [movie](metadata/movie.md), [show](metadata/show.md), or [music](metadata/music.md) library's items [movie titles, episode descriptions, etc.] | - -* One of `metadata`, `collections` or `dynamic_collections` must be present for the Metadata File to execute. -* Example Metadata Files can be found in the [Plex Meta Manager Configs Repository](https://github.com/meisnate12/Plex-Meta-Manager-Configs/tree/master/PMM) - -## Example - -This example is a Metadata file with a basic collection which is saved in a file called `MyCollections.yml` within the location mapped as `config` in my setup. - -???+ example "Example "MyCollections.yml"" - - Click the :fontawesome-solid-circle-plus: icon to learn more - - ```yaml - collections: #(1)! - Top 50 Grossing Films of All Time (Worldwide): - tmdb_list: 10 #(2)! - collection_order: custom #(3)! - sync_mode: sync #(4)! - ``` - - 1. This must appear once and **only once** in any Metadata file - 2. This creates a collection based on tmdb list ID 10, https://www.themoviedb.org/list/10 would also be accepted - 3. This will sort the items in the Plex collection to be the same as the order in the list - 4. Syncs the collection to the list, so that if an item is added/removed from the list, the same is done to the collection. Set this to `append` if you only want it to add things and not remove them. - -???+ example "config.yml Example Metadata Path Addition" - - Click the :fontawesome-solid-circle-plus: icon to learn more - - ```yaml - libraries: - Movies: #(1)! - collection_files: - - file: config/MyCollections.yml #(2)! - ``` - - 1. This must match the name of a library in your Plex server - 2. `config` refers to the location that you mapped to `config` when following the PMM Installation Guides. - -## Collection Attributes - -Plex Meta Manager can run a number of different operations within `collections` and such as: - -* Automatically build and update collections and playlists -* Sync the collection with the source list if one is used -* Send missing media to Sonarr/Radarr (Lidarr not supported at this time) -* Show and Hide collections at set intervals (i.e. show Christmas collections in December only) - -Each collection requires its own section within the `collections` attribute and unlike playlists, collections can be built using as many Builders as needed. - -```yaml -collections: - Trending Movies: - # ... builders, details, and filters for this collection - Popular Movies: - # ... builders, details, and filters for this collection - etc: - # ... builders, details, and filters for this collection -``` - -There are multiple types of attributes that can be utilized within a collection: - -* [Builders](builders.md) -* [Settings/Updates](update.md) -* [Filters](filters.md) - -### Example - -```yaml -collections: - Trending: - trakt_trending: 10 - tmdb_trending_daily: 10 - tmdb_trending_weekly: 10 - sort_title: +1_Trending - sync_mode: sync - smart_label: random - summary: Movies Trending across the internet - Popular: - tmdb_popular: 40 - imdb_list: - url: https://www.imdb.com/search/title/?title_type=feature,tv_movie,documentary,short - limit: 40 - sort_title: +2_Popular - sync_mode: sync - smart_label: random - summary: Popular Movies across the internet -``` - -## Dynamic Collection Attributes - -Plex Meta Manager can dynamically create collections based on a verity of different criteria, such as - -* Collections for the top `X` popular people on TMDb (Bruce Willis, Tom Hanks etc.) -* Collections for each decade represented in the library (Best of 1990s, Best of 2000s etc.) -* Collections for each of the moods/styles within a Music library (A Cappella, Pop Rock etc.) -* Collections for each of a Trakt Users Lists. - -Below is an example dynamic collection which will create a collection for each of the decades represented within the library: - -```yaml -dynamic_collections: - Decades: - type: decade -``` - -## Metadata Attributes - -Plex Meta Manager can automatically update items in Plex [Movie](metadata/movie.md), [Show](metadata/show.md), and [Music](metadata/music.md) Libraries based on what's defined within the `metadata` attribute. - -Each metadata requires its own section within the `metadata` attribute. - -Each item is defined by the mapping name. Rules for how to match are on the Respective Library Metadata Pages. diff --git a/docs/metadata/metadata/movie.md b/docs/metadata/metadata/movie.md deleted file mode 100644 index 26685d2e..00000000 --- a/docs/metadata/metadata/movie.md +++ /dev/null @@ -1,259 +0,0 @@ -# Movie Library Metadata - -You can have the script edit the metadata of Movies by adding them to the `metadata` mapping of a Metadata File. - -An example of multiple metadata edits in a movie library is below: - -```yaml -metadata: - Godzilla (1954): - match: - title: Godzilla - year: 1954 - content_rating: R - Godzilla (1998): - match: - title: Godzilla - year: 1998 - sort_title: Godzilla 03 - content_rating: PG-13 - Shin Godzilla: - sort_title: Godzilla 06 - content_rating: R - Godzilla 1985: - content_rating: PG - "Godzilla 2000: Millennium": - originally_available: 1999-08-18 - Godzilla Against MechaGodzilla: - originally_available: 2002-03-23 - Godzilla Raids Again: - content_rating: G - originally_available: 1955-05-21 - Godzilla vs. Biollante: - content_rating: PG - Godzilla vs. Destoroyah: - content_rating: PG - originally_available: 1995-01-19 - Godzilla vs. Gigan: - content_rating: G - originally_available: 1972-09-14 - Godzilla vs. Hedorah: - content_rating: G - originally_available: 1971-04-01 - Godzilla vs. King Ghidorah: - content_rating: PG - originally_available: 1991-04-28 - Godzilla vs. Mechagodzilla: - content_rating: G - originally_available: 1974-03-24 - Godzilla vs. Mechagodzilla II: - content_rating: PG - Godzilla vs. Megaguirus: - content_rating: PG - originally_available: 2000-08-31 - Godzilla vs. Megalon: - content_rating: G - originally_available: 1973-03-17 - Godzilla vs. Mothra: - content_rating: PG - originally_available: 1992-04-28 - Godzilla vs. SpaceGodzilla: - content_rating: PG - originally_available: 1994-01-19 - Godzilla, King of the Monsters!: - content_rating: G - "Godzilla, Mothra and King Ghidorah: Giant Monsters All-Out Attack": - content_rating: PG - originally_available: 2001-08-31 - "Godzilla: Final Wars": - content_rating: PG - originally_available: 2004-12-13 - "Godzilla: Tokyo S.O.S.": - originally_available: 2003-12-14 - Halloween (Rob Zombie): - match: - title: - - Halloween (Rob Zombie) - - Halloween - year: 2007 - "Halo 4: Forward Unto Dawn": - match: - title: - - Halo 4: Forward Unto Dawn - - Halo 4 Forward Unto Dawn - tmdb_show: 56295 - content_rating: R -``` - -## Matching Movies - -The `match` attribute is used to match movies within Plex to that definition within the Metadata file. One definition can match and edit multiple movies. The available matching options are outlined below. - -| Attribute | Description | -|:-------------------------------|:------------------------------------------------------------------------------------------------------------------| -| `title`<sup>1</sup> | Only matches movies that exactly match the movie's Title. Can be a list (only one needs to match). | -| `year` | Only matches movies that were released in the given year. | -| `mapping_id`<sup>2</sup> | Only matches movies that have the given TMDb or IMDb ID. | -| `edition`<sup>3</sup> | Only matches movies that exactly match the movie's Edition. Can be a list (only one needs to match). | -| `edition_contains`<sup>3</sup> | Only matches movies where the movie's Edition contains the given string. Can be a list (only one needs to match). | -| `blank_edition`<sup>3</sup> | Only matches movies that have no Edition.<br>**Default:** `false`<br>**Values:** `true` or `false` | - -1. When `title` is not provided and the mapping name was not specified as an ID, the default behaviour is to use the mapping name as `title` for matching. -2. When `mapping_id` is not provided and the mapping name was specified as an ID, the default behaviour is to use the mapping name as `mapping_id` for matching. -3. When the server does not have a Plex Pass then the Edition Field is not accessible. In this scenario, PMM will check the movie's filepath for `{edition-...}` to determine what the edition is. - -### Examples - -Below are some examples on how movies can be matched. - -#### Example 1 - `title` and `mapping_id` - -The below example shows how `title` and `mapping_id` can be used to match movies. - -```yaml -metadata: - movie1: # Matches via the title "Star Wars" - match: - title: Star Wars - edits... - movie2: # Matches via TMDb ID: 299534 - match: - mapping_id: 299534 - edits... - movie3: # Matches via IMDb ID: tt4154756 - match: - mapping_id: tt4154756 - edits... - movie4: # Matches via the title "9" - match: - title: 9 - edits... -``` - -The Mapping Name can also be used to reduce line-count, as shown here: - -```yaml -metadata: - Star Wars: # Matches via the title "Star Wars" - edits... - 299534: # Matches via TMDb ID: 299534 - edits... - tt4154756: # Matches via IMDb ID: tt4154756 - edits... - "9": # Matches via the title "9" - edits... -``` - -**Note:** to search for a movie titled with a number from the mapping name you must surround the number in quotes like in the example below. Otherwise, it will look for the movie associated with that TMDb ID. - -#### Example 2 - `title` and `year` - -The below example shows how `title` and `year` can be used to match movies. - -In this example, there are two movies in the library called "Godzilla", so the `year` attribute is used to identify which movie is being matched. - -```yaml -metadata: - Godzilla (1954): # Matches via the title "Godzilla" released in 1954 - match: - title: Godzilla - year: 1954 - edits... - Godzilla (1998): # Matches via the title "Godzilla" released in 1998 - match: - title: Godzilla - year: 1998 - edits... -``` - -#### Example 3 - using `editions` - -The edition attributes can be used to further specify which version of a movie should be matched within Plex. - -This can be combined with Example 1 as follows - -```yaml -metadata: - movie1: # Matches via the title "Star Wars" and edition containing "4K77" - match: - title: Star Wars - edition_contains: 4K77 - edits... -``` - -If you wanted to specify the version of Star Wars which does not have an edition, then the `blank_edition` attribute can be used as shown below: - -```yaml -metadata: - movie1: # Matches via the title "Star Wars" and checks for no edition version - match: - title: Star Wars - blank_edition: true - edits... -``` - -## Metadata Edits - -The available attributes for editing movies are as follows - -### Special Attributes - -| Attribute | Description | -|:-----------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `tmdb_show` | TMDb Show ID to use for metadata. Used when the Movie in your library is actually a miniseries on TMDb. (Example: [Halo 4: Forward Unto Dawn](https://www.themoviedb.org/tv/56295) or [IT](https://www.themoviedb.org/tv/19614)) **This is not used to say this movie is the given ID.** | -| `run_definition` | Used to specify if this definition runs.<br>Multiple can be used for one definition as a list or comma separated string. One `false` or unmatched library type will cause it to fail.<br>**Values:** `movie`, `show`, `artist`, `true`, `false` | - -1. If the server does not have a Plex Pass then the Edition Field is not accessible. In this case PMM will check the movies filepath for `{edition-MOVIES EDITION}` to determine what the edition is. - -### General Attributes - -| Attribute | Allowed Values | -|:-----------------------|:---------------------------------------------------------------| -| `title` | Text to change Title. | -| `sort_title` | Text to change Sort Title. | -| `edition`<sup>1</sup> | Text to change Edition. | -| `original_title` | Text to change Original Title. | -| `originally_available` | Date to change Originally Available.<br>**Format:** YYYY-MM-DD | -| `content_rating` | Text to change Content Rating. | -| `user_rating` | Number to change User Rating. | -| `audience_rating` | Number to change Audience Rating. | -| `critic_rating` | Number to change Critic Rating. | -| `studio` | Text to change Studio. | -| `tagline` | Text to change Tagline. | -| `summary` | Text to change Summary. | - -1. Requires Plex Pass - -### Tag Attributes - -You can add `.remove` to any tag attribute to only remove those tags i.e. `genre.remove`. - -You can add `.sync` to any tag attribute to sync all tags vs just appending the new ones i.e. `genre.sync`. - -| Attribute | Allowed Values | -|:-------------|:-----------------------------------------------------| -| `director` | List or comma-separated text of each Director Tag. | -| `country` | List or comma-separated text of each Country Tag. | -| `genre` | List or comma-separated text of each Genre Tag. | -| `writer` | List or comma-separated text of each Writer Tag. | -| `producer` | List or comma-separated text of each Producer Tag. | -| `collection` | List or comma-separated text of each Collection Tag. | -| `label` | List or comma-separated text of each Label Tag. | - -### Image Attributes - -| Attribute | Allowed Values | -|:------------------|:-------------------------------------------------| -| `url_poster` | URL of image publicly available on the internet. | -| `file_poster` | Path to image in the file system. | -| `url_background` | URL of image publicly available on the internet. | -| `file_background` | Path to image in the file system. | - -### Advanced Attributes - -| Attribute | Allowed Values | -|:---------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `metadata_language`<sup>1</sup> | `default`, `ar-SA`, `ca-ES`, `cs-CZ`, `da-DK`, `de-DE`, `el-GR`, `en-AU`, `en-CA`, `en-GB`, `en-US`, `es-ES`, `es-MX`, `et-EE`, `fa-IR`, `fi-FI`, `fr-CA`, `fr-FR`, `he-IL`, `hi-IN`, `hu-HU`, `id-ID`, `it-IT`, `ja-JP`, `ko-KR`, `lt-LT`, `lv-LV`, `nb-NO`, `nl-NL`, `pl-PL`, `pt-BR`, `pt-PT`, `ro-RO`, `ru-RU`, `sk-SK`, `sv-SE`, `th-TH`, `tr-TR`, `uk-UA`, `vi-VN`, `zh-CN`, `zh-HK`, `zh-TW` | -| `use_original_title`<sup>1</sup> | `default`: Library default<br>`no`: No<br>`yes`: Yes | - -1. Must be using the **New Plex Movie Agent**. \ No newline at end of file diff --git a/docs/metadata/metadata/music.md b/docs/metadata/metadata/music.md deleted file mode 100644 index 61558303..00000000 --- a/docs/metadata/metadata/music.md +++ /dev/null @@ -1,138 +0,0 @@ -# Music Library Metadata - -You can have the script edit the metadata of Artists, Albums, and Tracks by adding them to the `metadata` mapping of a Metadata File. - -An example of multiple metadata edits in a music library is below: - -```yaml -metadata: - "Linkin Park": - country: "United States of America" - album_sorting: newest - albums: - "Hybrid Theory": - originally_available: "2000-10-24" - tracks: - 1: - user_rating: 5 - "One Step Closer": - user_rating: 5 - "Meteora": - originally_available: "2003-03-25" - album_sorting: newest - tracks: - 9: - user_rating: 5 - "Numb": - user_rating: 5 - "Minutes To Midnight": - originally_available: "2007-05-14" -``` - -## Matching Artist - -The `match` attribute is used to match artists within Plex to that definition within the Metadata file. One definition can match and edit multiple artists. The available matching options are outlined below. - -| Attribute | Allowed Values | -|:-------------------------------|:-----------------------------------------------------------------------------------------------------| -| `title`<sup>1</sup> | Only matches artists that exactly match the artist's Title. Can be a list (only one needs to match). | - -1. When `title` is not provided and the mapping name was not specified as an ID, the default behaviour is to use the mapping name as `title` for matching. - -### Examples - -Below are some examples on how artists can be matched. - -#### Example 1 - `title` - -The below example shows how `title` can be used to match artists. - -```yaml -metadata: - artist1: # Matches via the title "Ke$ha" - match: - title: Ke$ha - edits... - artist2: # Matches via the title "311" - match: - title: 311 - edits... -``` - -The Mapping Name can also be used to reduce line-count, as shown here: - -```yaml -metadata: - Ke$ha: # Matches via the Name "Ke$ha" - edits... - "311": # Matches via the Name "311" - edits... -``` - -## Metadata Edits - -The available attributes for editing artists, albums, and tracks are as follows - -### Special Attributes - -| Attribute | Values | Artists | Album | Tracks | -|:------------|:----------------------------------------------------------------------------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:----------------------------------------:| -| `albums` | Attribute used to edit album metadata. The mapping name is the album name. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `tracks` | Attribute used to edit track metadata. The mapping name is the track number on that Album, or the title of the Track. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | - -* If you know of another Title your item might exist under, but you want it titled differently you can use `alt_title` to specify another title to look under and then be changed to the mapping name. For Example the Artist `Kesha` used to be stylized as `Ke$ha`, and might still be found that way in Metadata results. - ```yaml - metadata: - "Kesha": - alt_title: "Ke$ha" - ``` - This would change the name of the default `Ke$ha` to `Kesha` and would not mess up any subsequent runs. -`` -### General Attributes - -| Attribute | Values | Artists | Album | Tracks | -|:-----------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:------------------------------------------:| -| `title` | Text to change Title. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | -| `sort_title` | Text to change Sort Title. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| `user_rating` | Number to change User Rating. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| `critic_rating` | Number to change Critic Rating. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| `originally_available` | Date to change Originally Available.<br>**Format:** YYYY-MM-DD | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| `record_label` | Text to change Record Label. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| `summary` | Text to change Summary. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| `track` | Text to change Track. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | -| `disc` | Text to change Disc. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | -| `original_artist` | Text to change Original Artist. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | -| `run_definition` | Used to specify if this definition runs.<br>Multiple can be used for one definition as a list or comma separated string. One `false` or unmatched library type will cause it to fail.<br>**Values:** `movie`, `show`, `artist`, `true`, `false` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | - -### Tag Attributes - -You can add `.remove` to any tag attribute to only remove those tags i.e. `genre.remove`. - -You can add `.sync` to any tag attribute to sync all tags vs just appending the new ones i.e. `genre.sync`. - -| Attribute | Values | Artists | Album | Tracks | -|:-----------------|:---------------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:------------------------------------------:| -| `genre` | List or comma-separated text of each Genre Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| `collection` | List or comma-separated text of each Collection Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| `label` | List or comma-separated text of each Label Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| `style` | List or comma-separated text of each Style Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| `mood` | List or comma-separated text of each Mood Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| `country` | List or comma-separated text of each Country Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `similar_artist` | List or comma-separated text of each Similar Artist Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | - -### Image Attributes - -| Attribute | Values | Artists | Album | Tracks | -|:------------------|:-------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:----------------------------------------:| -| `url_poster` | URL of image publicly available on the internet. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| `file_poster` | Path to image in the file system. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| `url_background` | URL of image publicly available on the internet. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| `file_background` | Path to image in the file system. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | - -### Advanced Attributes - -All these attributes only work with Artists. - -| Attribute | Values | -|:----------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `album_sorting` | <table class="clearTable"><tbody><tr><td>`default`</td><td>Library default</td></tr><tr><td>`oldest`</td><td>Oldest first</td></tr><tr><td>`newest`</td><td>Newest first</td></tr><tr><td>`name`</td><td>Alphabetical</td></tr></tbody></table> | diff --git a/docs/metadata/metadata/show.md b/docs/metadata/metadata/show.md deleted file mode 100644 index c84542a4..00000000 --- a/docs/metadata/metadata/show.md +++ /dev/null @@ -1,210 +0,0 @@ -# TV Show Library Metadata - -You can have the script edit the metadata of Shows, Seasons, and Episodes by adding them to the `metadata` mapping of a Metadata File. - -An example of multiple metadata edits in a show library is below: -```yaml -metadata: - "Avatar: The Last Airbender": - sort_title: Avatar 01 - seasons: - 1: - title: "Book One: Water" - summary: >- - After a lapse of 100 years, the Avatar-spiritual master of the elements-has returned. And just in - the nick of time. The Four Nations (Water, Earth, Fire, and Air) have become unbalanced. The Fire - Nation wants to rule the world, and its first conquest will be the Northern Water Tribe. It's up to - a 12-year-old Airbender named Aang to find a way to stop it. Join Aang, Katara, Sokka, Momo, and - Appa as they head north on the adventure of a lifetime. - episodes: - 1: - user_rating: 9.1 - 2: - title: "Book Two: Earth" - summary: >- - Avatar Aang continues his quest to master the four elements before the end of summer. Together with - Katara, Sokka, Momo, and Appa, he journeys across the Earth Kingdom in search of an Earthbending - mentor. Along the way, he confronts Princess Azula, treacherous daughter of Firelord Ozai and - sister to Prince Zuko. More powerful than her brother, Azula will stop nothing to defeat the Avatar. - But Aang and the gang find plenty of Earth Kingdom allies to help them along the way. From the swamps - of the South to the Earth King's palace, Avatar: Book 2 is an adventure like no other. - 3: - title: "Book Three: Fire" - summary: >- - Having survived the terrible battle with Azula, Aang faces new challenges as he and his brave - friends secretly enter the Fire Nation. Their quest is to find and defeat Firelord Ozai. Along - the way, they discover that Ozai has plans of his own. The leader of the Fire Nation intends to - use the massive power of Sozin's comet to spread his dominion permanently across the four nations. - Short on time, Aang has a lot of bending to learn and no master to help him learn it. However, his - friends are there to help, and he finds unexpected allies deep in the heart of the Fire Nation. In - the spectacular four-part conclusion, Aang must fulfill his destiny and become a fully realized - Avatar, or watch the world go up in smoke. - episodes: - 21: - summary: The Epic Series Final of Avatar The Last Airbender - "Avatar: The Legend of Korra": - match: - title: - - "Avatar: The Legend of Korra" - - The Legend of Korra - sort_title: Avatar 02 - original_title: The Legend of Korra - seasons: - 1: - title: "Book One: Air" - 2: - title: "Book Two: Spirits" - 3: - title: "Book Three: Change" - 4: - title: "Book Four: Balance" -``` - -## Matching Shows - -The `match` attribute is used to match shows within Plex to that definition within the Metadata file. One definition can match and edit multiple shows. The available matching options are outlined below. - -| Attribute | Allowed Values | -|:-------------------------------|:------------------------------------------------------------------------------------------------------------------| -| `title`<sup>1</sup> | Only matches shows that exactly match the show's Title. Can be a list (only one needs to match). | -| `year` | Only matches shows that were released in the given year. | -| `mapping_id`<sup>2</sup> | Only matches shows that have the given TVDb or IMDb ID. | - -1. When `title` is not provided and the mapping name was not specified as an ID, the default behaviour is to use the mapping name as `title` for matching. -2. When `mapping_id` is not provided and the mapping name was specified as an ID, the default behaviour is to use the mapping name as `mapping_id` for matching. - -### Examples - -Below are some examples on how shows can be matched. - -#### Example 1 - `title` and `mapping_id` - -The below example shows how `title` and `mapping_id` can be used to match shows. - -```yaml -metadata: - show1: # Matches via the title "Game of Thrones" - match: - title: Game of Thrones - edits... - show2: # Matches via TVDb ID: 366524 - match: - mapping_id: 366524 - edits... - show3: # Matches via IMDb ID: tt10234724 - match: - mapping_id: tt10234724 - edits... - show4: # Matches via the title "24" - match: - title: 24 - edits... -``` - -The Mapping Name can also be used to reduce line-count, as shown here: - -```yaml -metadata: - Game of Thrones: # Matches via the Name "Game of Thrones" - edits... - 366524: # Matches via TVDb ID: 366524 - edits... - tt10234724: # Matches via IMDb ID: tt10234724 - edits... - "24": # Matches via the Name "24" - edits... -``` - -**Note:** to search for a show titled with a number from the mapping name you must surround the number in quotes like in the example below. Otherwise, it will look for the show associated with that TVDb ID. - -#### Example 2 - `title` and `year` - -The below example shows how `title` and `year` can be used to match shows. - -In this example, there are two shows in the library called "Vikings", so the `year` attribute is used to identify which show is being matched. - -```yaml -metadata: - Vikings (2012): # Matches via the title "Vikings" released in 2012 - match: - title: Vikings - year: 2012 - edits... - Vikings (2013): # Matches via the title "Vikings" released in 2013 - match: - title: Vikings - year: 2013 - edits... -``` - -## Metadata Edits - -The available attributes for editing shows, seasons, and episodes are as follows - -### Special Attributes - -| Attribute | Description | Shows | Seasons | Episodes | -|:------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:----------------------------------------:| -| `f1_season` | F1 Season Year to make the Show represent a Season of F1 Races. See [Formula 1 Metadata Guide](../../pmm/install/guides/formula.md) for more information. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `round_prefix` | Used only with `f1_season` to add the round as a prefix to the Season (Race) Titles i.e. `Australian Grand Prix` --> `01 - Australian Grand Prix`. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `shorten_gp` | Used only with `f1_season` to shorten `Grand Prix` to `GP` in the Season (Race) Titles i.e. `Australian Grand Prix` --> `Australian GP`. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `seasons` | Attribute used to edit season metadata. The mapping name is the season number (use 0 for specials) or the season name. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `episodes` | Attribute used to edit episode metadata. The mapping name is the episode number in that season, the title of the episode, or the Originally Available date in the format `MM/DD`. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| `run_definition` | Used to specify if this definition runs.<br>Multiple can be used for one definition as a list or comma separated string. One `false` or unmatched library type will cause it to fail.<br>**Values:** `movie`, `show`, `artist`, `true`, `false` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `update_seasons` | Used to specify if this definition's seasons metadata will update.<br>Multiple can be used for one definition as a list or comma separated string. One `false` will cause it to fail.<br>**Values:** `true`, `false` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `update_episodes` | Used to specify if this definition's episodes metadata will update.<br>Multiple can be used for one definition as a list or comma separated string. One `false` will cause it to fail.<br>**Values:** `true`, `false` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | - -### General Attributes - -| Attribute | Allowed Values | Shows | Seasons | Episodes | -|:-----------------------|:---------------------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:------------------------------------------:| -| `title` | Text to change Title. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| `sort_title` | Text to change Sort Title. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | -| `original_title` | Text to change Original Title. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `originally_available` | Date to change Originally Available.<br>**Format:** YYYY-MM-DD | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | -| `content_rating` | Text to change Content Rating. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | -| `user_rating` | Number to change User Rating. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| `audience_rating` | Number to change Audience Rating. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | -| `critic_rating` | Number to change Critic Rating. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | -| `studio` | Text to change Studio. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `tagline` | Text to change Tagline. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `summary` | Text to change Summary. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | - -### Tag Attributes - -You can add `.remove` to any tag attribute to only remove those tags i.e. `genre.remove`. - -You can add `.sync` to any tag attribute to sync all tags vs just appending the new ones i.e. `genre.sync`. - -| Attribute | Allowed Values | Shows | Seasons | Episodes | -|:-------------|:-----------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:------------------------------------------:| -| `director` | List or comma-separated text of each Director Tag. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | -| `genre` | List or comma-separated text of each Genre Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `writer` | List or comma-separated text of each Writer Tag. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | -| `collection` | List or comma-separated text of each Collection Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| `label` | List or comma-separated text of each Label Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | - -### Image Attributes - -| Attribute | Allowed Values | Shows | Seasons | Episodes | -|:------------------|:-------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:------------------------------------------:| -| `url_poster` | URL of image publicly available on the internet. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| `file_poster` | Path to image in the file system. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| `url_background` | URL of image publicly available on the internet. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| `file_background` | Path to image in the file system. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | - -### Advanced Attributes - -All these attributes only work with Shows. - -| Attribute | Allowed Values | -|:---------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `episode_sorting` | <table class="clearTable"><tbody><tr><td>`default`</td><td>Library default</td></tr><tr><td>`oldest`</td><td>Oldest first</td></tr><tr><td>`newest`</td><td>Newest first</td></tr></tbody></table> | -| `keep_episodes` | <table class="clearTable"><tbody><tr><td>`all`</td><td>All episodes</td></tr><tr><td>`5_latest`</td><td>5 latest episodes</td></tr><tr><td>`3_latest`</td><td>3 latest episodes</td></tr><tr><td>`latest`</td><td>Latest episodes</td></tr><tr><td>`past_3`</td><td>Episodes added in the past 3 days</td></tr><tr><td>`past_7`</td><td>Episodes added in the past 7 days</td></tr><tr><td>`past_30`</td><td>Episodes added in the past 30 days</td></tr></tbody></table> | -| `delete_episodes` | <table class="clearTable"><tbody><tr><td>`never`</td><td>Never</td></tr><tr><td>`day`</td><td>After a day</td></tr><tr><td>`week`</td><td>After a week</td></tr><tr><td>`refresh`</td><td>On next refresh</td></tr></tbody></table> | -| `season_display` | <table class="clearTable"><tbody><tr><td>`default`</td><td>Library default</td></tr><tr><td>`show`</td><td>Show</td></tr><tr><td>`hide`</td><td>Hide</td></tr></tbody></table> | -| `episode_ordering` | <table class="clearTable"><tbody><tr><td>`default`</td><td>Library default</td></tr><tr><td>`tmdb_aired`</td><td>The Movie Database (Aired)</td></tr><tr><td>`tvdb_aired`</td><td>TheTVDb (Aired)</td></tr><tr><td>`tvdb_dvd`</td><td>TheTVDb (DVD)</td></tr><tr><td>`tvdb_absolute`</td><td>TheTVDb (Absolute)</td></tr></tbody></table> | -| `metadata_language`<sup>1</sup> | `default`, `ar-SA`, `ca-ES`, `cs-CZ`, `da-DK`, `de-DE`, `el-GR`, `en-AU`, `en-CA`, `en-GB`, `en-US`, `es-ES`, `es-MX`, `et-EE`, `fa-IR`, `fi-FI`, `fr-CA`, `fr-FR`, `he-IL`, `hi-IN`, `hu-HU`, `id-ID`, `it-IT`, `ja-JP`, `ko-KR`, `lt-LT`, `lv-LV`, `nb-NO`, `nl-NL`, `pl-PL`, `pt-BR`, `pt-PT`, `ro-RO`, `ru-RU`, `sk-SK`, `sv-SE`, `th-TH`, `tr-TR`, `uk-UA`, `vi-VN`, `zh-CN`, `zh-HK`, `zh-TW` | -| `use_original_title`<sup>1</sup> | <table class="clearTable"><tbody><tr><td>`default`</td><td>Library default</td></tr><tr><td>`no`</td><td>No</td></tr><tr><td>`yes`</td><td>Yes</td></tr></tbody></table> | - -1. Must be using the **New Plex TV Agent** \ No newline at end of file diff --git a/docs/metadata/overlay.md b/docs/metadata/overlay.md deleted file mode 100644 index 759467b6..00000000 --- a/docs/metadata/overlay.md +++ /dev/null @@ -1,505 +0,0 @@ -# Overlay Files - -Overlay files are used to create and maintain overlays within the Plex libraries on the server. - -Overlays and templates are defined within one or more Overlay files, which are linked to libraries in the [Libraries Attribute](../config/libraries.md#overlay-file) within the [Configuration File](../config/configuration.md). - -## Example - - -This example is an Overlay file with a basic overlay which is saved in a file called `MyOverlays.yml` within the location mapped as `config` in my setup. - -???+ example "Example "MyOverlays.yml"" - - Click the :fontawesome-solid-circle-plus: icon to learn more - - This will add an overlay with text that says "Direct Play" to any item which has a 4K resolution in my library. It will be located at the bottom of the poster in the center. - - ```yaml - overlays: #(1)! - directplay: - overlay: - name: text(Direct Play) #(2)! - horizontal_offset: 0 - horizontal_align: center - vertical_offset: 150 - vertical_align: bottom - font_size: 63 - font_color: "#FFFFFF" - back_color: "#00000099" - back_radius: 30 - plex_search: #(3)! - all: - resolution: 4K - ``` - - 1. This must appear once and **only once** in any Overlay file - 2. This tells PMM to use text as the overlay rather than an image - 3. This is the criteria that PMM will use to define what should receive the overlay - -???+ example "config.yml Example Overlay Path Addition" - - Click the :fontawesome-solid-circle-plus: icon to learn more - - ```yaml - libraries: - Movies: #(1)! - overlay_path: - - remove_overlays: false - - file: config/MyOverlays.yml #(2)! - ``` - - 1. This must match the name of a library in your Plex server - 2. `config` refers to the location that you mapped to `config` when following the PMM Installation Guides. - -All overlay coordinates assume 1000 x 1500 for Posters and 1920 x 1080 for Backgrounds and Title Cards. - -**To remove all overlays add `remove_overlays: true` to the `overlay_path` [Libraries Attribute](../config/libraries.md#remove-overlays).** - -???+ danger "Important Notice" - - Once you have applied overlays to your posters in Plex, it is highly recommended that you never change artwork on a thing directly in Plex again. PMM uses labels on the items in Plex to decide if an overlay has been applied, so if you change artwork behind PMM's back things can become confused and items can end up with double-overlaid posters. It's recommended to set new artwork using the asset directory, which will ensure that this doesn't happen. - -**To change a single overlay original image either remove the `Overlay` shared label and update the Image in Plex or replace the image in the assets folder and then PMM will overlay the new image** - -These are the attributes which can be used within the Overlay File: - -| Attribute | Description | -|:--------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------| -| [`templates`](templates.md) | contains definitions of templates that can be leveraged by multiple overlays | -| [`external_templates`](templates.md#external-templates) | contains [path types](../builders/files.md#paths) that point to external templates that can be leveraged by multiple overlays | -| [`queues`](#overlay-queues) | contains the positional attributes of queues | -| [`overlays`](#overlays-attributes) | contains definitions of overlays you wish to add | - -* `overlays` is required in order to run the Overlay File. -* Example Overlay Files can be found in the [Plex Meta Manager Configs Repository](https://github.com/meisnate12/Plex-Meta-Manager-Configs/tree/master/PMM) - -## Overlays Attributes - -Each overlay definition requires its own section within the `overlays` attribute. - -```yaml -overlays: - IMDb Top 250: - # ... builders, details, and filters for this overlay - 4K: - # ... builders, details, and filters for this overlay - etc: - # ... builders, details, and filters for this overlay -``` - -There are multiple types of attributes that can be utilized within an overlay: - -* [Builders](builders.md) -* [Settings/Updates](update.md) -* [Filters](filters.md) - -## Overlay - -Each overlay definition needs to specify what overlay to use. This can happen in 3 ways. - -1. If there is no `overlay` attribute PMM will look in your `config/overlays` folder for a `.png` file named the same as the mapping name of the overlay definition. This example below would look for `IMDb Top 250.png`. - ```yaml - overlays: - IMDb Top 250: - imdb_chart: top_movies - ``` - -2. If the `overlay` attribute is given a string PMM will look in your `config/overlays` folder for a `.png` file named the same as the string given. This example below would look for `IMDbTop.png`. - ```yaml - overlays: - overlay: IMDbTop - IMDb Top 250: - imdb_chart: top_movies - ``` - -3. Using a dictionary for more overlay location options. - ```yaml - overlays: - IMDb Top 250: - overlay: - name: IMDb Top 250 - imdb_chart: top_movies - ``` - -There are many attributes available when using overlays to edit how they work. - -| Attribute | Description | Required | -|:---------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------:| -| `name` | Name of the overlay. | :fontawesome-solid-circle-check:{ .green } | -| `file` | Local location of the Overlay Image. | :fontawesome-solid-circle-xmark:{ .red } | -| `url` | URL of Overlay Image Online. | :fontawesome-solid-circle-xmark:{ .red } | -| `git` | Location in the [Configs Repo](https://github.com/meisnate12/Plex-Meta-Manager-Configs) of the Overlay Image. | :fontawesome-solid-circle-xmark:{ .red } | -| `repo` | Location in the [Custom Repo](../config/settings.md#custom-repo) of the Overlay Image. | :fontawesome-solid-circle-xmark:{ .red } | -| [`group`](#overlay-groups) | Name of the Grouping for this overlay. Only one overlay with the highest weight per group will be applied.<br>**`weight` is required when using `group`**<br>**Values:** group name | :fontawesome-solid-circle-xmark:{ .red } | -| [`queue`](#overlay-queues) | Name of the Queue for this overlay. Define `queue` positions using the `queues` attribute at the top level of an Overlay File. Overlay with the highest weight is applied to the first position and so on.<br>**`weight` is required when using `queue`**<br>**Values:** queue name | :fontawesome-solid-circle-xmark:{ .red } | -| `weight` | Weight of this overlay in its group or queue.<br>**`group` or `queue` is required when using `weight`**<br>**Values:** Integer 0 or greater | :fontawesome-solid-circle-xmark:{ .red } | -| `horizontal_offset` | Horizontal Offset of this overlay. Can be a %.<br>**`vertical_offset` is required when using `horizontal_offset`**<br>**Value:** Integer 0 or greater or 0%-100% | :fontawesome-solid-circle-xmark:{ .red } | -| `horizontal_align` | Horizontal Alignment of the overlay.<br>**Values:** `left`, `center`, `right` | :fontawesome-solid-circle-xmark:{ .red } | -| `vertical_offset` | Vertical Offset of this overlay. Can be a %.<br>**`horizontal_offset` is required when using `vertical_offset`**<br>**Value:** Integer 0 or greater or 0%-100% | :fontawesome-solid-circle-xmark:{ .red } | -| `vertical_align` | Vertical Alignment of the overlay.<br>**Values:** `top`, `center`, `bottom` | :fontawesome-solid-circle-xmark:{ .red } | -| `font` | System Font Filename or path to font file for the Text Overlay.<br>**Value:** System Font Filename or path to font file | :fontawesome-solid-circle-xmark:{ .red } | -| `font_style` | Font style for Variable Fonts. Only needed when using a Variable Font.<br>**Value:** Variable Font Style | :fontawesome-solid-circle-xmark:{ .red } | -| `font_size` | Font Size for the Text Overlay.<br>**Value:** Integer greater than 0 | :fontawesome-solid-circle-xmark:{ .red } | -| `font_color` | Font Color for the Text Overlay.<br>**Value:** Color Hex Code in format `#RGB`, `#RGBA`, `#RRGGBB` or `#RRGGBBAA`. | :fontawesome-solid-circle-xmark:{ .red } | -| `stroke_width` | Font Stroke Width for the Text Overlay.<br>**Value:** Integer greater than 0 | :fontawesome-solid-circle-xmark:{ .red } | -| `stroke_color` | Font Stroke Color for the Text Overlay.<br>**Value:** Color Hex Code in format `#RGB`, `#RGBA`, `#RRGGBB` or `#RRGGBBAA`. | :fontawesome-solid-circle-xmark:{ .red } | -| `back_color` | Backdrop Color for the Text Overlay.<br>**Value:** Color Hex Code in format `#RGB`, `#RGBA`, `#RRGGBB` or `#RRGGBBAA`. | :fontawesome-solid-circle-xmark:{ .red } | -| `back_width` | Backdrop Width for the Text Overlay. If `back_width` is not specified the Backdrop Sizes to the text<br>**`back_height` is required when using `back_width`**<br>**Value:** Integer greater than 0 | :fontawesome-solid-circle-xmark:{ .red } | -| `back_height` | Backdrop Height for the Text Overlay. If `back_height` is not specified the Backdrop Sizes to the text<br>**`back_width` is required when using `back_height`**<br>**Value:** Integer greater than 0 | :fontawesome-solid-circle-xmark:{ .red } | -| `back_align` | Alignment for the Text Overlay inside the backdrop. If `back_align` is not specified the Backdrop Centers the text<br>**`back_width` and `back_height` are required when using `back_align`**<br>**Values:** `left`, `right`, `center`, `top`, `bottom` | :fontawesome-solid-circle-xmark:{ .red } | -| `back_padding` | Backdrop Padding for the Text Overlay.<br>**Value:** Integer greater than 0 | :fontawesome-solid-circle-xmark:{ .red } | -| `back_radius` | Backdrop Radius for the Text Overlay.<br>**Value:** Integer greater than 0 | :fontawesome-solid-circle-xmark:{ .red } | -| `back_line_color` | Backdrop Line Color for the Text Overlay.<br>**Value:** Color Hex Code in format `#RGB`, `#RGBA`, `#RRGGBB` or `#RRGGBBAA`. | :fontawesome-solid-circle-xmark:{ .red } | -| `back_line_width` | Backdrop Line Width for the Text Overlay.<br>**Value:** Integer greater than 0 | :fontawesome-solid-circle-xmark:{ .red } | -| `addon_offset` | Text Addon Image Offset from the text.<br>**`addon_offset` Only works with text overlays**<br>**Value:** Integer 0 or greater | :fontawesome-solid-circle-xmark:{ .red } | -| `addon_position` | Text Addon Image Alignment in relation to the text.<br>**`addon_position` Only works with text overlays**<br>**Values:** `left`, `right`, `top`, `bottom` | :fontawesome-solid-circle-xmark:{ .red } | - -* If `url`, `git`, and `repo` are all not defined then PMM will look in your `config/overlays` folder for a `.png` file named the same as the `name` attribute. - -### Non-Positional Image Overlay - -Non-Positional overlays are images that are either 1000 x 1500 for Posters or 1920 x 1080 for Backgrounds and Title Cards. - -These Overlays should be mostly transparent and will just be completely merged with the base image. - -### Positional Image Overlay - -Positional overlays can be of any size and use `horizontal_offset`, `horizontal_align`, `vertical_offset`, and `vertical_align` to position the overlay on the image. - -```yaml -overlays: - IMDB-Top-250: - imdb_chart: top_movies - overlay: - name: IMDB-Top-250 - pmm: images/IMDB-Top-250 - horizontal_offset: 0 - horizontal_align: right - vertical_offset: 0 - vertical_align: bottom -``` - -### Blurring Overlay - -There is a special overlay named `blur` that when given as the overlay name will instead of finding the image will just blur the image instead. - -You can control the level of the blur by providing a number with the attribute like so `blur(##)`. - -```yaml -overlays: - blur: - overlay: - name: blur(50) - builder_level: episode - plex_search: - all: - resolution: 4K -``` - - ![](blur.png) - -### Backdrop Overlay - -There is a special overlay named `backdrop` that when given as the overlay name will instead of finding the image will just apply the background instead. - -You can set the size of the backdrop with `back_width` and `back_height`. By Default, they will extend the length of the Image. - -```yaml -overlays: - blur: - overlay: - name: backdrop - back_color: "#00000099" - builder_level: episode - plex_all: true -``` - -### Text Overlay - -You can add text as an overlay using the special `text()` overlay name. Anything inside the parentheses will be added as an overlay onto the image. Ex `text(4K)` adds `4K` to the image. - -You can control the font, font size and font color using the `font`, `font_size`, and `font_color` overlay attributes. - -You can control the backdrop of the text using the various `back_*` attributes. - -The `horizontal_offset` and `vertical_offset` overlay attributes are required when using Text Overlays. - -PMM includes multiple fonts in the [`fonts` folder](https://github.com/meisnate12/Plex-Meta-Manager/tree/master/fonts) which can be called using `fonts/fontname.ttf` - -```yaml -overlays: - audience_rating: - overlay: - name: text(Direct Play) - horizontal_offset: 0 - horizontal_align: center - vertical_offset: 150 - vertical_align: bottom - font: fonts/Inter-Medium.ttf - font_size: 63 - font_color: "#FFFFFF" - back_color: "#00000099" - back_radius: 30 -``` - -#### Special Text Variables - -You can use the item's metadata to determine the text by adding Special Text Variables to your text Overlay. - -There are multiple Special Text Variables that can be used when formatting the text. The variables are defined like so `<<name>>` and some can have modifiers like so `<<name$>>` where `$` is the modifier. The available options are: - -| Special Text Variables & Mods | Movies | Shows | Seasons | Episodes | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:------------------------------------------:|:------------------------------------------:| -| `<<audience_rating>>`: audience rating (`8.7`, `9.0`)<br>`<<audience_rating%>>`: audience rating out of 100 (`87`, `90`)<br>`<<audience_rating#>>`: audience rating removing `.0` as needed (`8.7`, `9`)<br>`<<audience_rating/>>`: audience rating on a 5 point scale (`8.6` shows as `4.3`) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | -| `<<critic_rating>>`: critic rating (`8.7`, `9.0`)<br>`<<critic_rating%>>`: critic rating out of 100 (`87`, `90`)<br>`<<critic_rating#>>`: critic rating removing `.0` as needed (`8.7`, `9`)<br>`<<critic_rating/>>`: critic rating on a 5 point scale (`8.6` shows as `4.3`) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | -| `<<user_rating>>`: user rating (`8.7`, `9.0`)<br>`<<user_rating%>>`: user rating out of 100 (`87`, `90`)<br>`<<user_rating#>>`: user rating removing `.0` as needed (`8.7`, `9`)<br>`<<user_rating/>>`: user rating on a 5 point scale (`8.6` shows as `4.3`) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| `<<title>>`: Title of the Item<br>`<<titleU>>`: Uppercase Title of the Item<br>`<<titleL>>`Lowercase Title of the Item<br>`<<titleP>>`Proper Title of the Item | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| `<<show_title>>`: Title of the Item's Show<br>`<<show_itleU>>`: Uppercase Title of the Item's Show<br>`<<show_titleL>>`Lowercase Title of the Item's Show<br>`<<show_titleP>>`Proper Title of the Item's Show | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| `<<season_title>>`: Title of the Item's Season<br>`<<season_titleU>>`: Uppercase Title of the Item's Season<br>`<<season_titleL>>`Lowercase title of the Item's Season<br>`<<season_titleP>>`Proper title of the Item's Season | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | -| `<<original_title>>`: Original Title of the Item<br>`<<original_titleU>>`: Original Title of the Item<br>`<<original_titleL>>`Lowercase Original Title of the Item<br>`<<original_titleP>>`Proper Original Title of the Item | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `<<edition>>`: Edition of the Item<br>`<<editionU>>`: Uppercase Edition of the Item<br>`<<editionL>>`Lowercase Edition of the Item<br>`<<editionP>>`Proper Edition of the Item | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | -| `<<content_rating>>`: Content Rating of the Item<br>`<<content_ratingU>>`: Uppercase Content Rating of the Item<br>`<<content_ratingL>>`Lowercase Content Rating of the Item<br>`<<content_ratingP>>`Proper Content Rating of the Item | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | -| `<<episode_count>>`: Number of Episodes (`1`)<br>`<<episode_countW>>`: Number of Episodes As Words (`One`)<br>`<<episode_countWU>>`: Number of Episodes As Uppercase Words (`ONE`)<br>`<<episode_countWL>>`: Number of Episodes As Lowercase Words (`one`)<br>`<<episode_count0>>`: Number of Episodes With 10s Padding (`01`)<br>`<<episode_count00>>`: Number of Episodes With 100s Padding (`001`) | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | -| `<<season_number>>`: Season Number (`1`)<br>`<<season_numberW>>`: Season Number As Words (`One`)<br>`<<season_numberWU>>`: Season Number As Uppercase Words (`ONE`)<br>`<<season_numberWL>>`: Season Number As Lowercase Words (`one`)<br>`<<season_number0>>`: Season Number With 10s Padding (`01`)<br>`<<season_number00>>`: Season Number With 100s Padding (`001`) | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| `<<episode_number>>`: Episode Number (`1`)<br>`<<episode_numberW>>`: Episode Number As Words (`One`)<br>`<<episode_numberWU>>`: Episode Number As Uppercase Words (`One`)<br>`<<episode_numberWL>>`: Episode Number As Lowercase Words (`one`)<br>`<<episode_number0>>`: Episode Number With 10s Padding (`01`)<br>`<<episode_number00>>`: Episode Number With 100s Padding (`001`) | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | -| `<<versions>>`: Number of Versions of the Item (`1`)<br>`<<versionsW>>`: Number of Versions of the Item As Words (`One`)<br>`<<versionsWO>>`: Number of Versions of the Item As Uppercase Words (`ONE`)<br>`<<versionsWL>>`: Number of Versions of the Item As Words (`one`)<br>`<<versions0>>`: Number of Versions of the Item With 10s Padding (`01`)<br>`<<versions00>>`: Number of Versions of the Item With 100s Padding (`001`) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | -| `<<runtime>>`: Complete Runtime of the Item in minutes (`150`)<br>`<<runtimeH>>`: Hours in runtime of the Item (`2`)<br>`<<runtimeM>>`: Minutes remaining in the hour in the runtime of the Item (`30`)<br>**Show and Season use average Episode Runtime.** | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | -| `<<bitrate>>`: Bitrate of the first media file for an item.<br>`<<bitrateH>>`: Bitrate of the media file with the highest bitrate<br>`<<bitrateL>>`: Bitrate of the media file with the lowest bitrate | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | -| `<<originally_available>>`: Original Available Date of the Item<br>`<<originally_available[FORMAT]>>`: Original Available Date of the Item in the given format. [Format Options](https://strftime.org/) | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | - -Note: You can use the `mass_audience_rating_update` or `mass_critic_rating_update` [Library Operation](../config/operations.md) to update your plex ratings to various services like `tmdb`, `imdb`, `mdb`, `metacritic`, `letterboxd` and many more. - -##### Example - -I want to have the audience_rating display with a `%` out of 100 vs 0.0-10.0. -```yaml -overlays: - audience_rating: - overlay: - name: text(<<audience_rating%>>%) - horizontal_offset: 225 - horizontal_align: center - vertical_offset: 15 - vertical_align: top - font: fonts/Inter-Medium.ttf - font_size: 63 - font_color: "#FFFFFF" - back_color: "#00000099" - back_radius: 30 - back_width: 300 - back_height: 105 -``` - -I want to add `S##E##` to all my episode images. -```yaml -overlays: - text_content_rating: - builder_level: episode - overlay: - name: text(S<<season_number0>>E<<episode_number0>>) - horizontal_align: center - vertical_offset: 15 - vertical_align: top - font: fonts/Inter-Medium.ttf - font_size: 63 - font_color: "#FFFFFF" - back_color: "#00000099" - back_radius: 30 - back_width: 300 - back_height: 105 - plex_all: true -``` - -##### Common Special Text Uses - -These are some commonly-used examples of Special Text overlays: - -| Special Text | Example Output | -|:------------------------------------------------------------------|--------------------| -| `name: text(S<<season_number0>>E<<episode_number0>>)` | S01E01 | -| `name: text(Season <<season_number>> Episode <<episode_number>>)` | Season 1 Episode 1 | -| `name: text(Season <<season_number>>)` | Season 1 | -| `name: text(Episode <<episode_number>>)` | Episode 1 | -| `name: "text(Runtime: <<runtime>>m)"` | Runtime: 90m | -| `name: "text(Runtime: <<runtimeH>>h <<runtimeM>>m)"` | Runtime: 1h 30m | - -#### Text Addon Images - -You can add an image to accompany the text by specifying the image location using `file`, `url`, `git`, or `repo`. - -Use `addon_offset` to control the space between the text and the image. - -Use `addon_position` to control which side of the text the image will be located on. - -```yaml -overlays: - audience_rating: - overlay: - name: text(audience_rating) - horizontal_offset: 225 - horizontal_align: center - vertical_offset: 15 - vertical_align: top - font: fonts/Inter-Medium.ttf - font_size: 63 - font_color: "#FFFFFF" - back_color: "#00000099" - back_radius: 30 - back_width: 300 - back_height: 105 - pmm: images/raw/IMDB_Rating - addon_position: left - addon_offset: 25 -``` - -### Overlay Groups - -Overlay groups are defined by the name given to the `group` attribute. Only one overlay with the highest weight per group will be applied. - -This is an example where the Multi-Audio overlay will be applied over the Dual-Audio overlay for every item found by both. - -```yaml -overlays: - Dual-Audio: - overlay: - name: Dual-Audio - pmm: images/Dual-Audio - group: audio_language - weight: 10 - horizontal_offset: 0 - horizontal_align: center - vertical_offset: 15 - vertical_align: bottom - plex_all: true - filters: - audio_language.count_gt: 1 - Multi-Audio: - overlay: - name: Multi-Audio - pmm: images/Multi-Audio - group: audio_language - weight: 20 - horizontal_offset: 0 - horizontal_align: center - vertical_offset: 15 - vertical_align: bottom - plex_all: true - filters: - audio_language.count_gt: 2 -``` - -### Overlay Queues - -Overlay queues are defined by the name given to the `queue` attribute. The overlay with the highest weight is put into the first queue position, then the second highest is placed in the second queue position and so on. - -You can define the queue positions by using the `queues` attribute at the top level of an Overlay File. You can define as many positions as you want. - -```yaml -queues: - custom_queue_name: - - horizontal_offset: 300 # This is the first position - horizontal_align: center - vertical_offset: 1375 - vertical_align: top - - horizontal_offset: 300 # This is the second position - horizontal_align: center - vertical_offset: 1250 - vertical_align: top - -overlays: - IMDb: - imdb_chart: popular_movies - overlay: - name: text(IMDb Popular) - queue: custom_queue_name - weight: 20 - font: fonts/Inter-Medium.ttf - font_size: 65 - font_color: "#FFFFFF" - back_color: "#00000099" - back_radius: 30 - back_width: 380 - back_height: 105 - TMDb: - tmdb_popular: 100 - overlay: - name: text(TMDb Popular) - queue: custom_queue_name - weight: 10 - font: fonts/Inter-Medium.ttf - font_size: 65 - font_color: "#FFFFFF" - back_color: "#00000099" - back_radius: 30 - back_width: 400 - back_height: 105 -``` - -## Suppress Overlays - -You can add `suppress_overlays` to an overlay definition and give it a list or comma separated string of overlay names you want suppressed from this item if this overlay is attached to the item. - -So in this example if the `4K-HDR` overlay matches an item then the `4K` and `HDR` overlays will also match. The `suppress_overlays` attribute on `4K-HDR` will stop the overlays specified (`4K` and `HDR`) from also being applied. - -```yaml -overlays: - 4K: - plex_search: - all: - resolution: 4K - HDR: - plex_search: - all: - hdr: true - 4K-HDR: - suppress_overlays: - - 4K - - HDR - plex_search: - all: - resolution: 4K - hdr: true -``` - -## Examples - -### Example Overlay File - -```yaml -overlays: - 4K: - overlay: - name: 4K # This will look for a local overlays/4K.png in your config folder - plex_search: - all: - resolution: 4K - HDR: - overlay: - name: HDR - pmm: HDR - plex_search: - all: - hdr: true - Dolby: - overlay: - name: Dolby - url: https://somewebsite.com/dolby_overlay.png - plex_all: true - filters: - has_dolby_vision: true -``` - -### Example Folder Structure - -``` -config -├── config.yml -├── Movies.yml -├── TV Shows.yml -├── Overlays.yml -├── overlays -│ ├── 4K.png -│ ├── Dolby.png -│ ├── HDR.png -``` diff --git a/docs/metadata/templates.md b/docs/metadata/templates.md deleted file mode 100644 index 337a87a9..00000000 --- a/docs/metadata/templates.md +++ /dev/null @@ -1,247 +0,0 @@ -# Templates - -Collection, Playlist, Metadata, and Overlay Definitions often share a lot of common or generalizable configuration details. Templates allow you to define these details so they can be used across multiple definitions. - -For example, an actor collection might look like this: - -```yaml -collections: - Bruce Lee: - plex_search: - all: - actor: tmdb - tmdb_person: 19429 - sort_title: "!_Bruce Lee" - sync_mode: sync - collection_order: release -``` - -Note: The `sort_title` in these examples is wrapped in quotes because it contains a character [`!`] which has [syntactic meaning in YAML files](../pmm/install/guides/yaml.md#string-literals). This "quoting special characters" is a general YAML requirement, not something specific to `sort_title`. - -Then you add another: - -```yaml -collections: - Bruce Lee: - plex_search: - all: - actor: tmdb - tmdb_person: 19429 - sort_title: "!_Bruce Lee" - sync_mode: sync - collection_order: release - Chris Pratt: - plex_search: - all: - actor: tmdb - tmdb_person: 73457 - sort_title: "!_Chris Pratt" - sync_mode: sync - collection_order: release -``` - -You could keep going in this way, but there's a lot of repetition there. Both of these collections have the same `sync_mode`, `collection_order`, and `actor` settings; the other two details, `tmdb_person` and `sort_title`, depend on a value defined in the collection. - -Those repetitive aspects can be moved into a template and leveraged by multiple collections. - -## Template Variables - -Template Variables are used to define the data that going to be changing in the template. - -For example, a template for those two collections might look like this: - -```yaml -templates: - Actor: - plex_search: - all: - actor: tmdb - tmdb_person: <<person>> - sort_title: "!_<<collection_name>>" - sync_mode: sync - collection_order: release -``` - -The only things that change are the ID that is used with `tmdb_person` and the name of the collection that is used in `sort_title`. - -Those two things surrounded by `<< >>` are "template variables" that you can define for any collection using this template, like this: - -```yaml -collections: - Chris Pratt: - template: - name: Actor - person: 73457 -``` - -or to do it in a single line you can do this - -```yaml -collections: - Bruce Lee: - template: {name: Actor, person: 19429} -``` - -Note that we provide the template name `Actor` and the value to insert in the place of `<<person>>`. The `<<collection_name>>` is a template variable that is always available and doesn't have to be called out like `<<person>>`. - -Inside a template, you can use all the Builders, Details, and [Filters](filters.md) attributes that you can give collections/playlists [except `template`; templates cannot be nested]. - -The names of template variables that you define are arbitrary. In the example above, `<<person>>` could have been `<<tvdb_person_id>>` or `<<bing>>` or anything else. The only thing that matters is that in the template definition you surround them with `<< >>` and in the collection definition you spell it correctly. - -To use a template with a collection definition you use the `template` attribute. The only required attribute under `template` is `name` which must correspond exactly to the template mapping name. Any other attributes under `template` are considered template variables whose names correspond exactly with the template variable name surrounded by `<<` and `>>` in the templates. These template variables will replace any part of any value that contains the template variable name surrounded by `<<` and `>>` in the template with the specified template variable's value. - -Here's the full example Actor template and two different ways to use it, as it would appear in a metadata file. - -```yaml -templates: - Actor: - plex_search: - all: - actor: tmdb - tmdb_person: <<person>> - sort_title: "!_<<collection_name>>" - sync_mode: sync - collection_order: release -collections: - Bruce Lee: - template: {name: Actor, person: 19429} - Chris Pratt: - template: - name: Actor - person: 73457 -``` - -## Multi-Template Variables - -When using multiple Templates in a single definition you can send the same variable to all templates by using the `variables` attribute. - -```yaml -templates: - Actor: - plex_search: - all: - actor: tmdb - tmdb_person: <<person>> - sort_title: "!_<<collection_name>>" - Common: - summary: "Movies that <<collection_name>> (TMDb ID: <<person>>) are in" - sync_mode: sync - collection_order: release -collections: - Bruce Lee: - variables: {person: 19429} - template: [{name: Actor}, {name: Common}] - Chris Pratt: - variables: - person: 19429 - template: - - name: Actor - - name: Common -``` - -## Special Template Attributes - -There are some attributes unique to `templates`; `default`, `optional`, `conditionals`, and `move_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. You can make any template variable optional per collection by setting it to `null`. -* `conditionals` can specify variables based on conditions set by the user. See more [here](#conditionals) -* `move_prefix` can be given a list or comma-separated string of prefixes to move to the end of the collection/playlist name for sorting. - i.e. If you have `move_prefix: The` and a collection is called `The Avengers` then `<<collection_sort>>` is replaced with `Avengers, The` instead of `The Avengers` for that collection. - -Every template call is given these template variables. - -* Either `<<collection_name>>`, `<<playlist_name>>`, or `<<overlay_name>>` which is the name of the definition. -* `<<mapping_name>>` is the original mapping name for the definition in the YAML file. -* Either `<<collection_sort>>` or `<<playlist_sort>>` which is the name of the definition after `move_prefix` is applied. -* `<<library_type>>` which is the library type -* `<<library_name>>` which is the name of the library -* All Template Variables can append `_encoded` to the variable name to use a URL encode version of the variable. ex. `<<collection_name_encoded>>` - -### Conditionals - -Each conditional is identified by its mapping name and has one required attribute; `conditions` and one optional attribute; `default`. - -`default` is the default value for the variable when no condition is met. If default is not specified the variable becomes an optional variable. - -`conditions` is a list of sets of conditions where if all conditions are met then the variable will be the `value` specified in that condition. - -Each set of conditions must have the `value` attribute which is the value of the variable if the condition is met. - -All other attribute pairs in the set of conditions will check some condition of the value of the attribute key: - -* If the attribute key ends with `.not` the value must not equal the attribute value or not be in the list of attribute values. -* If the attribute key ends with `.exists` and the attribute value is `true` then the attribute key must be a given template variable and if the value is anything else then the attribute key must not be a given template variable. -* Otherwise, the value must equal the attribute value or be in the list of attribute values. - -Here's an example from the [PMM Default ratings file](https://github.com/meisnate12/Plex-Meta-Manager/blob/master/defaults/overlays/ratings.yml). - -```yaml -templates: - Rating: - conditionals: - rating1_horizontal_offset: - default: 30 # If no condition sets below are meet - conditions: - - side: [top, bottom] - rating2: none - rating3: none - value: 0 # If side is 'top' or 'bottom' and rating2 is 'none' and rating3 is 'none' - - side: [top, bottom] - rating2: none - value: -165 # If side is 'top' or 'bottom' and rating2 is 'none' and no previous conditions are meet - - side: [top, bottom] - rating3: none - value: -165 # If side is 'top' or 'bottom' rating3 is 'none' and no previous conditions are meet - - side: [top, bottom] - value: -335 # If side is 'top' or 'bottom' and no previous conditions are meet -``` - -## Advanced Example - -Here's an example IMDb Genre template and two different ways to call it. - -```yaml -templates: - IMDb Genre: - 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: - Action: - template: - name: IMDb Genre - 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, 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} - summary: Romantic Comedy is a genre that attempts to catch the viewer’s heart with the combination of love and humor. This sub-genre is light-hearted and usually places the two protagonists in humorous situation. Romantic-Comedy film revolves around a romantic ideal, such as true love. In the end, the ideal triumphs over the situation or obstacle, thus creating a happy ending. - filters: - genre: Comedy -``` - -Check out the example files in the [Plex Meta Manager Configs Repository](https://github.com/meisnate12/Plex-Meta-Manager-Configs/tree/master/meisnate12) for more uses and examples. - -## External Templates - -To load external templates located in another file you can use the `external_templates` attribute by specifying the path type and path of the files that will be executed. See [Path Types](../builders/files.md#paths) for how to define them. - -```yaml -external_templates: - - file: config/templates.yml - - pmm: templates -``` diff --git a/docs/metadata/update.md b/docs/metadata/update.md deleted file mode 100644 index a7d2fc85..00000000 --- a/docs/metadata/update.md +++ /dev/null @@ -1,11 +0,0 @@ -# Settings/Updates - -The settings will change how Plex Meta Manager functions with the Definition while updates change the actual metadata stored in plex. - -| Name | Description | -|:------------------------------------------------------------------------|:---------------------------------------------------------------------------------------| -| [Definition Settings](../builders/details/definition.md) | These are settings to change of Plex Meta Manager deals with the definition. | -| [Schedule Settings](../builders/details/schedule.md) | These are settings to change how the definition is scheduled to run. | -| [Arr Definition Settings](../builders/details/arr.md) | These are settings to change how Radarr/Sonarr is handled in this specific definition. | -| [Collection/Playlist Metadata Updates](../builders/details/metadata.md) | These are settings to change an aspect of a collection/playlist's metadata. | -| [Item Metadata Updates](../builders/details/item_metadata.md) | These are settings to change an aspect of metadata for all items in the collection. | diff --git a/docs/pmm/install/guides/contributor.md b/docs/notused/contributor.md similarity index 100% rename from docs/pmm/install/guides/contributor.md rename to docs/notused/contributor.md diff --git a/docs/notused/display.png b/docs/notused/display.png new file mode 100644 index 00000000..d6d7ab95 Binary files /dev/null and b/docs/notused/display.png differ diff --git a/docs/pmm/install/guides/initial.md b/docs/notused/initial.md similarity index 67% rename from docs/pmm/install/guides/initial.md rename to docs/notused/initial.md index 7fb68499..44b720f4 100644 --- a/docs/pmm/install/guides/initial.md +++ b/docs/notused/initial.md @@ -2,6 +2,6 @@ **Before using this guide you should already have installed Plex Meta Manager.** -See the [Installation Page](../installation.md) for info on how to install Plex Meta Manager. +See the [Installation Page](../pmm/install/overview.md) for info on how to install Plex Meta Manager. This guide is assuming you know how to run pmm with the `--run` run command or the `PMM_RUN` environment variable to perform immediate runs \ No newline at end of file diff --git a/docs/notused/playlists.md b/docs/notused/playlists.md new file mode 100644 index 00000000..2d83d0a7 --- /dev/null +++ b/docs/notused/playlists.md @@ -0,0 +1,42 @@ +# Playlist Files Attributes + +As playlists are not tied to one specific library and can combine media from multiple libraries, they require their own special [Playlist Files](../files/playlists.md) to work. + +Within the [Config File](overview.md), the `playlist_files` attribute specifies the [path type](../files/files.md#paths) and path of the [Playlist Files](../files/playlists.md) that the user wants Plex Meta Manager to act on. + +**The libraries used in the playlist attribute `libraries` must be defined under the `libraries` attribute of the [Config File](overview.md).** + +```yaml +playlist_files: + - file: config/playlists.yml + - pmm: playlist +``` + +## Example + +This example is an advanced version of the playlist mappings with accompanying library mappings: + +```yaml +libraries: + Movies: + collection_files: + - file: config/Movies.yml + - pmm: imdb + - pmm: studio + - pmm: genre + - pmm: actor + operations: + mass_critic_rating_update: tmdb + split_duplicates: true + TV Shows: + collection_files: + - file: config/TV Shows.yml + - pmm: tmdb + - pmm: network + overlay_files: + - remove_overlays: false + - file: config/Overlays.yml +playlist_files: + - file: config/playlists.yml + - pmm: playlist +``` diff --git a/docs/pmm/install/guides/unraid-webui.png b/docs/notused/unraid-webui.png similarity index 100% rename from docs/pmm/install/guides/unraid-webui.png rename to docs/notused/unraid-webui.png diff --git a/docs/overrides/404.html b/docs/overrides/404.html new file mode 100644 index 00000000..eaf051c7 --- /dev/null +++ b/docs/overrides/404.html @@ -0,0 +1,11 @@ +{% extends "main.html" %} + +{% block content %} + + <center> + <h1>This is not the page you're looking for.</h1> + <img src="https://raw.githubusercontent.com/meisnate12/Plex-Meta-Manager/master/docs/404.gif" alt="" style="display: block; margin-left: auto; margin-right: auto;"> + </center> + +{% endblock %} + diff --git a/docs/overrides/alternate.html b/docs/overrides/alternate.html new file mode 100644 index 00000000..3c8d4002 --- /dev/null +++ b/docs/overrides/alternate.html @@ -0,0 +1,49 @@ +<!-- + Copyright (c) 2016-2023 Martin Donath <martin.donath@squidfunk.com> + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to + deal in the Software without restriction, including without limitation the + rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + IN THE SOFTWARE. +--> + +<!-- Site language selector --> +<div class="md-header__option"> + <div class="md-select"> + {% set icon = config.theme.icon.alternate or "material/translate" %} + <button + class="md-header__button md-icon" + aria-label="{{ lang.t('select.language') }}" + > + {% include ".icons/" ~ icon ~ ".svg" %} + </button> + <div class="md-select__inner"> + <ul class="md-select__list"> + {% for alt in config.extra.alternate %} + <li class="md-select__item"> + <a + href="{{ alt.link | url }}" + hreflang="{{ alt.lang }}" + class="md-select__link" + > + {{ alt.name }} + </a> + </li> + {% endfor %} + </ul> + </div> + </div> +</div> \ No newline at end of file diff --git a/docs/overrides/partials/languages/en.html b/docs/overrides/partials/languages/en.html new file mode 100644 index 00000000..131a0ea2 --- /dev/null +++ b/docs/overrides/partials/languages/en.html @@ -0,0 +1,79 @@ +<!-- + Copyright (c) 2016-2023 Martin Donath <martin.donath@squidfunk.com> + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to + deal in the Software without restriction, including without limitation the + rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + IN THE SOFTWARE. +--> + +<!-- Translations: English --> +{% macro t(key) %}{{ { + "language": "en", + "direction": "ltr", + "action.edit": "Edit this page", + "action.skip": "Skip to content", + "action.view": "View source of this page", + "announce.dismiss": "Don't show this again", + "blog.archive": "Archive", + "blog.categories": "Categories", + "blog.categories.in": "in", + "blog.continue": "Continue reading", + "blog.draft": "Draft", + "blog.index": "Back to index", + "blog.meta": "Metadata", + "blog.references": "Related links", + "clipboard.copy": "Copy to clipboard", + "clipboard.copied": "Copied to clipboard", + "consent.accept": "Accept", + "consent.manage": "Manage settings", + "consent.reject": "Reject", + "footer": "Footer", + "footer.next": "Next", + "footer.previous": "Previous", + "header": "Header", + "meta.comments": "Comments", + "meta.source": "Source", + "nav": "Navigation", + "readtime.one": "1 min read", + "readtime.other": "# min read", + "rss.created": "RSS feed", + "rss.updated": "RSS feed of updated content", + "search": "Search", + "search.config.lang": "en", + "search.config.pipeline": "stopWordFilter", + "search.config.separator": "[\\s\\-]+", + "search.placeholder": "Search", + "search.share": "Share", + "search.reset": "Clear", + "search.result.initializer": "Initializing search", + "search.result.placeholder": "Type to start searching", + "search.result.none": "No matching documents", + "search.result.one": "1 matching document", + "search.result.other": "# matching documents", + "search.result.more.one": "1 more on this page", + "search.result.more.other": "# more on this page", + "search.result.term.missing": "Missing", + "select.language": "Select docs branch", + "select.version": "Select version", + "source": "Go to repository", + "source.file.contributors": "Contributors", + "source.file.date.created": "Created", + "source.file.date.updated": "Last update", + "tabs": "Tabs", + "toc": "Table of contents", + "top": "Back to top" +}[key] }}{% endmacro %} \ No newline at end of file diff --git a/docs/pmm/essentials/acknowledgements.md b/docs/pmm/acknowledgements.md similarity index 98% rename from docs/pmm/essentials/acknowledgements.md rename to docs/pmm/acknowledgements.md index 8c867af7..345008fe 100644 --- a/docs/pmm/essentials/acknowledgements.md +++ b/docs/pmm/acknowledgements.md @@ -7,7 +7,7 @@ | [meisnate12](https://github.com/meisnate12/) | Sohjiro | Main PMM Developer | | [YozoraXCII](https://github.com/YozoraXCII) | Yozora | PMM Discord Moderator, Default Configs Creator & Maintainer, Wiki Contributor, [Configs Repo](https://github.com/meisnate12/Plex-Meta-Manager-Configs) Maintainer | | [bullmoose20](https://github.com/bullmoose20) | bullmoose20 | PMM Discord Moderator, Default Configs Creator & Maintainer, Wiki Contributor, [Configs Repo](https://github.com/meisnate12/Plex-Meta-Manager-Configs) Maintainer | -| [chazlarson](https://github.com/chazlarson/) | chazlarson | PMM Master Discord Support and Wiki Contributor who created the [Local](../install/guides/local.md) and [Docker](../install/guides/docker.md) guides | +| [chazlarson](https://github.com/chazlarson/) | chazlarson | PMM Master Discord Support and Wiki Contributor who created the [Local](install/local.md) and [Docker](install/docker.md) guides | | [cpt-kuesel](https://github.com/cpt-kuesel) | Cpt Kuesel | PMM Master Discord Support and [Configs Repo](https://github.com/meisnate12/Plex-Meta-Manager-Configs) Maintainer | | [JohnFawkes](https://github.com/JohnFawkes) | anon_fawkes | PMM Apprentice Discord Support | | zaP | zaP | PMM Apprentice Discord Support, Reddit Moderator | diff --git a/docs/pmm/environmental.md b/docs/pmm/environmental.md new file mode 100644 index 00000000..717056d5 --- /dev/null +++ b/docs/pmm/environmental.md @@ -0,0 +1,660 @@ + +# Run Commands & Environment Variables + +The basic command to run Plex Meta Manager is as follows: + +=== "Windows / Mac / Linux" + + ``` py + python plex_meta_manager.py + ``` + +=== "Docker" + + ``` py + docker run --rm -it -v "/<ROOT_PMM_DIRECTORY_HERE>/config:/config:rw" meisnate12/plex-meta-manager + ``` + +To customize the running of Plex Meta Manager according to your needs, you can use either run commands or environmental +variables. Environmental variables take precedence over run command attributes. However, if you encounter a race +condition where an attribute has been set both via an environmental variable and a shell command, the environmental +variable will be given priority. + +Please note that these instructions assume that you have a basic understanding of Docker concepts. If you need to +familiarize yourself with Docker, you can check out the official tutorial. + +Another way to specify environmental variables is by adding them to a .env file located in your config folder. + +Environment variables are expressed as `KEY=VALUE` depending on the context where you are specifying them, you may enter +those two things in two different fields, or some other way. The examples below show how you would specify the +environment variable in a script or a `docker run` command. Things like Portainer or a NAS Docker UI will have +different ways to specify these things. + +??? blank "Config Location      `-c`/`--config`      `PMM_CONFIG`<a class="headerlink" href="#config" title="Permanent link">¶</a>" + + <div id="config" />Specify the location of the configuration YAML file. Will default to `config/config.yml` when not + specified. + + <hr style="margin: 0px;"> + + **Accepted Values:** Path to YAML config file + + **Shell Flags:** `-c` or `--config` (ex. `--config /data/config.yml`) + + **Environment Variable:** `PMM_CONFIG` (ex. `PMM_CONFIG=/data/config.yml`) + + !!! example + === "Local Environment" + ``` + python plex_meta_manager.py --config /data/config.yml + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --config /data/config.yml + ``` + +??? blank "Time to Run      `-t`/`--times`      `PMM_TIMES`<a class="headerlink" href="#times" title="Permanent link">¶</a>" + + <div id="times" />Specify the time of day that Plex Meta Manager will run. Will default to `05:00` when not + specified. + + <hr style="margin: 0px;"> + + **Accepted Values:** Comma-separated list in `HH:MM` format + + **Shell Flags:** `-t` or `--times` (ex. `--times 06:00,18:00`) + + **Environment Variable:** `PMM_TIMES` (ex. `PMM_TIMES=06:00,18:00`) + + !!! example + === "Local Environment" + ``` + python plex_meta_manager.py --times 22:00,03:00 + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --times 22:00,03:00 + ``` + +??? blank "Run Immediately      `-r`/`--run`      `PMM_RUN`<a class="headerlink" href="#run" title="Permanent link">¶</a>" + + <div id="run" />Perform a run immediately, bypassing the time to run flag. + + <hr style="margin: 0px;"> + + **Shell Flags:** `-r` or `--run` (ex. `--run`) + + **Environment Variable:** `PMM_RUN` (ex. `PMM_RUN=true`) + + !!! example + === "Local Environment" + ``` + python plex_meta_manager.py --run + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --run + ``` + +??? blank "Run Tests      `-ts`/`--tests`      `PMM_TESTS`<a class="headerlink" href="#tests" title="Permanent link">¶</a>" + + <div id="tests" />Perform a debug test run immediately, bypassing the time to run flag. **This will only run + collections with `test: true` in the definition.** + + <hr style="margin: 0px;"> + + **Shell Flags:** `-ts` or `--tests` (ex. `--tests`) + + **Environment Variable:** `PMM_TESTS` (ex. `PMM_TESTS=true`) + + !!! example + === "Local Environment" + ``` + python plex_meta_manager.py --tests + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --tests + ``` + === "Example Collection File" + + In my collection YAML file, I would set `true: false` like this: + + ```yaml + collections: + Marvel Cinematic Universe: + test: true # HERE + trakt_list: https://trakt.tv/users/jawann2002/lists/marvel-cinematic-universe-movies?sort=rank,asc + smart_label: release.desc + ``` + +??? blank "Debug      `-db`/`--debug`      `PMM_DEBUG`<a class="headerlink" href="#debug" title="Permanent link">¶</a>" + + <div id="debug" />Perform a debug test run immediately, bypassing the time to run flag. **This will only run + collections with `test: true` in the definition.** + + <hr style="margin: 0px;"> + + **Shell Flags:** `-db` or `--debug` (ex. `--debug`) + + **Environment Variable:** `PMM_DEBUG` (ex. `PMM_DEBUG=true`) + + !!! example + === "Local Environment" + ``` + python plex_meta_manager.py --debug + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --debug + ``` + +??? blank "Trace      `-tr`/`--trace`      `PMM_TRACE`<a class="headerlink" href="#trace" title="Permanent link">¶</a>" + + <div id="trace" />Run with extra Trace Debug Logs. + + <hr style="margin: 0px;"> + + **Shell Flags:** `-tr` or `--trace` (ex. `--trace`) + + **Environment Variable:** `PMM_TRACE` (ex. `PMM_TRACE=true`) + + !!! example + === "Local Environment" + ``` + python plex_meta_manager.py --trace + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --trace + ``` + +??? blank "Log Requests      `-lr`/`--log-requests`      `PMM_LOG_REQUESTS`<a class="headerlink" href="#log-requests" title="Permanent link">¶</a>" + + <div id="log-requests" />Run with every network request printed to the Logs. **This can potentially have personal + information in it.** + + <hr style="margin: 0px;"> + + **Shell Flags:** `-lr` or `--log-requests` (ex. `--log-requests`) + + **Environment Variable:** `PMM_LOG_REQUESTS` (ex. `PMM_LOG_REQUESTS=true`) + + !!! example + === "Local Environment" + ``` + python plex_meta_manager.py --log-requests + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --log-requests + ``` + +??? blank "Timeout      `-ti`/`--timeout`      `PMM_TIMEOUT`<a class="headerlink" href="#timeout" title="Permanent link">¶</a>" + + <div id="timeout" />Change the timeout for all non-Plex services (such as TMDb, Radarr, and Trakt). This will default to `180` when not specified and is overwritten by any timeouts mentioned for specific services in the Configuration File. + + <hr style="margin: 0px;"> + + **Accepted Values:** Integer Number of Seconds + + **Shell Flags:** `-ti` or `--timeout` (ex. `--timeout 06:00,18:00`) + + **Environment Variable:** `PMM_TIMEOUT` (ex. `PMM_TIMEOUT=06:00,18:00`) + + !!! example + === "Local Environment" + ``` + python plex_meta_manager.py --timeout 360 + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --timeout 360 + ``` + +??? blank "Collections Only      `-co`/`--collections-only`      `PMM_COLLECTIONS_ONLY`<a class="headerlink" href="#collections-only" title="Permanent link">¶</a>" + + <div id="collections-only" />Only run collection YAML files, skip library operations, metadata, overlays, and playlists. + + <hr style="margin: 0px;"> + + **Shell Flags:** `-co` or `--collections-only` (ex. `--collections-only`) + + **Environment Variable:** `PMM_COLLECTIONS_ONLY` (ex. `PMM_COLLECTIONS_ONLY=true`) + + !!! example + === "Local Environment" + ``` + python plex_meta_manager.py --collections-only + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --collections-only + ``` + +??? blank "Metadata Only      `-mo`/`--metadata-only`      `PMM_METADATA_ONLY`<a class="headerlink" href="#metadata-only" title="Permanent link">¶</a>" + + <div id="metadata-only" />Only run metadata files, skip library operations, collections, overlays, and playlists. + + <hr style="margin: 0px;"> + + **Shell Flags:** `-mo` or `--metadata-only` (ex. `--metadata-only`) + + **Environment Variable:** `PMM_METADATA_ONLY` (ex. `PMM_METADATA_ONLY=true`) + + !!! example + === "Local Environment" + ``` + python plex_meta_manager.py --metadata-only + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --metadata-only + ``` + +??? blank "Playlists Only      `-po`/`--playlists-only`      `PMM_PLAYLISTS_ONLY`<a class="headerlink" href="#playlists-only" title="Permanent link">¶</a>" + + <div id="playlists-only" />Only run playlist YAML files, skip library operations, overlays, collections, and metadata. + + <hr style="margin: 0px;"> + + **Shell Flags:** `-po` or `--playlists-only` (ex. `--playlists-only`) + + **Environment Variable:** `PMM_PLAYLISTS_ONLY` (ex. `PMM_PLAYLISTS_ONLY=true`) + + !!! example + === "Local Environment" + ``` + python plex_meta_manager.py --playlists-only + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --playlists-only + ``` + +??? blank "Operations Only      `-op`/`--operations-only`      `PMM_OPERATIONS_ONLY`<a class="headerlink" href="#operations-only" title="Permanent link">¶</a>" + + <div id="operations-only" />Only run library operations skipping collections, metadata, playlists, and overlays. + + <hr style="margin: 0px;"> + + **Shell Flags:** `-op` or `--operations-only` (ex. `--operations-only`) + + **Environment Variable:** `PMM_OPERATIONS_ONLY` (ex. `PMM_OPERATIONS_ONLY=true`) + + !!! example + === "Local Environment" + ``` + python plex_meta_manager.py --operations-only + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --operations-only + ``` + +??? blank "Overlays Only      `-ov`/`--overlays-only`      `PMM_OVERLAYS_ONLY`<a class="headerlink" href="#overlays-only" title="Permanent link">¶</a>" + + <div id="overlays-only" />Only run library overlay files skipping collections, metadata, playlists, and operations. + + <hr style="margin: 0px;"> + + **Shell Flags:** `-ov` or `--overlays-only` (ex. `--overlays-only`) + + **Environment Variable:** `PMM_OVERLAYS_ONLY` (ex. `PMM_OVERLAYS_ONLY=true`) + + !!! example + === "Local Environment" + ``` + python plex_meta_manager.py --overlays-only + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --overlays-only + ``` + +??? blank "Run Collections      `-rc`/`--run-collections`      `PMM_RUN_COLLECTIONS`<a class="headerlink" href="#run-collections" title="Permanent link">¶</a>" + + <div id="run-collections" />Perform a collections run immediately to run only the pre-defined collections, bypassing + the time to run flag. + + <hr style="margin: 0px;"> + + **Accepted Values:** Pipe-separated list of Collection Names to run + + **Shell Flags:** `-rc` or `--run-collections` (ex. `--run-collections "Harry Potter|Star Wars"`) + + **Environment Variable:** `PMM_RUN_COLLECTIONS` (ex. `PMM_RUN_COLLECTIONS=Harry Potter|Star Wars`) + + !!! example + === "Local Environment" + ``` + python plex_meta_manager.py --run-collections "Harry Potter|Star Wars" + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --run-collections "Harry Potter|Star Wars" + ``` + +??? blank "Run Libraries      `-rl`/`--run-libraries`      `PMM_RUN_LIBRARIES`<a class="headerlink" href="#run-libraries" title="Permanent link">¶</a>" + + <div id="run-libraries" />Perform a libraries run immediately to run only the pre-defined libraries, bypassing the + time to run flag. + + <hr style="margin: 0px;"> + + **Accepted Values:** Pipe-separated list of Library Names to run + + **Shell Flags:** `-rl` or `--run-libraries` (ex. `--run-libraries "Movies - 4K|TV Shows - 4K"`) + + **Environment Variable:** `PMM_RUN_LIBRARIES` (ex. `PMM_RUN_LIBRARIES=Movies - 4K|TV Shows - 4K`) + + !!! example + === "Local Environment" + ``` + python plex_meta_manager.py --run-libraries "Movies - 4K|TV Shows - 4K" + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --run-libraries "Movies - 4K|TV Shows - 4K" + ``` + +??? blank "Run Files      `-rf`/`--run-files`      `PMM_RUN_FILES`<a class="headerlink" href="#run-files" title="Permanent link">¶</a>" + + <div id="run-files" />Perform a run immediately to run only the pre-defined Collection, Metadata or Playlist files, + bypassing the time to run flag. This works for all different paths i.e. `pmm`, `git`, `url`, `file`, or `repo`. + + ???+ warning + + Do not use this to run Overlay files, as Overlay files must run all together or not at all due to their nature. + + <hr style="margin: 0px;"> + + **Accepted Values:** Pipe-separated list of Collection, Metadata or Playlist Filenames to run + + **Shell Flags:** `-rf` or `--run-files` (ex. `--run-files "Movies.yml|MovieCharts"`) + + **Environment Variable:** `PMM_RUN_FILES` (ex. `PMM_RUN_FILES=Movies.yml|MovieCharts`) + + !!! example + === "Local Environment" + ``` + python plex_meta_manager.py --run-files "Movies.yml|MovieCharts" + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --run-files "Movies.yml|MovieCharts" + ``` + +??? blank "Ignore Schedules      `-is`/`--ignore-schedules`      `PMM_IGNORE_SCHEDULES`<a class="headerlink" href="#ignore-schedules" title="Permanent link">¶</a>" + + <div id="ignore-schedules" />Ignore all schedules for the run. Range Scheduled collections (such as Christmas + movies) will still be ignored. + + <hr style="margin: 0px;"> + + **Shell Flags:** `-is` or `--ignore-schedules` (ex. `--ignore-schedules`) + + **Environment Variable:** `PMM_IGNORE_SCHEDULES` (ex. `PMM_IGNORE_SCHEDULES=true`) + + !!! example + === "Local Environment" + ``` + python plex_meta_manager.py --ignore-schedules + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --ignore-schedules + ``` + +??? blank "Ignore Ghost      `-ig`/`--ignore-ghost`      `PMM_IGNORE_GHOST`<a class="headerlink" href="#ignore-ghost" title="Permanent link">¶</a>" + + <div id="ignore-ghost" />Ignore all ghost logging for the run. A ghost log is what's printed to the console to show + progress during steps. + + <hr style="margin: 0px;"> + + **Shell Flags:** `-ig` or `--ignore-ghost` (ex. `--ignore-ghost`) + + **Environment Variable:** `PMM_IGNORE_GHOST` (ex. `PMM_IGNORE_GHOST=true`) + + !!! example + === "Local Environment" + ``` + python plex_meta_manager.py --ignore-ghost + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --ignore-ghost + ``` + +??? blank "Delete Collections      `-dc`/`--delete-collections`      `PMM_DELETE_COLLECTIONS`<a class="headerlink" href="#delete-collections" title="Permanent link">¶</a>" + + <div id="delete-collections" />Delete all collections in a Library prior to running collections/operations. + + ???+ warning + + You will lose **all** collections in the library - this will delete all collections, including ones not created + or maintained by Plex Meta Manager. + + <hr style="margin: 0px;"> + + **Shell Flags:** `-dc` or `--delete-collections` (ex. `--delete-collections`) + + **Environment Variable:** `PMM_DELETE_COLLECTIONS` (ex. `PMM_DELETE_COLLECTIONS=true`) + + !!! example + === "Local Environment" + ``` + python plex_meta_manager.py --delete-collections + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --delete-collections + ``` + +??? blank "Delete Labels      `-dl`/`--delete-labels`      `PMM_DELETE_LABELS`<a class="headerlink" href="#delete-labels" title="Permanent link">¶</a>" + + <div id="delete-labels" />Delete all labels on every item in a Library prior to running collections/operations. + + ???+ warning + + To preserve functionality of PMM, this will **not** remove the Overlay label, which is required for PMM to know + which items have Overlays applied. + + This will impact any [Smart Label Collections](../files/builders/smart.md#smart-label) that you have in your + library. + + We do not recommend using this on a regular basis if you also use any operations or collections that update + labels, as you are effectively deleting and adding labels on each run. + + <hr style="margin: 0px;"> + + **Shell Flags:** `-dl` or `--delete-labels` (ex. `--delete-labels`) + + **Environment Variable:** `PMM_DELETE_LABELS` (ex. `PMM_DELETE_LABELS=true`) + + !!! example + === "Local Environment" + ``` + python plex_meta_manager.py --delete-labels + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --delete-labels + ``` + +??? blank "Resume Run      `-re`/`--resume`      `PMM_RESUME`<a class="headerlink" href="#resume" title="Permanent link">¶</a>" + + <div id="resume" />Perform a resume run immediately resuming from the first instance of the specified collection, + bypassing the time to run flag. + + <hr style="margin: 0px;"> + + **Shell Flags:** `-re` or `--resume` (ex. `--resume "Star Wars"`) + + **Environment Variable:** `PMM_RESUME` (ex. `PMM_RESUME=Star Wars`) + + !!! example + === "Local Environment" + ``` + python plex_meta_manager.py --resume "Star Wars" + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --resume "Star Wars" + ``` + +??? blank "No Countdown      `-nc`/`--no-countdown`      `PMM_NO_COUNTDOWN`<a class="headerlink" href="#no-countdown" title="Permanent link">¶</a>" + + <div id="no-countdown" />Run without displaying a countdown to the next scheduled run. + + <hr style="margin: 0px;"> + + **Shell Flags:** `-nc` or `--no-countdown` (ex. `--no-countdown`) + + **Environment Variable:** `PMM_NO_COUNTDOWN` (ex. `PMM_NO_COUNTDOWN=true`) + + !!! example + === "Local Environment" + ``` + python plex_meta_manager.py --no-countdown + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --no-countdown + ``` + +??? blank "No Missing      `-nm`/`--no-missing`      `PMM_NO_MISSING`<a class="headerlink" href="#no-missing" title="Permanent link">¶</a>" + + <div id="no-missing" />Run without utilizing the missing movie/show functions. + + <hr style="margin: 0px;"> + + **Shell Flags:** `-nm` or `--no-missing` (ex. `--no-missing`) + + **Environment Variable:** `PMM_NO_MISSING` (ex. `PMM_NO_MISSING=true`) + + !!! example + === "Local Environment" + ``` + python plex_meta_manager.py --no-missing + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --no-missing + ``` + +??? blank "No Report      `-nr`/`--no-report`      `PMM_NO_REPORT`<a class="headerlink" href="#no-report" title="Permanent link">¶</a>" + + <div id="no-report" />Run without saving the report. + + <hr style="margin: 0px;"> + + **Shell Flags:** `-nr` or `--no-report` (ex. `--no-report`) + + **Environment Variable:** `PMM_NO_REPORT` (ex. `PMM_NO_REPORT=true`) + + !!! example + === "Local Environment" + ``` + python plex_meta_manager.py --no-report + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --no-report + ``` + +??? blank "Read Only Config      `-ro`/`--read-only-config`      `PMM_READ_ONLY_CONFIG`<a class="headerlink" href="#read-only-config" title="Permanent link">¶</a>" + + <div id="read-only-config" />Run without writing to the configuration file. + + <hr style="margin: 0px;"> + + **Shell Flags:** `-ro` or `--read-only-config` (ex. `--read-only-config`) + + **Environment Variable:** `PMM_READ_ONLY_CONFIG` (ex. `PMM_READ_ONLY_CONFIG=true`) + + !!! example + === "Local Environment" + ``` + python plex_meta_manager.py --read-only-config + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --read-only-config + ``` + +??? blank "Divider Character      `-d`/`--divider`      `PMM_DIVIDER`<a class="headerlink" href="#divider" title="Permanent link">¶</a>" + + <div id="divider" />Change the terminal output divider character. Will default to `=` if not specified. + + <hr style="margin: 0px;"> + + **Accepted Values:** Any character + + **Shell Flags:** `-d` or `--divider` (ex. `--divider *`) + + **Environment Variable:** `PMM_DIVIDER` (ex. `PMM_DIVIDER=*`) + + !!! example + === "Local Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --divider * + python plex_meta_manager.py --divider * + ``` + === "Docker Environment" + ``` + ``` + +??? blank "Screen Width      `-w`/`--width`      `PMM_WIDTH`<a class="headerlink" href="#width" title="Permanent link">¶</a>" + + <div id="width" />Change the terminal output width. Will default to `100` if not specified. + + <hr style="margin: 0px;"> + + **Accepted Values:** Integer between 90 and 300 + + **Shell Flags:** `-w` or `--width` (ex. `--width 150`) + + **Environment Variable:** `PMM_WIDTH` (ex. `PMM_WIDTH=150`) + + !!! example + === "Local Environment" + ``` + python plex_meta_manager.py --width 150 + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --width 150 + ``` + +??? blank "Config Secrets      `--pmm-***`      `PMM_***`<a class="headerlink" href="#pmm-vars" title="Permanent link">¶</a>" + + <div id="pmm-vars" />All Run Commands that are in the format `--pmm-***` and Environment Variables that are in the + format `PMM_***`, where `***` is the name you want to call the vaiable, will be loaded in as Config Secrets. + + These Config Secrets can be loaded into the config by placing `<<***>>` in any field in the config, where `***` is + whatever name you called the variable. + + <hr style="margin: 0px;"> + + **Shell Flags:** `--pmm-***` (ex. `--pmm-mysecret 123456789`) + + **Environment Variable:** `PMM_***` (ex. `PMM_MYSECRET=123456789`) + + !!! example + === "Local Environment" + ``` + python plex_meta_manager.py --pmm-mysecret 123456789 + ``` + === "Docker Environment" + ``` + docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --pmm-mysecret 123456789 + ``` + + **Example Config Usage:** + + ```yaml + tmdb: + apikey: <<mysecret>> + ``` \ No newline at end of file diff --git a/docs/pmm/essentials/basics.md b/docs/pmm/essentials/basics.md deleted file mode 100644 index 00b6149a..00000000 --- a/docs/pmm/essentials/basics.md +++ /dev/null @@ -1,3 +0,0 @@ -# Basics - - diff --git a/docs/pmm/essentials/environmental.md b/docs/pmm/essentials/environmental.md deleted file mode 100644 index 71f3f530..00000000 --- a/docs/pmm/essentials/environmental.md +++ /dev/null @@ -1,645 +0,0 @@ - -# Run Commands & Environment Variables - -The basic command to run Plex Meta Manager is as follows: - -=== "Windows / Mac / Linux" - - ``` py - python plex_meta_manager.py - ``` - -=== "Docker" - - ``` py - docker run --rm -it -v "/<ROOT_PMM_DIRECTORY_HERE>/config:/config:rw" meisnate12/plex-meta-manager - ``` - -To customize the running of Plex Meta Manager according to your needs, you can use either run commands or environmental variables. Environmental variables take precedence over run command attributes. However, if you encounter a race condition where an attribute has been set both via an environmental variable and a shell command, the environmental variable will be given priority. - -Please note that these instructions assume that you have a basic understanding of Docker concepts. If you need to familiarize yourself with Docker, you can check out the official tutorial. - -Another way to specify environmental variables is by adding them to a .env file located in your config folder. - -[official tutorial](https://www.docker.com/101-tutorial/). - - -| Attribute | Shell Command | Environment Variable | -|:------------------------------------------------------|:----------------------------------------------|:-------------------------| -| [Config](#config) | `-c` or `--config` | `PMM_CONFIG` | -| [Time to Run](#time-to-run) | `-t` or `--times` | `PMM_TIMES` | -| [Run Immediately](#run-immediately) | `-r` or `--run` | `PMM_RUN` | -| [Run Tests](#run-tests) | `-rt`, `--tests`, or `--run-tests` | `PMM_TESTS` | -| [Debug](#debug) | `-db` or `--debug` | `PMM_DEBUG` | -| [Trace](#trace) | `-tr` or `--trace` | `PMM_TRACE` | -| [Log Requests](#log-requests) | `-lr` or `--log-requests` | `PMM_LOG_REQUESTS` | -| [Timeout](#timeout) | `-ti` or `--timeout` | `PMM_TIMEOUT` | -| [Collections Only](#collections-only) | `-co` or `--collections-only` | `PMM_COLLECTIONS_ONLY` | -| [Metadata Only](#metadata-only) | `-co` or `--metadata-only` | `PMM_METADATA_ONLY` | -| [Playlists Only](#playlists-only) | `-po` or `--playlists-only` | `PMM_PLAYLISTS_ONLY` | -| [Operations Only](#operations-only) | `-op`, `--operations`, or `--operations-only` | `PMM_OPERATIONS_ONLY` | -| [Overlays Only](#overlays-only) | `-ov`, `--overlays`, or `--overlays-only` | `PMM_OVERLAYS_ONLY` | -| [Run Collections](#run-collections) | `-rc` or `--run-collections` | `PMM_RUN_COLLECTIONS` | -| [Run Libraries](#run-libraries) | `-rl` or `--run-libraries` | `PMM_RUN_LIBRARIES` | -| [Run Files](#run-files) | `-rf` or `--run-files` | `PMM_RUN_FILES` | -| [Ignore Schedules](#ignore-schedules) | `-is` or `--ignore-schedules` | `PMM_IGNORE_SCHEDULES` | -| [Ignore Ghost](#ignore-ghost) | `-ig` or `--ignore-ghost` | `PMM_IGNORE_GHOST` | -| [Delete Collections](#delete-collections) | `-dc` or `--delete-collections` | `PMM_DELETE_COLLECTIONS` | -| [Delete Labels](#delete-labels) | `-dl` or `--delete-labels` | `PMM_DELETE_LABELS` | -| [Resume Run](#resume-run) | `-re` or `--resume` | `PMM_RESUME` | -| [No Countdown](#no-countdown) | `-nc` or `--no-countdown` | `PMM_NO_COUNTDOWN` | -| [No Missing](#no-missing) | `-nm` or `--no-missing` | `PMM_NO_MISSING` | -| [No Report](#no-report) | `-nr` or `--no-report` | `PMM_NO_REPORT` | -| [Read Only Config](#read-only-config) | `-ro` or `--read-only-config` | `PMM_READ_ONLY_CONFIG` | -| [Divider Character](#divider-character--screen-width) | `-d` or `--divider` | `PMM_DIVIDER` | -| [Screen Width](#divider-character--screen-width) | `-w` or `--width` | `PMM_WIDTH` | -| [Config Secrets](#config-secrets) | `--pmm-***` | `PMM_***` | - -Further explanation and examples of each command can be found below. - -Environment variables are expressed as `KEY=VALUE` depending on the context where you are specifying them, you may enter those two things in two different fields, or some other way. The examples below show how you would specify the environment variable in a script or a `docker run` command. Things like Portainer or a NAS Docker UI will have different ways to specify these things. - -## Config - -Specify the location of the configuration YAML file. - -| | Shell | Environment | -|-----------|-----------------------------|-------------------------------| -| Flags | `-c` or `--config` | `PMM_CONFIG` | -| Example | `--config /data/config.yml` | `PMM_CONFIG=/data/config.yml` | -| Default | `config/config.yml` | `config/config.yml` | -| Values | Path to YAML config file | Path to YAML config file | - -!!! example - === "Local Environment" - ``` - python plex_meta_manager.py --config /data/config.yml - ``` - === "Docker Environment" - ``` - docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --config /data/config.yml - ``` - -### Time to Run - -Specify the time of day that Plex Meta Manager will run. - -| | Shell Command | Environment Variable | -|:-----------------|:---------------------------------------------------|:---------------------------| -| Flags | `-t` or `--times` | `PMM_TIMES` | -| Example | `--times 06:00,18:00` | `PMM_TIMES=06:00,18:00` | -| Default Value | <code>05:00</code> | -| Available Values | comma-separated list in <code>HH:MM</code> format | -!!! example - === "Local Environment" - ``` - python plex_meta_manager.py --times 22:00,03:00 - ``` - === "Docker Environment" - ``` - docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --times 22:00,03:00 - ``` - -### Run Immediately - -Perform a run immediately, bypassing the time to run flag. - -| | Shell Command | Environment Variable | -|:--------|:----------------|:----------------------| -| Flags | `-r` or `--run` | `PMM_RUN` | -| Example | `--run` | `PMM_RUN=true` | - -!!! example - === "Local Environment" - ``` - python plex_meta_manager.py --run - ``` - === "Docker Environment" - ``` - docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --run - ``` - -### Run Tests - -Perform a debug test run immediately, bypassing the time to run flag. This will only run collections with `test: true` in the definition. - -| | Shell Command | Environment Variable | -|:---------|:-----------------------------------|:---------------------| -| Flags | `-rt`, `--tests`, or `--run-tests` | `PMM_TESTS` | -| Example | `--run-tests` | `PMM_TESTS=true` | - - -* Only collections with `test: true` enabled will be run - -!!! example - === "Local Environment" - ``` - python plex_meta_manager.py --run-tests - ``` - === "Docker Environment" - ``` - docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --run-tests - ``` - === "Example Collection File" - - In my collection YAML file, I would set `true: false` like this: - - ```yaml - collections: - Marvel Cinematic Universe: - test: true # HERE - trakt_list: https://trakt.tv/users/jawann2002/lists/marvel-cinematic-universe-movies?sort=rank,asc - smart_label: release.desc - ``` -collections: - Marvel Cinematic Universe: - trakt_list: https://trakt.tv/users/jawann2002/lists/marvel-cinematic-universe-movies?sort=rank,asc - smart_label: release.desc - - -### Debug - -Run with Debug Logs Reporting to the Command Window. - -| | Shell Command | Environment Variable | -|:--------|:-------------------|:----------------------| -| Flags | `-db` or `--debug` | `PMM_DEBUG` | -| Example | `--debug` | `PMM_DEBUG=true` | - -!!! example - === "Local Environment" - ``` - python plex_meta_manager.py --debug - ``` - === "Docker Environment" - ``` - docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --debug - ``` - -### Trace - -Run with extra Trace Debug Logs. - -| | Shell Command | Environment Variable | -|:---------|:-------------------|:---------------------| -| Flags | `-tr` or `--trace` | `PMM_TRACE` | -| Example | `--trace` | `PMM_TRACE=true` | - -!!! example - === "Local Environment" - ``` - python plex_meta_manager.py --trace - ``` - === "Docker Environment" - ``` - docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --trace - ``` - -### Log Requests - -Run with every network request printed to the Logs. **This can potentially have personal information in it.** - -| | Shell Command | Environment Variable | -|----------|----------------------------------------------|-------------------------| -| Flags | `-lr` or `--log-request` or `--log-requests` | `PMM_LOG_REQUESTS` | -| Example | `--log-requests` | `PMM_LOG_REQUESTS=true` | - -!!! example - === "Local Environment" - ``` - python plex_meta_manager.py --log-requests - ``` - === "Docker Environment" - ``` - docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --log-requests - ``` - -### Timeout - -Change the timeout for all non-Plex services (such as TMDb, Radarr, and Trakt). This is overwritten by any timeouts mentioned for specific services in the Configuration File. - -| | Shell Command | Environment Variable | -|:--------|:---------------------------|----------------------| -| Flags | `-ti` or `--timeout` | `PMM_TIMEOUT` | -| Example | `--timeout 360` | `PMM_TIMEOUT=360` | -| Values | Integer Number of Seconds | - -!!! example - === "Local Environment" - ``` - python plex_meta_manager.py --timeout 360 - ``` - === "Docker Environment" - ``` - docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --timeout 360 - ``` - -### Collections Only - -Only run collection YAML files, skip library operations, metadata, overlays, and playlists. - -| | Shell Command | Environment Variable | -|:---------|:------------------------------|:-----------------------------| -| Flags | `-co` or `--collections-only` | `PMM_COLLECTIONS_ONLY` | -| Example | `--collections-only` | `PMM_COLLECTIONS_ONLY=true` | - -!!! example - === "Local Environment" - ``` - python plex_meta_manager.py --collections-only - ``` - === "Docker Environment" - ``` - docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --collections-only - ``` - -### Metadata Only - -Only run metadata files, skip library operations, collections, overlays, and playlists. - -| | Shell Command | Environment Variable | -|:---------|:------------------------------|:-----------------------------| -| Flags | `-co` or `--collections-only` | `PMM_COLLECTIONS_ONLY` | -| Example | `--collections-only` | `PMM_COLLECTIONS_ONLY=true` | - -!!! example - === "Local Environment" - ``` - python plex_meta_manager.py --collections-only - ``` - === "Docker Environment" - ``` - docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --collections-only - ``` - -### Playlists Only - -Only run playlist YAML files, skip library operations, overlays, collections, and metadata. - -| | Shell Command | Environment Variable | -|:--------|:-----------------------------|:--------------------------| -| Flags | `-po` or `--playlists-only` | `PMM_PLAYLISTS_ONLY` | -| Example | `--playlists-only` | `PMM_PLAYLISTS_ONLY=true` | - -!!! example - === "Local Environment" - ``` - python plex_meta_manager.py --playlists-only - ``` - === "Docker Environment" - ``` - docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --playlists-only - ``` - -### Operations Only - -Only run library operations skipping collections, metadata, playlists, and overlays. - -| | Shell Command | Environment Variable | -|:---------|:------------------------|:---------------------------| -| Flags | `-op` or `--operations` | `PMM_OPERATIONS_ONLY` | -| Example | `--operations` | `PMM_OPERATIONS_ONLY=true` | - -!!! example - === "Local Environment" - ``` - python plex_meta_manager.py --operations - ``` - === "Docker Environment" - ``` - docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --operations - ``` - -### Overlays Only - -Only run library overlay files skipping collections, metadata, playlists, and operations. - -| | Shell Command | Environment Variable | -|:--------|:----------------------|:--------------------------| -| Flags | `-ov` or `--overlays` | `PMM_OVERLAYS_ONLY` | -| Example | `--overlays` | `PMM_OVERLAYS_ONLY=true` | - -!!! example - === "Local Environment" - ``` - python plex_meta_manager.py --overlays - ``` - === "Docker Environment" - ``` - docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --overlays - ``` - -### Run Collections - -Perform a collections run immediately to run only the pre-defined collections, bypassing the time to run flag. - -| | Shell Command | Environment Variable | -|:--------|:--------------------------------------------------|:---------------------------------------------| -| Flags | `-rc` or `--run-collections` | `PMM_RUN_COLLECTIONS` | -| Example | --run-collections "Harry Potter|Star Wars" | PMM_COLLECTIONS=Harry Potter|Star Wars | -| Values | Pipe-separated list of Collection Names to run | - -!!! example - === "Local Environment" - ``` - python plex_meta_manager.py --run-collections "Harry Potter|Star Wars" - ``` - === "Docker Environment" - ``` - docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --run-collections "Harry Potter|Star Wars" - ``` - -### Run Libraries - -Perform a libraries run immediately to run only the pre-defined libraries, bypassing the time to run flag. - -| | Shell Command | Environment Variable | -|:--------|:--------------------------------------------------|:-----------------------------------------------| -| Flags | `-rl` or `--run-libraries` | `PMM_RUN_LIBRARIES` | -| Example | --run-libraries "Movies - 4K|TV Shows - 4K" | PMM_LIBRARIES=Movies - 4K|TV Shows - 4K` | -| Values | Pipe-separated list of Library Names to run | - -!!! example - === "Local Environment" - ``` - python plex_meta_manager.py --run-libraries "Movies - 4K|TV Shows - 4K" - ``` - === "Docker Environment" - ``` - docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --run-libraries "Movies - 4K|TV Shows - 4K" - ``` - -### Run Files - -Perform a run immediately to run only the pre-defined Collection, Metadata or Playlist files, bypassing the time to run flag. - -???+ warning - - Do not use this to run Overlay files, as Overlay files must run all together or not at all due to their nature. - -| | Shell Command | Environment Variable | -|:-----------------|:-------------------------------------------------------------------------|:----------------------------------------------| -| Flags | `-rf` or `--run-files` | `PMM_RUN_FILES` | -| Example | --run-files "Movies.yml|MovieCharts" | PMM_FILES=Movies.yml|MovieCharts | -| Available Values | Pipe-separated list of Collection, Metadata or Playlist Filenames to run | - - -* This works for all different paths i.e. `pmm`, `git`, `url`, `file`, or `repo`. - -!!! example - === "Local Environment" - ``` - python plex_meta_manager.py --run-files "Movies.yml|seasonal|genre" - ``` - === "Docker Environment" - ``` - docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --run-files "Movies.yml|seasonal|genre" - ``` - -### Ignore Schedules - -Ignore all schedules for the run. - -| | Shell Command | Environment Variable | -|:---------|:------------------------------|:-----------------------------| -| Flags | `-is` or `--ignore-schedules` | `PMM_IGNORE_SCHEDULES` | -| Example | `--ignore-schedules` | `PMM_IGNORE_SCHEDULES=true` | - - -* Range Scheduled collections (such as Christmas movies) will still be ignored. - -!!! example - === "Local Environment" - ``` - python plex_meta_manager.py --ignore-schedules - ``` - === "Docker Environment" - ``` - docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --ignore-schedules - ``` - -### Ignore Ghost - -Ignore all ghost logging for the run. A ghost log is what's printed to the console to show progress during steps. - -| | Shell Command | Environment Variable | -|:---------|:--------------------------|:-------------------------| -| Flags | `-ig` or `--ignore-ghost` | `PMM_IGNORE_GHOST` | -| Example | `--ignore-ghost` | `PMM_IGNORE_GHOST=true` | - -!!! example - === "Local Environment" - ``` - python plex_meta_manager.py --ignore-ghost - ``` - === "Docker Environment" - ``` - docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --ignore-ghost - ``` - -### Delete Collections - -Delete all collections in a Library prior to running collections/operations. - -???+ warning - - You will lose **all** collections in the library - this will delete all collections, including ones not created or maintained by Plex Meta Manager. - -| | Shell Command | Environment Variable | -|:---------|:--------------------------------|:-------------------------------| -| Flags | `-dc` or `--delete-collections` | `PMM_DELETE_COLLECTIONS` | -| Example | `--delete-collections` | `PMM_DELETE_COLLECTIONS=true` | - -!!! example - === "Local Environment" - ``` - python plex_meta_manager.py --delete-collections - ``` - === "Docker Environment" - ``` - docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --delete-collections - ``` - -### Delete Labels - -Delete all labels on every item in a Library prior to running collections/operations. - -???+ warning - - To preserve functionality of PMM, this will **not** remove the Overlay label, which is required for PMM to know which items have Overlays applied. - - This will impact any [Smart Label Collections](../../builders/smart.md#smart-label) that you have in your library. - - We do not recommend using this on a regular basis if you also use any operations or collections that update labels, as you are effectively deleting and adding labels on each run. - -| | Shell Command | Environment Variable | -|:---------|:---------------------------|:--------------------------| -| Flags | `-dl` or `--delete-labels` | `PMM_DELETE_LABELS` | -| Example | `--delete-labels` | `PMM_DELETE_LABELS=true` | - -!!! example - === "Local Environment" - ``` - python plex_meta_manager.py --delete-labels - ``` - === "Docker Environment" - ``` - docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --delete-labels - ``` - -### Resume Run - -Perform a resume run immediately resuming from the first instance of the specified collection, bypassing the time to run flag. - -| | Shell Command | Environment Variable | -|:------------------|:-----------------------------------|:-----------------------| -| Flags | `-re` or `--resume` | `PMM_RESUME` | -| Example | `--resume "Star Wars"` | `PMM_RESUME=Star Wars` | -| Available Values | Name of collection to resume from | - -!!! example - === "Local Environment" - ``` - python plex_meta_manager.py --resume "Star Wars" - ``` - === "Docker Environment" - ``` - docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --resume "Star Wars" - ``` - -### No Countdown - -Run without displaying a countdown to the next scheduled run. - -| | Shell Command | Environment Variable | -|:--------|:--------------------------|:------------------------| -| Flags | `-nc` or `--no-countdown` | `PMM_NO_COUNTDOWN` | -| Example | `--no-countdown` | `PMM_NO_COUNTDOWN=true` | - -!!! example - === "Local Environment" - ``` - python plex_meta_manager.py --no-countdown - ``` - === "Docker Environment" - ``` - docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --no-countdown - ``` - -### No Missing - -Run without utilizing the missing movie/show functions. - -| | Shell Command | Environment Variable | -|:--------|:------------------------|:-----------------------| -| Flags | `-nm` or `--no-missing` | `PMM_NO_MISSING` | -| Example | `--no-missing` | `PMM_NO_MISSING=true` | - -!!! example - === "Local Environment" - ``` - python plex_meta_manager.py --no-missing - ``` - === "Docker Environment" - ``` - docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --no-missing - ``` - -### No Report - -Run without saving the report. - -| | Shell Command | Environment Variable | -|:---------|:-----------------------|:----------------------| -| Flags | `-nr` or `--no-report` | `PMM_NO_REPORT` | -| Example | `--no-report` | `PMM_NO_REPORT=true` | - -!!! example - === "Local Environment" - ``` - python plex_meta_manager.py --no-report - ``` - === "Docker Environment" - ``` - docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --no-report - ``` - -### Read Only Config - -Run without writing to the configuration file. - -| | Shell Command | Environment Variable | -|:---------|:------------------------------|:-----------------------------| -| Flags | `-ro` or `--read-only-config` | `PMM_READ_ONLY_CONFIG` | -| Example | `--read-only-config` | `PMM_READ_ONLY_CONFIG=true` | - -!!! example - === "Local Environment" - ``` - python plex_meta_manager.py --read-only-config - ``` - === "Docker Environment" - ``` - docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --read-only-config - ``` - -### Divider Character & Screen Width - -Change the terminal output divider character or width. - -#### Divider Character - -| | Shell Command | Environment Variable | -|:--------|:--------------------|:----------------------| -| Flags | `-d` or `--divider` | `PMM_DIVIDER` | -| Example | `--divider *` | `PMM_DIVIDER=*` | -| Default | `=` | -| Values | Any character | - - -#### Screen Width - -| | Shell Command | Environment Variable | -|:--------|:-----------------------------|:---------------------| -| Flags | `-w` or `--width` | `PMM_WIDTH` | -| Example | `--width 150` | `PMM_WIDTH=150` | -| Default | Integer between 90 and 300 | -| Values | Any character | - -!!! example - === "Local Environment" - ``` - python plex_meta_manager.py --divider * --width 200 - ``` - === "Docker Environment" - ``` - docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --divider * --width 200 - ``` - -### Config Secrets - -All Run Commands that start with `--pmm-***` and Environment Variables that start with `PMM_***` will be loaded in as Config Secrets. - -These Config Secrets can be loaded into the config by placing `<<***>>` in any field in the config, where `***` is whatever name you want to call the variable. - -| | Shell Command | Environment Variable | -|:---------|:----------------------------|:--------------------------| -| Flags | `--pmm-***` | `PMM_***` | -| Example | `--pmm-mysecret 123456789` | `PMM_MYSECRET=123456789` | - -!!! example - === "Local Environment" - ``` - python plex_meta_manager.py --pmm-mysecret 123456789 - ``` - === "Docker Environment" - ``` - docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --pmm-mysecret 123456789 - ``` - - **Example Config Usage:** - - ```yaml - tmdb: - apikey: <<mysecret>> - ``` diff --git a/docs/pmm/essentials/logs.md b/docs/pmm/essentials/logs.md deleted file mode 100644 index 63117e03..00000000 --- a/docs/pmm/essentials/logs.md +++ /dev/null @@ -1,117 +0,0 @@ -# Log files and where to find them - -Plex-Meta-Manager's log files can be found in `config/logs`: - -``` -config/logs -├── Movies -│   ├── collections -│   │   ├── Action -│   │   │   ├── collection.log -│   │   │   └── collection.log.1 -│   │   ├── Best of 2022 -│   │   │   ├── collection.log -│   │   │   └── collection.log.1 -│   │   ├── Top Rated -│   │   │   ├── collection.log -│   │   │   └── collection.log.1 -│   │   └── Trending -│   │   ├── collection.log -│   │   └── collection.log.1 -│   ├── library.log -│   └── library.log.1 -├── TV -│   ├── collections -│   │   ├── Reality -│   │   │ ├── collection.log -│   │   │ └── collection.log.1 -│   │   └── Game Shows -│   │   ├── collection.log -│   │   └── collection.log.1 -│   ├── library.log -│   └── library.log.1 -├── meta.log -├── meta.log.1 -└── playlists - ├── playlists.log - └── playlists.log.1 -``` - -You will find a `meta.log`, which is the full log of the entire run. - -The subfolders provide more limited logs at the library, collection, and playlist levels. - -As new log files are created, the old ones get a numeric suffix added: `meta.log.1`. The most recent is always the one without a number at the end. - -These files will contain a great deal of detail about what exactly is happening and why. Generally speaking, if you're having a problem with PMM the answer will be found here. These logs can of course be quite technical, but often the error can be relatively clear: - - -Something's missing from the format of the file: -``` -| Loading Collection File: config/TV Shows.yml | -| | -| YAML Error: metadata, collections, or dynamic_collections attribute is required | -``` - -The problem in that case was: - -```yaml -templates: - Collection: - cache_builders: 30 - sync_mode: sync - sort_title: ZZZ-<<source>>-<<collection_name>> - -collections: <<< THIS LINE WAS MISSING - Cached for 30 Days: - template: {name: Collection, source: Looper} - summary: "" - trakt_list: - - https://trakt.tv/users/kesleyalfa/lists/year-2011 -``` - - -YAML doesn't allow duplicate keys: -``` -| Loading Collection File: config/Anime.yml | -| | -| YAML Error: while constructing a mapping -| in "<unicode string>", line 27, column 5: -| mal_favorite: 50 -| ^ (line: 27) -| found duplicate key "collection_order" with value "custom" (original value: "custom") -| in "<unicode string>", line 32, column 5: -| collection_order: custom -| ^ (line: 32) -``` - -The problem there was something like this: -```yaml -templates: - Collection: - cache_builders: 30 - sync_mode: sync - sort_title: ZZZ-<<source>>-<<collection_name>> - -collections: <<< THIS LINE WAS MISSING - Cached for 30 Days: - template: {name: Collection, source: Looper} - collection_order: custom <<<< THIS KEY - summary: "" - collection_order: custom <<<< DUPLICATED HERE - trakt_list: - - https://trakt.tv/users/kesleyalfa/lists/year-2011 -``` - -File is not where PMM expects it: -``` -| Loading Collection File: config/Movies.yml | -| YAML Error: File Error: File does not exist /Users/Lucky/Plex-Meta-Manager/config/Movies.yml | -``` - -## Providing Log Files - -You can drag-and-drop your meta.log file directly into Discord, you do not need to upload it to a third-party site unless it exceeds the 50mb size limit. - -Please DO NOT manually extract, copy and paste text from your log files directly into Discord as the formatting can be difficult to read and can often redact parts of the log file that are important for full context. - diff --git a/docs/pmm/essentials/kb.md b/docs/pmm/faqs.md similarity index 53% rename from docs/pmm/essentials/kb.md rename to docs/pmm/faqs.md index 7fed5308..3c0c6194 100644 --- a/docs/pmm/essentials/kb.md +++ b/docs/pmm/faqs.md @@ -2,11 +2,11 @@ search: boost: 4 --- -# Frequently Asked Questions & Knowledgebase +# Frequently Asked Questions This page aims to provide knowledge based on combined user experience, and to answer the frequent questions that we are asked in our -If you have a question that is not answered here, try entering some keywords into the search bar above, or join our [Discord Server](https://discord.gg/NfH6mGFuAB). +If you have a question that is not answered here, try entering some keywords into the search bar above, or join our [Discord Server](https://metamanager.wiki/en/latest/discord/). ## Frequently Asked Questions @@ -310,7 +310,7 @@ Your PMM installation may not be located at the paths referenced below. These a For users who are more technically advanced and happy to risk manipulating the Plex database, considering altering the [PRAGMA_CACHE settings](https://www.reddit.com/r/PleX/comments/ic3cjr/anyone_try_giving_sqlite3_more_cache_to_help/) within Plex. - **NOTE:** you MUST use the version of sqlite3 tool that comes with your running version of PLEX or you will mess up your PLEX DB beyond repair. See [this article](https://support.plex.tv/articles/repair-a-corrupted-database/) on how to find the proper version for your setup. + **Note:** you MUST use the version of sqlite3 tool that comes with your running version of PLEX or you will mess up your PLEX DB beyond repair. See [this article](https://support.plex.tv/articles/repair-a-corrupted-database/) on how to find the proper version for your setup. ??? question "Why does my PMM run take so long to complete?" @@ -378,104 +378,4 @@ Your PMM installation may not be located at the paths referenced below. These a :two: Check the plex logs (container or other) for the "Busy DB Sleeping for 200ms) - There is nothing that PMM or our support staff can really do to resolve a 500 error. - -## Knowledgebase - -This section aims to provide some guidance on the most common issues that we see. - -### Locating Log Files - -The meta.log file can be found within the `logs` folder of your Plex Meta Manager config folder [right next to `config.yml`]. -`meta.log` is the most recent run of Plex Meta Manager, `meta.log.1` is the previous run, `meta.log.2` is the run before that, so on and so forth. - -### Basic Log File Troubleshooting - -Wondering how to troubleshoot Plex Meta Manager and how to read through the meta.log? - -**Using a text editor like [Visual Studio Code](https://code.visualstudio.com/) or [Sublime Text](https://www.sublimetext.com/) is recommended** - -In all cases, the first step is to open the [`meta.log`](#locating-log-files) with your text editor and perform these steps: - -1. Check that you are running the latest [`version`](#checking-plex-meta-manager-version) of your branch. Your current version can be found in the `meta.log` file either below the Plex Meta Manager ASCII art, or at the end of the run. If you are not on the latest version of your branch, you will see `Newest Version: X.X.X` below this. Ensure you [`upgrade`](../install/guides/local.md#i-want-to-update-to-the-latest-version-of-pmm) to the latest version of Plex Meta Manager. -2. When scanning your meta.log file, search for `[CRITICAL]` items first as these will definitely need to be fixed -3. Scan your meta.log file for `[ERROR]` and make a note of the content of the full line to start your search below on how to resolve - -### Checking Plex Meta Manager Version - -Checking the version: You will find that in your [`meta.log`](#locating-log-files) around the 8th-10th line and will look something like this: - -``` -| | -| Version: 1.17.1-develop10 | -|=================================| -``` - -If you are not on the latest version of your branch, you will see Newest Version: X.X.X below this. Ensure you upgrade to the latest version of Plex Meta Manager. - -``` -| | -| Version: 1.17.1-develop10 | -| Newest Version: 1.17.1-develop20 | -|=======================================| -``` - -### Understanding Log File Event Types - -There are five main event types that you need to be aware of when understanding the log files, detailed below: - -| Type | Short Info | Description | Recommendation | -|:-----------|:----------------------|:-------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------| -| `INFO` | Information log | Informational message that does not require much attention | No action required | -| `DEBUG` | Debug Log | Debug log message that does not require much attention | No action required | -| `WARNING` | Warning Log | Warning message that may require your attention | Read the warning and determine if this is something you need to take action on or not | -| `ERROR` | Error Log | Error message that in MOST cases requires action on your part to resolve | Read the error message, look for the message below and try recommendations | -| `CRITICAL` | Critical Log | Critical message requiring you to fix it for PMM to run properly | Read the critical message and take appropriate action. look for message below and try recommendations | - - -### Common Log File Messages - -This section aims to explain some commonly seen event messages that are produced in the logs. - -#### CRITICAL - -This table details examples of the most commonly-seen `CRITICAL` events and what they mean for the user. - -| Type | Short Info | Description | Recommendation | -|:-----------|:----------------------------------------------------|:------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------| -| `CRITICAL` | `Failed to Connect to https://api.themoviedb.org/3` | Current step PMM was on made an API call to TMDb, but it aborted and moved on | Determine if TMDb was offline and not replying to api requests. Try again and see if it fails again or not. | - -#### ERROR - -This table details examples of the most commonly-seen `[ERROR]` events and what they mean for the user. - -| Type | Short Info | Description | Recommendation | -|:--------|:------------------------------------------------------------------|:---------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `ERROR` | `Playlist Error: Library: XYZ not defined` | Plex library XYZ is not found | Ensure that your config file has defined the proper library name as found in Plex | -| `ERROR` | `Plex Error: resolution: No matches found with regex pattern XYZ` | While looking for a pattern in Plex, this one was not found | This may be normal and require 0 actions. However, if you expect that Plex should have returned records, check the pattern to ensure it is working properly | -| `ERROR` | `Plex Error: No Items found in Plex` | While using the PMM builder, no items with that criteria were returned from Plex | This may be normal and require 0 actions. However, if you expect that Plex should have returned records, check the builder to ensure it is working properly | -| `ERROR` | `IMDb Error: Failed to parse URL:` | While using the PMM builder, url does not exist | This may be normal and require 0 actions. However, if you expect that the URL should have returned records, check the url in your browser to ensure it is working properly | -| `ERROR` | `Trakt Error: No TVDb ID found for Nightfall (2022)` | Online sources are missing information | These sorts of errors indicate that the thing can't be cross-referenced between sites.</br>For example, at the time of that error, the Trakt record for "Nightfall (2022)" didn't contain a TVDb ID.</br>This could be because the record just hasn't been updated, or because "Nightfall (2022)" is not listed on TVDb.</br>The fix is for someone [like you, perhaps] to go to the relevant site and fill in the missing data. | -| `ERROR` | `MdbList Error: Not Found` | Online sources are missing information | These sorts of errors indicate that the thing can't be cross-referenced between sites. For example, at the time of that error, the the MDBlist record was trying to get a rating for a media item and could not find it. | -| `ERROR` | `Plex Error: actor: Mel B not found` | Actor not found and hence unable to create the collection | Report error in #pmm-help channel and see if there is a fix. | -| `ERROR` | `Input Failed` | A token or password is no longer valid for an online source of information | Review the meta.log for more information | -| `ERROR` | `Collection Error: trakt_list requires Trakt to be configured` | You are using a builder that has not been configured yet. | Review the meta.log for more information on what went wrong. Refer to the wiki for details on how to set this up (in this case Trakt) | - -#### WARNING - -This table details examples of the most commonly-seen `[WARNING]` events and what they mean for the user. - -| Type | Short Info | Description | Recommendation | -|:----------|:-----------------------------------------------------------------|:-----------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `WARNING` | `Convert Error: No TVDb ID Found for TMDb ID: 15733` | Online sources are missing information | These sorts of errors indicate that the thing can't be cross-referenced between sites.</br>For example, at the time of that error, the TMDb record for "The Two Mrs. Grenvilles" [ID 15733] didn't contain a TVDb ID.</br>This could be because the record just hasn't been updated, or because "The Two Mrs. Grenvilles" is not listed on TVDB.</br>The fix is for someone [like you, perhaps] to go to the relevant site and fill in the missing data. | -| `WARNING` | `Convert Error: AniDB ID not found for AniList ID: 21400` | Online sources are missing information | These sorts of errors indicate that the thing can't be cross-referenced between sites. The fix is for someone [like you, perhaps] to go to the relevant site and fill in the missing data. | -| `WARNING` | `Convert Error: No TVDb ID or IMDb ID found for AniDB ID: 14719` | Online sources are missing information | These sorts of errors indicate that the thing can't be cross-referenced between sites. The fix is for someone [like you, perhaps] to go to the relevant site and fill in the missing data. | -| `WARNING` | `Convert Error: AniDB ID not found for MyAnimeList ID: 36838` | Online sources are missing information | These sorts of errors indicate that the thing can't be cross-referenced between sites. The fix is for someone [like you, perhaps] to go to the relevant site and fill in the missing data. | - -#### INFO - -This table details examples of the most commonly-seen `[INFO]` events and what they mean for the user. - -| Type | Short Info | Description | Recommendation | -|:-------|:----------------------------------------------|:--------------------------------------|:------------------------------------------------------------------------------------------------------------------------------| -| `INFO` | `Detail: TMDb_person updated poster to [URL]` | Person image was downloaded from TMDb | May require you to update the people poster image to your style or request it in the style of the PMM defaults people posters | + There is nothing that PMM or our support staff can really do to resolve a 500 error. \ No newline at end of file diff --git a/docs/pmm/install/guides/assets.md b/docs/pmm/guides/assets.md similarity index 65% rename from docs/pmm/install/guides/assets.md rename to docs/pmm/guides/assets.md index c8f3054f..6dd96a12 100644 --- a/docs/pmm/install/guides/assets.md +++ b/docs/pmm/guides/assets.md @@ -30,7 +30,7 @@ settings: - config/assets_ahoy ``` -* You can specify an Image Asset Directory per Metadata/Playlist/Overlay File when calling the file. See [Path Types](../../../builders/files.md#paths) for how to define them. +* You can specify an Image Asset Directory per Metadata/Playlist/Overlay File when calling the file. See [File Blocks](../../config/files.md) for how to define them. * By default [if no `asset_directory` is specified], the program will look in the same folder as your `config.yml` for a folder called `assets`. @@ -48,7 +48,7 @@ Movies: assets_for_all: true ``` -* If you want to silence the `Asset Warning: No poster or background found in an assets folder for 'TITLE'` you can use the [`show_missing_assets` Setting Attribute](../../../config/settings.md#show-missing-assets): +* If you want to silence the `Asset Warning: No poster or background found in an assets folder for 'TITLE'` you can use the [`show_missing_assets` Setting Attribute](../../config/settings.md): ```yaml settings: show_missing_assets: false @@ -60,7 +60,7 @@ If a media item has an asset associated with it, that asset image is taken as th ## Asset Naming -The table below shows the asset folder path structures that will be searched for. There are two options for how Plex Meta Manager looks at the files inside your Asset Directories. Choose an option with the [`asset_folders` Setting Attribute](../../../config/settings.md#image-asset-folders). Note that `asset_folders` is a toggle; you can't put some images in folders and some not in a context where it is enabled. +The table below shows the asset folder path structures that will be searched for. There are two options for how Plex Meta Manager looks at the files inside your Asset Directories. Choose an option with the [`asset_folders` Setting Attribute](../../config/settings.md). Note that `asset_folders` is a toggle; you can't put some images in folders and some not in a context where it is enabled. Assets can be stored anywhere on the host system that PMM has visibility of (i.e. if using docker, the directory must be mounted/visible to the docker container). @@ -182,7 +182,7 @@ Assets can be stored anywhere on the host system that PMM has visibility of (i.e * When `asset_folders` is set to `true` movie/show folders can be nested inside other folders, but you must specify how deep you want to search because the more levels to search the longer it takes. -* You can specify how deep you want to scan by using the [`asset_depth` Setting Attribute](../../../config/settings.md#asset-depth). +* You can specify how deep you want to scan by using the [`asset_depth` Setting Attribute](../../config/settings.md). Here's an example config folder structure with an assets directory with `asset_folders` set to true and false. @@ -193,49 +193,49 @@ config ├── config.yml ├── Movies.yml ├── TV Shows.yml -├── assets -│ ├── The Lord of the Rings -│ ├── poster.png -│ ├── background.png -│ ├── The Lord of the Rings The Fellowship of the Ring (2001) -│ ├── poster.png -│ ├── background.png -│ ├── The Lord of the Rings The Two Towers (2002) -│ ├── poster.png -│ ├── background.png -│ ├── The Lord of the Rings The Return of the King (2003) -│ ├── poster.png -│ ├── background.png -│ ├── Star Wars (Animated) -│ ├── poster.png -│ ├── background.png -│ ├── Star Wars The Clone Wars -│ ├── poster.png -│ ├── background.png -│ ├── Season00.png -│ ├── Season01.png -│ ├── Season02.png -│ ├── Season03.png -│ ├── Season04.png -│ ├── Season05.png -│ ├── Season06.png -│ ├── Season07.png -│ ├── S07E01.png -│ ├── S07E02.png -│ ├── S07E03.png -│ ├── S07E04.png -│ ├── S07E05.png -│ ├── Star Wars Rebels -│ ├── poster.png -│ ├── background.png -│ ├── Season01.png -│ ├── Season01_background.png -│ ├── Season02.png -│ ├── Season02_background.png -│ ├── Season03.png -│ ├── Season03_background.png -│ ├── Season04.png -│ ├── Season04_background.png +└── assets + ├── The Lord of the Rings + │ ├── poster.png + │ └── background.png + ├── The Lord of the Rings The Fellowship of the Ring (2001) + │ ├── poster.png + │ └── background.png + ├── The Lord of the Rings The Two Towers (2002) + │ ├── poster.png + │ └── background.png + ├── The Lord of the Rings The Return of the King (2003) + │ ├── poster.png + │ └── background.png + ├── Star Wars (Animated) + │ ├── poster.png + │ └── background.png + ├── Star Wars The Clone Wars + │ ├── poster.png + │ ├── background.png + │ ├── Season00.png + │ ├── Season01.png + │ ├── Season02.png + │ ├── Season03.png + │ ├── Season04.png + │ ├── Season05.png + │ ├── Season06.png + │ ├── Season07.png + │ ├── S07E01.png + │ ├── S07E02.png + │ ├── S07E03.png + │ ├── S07E04.png + │ └── S07E05.png + └── Star Wars Rebels + ├── poster.png + ├── background.png + ├── Season01.png + ├── Season01_background.png + ├── Season02.png + ├── Season02_background.png + ├── Season03.png + ├── Season03_background.png + ├── Season04.png + └── Season04_background.png ``` ### Flat Assets `asset_folders: false` @@ -245,40 +245,40 @@ config ├── config.yml ├── Movies.yml ├── TV Shows.yml -├── assets -│ ├── The Lord of the Rings.png -│ ├── The Lord of the Rings_background.png -│ ├── The Lord of the Rings The Fellowship of the Ring (2001).png -│ ├── The Lord of the Rings The Fellowship of the Ring (2001)_background.png -│ ├── The Lord of the Rings The Two Towers (2002).png -│ ├── The Lord of the Rings The Two Towers (2002)_background.png -│ ├── The Lord of the Rings The Return of the King (2003).png -│ ├── The Lord of the Rings The Return of the King (2003)_background.png -│ ├── Star Wars (Animated).png -│ ├── Star Wars (Animated)_background.png -│ ├── Star Wars The Clone Wars.png -│ ├── Star Wars The Clone Wars_background.png -│ ├── Star Wars The Clone Wars_Season00.png -│ ├── Star Wars The Clone Wars_Season01.png -│ ├── Star Wars The Clone Wars_Season02.png -│ ├── Star Wars The Clone Wars_Season03.png -│ ├── Star Wars The Clone Wars_Season04.png -│ ├── Star Wars The Clone Wars_Season05.png -│ ├── Star Wars The Clone Wars_Season06.png -│ ├── Star Wars The Clone Wars_Season07.png -│ ├── Star Wars The Clone Wars_S07E01.png -│ ├── Star Wars The Clone Wars_S07E02.png -│ ├── Star Wars The Clone Wars_S07E03.png -│ ├── Star Wars The Clone Wars_S07E04.png -│ ├── Star Wars The Clone Wars_S07E05.png -│ ├── Star Wars Rebels.png -│ ├── Star Wars Rebels_background.png -│ ├── Star Wars Rebels_Season01.png -│ ├── Star Wars Rebels_Season01_background.png -│ ├── Star Wars Rebels_Season02.png -│ ├── Star Wars Rebels_Season02_background.png -│ ├── Star Wars Rebels_Season03.png -│ ├── Star Wars Rebels_Season03_background.png -│ ├── Star Wars Rebels_Season04.png -│ ├── Star Wars Rebels_Season04_background.png +└── assets + ├── The Lord of the Rings.png + ├── The Lord of the Rings_background.png + ├── The Lord of the Rings The Fellowship of the Ring (2001).png + ├── The Lord of the Rings The Fellowship of the Ring (2001)_background.png + ├── The Lord of the Rings The Two Towers (2002).png + ├── The Lord of the Rings The Two Towers (2002)_background.png + ├── The Lord of the Rings The Return of the King (2003).png + ├── The Lord of the Rings The Return of the King (2003)_background.png + ├── Star Wars (Animated).png + ├── Star Wars (Animated)_background.png + ├── Star Wars The Clone Wars.png + ├── Star Wars The Clone Wars_background.png + ├── Star Wars The Clone Wars_Season00.png + ├── Star Wars The Clone Wars_Season01.png + ├── Star Wars The Clone Wars_Season02.png + ├── Star Wars The Clone Wars_Season03.png + ├── Star Wars The Clone Wars_Season04.png + ├── Star Wars The Clone Wars_Season05.png + ├── Star Wars The Clone Wars_Season06.png + ├── Star Wars The Clone Wars_Season07.png + ├── Star Wars The Clone Wars_S07E01.png + ├── Star Wars The Clone Wars_S07E02.png + ├── Star Wars The Clone Wars_S07E03.png + ├── Star Wars The Clone Wars_S07E04.png + ├── Star Wars The Clone Wars_S07E05.png + ├── Star Wars Rebels.png + ├── Star Wars Rebels_background.png + ├── Star Wars Rebels_Season01.png + ├── Star Wars Rebels_Season01_background.png + ├── Star Wars Rebels_Season02.png + ├── Star Wars Rebels_Season02_background.png + ├── Star Wars Rebels_Season03.png + ├── Star Wars Rebels_Season03_background.png + ├── Star Wars Rebels_Season04.png + └── Star Wars Rebels_Season04_background.png ``` diff --git a/docs/pmm/guides/formula.md b/docs/pmm/guides/formula.md new file mode 100644 index 00000000..e431e280 --- /dev/null +++ b/docs/pmm/guides/formula.md @@ -0,0 +1,91 @@ +# Formula 1 Metadata Guide + +This is a guide for setting up Formula 1 in Plex using the `f1_season` metadata attribute. + +Most of this guide is taken from a reddit [post](https://www.reddit.com/r/PleX/comments/tdzp8x/formula_1_library_with_automatic_metadata/) written by /u/Toastjuh. + +## Folder structure + +Let's start with the basics: + +* Every Formula 1 season will be a TV Show in Plex. Season 2001, Season 2002, etc. +* Every race will be a Season in Plex. Season 1 will be the Australian GP, Season 2 will be the Bahrain GP etc. +* Every session will be an Episode in Plex. Episode 1 will be Free Practice 1, Episode 2 will be Free Practice 2 etc. + +The folder format is like this: +``` +Formula -> Library Folder +└── Season 2018 -> Folder for each F1 Season + ├── 01 - Australian GP -> Folder for each Race in a season + │ ├── 01x10 - Australian GP - Highlights.mkv + │ ├── 01x01 - Australian GP - Free Practice 1.mkv + │ ├── 01x02 - Australian GP - Free Practice 2.mkv + │ ├── 01x03 - Australian GP - Free Practice 3.mkv + │ ├── 01x04 - Australian GP - Pre-Qualifying Buildup.mkv + │ ├── 01x05 - Australian GP - Qualifying Session.mkv + │ ├── 01x06 - Australian GP - Post-Qualyfing Analysis.mkv + │ ├── 01x07 - Australian GP - Pre-Race Buildup.mkv + │ ├── 01x08 - Australian GP - Race Session.mkv + │ ├── 01x09 - Australian GP - Post-Race Analysis.mkv + │ └── 01x10 - Australian GP - Highlights.mkv + └── 02 - Bahrein GP + ├── 02x10 - Bahrein GP - Highlights.mkv + ├── 02x01 - Bahrein GP - Free Practice 1.mkv + ├── 02x02 - Bahrein GP - Free Practice 2.mkv + ├── 02x03 - Bahrein GP - Free Practice 3.mkv + ├── 02x04 - Bahrein GP - Pre-Qualifying Buildup.mkv + ├── 02x05 - Bahrein GP - Qualifying Session.mkv + ├── 02x06 - Bahrein GP - Post-Qualyfing Analysis.mkv + ├── 02x07 - Bahrein GP - Pre-Race Buildup.mkv + ├── 02x08 - Bahrein GP - Race Session.mkv + ├── 02x09 - Bahrein GP - Post-Race Analysis.mkv + └── 02x10 - Bahrein GP - Highlights.mkv +``` + +For weekends with a Sprint race (this example also includes Ted's Notebook segments), the format looks like this: +``` +Formula -> Library Folder +└── Season 2023 -> Folder for each F1 Season + └── 04 - Azerbaijan GP -> Folder for each Race in a season + ├── 04x01 - Azerbaijan GP - Pre-Qualifying Buildup.mkv + ├── 04x02 - Azerbaijan GP - Qualifying Session.mkv + ├── 04x03 - Azerbaijan GP - Post-Qualifying Analysis.mkv + ├── 04x04 - Azerbaijan GP - Ted's Qualifying Notebook.mkv + ├── 04x05 - Azerbaijan GP - Pre-Sprint Shootout Buildup.mkv + ├── 04x06 - Azerbaijan GP - Sprint Shootout Session.mkv + ├── 04x07 - Azerbaijan GP - Post-Sprint Shootout Analysis.mkv + ├── 04x08 - Azerbaijan GP - Pre-Sprint Race Buildup.mkv + ├── 04x09 - Azerbaijan GP - Sprint Race Session.mkv + ├── 04x10 - Azerbaijan GP - Post-Sprint Race Analysis.mkv + ├── 04x11 - Azerbaijan GP - Ted's Sprint Notebook.mkv + ├── 04x12 - Azerbaijan GP - Pre-Race Buildup.mkv + ├── 04x13 - Azerbaijan GP - Race Session.mkv + ├── 04x14 - Azerbaijan GP - Post-Race Analysis.mkv + └── 04x15 - Azerbaijan GP - Ted's Race Notebook.mkv +``` + +What matters for plex and for pmm. + +* Change the Plex Agent to "Personal Media Shows" for F1 libraries +* The show name can be whatever you want it to be but the pre created collection file will only work if you use just the year numbers. +* The season folder can be called whatever you want as long as plex scans it in with the Season Number matching the race number. +* The episodes must follow plex's naming convention to have them scanned in properly but in order for PMM to update the metadata the files need to be specifically name like above. + +## Collection File + +```yaml +metadata: + Season 2021: + f1_season: 2021 + round_prefix: true + Season 2020: + f1_season: 2020 + round_prefix: true +``` + +* Add `round_prefix: true` to have the race number appended to the beginning of the Race Name. +* Add `shorten_gp: true` to shorten `Grand Prix` to `GP` in all titles. + +Add an entry for every season you want to set the metadata for. The name needs to correspond with the name the season has in Plex! + +The posters of races you can get from https://www.eventartworks.de/ diff --git a/docs/pmm/essentials/ratings/ratings-01.png b/docs/pmm/guides/images/ratings-01.png similarity index 100% rename from docs/pmm/essentials/ratings/ratings-01.png rename to docs/pmm/guides/images/ratings-01.png diff --git a/docs/pmm/essentials/ratings/ratings-02.png b/docs/pmm/guides/images/ratings-02.png similarity index 100% rename from docs/pmm/essentials/ratings/ratings-02.png rename to docs/pmm/guides/images/ratings-02.png diff --git a/docs/pmm/essentials/ratings/ratings-03.png b/docs/pmm/guides/images/ratings-03.png similarity index 100% rename from docs/pmm/essentials/ratings/ratings-03.png rename to docs/pmm/guides/images/ratings-03.png diff --git a/docs/pmm/essentials/ratings/ratings-04.png b/docs/pmm/guides/images/ratings-04.png similarity index 100% rename from docs/pmm/essentials/ratings/ratings-04.png rename to docs/pmm/guides/images/ratings-04.png diff --git a/docs/pmm/essentials/ratings/ratings-05.png b/docs/pmm/guides/images/ratings-05.png similarity index 100% rename from docs/pmm/essentials/ratings/ratings-05.png rename to docs/pmm/guides/images/ratings-05.png diff --git a/docs/pmm/essentials/ratings/ratings-06.png b/docs/pmm/guides/images/ratings-06.png similarity index 100% rename from docs/pmm/essentials/ratings/ratings-06.png rename to docs/pmm/guides/images/ratings-06.png diff --git a/docs/pmm/essentials/ratings/ratings-07.png b/docs/pmm/guides/images/ratings-07.png similarity index 100% rename from docs/pmm/essentials/ratings/ratings-07.png rename to docs/pmm/guides/images/ratings-07.png diff --git a/docs/pmm/essentials/ratings/ratings-08.png b/docs/pmm/guides/images/ratings-08.png similarity index 100% rename from docs/pmm/essentials/ratings/ratings-08.png rename to docs/pmm/guides/images/ratings-08.png diff --git a/docs/pmm/essentials/ratings/ratings-09.png b/docs/pmm/guides/images/ratings-09.png similarity index 100% rename from docs/pmm/essentials/ratings/ratings-09.png rename to docs/pmm/guides/images/ratings-09.png diff --git a/docs/pmm/essentials/ratings/ratings-10.png b/docs/pmm/guides/images/ratings-10.png similarity index 100% rename from docs/pmm/essentials/ratings/ratings-10.png rename to docs/pmm/guides/images/ratings-10.png diff --git a/docs/pmm/install/guides/task-scheduler/01-runner-cmd.png b/docs/pmm/guides/images/scheduling-01-runner-cmd.png similarity index 100% rename from docs/pmm/install/guides/task-scheduler/01-runner-cmd.png rename to docs/pmm/guides/images/scheduling-01-runner-cmd.png diff --git a/docs/pmm/install/guides/task-scheduler/02-open-task-scheduler.png b/docs/pmm/guides/images/scheduling-02-open-task-scheduler.png similarity index 100% rename from docs/pmm/install/guides/task-scheduler/02-open-task-scheduler.png rename to docs/pmm/guides/images/scheduling-02-open-task-scheduler.png diff --git a/docs/pmm/install/guides/task-scheduler/03-task-scheduler-main.png b/docs/pmm/guides/images/scheduling-03-task-scheduler-main.png similarity index 100% rename from docs/pmm/install/guides/task-scheduler/03-task-scheduler-main.png rename to docs/pmm/guides/images/scheduling-03-task-scheduler-main.png diff --git a/docs/pmm/install/guides/task-scheduler/04-basic-task-01.png b/docs/pmm/guides/images/scheduling-04-basic-task-01.png similarity index 100% rename from docs/pmm/install/guides/task-scheduler/04-basic-task-01.png rename to docs/pmm/guides/images/scheduling-04-basic-task-01.png diff --git a/docs/pmm/install/guides/task-scheduler/04-basic-task-02.png b/docs/pmm/guides/images/scheduling-04-basic-task-02.png similarity index 100% rename from docs/pmm/install/guides/task-scheduler/04-basic-task-02.png rename to docs/pmm/guides/images/scheduling-04-basic-task-02.png diff --git a/docs/pmm/install/guides/task-scheduler/04-basic-task-03.png b/docs/pmm/guides/images/scheduling-04-basic-task-03.png similarity index 100% rename from docs/pmm/install/guides/task-scheduler/04-basic-task-03.png rename to docs/pmm/guides/images/scheduling-04-basic-task-03.png diff --git a/docs/pmm/install/guides/task-scheduler/04-basic-task-04.png b/docs/pmm/guides/images/scheduling-04-basic-task-04.png similarity index 100% rename from docs/pmm/install/guides/task-scheduler/04-basic-task-04.png rename to docs/pmm/guides/images/scheduling-04-basic-task-04.png diff --git a/docs/pmm/install/guides/task-scheduler/04-basic-task-05.png b/docs/pmm/guides/images/scheduling-04-basic-task-05.png similarity index 100% rename from docs/pmm/install/guides/task-scheduler/04-basic-task-05.png rename to docs/pmm/guides/images/scheduling-04-basic-task-05.png diff --git a/docs/pmm/install/guides/task-scheduler/04-basic-task-06.png b/docs/pmm/guides/images/scheduling-04-basic-task-06.png similarity index 100% rename from docs/pmm/install/guides/task-scheduler/04-basic-task-06.png rename to docs/pmm/guides/images/scheduling-04-basic-task-06.png diff --git a/docs/pmm/install/guides/task-scheduler/04-basic-task-07.png b/docs/pmm/guides/images/scheduling-04-basic-task-07.png similarity index 100% rename from docs/pmm/install/guides/task-scheduler/04-basic-task-07.png rename to docs/pmm/guides/images/scheduling-04-basic-task-07.png diff --git a/docs/pmm/install/guides/task-scheduler/04-basic-task-08.png b/docs/pmm/guides/images/scheduling-04-basic-task-08.png similarity index 100% rename from docs/pmm/install/guides/task-scheduler/04-basic-task-08.png rename to docs/pmm/guides/images/scheduling-04-basic-task-08.png diff --git a/docs/pmm/install/guides/task-scheduler/04-basic-task-09.png b/docs/pmm/guides/images/scheduling-04-basic-task-09.png similarity index 100% rename from docs/pmm/install/guides/task-scheduler/04-basic-task-09.png rename to docs/pmm/guides/images/scheduling-04-basic-task-09.png diff --git a/docs/pmm/install/guides/task-scheduler/05-waiter-cmd.png b/docs/pmm/guides/images/scheduling-05-waiter-cmd.png similarity index 100% rename from docs/pmm/install/guides/task-scheduler/05-waiter-cmd.png rename to docs/pmm/guides/images/scheduling-05-waiter-cmd.png diff --git a/docs/pmm/install/guides/task-scheduler/06-basic-task-01.png b/docs/pmm/guides/images/scheduling-06-basic-task-01.png similarity index 100% rename from docs/pmm/install/guides/task-scheduler/06-basic-task-01.png rename to docs/pmm/guides/images/scheduling-06-basic-task-01.png diff --git a/docs/pmm/install/guides/task-scheduler/06-basic-task-02.png b/docs/pmm/guides/images/scheduling-06-basic-task-02.png similarity index 100% rename from docs/pmm/install/guides/task-scheduler/06-basic-task-02.png rename to docs/pmm/guides/images/scheduling-06-basic-task-02.png diff --git a/docs/pmm/install/guides/task-scheduler/06-basic-task-03.png b/docs/pmm/guides/images/scheduling-06-basic-task-03.png similarity index 100% rename from docs/pmm/install/guides/task-scheduler/06-basic-task-03.png rename to docs/pmm/guides/images/scheduling-06-basic-task-03.png diff --git a/docs/pmm/install/guides/task-scheduler/06-basic-task-04.png b/docs/pmm/guides/images/scheduling-06-basic-task-04.png similarity index 100% rename from docs/pmm/install/guides/task-scheduler/06-basic-task-04.png rename to docs/pmm/guides/images/scheduling-06-basic-task-04.png diff --git a/docs/pmm/install/guides/task-scheduler/06-basic-task-05.png b/docs/pmm/guides/images/scheduling-06-basic-task-05.png similarity index 100% rename from docs/pmm/install/guides/task-scheduler/06-basic-task-05.png rename to docs/pmm/guides/images/scheduling-06-basic-task-05.png diff --git a/docs/pmm/install/guides/task-scheduler/06-basic-task-06.png b/docs/pmm/guides/images/scheduling-06-basic-task-06.png similarity index 100% rename from docs/pmm/install/guides/task-scheduler/06-basic-task-06.png rename to docs/pmm/guides/images/scheduling-06-basic-task-06.png diff --git a/docs/pmm/install/guides/task-scheduler/07-waiter-cmd-times.png b/docs/pmm/guides/images/scheduling-07-waiter-cmd-times.png similarity index 100% rename from docs/pmm/install/guides/task-scheduler/07-waiter-cmd-times.png rename to docs/pmm/guides/images/scheduling-07-waiter-cmd-times.png diff --git a/docs/pmm/guides/overview.md b/docs/pmm/guides/overview.md new file mode 100644 index 00000000..fc7b0518 --- /dev/null +++ b/docs/pmm/guides/overview.md @@ -0,0 +1,32 @@ +# PMM Explanations, Guides & Recipes + +This page outlines the explanations, guides and recipes that will help you understand certain aspects of PMM that may not be easily understood without expanded context or examples that would be difficult to provide in the standard wiki pages. + +Special credit to [Chazlarson](https://github.com/chazlarson) for the time and effort he has spent developing a lot of these guides. + +## Explanations + +The below guides and recipes have been created to assist users with various aspects of Plex Meta Managers and its companion scripts. + +- [Plex Ratings Explained](ratings.md) +- [Scheduling PMM Rungs Guide](scheduling.md) +- [Image Asset Directory Guide](assets.md) +- [Log Files](../logs.md) +- [Understanding YAML File Syntax](../yaml.md) +- [Formula 1 Metadata Edit Guide](formula.md) + +## Guides + +A lot of these guides are stored on Google Drive as using the traditional wiki pages would make the formatting difficult to understand. + +{% + include-markdown "https://raw.githubusercontent.com/chazlarson/Plex-Meta-Manager-Cookbook/main/guides/README.md" +%} + +## Recipes + +A lot of these guides are stored on Google Drive as using the traditional wiki pages would make the formatting difficult to understand. + +{% + include-markdown "https://raw.githubusercontent.com/chazlarson/Plex-Meta-Manager-Cookbook/main/cookbook/README.md" +%} \ No newline at end of file diff --git a/docs/pmm/essentials/ratings.md b/docs/pmm/guides/ratings.md similarity index 95% rename from docs/pmm/essentials/ratings.md rename to docs/pmm/guides/ratings.md index 3bde758e..e4d09fc9 100644 --- a/docs/pmm/essentials/ratings.md +++ b/docs/pmm/guides/ratings.md @@ -22,11 +22,11 @@ Here's our starting point if you want to run through this yourself: Set up a brand new Library with only one movie in it. Ensure the Ratings source on the library is set to Rotten Tomatoes: - ![](ratings/ratings-01.png) + ![](images/ratings-01.png) The Plex UI shows the correct ratings and icons for Rotten Tomatoes and is aligned with the Rotten Tomatoes site: - ![](ratings/ratings-02.png) + ![](images/ratings-02.png) Also note that we have not given this a user rating. @@ -34,7 +34,7 @@ Also note that we have not given this a user rating. Now let's add rating overlays to the poster. We're going to use the minimal config needed here to illustrate the concepts. -??? example "Click to see initial minimal config" +??? example "Initial minimal config (click to expand)" ```yaml libraries: @@ -62,7 +62,7 @@ Now let's add rating overlays to the poster. We're going to use the minimal conf After Plex Meta Manager is run on this library, you'll get this result: - ![](ratings/ratings-03.png) + ![](images/ratings-03.png) * Plex Meta Manager has added those two ratings to the poster using the values already stored with the movie. The icons and values are correctly associated simply because we made sure they are in the config file. @@ -70,11 +70,11 @@ After Plex Meta Manager is run on this library, you'll get this result: Now we're going to add a user rating by clicking the middle star on the right for a rating of 3/5: - ![](ratings/ratings-04.png) + ![](images/ratings-04.png) Now just run Plex Meta Manager again without changing anything else and the user rating overlay will appear: - ![](ratings/ratings-05.png) + ![](images/ratings-05.png) * Plex Meta Manager added the third rating overlay, since there is now a value in the user rating. * It gave it an IMDb icon because we told it to in the config file. ([Why does it say 250 instead of IMDb?](#why-do-different-images-appear-for-the-same-source)) @@ -84,7 +84,7 @@ Now just run Plex Meta Manager again without changing anything else and the user You and I both know that the IMDb rating isn't 6.0, but Plex Meta Manager is just doing what it's told. Nobody but us humans know where those numbers come from. As an example, let's change the icons to "prove" that Plex Meta Manager doesn't know or care: -??? example "Click to see the updated config" +??? example "Updated config (click to expand)" ```yaml libraries: @@ -107,7 +107,7 @@ You and I both know that the IMDb rating isn't 6.0, but Plex Meta Manager is jus When the above is run you see this result: - ![](ratings/ratings-06.png) + ![](images/ratings-06.png) * Three different ratings on the poster, all IMDb; All while the Plex UI still shows RT icons. * Note that the existing RT ratings numbers (`93%` and `96%`) display on the poster as `9.3` and `9.6`. This is happening because we just told Plex Meta Manager that those ratings were IMDb, and IMDb ratings are on a 1-10 scale. Plex Meta Manager doesn't "know" where those numbers are from, it just does what it's told to do and places the value (critic/audience/user) in that rating box. @@ -117,7 +117,7 @@ When the above is run you see this result: Now let's actually update the ratings and push some numbers into those boxes using library operations. We'll start with making that user rating accurate: -??? example "Click to see the updated config" +??? example "Updated config (click to expand)" ```yaml libraries: @@ -146,7 +146,7 @@ This will put the actual IMDb rating value, retrieved from IMDb, into the "user" After that has been run, we see: - ![](ratings/ratings-07.png) + ![](images/ratings-07.png) * The IMDb Rating Overlay on the poster matches the rating from the IMDb page for Star Wars. * The number of stars has also changed to 4 stars. (since `8.6` split in half is `4.3` and then rounded down to the nearest half gives you 4 stars) @@ -155,7 +155,7 @@ After that has been run, we see: Now let's update the critic and audience ratings to some different ratings: -??? example "Click to see the updated config" +??? example "Updated config (click to expand)" ```yaml libraries: @@ -182,7 +182,7 @@ Now let's update the critic and audience ratings to some different ratings: Running the above will put the Trakt User's personal rating into the critic box and the TMDb rating into the audience box. Note that we haven't changed the rating images yet. - ![](ratings/ratings-08.png) + ![](images/ratings-08.png) * Critic rating matches the trakt personal user rating of `6` which is displayed as `60%`: * Audience rating matches the TMDb rating of `82%`. @@ -204,7 +204,7 @@ The log will show Plex Meta Manager updating those values. Let's change the Trakt rating to that trakt public rating of `85%` instead, which is available via MDbList: -??? example "Click to see the updated config" +??? example "Updated config (click to expand)" ```yaml libraries: @@ -231,7 +231,7 @@ Let's change the Trakt rating to that trakt public rating of `85%` instead, whic When the above is run you should get: - ![](ratings/ratings-09.png) + ![](images/ratings-09.png) * Note how the `60%` in `rating1` became `85%` @@ -268,7 +268,7 @@ Now, finally, let's make the poster rating images match the numbers we put in th When the above is run you should get: - ![](ratings/ratings-10.png) + ![](images/ratings-10.png) This config file is the **only linkage** between the ratings we are setting and the icons we want displayed, as we've seen above. diff --git a/docs/pmm/install/guides/scheduling.md b/docs/pmm/guides/scheduling.md similarity index 85% rename from docs/pmm/install/guides/scheduling.md rename to docs/pmm/guides/scheduling.md index e72d076b..eba056f8 100644 --- a/docs/pmm/install/guides/scheduling.md +++ b/docs/pmm/guides/scheduling.md @@ -2,15 +2,15 @@ search: boost: 3 --- -# Scheduling Guide +# Scheduling PMM Runs Guide -Plex Meta Manager is designed to be a background running service that "wakes up" and "sleeps" when it is scheduled to do so. By default unless configured using the [Time to Run Command](../../essentials/environmental.md#time-to-run), Plex Meta Manager expects to run every day at 5AM local time. +Plex Meta Manager is designed to be a background running service that "wakes up" and "sleeps" when it is scheduled to do so. By default unless configured using the [Time to Run Command](../environmental.md#time-to-run), Plex Meta Manager expects to run every day at 5AM local time. Whilst it is possible to have `python plex-meta-manager.py` running in an open window constantly, this is not the recommended approach as it relies on an always-open command window that can be obtrusive to the user. Instead, it is recommended to set an automated scheduling service so that Plex Meta Manager can run in the background when scheduled to without any visible impact to the user (other than the Plex libraries and playlists updating). -**To control how individual parts of Plex Meta Manager are scheduled see the [Schedule detail](../../../builders/details/schedule.md)** +**To control how individual parts of Plex Meta Manager are scheduled see the [Schedule detail](../../config/schedule.md)** IMPORTANT: Every time you see `/path/to` below, it's a placeholder for the path to that directory on *your* system. @@ -19,7 +19,7 @@ IMPORTANT: Every time you see `/path/to` below, it's a placeholder for the path When running Plex Meta Manager within docker, the session will resume after a system reboot (assuming Docker is set to start at system startup, which is the default) and Plex Meta Manager will run in the background at all times. - There's a [Docker Walkthrough](docker.md) with more detailed instructions on setting up Plex Meta Manager within docker. The simplest command to facilitate a docker run is: + There's a [Docker Walkthrough](../install/docker.md) with more detailed instructions on setting up Plex Meta Manager within docker. The simplest command to facilitate a docker run is: ``` docker run -d \ @@ -39,11 +39,11 @@ IMPORTANT: Every time you see `/path/to` below, it's a placeholder for the path This will run Plex Meta Manager in the background persistently until it is stopped by the user. While the docker container will be persistently running, Plex Meta Manager will not begin the run until the scheduled time. - Further customizations of the docker run command can be used to specify set times to run Plex Meta Manager, further information on this and other Run Commands can be found [here](../../essentials/environmental.md#time-to-run) + Further customizations of the docker run command can be used to specify set times to run Plex Meta Manager, further information on this and other Run Commands can be found [here](../environmental.md#time-to-run) === "Windows Task Scheduler" - Windows Task Scheduler is advised for those who followed the Windows instructions in the [Local Walkthrough Guides](local.md) and/or do not want to run Plex Meta Manager within docker. + Windows Task Scheduler is advised for those who followed the Windows instructions in the [Local Walkthrough Guides](../install/local.md) and/or do not want to run Plex Meta Manager within docker. Windows Task Scheduler allows the user to run commands and services at scheduled times and intervals. @@ -53,7 +53,7 @@ IMPORTANT: Every time you see `/path/to` below, it's a placeholder for the path These will be explained further down this page. - These guides assume the user has followed the Windows instructions in the [Local Walkthrough Guides](local.md) which includes setting up the [virtual environment](local.md#setting-up-a-virtual-environment). Please also ensure to edit any commands to be reflective of the live environment (such as usernames, installation directories). + These guides assume the user has followed the Windows instructions in the [Local Walkthrough Guides](../install/local.md) which includes setting up the [virtual environment](../install/local.md#setting-up-a-virtual-environment). Please also ensure to edit any commands to be reflective of the live environment (such as usernames, installation directories). ### Background Run Scheduled Task @@ -61,7 +61,7 @@ IMPORTANT: Every time you see `/path/to` below, it's a placeholder for the path This is the recommended approach as it allows the user additional control over how and when Plex Meta Manager processes. - If you don't specify a time, the script will run at 5AM each day. You can change this with the [time-to-run](../../essentials/environmental.md#time-to-run) runtime flag. + If you don't specify a time, the script will run at 5AM each day. You can change this with the [time-to-run](../environmental.md#time-to-run) runtime flag. ??? abstract "Background Run Scheduled Task" @@ -77,31 +77,31 @@ IMPORTANT: Every time you see `/path/to` below, it's a placeholder for the path * ** Ensure that Task Scheduler is opened and not Task Manager ** - ![task-scheduler](task-scheduler/02-open-task-scheduler.png) + ![task-scheduler](images/scheduling-02-open-task-scheduler.png) 3. Select "Create a basic task" on the right-hand column - ![task-scheduler](task-scheduler/03-task-scheduler-main.png) + ![task-scheduler](images/scheduling-03-task-scheduler-main.png) 4. Give the task a name, in this example `Background PMM` and then select "Next" - ![task-scheduler](task-scheduler/06-basic-task-02.png) + ![task-scheduler](images/scheduling-06-basic-task-02.png) 5. Choose the frequency that PMM should run and then select "Next", `When the computer starts` is recommended. - ![task-scheduler](task-scheduler/06-basic-task-03.png) + ![task-scheduler](images/scheduling-06-basic-task-03.png) 6. Choose the action "Start a program" and select "Next". - ![task-scheduler](task-scheduler/06-basic-task-04.png) + ![task-scheduler](images/scheduling-06-basic-task-04.png) 7. Click "Browse", Navigate to the PMM directory and choose `waiter.cmd`, which was created in Step 1, then select "Open". NOTE: Your path may vary from the illustration here; navigate to the file you created and saved in Step 1. - ![task-scheduler](task-scheduler/06-basic-task-05.png) + ![task-scheduler](images/scheduling-06-basic-task-05.png) 8. Copy the directory everything up to but not including `waiter.cmd` from the "Program/Script" field, and paste it into the "Start in" field. This is `C:\User\IEUser\Plex-Meta-Manager-1.15.1` in the example below, then select "next". NOTE: Your path may vary from the illustration or example. - ![task-scheduler](task-scheduler/06-basic-task-06.png) + ![task-scheduler](images/scheduling-06-basic-task-06.png) 9. Click "Finish". @@ -130,43 +130,43 @@ IMPORTANT: Every time you see `/path/to` below, it's a placeholder for the path * ** Ensure that Task Scheduler is opened and not Task Manager ** - ![task-scheduler](task-scheduler/02-open-task-scheduler.png) + ![task-scheduler](images/scheduling-02-open-task-scheduler.png) 3. Select "Create a basic task" on the right-hand column - ![task-scheduler](task-scheduler/03-task-scheduler-main.png) + ![task-scheduler](images/scheduling-03-task-scheduler-main.png) 4. Give the task a name, in this example `Run PMM` and then select "Next" - ![task-scheduler](task-scheduler/04-basic-task-01.png) + ![task-scheduler](images/scheduling-04-basic-task-01.png) 5. Choose the frequency that PMM should run and then select "Next", `Daily` is recommended. - ![task-scheduler](task-scheduler/04-basic-task-02.png) + ![task-scheduler](images/scheduling-04-basic-task-02.png) 6. Specify the first date and time at which PMM should run and then select "Next". - ![task-scheduler](task-scheduler/04-basic-task-03.png) + ![task-scheduler](images/scheduling-04-basic-task-03.png) 7. Choose the action "Start a program" and select "Next". - ![task-scheduler](task-scheduler/04-basic-task-04.png) + ![task-scheduler](images/scheduling-04-basic-task-04.png) 8. Click "Browse", Navigate to the PMM directory and choose `runner.cmd`, which was created in Step 1, then select "Open". - ![task-scheduler](task-scheduler/04-basic-task-05.png) + ![task-scheduler](images/scheduling-04-basic-task-05.png) 9. Copy the directory everything up to but not including `runner.cmd` from the "Program/Script" field, and paste it into the "Start in" field. This is `C:\User\IEUser\Plex-Meta-Manager-1.15.1` in the example below, then select "next". - ![task-scheduler](task-scheduler/04-basic-task-06.png) + ![task-scheduler](images/scheduling-04-basic-task-06.png) 10. Check "Open the properties dialog" if desired (not required) then select "Finish". - ![task-scheduler](task-scheduler/04-basic-task-07.png) + ![task-scheduler](images/scheduling-04-basic-task-07.png) 11. Click "Task Schedule Library" on the left. The PMM Run task should be visible. - ![task-scheduler](task-scheduler/04-basic-task-09.png) + ![task-scheduler](images/scheduling-04-basic-task-09.png) Plex Meta Manager will now run at the set date/time you selected in Step 6, and will run each subsequent day at the same time. @@ -304,7 +304,7 @@ IMPORTANT: Every time you see `/path/to` below, it's a placeholder for the path Change `/path/to/plex-meta-manager` to reflect where you've installed Plex Meta Manager. - NOTE: This is assuming you created the `pmm-venv` virtual environment as described in the [Local Walkthrough](local.md) + NOTE: This is assuming you created the `pmm-venv` virtual environment as described in the [Local Walkthrough](../install/local.md) Save and close the file. @@ -341,7 +341,7 @@ IMPORTANT: Every time you see `/path/to` below, it's a placeholder for the path This is an example, which does nothing but run the script immediately. If you want to add additional flags you can do so. - NOTE: This is assuming you created the `pmm-venv` virtual environment as described in the [Local Walkthrough](local.md) + NOTE: This is assuming you created the `pmm-venv` virtual environment as described in the [Local Walkthrough](../install/local.md) 2. Open the system crontab for editing: diff --git a/docs/pmm/images/movie-collection-preview.png b/docs/pmm/images/movie-collection-preview.png new file mode 100644 index 00000000..0e0fa302 Binary files /dev/null and b/docs/pmm/images/movie-collection-preview.png differ diff --git a/docs/pmm/images/movie-library-preview.png b/docs/pmm/images/movie-library-preview.png new file mode 100644 index 00000000..3986c19a Binary files /dev/null and b/docs/pmm/images/movie-library-preview.png differ diff --git a/docs/pmm/images/show-collection-preview.png b/docs/pmm/images/show-collection-preview.png new file mode 100644 index 00000000..bef24bf3 Binary files /dev/null and b/docs/pmm/images/show-collection-preview.png differ diff --git a/docs/pmm/images/show-library-preview.png b/docs/pmm/images/show-library-preview.png new file mode 100644 index 00000000..ce98351d Binary files /dev/null and b/docs/pmm/images/show-library-preview.png differ diff --git a/docs/pmm/install/guides/docker.md b/docs/pmm/install/docker.md similarity index 100% rename from docs/pmm/install/guides/docker.md rename to docs/pmm/install/docker.md diff --git a/docs/pmm/install/guides/formula.md b/docs/pmm/install/guides/formula.md deleted file mode 100644 index ae436b1a..00000000 --- a/docs/pmm/install/guides/formula.md +++ /dev/null @@ -1,91 +0,0 @@ -# Formula 1 Metadata Guide - -This is a guide for setting up Formula 1 in Plex using the `f1_season` metadata attribute. - -Most of this guide is taken from a reddit [post](https://www.reddit.com/r/PleX/comments/tdzp8x/formula_1_library_with_automatic_metadata/) written by /u/Toastjuh. - -## Folder structure - -Let's start with the basics: - -* Every Formula 1 season will be a TV Show in Plex. Season 2001, Season 2002, etc. -* Every race will be a Season in Plex. Season 1 will be the Australian GP, Season 2 will be the Bahrain GP etc. -* Every session will be an Episode in Plex. Episode 1 will be Free Practice 1, Episode 2 will be Free Practice 2 etc. - -The folder format is like this: -``` -Formula -> Library Folder -├── Season 2018 -> Folder for each F1 Season -│ ├── 01 - Australian GP -> Folder for each Race in a season -│ ├── 01x10 - Australian GP - Highlights.mkv -│ ├── 01x01 - Australian GP - Free Practice 1.mkv -│ ├── 01x02 - Australian GP - Free Practice 2.mkv -│ ├── 01x03 - Australian GP - Free Practice 3.mkv -│ ├── 01x04 - Australian GP - Pre-Qualifying Buildup.mkv -│ ├── 01x05 - Australian GP - Qualifying Session.mkv -│ ├── 01x06 - Australian GP - Post-Qualyfing Analysis.mkv -│ ├── 01x07 - Australian GP - Pre-Race Buildup.mkv -│ ├── 01x08 - Australian GP - Race Session.mkv -│ ├── 01x09 - Australian GP - Post-Race Analysis.mkv -│ ├── 01x10 - Australian GP - Highlights.mkv -│ ├── 02 - Bahrein GP -│ ├── 02x10 - Bahrein GP - Highlights.mkv -│ ├── 02x01 - Bahrein GP - Free Practice 1.mkv -│ ├── 02x02 - Bahrein GP - Free Practice 2.mkv -│ ├── 02x03 - Bahrein GP - Free Practice 3.mkv -│ ├── 02x04 - Bahrein GP - Pre-Qualifying Buildup.mkv -│ ├── 02x05 - Bahrein GP - Qualifying Session.mkv -│ ├── 02x06 - Bahrein GP - Post-Qualyfing Analysis.mkv -│ ├── 02x07 - Bahrein GP - Pre-Race Buildup.mkv -│ ├── 02x08 - Bahrein GP - Race Session.mkv -│ ├── 02x09 - Bahrein GP - Post-Race Analysis.mkv -│ ├── 02x10 - Bahrein GP - Highlights.mkv -``` - -For weekends with a Sprint race (this example also includes Ted's Notebook segments), the format looks like this: -``` -Formula -> Library Folder -├── Season 2023 -> Folder for each F1 Season -│ ├── 04 - Azerbaijan GP -> Folder for each Race in a season -│ ├── 04x01 - Azerbaijan GP - Pre-Qualifying Buildup.mkv -│ ├── 04x02 - Azerbaijan GP - Qualifying Session.mkv -│ ├── 04x03 - Azerbaijan GP - Post-Qualifying Analysis.mkv -│ ├── 04x04 - Azerbaijan GP - Ted's Qualifying Notebook.mkv -│ ├── 04x05 - Azerbaijan GP - Pre-Sprint Shootout Buildup.mkv -│ ├── 04x06 - Azerbaijan GP - Sprint Shootout Session.mkv -│ ├── 04x07 - Azerbaijan GP - Post-Sprint Shootout Analysis.mkv -│ ├── 04x08 - Azerbaijan GP - Pre-Sprint Race Buildup.mkv -│ ├── 04x09 - Azerbaijan GP - Sprint Race Session.mkv -│ ├── 04x10 - Azerbaijan GP - Post-Sprint Race Analysis.mkv -│ ├── 04x11 - Azerbaijan GP - Ted's Sprint Notebook.mkv -│ ├── 04x12 - Azerbaijan GP - Pre-Race Buildup.mkv -│ ├── 04x13 - Azerbaijan GP - Race Session.mkv -│ ├── 04x14 - Azerbaijan GP - Post-Race Analysis.mkv -│ ├── 04x15 - Azerbaijan GP - Ted's Race Notebook.mkv -``` - -What matters for plex and for pmm. - -* Change the Plex Agent to "Personal Media Shows" for F1 libraries -* The show name can be whatever you want it to be but the pre created collection file will only work if you use just the year numbers. -* The season folder can be called whatever you want as long as plex scans it in with the Season Number matching the race number. -* The episodes must follow plex's naming convention to have them scanned in properly but in order for PMM to update the metadata the files need to be specifically name like above. - -## Collection File - -```yaml -metadata: - Season 2021: - f1_season: 2021 - round_prefix: true - Season 2020: - f1_season: 2020 - round_prefix: true -``` - -* Add `round_prefix: true` to have the race number appended to the beginning of the Race Name. -* Add `shorten_gp: true` to shorten `Grand Prix` to `GP` in all titles. - -Add an entry for every season you want to set the metadata for. The name needs to correspond with the name the season has in Plex! - -The posters of races you can get from https://www.eventartworks.de/ diff --git a/docs/pmm/install/guides/ratings.md b/docs/pmm/install/guides/ratings.md deleted file mode 100644 index c70c26c1..00000000 --- a/docs/pmm/install/guides/ratings.md +++ /dev/null @@ -1,304 +0,0 @@ ---- -search: - boost: 3 ---- -# PMM Ratings Explained - -How do ratings and ratings overlays work in PMM? This Guide will walk through some basics of how ratings work in conjunction with Plex Meta Manager. - -<h4>Basics</h4> - -Each thing in Plex that can have a rating [movie, show, episode, album, track] has three ratings "boxes" or "fields". Critic, Audience, and User. "Box" refers to a conceptual "box" representing a place for Plex to store a value [a "field" in Plex' database]; it does not represent a text box in the UI. - -The Critic and Audience ratings are typically managed by Plex, pulling from whatever you specify as the ratings source for the library; this is what determines the images that are displayed in the Plex UI. The User rating is the star rating assigned by you to the item. - -PMM can insert a broader range of values into those fields than Plex supports natively, then it can leverage those values in overlays and the like. - -It's doing this "behind Plex's back", so there can be some seeming inconsistencies in the way things are displayed in the UI. This guide is intended to clear up some of these things. - -<h4>Setup</h4> - -Here's our starting point if you want to run through this yourself: - -Set up a brand new Library with only one movie in it. Ensure the Ratings source on the library is set to Rotten Tomatoes: - - ![](ratings/ratings-01.png) - -The Plex UI shows the correct ratings and icons for Rotten Tomatoes and is aligned with the Rotten Tomatoes site: - - ![](ratings/ratings-02.png) - -Also note that we have not given this a user rating. - -<h4>Initial Overlay</h4> - -Now let's add rating overlays to the poster. We're going to use the minimal config needed here to illustrate the concepts. - -<details> - <summary>Click to see initial minimal config</summary> - -```yaml -libraries: - One Movie: - overlay_files: - - reapply_overlays: true - - pmm: ratings - template_variables: - rating1: critic - rating1_image: rt_tomato - rating2: audience - rating2_image: rt_popcorn - rating3: user - rating3_image: imdb -``` - -* `rating1`, `rating1_image`, `rating2`, `rating2_image` are set to match the ratings that Plex already has assigned to those fields (critic/audience). The order here is arbitrary. - -* `rating3` is set to be the user rating and it's image (`rating3_image`) is set to IMDb just because we have to pick something. - -* `reapply_overlays` is set to true to ensure that PMM always updates the overlays as we run things. - -* We do not recommend using `reapply_overlays: true` consistently in a live/production environment, make sure to switch this back to `false` when finished. - -</details> - -After PMM is run on this library, you'll get this result: - - ![](ratings/ratings-03.png) - -* PMM has added those two ratings to the poster using the values already stored with the movie. The icons and values are correctly associated simply because we made sure they are in the config file. -* The two ratings match, and there is no IMDb rating icon on the poster since there is no user rating. (no star rating on the right) - -Now we're going to add a user rating by clicking the middle star on the right for a rating of 3/5: - - ![](ratings/ratings-04.png) - -Now just run PMM again without changing anything else and the user rating overlay will appear: - - ![](ratings/ratings-05.png) - -* PMM added the third rating overlay, since there is now a value in the user rating. -* It gave it an IMDb icon because we told it to in the config file. ([Why does it say 250 instead of IMDb?](#why-do-different-images-appear-for-the-same-source)) -* It's displaying 6.0 since 3 stars on a 5-star scale is 60%. - -<h4>Change Rating Image</h4> - -You and I both know that the IMDb rating isn't 6.0, but PMM is just doing what it's told. Nobody but us humans know where those numbers come from. As an example, let's change the icons to "prove" that PMM doesn't know or care: - -<details> - <summary>Click to see the updated config</summary> - -```yaml -libraries: - One Movie: - overlay_files: - - reapply_overlays: true - - pmm: ratings - template_variables: - rating1: critic - rating1_image: imdb - rating2: audience - rating2_image: imdb - rating3: user - rating3_image: imdb -``` - -* `rating1_image` and `rating2_image` were both changed from `rt_score` and `rt_popcorn` respectively to `imdb` - -* We do not recommend using `reapply_overlays: true` consistently in a live/production environment, make sure to switch this back to `false` when finished. - -</details> - -When the above is run you see this result: - - ![](ratings/ratings-06.png) - -* Three different ratings on the poster, all IMDb; All while the Plex UI still shows RT icons. -* Note that the existing RT ratings numbers (`93%` and `96%`) display on the poster as `9.3` and `9.6`. This is happening because we just told PMM that those ratings were IMDb, and IMDb ratings are on a 1-10 scale. PMM doesn't "know" where those numbers are from, it just does what it's told to do and places the value (critic/audience/user) in that rating box. -* That first overlay showing an IMDb rating of `9.3` is not evidence that PMM pulled the wrong IMDb rating; it just shows that it has been told to display the number in the critic rating box (whatever that number is) as an IMDb rating. All three of those overlays mean the same thing; PMM read a number from a field and stuck it on the poster formatted as requested. - -<h4>Update User Ratings</h4> - -Now let's actually update the ratings and push some numbers into those boxes using library operations. We'll start with making that user rating accurate: - -<details> - <summary>Click to see the updated config</summary> - -```yaml -libraries: - One Movie: - overlay_files: - - reapply_overlays: true - - pmm: ratings - template_variables: - rating1: critic - rating1_image: rt_tomato - rating2: audience - rating2_image: rt_popcorn - rating3: user - rating3_image: imdb - operations: - mass_user_rating_update: imdb -``` - -* `operations` with the attribute `mass_user_rating_update` set to `imdb` is added. - -* `rating1_image` and `rating2_image` were both changed back to `rt_score` and `rt_popcorn` respectively from `imdb` - -* We do not recommend using `reapply_overlays: true` consistently in a live/production environment, make sure to switch this back to `false` when finished. - -</details> - -This will put the actual IMDb rating value, retrieved from IMDb, into the "user" rating field. - -After that has been run, we see: - - ![](ratings/ratings-07.png) - -* The IMDb Rating Overlay on the poster matches the rating from the IMDb page for Star Wars. -* The number of stars has also changed to 4 stars. (since `8.6` split in half is `4.3` and then rounded down to the nearest half gives you 4 stars) - -<h4>Update Critic & Audience Ratings</h4> - -Now let's update the critic and audience ratings to some different ratings: - -<details> - <summary>Click to see the updated config</summary> - -```yaml -libraries: - One Movie: - overlay_files: - - reapply_overlays: true - - pmm: ratings - template_variables: - rating1: critic - rating1_image: rt_tomato - rating2: audience - rating2_image: rt_popcorn - rating3: user - rating3_image: imdb - operations: - mass_critic_rating_update: trakt_user - mass_audience_rating_update: tmdb - mass_user_rating_update: imdb -``` - -* under `operations` the attribute `mass_critic_rating_update` set to `trakt_user` and `mass_audience_rating_update` set to `tmdb` are added. - -* We do not recommend using `reapply_overlays: true` consistently in a live/production environment, make sure to switch this back to `false` when finished. - -</details> - -Running the above will put the Trakt User's personal rating into the critic box and the TMDb rating into the audience box. Note that we haven't changed the rating images yet. - - ![](ratings/ratings-08.png) - -* Critic rating matches the trakt personal user rating of `6` which is displayed as `60%`: -* Audience rating matches the TMDb rating of `82%`. -* Note how the values have changed dramatically and all match between the overlay, plex ratings, and external sites. - -The log will show PMM updating those values. - -``` -| Processing: 1/1 Star Wars: Episode IV - A New Hope | -| Batch Edits | -| Audience Rating | 8.2 | -| Critic Rating | 6.0 | -``` - -* And the poster reflects those numbers, though with the wrong icons, since that's what **PMM has been told to do**. -* The Plex UI still shows RT icons, and it always will, even though the numbers displayed are no longer RT ratings. Plex has no idea. - -<h4>Use Trakt Rating</h4> - -Let's change the Trakt rating to that trakt public rating of `85%` instead, which is available via MDbList: - -<details> - <summary>Click to see the updated config</summary> - -```yaml -libraries: - One Movie: - overlay_files: - - reapply_overlays: true - - pmm: ratings - template_variables: - rating1: critic - rating1_image: rt_tomato - rating2: audience - rating2_image: rt_popcorn - rating3: user - rating3_image: imdb - operations: - mass_critic_rating_update: mdb_trakt - mass_audience_rating_update: tmdb - mass_user_rating_update: imdb -``` - -* under `operations` the attribute `mass_critic_rating_update` was changed to `mdb_trakt` from `trakt_user`. (This step requires MDBList to be configured) - -* We do not recommend using `reapply_overlays: true` consistently in a live/production environment, make sure to switch this back to `false` when finished. - -</details> - -When the above is run you should get: - - ![](ratings/ratings-09.png) - -* Note how the `60%` in `rating1` became `85%` - -<h4>Use Proper Images</h4> - -Now, finally, let's make the poster rating images match the numbers we put in there: - -<details> - <summary>Click to see the updated config</summary> - -```yaml -libraries: - One Movie: - overlay_files: - - reapply_overlays: true - - pmm: ratings - template_variables: - rating1: critic - rating1_image: trakt - rating2: audience - rating2_image: tmdb - rating3: user - rating3_image: imdb - operations: - mass_critic_rating_update: mdb_trakt - mass_audience_rating_update: tmdb - mass_user_rating_update: imdb -``` - -* `rating1_image` was changed to `trakt` from `rt_score` - -* `rating2_image` was changed to `tmdb` from `rt_popcorn` - -* We do not recommend using `reapply_overlays: true` consistently in a live/production environment, make sure to switch this back to `false` when finished. - -</details> - -When the above is run you should get: - - ![](ratings/ratings-10.png) - -This config file is the **only linkage** between the ratings we are setting and the icons we want displayed, as we've seen above. - -You can see that the Plex UI still shows the RT icons with the Trakt and TMDb numbers we put into the relevant fields, since again, it has no idea those numbers got changed behind its back. - -The poster displays the correct icons because we told PMM to do so in the config file. - -## Why do different Images appear for the same source? - -As seen in the Images above the IMDb rating image says `250` instead of `IMDb` and the Rotten Tomatoes rating images has the certified fresh logo vs their normal logo. - -This is because the Star Wars: Episode IV - A New Hope is in the IMDb Top 250 list as well as being Certified Fresh by Rotten Tomatoes and that gets reflected by the rating image. - - - - - diff --git a/docs/pmm/install/guides/ratings/ratings-01.png b/docs/pmm/install/guides/ratings/ratings-01.png deleted file mode 100644 index 2b88f714..00000000 Binary files a/docs/pmm/install/guides/ratings/ratings-01.png and /dev/null differ diff --git a/docs/pmm/install/guides/ratings/ratings-02.png b/docs/pmm/install/guides/ratings/ratings-02.png deleted file mode 100644 index e6adca7e..00000000 Binary files a/docs/pmm/install/guides/ratings/ratings-02.png and /dev/null differ diff --git a/docs/pmm/install/guides/ratings/ratings-03.png b/docs/pmm/install/guides/ratings/ratings-03.png deleted file mode 100644 index 1583d6c6..00000000 Binary files a/docs/pmm/install/guides/ratings/ratings-03.png and /dev/null differ diff --git a/docs/pmm/install/guides/ratings/ratings-04.png b/docs/pmm/install/guides/ratings/ratings-04.png deleted file mode 100644 index 768e046e..00000000 Binary files a/docs/pmm/install/guides/ratings/ratings-04.png and /dev/null differ diff --git a/docs/pmm/install/guides/ratings/ratings-05.png b/docs/pmm/install/guides/ratings/ratings-05.png deleted file mode 100644 index 02947827..00000000 Binary files a/docs/pmm/install/guides/ratings/ratings-05.png and /dev/null differ diff --git a/docs/pmm/install/guides/ratings/ratings-06.png b/docs/pmm/install/guides/ratings/ratings-06.png deleted file mode 100644 index 47da8104..00000000 Binary files a/docs/pmm/install/guides/ratings/ratings-06.png and /dev/null differ diff --git a/docs/pmm/install/guides/ratings/ratings-07.png b/docs/pmm/install/guides/ratings/ratings-07.png deleted file mode 100644 index 04f1c052..00000000 Binary files a/docs/pmm/install/guides/ratings/ratings-07.png and /dev/null differ diff --git a/docs/pmm/install/guides/ratings/ratings-08.png b/docs/pmm/install/guides/ratings/ratings-08.png deleted file mode 100644 index ced62d07..00000000 Binary files a/docs/pmm/install/guides/ratings/ratings-08.png and /dev/null differ diff --git a/docs/pmm/install/guides/ratings/ratings-09.png b/docs/pmm/install/guides/ratings/ratings-09.png deleted file mode 100644 index 8dd808c3..00000000 Binary files a/docs/pmm/install/guides/ratings/ratings-09.png and /dev/null differ diff --git a/docs/pmm/install/guides/ratings/ratings-10.png b/docs/pmm/install/guides/ratings/ratings-10.png deleted file mode 100644 index f422614f..00000000 Binary files a/docs/pmm/install/guides/ratings/ratings-10.png and /dev/null differ diff --git a/docs/pmm/install/guides/separators.jpg b/docs/pmm/install/guides/separators.jpg deleted file mode 100644 index 848cac70..00000000 Binary files a/docs/pmm/install/guides/separators.jpg and /dev/null differ diff --git a/docs/pmm/install/guides/yaml.md b/docs/pmm/install/guides/yaml.md deleted file mode 100644 index 1c3220e7..00000000 --- a/docs/pmm/install/guides/yaml.md +++ /dev/null @@ -1,257 +0,0 @@ -# YAML Tutorial - -All of Plex Meta Manager's Config, Metadata, Overlay, and Playlist Files are written in the YAML data structure. - -This tutorial will help you understand the specific parts of the files. - -## Example YAML File - -```yaml -libraries: - Movies: - collection_files: - - pmm: basic - - pmm: imdb - overlay_files: - - pmm: ribbon - template_variables: - use_metacritic: false - use_common: false - TV Shows: - collection_files: - - pmm: basic - - pmm: imdb - overlay_files: - - pmm: ribbon -settings: - cache: true - cache_expiration: 60 - asset_directory: - - config/movie assets - - config/tv assets -``` - -## Basic YAML Syntax - -A YAML format primarily uses 3 node types: - -1. Dictionaries/Mappings: - The content of a mapping node is an unordered set of key/value node pairs, with the restriction that each of the keys is unique. YAML places no further restrictions on the nodes. - -2. Lists/Arrays: - The content of a list node is an ordered series of zero or more nodes. In particular, a sequence may contain the same node more than once. It could even contain itself. - -3. Literals (Strings, numbers, boolean, etc.): - The content of a scalar node is an opaque datum that can be presented as a series of zero or more Unicode characters. - -Let us try and identify where these appear in the sample YAML file we saw earlier. - -```yaml -# Strats with a top level Dictionary with keys `libraries` and `settings` -libraries: # Value is a Dictionary with keys `Movies` and `TV Shows` - Movies: # Value is a Dictionary with keys `collection_files` and `overlay_files` - collection_files: # Value is a List with two Items - - pmm: basic # List Item is a Dictionary with one key pair whose value is a String Literal - - pmm: imdb # List Item is a Dictionary with one key pair whose value is a String Literal - overlay_files: # Value is a List with one Item - - pmm: ribbon # List Item is a Dictionary with keys `pmm` and `template_variables` with `pmm`'s value a String Literal - template_variables: # Value is a Dictionary with keys `use_metacritic` and `use_common` - use_metacritic: false # Value is a Boolean Literal - use_common: false # Value is a Boolean Literal - TV Shows: # Value is a Dictionary with keys `collection_files` and `overlay_files` - collection_files: # Value is a List with two Items - - pmm: basic # List Item is a Dictionary with one key pair whose value is a String Literal - - pmm: imdb # List Item is a Dictionary with one key pair whose value is a String Literal - overlay_files: # Value is a List with one Item - - pmm: ribbon # List Item is a Dictionary with one key pair whose value is a String Literal -settings: # Value is a Dictionary with keys `cache` and `cache_expiration` - cache: true # Value is a Boolean Literal - cache_expiration: 60 # Value is a Number Literal - asset_directory: # Value is a List with two Items - - config/movie assets # List Item is a String Literal - - config/tv assets # List Item is a String Literal -``` - -## Indentation - -A YAML file relies on whitespace and indentation to indicate nesting. The number of spaces used for indentation doesn’t matter as long as they are consistent. - -**It is critical to note that tab characters cannot be used for indentation in YAML files; only spaces can be used.** - -```yaml -libraries: # Nesting Level 1 - Movies: # Nesting Level 2 - collection_files: # Nesting Level 3 - - pmm: basic # Nesting Level 4 - - pmm: imdb # Nesting Level 4 - overlay_files: # Nesting Level 3 - - pmm: ribbon # Nesting Level 4 - template_variables: # Nesting Level 5 - use_metacritic: false # Nesting Level 6 - use_common: false # Nesting Level 6 - TV Shows: # Nesting Level 2 - collection_files: # Nesting Level 3 - - pmm: basic # Nesting Level 4 - - pmm: imdb # Nesting Level 4 - overlay_files: # Nesting Level 3 - - pmm: ribbon # Nesting Level 4 -settings: # Nesting Level 1 - cache: true # Nesting Level 2 - cache_expiration: 60 # Nesting Level 2 -``` - -## Dictionaries - -Dictionaries are used to associate key/value pairs that are unordered. Dictionaries can be nested by increasing the indentation, or new dictionaries can be created at the same level by resolving the previous one. - -```yaml -cache: true -cache_expiration: 60 -``` - -The "keys" are `cache` and `cache_expiration` and the "values" are `true` and `60` respectively. - -### In-Line Dictionaries - -you can represent a dictionary on a single line by using `{` and `}` - -```yaml -settings: {cache: true, cache_expiration: 60} -``` - -is equivalent to - -```yaml -settings: - cache: true - cache_expiration: 60 -``` - -## Lists - -Lists in YAML are represented by using the hyphen (-) and space. They are ordered and can be embedded inside a map using indentation. - -```yaml -asset_directory: - - config/movie assets - - config/tv assets -``` - -The first item in the list is `config/movie assets` and the second is `config/tv assets`. - -### In-Line Lists - -you can represent a list on a single line by using `[` and `]` - -```yaml -settings: - asset_directory: [config/movie assets, config/tv assets] -``` - -is equivalent to - -```yaml -settings: - asset_directory: - - config/movie assets - - config/tv assets -``` - -## Literals - -Literals can come in multiple types: - -* String: any sequence of characters - -* Number: any representation of a number - -* Boolean: `true` or `false` - -### String Literals - -The string literals do not require to be quoted. It is only important to quote them when they contain a value that can be mistaken as a special character. - -Here is an example where the string has to be quoted as `&` and `:` are special characters. - -YAML Special Characters: `{`, `}`, `[`, `]`, `,`, `&`, `:`, `*`, `#`, `?`, `|`, `-`, `<`. `>`, `=`, `!`, `%`, `@`, `\` - -There are many occurrences of these special characters where quotes are not needed but if the YAML fails to load it could easily be because one of these are unquoted. - -```yaml -message1: YAML & JSON # breaks as a & is a special character -message2: "YAML & JSON" # Works as the string is quoted -message: 3: YAML # breaks as a : is a special character -"message: 3": YAML # Works as the key string is quoted -``` - -#### Multiline Strings - -Strings can be interpreted as multiline using the pipe (`|`) character. - -```yaml -message: | - this is - a real multiline - message -``` - -This would be read as `this is\na real multiline\nmessage` - -## Comments - -YAML file also supports comments, unlike JSON. A comment starts with #. - -```yaml -# Strats with a top level Dictionary with keys `libraries` and `settings` -libraries: # Value is a Dictionary with keys `Movies` and `TV Shows` -``` - -Everything after `#` on a line is ignored. - -## Anchors and Aliases - -With a lot of configuration, configuration files can become quite large. - -In YAML files, anchors (`&`) and aliases (`*`) are used to avoid duplication. When writing large configurations in YAML, it is common for a specific configuration to be repeated. For example, the vars config is repeated for all three services in the following YAML snippet. - -```yaml -libraries: - Movies: - collection_files: - - pmm: basic - - pmm: imdb - overlay_files: - - pmm: ribbon - template_variables: - use_metacritic: false - use_common: false - TV Shows: - collection_files: - - pmm: basic - - pmm: imdb - overlay_files: - - pmm: ribbon -``` - -As more and more things are repeated for large configuration files, this becomes tedious. - -Anchors and aliases allow us to rewrite the same snippet without having to repeat any configuration. - -Anchors (`&`) are used to define a chunk of configuration, and aliases (`*`) are used to refer to that chunk at a different part of the configuration. - -```yaml -libraries: - Movies: - collection_files: &paths # Anchor called `paths` - - pmm: basic - - pmm: imdb - overlay_files: - - pmm: ribbon - template_variables: - use_metacritic: false - use_common: false - TV Shows: - collection_files: *paths # Alias to call the above `paths` section - overlay_files: - - pmm: ribbon -``` diff --git a/docs/pmm/install/guides/images.md b/docs/pmm/install/images.md similarity index 89% rename from docs/pmm/install/guides/images.md rename to docs/pmm/install/images.md index b0055da0..903b7c82 100644 --- a/docs/pmm/install/guides/images.md +++ b/docs/pmm/install/images.md @@ -28,11 +28,11 @@ If you use the LSIO image you should be aware of the following. The LSIO image: -1. requires absolute paths in the config. /config/Movies.yml, not config/Movies.yml. Because of this most of the examples in the wiki and config repo don't work as-is with lsio. Config files that work outside of docker often fail because of this with an error referring to `/run/s6/services/...`. +1. Requires absolute paths in the config. /config/Movies.yml, not config/Movies.yml. Because of this most of the examples in the wiki and config repo don't work as-is with lsio. Config files that work outside of docker often fail because of this with an error referring to `/run/s6/services/...`. -2. only has `latest` version, no `develop` or `nightly`. If you want to switch to `develop` or `nightly` to try a new feature, they aren't available with LSIO image. +2. Only has `latest` version, no `develop` or `nightly`. If you want to switch to `develop` or `nightly` to try a new feature, they aren't available with LSIO image. -3. doesn't support [runtime flags](../../essentials/environmental.md), only ENV vars. This means that a command like: +3. Doesn't support [runtime flags](../environmental.md), only ENV vars. This means that a command like: ``` docker run -it --rm -v /opt/pmm/config:/config linuxserver/plex-meta-manager --config config/config.yml -r --run-libraries "Movies - 4K DV" @@ -44,7 +44,7 @@ The LSIO image: docker run -it --rm -v /opt/pmm/config:/config -e PMM_CONFIG=/config/config.yml -e PMM_RUN=true -e PMM_LIBRARIES="Movies - 4K DV" linuxserver/plex-meta-manager ``` -4. doesn't do manual runs correctly; they loop over and over. That command in the previous bullet point [which uses `PMM_RUN` to run it right now] will run over and over until you manually kill the container. The same thing using the official image will run once and quit, as expected. +4. Doesn't do manual runs correctly; they loop over and over. That command in the previous bullet point [which uses `PMM_RUN` to run it right now] will run over and over until you manually kill the container. The same thing using the official image will run once and quit, as expected. 5. Resets ownership of entire config dir every run. In tests, the ownership of the config dir and its contents was set to 911:911 with each run. diff --git a/docs/pmm/install/guides/synology/dsm6-01.png b/docs/pmm/install/images/dsm6-01.png similarity index 100% rename from docs/pmm/install/guides/synology/dsm6-01.png rename to docs/pmm/install/images/dsm6-01.png diff --git a/docs/pmm/install/guides/synology/dsm6-02.png b/docs/pmm/install/images/dsm6-02.png similarity index 100% rename from docs/pmm/install/guides/synology/dsm6-02.png rename to docs/pmm/install/images/dsm6-02.png diff --git a/docs/pmm/install/guides/synology/dsm6-03.png b/docs/pmm/install/images/dsm6-03.png similarity index 100% rename from docs/pmm/install/guides/synology/dsm6-03.png rename to docs/pmm/install/images/dsm6-03.png diff --git a/docs/pmm/install/guides/synology/dsm6-04.png b/docs/pmm/install/images/dsm6-04.png similarity index 100% rename from docs/pmm/install/guides/synology/dsm6-04.png rename to docs/pmm/install/images/dsm6-04.png diff --git a/docs/pmm/install/guides/synology/dsm6-05.png b/docs/pmm/install/images/dsm6-05.png similarity index 100% rename from docs/pmm/install/guides/synology/dsm6-05.png rename to docs/pmm/install/images/dsm6-05.png diff --git a/docs/pmm/install/guides/synology/dsm7-01.png b/docs/pmm/install/images/dsm7-01.png similarity index 100% rename from docs/pmm/install/guides/synology/dsm7-01.png rename to docs/pmm/install/images/dsm7-01.png diff --git a/docs/pmm/install/guides/synology/dsm7-02.png b/docs/pmm/install/images/dsm7-02.png similarity index 100% rename from docs/pmm/install/guides/synology/dsm7-02.png rename to docs/pmm/install/images/dsm7-02.png diff --git a/docs/pmm/install/guides/synology/dsm7-03.png b/docs/pmm/install/images/dsm7-03.png similarity index 100% rename from docs/pmm/install/guides/synology/dsm7-03.png rename to docs/pmm/install/images/dsm7-03.png diff --git a/docs/pmm/install/guides/synology/dsm7-04.png b/docs/pmm/install/images/dsm7-04.png similarity index 100% rename from docs/pmm/install/guides/synology/dsm7-04.png rename to docs/pmm/install/images/dsm7-04.png diff --git a/docs/pmm/install/guides/synology/dsm7-05.png b/docs/pmm/install/images/dsm7-05.png similarity index 100% rename from docs/pmm/install/guides/synology/dsm7-05.png rename to docs/pmm/install/images/dsm7-05.png diff --git a/docs/pmm/install/guides/synology/dsm7-06.png b/docs/pmm/install/images/dsm7-06.png similarity index 100% rename from docs/pmm/install/guides/synology/dsm7-06.png rename to docs/pmm/install/images/dsm7-06.png diff --git a/docs/pmm/install/guides/synology/dsm7-07.png b/docs/pmm/install/images/dsm7-07.png similarity index 100% rename from docs/pmm/install/guides/synology/dsm7-07.png rename to docs/pmm/install/images/dsm7-07.png diff --git a/docs/pmm/install/guides/synology/dsm7-08.png b/docs/pmm/install/images/dsm7-08.png similarity index 100% rename from docs/pmm/install/guides/synology/dsm7-08.png rename to docs/pmm/install/images/dsm7-08.png diff --git a/docs/pmm/install/guides/qnap/qnap1.png b/docs/pmm/install/images/qnap1.png similarity index 100% rename from docs/pmm/install/guides/qnap/qnap1.png rename to docs/pmm/install/images/qnap1.png diff --git a/docs/pmm/install/guides/qnap/qnap2.png b/docs/pmm/install/images/qnap2.png similarity index 100% rename from docs/pmm/install/guides/qnap/qnap2.png rename to docs/pmm/install/images/qnap2.png diff --git a/docs/pmm/install/guides/qnap/qnap3-01.png b/docs/pmm/install/images/qnap3-01.png similarity index 100% rename from docs/pmm/install/guides/qnap/qnap3-01.png rename to docs/pmm/install/images/qnap3-01.png diff --git a/docs/pmm/install/guides/qnap/qnap3-02.png b/docs/pmm/install/images/qnap3-02.png similarity index 100% rename from docs/pmm/install/guides/qnap/qnap3-02.png rename to docs/pmm/install/images/qnap3-02.png diff --git a/docs/pmm/install/guides/qnap/qnap3-03.png b/docs/pmm/install/images/qnap3-03.png similarity index 100% rename from docs/pmm/install/guides/qnap/qnap3-03.png rename to docs/pmm/install/images/qnap3-03.png diff --git a/docs/pmm/install/guides/qnap/qnap3-03a.png b/docs/pmm/install/images/qnap3-03a.png similarity index 100% rename from docs/pmm/install/guides/qnap/qnap3-03a.png rename to docs/pmm/install/images/qnap3-03a.png diff --git a/docs/pmm/install/guides/qnap/qnap3-04.png b/docs/pmm/install/images/qnap3-04.png similarity index 100% rename from docs/pmm/install/guides/qnap/qnap3-04.png rename to docs/pmm/install/images/qnap3-04.png diff --git a/docs/pmm/install/guides/qnap/qnap3-05.png b/docs/pmm/install/images/qnap3-05.png similarity index 100% rename from docs/pmm/install/guides/qnap/qnap3-05.png rename to docs/pmm/install/images/qnap3-05.png diff --git a/docs/pmm/install/guides/qnap/qnap3-06.png b/docs/pmm/install/images/qnap3-06.png similarity index 100% rename from docs/pmm/install/guides/qnap/qnap3-06.png rename to docs/pmm/install/images/qnap3-06.png diff --git a/docs/pmm/install/guides/qnap/qnap3-07.png b/docs/pmm/install/images/qnap3-07.png similarity index 100% rename from docs/pmm/install/guides/qnap/qnap3-07.png rename to docs/pmm/install/images/qnap3-07.png diff --git a/docs/pmm/install/guides/qnap/qnap3-08.png b/docs/pmm/install/images/qnap3-08.png similarity index 100% rename from docs/pmm/install/guides/qnap/qnap3-08.png rename to docs/pmm/install/images/qnap3-08.png diff --git a/docs/pmm/install/guides/qnap/qnap3-09.png b/docs/pmm/install/images/qnap3-09.png similarity index 100% rename from docs/pmm/install/guides/qnap/qnap3-09.png rename to docs/pmm/install/images/qnap3-09.png diff --git a/docs/pmm/install/guides/qnap/qnap3-10.png b/docs/pmm/install/images/qnap3-10.png similarity index 100% rename from docs/pmm/install/guides/qnap/qnap3-10.png rename to docs/pmm/install/images/qnap3-10.png diff --git a/docs/pmm/install/guides/qnap/qnap3-11.png b/docs/pmm/install/images/qnap3-11.png similarity index 100% rename from docs/pmm/install/guides/qnap/qnap3-11.png rename to docs/pmm/install/images/qnap3-11.png diff --git a/docs/pmm/install/guides/qnap/qnap3-12.png b/docs/pmm/install/images/qnap3-12.png similarity index 100% rename from docs/pmm/install/guides/qnap/qnap3-12.png rename to docs/pmm/install/images/qnap3-12.png diff --git a/docs/pmm/install/guides/qnap/qnap3-13.png b/docs/pmm/install/images/qnap3-13.png similarity index 100% rename from docs/pmm/install/guides/qnap/qnap3-13.png rename to docs/pmm/install/images/qnap3-13.png diff --git a/docs/pmm/install/guides/qnap/qnap3-14.png b/docs/pmm/install/images/qnap3-14.png similarity index 100% rename from docs/pmm/install/guides/qnap/qnap3-14.png rename to docs/pmm/install/images/qnap3-14.png diff --git a/docs/pmm/install/guides/qnap/qnap3.png b/docs/pmm/install/images/qnap3.png similarity index 100% rename from docs/pmm/install/guides/qnap/qnap3.png rename to docs/pmm/install/images/qnap3.png diff --git a/docs/pmm/install/guides/qnap/qnap4.png b/docs/pmm/install/images/qnap4.png similarity index 100% rename from docs/pmm/install/guides/qnap/qnap4.png rename to docs/pmm/install/images/qnap4.png diff --git a/docs/pmm/install/guides/qnap/qnap5.png b/docs/pmm/install/images/qnap5.png similarity index 100% rename from docs/pmm/install/guides/qnap/qnap5.png rename to docs/pmm/install/images/qnap5.png diff --git a/docs/pmm/install/guides/qnap/qnap6.png b/docs/pmm/install/images/qnap6.png similarity index 100% rename from docs/pmm/install/guides/qnap/qnap6.png rename to docs/pmm/install/images/qnap6.png diff --git a/docs/pmm/install/guides/qnap/qnap7.png b/docs/pmm/install/images/qnap7.png similarity index 100% rename from docs/pmm/install/guides/qnap/qnap7.png rename to docs/pmm/install/images/qnap7.png diff --git a/docs/pmm/install/guides/synology/synology-01.png b/docs/pmm/install/images/synology-01.png similarity index 100% rename from docs/pmm/install/guides/synology/synology-01.png rename to docs/pmm/install/images/synology-01.png diff --git a/docs/pmm/install/guides/synology/synology-02.png b/docs/pmm/install/images/synology-02.png similarity index 100% rename from docs/pmm/install/guides/synology/synology-02.png rename to docs/pmm/install/images/synology-02.png diff --git a/docs/pmm/install/guides/synology/synology-03.png b/docs/pmm/install/images/synology-03.png similarity index 100% rename from docs/pmm/install/guides/synology/synology-03.png rename to docs/pmm/install/images/synology-03.png diff --git a/docs/pmm/install/guides/synology/synology-04.png b/docs/pmm/install/images/synology-04.png similarity index 100% rename from docs/pmm/install/guides/synology/synology-04.png rename to docs/pmm/install/images/synology-04.png diff --git a/docs/pmm/install/guides/synology/synology-05.png b/docs/pmm/install/images/synology-05.png similarity index 100% rename from docs/pmm/install/guides/synology/synology-05.png rename to docs/pmm/install/images/synology-05.png diff --git a/docs/pmm/install/guides/synology/synology-06.png b/docs/pmm/install/images/synology-06.png similarity index 100% rename from docs/pmm/install/guides/synology/synology-06.png rename to docs/pmm/install/images/synology-06.png diff --git a/docs/pmm/install/guides/default-collections.png b/docs/pmm/install/images/wt-default-collections.png similarity index 100% rename from docs/pmm/install/guides/default-collections.png rename to docs/pmm/install/images/wt-default-collections.png diff --git a/docs/pmm/install/guides/finished.png b/docs/pmm/install/images/wt-finished.png similarity index 100% rename from docs/pmm/install/guides/finished.png rename to docs/pmm/install/images/wt-finished.png diff --git a/docs/pmm/install/guides/git-install.png b/docs/pmm/install/images/wt-git-install.png similarity index 100% rename from docs/pmm/install/guides/git-install.png rename to docs/pmm/install/images/wt-git-install.png diff --git a/docs/pmm/install/guides/movie-lib-name.png b/docs/pmm/install/images/wt-movie-lib-name.png similarity index 100% rename from docs/pmm/install/guides/movie-lib-name.png rename to docs/pmm/install/images/wt-movie-lib-name.png diff --git a/docs/pmm/install/guides/overlays.png b/docs/pmm/install/images/wt-overlays.png similarity index 100% rename from docs/pmm/install/guides/overlays.png rename to docs/pmm/install/images/wt-overlays.png diff --git a/docs/pmm/install/guides/kubernetes.md b/docs/pmm/install/kubernetes.md similarity index 94% rename from docs/pmm/install/guides/kubernetes.md rename to docs/pmm/install/kubernetes.md index 50e2d79a..77fe1378 100644 --- a/docs/pmm/install/guides/kubernetes.md +++ b/docs/pmm/install/kubernetes.md @@ -112,7 +112,7 @@ minimum requirement is the PMM config, but the example here assumes you have a s Here's a config map for the `config.yml` file for PMM. Note there are many placeholders that will need update based on your environment and needs. -Follow the [Trakt Attributes](../../../config/trakt.md) directions for generating the OAuth authorization +Follow the [Trakt Attributes](../../config/trakt.md) directions for generating the OAuth authorization values. ``` @@ -257,8 +257,8 @@ data: Most Popular: smart_label: originally_available.desc sync_mode: sync - imdb_list: - url: https://www.imdb.com/search/title/?title_type=tv_series,tv_miniseries + imdb_search: + type: tv_series, tv_mini_series limit: 10 summary: The 10 most popular shows across the internet sonarr_add_missing: true @@ -362,9 +362,6 @@ spec: ### Templatizing your configuration -This example will (re)generate the IMDb list URL and include the current date as the end date for the `release_date` value. -`https://www.imdb.com/search/title/?title_type=tv_series,tv_miniseries&release_date=1980-01-01,{{ now().strftime('%Y-%m-%d') }}` - `{{ now().strftime('%Y-%m-%d') }}` is the Jinja code, which when rendered will be replaced with the current date in YYYY-MM-DD format. `now()` is a special method defined in the Python code running in the init container to allow access to the current date, so changing the output format is as simple as changing the string in `strftime` to your desired @@ -378,8 +375,10 @@ data: Most Popular: smart_label: originally_available.desc sync_mode: sync - imdb_list: - url: https://www.imdb.com/search/title/?title_type=tv_series,tv_miniseries&release_date=1980-01-01,{{ now().strftime('%Y-%m-%d') }} + imdb_search: + type: tv_series, tv_mini_series + release.after: 1979-12-31 + release.before: {{ now().strftime('%Y-%m-%d') }} limit: 10 summary: The 10 most popular shows across the internet sonarr_add_missing: true diff --git a/docs/pmm/install/guides/local.md b/docs/pmm/install/local.md similarity index 99% rename from docs/pmm/install/guides/local.md rename to docs/pmm/install/local.md index b0a1d5af..f980d729 100644 --- a/docs/pmm/install/guides/local.md +++ b/docs/pmm/install/local.md @@ -146,7 +146,7 @@ If this doesn't return a version number, you'll need to get git installed. Run the install; you can probably just accept the defaults and click through except for the step that asks you to choose an editor; you probably want to choose something other than the default there: - ![Git Install](git-install.png) + ![Git Install](images/wt-git-install.png) This install comes with its own command line interface. **Do not use this interface in this walkthrough**. Continue to do everything here in Powershell. diff --git a/docs/pmm/install/installation.md b/docs/pmm/install/overview.md similarity index 90% rename from docs/pmm/install/installation.md rename to docs/pmm/install/overview.md index aab01844..e1e25fc8 100644 --- a/docs/pmm/install/installation.md +++ b/docs/pmm/install/overview.md @@ -23,23 +23,23 @@ The installation overviews on this page are aimed at users who have previous exp For those who need full installation walkthroughs, please refer to the following walkthrough guides: - * [Local Walkthrough](guides/local.md) - follow this if you are running the script directly on Windows, OS X, or Linux - * [Docker Walkthrough](guides/docker.md) - this discusses using Docker at the command line + * [Local Walkthrough](local.md) - follow this if you are running the script directly on Windows, OS X, or Linux + * [Docker Walkthrough](docker.md) - this discusses using Docker at the command line If you are using unRAID, Kubernetes, QNAP, or Synology refer to the following basic guide to Docker container setup for each system: -**this doesn't cover the PMM setup specifics found in the guides above** +**this doesn't cover the PMM setup specifics found in the guides above with regard to creating the config file and collection file, so you may want to go through the [Docker Walkthrough](docker.md) first on your computer to gain that understanding.** - * [unRAID Walkthrough](guides/unraid.md) - * [Kubernetes Walkthrough](guides/kubernetes.md) - * [QNAP Walkthrough](guides/qnap.md) - * [Synology Walkthrough](guides/synology.md) + * [unRAID Walkthrough](unraid.md) + * [Kubernetes Walkthrough](kubernetes.md) + * [QNAP Walkthrough](qnap.md) + * [Synology Walkthrough](synology.md) ## Local Install Overview Plex Meta Manager is compatible with Python 3.8 through 3.11. Later versions may function but are untested. -These are high-level steps which assume the user has knowledge of python and pip, and the general ability to troubleshoot issues. For a detailed step-by-step walkthrough, refer to the [Local Walkthrough](guides/local.md) guide. +These are high-level steps which assume the user has knowledge of python and pip, and the general ability to troubleshoot issues. For a detailed step-by-step walkthrough, refer to the [Local Walkthrough](local.md) guide. 1. Clone or [download and unzip](https://github.com/meisnate12/Plex-Meta-Manager/archive/refs/heads/master.zip) the repo. @@ -111,7 +111,7 @@ A `Dockerfile` is included within the GitHub repository for those who require it ## Customizing the docker-compose file with runtime flags and ENV vars -Plex Meta Manager's behavior can be modified in a variety of ways using either runtime flags or environnment variables. These flags and vars are detailed [here](../essentials/environmental.md). +Plex Meta Manager's behavior can be modified in a variety of ways using either runtime flags or environnment variables. These flags and vars are detailed [here](../environmental.md). This is optional, and is not necessary to run PMM. Many if not most users will have no reason to do this and can use something more like the basic docker-compose just above. @@ -142,4 +142,4 @@ services: `- PMM_LIBRARIES=Movies` tells PMM to process only a library called "Movies" -Again, a list of the available environment variables can be found [here](../essentials/environmental.md). +Again, a list of the available environment variables can be found [here](../environmental.md). diff --git a/docs/pmm/install/guides/qnap.md b/docs/pmm/install/qnap.md similarity index 84% rename from docs/pmm/install/guides/qnap.md rename to docs/pmm/install/qnap.md index 4ccdf5e1..dcccc7c5 100644 --- a/docs/pmm/install/guides/qnap.md +++ b/docs/pmm/install/qnap.md @@ -14,11 +14,11 @@ Detailed steps: 1. Open Container Station; click “Images” - ![](qnap/qnap3-01.png) + ![](images/qnap3-01.png) 2. Select “Pull” from the top-right - ![](qnap/qnap3-02.png) + ![](images/qnap3-02.png) 3. Leave Mode set to “Basic Mode” @@ -34,39 +34,39 @@ Detailed steps: 4. Then click Pull. - ![](qnap/qnap3-03.png) + ![](images/qnap3-03.png) Note: You can repeat this step for each of the different versions and you’ll end up with this: - ![](qnap/qnap3-03a.png) + ![](images/qnap3-03a.png) After the pull is complete the image(s) will now be available for use. 5. From the "Images" menu under the "Actions" column click the "play" button to bring up the “Create Container” option. - ![](qnap/qnap3-04.png) + ![](images/qnap3-04.png) 6. "Create Container" Step 1: "Select Image" – you’ve already done this so just click "Next". - ![](qnap/qnap3-05.png) + ![](images/qnap3-05.png) 7. "Create Container" Step 2: "Configure Container" - you can edit the name if you wish. From here on you’ll be working in the Advanced Settings sub-menu. Click on "Advanced Settings". - ![](qnap/qnap3-06.png) + ![](images/qnap3-06.png) - 8. You can add [command-line switches](../../essentials/environmental.md) to the "Command" field here. Do not edit the "Entrypoint" field. + 8. You can add [command-line switches](../environmental.md) to the "Command" field here. Do not edit the "Entrypoint" field. - ![](qnap/qnap3-07.png) + ![](images/qnap3-07.png) For example, if you wanted to run the collections you have defined as tests, add the `--run-tests` command-line flag: - ![](qnap/qnap3-08.png) + ![](images/qnap3-08.png) Generally speaking, editing these is not recommended as it is easy to render the container non-functional by doing so. It is more typical in Docker contexts to set these things with environment variables. - Anything you can do via command-line arguments can be done with [Environment Variables](../../essentials/environmental.md), which is more typical in Docker environments. + Anything you can do via command-line arguments can be done with [Environment Variables](../environmental.md), which is more typical in Docker environments. For example, you could add an environment variable named `PMM_TESTS` with a value of `true` to run the collections you have defined as tests. @@ -74,27 +74,27 @@ Detailed steps: 8. Select "Storage": - ![](qnap/qnap3-09.png) + ![](images/qnap3-09.png) 9. Click the Trash Can icon to remove the default Storage Mapping: - ![](qnap/qnap3-10.png) + ![](images/qnap3-10.png) 10. Click "Add Volume" then choose “Bind Mount Host Path”: - ![](qnap/qnap3-11.png) + ![](images/qnap3-11.png) 11. Select the Yellow Folder icon - ![](qnap/qnap3-12.png) + ![](images/qnap3-12.png) “Select Host Path” will appear as seen below, letting you select the folder you want to use. - ![](qnap/qnap3-13.png) + ![](images/qnap3-13.png) After selecting your folder and choosing "Apply" the "Host" path will be filled in. For the "Container" path you MUST use `/config`: - ![](qnap/qnap3-14.png) + ![](images/qnap3-14.png) 12. Select Next to advance to “Step 3 Summary” @@ -106,13 +106,13 @@ Detailed steps: 1. Open Container Station; click "Create" in the left column. - ![](qnap/qnap1.png) + ![](images/qnap1.png) 2. Search for `meisnate12/plex-meta-manager`. On the "Docker Hub" tab you should see the image; click on it and click "Install". - ![](qnap/qnap2.png) + ![](images/qnap2.png) 3. Select the version you want to run from the dropdown and click "Next". @@ -121,7 +121,7 @@ Detailed steps: - `develop`: development release, contains new features that haven't made it to latest yet, but may have minor problems - `nightly`: bleeding-edge development version; latest fixes go here, but breakage should be expected. - ![](qnap/qnap3.png) + ![](images/qnap3.png) 4. Change the container name if you wish. @@ -133,11 +133,11 @@ Detailed steps: Typically, in a Docker environment, this sort of thing is done via Environment Variables [the next step here]. Editing the "Entrypoint" is not recommended, as it's easy to render the container non-functional if you are not sure what you're doing. - Information on available command line arguments can be found [here](../../essentials/environmental.md) + Information on available command line arguments can be found [here](../environmental.md) Click "Advanced Settings >>" - ![](qnap/qnap4.png) + ![](images/qnap4.png) 5. Environment Variables can be added here: @@ -145,9 +145,9 @@ Detailed steps: For example, you could add an environment variable named `PMM_RUN` with a value of `True` to make PMM run immediately when the container starts up. - Information on available Environment Variables can be found [here](../../essentials/environmental.md) + Information on available Environment Variables can be found [here](../environmental.md) - ![](qnap/qnap5.png) + ![](images/qnap5.png) 6. Click Shared Folders Tab: @@ -159,6 +159,6 @@ Detailed steps: When finished, click "Create". - ![](qnap/qnap7.png) + ![](images/qnap7.png) diff --git a/docs/pmm/install/guides/synology.md b/docs/pmm/install/synology.md similarity index 80% rename from docs/pmm/install/guides/synology.md rename to docs/pmm/install/synology.md index 130e8bc5..9bfd29c2 100644 --- a/docs/pmm/install/guides/synology.md +++ b/docs/pmm/install/synology.md @@ -6,17 +6,17 @@ This is a quick walkthrough of setting up the Plex-Meta-Manager Docker container 1. Open the Package Center app from the Synology Web GUI. - ![Prerequisite 1](synology/synology-01.png) + ![Prerequisite 1](images/synology-01.png) 2. Type `docker` in the search bar and once it comes up, click "Install" to add Docker. Then click "Open" to bring it up. - ![Prerequisite 2](synology/synology-02.png) + ![Prerequisite 2](images/synology-02.png) ## Installing Plex Meta Manager 1. Open the Docker app. - ![Step 1](synology/synology-03.png) + ![Step 1](images/synology-03.png) 2. Search and Download the Image. @@ -25,7 +25,7 @@ This is a quick walkthrough of setting up the Plex-Meta-Manager Docker container 3. Select the Repository. 4. Click Download. - ![Step 2](synology/synology-04.png) + ![Step 2](images/synology-04.png) 3. Select the tag you want to run from the dropdown and click "Select." @@ -35,7 +35,7 @@ This is a quick walkthrough of setting up the Plex-Meta-Manager Docker container - `develop` - development release, contains new features that haven't made it to latest yet, but may have minor problems. - `nightly` - bleeding-edge development version; latest fixes go here, but breakage should be expected. - ![Step 3](synology/synology-05.png) + ![Step 3](images/synology-05.png) 4. Select the Image and Create a Container. @@ -43,7 +43,7 @@ This is a quick walkthrough of setting up the Plex-Meta-Manager Docker container 2. Select the `meisnate12/plex-meta-manager` Image. 3. Click Launch. - ![Step 4](synology/synology-06.png) + ![Step 4](images/synology-06.png) **From this point on the setup looks a little different depending on if the Synology is running DiskStation Manager 7 or DiskStation Manager 6.** @@ -51,55 +51,55 @@ This is a quick walkthrough of setting up the Plex-Meta-Manager Docker container 5. Specify your docker network type. Then click "Next". - ![](synology/dsm7-01.png) + ![](images/dsm7-01.png) 6. You can name the Container whatever you want using the "Container Name" text Box. - ![](synology/dsm7-02.png) + ![](images/dsm7-02.png) 7. To add Environment Variables and Command Line Arguments click "Advanced Settings". (Optional) - Information on available Command Line Arguments and Environment Variables can be found [here](../../essentials/environmental.md) + Information on available Command Line Arguments and Environment Variables can be found [here](../environmental.md) To add an Environment Variable click "Environment" then click Add" and then fill in the Variable and Value. - ![](synology/dsm7-03.png) + ![](images/dsm7-03.png) To use Command Line Arguments click "Execution Command" put the arguments in the "Command" text field. - ![](synology/dsm7-04.png) + ![](images/dsm7-04.png) Click "Save" to save the settings and go back to the General Settings Screen. 8. Click "Next" from the General Settings Screen to get to the Port Settings Screen where you just want to click "Next" as PMM has no Ports. - ![](synology/dsm7-05.png) + ![](images/dsm7-05.png) 9. Next we need to add your config folder to the container. From the Volume Settings Screen click "Add Folder". - ![](synology/dsm7-06.png) + ![](images/dsm7-06.png) 10. Select from your Synology File System where you want to store your PMM config files and then enter `/config` as the "Mount path". Then click "Next" to go to the Summary Page. - ![](synology/dsm7-07.png) + ![](images/dsm7-07.png) 11. From the Summary Page select "Done" to finish and creating the container. - ![](synology/dsm7-08.png) + ![](images/dsm7-08.png) === "DiskStation Manager 6" 5. You can name the Container whatever you want using the "Container Name" text Box. Then click "Advanced Settings". - ![](synology/dsm6-01.png) + ![](images/dsm6-01.png) 6. Next we need to add your config folder to the container. Select the "Volume" Tab, click "Add Folder," and select from your Synology File System where you want to store your PMM config files. - ![](synology/dsm6-02.png) + ![](images/dsm6-02.png) 7. Enter `/config` as the "Mount Point." - ![](synology/dsm6-03.png) + ![](images/dsm6-03.png) 8. Select the "Environment" Tab. (Optional) @@ -108,10 +108,10 @@ This is a quick walkthrough of setting up the Plex-Meta-Manager Docker container - To add an Environment Variable Click "Add" and then fill in the Variable and Value. - To use Command Line Arguments put the arguments in the "Command" text field. - Information on available Command Line Arguments and Environment Variables can be found [here](../../essentials/environmental.md) + Information on available Command Line Arguments and Environment Variables can be found [here](../environmental.md) - ![](synology/dsm6-04.png) + ![](images/dsm6-04.png) 9. Select "Apply" to save the "Advanced Settings," select "Next" to go to the Summary, and select "Done" to finish and create the container. - ![](synology/dsm6-05.png) + ![](images/dsm6-05.png) diff --git a/docs/pmm/install/guides/unraid.md b/docs/pmm/install/unraid.md similarity index 97% rename from docs/pmm/install/guides/unraid.md rename to docs/pmm/install/unraid.md index c75c1de3..de810858 100644 --- a/docs/pmm/install/guides/unraid.md +++ b/docs/pmm/install/unraid.md @@ -64,7 +64,7 @@ To install a container from docker hub, you will need community applications - a 3. Choose which branch you want to run `latest`, `develop`, or `nightly`. -4. Click `Show more settings...` to set any [Environmental Variables](../../essentials/environmental.md) you wish to use. **For the purposes of this walkthrough, the** `Container Path: /config` **path for the unRAID app is** `/mnt/user/appdata/plex-meta-manager` +4. Click `Show more settings...` to set any [Environmental Variables](../environmental.md) you wish to use. **For the purposes of this walkthrough, the** `Container Path: /config` **path for the unRAID app is** `/mnt/user/appdata/plex-meta-manager` 5. Hit `Apply`, and allow unRAID to download the docker container. diff --git a/docs/pmm/install/guides/wt/wt-01-basic-config.md b/docs/pmm/install/wt/wt-01-basic-config.md similarity index 100% rename from docs/pmm/install/guides/wt/wt-01-basic-config.md rename to docs/pmm/install/wt/wt-01-basic-config.md diff --git a/docs/pmm/install/guides/wt/wt-02-config-bad-library.md b/docs/pmm/install/wt/wt-02-config-bad-library.md similarity index 100% rename from docs/pmm/install/guides/wt/wt-02-config-bad-library.md rename to docs/pmm/install/wt/wt-02-config-bad-library.md diff --git a/docs/pmm/install/guides/wt/wt-03-lib-err-and-fix.md b/docs/pmm/install/wt/wt-03-lib-err-and-fix.md similarity index 97% rename from docs/pmm/install/guides/wt/wt-03-lib-err-and-fix.md rename to docs/pmm/install/wt/wt-03-lib-err-and-fix.md index 06f1d139..cdca85bc 100644 --- a/docs/pmm/install/guides/wt/wt-03-lib-err-and-fix.md +++ b/docs/pmm/install/wt/wt-03-lib-err-and-fix.md @@ -33,7 +33,7 @@ You can see there that PMM found its config file, was able to connect to TMDb, w ``` Chances are you're using Python 3.12 and skipped the bit above about Python 3.12. - Type this into your term minal + Type this into your terminal ``` pip install setuptools ``` @@ -69,4 +69,4 @@ playlist_files: Where `THE_NAME_OF_YOUR_MOVIE_LIBRARY` has been replaced by the name of your movie library as shown in Plex ["All The Movies" here]: -![movie-lib-name](../movie-lib-name.png) +![movie-lib-name](../images/wt-movie-lib-name.png) diff --git a/docs/pmm/install/guides/wt/wt-04-default-intro.md b/docs/pmm/install/wt/wt-04-default-intro.md similarity index 100% rename from docs/pmm/install/guides/wt/wt-04-default-intro.md rename to docs/pmm/install/wt/wt-04-default-intro.md diff --git a/docs/pmm/install/guides/wt/wt-04b-default-after.md b/docs/pmm/install/wt/wt-04b-default-after.md similarity index 91% rename from docs/pmm/install/guides/wt/wt-04b-default-after.md rename to docs/pmm/install/wt/wt-04b-default-after.md index b77046ab..e7293d8b 100644 --- a/docs/pmm/install/guides/wt/wt-04b-default-after.md +++ b/docs/pmm/install/wt/wt-04b-default-after.md @@ -4,6 +4,6 @@ As it builds the collections, you should see a fair amount of logging about whic On my test library, this created four collections. You may see fewer depending on what specific movies are in that library. -![default-collections](../default-collections.png) +![default-collections](../images/wt-default-collections.png) Perhaps you can do everything you want in terms of collections [award collections, actor collections, genre collections, franchise collections, etc] with the defaults. You can investigate what they can provide under the "Defaults" heading at the top of this wiki. diff --git a/docs/pmm/install/guides/wt/wt-05-local-file.md b/docs/pmm/install/wt/wt-05-local-file.md similarity index 100% rename from docs/pmm/install/guides/wt/wt-05-local-file.md rename to docs/pmm/install/wt/wt-05-local-file.md diff --git a/docs/pmm/install/guides/wt/wt-06-local-after.md b/docs/pmm/install/wt/wt-06-local-after.md similarity index 93% rename from docs/pmm/install/guides/wt/wt-06-local-after.md rename to docs/pmm/install/wt/wt-06-local-after.md index 188ba806..d07d93fe 100644 --- a/docs/pmm/install/guides/wt/wt-06-local-after.md +++ b/docs/pmm/install/wt/wt-06-local-after.md @@ -9,7 +9,7 @@ As it builds the collection, you should see a fair amount of logging about which You should see the new collection: -![Finished Collections](../finished.png) +![Finished Collections](../images/wt-finished.png) When you click into each, you’ll see the movies that PMM added to each collection. diff --git a/docs/pmm/install/guides/wt/wt-07-overlay-add.md b/docs/pmm/install/wt/wt-07-overlay-add.md similarity index 100% rename from docs/pmm/install/guides/wt/wt-07-overlay-add.md rename to docs/pmm/install/wt/wt-07-overlay-add.md diff --git a/docs/pmm/install/guides/wt/wt-08-overlay-after.md b/docs/pmm/install/wt/wt-08-overlay-after.md similarity index 95% rename from docs/pmm/install/guides/wt/wt-08-overlay-after.md rename to docs/pmm/install/wt/wt-08-overlay-after.md index 226cf01c..0c4eaf98 100644 --- a/docs/pmm/install/guides/wt/wt-08-overlay-after.md +++ b/docs/pmm/install/wt/wt-08-overlay-after.md @@ -20,4 +20,4 @@ Eventually, you'll see it start applying overlays to all your movies: When it finishes, go to the Library tab in this library in Plex: -![Overlaid posters](../overlays.png) +![Overlaid posters](../images/wt-overlays.png) diff --git a/docs/pmm/install/guides/wt/wt-09-next-steps.md b/docs/pmm/install/wt/wt-09-next-steps.md similarity index 94% rename from docs/pmm/install/guides/wt/wt-09-next-steps.md rename to docs/pmm/install/wt/wt-09-next-steps.md index 6f83ed24..2f1cb9c7 100644 --- a/docs/pmm/install/guides/wt/wt-09-next-steps.md +++ b/docs/pmm/install/wt/wt-09-next-steps.md @@ -31,8 +31,8 @@ Investigate the rest of the wiki to learn about everything Plex-Meta-Manager can ### Runtime and Environment Flags -The command in this walkthrough will run all collections and libraries immediately. If you want to modify that behavior to run just one or some collections, or just one library, or just overlays or the like, review the [Run Commands & Environment Variables](../../../essentials/environmental.md). +The command in this walkthrough will run all collections and libraries immediately. If you want to modify that behavior to run just one or some collections, or just one library, or just overlays or the like, review the [Run Commands & Environment Variables](../../environmental.md). ### Creating Collections, Overlays, Playlists, etc. -These things are all generally defined in collection files that are referred to in the config file. The starting point for creating these files is [here](../../../../config/data/collections.md). +These things are all generally defined in collection files that are referred to in the config file. The starting point for creating these files is [here](../../../files/collections.md). diff --git a/docs/pmm/install/guides/wt/wt-10-scheduling.md b/docs/pmm/install/wt/wt-10-scheduling.md similarity index 89% rename from docs/pmm/install/guides/wt/wt-10-scheduling.md rename to docs/pmm/install/wt/wt-10-scheduling.md index 36f65809..2df776f2 100644 --- a/docs/pmm/install/guides/wt/wt-10-scheduling.md +++ b/docs/pmm/install/wt/wt-10-scheduling.md @@ -4,12 +4,12 @@ Plex Meta Manager also features multiple layers of scheduling, which you can lev - You can run PMM in the background, telling it to wake up and process your libraries at fixed times during the day. The default behavior in this regard is to wake up at 5AM and process the config. If you leave the `-r` off the commands you have been using in this walkthrough, that's what will happen. - You can control when PMM wakes up with the [time-to-run](../../../essentials/environmental.md) env-var/runtime flag. + You can control when PMM wakes up with the [time-to-run](../../environmental.md) env-var/runtime flag. - You can skip using that internal schedule and just do manual runs as you have been doing throughout this walkthrough using standard tools available in your OS. - Details on setting this up are found [here](../scheduling.md). + Details on setting this up are found [here](../../guides/scheduling.md). - In addition, individual items *within* the configuration can be scheduled to take place at certain times *provided PMM is running at that time*. For example, you can tell PMM only to apply overlays on Tuesdays or the like. You can then schedule manual runs every day at noon and overlays will only get processed when it runs on Tuesday. This sort of schedule *will not* make PMM start up if it is not already running. If you don't arrange for PMM to be run on Tuesday, your overlays would never be processed in this example. - Details on this level of scheduling are found [here](../../../../builders/details/schedule.md) + Details on this level of scheduling are found [here](../../../config/schedule.md) diff --git a/docs/pmm/install/guides/wt/wt-editor.md b/docs/pmm/install/wt/wt-editor.md similarity index 100% rename from docs/pmm/install/guides/wt/wt-editor.md rename to docs/pmm/install/wt/wt-editor.md diff --git a/docs/pmm/install/guides/wt/wt-run-docker.md b/docs/pmm/install/wt/wt-run-docker.md similarity index 100% rename from docs/pmm/install/guides/wt/wt-run-docker.md rename to docs/pmm/install/wt/wt-run-docker.md diff --git a/docs/pmm/install/guides/wt/wt-run-shell.md b/docs/pmm/install/wt/wt-run-shell.md similarity index 100% rename from docs/pmm/install/guides/wt/wt-run-shell.md rename to docs/pmm/install/wt/wt-run-shell.md diff --git a/docs/pmm/install/guides/wt/wt-save.md b/docs/pmm/install/wt/wt-save.md similarity index 100% rename from docs/pmm/install/guides/wt/wt-save.md rename to docs/pmm/install/wt/wt-save.md diff --git a/docs/pmm/install/guides/wt/wt-test-library.md b/docs/pmm/install/wt/wt-test-library.md similarity index 100% rename from docs/pmm/install/guides/wt/wt-test-library.md rename to docs/pmm/install/wt/wt-test-library.md diff --git a/docs/pmm/logs.md b/docs/pmm/logs.md new file mode 100644 index 00000000..2a19ec4d --- /dev/null +++ b/docs/pmm/logs.md @@ -0,0 +1,179 @@ +--- +search: + boost: 4 +--- +# Log files and where to find them + +### Locating Log Files + +The meta.log file can be found within the `logs` folder of your Plex Meta Manager config folder [right next to `config.yml`]. + +`meta.log` is the most recent run of Plex Meta Manager, `meta.log.1` is the previous run, `meta.log.2` is the run before that, so on and so forth. + +As new log files are created, the old ones get a numeric suffix added: `meta.log.1`. **The most recent is always the one without a number at the end.** + +### Providing Log Files on Discord + +You can drag-and-drop your meta.log file directly into [Discord](https://metamanager.wiki/en/latest/discord/), you do not need to upload it to a third-party site unless it exceeds the 50mb size limit. + +Please DO NOT manually extract, copy and paste text from your log files directly into Discord as the formatting can be difficult to read and can often redact parts of the log file that are important for full context. + +### Basic Log File Troubleshooting + +Wondering how to troubleshoot Plex Meta Manager and how to read through the meta.log? + +**Using a text editor like [Visual Studio Code](https://code.visualstudio.com/) or [Sublime Text](https://www.sublimetext.com/) is recommended** + +In all cases, the first step is to open the [`meta.log`](#locating-log-files) with your text editor and perform these steps: + +1. Check that you are running the latest [`version`](#checking-plex-meta-manager-version) of your branch. Your current version can be found in the `meta.log` file either below the Plex Meta Manager ASCII art, or at the end of the run. If you are not on the latest version of your branch, you will see `Newest Version: X.X.X` below this. Ensure you [`upgrade`](install/local.md#i-want-to-update-to-the-latest-version-of-pmm) to the latest version of Plex Meta Manager. +2. When scanning your meta.log file, search for `[CRITICAL]` items first as these will definitely need to be fixed +3. Scan your meta.log file for `[ERROR]` and make a note of the content of the full line to start your search below on how to resolve + +### Checking Plex Meta Manager Version + +Checking the version: You will find that in your [`meta.log`](#locating-log-files) around the 8th-10th line and will look something like this: + +``` +| | +| Version: 1.19.1-develop10 | +|=================================| +``` + +If you are not on the latest version of your branch, you will see Newest Version: X.X.X below this. Ensure you upgrade to the latest version of Plex Meta Manager. + +``` +| | +| Version: 1.19.1-develop10 | +| Newest Version: 1.19.1-develop20 | +|=======================================| +``` + +### Understanding Log File Event Types + +There are five main event types that you need to be aware of when understanding the log files, detailed below: + +| Type | Short Info | Description | Recommendation | +|:-----------|:----------------------|:-------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------| +| `INFO` | Information log | Informational message that does not require much attention | No action required | +| `DEBUG` | Debug Log | Debug log message that does not require much attention | No action required | +| `WARNING` | Warning Log | Warning message that may require your attention | Read the warning and determine if this is something you need to take action on or not | +| `ERROR` | Error Log | Error message that in MOST cases requires action on your part to resolve | Read the error message, look for the message below and try recommendations | +| `CRITICAL` | Critical Log | Critical message requiring you to fix it for PMM to run properly | Read the critical message and take appropriate action. look for message below and try recommendations | + +### Common Log File Messages + +This section aims to explain some commonly seen event messages that are produced in the logs. + +#### CRITICAL + +This table details examples of the most commonly-seen `CRITICAL` events and what they mean for the user. + +| Type | Short Info | Description | Recommendation | +|:-----------|:----------------------------------------------------|:------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------| +| `CRITICAL` | `Failed to Connect to https://api.themoviedb.org/3` | Current step PMM was on made an API call to TMDb, but it aborted and moved on | Determine if TMDb was offline and not replying to api requests. Try again and see if it fails again or not. | + +#### ERROR + +This table details examples of the most commonly-seen `[ERROR]` events and what they mean for the user. + +| Type | Short Info | Description | Recommendation | +|:--------|:------------------------------------------------------------------|:---------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `ERROR` | `Playlist Error: Library: XYZ not defined` | Plex library XYZ is not found | Ensure that your config file has defined the proper library name as found in Plex | +| `ERROR` | `Plex Error: resolution: No matches found with regex pattern XYZ` | While looking for a pattern in Plex, this one was not found | This may be normal and require 0 actions. However, if you expect that Plex should have returned records, check the pattern to ensure it is working properly | +| `ERROR` | `Plex Error: No Items found in Plex` | While using the PMM builder, no items with that criteria were returned from Plex | This may be normal and require 0 actions. However, if you expect that Plex should have returned records, check the builder to ensure it is working properly | +| `ERROR` | `IMDb Error: Failed to parse URL:` | While using the PMM builder, url does not exist | This may be normal and require 0 actions. However, if you expect that the URL should have returned records, check the url in your browser to ensure it is working properly | +| `ERROR` | `Trakt Error: No TVDb ID found for Nightfall (2022)` | Online sources are missing information | These sorts of errors indicate that the thing can't be cross-referenced between sites.</br>For example, at the time of that error, the Trakt record for "Nightfall (2022)" didn't contain a TVDb ID.</br>This could be because the record just hasn't been updated, or because "Nightfall (2022)" is not listed on TVDb.</br>The fix is for someone [like you, perhaps] to go to the relevant site and fill in the missing data. | +| `ERROR` | `MdbList Error: Not Found` | Online sources are missing information | These sorts of errors indicate that the thing can't be cross-referenced between sites. For example, at the time of that error, the the MDBlist record was trying to get a rating for a media item and could not find it. | +| `ERROR` | `Plex Error: actor: Mel B not found` | Actor not found and hence unable to create the collection | Report error in #pmm-help channel and see if there is a fix. | +| `ERROR` | `Input Failed` | A token or password is no longer valid for an online source of information | Review the meta.log for more information | +| `ERROR` | `Collection Error: trakt_list requires Trakt to be configured` | You are using a builder that has not been configured yet. | Review the meta.log for more information on what went wrong. Refer to the wiki for details on how to set this up (in this case Trakt) | + +#### WARNING + +This table details examples of the most commonly-seen `[WARNING]` events and what they mean for the user. + +| Type | Short Info | Description | Recommendation | +|:----------|:-----------------------------------------------------------------|:-----------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `WARNING` | `Convert Error: No TVDb ID Found for TMDb ID: 15733` | Online sources are missing information | These sorts of errors indicate that the thing can't be cross-referenced between sites.</br>For example, at the time of that error, the TMDb record for "The Two Mrs. Grenvilles" [ID 15733] didn't contain a TVDb ID.</br>This could be because the record just hasn't been updated, or because "The Two Mrs. Grenvilles" is not listed on TVDB.</br>The fix is for someone [like you, perhaps] to go to the relevant site and fill in the missing data. | +| `WARNING` | `Convert Error: AniDB ID not found for AniList ID: 21400` | Online sources are missing information | These sorts of errors indicate that the thing can't be cross-referenced between sites. The fix is for someone [like you, perhaps] to go to the relevant site and fill in the missing data. | +| `WARNING` | `Convert Error: No TVDb ID or IMDb ID found for AniDB ID: 14719` | Online sources are missing information | These sorts of errors indicate that the thing can't be cross-referenced between sites. The fix is for someone [like you, perhaps] to go to the relevant site and fill in the missing data. | +| `WARNING` | `Convert Error: AniDB ID not found for MyAnimeList ID: 36838` | Online sources are missing information | These sorts of errors indicate that the thing can't be cross-referenced between sites. The fix is for someone [like you, perhaps] to go to the relevant site and fill in the missing data. | + +#### INFO + +This table details examples of the most commonly-seen `[INFO]` events and what they mean for the user. + +| Type | Short Info | Description | Recommendation | +|:-------|:----------------------------------------------|:--------------------------------------|:------------------------------------------------------------------------------------------------------------------------------| +| `INFO` | `Detail: TMDb_person updated poster to [URL]` | Person image was downloaded from TMDb | May require you to update the people poster image to your style or request it in the style of the PMM defaults people posters | + +### Other Troubleshooting Examples + +The Log files will contain a great deal of detail about what exactly is happening and why. Generally speaking, if you're having a problem with PMM the answer will be found here. These logs can of course be quite technical, but often the error can be relatively clear: + +Something's missing from the format of the file: + +``` +| Loading Collection File: config/TV Shows.yml | +| | +| YAML Error: metadata, collections, or dynamic_collections attribute is required | +``` + +The problem in that case was: + +```yaml +templates: + Collection: + cache_builders: 30 + sync_mode: sync + sort_title: ZZZ-<<source>>-<<collection_name>> + +collections: <<< THIS LINE WAS MISSING + Cached for 30 Days: + template: {name: Collection, source: Looper} + summary: "" + trakt_list: + - https://trakt.tv/users/kesleyalfa/lists/year-2011 +``` + +YAML doesn't allow duplicate keys: + +``` +| Loading Collection File: config/Anime.yml | +| | +| YAML Error: while constructing a mapping +| in "<unicode string>", line 27, column 5: +| mal_favorite: 50 +| ^ (line: 27) +| found duplicate key "collection_order" with value "custom" (original value: "custom") +| in "<unicode string>", line 32, column 5: +| collection_order: custom +| ^ (line: 32) +``` + +The problem there was something like this: + +```yaml +templates: + Collection: + cache_builders: 30 + sync_mode: sync + sort_title: ZZZ-<<source>>-<<collection_name>> + +collections: <<< THIS LINE WAS MISSING + Cached for 30 Days: + template: {name: Collection, source: Looper} + collection_order: custom <<<< THIS KEY + summary: "" + collection_order: custom <<<< DUPLICATED HERE + trakt_list: + - https://trakt.tv/users/kesleyalfa/lists/year-2011 +``` + +File is not where PMM expects it: + +``` +| Loading Collection File: config/Movies.yml | +| YAML Error: File Error: File does not exist /Users/Lucky/Plex-Meta-Manager/config/Movies.yml | +``` diff --git a/docs/pmm/essentials/scripts/image-cleanup.md b/docs/pmm/scripts/image-cleanup.md similarity index 98% rename from docs/pmm/essentials/scripts/image-cleanup.md rename to docs/pmm/scripts/image-cleanup.md index 470663dd..c33ec665 100644 --- a/docs/pmm/essentials/scripts/image-cleanup.md +++ b/docs/pmm/scripts/image-cleanup.md @@ -6,7 +6,7 @@ As well as being able to clean the PhotoTranscoder Directory and running the Ple Special Thanks to [bullmoose20](https://github.com/bullmoose20) for the original [Plex Bloat Fix](https://github.com/bullmoose20/Plex-Stuff#plex-bloat-fix) (PBF) Script this is based on. -![](cleanup.png) +![](images/cleanup.png) This image shows which photos would be removed. Red is removed, Green is kept because it is the actively selected poster. The other two come standard from Plex when the posters are retrieved so Plex Meta Manager will not touch those either: @@ -25,7 +25,7 @@ If you have some specific reason to avoid Docker, or you prefer running it as a ### Install Walkthroughs -There are no detailed walkthroughs specifically for Plex Image Cleanup but the process is extremely similar to how you would do it with [Plex Meta Manager](https://metamanager.wiki/en/latest/home/installation.html#install-walkthroughs). +There are no detailed walkthroughs specifically for Plex Image Cleanup but the process is extremely similar to how you would do it with [Plex Meta Manager](https://metamanager.wiki/en/latest/pmm/installation/#install-walkthroughs). ### Local Install Overview @@ -299,7 +299,7 @@ You can have multiple Schedule Blocks separated with a `,` (`time|frequency,time * `options`: Options changed for the run in the format `option=value`, with multiple options separated with a `;`. * **Options:** `mode`, `photo-transcoder`, `empty-trash`, `clean-bundles`, or `optimize-db` * **Examples:** `mode=nothing` or `photo-transcoder=true` - * **NOTE: This overrides the currently set global value for just this one scheduled run** + * **Note: This overrides the currently set global value for just this one scheduled run** ### Schedule Block Example diff --git a/docs/pmm/essentials/scripts/cleanup.png b/docs/pmm/scripts/images/cleanup.png similarity index 100% rename from docs/pmm/essentials/scripts/cleanup.png rename to docs/pmm/scripts/images/cleanup.png diff --git a/docs/pmm/essentials/scripts/overlay-reset.md b/docs/pmm/scripts/overlay-reset.md similarity index 97% rename from docs/pmm/essentials/scripts/overlay-reset.md rename to docs/pmm/scripts/overlay-reset.md index 6dbeffb3..7ad057b6 100644 --- a/docs/pmm/essentials/scripts/overlay-reset.md +++ b/docs/pmm/scripts/overlay-reset.md @@ -17,7 +17,7 @@ If you have some specific reason to avoid Docker, or you prefer running it as a ### Install Walkthroughs -There are no detailed walkthroughs specifically for PMM Overlay Reset but the process is extremely similar to how you would do it with [Plex Meta Manager](https://metamanager.wiki/en/latest/home/installation.html#install-walkthroughs). +There are no detailed walkthroughs specifically for PMM Overlay Reset but the process is extremely similar to how you would do it with [Plex Meta Manager](https://metamanager.wiki/en/latest/pmm/installation/#install-walkthroughs). ### Local Install Overview @@ -107,7 +107,7 @@ Each option can be applied in three ways: | Items | Restore specific Plex Items by Title. Can use a bar-separated (<code>|</code>) list.<br>**Shell Command:** `-it` or <code>--items "Mad Max|Mad Max 2"</code><br>**Environment Variable:** <code>ITEMS=Mad Max|Mad Max 2</code> | :fontawesome-solid-circle-xmark:{ .red } | | Timeout | Timeout can be any number greater than 0. **Default:** `600`<br>**Shell Command:** `-ti` or `--timeout 1000`<br>**Environment Variable:** `TIMEOUT=1000` | :fontawesome-solid-circle-xmark:{ .red } | | Dry Run | Run as a Dry Run without making changes in Plex.<br>**Shell Command:** `-d` or `--dry`<br>**Environment Variable:** `DRY_RUN=True` | :fontawesome-solid-circle-xmark:{ .red } | -| Flat Assets | PMM Asset Folder uses [Flat Assets Image Paths](../../install/guides/assets.md#asset-naming).<br>**Shell Command:** `-f` or `--flat`<br>**Environment Variable:** `PMM_FLAT=True` | :fontawesome-solid-circle-xmark:{ .red } | +| Flat Assets | PMM Asset Folder uses [Flat Assets Image Paths](../guides/assets.md#asset-naming).<br>**Shell Command:** `-f` or `--flat`<br>**Environment Variable:** `PMM_FLAT=True` | :fontawesome-solid-circle-xmark:{ .red } | | Reset Season Posters | Restore Season posters during run.<br>**Shell Command:** `-s` or `--season`<br>**Environment Variable:** `SEASON=True` | :fontawesome-solid-circle-xmark:{ .red } | | Reset Episode Posters | Restore Episode posters during run.<br>**Shell Command:** `-e` or `--episode`<br>**Environment Variable:** `EPISODE=True` | :fontawesome-solid-circle-xmark:{ .red } | | Ignore Automatic Resume | Ignores the automatic resume.<br>**Shell Command:** `-ir` or `--ignore-resume`<br>**Environment Variable:** `IGNORE_RESUME=True` | :fontawesome-solid-circle-xmark:{ .red } | diff --git a/docs/pmm/essentials/scripts.md b/docs/pmm/scripts/overview.md similarity index 72% rename from docs/pmm/essentials/scripts.md rename to docs/pmm/scripts/overview.md index 9da63eaf..fd2f239d 100644 --- a/docs/pmm/essentials/scripts.md +++ b/docs/pmm/scripts/overview.md @@ -4,5 +4,5 @@ Each Companion Script is a separate project that has its own Docker container an | Name | Description | Readme | |:---------------------|:------------------------------------------------------|:----------------------------------------------------------------------------------------------| -| `PMM Overlay Reset` | Script to completely remove all PMM applied Overlays. | [Wiki](scripts/overlay-reset.md)/[GitHub](https://github.com/meisnate12/PMM-overlay-reset.md) | -| `Plex Image Cleanup` | Script to clean up Plex's Image Cache. | [Wiki](scripts/image-cleanup.md)/[GitHub](https://github.com/meisnate12/Plex-Image-Cleanup) | +| `PMM Overlay Reset` | Script to completely remove all PMM applied Overlays. | [Wiki](overlay-reset.md)/[GitHub](https://github.com/meisnate12/PMM-overlay-reset.md) | +| `Plex Image Cleanup` | Script to clean up Plex's Image Cache. | [Wiki](image-cleanup.md)/[GitHub](https://github.com/meisnate12/Plex-Image-Cleanup) | diff --git a/docs/pmm/essentials/yaml.md b/docs/pmm/yaml.md similarity index 94% rename from docs/pmm/essentials/yaml.md rename to docs/pmm/yaml.md index af764a48..d523ee3d 100644 --- a/docs/pmm/essentials/yaml.md +++ b/docs/pmm/yaml.md @@ -1,4 +1,4 @@ -# YAML Tutorial +# YAML Files Explained All of Plex Meta Manager's Config, Metadata, Overlay, and Playlist Files are written in the YAML data structure. @@ -50,19 +50,19 @@ Let us try and identify where these appear in the sample YAML file we saw earlie # Starts with a top level Dictionary with keys `libraries` and `settings` libraries: # Value is a Dictionary with keys `Movies` and `TV Shows` Movies: # Value is a Dictionary with keys `collection_files` and `overlay_files` - collection_files: # Value is a List with two Items + collection_files: # Value is a List with two Items - pmm: basic # List Item is a Dictionary with one key pair whose value is a String Literal - pmm: imdb # List Item is a Dictionary with one key pair whose value is a String Literal - overlay_files: # Value is a List with one Item + overlay_files: # Value is a List with one Item - pmm: ribbon # List Item is a Dictionary with keys `pmm` and `template_variables` with `pmm`'s value a String Literal template_variables: # Value is a Dictionary with keys `use_metacritic` and `use_common` use_metacritic: false # Value is a Boolean Literal use_common: false # Value is a Boolean Literal TV Shows: # Value is a Dictionary with keys `collection_files` and `overlay_files` - collection_files: # Value is a List with two Items + collection_files: # Value is a List with two Items - pmm: basic # List Item is a Dictionary with one key pair whose value is a String Literal - pmm: imdb # List Item is a Dictionary with one key pair whose value is a String Literal - overlay_files: # Value is a List with one Item + overlay_files: # Value is a List with one Item - pmm: ribbon # List Item is a Dictionary with one key pair whose value is a String Literal settings: # Value is a Dictionary with keys `cache` and `cache_expiration` cache: true # Value is a Boolean Literal @@ -81,19 +81,19 @@ A YAML file relies on whitespace and indentation to indicate nesting. The number ```yaml libraries: # Nesting Level 1 Movies: # Nesting Level 2 - collection_files: # Nesting Level 3 + collection_files: # Nesting Level 3 - pmm: basic # Nesting Level 4 - pmm: imdb # Nesting Level 4 - overlay_files: # Nesting Level 3 + overlay_files: # Nesting Level 3 - pmm: ribbon # Nesting Level 4 template_variables: # Nesting Level 5 use_metacritic: false # Nesting Level 6 use_common: false # Nesting Level 6 TV Shows: # Nesting Level 2 - collection_files: # Nesting Level 3 + collection_files: # Nesting Level 3 - pmm: basic # Nesting Level 4 - pmm: imdb # Nesting Level 4 - overlay_files: # Nesting Level 3 + overlay_files: # Nesting Level 3 - pmm: ribbon # Nesting Level 4 settings: # Nesting Level 1 cache: true # Nesting Level 2 diff --git a/docs/requirements.txt b/docs/requirements.txt index 26f4adff..8084de66 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -5,6 +5,8 @@ jinja2 markdown mkdocs mkdocs-material-extensions +mkdocs-redirects +neoteroi-mkdocs pygments pymdown-extensions babel diff --git a/docs/stylesheets/branch.js b/docs/stylesheets/branch.js index 4d745976..6343a05b 100644 --- a/docs/stylesheets/branch.js +++ b/docs/stylesheets/branch.js @@ -25,7 +25,6 @@ function checkURLForBranch() { ellipsisSpan.textContent = "PMM Develop Wiki"; } } -} // Call the function on page load window.addEventListener("load", checkURLForBranch); diff --git a/docs/stylesheets/cards.css b/docs/stylesheets/cards.css new file mode 100644 index 00000000..76dc10ba --- /dev/null +++ b/docs/stylesheets/cards.css @@ -0,0 +1,121 @@ +.nt-cards { + &.nt-grid { + display: grid; + grid-auto-columns: 1fr; + gap: 0.5rem; + + // the following 3 rules are for mobile devices, to avoid + // the grid forcing the width of the page + max-width: 100vw; + overflow-x: auto; + padding: 1px; + + &.cols-1 { + grid-template-columns: repeat(1, 1fr); + } + + &.cols-2 { + grid-template-columns: repeat(2, 1fr); + } + + &.cols-3 { + grid-template-columns: repeat(3, 1fr); + } + + &.cols-4 { + grid-template-columns: repeat(4, 1fr); + } + + &.cols-5 { + grid-template-columns: repeat(5, 1fr); + } + + &.cols-6 { + grid-template-columns: repeat(6, 1fr); + } + } +} + +// for small devices + +@media only screen and (max-width: 400px) { + + // force one card per line + .nt-cards.nt-grid { + grid-template-columns: repeat(1, 1fr) !important; + } +} + +.nt-card { + box-shadow: 0 2px 2px 0 rgb(0 0 0 / 14%), 0 3px 1px -2px rgb(0 0 0 / 20%), 0 1px 5px 0 rgb(0 0 0 / 12%); + + &:hover { + box-shadow: 0 2px 2px 0 rgb(0 0 0 / 24%), 0 3px 1px -2px rgb(0 0 0 / 30%), 0 1px 5px 0 rgb(0 0 0 / 22%); + } +} + +[data-md-color-scheme="slate"] { + .nt-card { + border: 0.05rem solid var(--md-typeset-table-color); + } +} + + +.nt-card>a { + color: var(--md-default-fg-color); +} + +.nt-card>a>div { + cursor: pointer; +} + +.nt-card { + padding: 5px; + margin-bottom: .5rem; +} + +.nt-card-title { + font-size: 1rem; + font-weight: bold; + margin: 4px 0 8px 0; + line-height: 22px; +} + +.nt-card-content { + padding: .4rem .8rem .8rem .8rem; +} + +.nt-card-text { + font-size: 14px; + padding: 0; + margin: 0; +} + +.nt-card .nt-card-image { + text-align: center; + border-radius: 2px; + background-position: center center; + background-size: cover; + background-repeat: no-repeat; + min-height: 120px; +} + +.nt-card .nt-card-image.tags img { + margin-top: 12px +} + +.nt-card .nt-card-image img { + height: 105px; + margin-top: 5px; +} + + +.nt-card a:hover, +.nt-card a:focus { + color: var(--md-accent-fg-color); +} + + +.nt-card h2 { + margin: 0; +} diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css index 16545e53..2d7b8d33 100644 --- a/docs/stylesheets/extra.css +++ b/docs/stylesheets/extra.css @@ -12,6 +12,13 @@ --md-footer-bg-color--dark: var(--md-default-bg-color); } +.md-banner { + background-color: #252525; + color: var(--md-footer-fg-color); + overflow: auto; + text-align: center; +} + .md-typeset table:not([class]) { display: table; } @@ -134,6 +141,17 @@ table.dualTable td, table.dualTable th { color: #f1f1f1; } +table.dualTable tr:nth-child(even) { + background-color: #1b1b1b; +} + +table.dualTable td, table.dualTable th { + padding-left: 15px !important; +} + +#dualTable td, #dualTable th { + padding-left: 15px !important; +} .md-typeset__table table:not([class]) td, .md-typeset__table table:not([class]) th { @@ -169,4 +187,53 @@ table.dualTable td, table.dualTable th { box-decoration-break: clone; color: #ffffff; word-break: break-word; +} +:root { + --md-admonition-icon--blank: url() +} +:root { + --md-admonition-icon--separator: url() +} +.md-typeset .admonition.blank, +.md-typeset details.blank { + box-shadow: 0 .1rem 1rem -.3rem rgba(0,0,0); + border: none; + border-radius: 5px; + margin: 5px auto; + font-size: inherit; +} +.md-typeset .blank > .admonition-title, +.md-typeset .blank > summary { + background-color: rgba(43, 155, 70, 0.1); + border-radius: 5px !important; + padding-left: 20px; +} +.md-typeset .blank > .admonition-title::before, +.md-typeset .blank > summary::before { + background-color: rgb(43, 155, 70); + -webkit-mask-image: var(--md-admonition-icon--blank); + mask-image: var(--md-admonition-icon--blank); +} +.md-typeset .admonition.separator, +.md-typeset details.separator { + box-shadow: 0 .1rem 1rem -.3rem rgba(0,0,0); + border: none; + border-radius: 5px; + margin: 5px auto; + font-size: inherit; +} +.md-typeset .separator > .admonition-title, +.md-typeset .separator > summary { + background-color: rgba(43, 155, 70, 0.1); + text-align: center; + border-radius: 5px !important; + padding-left: 20px; + padding-top: 3px; + padding-bottom: 3px; +} +.md-typeset .separator > .admonition-title::before, +.md-typeset .separator > summary::before { + background-color: rgb(43, 155, 70); + -webkit-mask-image: var(--md-admonition-icon--separator); + mask-image: var(--md-admonition-icon--separator); } \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index e672ccaa..2065ea9a 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,7 +1,7 @@ site_name: Plex Meta Manager Wiki site_author: meisnate12 site_description: Plex Meta Manager is an open-source python project allowing you to unlock the potential of your media server. - +site_url: https://<slug>.metamanager.wiki/en/latest/ repo_name: Plex Meta Manager repo_url: https://github.com/meisnate12/Plex-Meta-Manager @@ -15,13 +15,13 @@ theme: - content.tabs.link - content.code.copy - header.autohide + - announce.dismiss - navigation.footer - navigation.tabs - navigation.tabs.sticky - navigation.sections - navigation.top - navigation.tracking - - navigation.prune - toc.follow - search.suggest - search.highlight @@ -45,13 +45,30 @@ theme: toggle: icon: material/weather-sunny name: Switch to dark mode - + icon: + alternate: material/file-document-multiple-outline plugins: - glightbox - search: lang: en - include-markdown + - redirects: + redirect_maps: + 'redact.md': 'https://regex101.com/r/DMo1DQ/latest' + 'discord.md': 'https://discord.gg/FNqqw5jRSz' + 'malauth.md': 'https://replit.com/@chazlarson/MALAuth' + 'traktauth.md': 'https://replit.com/@chazlarson/TraktAuth' extra: + alternate: + - name: Latest Docs + link: /en/latest/ + lang: en + - name: Develop Docs + link: /en/develop/ + lang: en + - name: Nightly Docs + link: /en/nightly/ + lang: en social: - icon: fontawesome/solid/heart class: md-social__link heart @@ -59,7 +76,7 @@ extra: name: Donate - icon: fontawesome/brands/discord class: md-social__link - link: 'https://discord.gg/NfH6mGFuAB' + link: 'https://metamanager.wiki/en/latest/discord/' name: Discord - icon: fontawesome/brands/github class: md-social__link @@ -90,7 +107,9 @@ markdown_extensions: - pymdownx.emoji: emoji_generator: !!python/name:material.extensions.emoji.to_svg emoji_index: !!python/name:material.extensions.emoji.twemoji + - neoteroi.cards extra_css: + - stylesheets/cards.css - stylesheets/extra.css - stylesheets/termynal.css - stylesheets/custom.css @@ -104,55 +123,56 @@ nav: - PLEX META MANAGER: - Welcome: home.md - INSTALLATION: - - Installing PMM: pmm/install/installation.md - - Installation Guides: - - Local Walkthrough (Win/Mac/Linux): pmm/install/guides/local.md - - Docker Walkhrough: pmm/install/guides/docker.md - - unRAID Walkthrough: pmm/install/guides/unraid.md - - Kubernetes Walkthrough: pmm/install/guides/kubernetes.md - - QNAP Walkthrough: pmm/install/guides/qnap.md - - Synology Walkthrough: pmm/install/guides/synology.md + - Installing PMM: pmm/install/overview.md + - Docker Images: pmm/install/images.md + - Walkthroughs: + - Local Walkthrough (Win/Mac/Linux): pmm/install/local.md + - Docker Walkhrough: pmm/install/docker.md + - unRAID Walkthrough: pmm/install/unraid.md + - Kubernetes Walkthrough: pmm/install/kubernetes.md + - QNAP Walkthrough: pmm/install/qnap.md + - Synology Walkthrough: pmm/install/synology.md - POST-INSTALL: - - Run Commands & Env Variables: pmm/essentials/environmental.md - - Knowledgebase / FAQ: pmm/essentials/kb.md - - MISCELLANEOUS: - - Plex Ratings Explained: pmm/essentials/ratings.md - - Scheduling Guide: pmm/install/guides/scheduling.md - - Image Asset Directory Guide: pmm/install/guides/assets.md - - Log Files: pmm/essentials/logs.md - - YAML File Guide: pmm/essentials/yaml.md - - COMPANION SCRIPTS: - - Overview: pmm/essentials/scripts.md - - Plex Image Cleanup: pmm/essentials/scripts/image-cleanup.md - - PMM Overlay Reset: pmm/essentials/scripts/overlay-reset.md - - USEFUL LINKS: + - Run Commands & Env Variables: pmm/environmental.md + - YAML Files Explained: pmm/yaml.md + - Log Files & Common Errors: pmm/logs.md + - Frequently Asked Questions: pmm/faqs.md + - Explanation Guides: &guides + - Overview: pmm/guides/overview.md + - Plex Ratings Explained: pmm/guides/ratings.md + - Scheduling PMM Runs Guide: pmm/guides/scheduling.md + - Image Asset Directory Guide: pmm/guides/assets.md + - Formula 1 Metadata Guide: pmm/guides/formula.md + - Companion Scripts: &scripts + - Overview: pmm/scripts/overview.md + - Plex Image Cleanup: pmm/scripts/image-cleanup.md + - PMM Overlay Reset: pmm/scripts/overlay-reset.md + - USEFUL LINKS: &links - Feature Requests: https://features.metamanager.wiki/ - Bugs & Issues: https://github.com/meisnate12/Plex-Meta-Manager/issues - User Configs Repository: https://github.com/meisnate12/Plex-Meta-Manager-Configs - - Discord Server: https://discord.gg/NfH6mGFuAB + - Discord Server: https://metamanager.wiki/en/latest/discord/ - Donate/Sponsor PMM: https://github.com/sponsors/meisnate12 - - Acknowledgements: pmm/essentials/acknowledgements.md + - Acknowledgements: pmm/acknowledgements.md - CONFIGURATION FILE: - - Overview: config/configuration.md - - "STRUCTURE": + - Overview: config/overview.md + - STRUCTURE: - Library Attributes: config/libraries.md - - "Collection Files": config/files.md - - Overlay Files: config/files.md - - Metadata Files: config/files.md - - Playlist Files: config/files.md + - File Blocks: config/files.md + - Scheduling Parts: config/schedule.md - Library Operations: config/operations.md + - Playlist Files: config/playlists.md - Settings: config/settings.md - Webhooks: config/webhooks.md - - "SERVICES": + - CONNECTORS: - Plex: config/plex.md - - Tautulli: config/tautulli.md + - TMDb: config/tmdb.md + - Trakt: config/trakt.md - Radarr: config/radarr.md - Sonarr: config/sonarr.md - - "THIRD-PARTY CONNECTORS": - Notifiarr: config/notifiarr.md - - TMDb: config/tmdb.md + - Tautulli: config/tautulli.md - Github: config/github.md - - Trakt: config/trakt.md - MdbList: config/mdblist.md - OMDb: config/omdb.md - AniDB: config/anidb.md @@ -161,306 +181,146 @@ nav: - Defaults Usage Guide: defaults/guide.md - Defaults Files: defaults/files.md - COLLECTIONS DEFAULTS: - - Click to Expand: - - Collections: defaults/collections.md - - Shared Variables: defaults/collection_variables.md - - Separators: defaults/separators.md - - Award: - - Separator: defaults/award/separator.md - - Academy Awards (Oscars): defaults/award/oscars.md - - British Academy of Film Awards: defaults/award/bafta.md - - Cannes Film Festival Awards: defaults/award/cannes.md - - Critics Choice Awards: defaults/award/choice.md - - Emmy Awards: defaults/award/emmy.md - - Golden Globe Awards: defaults/award/golden.md - - Independent Spirit Awards: defaults/award/spirit.md - - Sundance Film Festival Awards: defaults/award/sundance.md - - Other Awards: defaults/award/other.md - - Chart: - - Separator: defaults/chart/separator.md - - Basic Charts: defaults/chart/basic.md - - AniList Charts: defaults/chart/anilist.md - - Flixpatrol Charts: defaults/chart/flixpatrol.md - - IMDb Charts: defaults/chart/imdb.md - - MyAnimeList Charts: defaults/chart/myanimelist.md - - Tautulli Charts: defaults/chart/tautulli.md - - TMDb Charts: defaults/chart/tmdb.md - - Trakt Charts: defaults/chart/trakt.md - - Other Charts: defaults/chart/other.md - - Content: - - Genres: defaults/both/genre.md - - Franchises (Movie): defaults/movie/franchise.md - - Franchises (Show): defaults/show/franchise.md - - Universes: defaults/both/universe.md - - Based On...: defaults/both/based.md - - Content Rating: - - US Content Ratings (Movie): defaults/movie/content_rating_us.md - - US Content Ratings (Show): defaults/show/content_rating_us.md - - UK Content Ratings: defaults/both/content_rating_uk.md - - DE Content Ratings: defaults/both/content_rating_de.md - - MyAnimeList Content Ratings: defaults/both/content_rating_mal.md - - Common Sense Media Content Ratings: defaults/both/content_rating_cs.md - - Location: - - Countries (Movie): defaults/movie/country.md - - Countries (Show): defaults/show/country.md - - Regions (Movie): defaults/movie/region.md - - Regions (Show): defaults/show/region.md - - Continents (Movie): defaults/movie/continent.md - - Continents (Show): defaults/show/continent.md - - Media: - - Aspect Ration (Show): defaults/both/aspect.md - - Resolutions: defaults/both/resolution.md - - Audio Languages: defaults/both/audio_language.md - - Subtitle Languages: defaults/both/subtitle_language.md - - Production: - - Networks: defaults/show/network.md - - Streaming: defaults/both/streaming.md - - Studios: defaults/both/studio.md - - People: - - Actors: defaults/both/actor.md - - Directors: defaults/movie/director.md - - Producers: defaults/movie/producer.md - - Writers: defaults/movie/writer.md - - Time: - - Seasonal: defaults/movie/seasonal.md - - Years: defaults/both/year.md - - Decades (Movie): defaults/movie/decade.md - - Decades (Show): defaults/show/decade.md - - Utility: - - Collectionless: defaults/both/collectionless.md - - OVERLAY DEFAULTS: - - Click to Expand: - - Overlays: defaults/overlays.md - - Shared Variables: defaults/overlay_variables.md - - Chart: - - FlixPatrol Top: defaults/overlays/flixpatrol.md - - Ribbon: defaults/overlays/ribbon.md - - Content: - - Episode Info: defaults/overlays/episode_info.md - - MediaStinger: defaults/overlays/mediastinger.md - - Ratings: defaults/overlays/ratings.md - - Status: defaults/overlays/status.md - - Content Rating: - - US Content Ratings (Movie): defaults/overlays/content_rating_us_movie.md - - US Content Ratings (Show): defaults/overlays/content_rating_us_show.md - - UK Content Ratings: defaults/overlays/content_rating_uk.md - - DE Content Ratings: defaults/overlays/content_rating_de.md - - Common Sense Age Ratings: defaults/overlays/commonsense.md - - Media: - - Aspect Ratio: defaults/overlays/aspect.md - - Audio Codec: defaults/overlays/audio_codec.md - - Audio/Subtitle Language Count: defaults/overlays/language_count.md - - Audio/Subtitle Language Flags: defaults/overlays/languages.md - - Resolution/Edition: defaults/overlays/resolution.md - - Runtimes: defaults/overlays/runtimes.md - - Versions: defaults/overlays/versions.md - - Video Format: defaults/overlays/video_format.md - - Production: - - Networks: defaults/overlays/network.md - - Streaming: defaults/overlays/streaming.md - - Studios: defaults/overlays/studio.md - - Utility: - - Direct Play Only: defaults/overlays/direct_play.md + - Collections: defaults/collections.md + - Shared Variables: defaults/collection_variables.md + - Separators: defaults/separators.md + - Award: + - Separator: defaults/award/separator.md + - Academy Awards (Oscars): defaults/award/oscars.md + - British Academy of Film Awards: defaults/award/bafta.md + - Cannes Film Festival Awards: defaults/award/cannes.md + - Critics Choice Awards: defaults/award/choice.md + - Emmy Awards: defaults/award/emmy.md + - Golden Globe Awards: defaults/award/golden.md + - Independent Spirit Awards: defaults/award/spirit.md + - Sundance Film Festival Awards: defaults/award/sundance.md + - Other Awards: defaults/award/other.md + - Chart: + - Separator: defaults/chart/separator.md + - Basic Charts: defaults/chart/basic.md + - AniList Charts: defaults/chart/anilist.md + - Flixpatrol Charts: defaults/chart/flixpatrol.md + - IMDb Charts: defaults/chart/imdb.md + - MyAnimeList Charts: defaults/chart/myanimelist.md + - Tautulli Charts: defaults/chart/tautulli.md + - TMDb Charts: defaults/chart/tmdb.md + - Trakt Charts: defaults/chart/trakt.md + - Other Charts: defaults/chart/other.md + - Content: + - Genres: defaults/both/genre.md + - Franchises (Movie): defaults/movie/franchise.md + - Franchises (Show): defaults/show/franchise.md + - Universes: defaults/both/universe.md + - Based On...: defaults/both/based.md + - Content Rating: + - US Content Ratings (Movie): defaults/movie/content_rating_us.md + - US Content Ratings (Show): defaults/show/content_rating_us.md + - UK Content Ratings: defaults/both/content_rating_uk.md + - DE Content Ratings: defaults/both/content_rating_de.md + - MyAnimeList Content Ratings: defaults/both/content_rating_mal.md + - Common Sense Media Content Ratings: defaults/both/content_rating_cs.md + - Location: + - Countries (Movie): defaults/movie/country.md + - Countries (Show): defaults/show/country.md + - Regions (Movie): defaults/movie/region.md + - Regions (Show): defaults/show/region.md + - Continents (Movie): defaults/movie/continent.md + - Continents (Show): defaults/show/continent.md + - Media: + - Aspect Ration (Show): defaults/both/aspect.md + - Resolutions: defaults/both/resolution.md + - Audio Languages: defaults/both/audio_language.md + - Subtitle Languages: defaults/both/subtitle_language.md + - Production: + - Networks: defaults/show/network.md + - Streaming: defaults/both/streaming.md + - Studios: defaults/both/studio.md + - People: + - Actors: defaults/both/actor.md + - Directors: defaults/movie/director.md + - Producers: defaults/movie/producer.md + - Writers: defaults/movie/writer.md + - Time: + - Seasonal: defaults/movie/seasonal.md + - Years: defaults/both/year.md + - Decades (Movie): defaults/movie/decade.md + - Decades (Show): defaults/show/decade.md + - Utility: + - Collectionless: defaults/both/collectionless.md - PLAYLIST DEFAULTS: - Playlists: defaults/playlist.md + - OVERLAY DEFAULTS: + - Overlays: defaults/overlays.md + - Shared Variables: defaults/overlay_variables.md + - Chart: + - FlixPatrol Top: defaults/overlays/flixpatrol.md + - Ribbon: defaults/overlays/ribbon.md + - Content: + - Episode Info: defaults/overlays/episode_info.md + - MediaStinger: defaults/overlays/mediastinger.md + - Ratings: defaults/overlays/ratings.md + - Status: defaults/overlays/status.md + - Content Rating: + - US Content Ratings (Movie): defaults/overlays/content_rating_us_movie.md + - US Content Ratings (Show): defaults/overlays/content_rating_us_show.md + - UK Content Ratings: defaults/overlays/content_rating_uk.md + - DE Content Ratings: defaults/overlays/content_rating_de.md + - Common Sense Age Ratings: defaults/overlays/commonsense.md + - Media: + - Aspect Ratio: defaults/overlays/aspect.md + - Audio Codec: defaults/overlays/audio_codec.md + - Audio/Subtitle Language Count: defaults/overlays/language_count.md + - Audio/Subtitle Language Flags: defaults/overlays/languages.md + - Resolution/Edition: defaults/overlays/resolution.md + - Runtimes: defaults/overlays/runtimes.md + - Versions: defaults/overlays/versions.md + - Video Format: defaults/overlays/video_format.md + - Production: + - Networks: defaults/overlays/network.md + - Streaming: defaults/overlays/streaming.md + - Studios: defaults/overlays/studio.md + - Utility: + - Direct Play Only: defaults/overlays/direct_play.md - FILES & BUILDERS: - - Overview: builders/files.md - - "FILES": - - Collection Files: config/data/collections.md - - Overlay Files: config/data/overlays.md - - Playlist Files: config/data/playlists.md - - Metadata Files: - - Editing Movie Metadata: config/data/metadata/movie.md - - Editing Show Metadata: config/data/metadata/show.md - - Editing Music Metadata: config/data/metadata/music.md - - "FILE ATTRIBUTES": - - Templates: builders/templates.md - - Filters: builders/filters.md - - SETTINGS & UPDATES: - - Overview: metadata/update.md - - Settings: - - Definition Settings: builders/details/definition.md - - Schedule Settings: builders/details/schedule.md - - Radarr/Sonarr Settings: builders/details/arr.md - - Updates: - - Collection/Playlist Metadata Updates: builders/details/metadata.md - - Item Metadata Updates: builders/details/item_metadata.md - - "BUILDERS": - - Overview: builders/overview.md - - "Plex Builders": - - Overview: builders/overview/plex.md - - Dumb Builders: - - Overview: builders/plex.md - - Plex All: builders/plex/#plex-all - - Plex Watchlist: builders/plex/#plex-watchlist - - Plex Pilots: builders/plex/#plex-pilots - - Plex Collectionless: builders/plex/#plex-collectionless - - Plex Search: builders/plex/#plex-search - - "Smart Builders": - - Overview: builders/smart.md - - Smart Label: builders/smart/#smart-label - - Smart Filter: builders/smart/#smart-filter - - "Third-Party Builders": - - Overview: builders/overview/thirdparty.md - - TMDb Builders: - - Overview: builders/tmdb.md - - TMDb Collection: builders/tmdb/#tmdb-collection - - TMDb List: builders/tmdb/#tmdb-list - - TMDb Actor: builders/tmdb/#tmdb-actor - - TMDb Crew: builders/tmdb/#tmdb-crew - - TMDb Director: builders/tmdb/#tmdb-director - - TMDb Producer: builders/tmdb/#tmdb-producer - - TMDb Writer: builders/tmdb/#tmdb-writer - - TMDb Movie: builders/tmdb/#tmdb-movie - - TMDb Show: builders/tmdb/#tmdb-show - - TMDb Company: builders/tmdb/#tmdb-company - - TMDb Network: builders/tmdb/#tmdb-network - - TMDb Keyword: builders/tmdb/#tmdb-keyword - - TMDb Popular: builders/tmdb/#tmdb-popular - - TMDb Now Playing: builders/tmdb/#tmdb-now-playing - - TMDb Top Rated: builders/tmdb/#tmdb-top-rated - - TMDb Upcoming: builders/tmdb/#tmdb-upcoming - - TMDb Airing Today: builders/tmdb/#tmdb-airing-today - - TMDb On the Air: builders/tmdb/#tmdb-on-the-air - - TMDb Trending Daily: builders/tmdb/#tmdb-trending-daily - - TMDb Trending Weekly: builders/tmdb/#tmdb-trending-weekly - - TMDb Discover: builders/tmdb/#tmdb-discover - - TVDb Builders: - - Overview: builders/tvdb.md - - TVDb List: builders/tvdb/#tvdb-list - - TVDb Movie: builders/tvdb/#tvdb-movie - - TVDb Show: builders/tvdb/#tvdb-show - - IMDb Builders: - - Overview: builders/imdb.md - - IMDb ID: builders/imdb/#imdb-id - - IMDb Chart: builders/imdb/#imdb-chart - - IMDb List: builders/imdb/#imdb-list - - IMDb Watchlist: builders/imdb/#imdb-watchlist - - IMDb Award: builders/imdb/#imdb-award - - IMDb Search: builders/imdb/#imdb-search - - Trakt Builders: - - Overview: builders/trakt.md - - Trakt List: builders/trakt/#trakt-list - - Trakt Chart: builders/trakt/#trakt-chart - - Trakt Userlist: builders/trakt/#trakt-userlist - - Trakt Recommendations: builders/trakt/#trakt-recommendations - - Trakt Box Office: builders/trakt/#trakt-box-office - - Tautulli Builders: - - Overview: builders/tautulli.md - - Tautulli Popular/Watched: builders/tautulli/#tautulli-popular-watched - - Radarr Builders: - - Overview: builders/radarr.md - - Radarr All: builders/radarr/#radarr-all - - Radarr Taglist: builders/radarr/#radarr-taglist - - Sonarr Builders: - - Overview: builders/sonarr.md - - Sonarr All: builders/sonarr/#sonarr-all - - Sonarr Taglist: builders/sonarr/#sonarr-taglist - - MdbList Builders: - - Overview: builders/mdblist.md - - MdbList List: builders/mdblist/#mdblist-list - - Letterboxd Builders: - - Overview: builders/letterboxd.md - - Letterboxd List: builders/letterboxd/#letterboxd-list - - ICheckMovies Builders: - - Overview: builders/icheckmovies.md - - ICheckMovies List: builders/icheckmovies/#icheckmovies-list - - FlixPatrol Builders: - - Overview: builders/flixpatrol.md - - FlixPatrol Top Platform: builders/flixpatrol/#flixpatrol-top - - Reciperr Builders: - - Overview: builders/reciperr.md - - Reciperr List: builders/reciperr/#reciperr-list - - StevenLu Builders: - - Overview: builders/stevenlu.md - - StevenLu List: builders/stevenlu/#stevenlu-s-popular-movies-list - - AniDB Builders: - - Overview: builders/anidb.md - - AniDB ID: builders/anidb/#anidb-id - - AniDB Relation: builders/anidb/#anidb-relation - - AniDB Popular: builders/anidb/#anidb-popular - - AniDB Tag: builders/anidb/#anidb-tag - - AniList Builders: - - Overview: builders/anilist.md - - AniList Top Rated: builders/anilist/#anilist-top-rated - - AniList Anilist Popular: builders/anilist/#anilist-anilist-popular - - AniList Trending: builders/anilist/#anilist-trending - - AniList Relations: builders/anilist/#anilist-relations - - AniList Studio: builders/anilist/#anilist-studio - - AniList ID: builders/anilist/#anilist-id - - AniList UserList: builders/anilist/#anilist-userlist - - AniList Search: builders/anilist/#anilist-search - - MyAnimeList Builders: - - Overview: builders/myanimelist.md - - MyAnimeList Search: builders/myanimelist/#myanimelist-search - - MyAnimeList Top All: builders/myanimelist/#myanimelist-top-all - - MyAnimeList Top Airing: builders/myanimelist/#myanimelist-top-airing - - MyAnimeList Top Upcoming: builders/myanimelist/#myanimelist-top-upcoming - - MyAnimeList Top TV Series: builders/myanimelist/#myanimelist-top-tv-series - - MyAnimeList Top Movies: builders/myanimelist/#myanimelist-top-movies - - MyAnimeList Top OVA Series: builders/myanimelist/#myanimelist-top-ova-series - - MyAnimeList Top Specials: builders/myanimelist/#myanimelist-top-specials - - MyAnimeList Most Popular: builders/myanimelist/#myanimelist-most-popular - - MyAnimeList Most Favorited: builders/myanimelist/#myanimelist-most-favorited - - MyAnimeList Suggested: builders/myanimelist/#myanimelist-suggested - - MyAnimeList ID: builders/myanimelist/#myanimelist-id - - MyAnimeList UserList: builders/myanimelist/#myanimelist-userlist - - MyAnimeList Seasonal: builders/myanimelist/#myanimelist-seasonal - - "Dynamic Collections": - - Overview: builders/dynamic.md - - TMDb Dynamic Collections: - - TMDb Collection: builders/dynamic_types/#tmdb-collection - - TMDb Popular People: builders/dynamic_types/#tmdb-popular-people - - Original Language: builders/dynamic_types/#original-language - - Origin Country: builders/dynamic_types/#origin-country - - Trakt Dynamic Collections: - - Trakt User Lists: builders/dynamic_types/#trakt-user-lists - - Trakt Liked Lists: builders/dynamic_types/#trakt-liked-lists - - Trakt People Lists: builders/dynamic_types/#trakt-people-lists - - Plex Dynamic Collections: - - Actor: builders/dynamic_types/#actor - - Director: builders/dynamic_types/#director - - Writer: builders/dynamic_types/#writer - - Producer: builders/dynamic_types/#producer - - Genre: builders/dynamic_types/#genre - - Album Genre: builders/dynamic_types/#album-genre - - Content Rating: builders/dynamic_types/#content-rating - - Year: builders/dynamic_types/#year - - Decade: builders/dynamic_types/#decade - - Country: builders/dynamic_types/#country - - Resolution: builders/dynamic_types/#resolution - - Subtitle Language: builders/dynamic_types/#subtitle-language - - Audio Language: builders/dynamic_types/#audio-language - - Studio: builders/dynamic_types/#studio - - Edition: builders/dynamic_types/#edition - - Network: builders/dynamic_types/#network - - Mood: builders/dynamic_types/#mood - - Album Mood: builders/dynamic_types/#album-mood - - Track Mood: builders/dynamic_types/#track-mood - - Style: builders/dynamic_types/#style - - Album Style: builders/dynamic_types/#album-style - - Other Dynamic Collections: - - Number: builders/dynamic_types/#number - - Custom: builders/dynamic_types/#custom + - Overview: files/overview.md + - FILES: + - Collection Files: files/collections.md + - Overlay Files: files/overlays.md + - Playlist Files: files/playlists.md + - Metadata Files: files/metadata.md + - Definition Templates: files/templates.md + - Dynamic Collections: files/dynamic.md + - Dynamic Collection Types & Data: files/dynamic_types.md + - DEFINITION ATTRIBUTES: + - Builders: + - Overview: files/builders/overview.md + - Dumb Plex Builders: files/builders/plex.md + - Smart Plex Builders: files/builders/smart.md + - TMDb Builders: files/builders/tmdb.md + - TVDb Builders: files/builders/tvdb.md + - IMDb Builders: files/builders/imdb.md + - Trakt Builders: files/builders/trakt.md + - Tautulli Builders: files/builders/tautulli.md + - Radarr Builders: files/builders/radarr.md + - Sonarr Builders: files/builders/sonarr.md + - MdbList Builders: files/builders/mdblist.md + - Letterboxd Builders: files/builders/letterboxd.md + - ICheckMovies Builders: files/builders/icheckmovies.md + - FlixPatrol Builders: files/builders/flixpatrol.md + - Reciperr Builders: files/builders/reciperr.md + - StevenLu Builders: files/builders/stevenlu.md + - AniDB Builders: files/builders/anidb.md + - AniList Builders: files/builders/anilist.md + - MyAnimeList Builders: files/builders/myanimelist.md + - Filters: files/filters.md + - Definition Settings: files/settings.md + - Radarr/Sonarr Settings: files/arr.md + - Collection/Playlist Metadata Updates: files/updates.md + - Item Metadata Updates: files/item_updates.md - MISCELLANEOUS: - - EXPLANATION GUIDES: - - Plex Ratings Explained: pmm/essentials/ratings.md - - Scheduling Guide: pmm/install/guides/scheduling.md - - Image Asset Directory Guide: pmm/install/guides/assets.md - - Log Files: pmm/essentials/logs.md - - YAML File Guide: pmm/essentials/yaml.md - - Formula 1 Metadata Guide: pmm/install/guides/formula.md - - COMPANION SCRIPTS: - - Overview: pmm/essentials/scripts.md - - Plex Image Cleanup: pmm/essentials/scripts/image-cleanup.md - - PMM Overlay Reset: pmm/essentials/scripts/overlay-reset.md - - USEFUL LINKS: - - Feature Requests: https://features.metamanager.wiki/ - - Bugs & Issues: https://github.com/meisnate12/Plex-Meta-Manager/issues - - User Configs Repository: https://github.com/meisnate12/Plex-Meta-Manager-Configs - - Discord Server: https://discord.gg/NfH6mGFuAB - - Donate/Sponsor PMM: https://github.com/sponsors/meisnate12 - - Acknowledgements: pmm/essentials/acknowledgements.md + - EXPLANATION GUIDES: *guides + - COMPANION SCRIPTS: *scripts + - USEFUL LINKS: *links - SPONSOR: https://github.com/sponsors/meisnate12 # - SHOWCASE: # - Overlays Showcase: showcase/overlays.md diff --git a/modules/builder.py b/modules/builder.py index 5b65d508..85ef2754 100644 --- a/modules/builder.py +++ b/modules/builder.py @@ -1485,7 +1485,6 @@ class CollectionBuilder: else: raise Failed(f"{self.Type} Error: imdb_id {value} must begin with tt") elif method_name == "imdb_list": - logger.warning(f"{self.Type} Warning: imdb_list has been deprecated, and at some point may no longer work. Please switch to using imdb_search.") try: for imdb_dict in self.config.IMDb.validate_imdb_lists(self.Type, method_data, self.language): self.builders.append((method_name, imdb_dict)) diff --git a/modules/config.py b/modules/config.py index 19bac4c9..bc3c2bd1 100644 --- a/modules/config.py +++ b/modules/config.py @@ -676,6 +676,7 @@ class ConfigFile: self.playlist_names = [] self.playlist_files = [] if "playlist_files" in self.data: + logger.info("") logger.info("Reading in Playlist Files") if self.data["playlist_files"]: paths_to_check = self.data["playlist_files"] @@ -816,29 +817,47 @@ class ConfigFile: else: logger.error(f"Config Error: Folder {os.path.dirname(os.path.abspath(lib['report_path']))} does not exist") if lib and "operations" in lib and lib["operations"]: - if isinstance(lib["operations"], dict): - if "delete_collections" not in lib["operations"] and ("delete_unmanaged_collections" in lib["operations"] or "delete_collections_with_less" in lib["operations"]): - lib["operations"]["delete_collections"] = {} - if "delete_unmanaged_collections" in lib["operations"]: - lib["operations"]["delete_collections"]["unmanaged"] = check_for_attribute(lib["operations"], "delete_unmanaged_collections", var_type="bool", default=False, save=False) - if "delete_collections_with_less" in lib["operations"]: - lib["operations"]["delete_collections"]["less"] = check_for_attribute(lib["operations"], "delete_collections_with_less", var_type="int", default_is_none=True, save=False) + final_operations = {} + logger.separator("Operation Configuration", space=False, border=False) + config_ops = util.parse("Config", "operations", lib["operations"], datatype="listdict") + op_size = len(config_ops) + for i, config_op in enumerate(config_ops, 1): + logger.info("") + logger.info(f"Operation {i}/{op_size}") + for k, v in config_op.items(): + logger.info(f" {k}: {v}") + if "schedule" in config_op and not self.ignore_schedules: + if not config_op["schedule"]: + logger.error("Config Error: schedule attribute is blank") + else: + try: + util.schedule_check("schedule", config_op["schedule"], current_time, self.run_hour) + except NotScheduled: + logger.info(f"Skipping Operation Not Scheduled for {config_op['schedule']}") + continue + if "delete_collections" not in config_op and ("delete_unmanaged_collections" in config_op or "delete_collections_with_less" in config_op): + config_op["delete_collections"] = {} + if "delete_unmanaged_collections" in config_op: + config_op["delete_collections"]["unmanaged"] = check_for_attribute(config_op, "delete_unmanaged_collections", var_type="bool", default=False, save=False) + if "delete_collections_with_less" in config_op: + config_op["delete_collections"]["less"] = check_for_attribute(config_op, "delete_collections_with_less", var_type="int", default_is_none=True, save=False) + section_final = {} for op, data_type in library_operations.items(): - if op not in lib["operations"]: + if op not in config_op: continue if isinstance(data_type, list): - params[op] = check_for_attribute(lib["operations"], op, test_list=data_type, default_is_none=True, save=False) + section_final[op] = check_for_attribute(config_op, op, test_list=data_type, default_is_none=True, save=False) elif op == "mass_collection_mode": - params[op] = util.check_collection_mode(lib["operations"][op]) + section_final[op] = util.check_collection_mode(config_op[op]) elif data_type == "dict": - input_dict = lib["operations"][op] + input_dict = config_op[op] if op in ["mass_poster_update", "mass_background_update"] and input_dict and not isinstance(input_dict, dict): input_dict = {"source": input_dict} if not input_dict or not isinstance(input_dict, dict): raise Failed(f"Config Error: {op} must be a dictionary") if op in ["mass_poster_update", "mass_background_update"]: - params[op] = { + section_final[op] = { "source": check_for_attribute(input_dict, "source", test_list=mass_image_options, default_is_none=True, save=False), "seasons": check_for_attribute(input_dict, "seasons", var_type="bool", default=True, save=False), "episodes": check_for_attribute(input_dict, "episodes", var_type="bool", default=True, save=False), @@ -849,32 +868,37 @@ class ConfigFile: default_path = check_for_attribute(input_dict, "path", var_type="path", save=False) except Failed as e: logger.debug(f"{e} using default {default_path}") - params[op] = { + section_final[op] = { "path": default_path, "exclude": check_for_attribute(input_dict, "exclude", var_type="lower_list", default_is_none=True, save=False), "sync_tags": check_for_attribute(input_dict, "sync_tags", var_type="bool", default=False, save=False), "add_blank_entries": check_for_attribute(input_dict, "add_blank_entries", var_type="bool", default=True, save=False) } if "mapper" in op: - params[op] = input_dict + section_final[op] = {} for old_value, new_value in input_dict.items(): if not old_value: logger.warning("Config Warning: The key cannot be empty") - elif old_value == new_value: + elif new_value and str(old_value) == str(new_value): logger.warning(f"Config Warning: {op} value '{new_value}' ignored as it cannot be mapped to itself") else: - params[op][str(old_value)] = str(new_value) if new_value else None + section_final[op][str(old_value)] = str(new_value) if new_value else None # noqa if op == "delete_collections": - params[op] = { + section_final[op] = { "managed": check_for_attribute(input_dict, "managed", var_type="bool", default_is_none=True, save=False), "configured": check_for_attribute(input_dict, "configured", var_type="bool", default_is_none=True, save=False), "less": check_for_attribute(input_dict, "less", var_type="int", default_is_none=True, save=False, int_min=1), } else: - params[op] = check_for_attribute(lib["operations"], op, var_type=data_type, default=False, save=False) - else: - logger.error("Config Error: operations must be a dictionary") + section_final[op] = check_for_attribute(config_op, op, var_type=data_type, default=False, save=False) + for k, v in section_final.items(): + if k not in final_operations: + final_operations[k] = v + else: + logger.warning(f"Config Warning: Operation {k} already scheduled") + for k, v in final_operations.items(): + params[k] = v def error_check(err_attr, service): logger.error(f"Config Error: Operation {err_attr} cannot be {params[err_attr]} without a successful {service} Connection") params[err_attr] = None @@ -901,6 +925,8 @@ class ConfigFile: params["collection_files"] = [] try: if lib and "collection_files" in lib: + logger.info("") + logger.info("Reading in Collection Files") if not lib["collection_files"]: raise Failed("Config Error: collection_files attribute is blank") files, had_scheduled = util.load_files(lib["collection_files"], "collection_files", schedule=(current_time, self.run_hour, self.ignore_schedules), lib_vars=lib_vars) @@ -916,6 +942,8 @@ class ConfigFile: params["metadata_files"] = [] try: if lib and "metadata_files" in lib: + logger.info("") + logger.info("Reading in Metadata Files") if not lib["metadata_files"]: raise Failed("Config Error: metadata_files attribute is blank") files, had_scheduled = util.load_files(lib["metadata_files"], "metadata_files", schedule=(current_time, self.run_hour, self.ignore_schedules), lib_vars=lib_vars) @@ -938,12 +966,16 @@ class ConfigFile: except NotScheduled: params["skip_library"] = True + old_reset = None + old_schedule = None params["overlay_files"] = [] params["remove_overlays"] = False params["reapply_overlays"] = False params["reset_overlays"] = None if lib and "overlay_files" in lib: try: + logger.info("") + logger.info("Reading in Overlay Files") if not lib["overlay_files"]: raise Failed("Config Error: overlay_files attribute is blank") files, _ = util.load_files(lib["overlay_files"], "overlay_files", lib_vars=lib_vars) @@ -952,52 +984,74 @@ class ConfigFile: if ("remove_overlays" in file and file["remove_overlays"] is True) \ or ("remove_overlay" in file and file["remove_overlay"] is True) \ or ("revert_overlays" in file and file["revert_overlays"] is True): + logger.warning("Config Warning: remove_overlays under overlay_files is depreciated it now goes directly under the library attribute.") params["remove_overlays"] = True if ("reapply_overlays" in file and file["reapply_overlays"] is True) \ or ("reapply_overlay" in file and file["reapply_overlay"] is True): + logger.warning("Config Warning: reapply_overlays under overlay_files is depreciated it now goes directly under the library attribute.") params["reapply_overlays"] = True if "reset_overlays" in file or "reset_overlay" in file: attr = f"reset_overlay{'s' if 'reset_overlays' in file else ''}" - reset_options = file[attr] if isinstance(file[attr], list) else [file[attr]] - final_list = [] - for reset_option in reset_options: - if reset_option and reset_option in reset_overlay_options: - final_list.append(reset_option) - else: - final_text = f"Config Error: reset_overlays attribute {reset_option} invalid. Options: " - for option, description in reset_overlay_options.items(): - final_text = f"{final_text}\n {option} ({description})" - logger.error(final_text) - if final_list: - params["reset_overlays"] = final_list - else: - final_text = f"Config Error: No proper reset_overlays option found. {file[attr]}. Options: " - for option, description in reset_overlay_options.items(): - final_text = f"{final_text}\n {option} ({description})" - logger.error(final_text) + logger.warning("Config Warning: reset_overlays under overlay_files is depreciated it now goes directly under the library attribute.") + old_reset = file[attr] if "schedule" in file and file["schedule"]: - logger.debug(f"Value: {file['schedule']}") - err = None - try: - util.schedule_check("schedule", file["schedule"], current_time, self.run_hour) - except NotScheduledRange as e: - err = e - except NotScheduled as e: - if not self.ignore_schedules: - err = e - if err: - raise NotScheduled(f"Overlay Schedule:{err}\n\nOverlays not scheduled to run") - if not files and params["remove_overlays"] is False and params["reset_overlays"] is False: - raise Failed("Config Error: No Paths Found for overlay_files") + logger.warning("Config Warning: schedule under overlay_files is depreciated it now goes directly under the library attribute as schedule_overlays.") + old_schedule = file["schedule"] params["overlay_files"] = files - except NotScheduled as e: - logger.info("") - logger.info(e) - params["overlay_files"] = [] - params["remove_overlays"] = False except Failed as e: logger.error(e) + if lib: + if ("remove_overlays" in lib and lib["remove_overlays"] is True) \ + or ("remove_overlay" in lib and lib["remove_overlay"] is True) \ + or ("revert_overlays" in lib and lib["revert_overlays"] is True): + params["remove_overlays"] = True + if ("reapply_overlays" in lib and lib["reapply_overlays"] is True) \ + or ("reapply_overlay" in lib and lib["reapply_overlay"] is True): + params["reapply_overlays"] = True + if "reset_overlays" in lib or "reset_overlay" in lib: + attr = f"reset_overlay{'s' if 'reset_overlays' in lib else ''}" + old_reset = lib[attr] + if old_reset is not None: + reset_options = old_reset if isinstance(old_reset, list) else [old_reset] + final_list = [] + for reset_option in reset_options: + if reset_option and reset_option in reset_overlay_options: + final_list.append(reset_option) + else: + final_text = f"Config Error: reset_overlays attribute {reset_option} invalid. Options: " + for option, description in reset_overlay_options.items(): + final_text = f"{final_text}\n {option} ({description})" + logger.error(final_text) + if final_list: + params["reset_overlays"] = final_list + else: + final_text = f"Config Error: No proper reset_overlays option found. {old_reset}. Options: " + for option, description in reset_overlay_options.items(): + final_text = f"{final_text}\n {option} ({description})" + logger.error(final_text) + if "schedule_overlays" in lib or "schedule_overlay" in lib: + attr = f"schedule_overlay{'s' if 'schedule_overlays' in lib else ''}" + old_schedule = lib[attr] + if old_schedule is not None: + logger.debug(f"Value: {old_schedule}") + err = None + try: + util.schedule_check("schedule_overlays", old_schedule, current_time, self.run_hour) + except NotScheduledRange as e: + err = e + except NotScheduled as e: + if not self.ignore_schedules: + err = e + if err: + logger.info("") + logger.info(f"Overlay Schedule:{err}\n\nOverlays not scheduled to run") + params["overlay_files"] = [] + params["remove_overlays"] = False + + if lib and "overlay_files" in lib and not params["overlay_files"] and params["remove_overlays"] is False and params["reset_overlays"] is False: + logger.error("Config Error: No Paths Found for overlay_files") + params["image_files"] = [] try: if lib and "image_files" in lib: diff --git a/modules/imdb.py b/modules/imdb.py index 919187b6..3bc19b05 100644 --- a/modules/imdb.py +++ b/modules/imdb.py @@ -73,11 +73,7 @@ event_options = { } base_url = "https://www.imdb.com" graphql_url = "https://api.graphql.imdb.com/" -urls = { - "lists": f"{base_url}/list/ls", - "keyword_searches": f"{base_url}/search/keyword/", - "filmography_searches": f"{base_url}/filmosearch/" -} +list_url = f"{base_url}/list/ls" class IMDb: def __init__(self, config): @@ -109,11 +105,12 @@ class IMDb: raise Failed(f"{err_type} Error: imdb_list url attribute is blank") else: imdb_url = imdb_dict[dict_methods["url"]].strip() - if imdb_url.startswith("https://www.imdb.com/search/title/"): - raise Failed("IMDb Error: IMDb URLs with https://www.imdb.com/search/title/ no longer work with imdb_list.") - if not imdb_url.startswith(tuple([v for k, v in urls.items()])): - fails = "\n ".join([f"{v} (For {k.replace('_', ' ').title()})" for k, v in urls.items()]) - raise Failed(f"IMDb Error: {imdb_url} must begin with either:\n {fails}") + if imdb_url.startswith(f"{base_url}/search/"): + raise Failed("IMDb Error: URLs with https://www.imdb.com/search/ no longer works with imdb_list use imdb_search.") + if imdb_url.startswith(f"{base_url}/filmosearch/"): + raise Failed("IMDb Error: URLs with https://www.imdb.com/filmosearch/ no longer works with imdb_list use imdb_search.") + if not imdb_url.startswith(list_url): + raise Failed(f"IMDb Error: imdb_list URLs must begin with {list_url}") self._total(imdb_url, language) list_count = None if "limit" in dict_methods: @@ -178,12 +175,8 @@ class IMDb: raise Failed(f"IMDb Error: Failed to parse URL: {imdb_url}") def _total(self, imdb_url, language): - if imdb_url.startswith(urls["lists"]): - xpath_total = "//div[@class='desc lister-total-num-results']/text()" - per_page = 100 - else: - xpath_total = "//div[@class='desc']/text()" - per_page = 50 + xpath_total = "//div[@class='desc lister-total-num-results']/text()" + per_page = 100 results = self._request(imdb_url, language=language, xpath=xpath_total) total = 0 for result in results: diff --git a/modules/meta.py b/modules/meta.py index 27fe72d0..1061941f 100644 --- a/modules/meta.py +++ b/modules/meta.py @@ -856,7 +856,7 @@ class MetadataFile(DataFile): all_keys[str(item.year)] = str(item.year) auto_list = {str(k): f"{k}s" for k in addons if str(k) not in exclude and f"{k}s" not in exclude} default_template = {"smart_filter": {"limit": 50, "sort_by": "critic_rating.desc", "any": {"year": "<<value>>"}}} - default_title_format = "Best <<library_type>>s of <<key_name>>" + default_title_format = "Best <<library_type>>s of the <<key_name>>" elif auto_type in ["genre", "mood", "style", "album_genre", "album_mood", "album_style", "track_mood", "country", "studio", "edition", "network", "year", "episode_year", "decade", "content_rating", "subtitle_language", "audio_language", "resolution"]: search_tag = auto_type_translation[auto_type] if auto_type in auto_type_translation else auto_type if library.is_show and auto_type in ["resolution", "subtitle_language", "audio_language"]: @@ -890,7 +890,15 @@ class MetadataFile(DataFile): default_title_format = "<<key_name>> <<library_type>>s" else: default_template = {"smart_filter": {"limit": 50, "sort_by": "critic_rating.desc", "any": {f"{auto_type}.is" if auto_type == "studio" else auto_type: "<<value>>"}}} - default_title_format = "Best <<library_type>>s of <<key_name>>" if auto_type in ["year", "decade", "episode_year"] else "Top <<key_name>> <<library_type>>s" + if auto_type.startswith("episode"): + default_template["builder_level"] = "episode" + default_title_format = "Best Episodes of <<key_name>>" + elif auto_type == "year": + default_title_format = "Best <<library_type>>s of <<key_name>>" + elif auto_type == "decade": + default_title_format = "Best <<library_type>>s of the <<key_name>>" + else: + default_title_format = "Top <<key_name>> <<library_type>>s" elif auto_type == "tmdb_collection": all_items = library.get_all() for i, item in enumerate(all_items, 1): diff --git a/modules/util.py b/modules/util.py index 31691604..900e9fb6 100644 --- a/modules/util.py +++ b/modules/util.py @@ -418,31 +418,20 @@ def load_files(files_to_load, method, err_type="Config", schedule=None, lib_vars if single and len(files_to_load) > 1: raise Failed(f"{err_type} Error: {method} can only have one entry") for file in files_to_load: + logger.info("") if isinstance(file, dict): - temp_vars = {} - if "template_variables" in file and file["template_variables"] and isinstance(file["template_variables"], dict): - temp_vars = file["template_variables"] - for k, v in lib_vars.items(): - if k not in temp_vars: - temp_vars[k] = v - asset_directory = [] - if "asset_directory" in file and file["asset_directory"]: - for asset_path in get_list(file["asset_directory"], split=False): - if os.path.exists(asset_path): - asset_directory.append(asset_path) - else: - logger.error(f"{err_type} Error: Asset Directory Does Not Exist: {asset_path}") - current = [] def check_dict(attr, name): if attr in file and (method != "metadata_files" or attr != "pmm"): + logger.info(f"Reading {attr}: {file[attr]}") if file[attr]: if attr == "git" and file[attr].startswith("PMM/"): - current.append(("PMM Default", file[attr][4:], temp_vars, asset_directory)) + current.append(("PMM Default", file[attr][4:])) else: - current.append((name, file[attr], temp_vars, asset_directory)) + current.append((name, file[attr])) else: logger.error(f"{err_type} Error: {method} {attr} is blank") + return "" check_dict("url", "URL") check_dict("git", "Git") @@ -450,6 +439,7 @@ def load_files(files_to_load, method, err_type="Config", schedule=None, lib_vars check_dict("repo", "Repo") check_dict("file", "File") if not single and "folder" in file: + logger.info(f"Reading folder: {file['folder']}") if file["folder"] is None: logger.error(f"{err_type} Error: {method} folder is blank") elif not os.path.isdir(file["folder"]): @@ -458,30 +448,52 @@ def load_files(files_to_load, method, err_type="Config", schedule=None, lib_vars yml_files = glob_filter(os.path.join(file["folder"], "*.yml")) yml_files.extend(glob_filter(os.path.join(file["folder"], "*.yaml"))) if yml_files: - current.extend([("File", yml, temp_vars, asset_directory) for yml in yml_files]) + current.extend([("File", yml) for yml in yml_files]) else: logger.error(f"{err_type} Error: No YAML (.yml|.yaml) files found in {file['folder']}") + temp_vars = {} + if "template_variables" in file and file["template_variables"] and isinstance(file["template_variables"], dict): + temp_vars = file["template_variables"] + for k, v in lib_vars.items(): + if k not in temp_vars: + temp_vars[k] = v + if temp_vars: + logger.info(f"Template Variables: {temp_vars}") + + asset_directory = [] + if "asset_directory" in file and file["asset_directory"]: + logger.info(f"Asset Directory: {file['asset_directory']}") + for asset_path in get_list(file["asset_directory"], split=False): + if os.path.exists(asset_path): + asset_directory.append(asset_path) + else: + logger.error(f"{err_type} Error: Asset Directory Does Not Exist: {asset_path}") + if schedule and "schedule" in file and file["schedule"]: current_time, run_hour, ignore_schedules = schedule - logger.debug(f"Value: {file['schedule']}") + logger.info(f"Schedule: {file['schedule']}") err = None + schedule_str = None try: - schedule_check("schedule", file["schedule"], current_time, run_hour) + schedule_str = schedule_check("schedule", file["schedule"], current_time, run_hour) except NotScheduledRange as e: err = e + schedule_str = e except NotScheduled as e: if not ignore_schedules: err = e + schedule_str = e + if schedule_str: + logger.info(f"Schedule Read:{schedule_str}\n") + if err: had_scheduled = True - logger.info(f"Metadata Schedule:{err}\n") - for file_type, file_path, temp_vars, asset_directory in current: - logger.warning(f"{file_type}: {file_path} not scheduled to run") - logger.info("") + logger.warning(f"This {'set of files' if len(current) > 1 else 'file'} not scheduled to run") continue - files.extend(current) + files.extend([(ft, fp, temp_vars, asset_directory) for ft, fp in current]) else: + logger.info(f"Reading file: {file}") if os.path.exists(file): files.append(("File", file, {}, None)) else: