Completion for /affiliation

This commit is contained in:
mathieui 2011-11-13 16:28:11 +01:00
parent 3ddbac5e47
commit 552c504559

View file

@ -476,7 +476,7 @@ class MucTab(ChatTab):
self.commands['unignore'] = (self.command_unignore, _("Usage: /unignore <nickname>\nUnignore: Remove the specified nickname from the ignore list."), self.completion_unignore)
self.commands['kick'] = (self.command_kick, _("Usage: /kick <nick> [reason]\nKick: Kick the user with the specified nickname. You also can give an optional reason."), self.completion_ignore)
self.commands['role'] = (self.command_role, _("Usage: /role <nick> <role> [reason]\nRole: Set the role of an user. Roles can be: none, visitor, participant, moderator. You also can give an optional reason."), self.completion_role)
self.commands['affiliation'] = (self.command_affiliation, _("Usage: /affiliation <nick> <affiliation> [reason]\nAffiliation: Set the affiliation of an user. Affiliations can be: none, member, admin, owner. You also can give an optional reason."), None)
self.commands['affiliation'] = (self.command_affiliation, _("Usage: /affiliation <nick> <affiliation> [reason]\nAffiliation: Set the affiliation of an user. Affiliations can be: none, member, admin, owner. You also can give an optional reason."), self.completion_affiliation)
self.commands['topic'] = (self.command_topic, _("Usage: /topic <subject>\nTopic: Change the subject of the room."), self.completion_topic)
self.commands['query'] = (self.command_query, _('Usage: /query <nick> [message]\nQuery: Open a private conversation with <nick>. This nick has to be present in the room you\'re currently in. If you specified a message after the nickname, it will immediately be sent to this user.'), None)
self.commands['part'] = (self.command_part, _("Usage: /part [message]\nPart: Disconnect from a room. You can specify an optional message."), None)
@ -512,6 +512,20 @@ class MucTab(ChatTab):
possible_roles = ['none', 'visitor', 'participant', 'moderator']
return the_input.auto_completion(possible_roles, '')
def completion_affiliation(self, the_input):
"""Completion for /affiliation"""
text = the_input.get_text()
args = common.shell_split(text)
n = len(args)
if text.endswith(' '):
n += 1
if n == 2:
userlist = [user.nick for user in self.users]
return the_input.auto_completion(userlist, '')
elif n == 3:
possible_affiliations = ['none', 'member', 'admin', 'owner']
return the_input.auto_completion(possible_affiliations, '')
def scroll_user_list_up(self):
self.user_win.scroll_up()
self.user_win.refresh(self.users)