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? and if not does the pidgin gui have to be running in order for dbus to utilize it?
+3
A:
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.
Kevin Boyd
2009-08-13 22:12:43
+2
A:
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)
markuz
2009-08-16 04:57:29
+1
A:
A really useful tool to use when getting started with using DBUS to interface with Pidgin is D-Feet. You can see all the available methods you can call and even execute them directly from the GUI.
Tim Kryger
2009-10-19 06:49:00
Upvoted for mentioning D-Feet. Seems to be a really nice dbus debugger tool.
abbot
2009-10-19 14:38:57
A:
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. 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.
abbot
2009-10-19 14:45:52