XEP-0045: Remove support for old-style {get,set,del}TitleCase methods.

This commit is contained in:
Emmanuel Gil Peyrot 2016-09-21 01:28:24 +09:00
parent 3a9b45e4f2
commit 813b45aded
4 changed files with 56 additions and 57 deletions

View file

@ -63,13 +63,13 @@ has been established:
def start(self, event):
self.get_roster()
self.send_presence()
self.plugin['xep_0045'].joinMUC(self.room,
self.nick,
wait=True)
self.plugin['xep_0045'].join_muc(self.room,
self.nick,
wait=True)
Note that as in :ref:`echobot`, we need to include send an initial presence and request
the roster. Next, we want to join the group chat, so we call the
``joinMUC`` method of the MUC plugin.
``join_muc`` method of the MUC plugin.
.. note::

View file

@ -67,11 +67,11 @@ class MUCBot(slixmpp.ClientXMPP):
"""
self.get_roster()
self.send_presence()
self.plugin['xep_0045'].joinMUC(self.room,
self.nick,
# If a room password is needed, use:
# password=the_room_password,
wait=True)
self.plugin['xep_0045'].join_muc(self.room,
self.nick,
# If a room password is needed, use:
# password=the_room_password,
wait=True)
def muc_message(self, msg):
"""

View file

