Отправка сообщения из Python в комнату в Jabber

Материал из Mindsellers
Перейти к: навигация, поиск

Python

В связи с тотальной блокировкой телеграма, возникло желание всей корпоративной группой перейти на использование своего кошерного Jabber-сервера, тем более что он уже есть. Быстренько разобрались с настройкой комнаты, но возник вопрос: как всех массово уведомлять о каком-либо проишествии. Конечно, можно просто отправить сообщение по списку пользователей, но мне показалось удобнее слать сообщение один раз - в приватную комнату. Из этой задачи и родился следующий скрипт

#!/usr/bin/env python
#-*- coding: utf-8 -*-

import xmpp,sys

xmpp_jid = 'bot@domain.ru'
xmpp_pwd = 'password'
room = 'it@conference.domain.ru'
msg = sys.argv[1]        

#Получаем в качестве аргумента сообщение

jid = xmpp.protocol.JID(xmpp_jid)
client = xmpp.Client(jid.getDomain(),debug=[])
client.connect()
client.auth(jid.getNode(),str(xmpp_pwd),resource='xmpppy')
#Авторизуемся
client.sendInitPresence(requestRoster=0)
client.send(xmpp.Presence(to='{0}/{1}'.format(room, jid)))
#Заходим в комнату
message=xmpp.Message(room, '\n'+msg)
#Формируем сообщение
message.setAttr('type', 'groupchat')
#Устанавливаем тип сообщения - групповой чат
client.send(message)
#Отправляем сообщение и отключаемся
client.disconnect()