Idea about emoticon cache

zhang kai kylerzhang11 at gmail.com
Sat Mar 24 09:51:21 EDT 2012


Hi, here is my emoticon cache idea update.

Motivation:

As mentioned in the Pidgin Summer of Code 2012 projects page: "Currently
Pidgin does nothing with received emoticons. It could save a lot of
bandwidth if a cache of received emoticons existed. It could also be merged
with local custom smileys so we have a unified way to manage these files."

Benefits:


   1. If an emoticon existed in the cache, pidgin wouldn't need to fetch it
   again, this could save a lot of bandwidth.
   2. If an emoticon existed in the cache, pidgin wouldn't need to fetch it
   through Internet, this could save a lot of time when network condition is
   bad.
   3. End user could view the emoticons they received and use them too.

Drawbacks:

   1. More disk usage.
   2. May increase the pidgin start up time(depends on the final
   implementation).

Implementation Plan:

In my first 3 stage plan, I suggested store all emoticons in a single zip
compressed file in stage1, and later implement a cache system support per
account emoticon cache. After the discussions with Jorge and Mark, and some
research about protocols, I find there are two main problem.
First, store all emoticons in a single zip compressed file is error-prone
and gains little benefits.
Second, because every protocols has their own different design about
emoticon, and end user could define their own different emoticons, there is
no different between global cache and per account cache. In either way we
need to identify emoticons by the protocol and the end user.
So my new plan is use "protocol:end user account:remote user
account:emoticon presentation string" as the URI of an emoticon, and
translate the URI into path/file name, use PurpleStoredImage to save it.
This way could also help us implemet a unified way to manage emoticons and
smileys.

Question:

when I saw the emoticon cache idea in Pidgin Summer of Code 2012 projects
page, I was interested in the idea but I didn't familiar with the
protocols. So during the last week I did some research and found that MSN
seem just wouldn't transmit the custom emoticon images, instead they just
transmit the presentation string(they do have the custom emoticon
functionality) and Google Chat even didn't support custom emoticon. XMPP
has the XEP-0231 to exchange bits of binary, but I don't know how is it
implemented in Pidgin. I don't have time to research more protocols. So I
want to know: what protocol support custom emoticons? Anyway if there is no
need for us to fetch emoticons through network there is no need to cache
them.

Thanks and Regards.

>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://pidgin.im/pipermail/devel/attachments/20120324/cdd631bc/attachment-0002.html>


More information about the Devel mailing list