[英]Python Access Pidgin Data Structure by Dbus
我最近開始使用Python編程並為Pidgin創建腳本/插件,我需要訪問PurpleConversationUiOps並使用has_focus字段,基於Pidgin文檔中的一些示例,我做到了這一點:
#!/usr/bin/env python
import dbus, gobject
from dbus.mainloop.glib import DBusGMainLoop
def view(conv):
if conv == 1: #if has focus
print "Has Focus"
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
bus = dbus.SessionBus()
bus.add_signal_receiver(view,
dbus_interface="im.pidgin.purple.PurpleConversationUiOps",
signal_name="HasFocus")
loop = gobject.MainLoop()
loop.run()
他沒有給出錯誤,但我沒有收到任何信號,那么我該如何訪問has_focus字段?
我已經用d-feet檢查了我的Pidgin 2.10.0,那里只有一個接口im.pidgin.purple.PurpleInterface
。 似乎您正在尋找的API是方法(不是信號) PurpleConversationHasFocus(int32 conv) -> int32
。
要進行對話,需要使用PurpleGetConversations -> Array of int32
,或者信號ConversationCreated(int32)
。
$ dbus-send --print-reply --dest=im.pidgin.purple.PurpleService /im/pidgin/purple/PurpleObject im.pidgin.purple.PurpleInterface.PurpleGetConversations
method return sender=:1.165 -> dest=:1.172 reply_serial=2
array [
int32 22042
]
$ dbus-send --print-reply --dest=im.pidgin.purple.PurpleService /im/pidgin/purple/PurpleObject im.pidgin.purple.PurpleInterface.PurpleConversationHasFocus int32:22042
method return sender=:1.165 -> dest=:1.174 reply_serial=2
int32 0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.