37 lines
1.2 KiB
Python
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])
|