Faster lock/unlock with library lockAllField
and unlockAllField
This commit is contained in:
parent
31e100835c
commit
46afeff95c
@ -37,27 +37,32 @@ PLEX_TOKEN = os.getenv('PLEX_TOKEN', PLEX_TOKEN)
|
|||||||
|
|
||||||
|
|
||||||
def lock_unlock(plex, rating_key=None, libraries=None, lock=None, unlock=None):
|
def lock_unlock(plex, rating_key=None, libraries=None, lock=None, unlock=None):
|
||||||
if rating_key:
|
|
||||||
lock_unlock_items([plex.fetchItem(rating_key)], lock, unlock)
|
|
||||||
|
|
||||||
if libraries is None:
|
if libraries is None:
|
||||||
libraries = []
|
libraries = []
|
||||||
|
|
||||||
for lib in libraries:
|
|
||||||
library = plex.library.section(lib)
|
|
||||||
lock_unlock_items(library.all(), lock, unlock)
|
|
||||||
if library.TYPE == 'show':
|
|
||||||
lock_unlock_items(library.all(libtype='season'), lock, unlock)
|
|
||||||
elif library.TYPE == 'artist':
|
|
||||||
lock_unlock_items(library.all(libtype='album'), lock, unlock)
|
|
||||||
|
|
||||||
|
|
||||||
def lock_unlock_items(items, lock, unlock):
|
|
||||||
if lock is None:
|
if lock is None:
|
||||||
lock = []
|
lock = []
|
||||||
if unlock is None:
|
if unlock is None:
|
||||||
unlock = []
|
unlock = []
|
||||||
|
|
||||||
|
if rating_key:
|
||||||
|
item = plex.fetchItem(rating_key)
|
||||||
|
lock_unlock_items([item], lock, unlock)
|
||||||
|
if item.type == 'show':
|
||||||
|
lock_unlock_items(item.seasons(), lock, unlock)
|
||||||
|
elif item.type == 'artist':
|
||||||
|
lock_unlock_items(item.albums(), lock, unlock)
|
||||||
|
|
||||||
|
else:
|
||||||
|
for lib in libraries:
|
||||||
|
library = plex.library.section(lib)
|
||||||
|
lock_unlock_library(library, lock, unlock)
|
||||||
|
if library.type == 'show':
|
||||||
|
lock_unlock_library(library, lock, unlock, libtype='season')
|
||||||
|
elif library.type == 'artist':
|
||||||
|
lock_unlock_library(library, lock, unlock, libtype='album')
|
||||||
|
|
||||||
|
|
||||||
|
def lock_unlock_items(items, lock, unlock):
|
||||||
for item in items:
|
for item in items:
|
||||||
if 'poster' in lock:
|
if 'poster' in lock:
|
||||||
item.lockPoster()
|
item.lockPoster()
|
||||||
@ -69,6 +74,17 @@ def lock_unlock_items(items, lock, unlock):
|
|||||||
item.unlockArt()
|
item.unlockArt()
|
||||||
|
|
||||||
|
|
||||||
|
def lock_unlock_library(library, lock, unlock, libtype=None):
|
||||||
|
if 'poster' in lock:
|
||||||
|
library.lockAllField('thumb', libtype=libtype)
|
||||||
|
if 'art' in lock:
|
||||||
|
library.lockAllField('art', libtype=libtype)
|
||||||
|
if 'poster' in unlock:
|
||||||
|
library.unlockAllField('thumb', libtype=libtype)
|
||||||
|
if 'art' in unlock:
|
||||||
|
library.unlockAllField('art', libtype=libtype)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
plex = PlexServer(PLEX_URL, PLEX_TOKEN)
|
plex = PlexServer(PLEX_URL, PLEX_TOKEN)
|
||||||
sections = [library.title for library in plex.library.sections()]
|
sections = [library.title for library in plex.library.sections()]
|
||||||
|
Loading…
Reference in New Issue
Block a user