[PATCH] Add serv_got_private_alias
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
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.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 252 bytes
Desc: OpenPGP digital signature
More information about the Devel