GNOME Do lacks a plugin for Empathy

Bug #325373 reported by Alexander Hunziker
352
This bug affects 69 people
Affects Status Importance Assigned to Milestone
Do Plugins
Fix Released
Wishlist
Unassigned
gnome-do-plugins (Ubuntu)
Fix Released
Wishlist
Unassigned
Nominated for Karmic by heph72

Bug Description

It would be nice to have a plugin for GNOME Do, analogue to the Pidgin plugin, that allows for initiating chats using the Empathy instant messenger.

Tags: patch

Related branches

Revision history for this message
Alex Launi (alexlauni) wrote :

Sounds like a great project, feel free to write one, or put a bounty out for one.

Changed in do-plugins:
importance: Undecided → Wishlist
status: New → Confirmed
Revision history for this message
Jerry (priegog) wrote :

Yup, seeing as empathy will possibly replace pidgin in Jaunty, and probably in Jaunty +1, this seems a logical step.
Just casting my vote so that you guys know it is a requested plugin.

Revision history for this message
CydeSwype (ircone) wrote :

It's confirmed that empathy WILL replace pidgin in Karmic (Ubuntu 9.10), so this is definitely needed now.

Jonathan Davies (jpds)
Changed in gnome-do-plugins (Ubuntu):
importance: Undecided → Wishlist
status: New → Confirmed
Revision history for this message
Waldir Leoncio (wleoncio) wrote :

I second that request!

Revision history for this message
cazacugmihai (cazacugmihai) wrote :

It will be nice to have it.

Revision history for this message
kingaaronj (kingaaronj) wrote :

I also would like to see this. Especially now that ubuntu 9.10 is out and I'm now using empathy.

Revision history for this message
DannyArmstrong (detarmstrong) wrote :

I am voicing my support for creating a empathy plugin for do.

Revision history for this message
Thiago Bellini (bellini666) wrote :

+1 for empathy plugin!

Revision history for this message
Jeremy A (jtheoof) wrote :

I second that request too. A plugin for Empathy would be great for Gnome Do!

Revision history for this message
kofm (hom3rster) wrote :

Empathy Plugin FTW

Revision history for this message
JJ (jjbuckley) wrote :

+1
Has anyone started this? If so, I'd be happy to lend a hand. If not, I'm willing to start the project.

Revision history for this message
Chris Halse Rogers (raof) wrote : Re: [Bug 325373] Re: GNOME Do lacks a plugin for Empathy

I don't believe that anyone has started this. Please feel free to
start the project!

Revision history for this message
Mohd Abd Hafiz Bin Awang (mohdabdhafiz-gmail) wrote :

i'm still newbie in ubuntu. But still I really looking forward in this project. Feel free to start the project!

Revision history for this message
Daniil Kulchenko (daniil-kulchenko) wrote :

Agreed! Would be very nice to have a plugin for Empathy.

Revision history for this message
Antono Vasiljev (antono) wrote :

JJ how is it going? I would like to join and learn some C# :)

Revision history for this message
Waldir Leoncio (wleoncio) wrote :

I'd write that app if I knew how to. The best I can contribute right now is with its translation to pt-br when it's done. :-p

Revision history for this message
bgilbert (gilbertw1) wrote :

I'm fairly competent in C# and would like to contribute to a plugin if anyone has done any work on one. I'd really like to see this come to fruition, so anyone let me know if there is a project in progress?

Revision history for this message
JJ (jjbuckley) wrote :

It's not going at all, since I don't have the time or expertise. But it looks like there's a lot of interest in this. So anyone want to check out the bzr repo and take a stab at it?

On 7 May 2010, at 02:35, Antono Vasiljev wrote:

> JJ how is it going? I would like to join and learn some C# :)
>
> --
> GNOME Do lacks a plugin for Empathy
> https://bugs.launchpad.net/bugs/325373
> You received this bug notification because you are a direct subscriber
> of the bug.
>
> Status in Do Plugins Project: Confirmed
> Status in “gnome-do-plugins” package in Ubuntu: Confirmed
>
> Bug description:
> It would be nice to have a plugin for GNOME Do, analogue to the Pidgin plugin, that allows for initiating chats using the Empathy instant messenger.
>
> To unsubscribe from this bug, go to:
> https://bugs.launchpad.net/do-plugins/+bug/325373/+subscribe

Revision history for this message
lardbit (flackattack) wrote :

