簡體   English   中英

我正在試圖找出如何使用帶有pidgin的dbus

[英]I'm trying to figure out how to use dbus with pidgin

我的問題是我不確定如何界面。 我是否需要以特定方式安裝pidgin才能使dbus與之接口? 如果沒有,為了讓dbus使用它,必須運行pidgin gui?

根據來源,您可以執行以下操作:

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

可能你可以開始這個領先。

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)

在開始使用DBUS與Pidgin接口時使用的一個非常有用的工具是D-Feet 您可以看到可以調用的所有可用方法,甚至可以直接從GUI執行它們。

下面的代碼有一個示例,顯示隱藏的好友列表和另一個與特定聯系人開始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相關的有用資源:

  • 使用Pidgin乘坐D-Bus - 有三個單獨的python dbus示例。
  • purple-remote - 當我安裝pidgin時,它是安裝在我的ubuntu機器上的python腳本。 它是一個單獨的文件,非常容易閱讀。
  • dbus-monitor - 監控dbus呼叫的好程序。 它可以幫助您發現當您找不到文檔時使用的程序正在使用的調用。
  • qdbusviewer - 可以列出pidgins dbus方法的出色圖形工具。 您也可以從工具本身調用它們。

qdbusviewer

您不需要對Pidgin進行任何特殊配置即可使用D-Bus,但是如果您想使用它,它必須正在運行。 您可以從NetworkManager-dispatcher( 第1 部分第2部分 )檢查我用來控制Pidgin狀態的腳本,作為如何通過Dthon總線從python接口Pidgin的示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM