Version 0.2.2, Localstorage support using WrapperApi, User manage bugfix

This commit is contained in:
HelloZeroNet 2015-02-17 01:48:15 +01:00
parent 655607466c
commit 9f9433a61e
5 changed files with 49 additions and 7 deletions

View File

@ -3,7 +3,7 @@ import ConfigParser
class Config(object):
def __init__(self):
self.version = "0.2.1"
self.version = "0.2.2"
self.parser = self.createArguments()
argv = sys.argv[:] # Copy command line arguments
argv = self.parseConfig(argv) # Add arguments from config file

View File

@ -69,6 +69,10 @@ class Wrapper
@actionWrapperPrompt(message)
else if cmd == "wrapperSetViewport" # Set the viewport
@actionSetViewport(message)
else if cmd == "wrapperGetLocalStorage"
@actionGetLocalStorage(message)
else if cmd == "wrapperSetLocalStorage"
@actionSetLocalStorage(message)
else # Send to websocket
if message.id < 1000000
@ws.send(message) # Pass message to websocket
@ -126,6 +130,16 @@ class Wrapper
$('<meta name="viewport" id="viewport">').attr("content", @toHtmlSafe message.params).appendTo("head")
actionGetLocalStorage: (message) ->
data = localStorage.getItem "site.#{window.address}"
if data then data = JSON.parse(data)
@sendInner {"cmd": "response", "to": message.id, "result": data}
actionSetLocalStorage: (message) ->
back = localStorage.setItem "site.#{window.address}", JSON.stringify(message.params)
# EOF actions

View File

@ -807,6 +807,10 @@ jQuery.extend( jQuery.easing,
return this.actionWrapperPrompt(message);
} else if (cmd === "wrapperSetViewport") {
return this.actionSetViewport(message);
} else if (cmd === "wrapperGetLocalStorage") {
return this.actionGetLocalStorage(message);
} else if (cmd === "wrapperSetLocalStorage") {
return this.actionSetLocalStorage(message);
} else {
if (message.id < 1000000) {
return this.ws.send(message);
@ -891,6 +895,24 @@ jQuery.extend( jQuery.easing,
}
};
Wrapper.prototype.actionGetLocalStorage = function(message) {
var data;
data = localStorage.getItem("site." + window.address);
if (data) {
data = JSON.parse(data);
}
return this.sendInner({
"cmd": "response",
"to": message.id,
"result": data
});
};
Wrapper.prototype.actionSetLocalStorage = function(message) {
var back;
return back = localStorage.setItem("site." + window.address, JSON.stringify(message.params));
};
Wrapper.prototype.onOpenWebsocket = function(e) {
this.ws.cmd("channelJoin", {
"channel": "siteChanged"

View File

@ -25,9 +25,9 @@ class User:
self.log.debug("Saved")
# Get BIP32 address from site address
# Return: BIP32 auth address
def getAuthAddress(self, address):
# Get user site data
# Return: {"auth_address": "xxx", "auth_privatekey": "xxx"}
def getSiteData(self, address):
if not address in self.sites: # Genreate new BIP32 child key based on site address
s = time.time()
address_id = int(address.encode("hex"), 16) # Convert site address to int
@ -38,12 +38,17 @@ class User:
}
self.save()
self.log.debug("Added new site: %s in %.3fs" % (address, time.time()-s))
return self.sites[address]
return self.sites[address]["auth_address"]
# Get BIP32 address from site address
# Return: BIP32 auth address
def getAuthAddress(self, address):
return self.getSiteData(address)["auth_address"]
def getAuthPrivatekey(self, address):
return self.sites[address]["auth_privatekey"]
return self.getSiteData(address)["auth_privatekey"]
@ -51,3 +56,4 @@ class User:
def setData(self, data):
for key, val in data.items():
setattr(self, key, val)

View File

@ -60,6 +60,6 @@ def getCurrent():
def reload():
import imp
global users, User
users.clear() # Remove all items
User = imp.load_source("User", "src/User/User.py").User # Reload source
users.clear() # Remove all items
load()