Looks like we'll need to use Telepathy's c# library http://telepathy.freedesktop.org/wiki/LanguageBindings

Revision history for this message
bgilbert (gilbertw1) wrote :

Yikes, last time tapioca-sharp (Built on top of telepathy-sharp) was updated was in mid 2007, and telepathy-sharp was last updated in 2006.

The links on the Telepathy wiki are both broken, these are the only two links I was able to find (No idea if they are official):

http://bazaar.launchpad.net/~vcs-imports/tapioca-sharp/trunk/files
http://git.ndesk.org/?p=telepathy-sharp;a=summary

Revision history for this message
xavier calland (xavier-calland) wrote :

Hi
I'm Currently working on a Gnome-Do plugin for Empathy based on Telepathy D-Bus interface specification and telepathy-sharp.
This is my first lines of code in mono and also my first steps with D-Bus, so it's a bit laborious.
Once I have a first draft, I'll put the code on a branch.

Revision history for this message
xavier calland (xavier-calland) wrote :

Hi,
I just finished a first version of this plugin, the bazaar branch is available here : https://code.launchpad.net/~xavier-calland/do-plugins/empathy

Any comments are welcome

Revision history for this message
Javier Lorenzana (skqr) wrote :

Dude, you rock. Keep it up =)

Revision history for this message
Jörn Dreyer (j.dreyer) wrote :

I checked out the empathy plugin from xavier and copied the dll to ~/.local/share/gnome-do/plugins/telepathy-sharp.dll
Unfortunately, do does not seem to recognise the dll ... but I dont see any errors or failures in the debugoutput either ... how did you install the plugin, xavier?

Revision history for this message
xavier calland (xavier-calland) wrote :

For my tests, I put the dll (Empathy.dll and telepathy-sharp.dll) in /usr/lib/gnome-do/plugins/

Revision history for this message
sathyz (sathyz) wrote :

xaiver,
1. Where can I find Empathy.dll?
2. plugins should work when placed in ~/.local/share/gnome-do/plugins/
3. On starting gnome-do with telepathy-sharp.dll in /usr/lib/gnome-do/plugins (debug mode), I don't find any message saying the actions related to Empathy are loaded.

Please help me adding the plugin.

Revision history for this message
sathyz (sathyz) wrote :

I am getting the following message after installing telepathy-sharp.dll

$ gnome-do --debug
Could not find locate Mono.Addins config.xml: Could not find file "/home/satheesh/.local/share/gnome-do/plugins/addin-db-001/config.xml".
[Services] AddinManager is not initialized; only default services are available.
...

Revision history for this message
xavier calland (xavier-calland) wrote :

telepathy-sharp.dll is a depency of the plugin, it's not the plugin itself.
You need to build the project to generate Empathy.dll.

To add plugins :
Launch Gnome-Do, click the preferences tab, and drag the dll of your choice to the preferences box to install the plugin.
dll are put in .local/share/gnome-do/plugins/addins and it writes other config settings.

Revision history for this message
sathyz (sathyz) wrote :

xavier,
1. remove the references to Main (Main.cs doesn't exist)
2. update mdp to use Mono.addins (5.0.0 - latest version).
3. I'm trying to understand the actions supported. I have tried only set status (available, busy..) it didn't work..

Revision history for this message
sathyz (sathyz) wrote :

tried empathy account actions - I could see the actions "sign on/off" on typing in gnome-do but hitting return doesn't do anything.
..
[Debug 20:36:49.875] [EnvironmentService] Copying "Sign on - Enable empathy account" to clipboard.
[Debug 20:37:20.660] [EnvironmentService] Copying "Sign off - Disable empathy account" to clipboard.
..

Revision history for this message
xavier calland (xavier-calland) wrote :

sathyz,
1. I've removed the reference to Main.cs
2. I'm using the Mono.addins version that is available in my repository (lucid main and universe)
3. See the actions description file attached to this comment
4. Gnome-Do may propose the "copy to clipboard" action by default, be sur you have choosen the good item

thank you for your comment about this plugin :)

Question : what is the best way to include telepathy-sharp depedency ?
Known issues : update available contacts after sign on / off action (listen dbus event)

Revision history for this message
sathyz (sathyz) wrote :

