4

私の問題は、それらをインターフェースする方法がわからないことです。dbus が pidgin と連携するために、特定の方法で pidgin をインストールする必要がありますか? そうでない場合、dbusがそれを利用するためにpidgin guiを実行する必要がありますか?

4

5 に答える 5

5

このソースに従って、次のことができます:

#!/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()

おそらく、このリードから始めることができます。

于 2009-08-13T22:12:43.497 に答える
4
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")

次に、紫色のオブジェクトを使用して、次のようなメソッドを呼び出すことができます。

status = purple.PurpleSavedstatusNew("", current)
purple.PurpleSavedstatusSetMessage(status, message)
purple.PurpleSavedstatusActivate(status)
于 2009-08-16T04:57:29.793 に答える
2

以下のコードには、非表示のときにバディ リストを表示する例と、特定の連絡先との 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')

pidgin での dbus の使用に関連するいくつかの有用なリソースをお勧めします。

  • Riding the D-Bus with Pidgin - 3 つの個別の python dbus の例があります。
  • Purple-remote - pidgin をインストールしたときに ubuntu マシンにインストールされた Python スクリプトです。単一のファイルであり、非常に読みやすいです。
  • dbus-monitor - dbus 呼び出しを監視する優れたプログラム. 文書化されていない場合に、使用するプログラムで使用されている呼び出しを見つけるのに役立ちます。
  • qdbusviewer - pidgins dbus メソッドを一覧表示できる優れたグラフィカル ツール. ツール自体から呼び出すこともできます。

qdbusビューア

于 2014-01-29T12:03:22.520 に答える
0

D-Bus を使用するために Pidgin の特別な構成を行う必要はありませんが、使用する場合は実行している必要があります。Python から D-Bus 経由で Pidgin をインターフェースする方法のサンプルとして、NetworkManager-dispatcher から Pidgin ステータスを制御するために使用しているスクリプトを確認できます (パート 1パート 2 )。

于 2009-10-19T14:45:52.543 に答える