diff options
Diffstat (limited to 'src/bookmark.py')
-rw-r--r-- | src/bookmark.py | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/bookmark.py b/src/bookmark.py new file mode 100644 index 00000000..fe926350 --- /dev/null +++ b/src/bookmark.py @@ -0,0 +1,39 @@ +from sleekxmpp.plugins.xep_0048 import * + +class Bookmark(object): + possible_methods = ('pep', 'privatexml', 'local') + def __init__(self, jid, name=None, autojoin=False, nick=None, password=None, method=None): + self.jid = jid + self.name = name or jid + self.autojoin = autojoin + self.nick = nick + self.password = password + self._method = method + + @property + def method(self): + return self._method + + @method.setter + def method(self, value): + if value not in self.possible_methods: + return + self._method = value + + def stanza(self): + """ + Generate a <conference/> stanza from the instance + """ + el = Conference() + el['name'] = self.name + el['jid'] = self.jid + el['autojoin'] = 'true' if self.autojoin else 'false' + if self.nick: + n = Nick().xml + n.text = self.nick + el.append(n) + if self.password: + p = Password().xml + p.text = self.password + el.append(p) + return el |