Xavier,
Thanks for the update.
1. I could see only "copy to clipboard" action for "chat", "sign on", "sign off" - see the attachment.
2. I could successfully see "set status" action with presets. but I get the following error on setting the status (even though empathy process is running).
--
[Error 19:50:00.533] [EmpathySetStatusAction] Could not set Empathy status: Broken pipe [EPIPE].
[Debug 19:50:00.534] [EmpathySetStatusAction] at Mono.Unix.UnixMarshal.ThrowExceptionForLastError () [0x00000]
  at Mono.Unix.UnixStream.Write (System.Byte[] buffer, Int32 offset, Int32 count) [0x00000]
  at NDesk.DBus.Connection.WriteMessage (NDesk.DBus.Message msg) [0x00000]
  at NDesk.DBus.Connection.SendWithReply (NDesk.DBus.Message msg) [0x00000]
  at NDesk.DBus.Connection.SendWithReplyAndBlock (NDesk.DBus.Message msg) [0x00000]
  at NDesk.DBus.BusObject.SendMethodCall (System.String iface, System.String member, System.String inSigStr, NDesk.DBus.MessageWriter writer, System.Type retType, System.Exception& exception) [0x00000]
  at AccountManagerQuery.IAccountManagerQueryProxy.FindAccounts (IDictionary`2 ) [0x00000]
  at EmpathyPlugin.EmpathyPlugin.get_ConnectedAccounts () [0x00000]
  at EmpathyPlugin.EmpathyPlugin.SetAvailabilityStatus (ConnectionPresenceType status, System.String message) [0x00000]
  at EmpathyPlugin.EmpathySetStatusAction+<Perform>c__Iterator9.MoveNext () [0x00000]
--

Revision history for this message
sathyz (sathyz) wrote :

xavier,
Will it be possible to add the following scenario,
when I type a contact name, gnome-do should show option to send message (open chat window) to that contact.

Revision history for this message
xavier calland (xavier-calland) wrote :

To find accounts I use "com.nokia.AccountManager.Interface.Query.FindAccounts" DBus function (the error message is "AccountManagerQuery.IAccountManagerQueryProxy.FindAccounts"). Maybe this interface isn't present on your AccountManager.
Can you check if it's present ? (e.g. with d-feet see attachment "accountmanager_iterfaces.png")
Can tell me the Empathy and Telepathy version running on your system ?

Revision history for this message
xavier calland (xavier-calland) wrote :

If I understand you want to : first select a contact, then select the chat action (with eventually a message) like on "chat.png" attached capture. This scenario is already done (when the plugin works :/)

Revision history for this message
xavier calland (xavier-calland) wrote :

I just removed the "com.nokia.AccountManager.Interface.Query" from the source code, maybe would it resolve the problem.

Revision history for this message
TLE (k-nielsen81) wrote :

Hallo Guys

I have also been looking for this plugin, so I would just like to say, thanks a lot for your efforts. I would like to help out, but I can't at the moment, since I don't know C#. I'll see if I can get my head around the code, and then possibly help out then.

Regards Kenneth

Revision history for this message
xavier calland (xavier-calland) wrote :

I just found that the plugin needs libndesk-dbus1.0-cil version "0.6.1a" to be able to use some dbus méthods.
Lucid default version is "0.6.0", the docky-core ppas (ppa:docky-core/ppa) gives this version.

Now the plugin works on two computers :)

Revision history for this message
sathyz (sathyz) wrote :

I'm yet to get the chat action working. I'm getting the following error,
--
[Error 13:36:44.437] [EmpathyContactItemSource] Could not get Empathy contacts: Parsing or converting this signature is not yet supported (signature was '(uss)'), at DType.StructBegin
[Error 13:36:44.437] [EmpathyContactItemSource] at NDesk.DBus.Signature.ToType (System.Int32& pos) [0x00000]
  at NDesk.DBus.Signature.ToType () [0x00000]
  at NDesk.DBus.MessageReader.ReadVariant (Signature sig) [0x00000]
  at NDesk.DBus.MessageReader.ReadVariant () [0x00000]
  at NDesk.DBus.MessageReader.ReadValue (System.Type type) [0x00000]
  at NDesk.DBus.MessageReader.GetValueToDict (System.Type keyType, System.Type valType, IDictionary val) [0x00000]
  at NDesk.DBus.MessageReader.ReadValue (System.Type type) [0x00000]
  at NDesk.DBus.MessageReader.GetValueToDict (System.Type keyType, System.Type valType, IDictionary val) [0x00000]
  at NDesk.DBus.MessageReader.ReadValue (System.Type type) [0x00000]
  at NDesk.DBus.MessageHelper.GetDynamicValues (NDesk.DBus.Message msg, System.Type[] types) [0x00000]
  at NDesk.DBus.BusObject.SendMethodCall (System.String iface, System.String member, System.String inSigStr, NDesk.DBus.MessageWriter writer, System.Type retType, System.Exception& exception) [0x00000]
  at Telepathy.IContactsProxy.GetContactAttributes (System.UInt32[] interfaces, System.String[] hold, Boolean ) [0x00000]
  at EmpathyPlugin.Contact..ctor (UInt32 contactUInt, EmpathyPlugin.Account account) [0x00000]
  at EmpathyPlugin.Account.FindContact () [0x00000]
  at EmpathyPlugin.EmpathyPlugin.get_GetAllContacts () [0x00000]
  at EmpathyPlugin.EmpathyContactItemSource.UpdateItems () [0x00000]
[Debug 13:36:44.437] [UniverseManager] Reloading item source "Empathy Accounts"...
--

$ empathy --version
Empathy 2.30.2

Revision history for this message
xavier calland (xavier-calland) wrote :

Just look my previous message about libndesk-dbus1.0-cil version.
Updating to "0.6.1a" seems to fixe this problem.

What about the other actions ?

Revision history for this message
sathyz (sathyz) wrote :

xavier,
I have updated libndesk-dbus. Good Work. Here is the status,
1. sign on/off - works
2. set status - able to set status to any of the preset status, saved messages, new status message except invisible.
On setting status to invisible (with no message), the following exception is thrown,
--
[Error 17:12:52.221] [EmpathySetStatusAction] Could not set Empathy status: Argument cannot be null.
Parameter name: status
[Debug 17:12:52.221] [EmpathySetStatusAction] at Telepathy.ISimplePresenceProxy.SetPresence (System.String status, System.String status_message) [0x00000]
  at EmpathyPlugin.Account.SetStatus (ConnectionPresenceType presenceType, System.String message) [0x00000]
  at EmpathyPlugin.EmpathyPlugin.SetAvailabilityStatus (ConnectionPresenceType status, System.String message) [0x00000]
  at EmpathyPlugin.EmpathySetStatusAction+<Perform>c__Iterator9.MoveNext () [0x00000]
--
3. chat with contacts - worked for gtalk contacts, but throws following error when I try to chat with my friends on yahoo,
--
EmpathyPlugin.EmpathyChatAction "Chat" encountered an error in Perform: System.Exception: org.freedesktop.Telepathy.Error.NotImplemented: unsupported message type: 2
  at Telepathy.IMessagesProxy.SendMessage (System.Collections.Generic.IDictionary`2[] message, MessageSendingFlags flags) [0x00000]
  at EmpathyPlugin.Account.OpenConversationWithBuddy (System.String contactId, System.String message) [0x00000]
  at EmpathyPlugin.EmpathyPlugin.OpenConversationWithBuddy (System.String contactId, System.String message) [0x00000]
  at EmpathyPlugin.EmpathyChatAction+<Perform>c__Iterator2.MoveNext () [0x00000]
  at System.Collections.Generic.List`1[Do.Universe.Item].AddEnumerable (IEnumerable`1 enumerable) [0x00000]
  at System.Collections.Generic.List`1[Do.Universe.Item]..ctor (IEnumerable`1 collection) [0x00000]
  at System.Linq.Enumerable.ToArray[Item] (IEnumerable`1 source) [0x00000]
  at Do.Universe.Safe.SafeAct.Perform (IEnumerable`1 items, IEnumerable`1 modItems) [0x00000] .
--

Revision history for this message
xavier calland (xavier-calland) wrote :

3. chat action problem
I've changed the Channel_Text_Message_Type, it may work now (I hope, I've no yahoo account to test :/)

Revision history for this message
xavier calland (xavier-calland) wrote :

2. invisible status not working : in fact some status are not available in some account (protocol), that explain this error, I'll update the code to find the nearest status (or at least ignore this account).
For exemple google talk doesn't provide the invisible status.

Revision history for this message
xavier calland (xavier-calland) wrote :

I've just pushed a patch for not available statuses, I hope it will work. Can you test these two updates ?

Revision history for this message
sathyz (sathyz) wrote :

xavier,
I just did quick test on chat and set status.

(1) set status:
 works for other preset statuses , except invisible => actually sets status to away. I have yahoo & google accounts enabled.
expected:
 - I'm able to set status to invisible using the empathy, I'm expecting the same through the plugin.
(2) chat :
 send message to a contact (launching the chat window). didn't work for a few contacts. I doubt it happens either for yahoo or away contacts. I'm trying to reproduce it.

Revision history for this message
xavier calland (xavier-calland) wrote :

(1) in empathy, when you set a status that is not available for an accout, it put another. Take a look at the "Empathy account window", the peer-account status is not "invisible", in fact it use the "busy" status instead.

(2) ok

Revision history for this message
sathyz (sathyz) wrote :

xavier,
Thanks, its working as shown in the screenshot.

(1) set status with message.

steps: set status -> busy -> type status message. this sets status to "busy", but the message is not set. The same works for "available.."

(2) set only the status message
type text -> set status. (assume the user is in busy status).
actual : this sets status to available with the status message.
expected: set only the status message.

(3) Invisible:
setting status to Offline - should sign off the accounts (that user has signed on).
--
[Warn 12:21:45.923] [Account] [my_yahoo_account] No status found for : Offline
[Warn 12:21:45.924] [Account] [my_gtalk_account] No status found for : Offline
--

and the status remains the same.

Let me go through the code and see if I can help.

Revision history for this message
sathyz (sathyz) wrote :

 (1) and (2) works for gtalk. Seems yahoo doesn't allow custom message for "busy" status.

xavier,
 (3) we need to sign off connected accounts on setting status to Offline. I have attached patch for the same. I have tested it.

tags: added: patch
Revision history for this message
Tom Robinson (nihilism65) wrote :

How would I go about building the project to generate Empathy.dll?
I can't seem to figure out how to do it even after googling around. :/

Revision history for this message
Eric Work (ework) wrote :

Xavier,

I've been testing your Empathy gnome-do plugin on Fedora 13 and I am seeing the following problem, which is preventing gnome-do from getting a list of contacts. I tried to look into this problem my self and there seems to be some problem getting the data back from ListChannels() for a telepathy account.

[Debug 17:39:10.807] [EmpathyContactItemSource] Contacts.UpdateItems
[Error 17:39:10.838] [EmpathyContactItemSource] Could not get Empathy contacts: Read pos 544 != ep 540
[Error 17:39:10.841] [EmpathyContactItemSource] at NDesk.DBus.MessageReader.ReadArray (System.Type elemType) [0x00000] in <filename unknown>:0
  at NDesk.DBus.MessageReader.ReadValue (System.Type type) [0x00000] in <filename unknown>:0
  at NDesk.DBus.MessageHelper.GetDynamicValues (NDesk.DBus.Message msg, System.Type[] types) [0x00000] in <filename unknown>:0
  at NDesk.DBus.BusObject.SendMethodCall (System.String iface, System.String member, System.String inSigStr, NDesk.DBus.MessageWriter writer, System.Type retType, System.Exception& exception) [0x00000] in <filename unknown>:0
  at IConnectionProxy.ListChannels () [0x00000] in <filename unknown>:0
  at EmpathyPlugin.Account.FindContact () [0x00000] in <filename unknown>:0
  at EmpathyPlugin.EmpathyPlugin.get_GetAllContacts () [0x00000] in <filename unknown>:0
  at EmpathyPlugin.EmpathyContactItemSource.UpdateItems () [0x00000] in <filename unknown>:0

Package versions:
ndesk-dbus = 0.6.1b
empathy = 2.30.3
telepathy-mission-control = 5.4.3
gnome-do = 0.8.3.1

@Tom Robinson

To build Empathy.dll do the following:

1. bzr branch lp:~xavier-calland/do-plugins/empathy
2. open empathy/Empathy/Empathy.mdp in monodevelop
3. Menu Build => Build All
4. Result is in empathy/Empathy/bin/Debug
5. Open gnome-do plugin preferences and drag-n-drop the two DLLs.

Revision history for this message
Chris Halse Rogers (raof) wrote :

I've merged this into trunk, and it's released in do-plugins 0.8.3, which is now available in Debian and Ubuntu.

Note that to build the Empathy plugin dbus-sharp (a maintained fork of ndesk.dbus) is required - and checked for in configure - otherwise the plugin hangs the Universe updater thread making Do ususable :).

Changed in do-plugins:
status: Confirmed → Fix Released
Changed in gnome-do-plugins (Ubuntu):
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Related blueprints

Remote bug watches

Bug watches keep track of this bug in other bug trackers.