Merge remote-tracking branch 'meisnate12/nightly' into nightly

pull/1582/head
bullmoose20 1 year ago
commit e2b1fef56f

@ -1 +1 @@
1.19.0-develop103 1.19.0-develop106

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

@ -15,26 +15,32 @@ external_templates:
conditions: conditions:
- type: edition_dovetail - type: edition_dovetail
value: value:
- 4K-DV-HDR
- 4K-Plus - 4K-Plus
- 4K-DV - 4K-DV
- 4K-HDR - 4K-HDR
- 4K - 4K
- 1080P-DV-HDR
- 1080P-Plus - 1080P-Plus
- 1080P-DV - 1080P-DV
- 1080P-HDR - 1080P-HDR
- 1080P - 1080P
- 720P-DV-HDR
- 720P-Plus - 720P-Plus
- 720P-DV - 720P-DV
- 720P-HDR - 720P-HDR
- 720P - 720P
- 576P-DV-HDR
- 576P-Plus - 576P-Plus
- 576P-DV - 576P-DV
- 576P-HDR - 576P-HDR
- 576P - 576P
- 480P-DV-HDR
- 480P-Plus - 480P-Plus
- 480P-DV - 480P-DV
- 480P-HDR - 480P-HDR
- 480P - 480P
- DV-HDR
- Plus - Plus
- DV - DV
- HDR - HDR
@ -197,10 +203,12 @@ templates:
conditions: conditions:
- alt: hdr - alt: hdr
value: true value: true
plus: regex:
conditions: conditions:
- alt: plus - alt: plus
value: '(?i)\bhdr10(\+|p(lus)?\b)' value: '(?i)\bhdr10(\+|p(lus)?\b)'
- alt: dvhdr
value: '(?i)\bdv(\.hdr10?\b)'
optional: optional:
- all - all
- use_<<key>> - use_<<key>>
@ -223,12 +231,16 @@ templates:
hdr: <<hdr>> hdr: <<hdr>>
filters: filters:
has_dolby_vision: <<dolby_vision>> has_dolby_vision: <<dolby_vision>>
filepath.regex: <<plus>> filepath.regex:
- <<regex>>
overlays: overlays:
4K-DV-HDR-Dovetail:
variables: {key: 4k, alt: dvhdr, weight: 158, type: resolution_dovetail, allowed_libraries: movie}
template: [name: resolution, name: standard]
4K-Plus-Dovetail: 4K-Plus-Dovetail:
variables: {key: 4k, alt: plus, weight: 160, type: resolution_dovetail, allowed_libraries: movie} variables: {key: 4k, alt: plus, weight: 155, type: resolution_dovetail, allowed_libraries: movie}
template: [name: resolution, name: standard] template: [name: resolution, name: standard]
4K-DV-Dovetail: 4K-DV-Dovetail:
variables: {key: 4k, alt: dv, weight: 150, type: resolution_dovetail, allowed_libraries: movie} variables: {key: 4k, alt: dv, weight: 150, type: resolution_dovetail, allowed_libraries: movie}
@ -239,6 +251,9 @@ overlays:
4K-Dovetail: 4K-Dovetail:
variables: {key: 4k, alt: "", weight: 130, type: resolution_dovetail, allowed_libraries: movie} variables: {key: 4k, alt: "", weight: 130, type: resolution_dovetail, allowed_libraries: movie}
template: [name: resolution, name: standard] template: [name: resolution, name: standard]
1080P-DV-HDR-Dovetail:
variables: {key: 1080p, alt: dvhdr, weight: 128, type: resolution_dovetail, allowed_libraries: movie}
template: [name: resolution, name: standard]
1080P-Plus-Dovetail: 1080P-Plus-Dovetail:
variables: {key: 1080p, alt: plus, weight: 125, type: resolution_dovetail, allowed_libraries: movie} variables: {key: 1080p, alt: plus, weight: 125, type: resolution_dovetail, allowed_libraries: movie}
template: [name: resolution, name: standard] template: [name: resolution, name: standard]
@ -251,6 +266,9 @@ overlays:
1080P-Dovetail: 1080P-Dovetail:
variables: {key: 1080p, alt: "", weight: 100, type: resolution_dovetail, allowed_libraries: movie} variables: {key: 1080p, alt: "", weight: 100, type: resolution_dovetail, allowed_libraries: movie}
template: [name: resolution, name: standard] template: [name: resolution, name: standard]
720P-DV-HDR-Dovetail:
variables: {key: 720p, alt: dvhdr, weight: 98, type: resolution_dovetail, allowed_libraries: movie}
template: [name: resolution, name: standard]
720P-Plus-Dovetail: 720P-Plus-Dovetail:
variables: {key: 720p, alt: plus, weight: 95, type: resolution_dovetail, allowed_libraries: movie} variables: {key: 720p, alt: plus, weight: 95, type: resolution_dovetail, allowed_libraries: movie}
template: [name: resolution, name: standard] template: [name: resolution, name: standard]
@ -263,6 +281,9 @@ overlays:
720P-Dovetail: 720P-Dovetail:
variables: {key: 720p, alt: "", weight: 70, type: resolution_dovetail, allowed_libraries: movie} variables: {key: 720p, alt: "", weight: 70, type: resolution_dovetail, allowed_libraries: movie}
template: [name: resolution, name: standard] template: [name: resolution, name: standard]
576P-DV-HDR-Dovetail:
variables: {key: 576p, alt: dvhdr, weight: 68, type: resolution_dovetail, allowed_libraries: movie}
template: [name: resolution, name: standard]
576P-Plus-Dovetail: 576P-Plus-Dovetail:
variables: {key: 576p, alt: plus, weight: 65, type: resolution_dovetail, allowed_libraries: movie} variables: {key: 576p, alt: plus, weight: 65, type: resolution_dovetail, allowed_libraries: movie}
template: [name: resolution, name: standard] template: [name: resolution, name: standard]
@ -275,6 +296,9 @@ overlays:
576P-Dovetail: 576P-Dovetail:
variables: {key: 576p, alt: "", weight: 40, type: resolution_dovetail, allowed_libraries: movie} variables: {key: 576p, alt: "", weight: 40, type: resolution_dovetail, allowed_libraries: movie}
template: [name: resolution, name: standard] template: [name: resolution, name: standard]
480P-DV-HDR-Dovetail:
variables: {key: 480p, alt: dvhdr, weight: 38, type: resolution_dovetail, allowed_libraries: movie}
template: [name: resolution, name: standard]
480P-Plus-Dovetail: 480P-Plus-Dovetail:
variables: {key: 480p, alt: plus, weight: 35, type: resolution_dovetail, allowed_libraries: movie} variables: {key: 480p, alt: plus, weight: 35, type: resolution_dovetail, allowed_libraries: movie}
template: [name: resolution, name: standard] template: [name: resolution, name: standard]
@ -287,6 +311,9 @@ overlays:
480P-Dovetail: 480P-Dovetail:
variables: {key: 480p, alt: "", weight: 10, type: resolution_dovetail, allowed_libraries: movie} variables: {key: 480p, alt: "", weight: 10, type: resolution_dovetail, allowed_libraries: movie}
template: [name: resolution, name: standard] template: [name: resolution, name: standard]
DV-HDR-Dovetail:
variables: {key: "", alt: dvhdr, weight: 8, type: resolution_dovetail, all: true, allowed_libraries: movie}
template: [name: resolution, name: standard]
Plus-Dovetail: Plus-Dovetail:
variables: {key: "", alt: plus, weight: 7, type: resolution_dovetail, all: true, allowed_libraries: movie} variables: {key: "", alt: plus, weight: 7, type: resolution_dovetail, all: true, allowed_libraries: movie}
template: [name: resolution, name: standard] template: [name: resolution, name: standard]
@ -367,8 +394,11 @@ overlays:
variables: {key: ulysses, weight: 6, search: Ulysses, type: edition_dovetail, allowed_libraries: movie} variables: {key: ulysses, weight: 6, search: Ulysses, type: edition_dovetail, allowed_libraries: movie}
template: [name: edition, name: standard] template: [name: edition, name: standard]
4K-DV-HDR:
variables: {key: 4k, alt: dvhdr, weight: 158, type: resolution}
template: [name: resolution, name: standard]
4K-Plus: 4K-Plus:
variables: {key: 4k, alt: plus, weight: 160, type: resolution} variables: {key: 4k, alt: plus, weight: 155, type: resolution}
template: [name: resolution, name: standard] template: [name: resolution, name: standard]
4K-DV: 4K-DV:
variables: {key: 4k, alt: dv, weight: 150, type: resolution} variables: {key: 4k, alt: dv, weight: 150, type: resolution}
@ -379,6 +409,9 @@ overlays:
4K: 4K:
variables: {key: 4k, alt: "", weight: 130, type: resolution} variables: {key: 4k, alt: "", weight: 130, type: resolution}
template: [name: resolution, name: standard] template: [name: resolution, name: standard]
1080P-DV-HDR:
variables: {key: 1080p, alt: dvhdr, weight: 128, type: resolution}
template: [name: resolution, name: standard]
1080P-Plus: 1080P-Plus:
variables: {key: 1080p, alt: plus, weight: 125, type: resolution} variables: {key: 1080p, alt: plus, weight: 125, type: resolution}
template: [name: resolution, name: standard] template: [name: resolution, name: standard]
@ -391,6 +424,9 @@ overlays:
1080P: 1080P:
variables: {key: 1080p, alt: "", weight: 100, type: resolution} variables: {key: 1080p, alt: "", weight: 100, type: resolution}
template: [name: resolution, name: standard] template: [name: resolution, name: standard]
720P-DV-HDR:
variables: {key: 720p, alt: dvhdr, weight: 98, type: resolution}
template: [name: resolution, name: standard]
720P-Plus: 720P-Plus:
variables: {key: 720p, alt: plus, weight: 95, type: resolution} variables: {key: 720p, alt: plus, weight: 95, type: resolution}
template: [name: resolution, name: standard] template: [name: resolution, name: standard]
@ -403,6 +439,9 @@ overlays:
720P: 720P:
variables: {key: 720p, alt: "", weight: 70, type: resolution} variables: {key: 720p, alt: "", weight: 70, type: resolution}
template: [name: resolution, name: standard] template: [name: resolution, name: standard]
576P-DV-HDR:
variables: {key: 576p, alt: dvhdr, weight: 68, type: resolution}
template: [name: resolution, name: standard]
576P-Plus: 576P-Plus:
variables: {key: 576p, alt: plus, weight: 65, type: resolution} variables: {key: 576p, alt: plus, weight: 65, type: resolution}
template: [name: resolution, name: standard] template: [name: resolution, name: standard]
@ -415,6 +454,9 @@ overlays:
576P: 576P:
variables: {key: 576p, alt: "", weight: 40, type: resolution} variables: {key: 576p, alt: "", weight: 40, type: resolution}
template: [name: resolution, name: standard] template: [name: resolution, name: standard]
480P-DV-HDR:
variables: {key: 480p, alt: dvhdr, weight: 38, type: resolution}
template: [name: resolution, name: standard]
480P-Plus: 480P-Plus:
variables: {key: 480p, alt: plus, weight: 35, type: resolution} variables: {key: 480p, alt: plus, weight: 35, type: resolution}
template: [name: resolution, name: standard] template: [name: resolution, name: standard]
@ -427,6 +469,9 @@ overlays:
480P: 480P:
variables: {key: 480p, alt: "", weight: 10, type: resolution} variables: {key: 480p, alt: "", weight: 10, type: resolution}
template: [name: resolution, name: standard] template: [name: resolution, name: standard]
DV-HDR:
variables: {key: "", alt: dvhdr, weight: 8, type: resolution, all: true}
template: [name: resolution, name: standard]
Plus: Plus:
variables: {key: "", alt: plus, weight: 7, type: resolution, all: true} variables: {key: "", alt: plus, weight: 7, type: resolution, all: true}
template: [name: resolution, name: standard] template: [name: resolution, name: standard]

