Merge remote-tracking branch 'origin/develop' into develop

This commit is contained in:
angelblue05 2016-11-02 21:24:47 -05:00
commit 7f2eb13f9a
7 changed files with 32 additions and 5 deletions

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="plugin.video.emby"
name="Emby"
version="2.3.4"
version="2.3.5"
provider-name="Emby.media">
<requires>
<import addon="xbmc.python" version="2.19.0"/>

View file

@ -1,7 +1,6 @@
version 2.3.4
- add throttling for error event logging
>>>>>>> refs/remotes/origin/master
version 2.3.3
- minor fix to exception handling

View file

@ -18,6 +18,24 @@ log = logging.getLogger("EMBY."+__name__)
logEventHistory = {}
# wrap a function to catch, log and then re throw an exception
def log_error(errors=(Exception, )):
def decorator(func):
def wrapper(*args, **kwargs):
try:
return func(*args, **kwargs)
except errors as error:
ga = GoogleAnalytics()
errStrings = ga.formatException()
ga.sendEventData("Exception", errStrings[0], errStrings[1], True)
log.exception(error)
log.error("log_error: %s \n args: %s \n kwargs: %s",
func.__name__, args, kwargs)
raise
return wrapper
return decorator
# main GA class
class GoogleAnalytics():
testing = False

View file

@ -12,6 +12,7 @@ import downloadutils
import embydb_functions as embydb
import playbackutils as pbutils
from utils import window, settings, kodiSQL
from ga_client import log_error
#################################################################################################
@ -56,6 +57,7 @@ class KodiMonitor(xbmc.Monitor):
log.info("New context setting: %s", current_context)
window('emby_context', value=current_context)
@log_error()
def onNotification(self, sender, method, data):
if method not in ('Playlist.OnAdd', 'Player.OnStop', 'Player.OnClear'):

View file

@ -22,7 +22,7 @@ ga = GoogleAnalytics()
##################################################################################################
def catch_except(errors=(Exception, )):
def catch_except(errors=(Exception, ), default_value=False):
# Will wrap method with try/except and print parameters for easier debugging
def decorator(func):
def wrapper(*args, **kwargs):
@ -34,7 +34,7 @@ def catch_except(errors=(Exception, )):
log.exception(error)
log.error("function: %s \n args: %s \n kwargs: %s",
func.__name__, args, kwargs)
raise
return default_value
return wrapper
return decorator

View file

@ -14,7 +14,7 @@ import downloadutils
import kodidb_functions as kodidb
import websocket_client as wsc
from utils import window, settings, language as lang
from ga_client import GoogleAnalytics
from ga_client import GoogleAnalytics, log_error
#################################################################################################
@ -44,6 +44,7 @@ class Player(xbmc.Player):
log.debug("Starting playback monitor.")
xbmc.Player.__init__(self)
@log_error()
def onPlayBackStarted(self):
# Will be called when xbmc starts playing a file
self.stopAll()
@ -356,6 +357,7 @@ class Player(xbmc.Player):
log.debug("Report: %s" % postdata)
self.ws.send_progress_update(postdata)
@log_error()
def onPlayBackPaused(self):
currentFile = self.currentFile
@ -366,6 +368,7 @@ class Player(xbmc.Player):
self.reportPlayback()
@log_error()
def onPlayBackResumed(self):
currentFile = self.currentFile
@ -376,6 +379,7 @@ class Player(xbmc.Player):
self.reportPlayback()
@log_error()
def onPlayBackSeek(self, time, seekOffset):
# Make position when seeking a bit more accurate
currentFile = self.currentFile
@ -387,6 +391,7 @@ class Player(xbmc.Player):
self.reportPlayback()
@log_error()
def onPlayBackStopped(self):
# Will be called when user stops xbmc playing a file
log.debug("ONPLAYBACK_STOPPED")
@ -396,6 +401,7 @@ class Player(xbmc.Player):
log.info("Clear playlist properties.")
self.stopAll()
@log_error()
def onPlayBackEnded(self):
# Will be called when xbmc stops playing a file
log.debug("ONPLAYBACK_ENDED")

View file

@ -15,6 +15,7 @@ import librarysync
import playlist
import userclient
from utils import window, settings, dialog, language as lang, JSONRPC
from ga_client import log_error
##################################################################################################
@ -60,6 +61,7 @@ class WebSocketClient(threading.Thread):
except Exception as error:
log.exception(error)
@log_error()
def on_message(self, ws, message):
result = json.loads(message)