diff options
| -rw-r--r-- | object.py | 62 | ||||
| -rw-r--r-- | server.py | 14 |
2 files changed, 45 insertions, 31 deletions
@@ -27,7 +27,7 @@ class Object: ## # Save the object on the disk. def save(self): - self.__createDir() + self.__create_dir() header = "author " + self.data['author'] + "\n" header += "parent " + self.data['parent'] + "\n" @@ -57,11 +57,13 @@ class Object: self.data = init self.data['created'] = str(datetime.datetime.now()) self.name = hashlib.sha1(str(self.data)).hexdigest() - self.path = self.__getPath() + self.path = self.__get_path() self.saved = False elif isinstance(init, str): - if (os.path.exists(init)): + self.name = init + self.path = self.__get_path() + if (os.path.exists(self.path)): file = open(self.path + '/object', 'r') contentStream = StringIO.StringIO(zlib.decompress(file.read())) data = {} @@ -76,9 +78,11 @@ class Object: self.data = data file.close() + else: + logging.error("Object {} root doesn't exist".fomat(init)) def append_to(self, father): - father.appendChild(self) + father.append_child(self) def append_child(self, child): if not self.saved: @@ -134,30 +138,28 @@ class ObjectHandler: def __init__(self, user): self.user = user - self.root_directory = config.root + user + '/' self.root_object = hashlib.sha1(user).hexdigest() - if not os.path.exists(self.root_directory): - logging.error("User %s root doesn't exist" % self.user) + if not os.path.exists(self.user): + logging.error("User {} root doesn't exist".fomat(self.user)) def get_object_directory(self, hash): - directory = self.root_directory + hash[:2] + '/' + hash[2:] + directory = self.user + '/' + hash[:2] + '/' + hash[2:] if (os.path.exists(directory)): return directory - else : + else: return None def get_object(self, hash): - directory = self.get_object_directory(hash) - if directory is None : - logging.error("Object %s doesn't exist" % hash) - else : - return Object(directory) + os.chdir(self.user) + temp = Object(hash) + os.chdir('..') + return temp #return a list of hash,permission pairs def get_child_list(self, hash, user): directory = self.get_object_directory(hash) - if (directory) : + if directory: result = [] file = open(directory + "/childs", 'r') for line in file : @@ -175,19 +177,31 @@ class ObjectHandler: return self.root_object if __name__ == '__main__': + config.root=os.path.abspath('object_tests') + if not(os.path.exists(config.root)): + os.mkdir(config.root) + os.chdir(config.root) + if not(os.path.exists('guillaume')): + os.mkdir('guillaume') + + guillaume_stuff = ObjectHandler('guillaume') + os.chdir('guillaume') x = Object({'parent' : 'toto', 'author' : 'Zaran'}) - x.setPermission("test", READ) - x.setPermission("toto", READ | MODIFY) - x.setPermission("toto", READ | MODIFY | APPEND) - x.setPermission("toto2", READ | MODIFY | APPEND) - print x.getPermission("toto") - print Object.getPermissionByHash(x.name, "toto") + x.set_permission("test", READ) + x.set_permission("toto", READ | MODIFY) + x.set_permission("toto", READ | MODIFY | APPEND) + x.set_permission("toto2", READ | MODIFY | APPEND) + print x.get_permission("toto") + print Object.get_permission_by_hash(x.name, "toto") child = Object({'parent' : x.name, 'author' : 'Zaran'}) child.save() - x.appendChild(child) - - y = Object(x.name) + x.append_child(child) + os.chdir(config.root) + + y = guillaume_stuff.get_object(x.name) + pomme = guillaume_stuff.get_child_list(x.name,None) + print pomme print y.data['author'] print y.data['parent'] print y.data['content'] @@ -20,12 +20,12 @@ class ObjectComponent(ComponentXMPP): self.userHandler = UserHandler(root) def start(self, event): - for user in self.userHandler.getUserList(): - self.sendPresence(pto = user) + for user in self.userHandler.get_user_list(): + self.send_presence(pto = user) def disconnect(self, reconnect = False): - for user in self.userHandler.getUserList(): - self.sendPresence(pto = user, ptype = "unavailable") + for user in self.userHandler.get_user_list(): + self.send_presence(pto = user, ptype = "unavailable") XMLStream.disconnect(self, reconnect) logging.info('Component {} disconnected'.format(self.boundjid.bare)) @@ -37,14 +37,14 @@ class ObjectComponent(ComponentXMPP): userJID = subscription["from"].full self.userHandler.register(userJID) subscription.reply().send() - self.sendPresence(pto = userJID) - self.sendPresenceSubscription(pto = userJID, ptype = "subscribe") + self.send_presence(pto = userJID) + self.send_presence_subscription(pto = userJID, ptype = "subscribe") if subscription["type"] == "unsubscribe": userJID = subscription["from"].full self.userHandler.unregister(userJID) def presence_probe(self, event): - self.sendPresence(pto = event["from"].full) + self.send_presence(pto = event["from"].full) if __name__ == '__main__': |
