From bb2e9fe42d038f1f0598f7ba53afc710d880cabd Mon Sep 17 00:00:00 2001 From: nharris Date: Fri, 4 Nov 2022 12:45:53 -0600 Subject: [PATCH] - Fix, clarify visibility scheduling for holiday and award collections --- .../movies_collections_awards_general.yml | 26 ++-- .../general/movies_collections_general.yml | 25 ++-- plex/pmm/tips_and_tricks.md | 117 +++++++++++------- 3 files changed, 100 insertions(+), 68 deletions(-) diff --git a/plex/pmm/collections/general/movies_collections_awards_general.yml b/plex/pmm/collections/general/movies_collections_awards_general.yml index 05e6d54..f0fba11 100644 --- a/plex/pmm/collections/general/movies_collections_awards_general.yml +++ b/plex/pmm/collections/general/movies_collections_awards_general.yml @@ -63,7 +63,7 @@ collections: template: { name: Award, level: "++++++" } summary: "Who will take home the trophy?" - schedule: never + schedule: yearly(02/01), yearly(04/01) # You have to schedule it to run before and after visibility timeframe for visibility to switch visible_home: range(02/01-03/31) visible_shared: range(02/01-03/31) @@ -74,7 +74,7 @@ collections: template: { name: Award, level: "+++++" } summary: "Who will take home the trophy?" - schedule: never + schedule: yearly(02/01), yearly(04/01) # You have to schedule it to run before and after visibility timeframe for visibility to switch visible_home: range(02/01-03/31) visible_shared: range(02/01-03/31) @@ -85,7 +85,7 @@ collections: template: { name: Holiday, level: "+++++" } summary: "Who will take home the trophy?" - schedule: never + schedule: yearly(02/01), yearly(04/01) # You have to schedule it to run before and after visibility timeframe for visibility to switch visible_home: range(02/01-03/31) visible_shared: range(02/01-03/31) @@ -98,7 +98,7 @@ collections: trakt_list: # TODO: NEED TO REPLACE MANUALLY - https://trakt.tv/users/jcbwoldseth/lists/oscar-race-2022 - schedule: yearly(02/20) + schedule: yearly(02/01), yearly(02/20), yearly(04/01) # You have to schedule it to run again after visibility timeframe for visibility to switch back visible_home: range(02/01-03/31) visible_shared: range(02/01-03/31) @@ -111,7 +111,7 @@ collections: level: "++" } imdb_list: - https://www.imdb.com/search/title/?title_type=feature,documentary&groups=oscar_winner - schedule: yearly(03/28) + schedule: yearly(02/01), yearly(03/28), yearly(04/01) # You have to schedule it to run again after visibility timeframe for visibility to switch back visible_home: range(02/01-03/31) visible_shared: range(02/01-03/31) @@ -122,7 +122,7 @@ collections: level: "++" } imdb_list: - https://www.imdb.com/search/title/?groups=best_director_winners&sort=year%2Cdesc - schedule: yearly(04/01), yearly(01/01) # in case list wasn't updated in April, check again in January next year + schedule: yearly(02/01), yearly(04/01) # You have to schedule it to run before and after visibility timeframe for visibility to switch visible_home: range(02/01-03/31) visible_shared: range(02/01-03/31) summary: The Academy Award for Best Director is one of the Academy Awards presented annually by the Academy of Motion Picture Arts and Sciences since the awards debuted in 1929. @@ -135,7 +135,7 @@ collections: level: "++" } imdb_list: - https://www.imdb.com/search/title/?groups=best_picture_winners&sort=year%2Cdesc - schedule: yearly(04/01), yearly(01/01) # in case list wasn't updated in April, check again in January next year + schedule: yearly(02/01), yearly(04/01) # You have to schedule it to run before and after visibility timeframe for visibility to switch visible_home: range(02/01-03/31) visible_shared: range(02/01-03/31) summary: The Academy Award for Best Picture is one of the Academy Awards presented annually by the Academy of Motion Picture Arts and Sciences since the awards debuted in 1929. @@ -148,7 +148,7 @@ collections: level: "++" } summary: "Previous Razzie Worst Picture winners" mdblist_list: https://mdblist.com/lists/hdlists/razzie-awards-worst-picture-winners - schedule: yearly(04/01), yearly(01/01) # in case list wasn't updated in April, check again in January next year + schedule: yearly(02/01), yearly(04/01) # You have to schedule it to run before and after visibility timeframe for visibility to switch visible_home: range(02/01-03/31) visible_shared: range(02/01-03/31) @@ -159,7 +159,7 @@ collections: template: { name: Award, level: "++" } trakt_list: https://trakt.tv/users/sp1ti/lists/cannes-palme-d-or-winners - schedule: yearly(06/01) + schedule: yearly(06/01), yearly(07/01) # You have to schedule it to run again after visibility timeframe for visibility to switch back visible_home: range(06/01-06/30) visible_shared: range(06/01-06/30) @@ -170,7 +170,7 @@ collections: template: { name: Award, level: "++" } trakt_list: https://trakt.tv/users/fauxliege/lists/cesar-meilleur-film - schedule: yearly(03/14) + schedule: yearly(03/14), yearly(04/01) # You have to schedule it to run before and after visibility timeframe for visibility to switch visible_home: range(03/14-03/31) visible_shared: range(03/14-03/31) @@ -181,7 +181,7 @@ collections: template: { name: Award, level: "++" } trakt_list: https://trakt.tv/users/maxwelldeux/lists/berlin-international-film-festival-golden-bears - schedule: yearly(02/21) + schedule: yearly(02/21), yearly(04/01) # You have to schedule it to run before and after visibility timeframe for visibility to switch visible_home: range(02/21-03/31) visible_shared: range(02/21-03/31) @@ -192,7 +192,7 @@ collections: template: { name: Award, level: "++" } trakt_list: https://trakt.tv/users/maxwelldeux/lists/bafta-award-best-film - schedule: yearly(02/21) + schedule: yearly(02/21), yearly(04/01) # You have to schedule it to run before and after visibility timeframe for visibility to switch visible_home: range(02/21-03/31) visible_shared: range(02/21-03/31) @@ -203,7 +203,7 @@ collections: template: { name: Award, level: "++" } trakt_list: https://trakt.tv/users/maxwelldeux/lists/venice-film-festival-golden-lion - schedule: yearly(02/21) + schedule: yearly(02/21), yearly(04/01) # You have to schedule it to run before and after visibility timeframe for visibility to switch visible_home: range(02/21-03/31) visible_shared: range(02/21-03/31) diff --git a/plex/pmm/collections/general/movies_collections_general.yml b/plex/pmm/collections/general/movies_collections_general.yml index f8fc0a9..5bb0309 100644 --- a/plex/pmm/collections/general/movies_collections_general.yml +++ b/plex/pmm/collections/general/movies_collections_general.yml @@ -321,9 +321,9 @@ collections: # - https://trakt.tv/users/jayinftl/lists/halloween # - https://trakt.tv/users/roswellgeek/lists/halloween collection_order: audience_rating.desc - schedule: range(09/30-10/31) + schedule: range(09/30-11/01) # You have to schedule it one day longer so it will run and change visibility visible_home: range(09/30-10/31) - visible_shared: range(10/01-10/31) + visible_shared: range(09/30-10/31) # TODO: Replace for 2023 "31 Days of Horror": @@ -333,7 +333,7 @@ collections: trakt_list: - https://trakt.tv/users/lish408/lists/31-days-of-horror-2022 collection_order: custom - schedule: range(09/30-10/31) + schedule: range(09/30-11/01) # You have to schedule it one day longer so it will run and change visibility visible_home: range(09/30-10/31) visible_shared: range(09/30-10/31) @@ -344,10 +344,11 @@ collections: trakt_list: - https://trakt.tv/users/hdlists/lists/halloween-movies-for-kids collection_order: custom - schedule: range(09/30-10/31) + schedule: range(09/30-11/01) # You have to schedule it one day longer so it will run and change visibility visible_home: range(09/30-10/31) visible_shared: range(09/30-10/31) + "He's Right Behind You!": template: { name: Holiday, level: "++" } @@ -355,7 +356,7 @@ collections: trakt_list: - https://trakt.tv/users/hdlists/lists/80s-slasher-movies collection_order: custom - schedule: range(09/30-10/31) + schedule: range(09/30-11/01) # You have to schedule it one day longer so it will run and change visibility visible_home: range(09/30-10/31) visible_shared: range(09/30-10/31) @@ -369,9 +370,9 @@ collections: - https://trakt.tv/users/retrogran/lists/thanksgiving-season-movies - https://trakt.tv/users/padawan_seneca/lists/vibe-autumn-tv-series-movies collection_order: audience_rating.desc - schedule: range(11/01-11/28) - visible_home: range(11/01-11/28) - visible_shared: range(11/01-11/28) + schedule: range(11/01-12/01) # You have to schedule it one day longer so it will run and change visibility + visible_home: range(11/01-11/30) + visible_shared: range(11/01-11/30) "This is Christmas": template: { name: Holiday, @@ -382,7 +383,7 @@ collections: - https://trakt.tv/users/questdvd/lists/absolute-hayes-christmas-classics - https://trakt.tv/users/littlestella3/lists/christmas collection_order: audience_rating.desc - schedule: range(11/29-12/31) + schedule: range(11/29-01/01) # You have to schedule it one day longer so it will run and change visibility visible_home: range(11/29-12/31) visible_shared: range(11/29-12/31) @@ -393,7 +394,7 @@ collections: trakt_list: - https://trakt.tv/users/mzdiobolik/lists/hallmark-christmas-movies collection_order: audience_rating.desc - schedule: range(11/29-12/31) + schedule: range(11/29-01/01) # You have to schedule it one day longer so it will run and change visibility visible_home: range(11/29-12/31) visible_shared: range(11/29-12/31) @@ -406,7 +407,7 @@ collections: - https://trakt.tv/users/barsaky/lists/den-svateho-valentina-valentine-s-day - https://trakt.tv/users/abbelea/lists/movies-best-of-love collection_order: audience_rating.desc - schedule: range(02/01-02/15) + schedule: range(02/01-02/16) # You have to schedule it one day longer so it will run and change visibility visible_home: range(02/01-02/15) visible_shared: range(02/01-02/15) @@ -418,7 +419,7 @@ collections: - https://trakt.tv/users/triadcool/lists/irish - https://trakt.tv/users/sympli/lists/st-patricks-day-movies collection_order: audience_rating.desc - schedule: range(03/10-03/18) + schedule: range(03/10-03/19) # You have to schedule it one day longer so it will run and change visibility visible_home: range(03/10-03/18) visible_shared: range(03/10-03/18) diff --git a/plex/pmm/tips_and_tricks.md b/plex/pmm/tips_and_tricks.md index bc706df..004808c 100644 --- a/plex/pmm/tips_and_tricks.md +++ b/plex/pmm/tips_and_tricks.md @@ -1,9 +1,11 @@ ## Promotion -- Use sort_title to promote and demote certain collections - - start with `+` to promote to top of library - - start with `~` to demote to bottom of a library + +- Use sort_title to promote and demote certain collections + - start with `+` to promote to top of library + - start with `~` to demote to bottom of a library Prefix suggestions: + ``` # Prefixes for (Movie) Collections: # +01_ = Charts @@ -19,77 +21,106 @@ Prefix suggestions: ``` ## Visibility + - `visible_library`, `visible_home` and `visible_shared` - - `true`, `false` or [schedule](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Schedule-Detail) available for all options + - `true`, `false` or [schedule](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Schedule-Detail) available for + all options +- Visibility does not dictate when a playlist/collection is updated: + - When setting visibility to a certain time-frame, make sure the playlist/collection itself is scheduled to update + at + least one day longer than the visibility time-frame. Otherwise, the playlist/collection will not update again and + the + visibility will not change. + - Example: Halloween collection, `visible_shared: (10/01-10/31)`, `schedule: (10/01-11/01)` + - You also need to schedule the playlist to update on the first day of visibility. Otherwise, the playlist will not + update and the visibility will not change. + - If you can spare the processing, the best thing to do would be to have the playlist/collection update every day, + so you don't have to worry about specifically updating it to trigger visibility changes. ## Scheduling + - Save time by updating lesser-important collections and playlists less frequently: - - ex. `schedule: weekly(wednesday), weekly(sunday)` + - ex. `schedule: weekly(wednesday), weekly(sunday)` - Don't need to schedule a `smart_filter` because Plex auto-updates the list itself ## Sorting + - https://github.com/meisnate12/Plex-Meta-Manager/wiki/Plex-Builders#sort-options - If a collection is made of multiple lists, can't use `custom` - - Recommend sorting instead by `popularity.desc` + - Recommend sorting instead by `popularity.desc` - Can't use `collection_order` for Plex `smart_filter` rules. Replacements: - - `collection_order: release` -> `sort_by: release.desc` - - `collection_order: alpha` -> `sort_by: title.desc` - - `collection_order: custom` -> `sort_by: ??` + - `collection_order: release` -> `sort_by: release.desc` + - `collection_order: alpha` -> `sort_by: title.desc` + - `collection_order: custom` -> `sort_by: ??` - Needs to be one level above `all`/`any` criteria list. Ex.: - - `smart_filter`: - - sort_by: `release.desc` - - any: - - criteria1 - - criteria2 + - `smart_filter`: + - sort_by: `release.desc` + - any: + - criteria1 + - criteria2 - Collections display on home screen in order of creation - - Recommend having library-specific collections loaded first in config before general collections + - Recommend having library-specific collections loaded first in config before general collections ## Filters -- Type restrictions - - Plex `smart_filter`/`plex_search`: Use, i.e. `type: episodes`, to limit collection to [specific type](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Plex-Builders#special-attributes) - - Needs to be one level above `all`/`any` criteria list. Ex.: - - `smart_filter`: - - type: `episodes` - - any: - - criteria1 - - criteria2 - - All other rules: Use, i.e., `collection_level: episodes`, to limit collection to [specific type](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Metadata-Details#metadata-details) + +- Type restrictions + - Plex `smart_filter`/`plex_search`: Use, i.e. `type: episodes`, to limit collection + to [specific type](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Plex-Builders#special-attributes) + - Needs to be one level above `all`/`any` criteria list. Ex.: + - `smart_filter`: + - type: `episodes` + - any: + - criteria1 + - criteria2 + - All other rules: Use, i.e., `collection_level: episodes`, to limit collection + to [specific type](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Metadata-Details#metadata-details) ## Templates -- As of v1.16.4, you can define templates in an external file. This allows you to define your templates in one central place, rather than having to copy-paste them into each file. - - Import your templates with the `external_templates` key + +- As of v1.16.4, you can define templates in an external file. This allows you to define your templates in one central + place, rather than having to copy-paste them into each file. + - Import your templates with the `external_templates` key ## Collection vs Playlist + - A collection is an unordered group of content from the same Library (Movies, TV Shows, 4K Movies, etc.) - - Collection configs exist inside metadata configs - - For each Plex library, define a list of "metadata_path" config files - - You can technically group multiple Plex libraries into one "metadata" section, but it's not recommended (too confusing) + - Collection configs exist inside metadata configs + - For each Plex library, define a list of "metadata_path" config files + - You can technically group multiple Plex libraries into one "metadata" section, but it's not recommended (too + confusing) - A playlist is an ordered list of content of the same type (all movies, all shows, all music, etc.) - - Import a list of "playlist" config files. A "show" playlist file will execute on all shows (and only on shows) + - Import a list of "playlist" config files. A "show" playlist file will execute on all shows (and only on shows) ## Overlays -- You can add custom overlay configurations for specific Plex libraries - - Similar to collection/metadata, define a list of "overlay_path" config files for each Plex library +- You can add custom overlay configurations for specific Plex libraries + - Similar to collection/metadata, define a list of "overlay_path" config files for each Plex library ## Collections Import Flow -1. We define a "Movies" section under "libraries" in the `config.yml` file. (The name "Movies" is purely descriptive and doesn't have to match the name of the Plex library) + +1. We define a "Movies" section under "libraries" in the `config.yml` file. (The name "Movies" is purely descriptive and + doesn't have to match the name of the Plex library) 2. In the "Movies" section, we define: - - the "library_name" as "Movies" (this is the name of the Plex library, this does matter) - - the "metadata_path" list of metadata config files. These can come from local files/folders, the Configs repo, or a custom repo. - - In our case, all our config files come from a custom repo. + - the "library_name" as "Movies" (this is the name of the Plex library, this does matter) + - the "metadata_path" list of metadata config files. These can come from local files/folders, the Configs repo, or a + custom repo. + - In our case, all our config files come from a custom repo. 3. Each metadata config file is parsed and executed - - Each config file imports templates from another file (from the custom repo) via the `external_templates` key - - The main template file imports templates from the Configs repo via the `external_templates` key - - This means that every metadata config file has access to all templates (user-defined and Configs repo-defined) - - Each config entry is parsed and executed (if needed), using items from the "Movies" library. + - Each config file imports templates from another file (from the custom repo) via the `external_templates` key + - The main template file imports templates from the Configs repo via the `external_templates` key + - This means that every metadata config file has access to all templates (user-defined and Configs repo-defined) + - Each config entry is parsed and executed (if needed), using items from the "Movies" library. ## Collections vs Dynamic Collections + - Let's say I wanted to make a collection of each actor's movies. -- Thankfully, with templates, we don't have to manually define every single setting/parameter for each actor's collection. -- I can make an "actor" template, and then define an "Adam Sandler", "Mike Myers" or "Justin Timberlake" collection and have it reuse the settings from the "actor" template. +- Thankfully, with templates, we don't have to manually define every single setting/parameter for each actor's + collection. +- I can make an "actor" template, and then define an "Adam Sandler", "Mike Myers" or "Justin Timberlake" collection and + have it reuse the settings from the "actor" template. - The problem is, I still need to manually define a collection for each actor. That's where dynamic collections come in. - A dynamic collection is useful when you don't know the input data (when we don't know what actors to define) -- A dynamic collection will execute a query (say, grab a list of the top 10 actors right now), and then for each result, make a collection using the "actor" template. +- A dynamic collection will execute a query (say, grab a list of the top 10 actors right now), and then for each result, + make a collection using the "actor" template. - Schedule a dynamic collection (visibility, update frequency, etc.) via the template