Split setup into methods

Add additional logging for migration
This commit is contained in:
angelblue05 2016-09-06 20:21:43 -05:00
parent 334206b334
commit 9e9054865a
3 changed files with 56 additions and 46 deletions

View file

@ -89,6 +89,7 @@ class ClientInfo(object):
guid_file = xbmc.translatePath(path).decode('utf-8') guid_file = xbmc.translatePath(path).decode('utf-8')
if xbmcvfs.exists(guid_file): if xbmcvfs.exists(guid_file):
xbmcvfs.copy(guid_file, emby_guid) xbmcvfs.copy(guid_file, emby_guid)
log.info("guid migration completed")
###$ End migration $### ###$ End migration $###
if reset and xbmcvfs.exists(emby_guid): if reset and xbmcvfs.exists(emby_guid):

View file

@ -33,12 +33,47 @@ class InitialSetup(object):
def setup(self): def setup(self):
# Check server, user, direct paths, music, direct stream if not direct path. # Check server, user, direct paths, music, direct stream if not direct path.
addon_id = self.addon_id
dialog = xbmcgui.Dialog() dialog = xbmcgui.Dialog()
##### SERVER INFO ##### log.debug("Initial setup called")
log.debug("Initial setup called.") if self._server_verification() and settings('userId'):
# Setup is already completed
return
if not self._user_identification():
# User failed to identify
return
##### ADDITIONAL PROMPTS #####
direct_paths = dialog.yesno(heading=lang(30511),
line1=lang(33035),
nolabel=lang(33036),
yeslabel=lang(33037))
if direct_paths:
log.info("User opted to use direct paths")
settings('useDirectPaths', value="1")
# ask for credentials
credentials = dialog.yesno(heading=lang(30517), line1=lang(33038))
if credentials:
log.info("Presenting network credentials dialog")
passwordsXML()
music_disabled = dialog.yesno(heading=lang(29999), line1=lang(33039))
if music_disabled:
log.info("User opted to disable Emby music library")
settings('enableMusic', value="false")
else:
# Only prompt if the user didn't select direct paths for videos
if not direct_paths:
music_access = dialog.yesno(heading=lang(29999), line1=lang(33040))
if music_access:
log.info("User opted to direct stream music")
settings('streamMusic', value="true")
def _server_verification(self):
###$ Begin migration $### ###$ Begin migration $###
if settings('server') == "": if settings('server') == "":
@ -49,6 +84,7 @@ class InitialSetup(object):
settings('ServerId', value=server['Id']) settings('ServerId', value=server['Id'])
self.user_client.get_userid() self.user_client.get_userid()
self.user_client.get_token() self.user_client.get_token()
log.info("server migration completed")
###$ End migration $### ###$ End migration $###
if settings('server'): if settings('server'):
@ -58,64 +94,34 @@ class InitialSetup(object):
server_address = self.connectmanager.get_address(server) server_address = self.connectmanager.get_address(server)
self._set_server(server_address, server) self._set_server(server_address, server)
#self._set_user(server['UserId'], server['AccessToken']) #self._set_user(server['UserId'], server['AccessToken'])
break return True
return
return False
def _user_identification(self):
try: try:
server = self.connectmanager.select_servers() server = self.connectmanager.select_servers()
log.info("Server: %s", server) log.info("Server: %s", server)
except RuntimeError as error:
log.exception(error)
xbmc.executebuiltin('Addon.OpenSettings(%s)' % addon_id)
return
else:
server_address = self.connectmanager.get_address(server) server_address = self.connectmanager.get_address(server)
self._set_server(server_address, server) self._set_server(server_address, server)
if not server.get('AccessToken') and not server.get('UserId'): if not server.get('AccessToken') and not server.get('UserId'):
try: user = self.connectmanager.login(server)
user = self.connectmanager.login(server) log.info("User authenticated: %s", user)
log.info("User authenticated: %s", user)
except RuntimeError as error:
log.exception(error)
xbmc.executebuiltin('Addon.OpenSettings(%s)' % addon_id)
return
settings('username', value=user['User']['Name']) settings('username', value=user['User']['Name'])
self._set_user(user['User']['Id'], user['AccessToken']) self._set_user(user['User']['Id'], user['AccessToken'])
else: else: # Logged with Emby Connect
user = self.connectmanager.get_state() user = self.connectmanager.get_state()
settings('connectUsername', value=user['ConnectUser']['Name']) settings('connectUsername', value=user['ConnectUser']['Name'])
self._set_user(server['UserId'], server['AccessToken']) self._set_user(server['UserId'], server['AccessToken'])
##### ADDITIONAL PROMPTS ##### return True
direct_paths = dialog.yesno(heading=lang(30511), except RuntimeError as error:
line1=lang(33035), log.exception(error)
nolabel=lang(33036), xbmc.executebuiltin('Addon.OpenSettings(%s)' % self.addon_id)
yeslabel=lang(33037)) return False
if direct_paths:
log.info("User opted to use direct paths.")
settings('useDirectPaths', value="1")
# ask for credentials
credentials = dialog.yesno(heading=lang(30517), line1=lang(33038))
if credentials:
log.info("Presenting network credentials dialog.")
passwordsXML()
music_disabled = dialog.yesno(heading=lang(29999), line1=lang(33039))
if music_disabled:
log.info("User opted to disable Emby music library.")
settings('enableMusic', value="false")
else:
# Only prompt if the user didn't select direct paths for videos
if not direct_paths:
music_access = dialog.yesno(heading=lang(29999), line1=lang(33040))
if music_access:
log.info("User opted to direct stream music.")
settings('streamMusic', value="true")
@classmethod @classmethod
def _set_server(cls, server_address, server): def _set_server(cls, server_address, server):

View file

@ -68,6 +68,7 @@ class UserClient(threading.Thread):
if host and port: if host and port:
settings('server', value="%s://%s:%s" % (http, host, port)) settings('server', value="%s://%s:%s" % (http, host, port))
log.info("server address migration completed")
###$ End migration $### ###$ End migration $###
return settings('server') or None return settings('server') or None
@ -123,6 +124,7 @@ class UserClient(threading.Thread):
###$ Begin migration $### ###$ Begin migration $###
if settings('userId') == "": if settings('userId') == "":
settings('userId', value=settings('userId%s' % settings('username'))) settings('userId', value=settings('userId%s' % settings('username')))
log.info("userid migration completed")
###$ End migration $### ###$ End migration $###
return settings('userId') or None return settings('userId') or None
@ -133,6 +135,7 @@ class UserClient(threading.Thread):
###$ Begin migration $### ###$ Begin migration $###
if settings('token') == "": if settings('token') == "":
settings('token', value=settings('accessToken')) settings('token', value=settings('accessToken'))
log.info("token migration completed")
###$ End migration $### ###$ End migration $###
return settings('token') or None return settings('token') or None