[英]I'm trying to figure out how to use dbus with pidgin
My problem is I'm not sure how to interface them. 我的问题是我不确定如何界面。 Do I need to have pidgin installed in a particular way in order for dbus to interface with it? 我是否需要以特定方式安装pidgin才能使dbus与之接口? and if not does the pidgin gui have to be running in order for dbus to utilize it? 如果没有,为了让dbus使用它,必须运行pidgin gui?
As per this source you could do the following : 根据此来源,您可以执行以下操作:
#!/usr/bin/env python
def cb_func(account, rec, message):
#change message here somehow?
print message
import dbus, gobject
from dbus.mainloop.glib import DBusGMainLoop
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
bus = dbus.SessionBus()
bus.add_signal_receiver(cb_func,
dbus_interface="im.pidgin.purple.PurpleInterface",
signal_name="SendingImMsg")
loop = gobject.MainLoop()
loop.run()
Probably you can get started with this lead. 可能你可以开始这个领先。
import dbus
from dbus.mainloop.glib import DBusGMainLoop
main_loop = DBusGMainLoop()
session_bus = dbus.SessionBus(mainloop = main_loop)
obj = session_bus.get_object("im.pidgin.purple.PurpleService", "/im/pidgin/purple/PurpleObject")
purple = dbus.Interface(obj, "im.pidgin.purple.PurpleInterface")
Then you can use the purple object to call some methods like this: 然后你可以使用紫色对象来调用这样的方法:
status = purple.PurpleSavedstatusNew("", current)
purple.PurpleSavedstatusSetMessage(status, message)
purple.PurpleSavedstatusActivate(status)
The code below has an example of showing the buddy list when it is hidden and another example of starting an IM conversation with a specific contact. 下面的代码有一个示例,显示隐藏的好友列表和另一个与特定联系人开始IM对话的示例。
import dbus
BUS_ARGS = ('im.pidgin.purple.PurpleService', '/im/pidgin/purple/PurpleObject')
obj = dbus.SessionBus().get_object(*BUS_ARGS)
purple = dbus.Interface(obj, 'im.pidgin.purple.PurpleInterface')
# show buddy list if it is hidden
purple.PurpleBlistSetVisible(1)
# start IM conversation with specific contact
account = purple.PurpleAccountsFindConnected('', '')
conversation = purple.PurpleConversationNew(1, account, 'alice@example.com')
I can recommend a number of useful resources relating to using dbus with pidgin: 我可以推荐一些与使用带有pidgin的dbus相关的有用资源:
You do not need to do any special configuration of Pidgin to use D-Bus, however it must be running if you want to use it. 您不需要对Pidgin进行任何特殊配置即可使用D-Bus,但是如果您想使用它,它必须正在运行。 You can check the script I'm using to control Pidgin status from the NetworkManager-dispatcher ( part 1 , part 2 ) as a sample how to interface Pidgin via D-Bus from python. 您可以从NetworkManager-dispatcher( 第1 部分 , 第2部分 )检查我用来控制Pidgin状态的脚本,作为如何通过Dthon总线从python接口Pidgin的示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.