diff --git a/resources/lib/dialogs/context.py b/resources/lib/context.py
similarity index 100%
rename from resources/lib/dialogs/context.py
rename to resources/lib/context.py
diff --git a/resources/lib/context_entry.py b/resources/lib/context_entry.py
index b38b27ae..994913fc 100644
--- a/resources/lib/context_entry.py
+++ b/resources/lib/context_entry.py
@@ -6,10 +6,10 @@ from xbmcaddon import Addon
import xbmc
import xbmcplugin
import xbmcgui
+import context
import plexdb_functions as plexdb
from utils import window, settings, dialog, language as lang
-from dialogs import context
import PlexFunctions as PF
from PlexAPI import API
import playqueue as PQ
@@ -96,18 +96,7 @@ class ContextMenu(object):
options.append(OPTIONS['PMS_Play'])
if self.kodi_type in v.KODI_VIDEOTYPES:
options.append(OPTIONS['Transcode'])
- # userdata = self.api.userdata()
- # if userdata['Favorite']:
- # # Remove from emby favourites
- # options.append(OPTIONS['RemoveFav'])
- # else:
- # # Add to emby favourites
- # options.append(OPTIONS['AddFav'])
- # if self.kodi_type == "song":
- # # Set custom song rating
- # options.append(OPTIONS['RateSong'])
- # Refresh item
- # options.append(OPTIONS['Refresh'])
+
# Delete item, only if the Plex Home main user is logged in
if (window('plex_restricteduser') != 'true' and
window('plex_allows_mediaDeletion') == 'true'):
@@ -137,14 +126,7 @@ class ContextMenu(object):
self._PMS_play()
elif selected == OPTIONS['Extras']:
self._extras()
- # elif selected == OPTIONS['Refresh']:
- # self.emby.refreshItem(self.item_id)
- # elif selected == OPTIONS['AddFav']:
- # self.emby.updateUserRating(self.item_id, favourite=True)
- # elif selected == OPTIONS['RemoveFav']:
- # self.emby.updateUserRating(self.item_id, favourite=False)
- # elif selected == OPTIONS['RateSong']:
- # self._rate_song()
+
elif selected == OPTIONS['Addon']:
xbmc.executebuiltin(
'Addon.OpenSettings(plugin.video.plexkodiconnect)')
diff --git a/resources/lib/dialogs/__init__.py b/resources/lib/dialogs/__init__.py
deleted file mode 100644
index 92c6f42a..00000000
--- a/resources/lib/dialogs/__init__.py
+++ /dev/null
@@ -1,6 +0,0 @@
-# Dummy file to make this directory a package.
-# from serverconnect import ServerConnect
-# from usersconnect import UsersConnect
-# from loginconnect import LoginConnect
-# from loginmanual import LoginManual
-# from servermanual import ServerManual
diff --git a/resources/lib/dialogs/loginconnect.py b/resources/lib/dialogs/loginconnect.py
deleted file mode 100644
index db7c39cc..00000000
--- a/resources/lib/dialogs/loginconnect.py
+++ /dev/null
@@ -1,136 +0,0 @@
-# -*- coding: utf-8 -*-
-
-##################################################################################################
-
-import logging
-import os
-
-import xbmcgui
-import xbmcaddon
-
-from utils import language as lang
-
-##################################################################################################
-
-log = logging.getLogger("EMBY."+__name__)
-addon = xbmcaddon.Addon('plugin.video.emby')
-
-ACTION_PARENT_DIR = 9
-ACTION_PREVIOUS_MENU = 10
-ACTION_BACK = 92
-SIGN_IN = 200
-CANCEL = 201
-ERROR_TOGGLE = 202
-ERROR_MSG = 203
-ERROR = {
- 'Invalid': 1,
- 'Empty': 2
-}
-
-##################################################################################################
-
-
-class LoginConnect(xbmcgui.WindowXMLDialog):
-
- _user = None
- error = None
-
-
- def __init__(self, *args, **kwargs):
-
- xbmcgui.WindowXMLDialog.__init__(self, *args, **kwargs)
-
- def set_connect_manager(self, connect_manager):
- self.connect_manager = connect_manager
-
- def is_logged_in(self):
- return True if self._user else False
-
- def get_user(self):
- return self._user
-
-
- def onInit(self):
-
- self.user_field = self._add_editcontrol(725, 385, 40, 500)
- self.setFocus(self.user_field)
- self.password_field = self._add_editcontrol(725, 470, 40, 500, password=1)
- self.signin_button = self.getControl(SIGN_IN)
- self.remind_button = self.getControl(CANCEL)
- self.error_toggle = self.getControl(ERROR_TOGGLE)
- self.error_msg = self.getControl(ERROR_MSG)
-
- self.user_field.controlUp(self.remind_button)
- self.user_field.controlDown(self.password_field)
- self.password_field.controlUp(self.user_field)
- self.password_field.controlDown(self.signin_button)
- self.signin_button.controlUp(self.password_field)
- self.remind_button.controlDown(self.user_field)
-
- def onClick(self, control):
-
- if control == SIGN_IN:
- # Sign in to emby connect
- self._disable_error()
-
- user = self.user_field.getText()
- password = self.password_field.getText()
-
- if not user or not password:
- # Display error
- self._error(ERROR['Empty'], lang(30608))
- log.error("Username or password cannot be null")
-
- elif self._login(user, password):
- self.close()
-
- elif control == CANCEL:
- # Remind me later
- self.close()
-
- def onAction(self, action):
-
- if (self.error == ERROR['Empty']
- and self.user_field.getText() and self.password_field.getText()):
- self._disable_error()
-
- if action in (ACTION_BACK, ACTION_PARENT_DIR, ACTION_PREVIOUS_MENU):
- self.close()
-
- def _add_editcontrol(self, x, y, height, width, password=0):
-
- media = os.path.join(addon.getAddonInfo('path'), 'resources', 'skins', 'default', 'media')
- control = xbmcgui.ControlEdit(0, 0, 0, 0,
- label="User",
- font="font10",
- textColor="ff525252",
- focusTexture=os.path.join(media, "button-focus.png"),
- noFocusTexture=os.path.join(media, "button-focus.png"),
- isPassword=password)
- control.setPosition(x, y)
- control.setHeight(height)
- control.setWidth(width)
-
- self.addControl(control)
- return control
-
- def _login(self, username, password):
-
- result = self.connect_manager.loginToConnect(username, password)
- if result is False:
- self._error(ERROR['Invalid'], lang(33009))
- return False
- else:
- self._user = result
- return True
-
- def _error(self, state, message):
-
- self.error = state
- self.error_msg.setLabel(message)
- self.error_toggle.setVisibleCondition('True')
-
- def _disable_error(self):
-
- self.error = None
- self.error_toggle.setVisibleCondition('False')
diff --git a/resources/lib/dialogs/loginmanual.py b/resources/lib/dialogs/loginmanual.py
deleted file mode 100644
index 7db1adcf..00000000
--- a/resources/lib/dialogs/loginmanual.py
+++ /dev/null
@@ -1,145 +0,0 @@
-# -*- coding: utf-8 -*-
-
-##################################################################################################
-
-import logging
-import os
-
-import xbmcgui
-import xbmcaddon
-
-import read_embyserver as embyserver
-from utils import language as lang
-
-##################################################################################################
-
-log = logging.getLogger("EMBY."+__name__)
-addon = xbmcaddon.Addon('plugin.video.emby')
-
-ACTION_PARENT_DIR = 9
-ACTION_PREVIOUS_MENU = 10
-ACTION_BACK = 92
-SIGN_IN = 200
-CANCEL = 201
-ERROR_TOGGLE = 202
-ERROR_MSG = 203
-ERROR = {
- 'Invalid': 1,
- 'Empty': 2
-}
-
-##################################################################################################
-
-
-class LoginManual(xbmcgui.WindowXMLDialog):
-
- _user = None
- error = None
- username = None
-
-
- def __init__(self, *args, **kwargs):
-
- self.emby = embyserver.Read_EmbyServer()
- xbmcgui.WindowXMLDialog.__init__(self, *args, **kwargs)
-
- def is_logged_in(self):
- return True if self._user else False
-
- def set_server(self, server):
- self.server = server
-
- def set_user(self, user):
- self.username = user or {}
-
- def get_user(self):
- return self._user
-
- def onInit(self):
-
- self.signin_button = self.getControl(SIGN_IN)
- self.cancel_button = self.getControl(CANCEL)
- self.error_toggle = self.getControl(ERROR_TOGGLE)
- self.error_msg = self.getControl(ERROR_MSG)
- self.user_field = self._add_editcontrol(725, 400, 40, 500)
- self.password_field = self._add_editcontrol(725, 475, 40, 500, password=1)
-
- if self.username:
- self.user_field.setText(self.username)
- self.setFocus(self.password_field)
- else:
- self.setFocus(self.user_field)
-
- self.user_field.controlUp(self.cancel_button)
- self.user_field.controlDown(self.password_field)
- self.password_field.controlUp(self.user_field)
- self.password_field.controlDown(self.signin_button)
- self.signin_button.controlUp(self.password_field)
- self.cancel_button.controlDown(self.user_field)
-
- def onClick(self, control):
-
- if control == SIGN_IN:
- # Sign in to emby connect
- self._disable_error()
-
- user = self.user_field.getText()
- password = self.password_field.getText()
-
- if not user:
- # Display error
- self._error(ERROR['Empty'], lang(30613))
- log.error("Username cannot be null")
-
- elif self._login(user, password):
- self.close()
-
- elif control == CANCEL:
- # Remind me later
- self.close()
-
- def onAction(self, action):
-
- if self.error == ERROR['Empty'] and self.user_field.getText():
- self._disable_error()
-
- if action in (ACTION_BACK, ACTION_PARENT_DIR, ACTION_PREVIOUS_MENU):
- self.close()
-
- def _add_editcontrol(self, x, y, height, width, password=0):
-
- media = os.path.join(addon.getAddonInfo('path'), 'resources', 'skins', 'default', 'media')
- control = xbmcgui.ControlEdit(0, 0, 0, 0,
- label="User",
- font="font10",
- textColor="ff525252",
- focusTexture=os.path.join(media, "button-focus.png"),
- noFocusTexture=os.path.join(media, "button-focus.png"),
- isPassword=password)
- control.setPosition(x, y)
- control.setHeight(height)
- control.setWidth(width)
-
- self.addControl(control)
- return control
-
- def _login(self, username, password):
-
- result = self.emby.loginUser(self.server, username, password)
- if not result:
- self._error(ERROR['Invalid'], lang(33009))
- return False
- else:
- self._user = result
- return True
-
- def _error(self, state, message):
-
- self.error = state
- self.error_msg.setLabel(message)
- self.error_toggle.setVisibleCondition('True')
-
- def _disable_error(self):
-
- self.error = None
- self.error_toggle.setVisibleCondition('False')
diff --git a/resources/lib/dialogs/serverconnect.py b/resources/lib/dialogs/serverconnect.py
deleted file mode 100644
index 541ca6f9..00000000
--- a/resources/lib/dialogs/serverconnect.py
+++ /dev/null
@@ -1,145 +0,0 @@
-# -*- coding: utf-8 -*-
-
-##################################################################################################
-
-import logging
-
-import xbmc
-import xbmcgui
-
-import connect.connectionmanager as connectionmanager
-from utils import language as lang
-
-##################################################################################################
-
-log = logging.getLogger("EMBY."+__name__)
-
-CONN_STATE = connectionmanager.ConnectionState
-ACTION_PARENT_DIR = 9
-ACTION_PREVIOUS_MENU = 10
-ACTION_BACK = 92
-ACTION_SELECT_ITEM = 7
-ACTION_MOUSE_LEFT_CLICK = 100
-USER_IMAGE = 150
-USER_NAME = 151
-LIST = 155
-CANCEL = 201
-MESSAGE_BOX = 202
-MESSAGE = 203
-BUSY = 204
-EMBY_CONNECT = 205
-MANUAL_SERVER = 206
-
-##################################################################################################
-
-
-class ServerConnect(xbmcgui.WindowXMLDialog):
-
- username = ""
- user_image = None
- servers = []
-
- _selected_server = None
- _connect_login = False
- _manual_server = False
-
-
- def __init__(self, *args, **kwargs):
-
- xbmcgui.WindowXMLDialog.__init__(self, *args, **kwargs)
-
- def set_args(self, **kwargs):
- # connect_manager, username, user_image, servers, emby_connect
- for key, value in kwargs.iteritems():
- setattr(self, key, value)
-
- def is_server_selected(self):
- return True if self._selected_server else False
-
- def get_server(self):
- return self._selected_server
-
- def is_connect_login(self):
- return self._connect_login
-
- def is_manual_server(self):
- return self._manual_server
-
-
- def onInit(self):
-
- self.message = self.getControl(MESSAGE)
- self.message_box = self.getControl(MESSAGE_BOX)
- self.busy = self.getControl(BUSY)
- self.list_ = self.getControl(LIST)
-
- for server in self.servers:
- server_type = "wifi" if server.get('ExchangeToken') else "network"
- self.list_.addItem(self._add_listitem(server['Name'], server['Id'], server_type))
-
- self.getControl(USER_NAME).setLabel("%s %s" % (lang(33000), self.username.decode('utf-8')))
-
- if self.user_image is not None:
- self.getControl(USER_IMAGE).setImage(self.user_image)
-
- if not self.emby_connect: # Change connect user
- self.getControl(EMBY_CONNECT).setLabel("[UPPERCASE][B]"+lang(30618)+"[/B][/UPPERCASE]")
-
- if self.servers:
- self.setFocus(self.list_)
-
- @classmethod
- def _add_listitem(cls, label, server_id, server_type):
-
- item = xbmcgui.ListItem(label)
- item.setProperty('id', server_id)
- item.setProperty('server_type', server_type)
-
- return item
-
- def onAction(self, action):
-
- if action in (ACTION_BACK, ACTION_PREVIOUS_MENU, ACTION_PARENT_DIR):
- self.close()
-
- if action in (ACTION_SELECT_ITEM, ACTION_MOUSE_LEFT_CLICK):
-
- if self.getFocusId() == LIST:
- server = self.list_.getSelectedItem()
- selected_id = server.getProperty('id')
- log.info('Server Id selected: %s', selected_id)
-
- if self._connect_server(selected_id):
- self.message_box.setVisibleCondition('False')
- self.close()
-
- def onClick(self, control):
-
- if control == EMBY_CONNECT:
- self.connect_manager.clearData()
- self._connect_login = True
- self.close()
-
- elif control == MANUAL_SERVER:
- self._manual_server = True
- self.close()
-
- elif control == CANCEL:
- self.close()
-
- def _connect_server(self, server_id):
-
- server = self.connect_manager.getServerInfo(server_id)
- self.message.setLabel("%s %s..." % (lang(30610), server['Name']))
- self.message_box.setVisibleCondition('True')
- self.busy.setVisibleCondition('True')
- result = self.connect_manager.connectToServer(server)
-
- if result['State'] == CONN_STATE['Unavailable']:
- self.busy.setVisibleCondition('False')
- self.message.setLabel(lang(30609))
- return False
- else:
- xbmc.sleep(1000)
- self._selected_server = result['Servers'][0]
- return True
diff --git a/resources/lib/dialogs/servermanual.py b/resources/lib/dialogs/servermanual.py
deleted file mode 100644
index d54199eb..00000000
--- a/resources/lib/dialogs/servermanual.py
+++ /dev/null
@@ -1,145 +0,0 @@
-# -*- coding: utf-8 -*-
-
-##################################################################################################
-
-import logging
-import os
-
-import xbmcgui
-import xbmcaddon
-
-import connect.connectionmanager as connectionmanager
-from utils import language as lang
-
-##################################################################################################
-
-log = logging.getLogger("EMBY."+__name__)
-addon = xbmcaddon.Addon('plugin.video.emby')
-
-CONN_STATE = connectionmanager.ConnectionState
-ACTION_PARENT_DIR = 9
-ACTION_PREVIOUS_MENU = 10
-ACTION_BACK = 92
-CONNECT = 200
-CANCEL = 201
-ERROR_TOGGLE = 202
-ERROR_MSG = 203
-ERROR = {
- 'Invalid': 1,
- 'Empty': 2
-}
-
-##################################################################################################
-
-
-class ServerManual(xbmcgui.WindowXMLDialog):
-
- _server = None
- error = None
-
-
- def __init__(self, *args, **kwargs):
-
- xbmcgui.WindowXMLDialog.__init__(self, *args, **kwargs)
-
- def set_connect_manager(self, connect_manager):
- self.connect_manager = connect_manager
-
- def is_connected(self):
- return True if self._server else False
-
- def get_server(self):
- return self._server
-
- def onInit(self):
-
- self.connect_button = self.getControl(CONNECT)
- self.cancel_button = self.getControl(CANCEL)
- self.error_toggle = self.getControl(ERROR_TOGGLE)
- self.error_msg = self.getControl(ERROR_MSG)
- self.host_field = self._add_editcontrol(725, 400, 40, 500)
- self.port_field = self._add_editcontrol(725, 525, 40, 500)
-
- self.port_field.setText('8096')
- self.setFocus(self.host_field)
-
- self.host_field.controlUp(self.cancel_button)
- self.host_field.controlDown(self.port_field)
- self.port_field.controlUp(self.host_field)
- self.port_field.controlDown(self.connect_button)
- self.connect_button.controlUp(self.port_field)
- self.cancel_button.controlDown(self.host_field)
-
- def onClick(self, control):
-
- if control == CONNECT:
- # Sign in to emby connect
- self._disable_error()
-
- server = self.host_field.getText()
- port = self.port_field.getText()
-
- if not server or not port:
- # Display error
- self._error(ERROR['Empty'], lang(30617))
- log.error("Server or port cannot be null")
-
- elif self._connect_to_server(server, port):
- self.close()
-
- elif control == CANCEL:
- # Remind me later
- self.close()
-
- def onAction(self, action):
-
- if self.error == ERROR['Empty'] and self.host_field.getText() and self.port_field.getText():
- self._disable_error()
-
- if action in (ACTION_BACK, ACTION_PARENT_DIR, ACTION_PREVIOUS_MENU):
- self.close()
-
- def _add_editcontrol(self, x, y, height, width):
-
- media = os.path.join(addon.getAddonInfo('path'), 'resources', 'skins', 'default', 'media')
- control = xbmcgui.ControlEdit(0, 0, 0, 0,
- label="User",
- font="font10",
- textColor="ffc2c2c2",
- focusTexture=os.path.join(media, "button-focus.png"),
- noFocusTexture=os.path.join(media, "button-focus.png"))
- control.setPosition(x, y)
- control.setHeight(height)
- control.setWidth(width)
-
- self.addControl(control)
- return control
-
- def _connect_to_server(self, server, port):
-
- server_address = "%s:%s" % (server, port)
- self._message("%s %s..." % (lang(30610), server_address))
- result = self.connect_manager.connectToAddress(server_address)
-
- if result['State'] == CONN_STATE['Unavailable']:
- self._message(lang(30609))
- return False
- else:
- self._server = result['Servers'][0]
- return True
-
- def _message(self, message):
-
- self.error_msg.setLabel(message)
- self.error_toggle.setVisibleCondition('True')
-
- def _error(self, state, message):
-
- self.error = state
- self.error_msg.setLabel(message)
- self.error_toggle.setVisibleCondition('True')
-
- def _disable_error(self):
-
- self.error = None
- self.error_toggle.setVisibleCondition('False')
diff --git a/resources/lib/dialogs/usersconnect.py b/resources/lib/dialogs/usersconnect.py
deleted file mode 100644
index ed535c98..00000000
--- a/resources/lib/dialogs/usersconnect.py
+++ /dev/null
@@ -1,104 +0,0 @@
-# -*- coding: utf-8 -*-
-
-##################################################################################################
-
-import logging
-
-import xbmc
-import xbmcgui
-
-##################################################################################################
-
-log = logging.getLogger("EMBY."+__name__)
-
-ACTION_PARENT_DIR = 9
-ACTION_PREVIOUS_MENU = 10
-ACTION_BACK = 92
-ACTION_SELECT_ITEM = 7
-ACTION_MOUSE_LEFT_CLICK = 100
-LIST = 155
-MANUAL = 200
-CANCEL = 201
-
-##################################################################################################
-
-
-class UsersConnect(xbmcgui.WindowXMLDialog):
-
- _user = None
- _manual_login = False
-
-
- def __init__(self, *args, **kwargs):
-
- self.kodi_version = int(xbmc.getInfoLabel('System.BuildVersion')[:2])
- xbmcgui.WindowXMLDialog.__init__(self, *args, **kwargs)
-
- def set_server(self, server):
- self.server = server
-
- def set_users(self, users):
- self.users = users
-
- def is_user_selected(self):
- return True if self._user else False
-
- def get_user(self):
- return self._user
-
- def is_manual_login(self):
- return self._manual_login
-
-
- def onInit(self):
-
- self.list_ = self.getControl(LIST)
- for user in self.users:
- user_image = ("userflyoutdefault2.png" if 'PrimaryImageTag' not in user
- else self._get_user_artwork(user['Id'], 'Primary'))
- self.list_.addItem(self._add_listitem(user['Name'], user['Id'], user_image))
-
- self.setFocus(self.list_)
-
- def _add_listitem(self, label, user_id, user_image):
-
- item = xbmcgui.ListItem(label)
- item.setProperty('id', user_id)
- if self.kodi_version > 15:
- item.setArt({'Icon': user_image})
- else:
- item.setArt({'icon': user_image})
-
- return item
-
- def onAction(self, action):
-
- if action in (ACTION_BACK, ACTION_PREVIOUS_MENU, ACTION_PARENT_DIR):
- self.close()
-
- if action in (ACTION_SELECT_ITEM, ACTION_MOUSE_LEFT_CLICK):
-
- if self.getFocusId() == LIST:
- user = self.list_.getSelectedItem()
- selected_id = user.getProperty('id')
- log.info('User Id selected: %s', selected_id)
-
- for user in self.users:
- if user['Id'] == selected_id:
- self._user = user
- break
-
- self.close()
-
- def onClick(self, control):
-
- if control == MANUAL:
- self._manual_login = True
- self.close()
-
- elif control == CANCEL:
- self.close()
-
- def _get_user_artwork(self, user_id, item_type):
- # Load user information set by UserClient
- return "%s/emby/Users/%s/Images/%s?Format=original" % (self.server, user_id, item_type)
diff --git a/resources/skins/default/1080i/script-plex-context.xml b/resources/skins/default/1080i/script-plex-context.xml
index 380f2a9a..1b94802e 100644
--- a/resources/skins/default/1080i/script-plex-context.xml
+++ b/resources/skins/default/1080i/script-plex-context.xml
@@ -8,7 +8,7 @@
Background fade
100%
100%
- plex-bg-fade.png
+ bg-fade.png
@@ -45,7 +45,7 @@
0.5
70
-5
- plex-separator.png
+ separator.png
diff --git a/resources/skins/default/media/plex-bg-fade.png b/resources/skins/default/media/bg-fade.png
similarity index 100%
rename from resources/skins/default/media/plex-bg-fade.png
rename to resources/skins/default/media/bg-fade.png
diff --git a/resources/skins/default/media/plex-separator.png b/resources/skins/default/media/separator.png
similarity index 100%
rename from resources/skins/default/media/plex-separator.png
rename to resources/skins/default/media/separator.png