mirror of
https://github.com/jellyfin/jellyfin-kodi.git
synced 2024-11-10 04:06:11 +00:00
Add/Remove additional user from session
Can be mapped to home menu or keymap using: RunPlugin(plugin://plugin.video.emby?mode=adduser)
This commit is contained in:
parent
d8fd3603a6
commit
0501622b59
3 changed files with 86 additions and 0 deletions
|
@ -37,6 +37,9 @@ elif mode == "reset":
|
||||||
elif mode == "resetauth":
|
elif mode == "resetauth":
|
||||||
entrypoint.resetAuth()
|
entrypoint.resetAuth()
|
||||||
|
|
||||||
|
elif mode == "adduser":
|
||||||
|
entrypoint.addUser()
|
||||||
|
|
||||||
##### BROWSE EMBY CHANNELS ROOT #####
|
##### BROWSE EMBY CHANNELS ROOT #####
|
||||||
elif mode == "channels":
|
elif mode == "channels":
|
||||||
entrypoint.BrowseChannels(id)
|
entrypoint.BrowseChannels(id)
|
||||||
|
|
|
@ -12,6 +12,7 @@ import urllib
|
||||||
WINDOW = xbmcgui.Window(10000)
|
WINDOW = xbmcgui.Window(10000)
|
||||||
|
|
||||||
import Utils as utils
|
import Utils as utils
|
||||||
|
from ClientInformation import ClientInformation
|
||||||
from PlaybackUtils import PlaybackUtils
|
from PlaybackUtils import PlaybackUtils
|
||||||
from DownloadUtils import DownloadUtils
|
from DownloadUtils import DownloadUtils
|
||||||
from ReadEmbyDB import ReadEmbyDB
|
from ReadEmbyDB import ReadEmbyDB
|
||||||
|
@ -35,6 +36,87 @@ def resetAuth():
|
||||||
else:
|
else:
|
||||||
xbmc.executebuiltin('Addon.OpenSettings(plugin.video.emby)')
|
xbmc.executebuiltin('Addon.OpenSettings(plugin.video.emby)')
|
||||||
|
|
||||||
|
### ADD ADDITIONAL USERS ###
|
||||||
|
def addUser():
|
||||||
|
|
||||||
|
doUtils = DownloadUtils()
|
||||||
|
clientInfo = ClientInformation()
|
||||||
|
currUser = WINDOW.getProperty("currUser")
|
||||||
|
deviceId = clientInfo.getMachineId()
|
||||||
|
deviceName = clientInfo.getDeviceName()
|
||||||
|
|
||||||
|
# Get session
|
||||||
|
url = "{server}/mediabrowser/Sessions?DeviceId=%s" % deviceId
|
||||||
|
result = doUtils.downloadUrl(url)
|
||||||
|
|
||||||
|
try:
|
||||||
|
sessionId = result[0][u'Id']
|
||||||
|
additionalUsers = result[0][u'AdditionalUsers']
|
||||||
|
# Add user to session
|
||||||
|
userlist = {}
|
||||||
|
users = []
|
||||||
|
url = "{server}/mediabrowser/Users?IsDisabled=false"
|
||||||
|
result = doUtils.downloadUrl(url)
|
||||||
|
|
||||||
|
# pull the list of users
|
||||||
|
for user in result:
|
||||||
|
name = user[u'Name']
|
||||||
|
userId = user[u'Id']
|
||||||
|
if currUser not in name:
|
||||||
|
userlist[name] = userId
|
||||||
|
users.append(name)
|
||||||
|
|
||||||
|
# Display dialog if there's additional users
|
||||||
|
if additionalUsers:
|
||||||
|
|
||||||
|
option = xbmcgui.Dialog().select("Add/Remove user from the session", ["Add user", "Remove user"])
|
||||||
|
# Users currently in the session
|
||||||
|
additionalUserlist = {}
|
||||||
|
additionalUsername = []
|
||||||
|
# Users currently in the session
|
||||||
|
for user in additionalUsers:
|
||||||
|
name = user[u'UserName']
|
||||||
|
userId = user[u'UserId']
|
||||||
|
additionalUserlist[name] = userId
|
||||||
|
additionalUsername.append(name)
|
||||||
|
|
||||||
|
if option == 1:
|
||||||
|
# User selected Remove user
|
||||||
|
resp = xbmcgui.Dialog().select("Remove user from the session", additionalUsername)
|
||||||
|
if resp > -1:
|
||||||
|
selected = additionalUsername[resp]
|
||||||
|
selected_userId = additionalUserlist[selected]
|
||||||
|
url = "{server}/mediabrowser/Sessions/%s/Users/%s" % (sessionId, selected_userId)
|
||||||
|
postdata = {}
|
||||||
|
doUtils.downloadUrl(url, postBody=postdata, type="DELETE")
|
||||||
|
return
|
||||||
|
else:
|
||||||
|
return
|
||||||
|
|
||||||
|
elif option == 0:
|
||||||
|
# User selected Add user
|
||||||
|
for adduser in additionalUsername:
|
||||||
|
xbmc.log(str(adduser))
|
||||||
|
users.remove(adduser)
|
||||||
|
|
||||||
|
elif option < 0:
|
||||||
|
# User cancelled
|
||||||
|
return
|
||||||
|
|
||||||
|
# Subtract any additional users
|
||||||
|
xbmc.log("Displaying list of users: %s" % users)
|
||||||
|
resp = xbmcgui.Dialog().select("Add user to the session", users)
|
||||||
|
# post additional user
|
||||||
|
if resp > -1:
|
||||||
|
selected = users[resp]
|
||||||
|
selected_userId = userlist[selected]
|
||||||
|
url = "{server}/mediabrowser/Sessions/%s/Users/%s" % (sessionId, selected_userId)
|
||||||
|
postdata = {}
|
||||||
|
doUtils.downloadUrl(url, postBody=postdata, type="POST")
|
||||||
|
|
||||||
|
except:
|
||||||
|
xbmc.log("Failed to add user to session.")
|
||||||
|
|
||||||
##### BROWSE EMBY CHANNELS #####
|
##### BROWSE EMBY CHANNELS #####
|
||||||
def BrowseChannels(id, folderid=None):
|
def BrowseChannels(id, folderid=None):
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
<setting type="sep" />
|
<setting type="sep" />
|
||||||
<setting id="accessToken" type="text" visible="false" default="" />
|
<setting id="accessToken" type="text" visible="false" default="" />
|
||||||
<setting label="[COLOR yellow]Reset login attempts[/COLOR]" type="action" visible="eq(-1,) + !eq(-9,)" enable="true" action="RunPlugin(plugin://plugin.video.emby?mode=resetauth)" option="close" />
|
<setting label="[COLOR yellow]Reset login attempts[/COLOR]" type="action" visible="eq(-1,) + !eq(-9,)" enable="true" action="RunPlugin(plugin://plugin.video.emby?mode=resetauth)" option="close" />
|
||||||
|
<setting label="Add/Remove additional user to the session" type="action" visible="true" action="RunPlugin(plugin://plugin.video.emby?mode=adduser)" option="close" />
|
||||||
</category>
|
</category>
|
||||||
<category label="Sync Options">
|
<category label="Sync Options">
|
||||||
<!-- <setting id="syncMovieBoxSets" type="bool" label="30238" default="true" visible="true" enable="true" /> -->
|
<!-- <setting id="syncMovieBoxSets" type="bool" label="30238" default="true" visible="true" enable="true" /> -->
|
||||||
|
|
Loading…
Reference in a new issue