Centralized logging

This commit is contained in:
angelblue05 2016-06-17 22:03:28 -05:00
parent 02e7c2946b
commit 5658801f72
10 changed files with 336 additions and 373 deletions

View file

@ -9,10 +9,10 @@ import xbmc
import xbmcgui
import xbmcaddon
import utils
import clientinfo
import downloadutils
import userclient
from utils import Logging, settings, language as lang, passwordsXML
#################################################################################################
@ -22,74 +22,67 @@ class InitialSetup():
def __init__(self):
self.addon = xbmcaddon.Addon()
self.__language__ = self.addon.getLocalizedString
global log
log = Logging(self.__class__.__name__).log
self.clientInfo = clientinfo.ClientInfo()
self.addonName = self.clientInfo.getAddonName()
self.addonId = self.clientInfo.getAddonId()
self.doUtils = downloadutils.DownloadUtils()
self.userClient = userclient.UserClient()
def logMsg(self, msg, lvl=1):
className = self.__class__.__name__
utils.logMsg("%s %s" % (self.addonName, className), msg, lvl)
def setup(self):
# Check server, user, direct paths, music, direct stream if not direct path.
string = self.__language__
addonId = self.addonId
##### SERVER INFO #####
self.logMsg("Initial setup called.", 2)
log("Initial setup called.", 2)
server = self.userClient.getServer()
if server:
self.logMsg("Server is already set.", 2)
log("Server is already set.", 2)
return
self.logMsg("Looking for server...", 2)
log("Looking for server...", 2)
server = self.getServerDetails()
self.logMsg("Found: %s" % server, 2)
log("Found: %s" % server, 2)
try:
prefix, ip, port = server.replace("/", "").split(":")
except: # Failed to retrieve server information
self.logMsg("getServerDetails failed.", 1)
log("getServerDetails failed.", 1)
xbmc.executebuiltin('Addon.OpenSettings(%s)' % addonId)
return
else:
server_confirm = xbmcgui.Dialog().yesno(
heading="Emby for Kodi",
line1="Proceed with the following server?",
line2="%s %s" % (string(30169), server))
line2="%s %s" % (lang(30169), server))
if server_confirm:
# Correct server found
self.logMsg("Server is selected. Saving the information.", 1)
utils.settings('ipaddress', value=ip)
utils.settings('port', value=port)
log("Server is selected. Saving the information.", 1)
settings('ipaddress', value=ip)
settings('port', value=port)
if prefix == "https":
utils.settings('https', value="true")
settings('https', value="true")
else:
# User selected no or cancelled the dialog
self.logMsg("No server selected.", 1)
log("No server selected.", 1)
xbmc.executebuiltin('Addon.OpenSettings(%s)' % addonId)
return
##### USER INFO #####
self.logMsg("Getting user list.", 1)
log("Getting user list.", 1)
url = "%s/emby/Users/Public?format=json" % server
result = self.doUtils.downloadUrl(url, authenticate=False)
if result == "":
self.logMsg("Unable to connect to %s" % server, 1)
log("Unable to connect to %s" % server, 1)
return
self.logMsg("Response: %s" % result, 2)
log("Response: %s" % result, 2)
# Process the list of users
usernames = []
users_hasPassword = []
@ -103,14 +96,14 @@ class InitialSetup():
name = "%s (secure)" % name
users_hasPassword.append(name)
self.logMsg("Presenting user list: %s" % users_hasPassword, 1)
user_select = xbmcgui.Dialog().select(string(30200), users_hasPassword)
log("Presenting user list: %s" % users_hasPassword, 1)
user_select = xbmcgui.Dialog().select(lang(30200), users_hasPassword)
if user_select > -1:
selected_user = usernames[user_select]
self.logMsg("Selected user: %s" % selected_user, 1)
utils.settings('username', value=selected_user)
log("Selected user: %s" % selected_user, 1)
settings('username', value=selected_user)
else:
self.logMsg("No user selected.", 1)
log("No user selected.", 1)
xbmc.executebuiltin('Addon.OpenSettings(%s)' % addonId)
##### ADDITIONAL PROMPTS #####
@ -126,8 +119,8 @@ class InitialSetup():
nolabel="Addon (Default)",
yeslabel="Native (Direct Paths)")
if directPaths:
self.logMsg("User opted to use direct paths.", 1)
utils.settings('useDirectPaths', value="1")
log("User opted to use direct paths.", 1)
settings('useDirectPaths', value="1")
# ask for credentials
credentials = dialog.yesno(
@ -138,15 +131,15 @@ class InitialSetup():
"during the initial scan of your content if Kodi can't "
"locate your content."))
if credentials:
self.logMsg("Presenting network credentials dialog.", 1)
utils.passwordsXML()
log("Presenting network credentials dialog.", 1)
passwordsXML()
musicDisabled = dialog.yesno(
heading="Music Library",
line1="Disable Emby music library?")
if musicDisabled:
self.logMsg("User opted to disable Emby music library.", 1)
utils.settings('enableMusic', value="false")
log("User opted to disable Emby music library.", 1)
settings('enableMusic', value="false")
else:
# Only prompt if the user didn't select direct paths for videos
if not directPaths:
@ -157,12 +150,12 @@ class InitialSetup():
"this option only if you plan on listening "
"to music outside of your network."))
if musicAccess:
self.logMsg("User opted to direct stream music.", 1)
utils.settings('streamMusic', value="true")
log("User opted to direct stream music.", 1)
settings('streamMusic', value="true")
def getServerDetails(self):
self.logMsg("Getting Server Details from Network", 1)
log("Getting Server Details from Network", 1)
MULTI_GROUP = ("<broadcast>", 7359)
MESSAGE = "who is EmbyServer?"
@ -176,15 +169,15 @@ class InitialSetup():
sock.setsockopt(socket.SOL_IP, socket.IP_MULTICAST_LOOP, 1)
sock.setsockopt(socket.IPPROTO_IP, socket.SO_REUSEADDR, 1)
self.logMsg("MultiGroup : %s" % str(MULTI_GROUP), 2)
self.logMsg("Sending UDP Data: %s" % MESSAGE, 2)
log("MultiGroup : %s" % str(MULTI_GROUP), 2)
log("Sending UDP Data: %s" % MESSAGE, 2)
sock.sendto(MESSAGE, MULTI_GROUP)
try:
data, addr = sock.recvfrom(1024) # buffer size is 1024 bytes
self.logMsg("Received Response: %s" % data)
log("Received Response: %s" % data)
except:
self.logMsg("No UDP Response")
log("No UDP Response")
return None
else:
# Get the address