SleekXMPP:为每条消息的消息处理程序提供['muc'] ['jid']

时间:2014-05-26 03:08:18

标签: python xmpp chat

我正在使用SleekXMPP脚本连接到XMPP服务器。我的问题是msg['from']presence['muc']['jid']的结果完全不同。

msg['from']返回:channelname@channels.example.com/nick

msg['mucnick']返回:nick

presence['muc']['jid']返回:username@example.com

请注意,在这种情况下,“username”和“nick”是同一用户的两个唯一值。我需要为消息处理程序中的每条消息记录“用户名”值。

有没有办法在消息节处理程序中获得与presence['muc']['jid']相同的输出?

1 个答案:

答案 0 :(得分:1)

所以我通过将存在登录数据保存到字典来解决这个问题。

def muc_online(self, presence):
    handle = str(presence['muc']['jid']).split('@')[0]
    nick = str(presence['muc']['nick'])
    userdata = {nick : handle}

然后我只是将消息节中的缺口与存在节创建的字典匹配。