Skip to content

Commit

Permalink
[v0.1.2] Better exception handling + Added notifications
Browse files Browse the repository at this point in the history
  • Loading branch information
bluezed committed Mar 2, 2015
1 parent ba0e5d6 commit 0ccac4f
Show file tree
Hide file tree
Showing 4 changed files with 55 additions and 34 deletions.
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ develop-eggs/
dist/
downloads/
eggs/
lib/
lib64/
parts/
sdist/
Expand Down Expand Up @@ -53,3 +52,6 @@ docs/_build/
# PyBuilder
target/
Thumbs.db

# PyCharm
.idea/
2 changes: 1 addition & 1 deletion addon.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="script.ftvguide_sync" name="FTV Guide Sync" version="0.1.1" provider-name="bluezed">
<addon id="script.ftvguide_sync" name="FTV Guide Sync" version="0.1.2" provider-name="bluezed">
<requires>
<import addon="xbmc.python" version="2.19.0"/>
<import addon="script.module.requests" version="2.4.3"/>
Expand Down
6 changes: 6 additions & 0 deletions changelog.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
--------------------------
FTV Guide Sync - 0.1.2
--------------------------
+ Better exception handling
+ Added notifications

--------------------------
FTV Guide Sync - 0.1.1
--------------------------
Expand Down
77 changes: 45 additions & 32 deletions service.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,22 @@
#
import xbmc
import xbmcaddon
import xbmcgui
import os
import datetime

from resources.lib import easywebdav

ADDON = xbmcaddon.Addon(id='script.ftvguide_sync')




class SyncException(Exception):
def __init__(self, e):
msg = str(e)
xbmcgui.Dialog().ok('FTV Guide Sync', 'Error trying to connect to the WebDav-Server!\n\n{0}'.format(msg))
super(SyncException, self).__init__(msg)


class Sync():

webdav = None
Expand All @@ -48,34 +56,39 @@ class Sync():

def __init__(self):
xbmc.log('[script.ftvguide_sync] Started...', level=xbmc.LOGNOTICE)
xbmcgui.Dialog().notification('FTV Guide Sync', 'Started...')
try:
self.webdav = easywebdav.connect(self.url,
username=self.user,
password=self.password,
protocol=self.protocol)

if not self.webdav.exists(self.remoteFolder):
self.webdav.mkdir(self.remoteFolder)
xbmc.log('[script.ftvguide_sync] Folder created', level=xbmc.LOGNOTICE)
else:
xbmc.log('[script.ftvguide_sync] Folder exists', level=xbmc.LOGNOTICE)

self.webdav = easywebdav.connect(self.url,
username=self.user,
password=self.password,
protocol=self.protocol)

if not self.webdav.exists(self.remoteFolder):
self.webdav.mkdir(self.remoteFolder)
xbmc.log('[script.ftvguide_sync] Folder created', level=xbmc.LOGNOTICE)
else:
xbmc.log('[script.ftvguide_sync] Folder exists', level=xbmc.LOGNOTICE)

self.doSync()
self.doSync()
except Exception as e:
raise SyncException(e)

def doSync(self):
xbmc.log('[script.ftvguide_sync] Sync called', level=xbmc.LOGNOTICE)

ret = self.checkFile(self.settings)
if ret == self.LOCAL_NEWER:
self.uploadFile(self.settings)
elif ret == self.REMOTE_NEWER:
self.downloadFile(self.settings)

ret = self.checkFile(self.db)
if ret == self.LOCAL_NEWER:
self.uploadFile(self.db)
elif ret == self.REMOTE_NEWER:
self.downloadFile(self.db)
try:
ret = self.checkFile(self.settings)
if ret == self.LOCAL_NEWER:
self.uploadFile(self.settings)
elif ret == self.REMOTE_NEWER:
self.downloadFile(self.settings)

ret = self.checkFile(self.db)
if ret == self.LOCAL_NEWER:
self.uploadFile(self.db)
elif ret == self.REMOTE_NEWER:
self.downloadFile(self.db)
except Exception as e:
raise SyncException(e)

def checkFile(self, fName):
ret = self.NO_CHANGE
Expand Down Expand Up @@ -106,8 +119,8 @@ def getRemoteMod(self, fName):
# 'Sat, 28 Feb 2015 11:29:30 GMT'
mTime = datetime.datetime.strptime(fItem.mtime, '%a, %d %b %Y %H:%M:%S %Z')
break
except:
xbmc.log('[script.ftvguide_sync] Error getting remote file listing', level=xbmc.LOGERROR)
except Exception as e:
raise SyncException(e)
return mTime

def uploadFile(self, fName):
Expand All @@ -117,8 +130,8 @@ def uploadFile(self, fName):
self.webdav.upload(localPath, remotePath)
self.updateModTime(fName)
xbmc.log('[script.ftvguide_sync] File "'+fName+'" uploaded', level=xbmc.LOGNOTICE)
except:
xbmc.log('[script.ftvguide_sync] Error uploading file "'+fName+'"', level=xbmc.LOGERROR)
except Exception as e:
raise SyncException(e)

def downloadFile(self, fName):
localPath = os.path.join(self.localFolder, fName)
Expand All @@ -127,8 +140,8 @@ def downloadFile(self, fName):
self.webdav.download(remotePath, localPath)
self.updateModTime(fName)
xbmc.log('[script.ftvguide_sync] File "'+fName+'" downloaded', level=xbmc.LOGNOTICE)
except:
xbmc.log('[script.ftvguide_sync] Error downloading file "'+fName+'"', level=xbmc.LOGERROR)
except Exception as e:
raise SyncException(e)

def updateModTime(self, fName):
localPath = os.path.join(self.localFolder, fName)
Expand Down

0 comments on commit 0ccac4f

Please sign in to comment.