EionRobb / skype4pidgin

Skype Plugin for Pidgin, libpurple and more
https://github.com/EionRobb/skype4pidgin/tree/master/skypeweb#skypeweb-plugin-for-pidgin
625 stars 88 forks source link

Smileys not sent to skype #666

Open davidhealey opened 3 years ago

davidhealey commented 3 years ago

Sending a smiley such as :D shows up fine in Pidgin but it isn't forwarded to Skype correctly. In Skype it just shows up as the two characters.

The reverse is also true, smileys sent from Skype don't show up in pidgin.

alexolog commented 3 years ago

This is not a Skype plugin issue, as it affects all the protocols. Pidgin does not seem to translate outgoing text while the native clients do -- each one according to it's proprietary rules.

Now, if you want to simulate the behaviour of the native Skype client, you can do it with the "Text Replacement" plug-in by replacing its dictionary file with one that "corrects" those strings to the appropriate Emoji. However, keep in mind that Pidgin has issues with Emoji on Windows, so you may want to use a smiley theme as well.

I have made one for my personal use, and shared it on Reddit. It is Unicode Emoji based, so it does not have Skype-specific ones, but you can use it as a starting point.

You can find the full list of Skype emoticons and shortcuts here: http://www.skaip.org/skype-emoticons

EionRobb commented 3 years ago

It kind of is the plugin, Skype servers expect smileys to be wrapped in <ss> xml tags, which Pidgin doesn't send.

The plugin could potentially try to do a regex replace to turn ;) into <ss type="wink">;)</ss> but I'd worry about getting the regex wrong and embedding it in the middle of a url or code-block or something

davidhealey commented 3 years ago

It kind of is the plugin, Skype servers expect smileys to be wrapped in <ss> xml tags, which Pidgin doesn't send.

The plugin could potentially try to do a regex replace to turn ;) into <ss type="wink">;)</ss> but I'd worry about getting the regex wrong and embedding it in the middle of a url or code-block or something

So if I use the text replacement plugin as suggested by alex, combined with the ss tags, it should display okay in skype and look slightly weird in Pidgin (which I'm fine with)?

davidhealey commented 3 years ago

Ah I just tested it and it just shows the entire string in Skype too

alexolog commented 3 years ago

I have the text replacement plugin convert :) into the Unicode emoji 🙂:

COMPLETE 0
CASE 1
BAD :)
GOOD 🙂

When I type it in the input box, it gets converted, and when I send, the recipient sees this: image

Obviously it will not work with Skype emoticons that have no Unicode emoji analogs

EionRobb commented 3 years ago

@davidhealey yeah, sorry, the text replacement plugin doesn't understand xml/html it's replacing the plain-text - you could try copy pasting some HTML with the <ss> tag, but that's fairly high-effort for little gain :(

alexolog commented 3 years ago

(edited comment above)

davidhealey commented 3 years ago

I have the text replacement plugin convert :) into the Unicode emoji 🙂:

COMPLETE 0
CASE 1
BAD :)
GOOD 🙂

When I type it in the input box, it gets converted, and when I send, the recipient sees this: image

Obviously it will not work with Skype emoticons that have no Unicode emoji analogs

Skype doesn't recognise 🙂 it just shows up as the characters

alexolog commented 3 years ago

Are you sure it got converted? The text replacement plugin is supposed to replace the text in the input window, as you are typing it. When I type : followed by ), the : immediately disappears to be replaced with a Unicode "tofu". The actual characters I typed do not get sent.

After typing: : image

After typing ) image

davidhealey commented 3 years ago

This is what I see in Pidgin image

And this is the result I see in Skype image

alexolog commented 3 years ago

Hmmm... I see the smiley in the Skype web interface. And just tried with the native Skype client on Win 10. Works for me.

What you see in Pidgin looks strange, as the colon is still there.

alexolog commented 3 years ago

Could be that the font you are using in Skype does not support Unicode Emoji?

davidhealey commented 3 years ago

Oh that colon you're seeing is actually at the end of my name in the chat. Name: []

I'm using web skype too so I must be doing something wrong in Pidgin. Although I tried pasting it directly into Skype too

bodqhrohro commented 3 years ago

There is a DeWYSIWYGification plugin from purple-plugin-pack to send raw tags; I just checked it with skype4pidgin, works well.

Maybe skype4pidgin should add a toolbar button with Skype-specific smiles (do prpls have an access to it or this should be implemented as a separate plugin?)

alexolog commented 3 years ago

Wouldn't it interfere with other things, like sending URLs?