PlexDev/updatecoll.py

37 lines
1.2 KiB
Python

from plexapi.myplex import MyPlexAccount
from plexapi.server import PlexServer
from plexapi.media import Media
from pprint import pprint
import sys
try:
import apiconfig
except:
print("Error!")
print(" \"apiconfig.py\" seems to be missing!")
print(" Have you copied the default config to \"apiconfig.py\" and made appropriate edits?")
print()
sys.exit()
colcontents = {}
for col in apiconfig.colmap.values():
colcontents[col] = []
plex = PlexServer(apiconfig.url, apiconfig.apikey)
print("Building collection contents lists...")
for col in apiconfig.colmap.values():
videos = plex.library.section(apiconfig.libraryname).search(collection=col)
for video in videos: colcontents[col].append(video.title)
print("Checking collections for each movie...")
videos = plex.library.section(apiconfig.libraryname).all()
for video in videos:
file = None
for part in video.iterParts():
if file == None: file = part.file
[top_folder, junk] = file[len(apiconfig.mediafolder):].split("/", 1)
if video.title not in colcontents[apiconfig.colmap[top_folder]]:
print(f"Movie {video.title} is missing collection {apiconfig.colmap[top_folder]}")
video.addCollection(apiconfig.colmap[top_folder])