clean up, reduce amount of times connecting to servers.

This commit is contained in:
Blacktwin 2019-03-15 00:58:46 -04:00
parent e605979a16
commit 8f02098655

View File

@ -300,11 +300,12 @@ def connect_to_server(server_obj, user_account):
return user_connection.server return user_connection.server
def check_users_access(user, server_name, libraries=None): def check_users_access(access, user, server_name, libraries=None):
""" """
Parameters Parameters
---------- ----------
user: str access: dict
user: dict
server_name: str server_name: str
libraries: list libraries: list
@ -313,7 +314,7 @@ def check_users_access(user, server_name, libraries=None):
server_connection: class server_connection: class
""" """
try: try:
_user = plex_admin.users_access().get(user) _user = access.get(user)
for access in _user['access']: for access in _user['access']:
server = access.get("server") server = access.get("server")
# Check user access to server # Check user access to server
@ -405,6 +406,7 @@ if __name__ == '__main__':
count = 25 count = 25
start = 0 start = 0
plex_admin = Plex(PLEX_TOKEN) plex_admin = Plex(PLEX_TOKEN)
plex_access = plex_admin.users_access()
userFrom, serverFrom = opts.userFrom userFrom, serverFrom = opts.userFrom
@ -423,43 +425,30 @@ if __name__ == '__main__':
_sections[section_obj.title] = section_obj _sections[section_obj.title] = section_obj
all_sections[serverFrom] = _sections all_sections[serverFrom] = _sections
elif serverFrom != "Tautulli" and opts.libraries: elif serverFrom != "Tautulli" and opts.libraries:
all_sections = plex_admin.all_sections() admin_access = plex_access.get(plex_admin.account.title).get("access")
for server in admin_access:
if server.get("server").get(serverFrom):
all_sections[serverFrom] = server.get("sections")
# Defining libraries # Defining libraries
if opts.libraries: if opts.libraries:
for library in opts.libraries: for library in opts.libraries:
if all_sections.get(serverFrom):
if all_sections.get(serverFrom).get(library): if all_sections.get(serverFrom).get(library):
libraries.append(all_sections.get(serverFrom).get(library)) libraries.append(all_sections.get(serverFrom).get(library))
else: else:
print("No matching library name '{}'".format(library)) print("No matching library name '{}'".format(library))
exit() exit()
else:
print("No matching server name '{}'".format(serverFrom))
exit()
# If userFrom is Plex Admin
# if userFrom == plex_admin.account.title and serverFrom != "Tautulli" and opts.libraries:
# resource = plex_admin.admin_servers().get(serverFrom)
# print('Connecting {} to {}...'.format(userFrom, serverFrom))
# server_connection = resource.connect()
# baseurl = server_connection._baseurl.split('.')
# url = ''.join([baseurl[0].replace('-', '.'),
# baseurl[-1].replace('direct', '')])
#
# token = PLEX_TOKEN
# admin_connection = Plex(url=url, token=token)
# watchedFrom = admin_connection.server
if serverFrom != "Tautulli" and opts.libraries: if serverFrom != "Tautulli" and opts.libraries:
watchedFrom = check_users_access(userFrom, serverFrom, libraries) print("Checking {}'s access to {}".format(userFrom, serverFrom))
watchedFrom = check_users_access(plex_access, userFrom, serverFrom, libraries)
if libraries: if libraries:
print("Finding watched items in libraries...") print("Finding watched items in libraries...")
plexTo = [] plexTo = []
for user, server_name in opts.userTo: for user, server_name in opts.userTo:
plexTo.append([user, check_users_access(user, server_name, libraries)]) plexTo.append([user, check_users_access(plex_access, user, server_name, libraries)])
for _library in libraries: for _library in libraries:
watched_lst = [] watched_lst = []
@ -496,7 +485,7 @@ if __name__ == '__main__':
for user, server_name in opts.userTo: for user, server_name in opts.userTo:
# Check access and connect # Check access and connect
plexTo.append([user, check_users_access(user, server_name, libraries)]) plexTo.append([user, check_users_access(plex_access, user, server_name, libraries)])
for user in plexTo: for user in plexTo:
username, server = user username, server = user