"Now listening" Exaile plugin Gaim-hez

Egy tipikus "now listening" plugint kéne összerakni, Python-ban. Sajnos nem ismerem a nyelvet, de az alapanyagok megvannak, csak valakinek össze kéne raknia az akábbiakból:A plugin rész

Arra gondoltam, hogy dbussal lehetne megoldani a Gaim részt. Erre van a

dbus-send

nevű program. Ennek használata:

dbus-send --dest=net.sf.gaim.GaimService --print-reply --type=method_call /net/sf/gaim/GaimObject net.sf.gaim.GaimInterface.GaimConnectionsGetAll

ami egy

int32

-kből álló tömbbel tér vissza.

Már csak a név átírása van hátra, ezt a következő paranccsal tehetjük meg (egyenként, az előzőleg kapott kapcsolat ID-kre (a példában 2997)):

dbus-send --dest=net.sf.gaim.GaimService --print-reply --type=method_call /net/sf/gaim/GaimObject net.sf.gaim.GaimInterface.GaimConnectionSetDisplayName int32:2997 string:"a név"

Nos, hát ez lenne, ezeket a bash parancsokat kéne beleszőni a python kódba. Kommentben jelezzétek ha írtatok hozzá valamit.

Előre is kösz, remélem nem csak nekem lesz hasznos.

Update
Ha nagyon belejön valaki a szkriptelésbe, beleszőhetné az albumborító-icon részt is. Az idevágó dolgok:

cover = self.exaile.cover.loc

(Módosítva a pastebin-en is)

gaim-send GaimAccountSetBuddyIcon int32:41 string:"elérési/út"

Az első paraméter pedig a következő tömb eleme:

gaim-send GaimAccountsGetAll

Update vol. 2
Egy már működő prototípus: http://mcbuddha.pastebin.co.uk/8668

Csak be kell másolni az

/usr/share/exaile/plugins

könyvtárba, és már megy is. A forrás 15. sorában az

int32:

utáni részeben a

gaim-send GaimAccountsGetAll

visszatérési értékét kell írni (ez a jövőben remélem automatizálásra kerül).

Hozzászólások

Szerintem van a pythonban dbus, nem kell a parancsokat hivogatni sem.

8627-ben módosítottam, de amint ott is írom, azt nem írtad le, a connect/disconnect fveknek mit kéne csinálniuk...

Amit itt megadtál, azt beletettem.

érdekes, bár nekem még a nevemet se sikerült gaim-ben átírni (csak local alias-t lehet), csak ebuddy-val

Ezt írd be parancssorba:

dbus-send --dest=net.sf.gaim.GaimService --print-reply --type=method_call /net/sf/gaim/GaimObject net.sf.gaim.GaimInterface.GaimConnectionsGetAll

Kiír egy vagy több számot. Ezt a számot írd be ide, meg a nevedet:

dbus-send --dest=net.sf.gaim.GaimService --print-reply --type=method_call /net/sf/gaim/GaimObject net.sf.gaim.GaimInterface.GaimConnectionSetDisplayName int32:szám string:"név"

Első dolgom, hogy Gaimban aliasolom az ismerőseimet így bármit írhat a neve mögé nem érdekel ;-)

--
A nyúl egy igazi jellem. Ott ül a fűben, de akkor sem szívja!