Update window property

If .json in property name, it will automatically apply json.loads/dumps.
This is to avoid importing json in every files.
This commit is contained in:
angelblue05 2016-09-29 01:59:30 -05:00
parent 360d69146d
commit 33ba485b0b
4 changed files with 14 additions and 10 deletions

View file

@ -49,7 +49,7 @@ class DownloadUtils(object):
info[key] = kwargs[key] info[key] = kwargs[key]
self.session.update(info) self.session.update(info)
window('emby_server.json', value=json.dumps(self.session)) window('emby_server.json', value=self.session)
log.debug("Set info for server %s: %s", self.session['ServerId'], self.session) log.debug("Set info for server %s: %s", self.session['ServerId'], self.session)
@ -66,7 +66,7 @@ class DownloadUtils(object):
if s == server_id: if s == server_id:
s.update(info) s.update(info)
# Set window prop # Set window prop
self._set_server_properties(server_id, server['Name'], json.dumps(info)) self._set_server_properties(server_id, server['Name'], info)
log.info("updating %s to available servers: %s", server_id, self.servers) log.info("updating %s to available servers: %s", server_id, self.servers)
break break
else: else:
@ -351,7 +351,7 @@ class DownloadUtils(object):
server = window('emby_server%s.json' % server_id) server = window('emby_server%s.json' % server_id)
if server: if server:
info.update(json.loads(server)) info.update(server)
return info return info

View file

@ -98,9 +98,8 @@ def doMainListing():
''' '''
TODO: Create plugin listing for servers TODO: Create plugin listing for servers
servers = window('emby_servers') servers = window('emby_servers.json')
if servers: if servers:
servers = json.loads(servers)
for server in servers: for server in servers:
log.info(window('emby_server%s.name' % server)) log.info(window('emby_server%s.name' % server))
addDirectoryItem(window('emby_server%s.name' % server), "plugin://plugin.video.emby/?mode=%s" % server)''' addDirectoryItem(window('emby_server%s.name' % server), "plugin://plugin.video.emby/?mode=%s" % server)'''

View file

@ -249,7 +249,7 @@ class UserClient(threading.Thread):
# Set properties # Set properties
log.info(added_servers) log.info(added_servers)
window('emby_servers', value=json.dumps(added_servers)) window('emby_servers.json', value=added_servers)
def _reset_client(self): def _reset_client(self):

View file

@ -26,16 +26,21 @@ log = logging.getLogger("EMBY."+__name__)
################################################################################################# #################################################################################################
# Main methods # Main methods
def window(property, value=None, clear=False, window_id=10000): def window(property_, value=None, clear=False, window_id=10000):
# Get or set window property # Get or set window property
WINDOW = xbmcgui.Window(window_id) WINDOW = xbmcgui.Window(window_id)
if clear: if clear:
WINDOW.clearProperty(property) WINDOW.clearProperty(property_)
elif value is not None: elif value is not None:
WINDOW.setProperty(property, value) if ".json" in property_:
value = json.dumps(value)
WINDOW.setProperty(property_, value)
else: else:
return WINDOW.getProperty(property) result = WINDOW.getProperty(property_)
if result and ".json" in property_:
result = json.loads(result)
return result
def settings(setting, value=None): def settings(setting, value=None):
# Get or add addon setting # Get or add addon setting