Подписка нового получателя: update_roster(), кажется, зависает

У меня есть небольшой скрипт на Python для отправки xmpp-сообщений данному получателю. Это хорошо работает, если для получателя существует подписка, в противном случае сообщение не будет доставлено.

Поскольку в системе регулярно появляются новые пользователи, у меня возникла идея автоматически подписывать новых получателей, используя update_roster(recipient,block=False,subscription="both"), Но, к сожалению, сценарий, кажется, висит там.

Зачем?

Смотрите мой код ниже...

class SendMsgBot(sleekxmpp.ClientXMPP):

  def __init__(self, jid, password, recipient, message):
    sleekxmpp.ClientXMPP.__init__(self, jid, password)

    self.recipient = recipient
    self.msg = message

    self.add_event_handler("session_start", self.start)

  def start(self, event):
    self.send_presence()
    self.get_roster()
    if self.msg =="":
      # HERE IT IS ....
      self.update_roster(recipient,block=False,subscription="both")
    else:
      self.send_message(mto=self.recipient,
                        mbody=self.msg,
                        mtype='chat')

    self.disconnect(wait=True)

1 ответ

Решение

Хорошо, видимо, я просто решил это сам. Изменено subscription="both" в subscription="to" - так утверждение выглядит так:

     self.update_roster(recipient,block=False,subscription="to")

:-)

Другие вопросы по тегам