@ -12,31 +12,37 @@ Recommendations: Editions overlay is designed to use the Editions field within P
## Supported Resolutions ## Supported Resolutions
| Resolution | Key | Weight | | Resolution | Key | Weight |
|:-------------|:-------------|:-------| |:-------------|:--------------|:-------|
| 4K HDR10+ | `4k_plus` | `160` | | 4K DV/HDR | `4k_dvhdr` | `158` |
| 4K DV | `4k_dv` | `150` | | 4K HDR10+ | `4k_plus` | `155` |
| 4K HDR | `4k_hdr` | `140` | | 4K DV | `4k_dv` | `150` |
| 4K | `4k` | `130` | | 4K HDR | `4k_hdr` | `140` |
| 1080P HDR10+ | `1080p_plus` | `125` | | 4K | `4k` | `130` |
| 1080P DV | `1080p_dv` | `120` | | 1080P DV/HDR | `1080p_dvhdr` | `128` |
| 1080P HDR | `1080p_hdr` | `110` | | 1080P HDR10+ | `1080p_plus` | `125` |
| 1080P | `1080p` | `100` | | 1080P DV | `1080p_dv` | `120` |
| 720P HDR10+ | `720p_plus` | `95` | | 1080P HDR | `1080p_hdr` | `110` |
| 720P DV | `720p_dv` | `90` | | 1080P | `1080p` | `100` |
| 720P HDR | `720p_hdr` | `80` | | 720P DV/HDR | `720p_dvhdr` | `98` |
| 720P | `720p` | `70` | | 720P HDR10+ | `720p_plus` | `95` |
| 576P HDR10+ | `576p_plus` | `65` | | 720P DV | `720p_dv` | `90` |
| 576P DV | `576p_dv` | `60` | | 720P HDR | `720p_hdr` | `80` |
| 576P HDR | `576p_hdr` | `50` | | 720P | `720p` | `70` |
| 576P | `576p` | `40` | | 576P DV/HDR | `576p_dvhdr` | `68` |
| 480P HDR10+ | `480p_plus` | `35` | | 576P HDR10+ | `576p_plus` | `65` |
| 480P DV | `480p_dv` | `30` | | 576P DV | `576p_dv` | `60` |
| 480P HDR | `480p_hdr` | `20` | | 576P HDR | `576p_hdr` | `50` |
| 480P | `480p` | `10` | | 576P | `576p` | `40` |
| HDR10+ | `plus` | `7` | | 480P DV/HDR | `480p_dvhdr` | `38` |
| DV | `dv` | `5` | | 480P HDR10+ | `480p_plus` | `35` |
| HDR | `hdr` | `1` | | 480P DV | `480p_dv` | `30` |
| 480P HDR | `480p_hdr` | `20` |
| 480P | `480p` | `10` |
| DV/HDR | `dvhdr` | `8` |
| HDR10+ | `plus` | `7` |
| DV | `dv` | `5` |
| HDR | `hdr` | `1` |
## Supported Editions ## Supported Editions

