mirror of
https://github.com/robweber/xbmcbackup.git
synced 2026-04-02 08:38:00 +02:00
47 lines
1.4 KiB
Python
47 lines
1.4 KiB
Python
import xbmc
|
|
import xbmcvfs
|
|
import json
|
|
import utils as utils
|
|
|
|
class BackupAddonManager:
|
|
addons = None
|
|
restored = None
|
|
|
|
def __init__(self):
|
|
#get a list of addons
|
|
json_response = json.loads(xbmc.executeJSONRPC('{"jsonrpc":"2.0", "id":1, "method":"Addons.GetAddons","params":{"properties":["dependencies","enabled","name"]}}'))
|
|
|
|
if(json_response['result']['addons'] != None):
|
|
self.addons = json_response['result']['addons']
|
|
else:
|
|
self.addons = []
|
|
|
|
|
|
def getEnabled(self):
|
|
#get a list of enabled addons
|
|
result = [x for x in self.addons if x['enabled'] == True]
|
|
|
|
return result
|
|
|
|
def setRestored(self,restored):
|
|
#create a dict from this list
|
|
self.restored = {x['addonid']:x for x in restored}
|
|
|
|
def restore(self):
|
|
updateOrder = []
|
|
|
|
#create a list of addons to enable, in order
|
|
for name,addon in self.restored.items():
|
|
|
|
#TODO check for dependencies
|
|
updateOrder.append(name)
|
|
|
|
for addon in updateOrder:
|
|
xbmc.executeJSONRPC(('{"jsonrpc":"2.0", "id":1, "method":"Addons.SetAddonEnabled","params":{"addonid":"%s","enabled":true}}') % (addon))
|
|
#utils.log(('{"jsonrpc":"2.0", "id":1, "method":"Addons.SetAddonEnabled","params":{"addonid":"%s","enabled":true}}') % (addon))
|
|
|
|
|
|
|
|
|
|
|