diff --git a/resources/lib/DownloadUtils.py b/resources/lib/DownloadUtils.py
index 177db42d..74995c38 100644
--- a/resources/lib/DownloadUtils.py
+++ b/resources/lib/DownloadUtils.py
@@ -106,6 +106,25 @@ class DownloadUtils():
self.WINDOW.setProperty("sessionId%s" % self.username, sessionId)
except:
self.logMsg("Failed to retrieve sessionId.", 1)
+ else:
+ # Post any permanent additional users
+ additionalUsers = utils.settings('additionalUsers').split(',')
+ self.logMsg("List of permanent users that should be added to the session: %s" % str(additionalUsers), 1)
+ # Get the user list from server to get the userId
+ url = "{server}/mediabrowser/Users?format=json"
+ result = self.downloadUrl(url)
+
+ if result:
+ for user in result:
+ username = user['Name'].lower()
+ userId = user['Id']
+ for additional in additionalUsers:
+ addUser = additional.decode('utf-8').lower()
+ if username in addUser:
+ url = "{server}/mediabrowser/Sessions/%s/Users/%s" % (sessionId, userId)
+ postdata = {}
+ self.downloadUrl(url, postBody=postdata, type="POST")
+ #xbmcgui.Dialog().notification("Success!", "%s added to viewing session" % username, time=1000)
def startSession(self):
diff --git a/resources/lib/Entrypoint.py b/resources/lib/Entrypoint.py
index 52937421..6e10a414 100644
--- a/resources/lib/Entrypoint.py
+++ b/resources/lib/Entrypoint.py
@@ -98,8 +98,9 @@ def addUser():
elif option == 0:
# User selected Add user
for adduser in additionalUsername:
- xbmc.log(str(adduser))
- users.remove(adduser)
+ try: # Remove from selected already added users. It is possible they are hidden.
+ users.remove(adduser)
+ except: pass
elif option < 0:
# User cancelled
diff --git a/resources/lib/UserClient.py b/resources/lib/UserClient.py
index 1764591e..b0a507f4 100644
--- a/resources/lib/UserClient.py
+++ b/resources/lib/UserClient.py
@@ -64,6 +64,13 @@ class UserClient(threading.Thread):
return username
+ def getAdditionalUsers(self):
+
+ additionalUsers = utils.settings('additionalUsers')
+
+ if additionalUsers:
+ self.AdditionalUser = additionalUsers.split(',')
+
def getLogLevel(self):
try:
@@ -251,6 +258,7 @@ class UserClient(threading.Thread):
self.hasAccess()
# Start DownloadUtils session
doUtils.startSession()
+ self.getAdditionalUsers()
# Set user preferences in settings
self.setUserPref()
diff --git a/resources/settings.xml b/resources/settings.xml
index ad857d3c..6317726c 100644
--- a/resources/settings.xml
+++ b/resources/settings.xml
@@ -39,6 +39,7 @@
+
diff --git a/service.py b/service.py
index 042d0505..0506f741 100644
--- a/service.py
+++ b/service.py
@@ -153,7 +153,13 @@ class Service():
if self.welcome_msg:
# Reset authentication warnings
self.welcome_msg = False
- xbmcgui.Dialog().notification("Emby server", "Welcome %s!" % user.currUser, icon="special://home/addons/plugin.video.emby/icon.png", time=2000, sound=False)
+ # Get additional users
+ additionalUsers = user.AdditionalUser
+ if additionalUsers:
+ add = ", %s" % ", ".join(additionalUsers)
+ else:
+ add = ""
+ xbmcgui.Dialog().notification("Emby server", "Welcome %s%s!" % (user.currUser, add), icon="special://home/addons/plugin.video.emby/icon.png", time=2000, sound=False)
# Start the Websocket Client
if (self.newWebSocketThread is None):