gpt4 book ai didi

python - 向 XMPP/Jabber session 室发送消息的简单方法? (Shell 或 Python,Debian 喘息)

转载 作者:行者123 更新时间:2023-11-30 23:21:19 31 4
gpt4 key购买 nike

向 XMPP/Jabber session 室发送消息的简单方法是什么?是在命令行(Shell)还是使用Python?理想情况下,所有命令和/或库都应该在 Debian wheezy(或 jessie)中可用,而无需使用 pip。

最佳答案

我在让 python-pyxmpp 工作时遇到了一些问题,也许我只是太不耐烦了。不管怎样,我找到了另一个对我有用的解决方案,但在他们的网站上使用了slickxmpp。该解决方案并不比 goncalopps 更好(我希望也不是更差),只是我在 Debian wheezy 上工作得更快。

$ sudo apt-get install python-sleekxmpp

这是代码:

import optparse
import sys
import time

import sleekxmpp


class MUCBot(sleekxmpp.ClientXMPP):
def __init__(self, jid, password, room, nick, message):
sleekxmpp.ClientXMPP.__init__(self, jid, password)
self.room = room
self.nick = nick
self.add_event_handler("session_start", self.start)
self.message = message

def start(self, event):
self.getRoster()
self.sendPresence()
self.plugin['xep_0045'].joinMUC(self.room, self.nick, wait=True)
self.send_message(mto=self.room, mbody=self.message, mtype='groupchat')
time.sleep(10)
self.disconnect()


if __name__ == '__main__':
op = optparse.OptionParser(usage='%prog [options] your message text')
op.add_option("-j", "--jid", help="JID to use")
op.add_option("-n", "--nick", help="MUC nickname")
op.add_option("-p", "--password", help="password to use")
op.add_option("-r", "--room", help="MUC room to join")
opts, args = op.parse_args()

if None in [opts.jid, opts.nick, opts.password, opts.room] \
or len(args) < 1:
op.print_help()
sys.exit(1)

xmpp = MUCBot(opts.jid, opts.password, opts.room, opts.nick,
" ".join(args))
xmpp.register_plugin('xep_0030') # Service Discovery
xmpp.register_plugin('xep_0045') # Multi-User Chat
xmpp.register_plugin('xep_0199') # XMPP Ping

if xmpp.connect():
xmpp.process(threaded=False)
else:
print "connect() failed"

不确定是否真的需要xep_0199插件。

关于python - 向 XMPP/Jabber session 室发送消息的简单方法? (Shell 或 Python,Debian 喘息),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25012370/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com