@ -54,6 +54,8 @@ This method will start Plex Meta Manager at system startup and will keep the scr
This is the recommended approach as it allows the user additional control over how and when Plex Meta Manager processes. 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](../environmental.html#time-to-run) runtime flag.
<details> <details>
<summary>Background Run Scheduled Task</summary> <summary>Background Run Scheduled Task</summary>

@ -1158,7 +1158,10 @@ class CollectionBuilder:
if summary: if summary:
self.summaries[method_name] = summary self.summaries[method_name] = summary
elif method_name == "trakt_description": elif method_name == "trakt_description":
self.summaries[method_name] = self.config.Trakt.list_description(self.config.Trakt.validate_list(method_data)[0]) try:
self.summaries[method_name] = self.config.Trakt.list_description(self.config.Trakt.validate_list(method_data)[0])
except Failed as e:
logger.error(f"Trakt Error: List description not found: {e}")
elif method_name == "letterboxd_description": elif method_name == "letterboxd_description":
self.summaries[method_name] = self.config.Letterboxd.get_list_description(method_data, self.language) self.summaries[method_name] = self.config.Letterboxd.get_list_description(method_data, self.language)
elif method_name == "icheckmovies_description": elif method_name == "icheckmovies_description":
@ -1780,7 +1783,10 @@ class CollectionBuilder:
for trakt_list in trakt_lists: for trakt_list in trakt_lists:
self.builders.append(("trakt_list", trakt_list)) self.builders.append(("trakt_list", trakt_list))
if method_name.endswith("_details"): if method_name.endswith("_details"):
self.summaries[method_name] = self.config.Trakt.list_description(trakt_lists[0]) try:
self.summaries[method_name] = self.config.Trakt.list_description(trakt_lists[0])
except Failed as e:
logger.error(f"Trakt Error: List description not found: {e}")
elif method_name == "trakt_boxoffice": elif method_name == "trakt_boxoffice":
if util.parse(self.Type, method_name, method_data, datatype="bool", default=False): if util.parse(self.Type, method_name, method_data, datatype="bool", default=False):
self.builders.append((method_name, 10)) self.builders.append((method_name, 10))

@ -466,6 +466,7 @@ class Plex(Library):
raise Failed("Plex Error: Plex token is invalid") raise Failed("Plex Error: Plex token is invalid")
except ValueError as e: except ValueError as e:
logger.info(f"Plex Error: Plex connection attempt returned 'ValueError'") logger.info(f"Plex Error: Plex connection attempt returned 'ValueError'")
logger.stacktrace()
raise Failed(f"Plex Error: {e}") raise Failed(f"Plex Error: {e}")
except (requests.exceptions.ConnectionError, ParseError): except (requests.exceptions.ConnectionError, ParseError):
logger.info(f"Plex Error: Plex connection attempt returned 'ConnectionError' or 'ParseError'") logger.info(f"Plex Error: Plex connection attempt returned 'ConnectionError' or 'ParseError'")
@ -504,7 +505,10 @@ class Plex(Library):
self.update_blank_track_titles = False self.update_blank_track_titles = False
logger.error(f"update_blank_track_titles library operation only works with music libraries") logger.error(f"update_blank_track_titles library operation only works with music libraries")
logger.info(f"Connected to library {params['name']}") logger.info(f"Connected to library {params['name']}")
logger.info(f"Agent: {self.agent}; Scanner: {self.scanner}; ratings source: {self.ratings_source}") logger.info(f"Type: {self.type}")
logger.info(f"Agent: {self.agent}")
logger.info(f"Scanner: {self.scanner}")
logger.info(f"Ratings Source: {self.ratings_source}")
def notify(self, text, collection=None, critical=True): def notify(self, text, collection=None, critical=True):
self.config.notify(text, server=self.PlexServer.friendlyName, library=self.name, collection=collection, critical=critical) self.config.notify(text, server=self.PlexServer.friendlyName, library=self.name, collection=collection, critical=critical)

@ -252,7 +252,7 @@ class Trakt:
try: try:
return self._request(requests.utils.urlparse(data).path)["description"] return self._request(requests.utils.urlparse(data).path)["description"]
except Failed: except Failed:
raise Failed(f"Trakt Error: List {data} not found") raise Failed(data)
def _parse(self, items, typeless=False, item_type=None, trakt_ids=False, ignore_other=False): def _parse(self, items, typeless=False, item_type=None, trakt_ids=False, ignore_other=False):
ids = [] ids = []

@ -604,7 +604,7 @@ def schedule_check(attribute, data, current_time, run_hour, is_all=False):
param = match.group(1) param = match.group(1)
if run_time.startswith("hour"): if run_time.startswith("hour"):
if "-" in run_time: if "-" in run_time:
start, end = run_time.split("-") start, end = param.split("-")
try: try:
start = int(start) start = int(start)
end = int(end) end = int(end)

@ -4,7 +4,7 @@ lxml==4.9.3
num2words==0.5.12 num2words==0.5.12
pathvalidate==3.1.0 pathvalidate==3.1.0
pillow==10.0.0 pillow==10.0.0
PlexAPI==4.15.0 PlexAPI==4.15.1
psutil==5.9.5 psutil==5.9.5
python-dotenv==1.0.0 python-dotenv==1.0.0
requests==2.31.0 requests==2.31.0

Loading…
Cancel
Save