[Pidgin] #14961: Make moods compatible with ICQ7.x and other clients

Pidgin trac at pidgin.im
Sat Feb 25 10:03:13 EST 2012


#14961: Make moods compatible with ICQ7.x and other clients
--------------------------------------+-------------------------------------
 Reporter:  dustin                    |     Owner:  MarkDoliner
     Type:  patch                     |    Status:  new        
Component:  ICQ                       |   Version:  2.10.1     
 Keywords:  mood status icq7 icqmood  |  
--------------------------------------+-------------------------------------
 (Related to #13465, which is outdated now because of the protocol change)

 ICQ has an updated mood status feature since ICQ 7.5(?), which is only
 semi-compatible to how Pidgin handles moods.

 As a consequence, not all moods sent by an ICQ (or Miranda) client are
 understood, and those that are not shown because they have an unknown
 `icqmood`.

 Protocol:
  * Old moods (ICQ6): as before, a custom icon signature will be sent as
 capability, additionally...
  * Both new and old: the mood is identified by an icqmood string
 "0icqmoodNN", put into a BART info field of subtype `0x000e` (not
 "icqmoodNN" as before).
  * also the mood comment is sent in a BART info field (subtype `0x0010`).
  * ICQ7.x doesn't send or understand mood comments sent as ICQSERVERRELAY
 message.

 This patch prefers custom icons to the BART info, but can deal with both
 methods:
  * When setting a mood, the old fashioned custom icon is sent after the
 icqmood, so old versions of Pidgin (and other clients?) will not delete
 the mood as "unknown icqmood". (`family_oservice.c`, `oscar.c`)
  * When receiving an AIM userinfo, the mood by custom icon is preferred if
 available. (`family_locate.c`)

 I tried to find emotes that roughly match the new moods.
 Those with a size 16 icon have been included.
 Moods with a matching size 24 icon are put beyond the end of list for now,
 maybe someone can scale these down to 16 or find better matches.

 Patch tested connecting to ICQ 7.7, Pidgin 2.10.1, Miranda 0.9.32,
 qip2012-7058 and Pidgin 2.10.1 with the patch applied.


 Regards

-- 
Ticket URL: <http://developer.pidgin.im/ticket/14961>
Pidgin <http://pidgin.im>
Pidgin


More information about the Tracker mailing list