mirror of
https://github.com/meisnate12/Plex-Meta-Manager
synced 2024-11-22 04:23:08 +00:00
[58] small fixes
This commit is contained in:
parent
d2f8c837d0
commit
1766bf86e9
8 changed files with 40 additions and 7 deletions
16
README.md
16
README.md
|
@ -15,6 +15,22 @@
|
|||
|
||||
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.
|
||||
|
||||
## What Can Plex-Meta-Manager Do?
|
||||
|
||||
Plex Meta Manager can
|
||||
|
||||
1. Create and maintain collections in Plex libraries using external lists, Plex searches, or filters.
|
||||
|
||||
2. Create, maintain, and share playlists on Plex servers using the same or similar criteria.
|
||||
|
||||
3. Manage metadata [artwork, titles, summaries, release year, etc.] for anything on your Plex server.
|
||||
|
||||
4. Add overlays to item artwork to display various details [ratings, resolution, edition, etc.].
|
||||
|
||||
5. Send missing items from external lists [for example the IMDB 250] to Radarr or Sonarr for download.
|
||||
|
||||
6. and more.
|
||||
|
||||
## Getting Started
|
||||
|
||||
These are the high-level steps you must take to get Plex Meta Manager up and running:
|
||||
|
|
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
|||
1.18.3-develop57
|
||||
1.18.3-develop58
|
||||
|
|
|
@ -297,7 +297,7 @@ docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex
|
|||
|
||||
### Timeout
|
||||
|
||||
Change the main Plex Meta Manager timeout. This timeout is overwritten by those in your config file for those services.
|
||||
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.
|
||||
|
||||
<table class="dualTable colwidths-auto align-default table">
|
||||
<tr>
|
||||
|
|
|
@ -31,7 +31,6 @@ Plex Meta Manager can
|
|||
|
||||
6. and more.
|
||||
|
||||
|
||||
## Getting Started
|
||||
|
||||
These are the high-level steps you must take to get Plex Meta Manager up and running:
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import os, re, time
|
||||
from arrapi import ArrException
|
||||
from datetime import datetime
|
||||
from modules import anidb, anilist, flixpatrol, icheckmovies, imdb, letterboxd, mal, plex, radarr, reciperr, sonarr, tautulli, tmdb, trakt, tvdb, mdblist, util
|
||||
from modules.util import Failed, FilterFailed, NonExisting, NotScheduled, NotScheduledRange, Deleted
|
||||
|
@ -2496,11 +2497,17 @@ class CollectionBuilder:
|
|||
added_to_radarr += len(added)
|
||||
except Failed as e:
|
||||
logger.error(e)
|
||||
except ArrException as e:
|
||||
logger.stacktrace()
|
||||
logger.error(f"Arr Error: {e}")
|
||||
if "item_radarr_tag" in self.item_details:
|
||||
try:
|
||||
self.library.Radarr.edit_tags(missing_tmdb_ids, self.item_details["item_radarr_tag"], self.item_details["apply_tags"])
|
||||
except Failed as e:
|
||||
logger.error(e)
|
||||
except ArrException as e:
|
||||
logger.stacktrace()
|
||||
logger.error(f"Arr Error: {e}")
|
||||
if self.run_again:
|
||||
self.run_again_movies.extend(missing_tmdb_ids)
|
||||
if len(filtered_movies_with_names) > 0 and self.do_report:
|
||||
|
@ -2541,11 +2548,17 @@ class CollectionBuilder:
|
|||
added_to_sonarr += len(added)
|
||||
except Failed as e:
|
||||
logger.error(e)
|
||||
except ArrException as e:
|
||||
logger.stacktrace()
|
||||
logger.error(f"Arr Error: {e}")
|
||||
if "item_sonarr_tag" in self.item_details:
|
||||
try:
|
||||
self.library.Sonarr.edit_tags(missing_tvdb_ids, self.item_details["item_sonarr_tag"], self.item_details["apply_tags"])
|
||||
except Failed as e:
|
||||
logger.error(e)
|
||||
except ArrException as e:
|
||||
logger.stacktrace()
|
||||
logger.error(f"Arr Error: {e}")
|
||||
if self.run_again:
|
||||
self.run_again_shows.extend(missing_tvdb_ids)
|
||||
if len(filtered_shows_with_names) > 0 and self.do_report:
|
||||
|
|
|
@ -281,7 +281,7 @@ class Library(ABC):
|
|||
return image_path
|
||||
|
||||
@abstractmethod
|
||||
def item_posters(self, item):
|
||||
def item_posters(self, item, providers=None):
|
||||
pass
|
||||
|
||||
@abstractmethod
|
||||
|
|
|
@ -322,6 +322,8 @@ class Operations:
|
|||
elif tvdb_item and self.library.mass_genre_update == "tvdb":
|
||||
new_genres = tvdb_item.genres
|
||||
elif anidb_item and self.library.mass_genre_update in anidb.weights:
|
||||
logger.trace(anidb_item.main_title)
|
||||
logger.trace(anidb_item.tags)
|
||||
new_genres = [str(t).title() for t, w in anidb_item.tags.items() if w >= anidb.weights[self.library.mass_genre_update]]
|
||||
elif mal_item and self.library.mass_genre_update == "mal":
|
||||
new_genres = mal_item.genres
|
||||
|
@ -514,7 +516,11 @@ class Operations:
|
|||
self.library.background_update(item, new_background, tmdb=tmdb_item.backdrop_url if tmdb_item else None)
|
||||
|
||||
if self.library.is_show:
|
||||
real_show = tmdb_item.load_show() if tmdb_item else None
|
||||
real_show = None
|
||||
try:
|
||||
real_show = tmdb_item.load_show() if tmdb_item else None
|
||||
except Failed as e:
|
||||
logger.error(e)
|
||||
tmdb_seasons = {s.season_number: s for s in real_show.seasons} if real_show else {}
|
||||
for season in self.library.query(item.seasons):
|
||||
try:
|
||||
|
|
|
@ -171,7 +171,7 @@ class Overlays:
|
|||
else:
|
||||
reset_list = []
|
||||
try:
|
||||
new_backup = self.library.item_posters(item)
|
||||
new_backup = self.library.item_posters(item, providers=reset_list)
|
||||
except Failed as e:
|
||||
if any(r in reset_list for r in ["plex", "tmdb"]):
|
||||
logger.error(e)
|
||||
|
@ -339,7 +339,6 @@ class Overlays:
|
|||
new_poster.save(temp, exif=exif_tags)
|
||||
self.library.upload_poster(item, temp)
|
||||
self.library.edit_tags("label", item, add_tags=["Overlay"], do_print=False)
|
||||
self.library.reload(item, force=True)
|
||||
poster_compare = poster.compare if poster else item.thumb
|
||||
logger.info(f"{item_title[:60]:<60} | Overlays Applied: {', '.join(over_names)}")
|
||||
except (OSError, BadRequest, SyntaxError) as e:
|
||||
|
|
Loading…
Reference in a new issue