mirror of
https://github.com/jellyfin/jellyfin-kodi.git
synced 2025-06-17 13:46:14 +00:00
Clean up
Also fix settings not saving if reset was initiated.
This commit is contained in:
parent
85f8de7e68
commit
2bfe377378
7 changed files with 414 additions and 540 deletions
|
@ -1,45 +1,41 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
#################################################################################################
|
||||
# connection manager class
|
||||
#################################################################################################
|
||||
|
||||
import json
|
||||
import socket
|
||||
|
||||
import xbmc
|
||||
import xbmcgui
|
||||
import xbmcaddon
|
||||
|
||||
import json
|
||||
import urllib
|
||||
import sys
|
||||
import socket
|
||||
import threading
|
||||
from datetime import datetime
|
||||
|
||||
import Utils as utils
|
||||
from ClientInformation import ClientInformation
|
||||
from DownloadUtils import DownloadUtils
|
||||
from UserClient import UserClient
|
||||
from ClientInformation import ClientInformation
|
||||
|
||||
|
||||
class ConnectionManager():
|
||||
|
||||
clientInfo = ClientInformation()
|
||||
uc = UserClient()
|
||||
user = UserClient()
|
||||
doUtils = DownloadUtils()
|
||||
|
||||
addonName = clientInfo.getAddonName()
|
||||
addonId = clientInfo.getAddonId()
|
||||
addon = xbmcaddon.Addon(id=addonId)
|
||||
addon = xbmcaddon.Addon()
|
||||
WINDOW = xbmcgui.Window(10000)
|
||||
|
||||
logLevel = 0
|
||||
|
||||
def __init__(self):
|
||||
|
||||
self.className = self.__class__.__name__
|
||||
self.__language__ = self.addon.getLocalizedString
|
||||
|
||||
def logMsg(self, msg, lvl=1):
|
||||
|
||||
utils.logMsg("%s %s" % (self.addonName, self.className), msg, int(lvl))
|
||||
className = self.__class__.__name__
|
||||
utils.logMsg("%s %s" % (self.addonName, className), msg, int(lvl))
|
||||
|
||||
def checkServer(self):
|
||||
|
||||
|
@ -47,27 +43,27 @@ class ConnectionManager():
|
|||
self.logMsg("Connection Manager Called", 2)
|
||||
|
||||
addon = self.addon
|
||||
server = self.uc.getServer()
|
||||
server = self.user.getServer()
|
||||
|
||||
if (server != ""):
|
||||
if server != "":
|
||||
self.logMsg("Server already set", 2)
|
||||
return
|
||||
|
||||
serverInfo = self.getServerDetails()
|
||||
|
||||
if (serverInfo == None):
|
||||
try:
|
||||
prefix,ip,port = serverInfo.split(":")
|
||||
setServer = xbmcgui.Dialog().yesno(self.__language__(30167), "Proceed with the following server?", self.__language__(30169) + serverInfo)
|
||||
except: # serverInfo is None
|
||||
self.logMsg("getServerDetails failed", 1)
|
||||
xbmc.executebuiltin('Addon.OpenSettings(%s)' % self.addonId)
|
||||
return
|
||||
|
||||
prefix,ip,port = serverInfo.split(":")
|
||||
setServer = xbmcgui.Dialog().yesno(self.__language__(30167), "Proceed with the following server?", self.__language__(30169) + serverInfo)
|
||||
|
||||
if (setServer == 1):
|
||||
if setServer == 1:
|
||||
self.logMsg("Server selected. Saving information.", 1)
|
||||
addon.setSetting("ipaddress", ip.replace("/", ""))
|
||||
addon.setSetting("port", port)
|
||||
# If https is enabled
|
||||
# If https, enable the setting
|
||||
if (prefix == 'https'):
|
||||
addon.setSetting('https', "true")
|
||||
else:
|
||||
|
@ -77,51 +73,37 @@ class ConnectionManager():
|
|||
|
||||
# Get List of public users
|
||||
self.logMsg("Getting user list", 1)
|
||||
server = ip.replace("/", "") + ":" + port
|
||||
server = "%s:%s" % (ip.replace("/", ""), port)
|
||||
url = "%s/mediabrowser/Users/Public?format=json" % serverInfo
|
||||
|
||||
try:
|
||||
result = self.doUtils.downloadUrl(url, authenticate=False)
|
||||
except Exception, msg:
|
||||
error = "Unable to connect to %s: %s" % (server, msg)
|
||||
self.logMsg(error, 1)
|
||||
return ""
|
||||
|
||||
if (result == ""):
|
||||
result = self.doUtils.downloadUrl(url, authenticate=False)
|
||||
if result == "":
|
||||
self.logMsg("Unable to connect to %s." % server, 1)
|
||||
return
|
||||
|
||||
self.logMsg("jsonData: %s" % result, 2)
|
||||
|
||||
self.logMsg("Result: %s" % result, 2)
|
||||
|
||||
# Process the list returned
|
||||
names = []
|
||||
userList = []
|
||||
for user in result:
|
||||
name = user[u'Name']
|
||||
name = user['Name']
|
||||
userList.append(name)
|
||||
|
||||
if(user[u'HasPassword'] == True):
|
||||
name = name + " (Secure)"
|
||||
if user['HasPassword']:
|
||||
name = "%s (Secure)" % name
|
||||
names.append(name)
|
||||
|
||||
self.logMsg("User List: %s" % names, 1)
|
||||
self.logMsg("User List: %s" % userList, 2)
|
||||
return_value = xbmcgui.Dialog().select(self.__language__(30200), names)
|
||||
|
||||
if (return_value > -1):
|
||||
selected_user = userList[return_value]
|
||||
|
||||
self.logMsg("User list: %s" % names, 1)
|
||||
resp = xbmcgui.Dialog().select(self.__language__(30200), names)
|
||||
if resp > -1:
|
||||
selected_user = userList[resp]
|
||||
self.logMsg("Selected User: %s" % selected_user, 1)
|
||||
self.addon.setSetting("username", selected_user)
|
||||
else:
|
||||
self.logMsg("No user selected.", 1)
|
||||
xbmc.executebuiltin('Addon.OpenSettings(%s)' % self.addonId)
|
||||
return
|
||||
|
||||
# Option to play from http
|
||||
#setPlayback = xbmcgui.Dialog().yesno("Playback option", "Play your files using HTTP?")
|
||||
#if setPlayback == 1:
|
||||
#self.logMsg("Playback will be set using HTTP.", 1)
|
||||
#addon.setSetting("playFromStream", "true")
|
||||
#else:
|
||||
#self.logMsg("Playback will be set using SMB.", 1)
|
||||
|
||||
def getServerDetails(self):
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue