summaryrefslogtreecommitdiff
path: root/plugin.video.embycon/resources/lib/server_sessions.py
diff options
context:
space:
mode:
authorShaun <shaun@bluebit.com.au>2017-07-16 00:09:51 +1000
committerenen92 <enen92@users.noreply.github.com>2017-07-15 15:09:51 +0100
commit49d6dd033fc083c4ee6f69947861c0d923144041 (patch)
tree541668912f24621431778016b2ad3ccb4ad08698 /plugin.video.embycon/resources/lib/server_sessions.py
parent09c5e3fe8977c5ffaf6599b3c6a35405a8a141ca (diff)
[plugin.video.embycon] 1.3.17 (#1309)
[plugin.video.embycon] 1.3.17
Diffstat (limited to 'plugin.video.embycon/resources/lib/server_sessions.py')
-rw-r--r--plugin.video.embycon/resources/lib/server_sessions.py65
1 files changed, 65 insertions, 0 deletions
diff --git a/plugin.video.embycon/resources/lib/server_sessions.py b/plugin.video.embycon/resources/lib/server_sessions.py
new file mode 100644
index 0000000..85e7a9d
--- /dev/null
+++ b/plugin.video.embycon/resources/lib/server_sessions.py
@@ -0,0 +1,65 @@
+
+import json
+import sys
+import xbmcgui
+import xbmcplugin
+
+from downloadutils import DownloadUtils
+from simple_logging import SimpleLogging
+
+log = SimpleLogging(__name__)
+
+def showServerSessions():
+ log.debug("showServerSessions Called")
+
+ handle = int(sys.argv[1])
+ downloadUtils = DownloadUtils()
+ url = "{server}/emby/Sessions"
+ result_data = downloadUtils.downloadUrl(url)
+ results = json.loads(result_data)
+
+ if results is None:
+ return
+
+ list_items = []
+ for session in results:
+ device_name = session.get("DeviceName", "na")
+ user_name = session.get("UserName", "na")
+ client_name = session.get("Client", "na")
+
+ session_info = device_name + " - " + user_name + " - " + client_name
+
+ # playstate
+ percenatge_played = 0
+ play_state = session.get("PlayState", None)
+ if play_state is not None:
+ runtime = 0
+ media_id = play_state.get("MediaSourceId", None)
+ log.debug("Media ID " + str(media_id))
+ if media_id is not None:
+ jsonData = downloadUtils.downloadUrl("{server}/emby/Users/{userid}/Items/" +
+ media_id + "?format=json",
+ suppress=False, popup=1)
+ media_info = json.loads(jsonData)
+ log.debug("Media Info " + str(media_info))
+ runtime = media_info.get("RunTimeTicks", 0)
+ log.debug("Media Runtime " + str(runtime))
+
+ position_ticks = play_state.get("PositionTicks", 0)
+ log.debug("Media PositionTicks " + str(position_ticks))
+ if position_ticks > 0 and runtime > 0:
+ percenatge_played = (position_ticks / float(runtime)) * 100.0
+ percenatge_played = int(percenatge_played)
+
+ now_playing = session.get("NowPlayingItem", None)
+ log.debug("NOW_PLAYING: " + str(now_playing))
+ if now_playing is not None:
+ session_info += " (" + now_playing.get("Name", "na") + " " + str(percenatge_played) + "%)"
+
+ log.debug(session_info)
+ list_item = xbmcgui.ListItem(label=session_info)
+ item_tuple = ("", list_item, False)
+ list_items.append(item_tuple)
+
+ xbmcplugin.addDirectoryItems(handle, list_items)
+ xbmcplugin.endOfDirectory(handle, cacheToDisc=False)