mirror of
https://github.com/meisnate12/Plex-Meta-Manager
synced 2024-11-10 06:54:21 +00:00
[20] update overlays with default positions
This commit is contained in:
parent
28c41fe784
commit
facfcba066
16 changed files with 266 additions and 77 deletions
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
|||
1.18.3-develop19
|
||||
1.18.3-develop20
|
||||
|
|
|
@ -9,20 +9,37 @@
|
|||
external_templates:
|
||||
pmm: templates
|
||||
template_variables:
|
||||
default:
|
||||
standard_value: 105
|
||||
style: compact
|
||||
horizontal_align: center
|
||||
vertical_align: top
|
||||
conditionals:
|
||||
back_height:
|
||||
default: 105
|
||||
conditions:
|
||||
- style: standard
|
||||
value: <<standard_value>>
|
||||
default:
|
||||
standard_value: 105
|
||||
style: compact
|
||||
vertical_offset:
|
||||
default: 15
|
||||
conditions:
|
||||
- vertical_align.exists: false
|
||||
value: 150
|
||||
- vertical_align: center
|
||||
value: 0
|
||||
- vertical_align: top
|
||||
value: 15
|
||||
- vertical_align: bottom
|
||||
value: 30
|
||||
horizontal_offset:
|
||||
default: 15
|
||||
conditions:
|
||||
- horizontal_align: center
|
||||
value: 0
|
||||
- horizontal_align: [left, right]
|
||||
value: 15
|
||||
group: audio_codec
|
||||
horizontal_offset: 0
|
||||
horizontal_align: center
|
||||
vertical_offset: 15
|
||||
vertical_align: top
|
||||
back_color: "#00000099"
|
||||
back_width: 305
|
||||
pmm: audio_codec/<<style>>/<<key>>
|
||||
|
|
|
@ -8,6 +8,14 @@
|
|||
external_templates:
|
||||
pmm: templates
|
||||
template_variables:
|
||||
default:
|
||||
key: <<overlay_name>>
|
||||
pre_text: ""
|
||||
post_text: "+"
|
||||
pre_nr_text: ""
|
||||
post_nr_text: ""
|
||||
horizontal_align: left
|
||||
vertical_align: bottom
|
||||
conditionals:
|
||||
pre:
|
||||
default: <<pre_text>>
|
||||
|
@ -19,16 +27,24 @@ external_templates:
|
|||
conditions:
|
||||
- overlay_name: NR
|
||||
value: <<post_nr_text>>
|
||||
default:
|
||||
key: <<overlay_name>>
|
||||
pre_text: ""
|
||||
post_text: "+"
|
||||
pre_nr_text: ""
|
||||
post_nr_text: ""
|
||||
horizontal_offset: 15
|
||||
horizontal_align: left
|
||||
vertical_offset: 270
|
||||
vertical_align: bottom
|
||||
vertical_offset:
|
||||
default: 15
|
||||
conditions:
|
||||
- vertical_align.exists: false
|
||||
value: 270
|
||||
- vertical_align: center
|
||||
value: 0
|
||||
- vertical_align: top
|
||||
value: 15
|
||||
- vertical_align: bottom
|
||||
value: 30
|
||||
horizontal_offset:
|
||||
default: 15
|
||||
conditions:
|
||||
- horizontal_align: center
|
||||
value: 0
|
||||
- horizontal_align: [left, right]
|
||||
value: 15
|
||||
back_color: "#00000099"
|
||||
back_width: 305
|
||||
back_height: 105
|
||||
|
|
|
@ -9,10 +9,30 @@
|
|||
external_templates:
|
||||
pmm: templates
|
||||
template_variables:
|
||||
default:
|
||||
horizontal_align: center
|
||||
vertical_align: bottom
|
||||
conditionals:
|
||||
vertical_offset:
|
||||
default: 15
|
||||
conditions:
|
||||
- vertical_align.exists: false
|
||||
value: 150
|
||||
- vertical_align: center
|
||||
value: 0
|
||||
- vertical_align: top
|
||||
value: 15
|
||||
- vertical_align: bottom
|
||||
value: 30
|
||||
horizontal_offset:
|
||||
default: 15
|
||||
conditions:
|
||||
- horizontal_align: center
|
||||
value: 0
|
||||
- horizontal_align: [left, right]
|
||||
value: 15
|
||||
horizontal_offset: 0
|
||||
horizontal_align: center
|
||||
vertical_offset: 150
|
||||
vertical_align: bottom
|
||||
back_color: "#00000099"
|
||||
back_width: 305
|
||||
back_height: 170
|
||||
|
|
|
@ -8,11 +8,29 @@
|
|||
external_templates:
|
||||
pmm: templates
|
||||
template_variables:
|
||||
default:
|
||||
horizontal_align: right
|
||||
vertical_align: bottom
|
||||
conditionals:
|
||||
vertical_offset:
|
||||
default: 15
|
||||
conditions:
|
||||
- vertical_align.exists: false
|
||||
value: 150
|
||||
- vertical_align: center
|
||||
value: 0
|
||||
- vertical_align: top
|
||||
value: 15
|
||||
- vertical_align: bottom
|
||||
value: 30
|
||||
horizontal_offset:
|
||||
default: 15
|
||||
conditions:
|
||||
- horizontal_align: center
|
||||
value: 0
|
||||
- horizontal_align: [left, right]
|
||||
value: 15
|
||||
allowed_libraries: show
|
||||
horizontal_offset: 15
|
||||
horizontal_align: right
|
||||
vertical_offset: 150
|
||||
vertical_align: bottom
|
||||
back_color: "#00000099"
|
||||
back_width: 305
|
||||
back_height: 105
|
||||
|
|
|
@ -9,17 +9,32 @@
|
|||
external_templates:
|
||||
pmm: templates
|
||||
template_variables:
|
||||
default:
|
||||
horizontal_align: center
|
||||
vertical_align: bottom
|
||||
conditionals:
|
||||
image_key:
|
||||
default: audio
|
||||
conditions:
|
||||
- use_subtitles: true
|
||||
value: subs
|
||||
vertical_offset:
|
||||
default: 15
|
||||
conditions:
|
||||
- vertical_align: center
|
||||
value: 0
|
||||
- vertical_align: top
|
||||
value: 15
|
||||
- vertical_align: bottom
|
||||
value: 30
|
||||
horizontal_offset:
|
||||
default: 15
|
||||
conditions:
|
||||
- horizontal_align: center
|
||||
value: 0
|
||||
- horizontal_align: [left, right]
|
||||
value: 15
|
||||
group: language
|
||||
horizontal_offset: 0
|
||||
horizontal_align: center
|
||||
vertical_offset: 30
|
||||
vertical_align: bottom
|
||||
back_color: "#00000099"
|
||||
back_width: 188
|
||||
back_height: 105
|
||||
|
|
|
@ -8,11 +8,29 @@
|
|||
external_templates:
|
||||
pmm: templates
|
||||
template_variables:
|
||||
default:
|
||||
horizontal_align: right
|
||||
vertical_align: top
|
||||
conditionals:
|
||||
vertical_offset:
|
||||
default: 15
|
||||
conditions:
|
||||
- vertical_align: center
|
||||
value: 0
|
||||
- vertical_align: top
|
||||
value: 15
|
||||
- vertical_align: bottom
|
||||
value: 30
|
||||
horizontal_offset:
|
||||
default: 15
|
||||
conditions:
|
||||
- horizontal_align.exists: false
|
||||
value: 200
|
||||
- horizontal_align: center
|
||||
value: 0
|
||||
- horizontal_align: [left, right]
|
||||
value: 15
|
||||
allowed_libraries: movie
|
||||
horizontal_offset: 200
|
||||
horizontal_align: right
|
||||
vertical_offset: 15
|
||||
vertical_align: top
|
||||
back_color: "#00000099"
|
||||
back_width: 105
|
||||
back_height: 105
|
||||
|
|
|
@ -8,17 +8,31 @@
|
|||
external_templates:
|
||||
pmm: templates
|
||||
template_variables:
|
||||
default:
|
||||
text: "Runtime: "
|
||||
horizontal_align: right
|
||||
vertical_align: bottom
|
||||
conditionals:
|
||||
overlay_level:
|
||||
conditions:
|
||||
- library_type: show
|
||||
value: episode
|
||||
default:
|
||||
text: "Runtime: "
|
||||
horizontal_offset: 15
|
||||
horizontal_align: right
|
||||
vertical_offset: 30
|
||||
vertical_align: bottom
|
||||
vertical_offset:
|
||||
default: 15
|
||||
conditions:
|
||||
- vertical_align: center
|
||||
value: 0
|
||||
- vertical_align: top
|
||||
value: 15
|
||||
- vertical_align: bottom
|
||||
value: 30
|
||||
horizontal_offset:
|
||||
default: 15
|
||||
conditions:
|
||||
- horizontal_align: center
|
||||
value: 0
|
||||
- horizontal_align: [left, right]
|
||||
value: 15
|
||||
back_color: "#00000099"
|
||||
back_width: 600
|
||||
back_height: 105
|
||||
|
|
|
@ -10,10 +10,28 @@ external_templates:
|
|||
template_variables:
|
||||
text_<<key>>: <<text>>
|
||||
group: status
|
||||
horizontal_offset: 15
|
||||
horizontal_align: left
|
||||
vertical_offset: 330
|
||||
vertical_align: top
|
||||
default:
|
||||
horizontal_align: left
|
||||
vertical_align: top
|
||||
conditionals:
|
||||
vertical_offset:
|
||||
default: 15
|
||||
conditions:
|
||||
- vertical_align.exists: false
|
||||
value: 330
|
||||
- vertical_align: center
|
||||
value: 0
|
||||
- vertical_align: top
|
||||
value: 15
|
||||
- vertical_align: bottom
|
||||
value: 30
|
||||
horizontal_offset:
|
||||
default: 15
|
||||
conditions:
|
||||
- horizontal_align: center
|
||||
value: 0
|
||||
- horizontal_align: [left, right]
|
||||
value: 15
|
||||
font_size: 50
|
||||
back_color: "#00000099"
|
||||
back_width: 305
|
||||
|
|
|
@ -10,10 +10,28 @@ external_templates:
|
|||
pmm: templates
|
||||
template_variables:
|
||||
group: streaming
|
||||
horizontal_offset: 15
|
||||
horizontal_align: left
|
||||
vertical_offset: 150
|
||||
vertical_align: bottom
|
||||
default:
|
||||
horizontal_align: left
|
||||
vertical_align: bottom
|
||||
conditionals:
|
||||
vertical_offset:
|
||||
default: 15
|
||||
conditions:
|
||||
- vertical_align.exists: false
|
||||
value: 150
|
||||
- vertical_align: center
|
||||
value: 0
|
||||
- vertical_align: top
|
||||
value: 15
|
||||
- vertical_align: bottom
|
||||
value: 30
|
||||
horizontal_offset:
|
||||
default: 15
|
||||
conditions:
|
||||
- horizontal_align: center
|
||||
value: 0
|
||||
- horizontal_align: [left, right]
|
||||
value: 15
|
||||
back_color: "#00000099"
|
||||
back_width: 305
|
||||
back_height: 105
|
||||
|
|
|
@ -9,23 +9,36 @@
|
|||
external_templates:
|
||||
pmm: templates
|
||||
template_variables:
|
||||
default:
|
||||
vertical_align: top
|
||||
conditionals:
|
||||
vertical_offset:
|
||||
default: 1050
|
||||
default: 15
|
||||
conditions:
|
||||
- overlay_level: episode
|
||||
- vertical_align.exists: false
|
||||
overlay_level.not: episode
|
||||
value: 1050
|
||||
- vertical_align: center
|
||||
value: 0
|
||||
- vertical_align: top
|
||||
value: 15
|
||||
- vertical_align: bottom
|
||||
value: 30
|
||||
horizontal_offset:
|
||||
default: 15
|
||||
conditions:
|
||||
- overlay_level: episode
|
||||
- horizontal_align.exists: false
|
||||
overlay_level: episode
|
||||
value: 235
|
||||
- horizontal_align: center
|
||||
value: 0
|
||||
- horizontal_align: [left, right]
|
||||
value: 15
|
||||
horizontal_align:
|
||||
default: right
|
||||
conditions:
|
||||
- overlay_level: episode
|
||||
value: center
|
||||
vertical_align: top
|
||||
back_color: "#00000099"
|
||||
back_width: 105
|
||||
back_height: 105
|
||||
|
@ -37,7 +50,7 @@ templates:
|
|||
version_style:
|
||||
default: "duplicate"
|
||||
conditions:
|
||||
- overlay_level: ['show', 'season', 'episode']
|
||||
- library_type: "show"
|
||||
value: "episode_duplicate"
|
||||
plex_search:
|
||||
all:
|
||||
|
|
|
@ -11,11 +11,26 @@ external_templates:
|
|||
template_variables:
|
||||
default:
|
||||
text_<<key>>: <<overlay_name>>
|
||||
horizontal_align: left
|
||||
vertical_align: bottom
|
||||
conditionals:
|
||||
vertical_offset:
|
||||
default: 15
|
||||
conditions:
|
||||
- vertical_align: center
|
||||
value: 0
|
||||
- vertical_align: top
|
||||
value: 15
|
||||
- vertical_align: bottom
|
||||
value: 30
|
||||
horizontal_offset:
|
||||
default: 15
|
||||
conditions:
|
||||
- horizontal_align: center
|
||||
value: 0
|
||||
- horizontal_align: [left, right]
|
||||
value: 15
|
||||
group: quality
|
||||
horizontal_offset: 15
|
||||
horizontal_align: left
|
||||
vertical_offset: 30
|
||||
vertical_align: bottom
|
||||
back_color: "#00000099"
|
||||
back_width: 305
|
||||
back_height: 105
|
||||
|
|
|
@ -141,7 +141,7 @@ Updates every item's original title in the library to the chosen site's original
|
|||
|
||||
Updates every item's originally available date in the library to the chosen site's date.
|
||||
|
||||
**Attribute:** `mass_original_title_update`
|
||||
**Attribute:** `mass_originally_available_update`
|
||||
|
||||
**Values:**
|
||||
|
||||
|
@ -245,7 +245,12 @@ Updates every item's labels in the library to match the IMDb Parental Guide
|
|||
|
||||
**Attribute:** `mass_imdb_parental_labels`
|
||||
|
||||
**Values** `with_none` or `without_none`
|
||||
**Values:**
|
||||
|
||||
| Value | Description |
|
||||
|:---------------|:--------------------------------------------------------------------------------------------------------------------|
|
||||
| `with_none` | Apply all Parental Labels regardless of value |
|
||||
| `without_none` | Only apply Parental Labels if the value is not none (i.e. do not apply "Sex & Nudity" label if the value is "None") |
|
||||
|
||||
## Mass Collection Mode
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ These collections are applied by calling the below paths into the `metadata_path
|
|||
| Default | Path | Example Collections | Works with Movies | Works with Shows |
|
||||
|:-----------------------------------------------------------|:------------------|:--------------------------------------------|:--------------------:|:-------------------:|
|
||||
| [Award Separator](award/separator) | `separator_award` | Award Collections | ✅ | ✅ |
|
||||
| [British Academy of Film and Television Arts](award/bafta) | `bafta` | BAFTA Best Films, BAFTA 2021 | ✅<sup>1</sup> | ❌ |
|
||||
| [British Academy of Film and Television Arts](award/bafta) | `bafta` | BAFTA Best Films, BAFTA 2021 | ✅<sup>1</sup> | ❌ |
|
||||
| [Cannes](award/cannes) | `cannes` | Cannes - Palme d'or, Cannes 2018 | ✅<sup>1</sup> | ❌ |
|
||||
| [Critics Choice](award/choice) | `choice` | Critics Choice Awards 2020 | ✅<sup>1</sup> | ✅<sup>1</sup> |
|
||||
| [Emmys](award/emmy) | `emmy` | Emmys 2021 | ✅ | ✅ |
|
||||
|
@ -18,6 +18,7 @@ These collections are applied by calling the below paths into the `metadata_path
|
|||
| [Independent Spirit](award/spirit) | `spirit` | Independent Spirit Awards 2021 | ✅<sup>1</sup> | ❌ |
|
||||
| [Sundance](award/sundance) | `sundance` | Sundance Grand Jury Winners | ✅<sup>1</sup> | ❌ |
|
||||
| [Other](award/other) | `other_award` | Berlinale Golden Bears, Venice Golden Lions | ✅<sup>1</sup> | ❌ |
|
||||
|
||||
<sup>1</sup> Requires [Trakt Authentication](../config/trakt)
|
||||
|
||||
### Chart Collections
|
||||
|
@ -34,8 +35,8 @@ These collections are applied by calling the below paths into the `metadata_path
|
|||
| [Tautulli](chart/tautulli) | `tautulli` | Plex Popular, Plex Watched | ✅<sup>2</sup> | ✅<sup>2</sup> |
|
||||
| [TMDb](chart/tmdb) | `tmdb` | TMDb Popular, TMDb Airing Today | ✅ | ✅ |
|
||||
| [Trakt](chart/trakt) | `trakt` | Trakt Popular, Trakt Trending | ✅<sup>1</sup> | ✅<sup>1</sup> |
|
||||
<sup>1</sup> Requires [Trakt Authentication](../config/trakt)
|
||||
|
||||
<sup>1</sup> Requires [Trakt Authentication](../config/trakt)
|
||||
<sup>2</sup> Requires [Tautulli Authentication](../config/tautulli)
|
||||
|
||||
### General Collections
|
||||
|
|
|
@ -10,24 +10,25 @@ These overlays are applied by calling the below paths into the `overlay_path` [s
|
|||
|
||||
### Overlay Files
|
||||
|
||||
| Default | path | Example Overlays | Movies | Shows | Seasons | Episodes |
|
||||
|:-----------------------------------------------|:-----------------|:--------------------------------------------------------------------------|:--------------------:|:--------------------:|:-------------------:|:--------------------:|
|
||||
| [Audio Codec](overlays/audio_codec) | `audio_codec` | Dolby Atmos logo, DTS logo | ✅<sup>1</sup> | ✅<sup>1</sup> | ✅<sup>1</sup> | ✅<sup>1</sup> |
|
||||
| [CommonSense Age Rating](overlays/commonsense) | `commonsense` | "3+", "16+" | ✅ | ✅ | ❗ | ❗ |
|
||||
| [Direct Play](overlays/direct_play) | `direct_play` | "Direct Play Only" | ✅ | ❗ | ❗ | ✅ |
|
||||
| [Episode Info](overlays/episode_info) | `episode_info` | "S01E01", "S02E09" | ❌ | ❌ | ❌ | ✅ |
|
||||
| [FlixPatrol](overlays/flixpatrol) | `flixpatrol` | "Streaming service logo with words "TOP" | ✅ | ✅ | ❌ | ❌ |
|
||||
| [Language Count](overlays/language_count) | `language_count` | Dual-Audio, Multi-Audio, Dual-Subtitle, Multi-Subtitle | ✅ | ✅ | ✅ | ✅ |
|
||||
| [Languages](overlays/languages) | `languages` | Flags Based on the Audio/Subtitles a file has | ✅ | ✅ | ✅ | ✅ |
|
||||
| [Mediastinger](overlays/mediastinger) | `mediastinger` | Mediastinger Logo for After/During Credit Scenes | ✅ | ✅ | ❌ | ❌ |
|
||||
| [Ratings](overlays/ratings) | `ratings` | IMDb Audience Rating, Metacritic Critic Rating | ✅<sup>3</sup> | ✅<sup>3</sup> | ❌ | ✅<sup>3</sup> |
|
||||
| [Resolution/Editions](overlays/resolution) | `resolution` | 4K Dolby Vision logo, 720P logo, "Director's Cut", "Criterion Collection" | ✅<sup>2</sup> | ✅<sup>2</sup> | ❌ | ✅<sup>2</sup> |
|
||||
| [Ribbon](overlays/ribbon) | `ribbon` | IMDb Top 250 Ribbon, RT Fresh Ribbon | ✅ | ✅ | ❌ | ❌ |
|
||||
| [Runtimes](overlays/runtimes) | `runtimes` | "Runtime: 1h 30m" | ✅ | ✅ | ❌ | ✅ |
|
||||
| [Status](overlays/status) | `status` | Airing, Returning, Canceled, Ended | ❌ | ✅ | ❌ | ❌ |
|
||||
| [Streaming](overlays/streaming) | `streaming` | Netflix logo, Hulu logo | ✅ | ✅ | ❌ | ❌ |
|
||||
| [Versions](overlays/versions) | `versions` | Multiple Versions logo | ✅ | ✅ | ✅ | ✅ |
|
||||
| [Video Format](overlays/video_format) | `video_format` | "REMUX", "HDTV" | ✅<sup>1</sup> | ❗ | ❗ | ✅<sup>1</sup> |
|
||||
| Default | path | Example Overlays | Movies | Shows | Seasons | Episodes |
|
||||
|:-----------------------------------------------|:-----------------|:--------------------------------------------------------------------------|:-------------------:|:-------------------:|:-------------------:|:-------------------:|
|
||||
| [Audio Codec](overlays/audio_codec) | `audio_codec` | Dolby Atmos logo, DTS logo | ✅<sup>1</sup> | ✅<sup>1</sup> | ✅<sup>1</sup> | ✅<sup>1</sup> |
|
||||
| [CommonSense Age Rating](overlays/commonsense) | `commonsense` | "3+", "16+" | ✅ | ✅ | ❗ | ❗ |
|
||||
| [Direct Play](overlays/direct_play) | `direct_play` | "Direct Play Only" | ✅ | ❗ | ❗ | ✅ |
|
||||
| [Episode Info](overlays/episode_info) | `episode_info` | "S01E01", "S02E09" | ❌ | ❌ | ❌ | ✅ |
|
||||
| [FlixPatrol](overlays/flixpatrol) | `flixpatrol` | "Streaming service logo with words "TOP" | ✅ | ✅ | ❌ | ❌ |
|
||||
| [Language Count](overlays/language_count) | `language_count` | Dual-Audio, Multi-Audio, Dual-Subtitle, Multi-Subtitle | ✅ | ✅ | ✅ | ✅ |
|
||||
| [Languages](overlays/languages) | `languages` | Flags Based on the Audio/Subtitles a file has | ✅ | ✅ | ✅ | ✅ |
|
||||
| [Mediastinger](overlays/mediastinger) | `mediastinger` | Mediastinger Logo for After/During Credit Scenes | ✅ | ✅ | ❌ | ❌ |
|
||||
| [Ratings](overlays/ratings) | `ratings` | IMDb Audience Rating, Metacritic Critic Rating | ✅<sup>3</sup> | ✅<sup>3</sup> | ❌ | ✅<sup>3</sup> |
|
||||
| [Resolution/Editions](overlays/resolution) | `resolution` | 4K Dolby Vision logo, 720P logo, "Director's Cut", "Criterion Collection" | ✅<sup>2</sup> | ✅<sup>2</sup> | ❌ | ✅<sup>2</sup> |
|
||||
| [Ribbon](overlays/ribbon) | `ribbon` | IMDb Top 250 Ribbon, RT Fresh Ribbon | ✅ | ✅ | ❌ | ❌ |
|
||||
| [Runtimes](overlays/runtimes) | `runtimes` | "Runtime: 1h 30m" | ✅ | ✅ | ❌ | ✅ |
|
||||
| [Status](overlays/status) | `status` | Airing, Returning, Canceled, Ended | ❌ | ✅ | ❌ | ❌ |
|
||||
| [Streaming](overlays/streaming) | `streaming` | Netflix logo, Hulu logo | ✅ | ✅ | ❌ | ❌ |
|
||||
| [Versions](overlays/versions) | `versions` | Multiple Versions logo | ✅ | ✅ | ✅ | ✅ |
|
||||
| [Video Format](overlays/video_format) | `video_format` | "REMUX", "HDTV" | ✅<sup>1</sup> | ❗ | ❗ | ✅<sup>1</sup> |
|
||||
|
||||
<sup>1</sup> Designed for [TRaSH Guides](https://trash-guides.info/) filename naming scheme
|
||||
<sup>2</sup> Requires Plex Pass or [TRaSH Guides](https://trash-guides.info/) filename naming scheme
|
||||
<sup>3</sup> Requires Template Variables to function
|
|
@ -10,7 +10,7 @@ try:
|
|||
from plexapi import server
|
||||
from plexapi.exceptions import NotFound
|
||||
from plexapi.video import Show, Season
|
||||
except ModuleNotFoundError:
|
||||
except (ModuleNotFoundError, ImportError):
|
||||
print("Requirements Error: Requirements are not installed")
|
||||
sys.exit(0)
|
||||
|
||||
|
|
Loading…
Reference in a new issue