Add shared libraries and filters to database

This commit is contained in:
JonnyWong16 2016-04-30 21:09:34 -07:00
parent ae60b21375
commit 2aa059a170
3 changed files with 74 additions and 15 deletions

View file

@ -22,23 +22,39 @@ import xmltodict
from xml.dom import minidom
import plexpy
from plexpy import logger, helpers, http_handler, database, users, session
from plexpy import logger, helpers, http_handler, database, users, session, pmsconnect
def refresh_users():
logger.info(u"PlexPy PlexTV :: Requesting users list refresh...")
result = PlexTV().get_full_users_list()
monitor_db = database.MonitorDatabase()
if len(result) > 0:
monitor_db = database.MonitorDatabase()
user_data = users.Users()
if result:
for item in result:
shared_libraries = ''
user_tokens = user_data.get_tokens(user_id=item['user_id'])
if user_tokens and user_tokens['server_token']:
pms_connect = pmsconnect.PmsConnect(token=user_tokens['server_token'])
library_details = pms_connect.get_server_children()
shared_libraries = ';'.join(d['section_id'] for d in library_details['libraries_list'])
control_value_dict = {"user_id": item['user_id']}
new_value_dict = {"username": item['username'],
"thumb": item['thumb'],
"email": item['email'],
"is_home_user": item['is_home_user'],
"is_allow_sync": item['is_allow_sync'],
"is_restricted": item['is_restricted']
"is_restricted": item['is_restricted'],
"shared_libraries": shared_libraries,
"filter_all": item['filter_all'],
"filter_movies": item['filter_movies'],
"filter_tv": item['filter_tv'],
"filter_music": item['filter_music'],
"filter_photos": item['filter_photos']
}
# Check if we've set a custom avatar if so don't overwrite it.
@ -115,7 +131,16 @@ class PlexTV(object):
self.password = password
self.ssl_verify = plexpy.CONFIG.VERIFY_SSL_CERT
token = token if token else plexpy.CONFIG.PMS_TOKEN
if token == 'admin':
token = plexpy.CONFIG.PMS_TOKEN
elif not token:
# Check if we should use the admin token, or the guest server token
if session.get_session_user_id():
user_data = users.Users()
user_tokens = user_data.get_tokens(user_id=session.get_session_user_id())
token = user_tokens['server_token']
else:
token = plexpy.CONFIG.PMS_TOKEN
self.request_handler = http_handler.HTTPHandler(host='plex.tv',
port=443,
@ -262,7 +287,12 @@ class PlexTV(object):
"email": helpers.get_xml_attr(a, 'email'),
"is_home_user": helpers.get_xml_attr(a, 'home'),
"is_allow_sync": None,
"is_restricted": helpers.get_xml_attr(a, 'restricted')
"is_restricted": helpers.get_xml_attr(a, 'restricted'),
"filter_all": helpers.get_xml_attr(a, 'filterAll'),
"filter_movies": helpers.get_xml_attr(a, 'filterMovies'),
"filter_tv": helpers.get_xml_attr(a, 'filterTelevision'),
"filter_music": helpers.get_xml_attr(a, 'filterMusic'),
"filter_photos": helpers.get_xml_attr(a, 'filterPhotos')
}
users_list.append(own_details)
@ -287,7 +317,12 @@ class PlexTV(object):
"email": helpers.get_xml_attr(a, 'email'),
"is_home_user": helpers.get_xml_attr(a, 'home'),
"is_allow_sync": helpers.get_xml_attr(a, 'allowSync'),
"is_restricted": helpers.get_xml_attr(a, 'restricted')
"is_restricted": helpers.get_xml_attr(a, 'restricted'),
"filter_all": helpers.get_xml_attr(a, 'filterAll'),
"filter_movies": helpers.get_xml_attr(a, 'filterMovies'),
"filter_tv": helpers.get_xml_attr(a, 'filterTelevision'),
"filter_music": helpers.get_xml_attr(a, 'filterMusic'),
"filter_photos": helpers.get_xml_attr(a, 'filterPhotos')
}
users_list.append(friend)