Merge pull request #27 from robweber/master

update testing
This commit is contained in:
robweber
2013-01-18 12:59:57 -08:00
8 changed files with 79 additions and 10 deletions

View File

@ -17,6 +17,8 @@
<string id="30025">Remote Path Type</string>
<string id="30026">Backups to keep (0 for all)</string>
<string id="30027">Dropbox</string>
<string id="30028">Dropbox Key</string>
<string id="30029">Dropbox Secret</string>
<string id="30030">User Addons</string>
<string id="30031">Addon Data</string>
@ -37,6 +39,8 @@
<string id="30054">Removing backup</string>
<string id="30056">Check log for Dropbox authorize URL</string>
<string id="30057">Click OK when authorized</string>
<string id="30058">Dropbox Developer Code Needed</string>
<string id="30059">Visit https://www.dropbox.com/developers</string>
<string id="30060">Enable Scheduler</string>
<string id="30061">Schedule</string>
@ -54,4 +58,5 @@
<string id="30073">Every Week</string>
<string id="30074">First Day of Month</string>
<string id="30075">Custom Schedule</string>
<string id="30076">Shutdown After Backup</string>
</strings>

View File

@ -5,8 +5,8 @@ import xbmcgui
import sys
from dropbox import client, rest, session
APP_KEY = 'f5wlmek6aoriqax'
APP_SECRET = 'b1461sje1kxgzet'
APP_KEY = utils.getSetting('dropbox_key')
APP_SECRET = utils.getSetting('dropbox_secret')
class Vfs:
root_path = None
@ -64,6 +64,10 @@ class DropboxFileSystem(Vfs):
client = None
def __init__(self):
if(APP_KEY == '' or APP_SECRET == ''):
xbmcgui.Dialog().ok(utils.getString(30010),utils.getString(30058),utils.getString(30059))
return
user_token_key,user_token_secret = self.getToken()
sess = session.DropboxSession(APP_KEY,APP_SECRET,"app_folder")
@ -84,7 +88,13 @@ class DropboxFileSystem(Vfs):
sess.set_token(user_token_key,user_token_secret)
self.client = client.DropboxClient(sess)
utils.log(str(self.client.account_info()))
try:
utils.log(str(self.client.account_info()))
except:
#this didn't work, delete the token file
self.deleteToken()
def listdir(self,directory):
if(self.client != None and self.exists(directory)):
@ -150,6 +160,7 @@ class DropboxFileSystem(Vfs):
out.close()
else:
return False
def setToken(self,key,secret):
#write the token files
token_file = open(xbmc.translatePath(utils.data_dir() + "tokens.txt"),'w')
@ -166,6 +177,10 @@ class DropboxFileSystem(Vfs):
return [key,secret]
else:
return ["",""]
def deleteToken(self):
if(xbmcvfs.exists(xbmc.translatePath(utils.data_dir() + "tokens.txt"))):
xbmcvfs.delete(xbmc.translatePath(utils.data_dir() + "tokens.txt"))

View File

@ -4,6 +4,8 @@
<setting id="remote_selection" type="enum" lvalues="30018|30019|30027" default="0" label="30025"/>
<setting id="remote_path_2" type="text" label="30024" default="" visible="eq(-1,1)" />
<setting id="remote_path" type="folder" label="30020" visible="eq(-2,0)" />
<setting id="dropbox_key" type="text" label="30028" visible="eq(-3,2)" default="" />
<setting id="dropbox_secret" type="text" label="30029" visible="eq(-4,2)" default="" />
<setting id="backup_rotation" type="number" label="30026" default="0" />
<setting id="run_silent" type="bool" label="30022" default="false" />
</category>
@ -22,5 +24,6 @@
<setting id="schedule_time" type="labelenum" label="30062" values="00:00|01:00|02:00|03:00|04:00|05:00|06:00|07:00|08:00|09:00|10:00|11:00|12:00|13:00|14:00|15:00|16:00|17:00|18:00|19:00|20:00|21:00|22:00|23:00" default="00:00" visible="!eq(-1,3)" enable="eq(-2,true)"/>
<setting id="day_of_week" type="enum" label="30063" lvalues="30065|30066|30067|30068|30069|30070|30071" default="0" visible="eq(-2,1)" enable="eq(-3,true)"/>
<setting id="cron_schedule" type="text" label="30064" default="0 0 * * *" visible="eq(-3,3)" enable="eq(-4,true)"/>
<setting id="cron_shutdown" type="bool" label="30076" default="false" enable="eq(-5,true)" />
</category>
</settings>