@ -29,82 +29,82 @@ class MUCPresence(ElementBase):
affiliations = set(('', ))
roles = set(('', ))
def getXMLItem(self):
def get_xml_item(self):
item = self.xml.find('{http://jabber.org/protocol/muc#user}item')
if item is None:
item = ET.Element('{http://jabber.org/protocol/muc#user}item')
self.xml.append(item)
return item
def getAffiliation(self):
def get_affiliation(self):
#TODO if no affilation, set it to the default and return default
item = self.getXMLItem()
item = self.get_xml_item()
return item.get('affiliation', '')
def setAffiliation(self, value):
item = self.getXMLItem()
def set_affiliation(self, value):
item = self.get_xml_item()
#TODO check for valid affiliation
item.attrib['affiliation'] = value
return self
def delAffiliation(self):
item = self.getXMLItem()
def del_affiliation(self):
item = self.get_xml_item()
#TODO set default affiliation
if 'affiliation' in item.attrib: del item.attrib['affiliation']
return self
def getJid(self):
item = self.getXMLItem()
def get_jid(self):
item = self.get_xml_item()
return JID(item.get('jid', ''))
def setJid(self, value):
item = self.getXMLItem()
def set_jid(self, value):
item = self.get_xml_item()
if not isinstance(value, str):
value = str(value)
item.attrib['jid'] = value
return self
def delJid(self):
item = self.getXMLItem()
def del_jid(self):
item = self.get_xml_item()
if 'jid' in item.attrib: del item.attrib['jid']
return self
def getRole(self):
item = self.getXMLItem()
def get_role(self):
item = self.get_xml_item()
#TODO get default role, set default role if none
return item.get('role', '')
def setRole(self, value):
item = self.getXMLItem()
def set_role(self, value):
item = self.get_xml_item()
#TODO check for valid role
item.attrib['role'] = value
return self
def delRole(self):
item = self.getXMLItem()
def del_role(self):
item = self.get_xml_item()
#TODO set default role
if 'role' in item.attrib: del item.attrib['role']
return self
def getNick(self):
def get_nick(self):
return self.parent()['from'].resource
def getRoom(self):
def get_room(self):
return self.parent()['from'].bare
def setNick(self, value):
def set_nick(self, value):
log.warning("Cannot set nick through mucpresence plugin.")
return self
def setRoom(self, value):
def set_room(self, value):
log.warning("Cannot set room through mucpresence plugin.")
return self
def delNick(self):
def del_nick(self):
log.warning("Cannot delete nick through mucpresence plugin.")
return self
def delRoom(self):
def del_room(self):
log.warning("Cannot delete room through mucpresence plugin.")
return self
@ -121,7 +121,7 @@ class XEP_0045(BasePlugin):
def plugin_init(self):
self.rooms = {}
self.ourNicks = {}
self.our_nicks = {}
self.xep = '0045'
# load MUC support in presence stanzas
register_stanza_plugin(Presence, MUCPresence)
@ -201,22 +201,22 @@ class XEP_0045(BasePlugin):
"""
self.xmpp.event('groupchat_subject', msg)
def jidInRoom(self, room, jid):
def jid_in_room(self, room, jid):
for nick in self.rooms[room]:
entry = self.rooms[room][nick]
if entry is not None and entry['jid'].full == jid:
return True
return False
def getNick(self, room, jid):
def get_nick(self, room, jid):
for nick in self.rooms[room]:
entry = self.rooms[room][nick]
if entry is not None and entry['jid'].full == jid:
return nick
def configureRoom(self, room, form=None, ifrom=None):
def configure_room(self, room, form=None, ifrom=None):
if form is None:
form = self.getRoomConfig(room, ifrom=ifrom)
form = self.get_room_config(room, ifrom=ifrom)
iq = self.xmpp.make_iq_set()
iq['to'] = room
if ifrom is not None:
@ -234,7 +234,7 @@ class XEP_0045(BasePlugin):
return False
return True
def joinMUC(self, room, nick, maxhistory="0", password='', wait=False, pstatus=None, pshow=None, pfrom=None):
def join_muc(self, room, nick, maxhistory="0", password='', wait=False, pstatus=None, pshow=None, pfrom=None):
""" Join the specified room, requesting 'maxhistory' lines of history.
"""
stanza = self.xmpp.make_presence(pto="%s/%s" % (room, nick), pstatus=pstatus, pshow=pshow, pfrom=pfrom)
@ -258,7 +258,7 @@ class XEP_0045(BasePlugin):
expect = ET.Element("{%s}presence" % self.xmpp.default_ns, {'from':"%s/%s" % (room, nick)})
self.xmpp.send(stanza, expect)
self.rooms[room] = {}
self.ourNicks[room] = nick
self.our_nicks[room] = nick
def destroy(self, room, reason='', altroom = '', ifrom=None):
iq = self.xmpp.make_iq_set()
@ -283,7 +283,7 @@ class XEP_0045(BasePlugin):
return False
return True
def setAffiliation(self, room, jid=None, nick=None, affiliation='member', ifrom=None):
def set_affiliation(self, room, jid=None, nick=None, affiliation='member', ifrom=None):
""" Change room affiliation."""
if affiliation not in ('outcast', 'member', 'admin', 'owner', 'none'):
raise TypeError
@ -305,7 +305,7 @@ class XEP_0045(BasePlugin):
return False
return True
def setRole(self, room, nick, role):
def set_role(self, room, nick, role):
""" Change role property of a nick in a room.
Typically, roles are temporary (they last only as long as you are in the
room), whereas affiliations are permanent (they last across groupchat
@ -337,7 +337,7 @@ class XEP_0045(BasePlugin):
msg.append(x)
self.xmpp.send(msg)
def leaveMUC(self, room, nick, msg='', pfrom=None):
def leave_muc(self, room, nick, msg='', pfrom=None):
""" Leave the specified room.
"""
if msg:
@ -346,7 +346,7 @@ class XEP_0045(BasePlugin):
self.xmpp.send_presence(pshow='unavailable', pto="%s/%s" % (room, nick), pfrom=pfrom)
del self.rooms[room]
def getRoomConfig(self, room, ifrom=''):
def get_room_config(self, room, ifrom=''):
iq = self.xmpp.make_iq_get('http://jabber.org/protocol/muc#owner')
iq['to'] = room
iq['from'] = ifrom
@ -362,7 +362,7 @@ class XEP_0045(BasePlugin):
raise ValueError
return self.xmpp.plugin['xep_0004'].build_form(form)
def cancelConfig(self, room, ifrom=None):
def cancel_config(self, room, ifrom=None):
query = ET.Element('{http://jabber.org/protocol/muc#owner}query')
x = ET.Element('{jabber:x:data}x', type='cancel')
query.append(x)
@ -371,7 +371,7 @@ class XEP_0045(BasePlugin):
iq['from'] = ifrom
iq.send()
def setRoomConfig(self, room, config, ifrom=''):
def set_room_config(self, room, config, ifrom=''):
query = ET.Element('{http://jabber.org/protocol/muc#owner}query')
config['type'] = 'submit'
query.append(config)
@ -380,31 +380,31 @@ class XEP_0045(BasePlugin):
iq['from'] = ifrom
iq.send()
def getJoinedRooms(self):
def get_joined_rooms(self):
return self.rooms.keys()
def getOurJidInRoom(self, roomJid):
def get_our_jid_in_room(self, room_jid):
""" Return the jid we're using in a room.
"""
return "%s/%s" % (roomJid, self.ourNicks[roomJid])
return "%s/%s" % (room_jid, self.our_nicks[room_jid])
def getJidProperty(self, room, nick, jidProperty):
def get_jid_property(self, room, nick, jid_property):
""" Get the property of a nick in a room, such as its 'jid' or 'affiliation'
If not found, return None.
"""
if room in self.rooms and nick in self.rooms[room] and jidProperty in self.rooms[room][nick]:
return self.rooms[room][nick][jidProperty]
if room in self.rooms and nick in self.rooms[room] and jid_property in self.rooms[room][nick]:
return self.rooms[room][nick][jid_property]
else:
return None
def getRoster(self, room):
def get_roster(self, room):
""" Get the list of nicks in a room.
"""
if room not in self.rooms.keys():
return None
return self.rooms[room].keys()
def getUsersByAffiliation(cls, room, affiliation='member', ifrom=None):
def get_users_by_affiliation(cls, room, affiliation='member', ifrom=None):
if affiliation not in ('outcast', 'member', 'admin', 'owner', 'none'):
raise TypeError
query = ET.Element('{http://jabber.org/protocol/muc#admin}query')
@ -415,5 +415,4 @@ class XEP_0045(BasePlugin):
return iq.send()
xep_0045 = XEP_0045
register_plugin(XEP_0045)

View file

@ -59,7 +59,7 @@ class XEP_0048(BasePlugin):
for conf in bookmarks['conferences']:
if conf['autojoin']:
log.debug('Auto joining %s as %s', conf['jid'], conf['nick'])
self.xmpp['xep_0045'].joinMUC(conf['jid'], conf['nick'],
self.xmpp['xep_0045'].join_muc(conf['jid'], conf['nick'],
password=conf['password'])
def set_bookmarks(self, bookmarks, method=None, **iqargs):