[PATCH] Add serv_got_private_alias

Kevin Stange kstange at pidgin.im
Fri Feb 29 04:01:03 EST 2008


Sascha Vogt wrote:
> Evan Schoenberg wrote:
>> Precisely, and a minimal UI (e.g. Buddy list itself) should prefer the  
>> private one to the public one, while a verbose UI will likely show  
>> both (e.g. Buddy tooltip)
> Maybe I'm totally wrong, but if I understand it correctly we're talking 
> about three different things, so why aren't there 3 different functions 
> for that?

While we are talking about three different things, the latter pair are 
considered interchangeable in our design.

> 
> 1. Nickname which the remote contact sets. This can change anytime and 
> libpurple should notify the UI about it.

This is what we are calling the "public" alias that the user is setting 
about himself, which we cannot affect directly.  I personally don't want 
to ever see this in a buddy list because of how it's used in the context 
of MSN. :)

> 2. A private alias for a remote contact, which can be stored on the 
> server. Of course this is only valid for protocols, which support such a 
> feature. For protocols which allow more than one login, this could also 
> change anytime, for others only during connecting (as you could have 
> logged in with another client in the meantime and changed that alias).

This is what we are calling "private."  We set this to remember who 
someone is as a "label" on the buddy.

> 3. The private alias of libpurple. This one is never stored on the 
> server and should therfore only change when the UI requests a change. 
> Maybe you could offer a callback for that too, so the UI can be sure 
> that the requested change has actually happend.

3 is the same thing as 2 in our implementation of this concept.  In the 
case of libpurple, if possible, when we alias a contact, we want to 
store that alias on the server and then use that alias locally to 
identify the user visually.  If it is ever changed by another concurrent 
client, we want to update our knowledge of that alias.  We are forced to 
store it locally because not all protocols implement storage of private 
aliases and we need to support aliasing in a generic way across all 
protocols.

In the case of AIM, if you alias a buddy, when you log into your account 
on any other copy of Pidgin or any other client that supports receiving 
the "private" alias, that name will show up in your buddy list, and 
libpurple will learn it as your "private" alias for that buddy.

This is reasonable, at least in my opinion, because a screen name is a 
personal account intended for use by a single person, and there is no 
risk of aliasing preferences of other people conflicting with those of 
the owner. Storing the private alias we set back to the server whenever 
possible allows a user to see the same names no matter where he signs on 
with his account, even if he has never done so before, and to push those 
names back to the server and have them kept in sync universally.

Hopefully that clears it up for you.

Kevin

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 252 bytes
Desc: OpenPGP digital signature
URL: <http://pidgin.im/pipermail/devel/attachments/20080229/e287a230/attachment.sig>


More information about the Devel mailing list