Pidgin チャットにメッセージを送信したり、dbus を介してチャット トピックを設定したりしたいと考えています。このガイドに従って、それを行うための非常に簡単なコードを書くことができました。実際、メッセージが表示されたり、チャットのトピックが変更されたりします...しかし、他の参加者が気付くことなく、私のウィンドウにのみ影響するようです。メッセージまたはトピックの変更。
私は使用しています
purple.PurpleConvChatSetTopic(chat_data, user, topic)
と
purple.PurpleConvChatWrite(chat_data, user, message, flag, time)
呼び出しが実際にアクションになるため、これは dbus API の誤用によるものではないと思います。最初にある種の認証を実行する必要があるのだろうか?それとも、ユーザーは現在のユーザーにしかなれませんか? 私は自分のニックネームを試し、それをユニコードとして設定しましたが、役に立ちませんでした。
とにかく完全なコードは次のとおりです。
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()))