我想通过dbus向Pidgin聊天发送消息或设置聊天主题。在this guide之后,我能够编写一些相当简单的代码来做到这一点,它确实会导致消息出现或聊天主题被更改......但它似乎只影响我的窗口,而没有其他参与者了解任何消息或主题更改。
我正在使用
purple.PurpleConvChatSetTopic(chat_data, user, topic)
和
purple.PurpleConvChatWrite(chat_data, user, message, flag, time)
我认为这不是因为任何滥用dbus api的原因,因为调用实际上会导致操作。我只是想知道我是否需要先进行某种身份验证?或者用户可能只是当前用户?我尝试了我的昵称并将其设置为unicode但无济于事。
以下是完整的代码:
import dbus
import time
# define chat_name, user, topic, message
bus = dbus.SessionBus()
obj = bus.get_object('im.pidgin.purple.PurpleService', '/im/pidgin/purple/PurpleObject')
purple = dbus.Interface(obj, 'im.pidgin.purple.PurpleInterface')
for p in purple.PurpleGetConversations():
if purple.PurpleConversationGetName(p) == chat_name:
chat = p
chat_data = purple.PurpleConversationGetChatData(chat)
purple.PurpleConvChatSetTopic(chat_data, user, topic)
purple.PurpleConvChatWrite(chat_data, user, message, 0, int(time.time()))