I am developping a patch to allow what Yahoo! IM calls "Stealth options" (a
mean to have a per buddy or per buddy group invisibility). As far as I know
also MSN 6 allows this feature and, needless to say, Jabber allows a
personalized presence message for every buddy.
Therefore I thought to add stealth support to Gaim core instead of
the Yahoo! plugin, but since I don't know well the code and the
architecture I need some help to find The Right Thing(tm) to do. Any
suggestions on how to implement this?
My idea is to deal with stealth using some sort marshal functions
each one deals with a stealth behaviour. Yahoo! IM "Stealth options" are
braindead IMHO[#], so I don't want to stick with these standard options,
like it's done with the statuses. Besides it would be interesting to allow
plugins to define their own behaviours like "be invisible to contacts who
are invisible to you"[*] or "be invisible to coworkers after work", etc.
Piotr P. Karwasz
[#] They are three: 'online'---you are visible to the contact, lasts one
session, requires global status to be 'invisible'.
'offline'---you are invisible to the contact, lasts one session.
'permanently'---you are invisible to the contact, lasts forever.
I already have a friend that must change my stealth status to 'online'
whenever she connects, while being invisible to most of the others.
What I propose as a standard is:
'visible'---you are visible to the contact, lasts forever.
'neutral'---stick with the global status.
'invisible'---you are invisible to the contact, lasts forever.
[*] By this I don't mean to crack the servers, but to be invisible to
everyone except those who I can see. I already submitted a primitive patch
to do this:
but it's already obsolete and not at all configurable, so I try to write
Jabber ID = piotr.karwasz@...
Yahoo! ID = schopenhauer17