diff options
| -rw-r--r-- | server.py | 14 | ||||
| -rw-r--r-- | user.py | 22 |
2 files changed, 22 insertions, 14 deletions
@@ -1,17 +1,20 @@ from sleekxmpp.componentxmpp import ComponentXMPP from argparse import ArgumentParser +from user import UserHandler class ObjectComponent(ComponentXMPP): - def __init__(self, jid, secret, server, port): + def __init__(self, jid, secret, server, port, root): ComponentXMPP.__init__(self, jid, secret, server, port) self.add_event_handler("session_start", self.start) self.add_event_handler("presence_probe", self.presenceProbe) self.add_event_handler("message", self.message) self.add_event_handler("changed_subscription", self.presenceSubscription) + self.userHandler = UserHandler(root) def start(self, event): - pass + for user in self.userHandler.getUserList() : + self.sendPresence(pto = user) def message(self, msg): msg.reply("Thanks for sending\n%(body)s" % msg).send() @@ -19,10 +22,11 @@ class ObjectComponent(ComponentXMPP): def presenceSubscription(self, subscription) : if subscription["type"] == "subscribe" : userJID = subscription["from"].full + self.userHandler.register(userJID) self.sendPresenceSubscription(pto=userJID, ptype="subscribed") self.sendPresence(pto = userJID) self.sendPresenceSubscription(pto=userJID, ptype="subscribe") - + def presenceProbe(self, event): self.sendPresence(pto = event["from"].full) @@ -36,11 +40,13 @@ if __name__ == '__main__' : help='password') commandline.add_argument('-n', '--name', help='Name the component will have') + commandline.add_argument('-r', '--root', + help='Root directory of the user files') commandline.add_argument('host', help='Host to connect to') args = commandline.parse_args() - component = ObjectComponent(args.name, args.secret,args.host,args.port) + component = ObjectComponent(args.name, args.secret, args.host, args.port, args.root) if component.connect() : print 'Component', args.name, 'connected to', args.host + ':' + str(args.port) @@ -1,14 +1,16 @@ import os import os.path -class User : - def __init__(self,jid): - self.jid = jid +class UserHandler : + def __init__(self,root): + self.root = root - @staticmethod - def createDirectory(jid): - os.mkdir(jid) - - @staticmethod - def subscribed(name): - return os.path.exists(name)
\ No newline at end of file + def register(self,name): + if not os.path.exists(name) : + os.mkdir(self.root+'/'+name) + + def registered(self,name): + return os.path.exists(self.root+'/'+name) + + def getUserList(self): + return os.listdir(self.root)
\ No newline at end of file |
