summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--poezio/tabs/muctab.py44
1 files changed, 31 insertions, 13 deletions
diff --git a/poezio/tabs/muctab.py b/poezio/tabs/muctab.py
index 847522e5..daa17630 100644
--- a/poezio/tabs/muctab.py
+++ b/poezio/tabs/muctab.py
@@ -240,7 +240,6 @@ class MucTab(ChatTab):
"""
Change the affiliation of a nick or JID
"""
-
if not self.joined:
return
@@ -250,26 +249,45 @@ class MucTab(ChatTab):
'The affiliation must be one of ' +
', '.join(valid_affiliations), 'Error')
return
- if nick_or_jid in [user.nick for user in self.users]:
- nick = nick_or_jid
- jid = None
- else:
- nick = None
+ jid = None
+ nick = None
+ for user in self.users:
+ if user.nick == nick_or_jid:
+ jid = user.jid
+ nick = user.nick
+ break
+ if jid is None:
try:
jid = JID(nick_or_jid)
except InvalidJID:
- self.core.information('Invalid JID or missing occupant: %s' % nick_or_jid, 'Error')
+ self.core.information(
+ f'Invalid JID or missing occupant: {nick_or_jid}',
+ 'Error'
+ )
return
- async def do_set_affiliation(room: JID, jid: Optional[JID], nick: Optional[str], affiliation: str, reason: str):
+ async def do_set_affiliation(room: JID, jid: JID, nick: Optional[str], affiliation: str, reason: str):
try:
- await self.core.xmpp['xep_0045'].set_affiliation(room, jid, nick, affiliation=affiliation, reason=reason)
- except (IqError, IqTimeout) as e:
+ await self.core.xmpp['xep_0045'].set_affiliation(
+ room,
+ nick=nick,
+ jid=jid,
+ affiliation=affiliation,
+ reason=reason
+ )
+ self.core.information(
+ f"Affiliation of {jid} set to {affiliation} successfully",
+ "Info"
+ )
+ except (IqError, IqTimeout) as exc:
self.core.information(
- "Could not set affiliation '%s' for '%s': %s" %
- (affiliation, nick_or_jid, e), "Warning")
+ f"Could not set affiliation '{affiliation}' for '{jid}': {exc}",
+ "Warning",
+ )
- asyncio.ensure_future(do_set_affiliation(self.jid.bare, jid, nick, affiliation, reason))
+ asyncio.ensure_future(
+ do_set_affiliation(self.jid.bare, jid, nick, affiliation, reason)
+ )
def change_role(self, nick: str, role: str, reason: str = '') -> None:
"""