Closed digitalcircuit closed 6 years ago
Thanks for such a detailed report, this really helped to make this easy. I actually thought that we were already doing this because of:
So /away Food will set your state to "Out to lunch" on your MSN connection, and for most other connections the default, "Away" will be chosen.
What I didn't realize is that 98f3893 changed that default to 'online' resulting in this weird behavior.
Please reopen if anything is missing.
I had misread the code, and with putting idle
to the end of the list, almost everything works as expected!
/away Some message
- success
Some message
(perhaps some day Discord will officially allow arbitrary status messages...)/away Online - test
- success
Online - test
/away Not here right now, working online
- success
Not here right now, working online
/away Busy: working on world domination
- failure
dnd
, likewise with other keyword aliasesOnly (minor!) issue I see is not supporting the alternative documented Bitlbee keywords, too. So far in the help guide, this is busy
for dnd
and hidden
for invisible
.
If desired, the code for nogaim.c
has a longer list:
static char *imc_away_alias_list[8][5] =
{
{ "Away from computer", "Away", "Extended away", NULL },
{ "NA", "N/A", "Not available", NULL },
{ "Busy", "Do not disturb", "DND", "Occupied", NULL },
{ "Be right back", "BRB", NULL },
{ "On the phone", "Phone", "On phone", NULL },
{ "Out to lunch", "Lunch", "Food", NULL },
{ "Invisible", "Hidden" },
{ NULL }
};
Edit: Only the ones that apply to Discord's API, of course. Discord doesn't have a food
presence.
Glad to have helped, and thanks for the quick response! I can move adding the aliases to another issue if desired.
Aside, for whatever reason, GitHub is not offering me an option to re-open the issue. I know I've seen that button in the past...
In brief
/away
asidle
unless some special keyword is set/away
to match expectations of setting oneself, well, Away/away
on client detach (Quassel, ZNC, etc) to properly set "not here"/away
keywordsRationale
Most IRC clients and networks allow one to mark themselves as unavailable using
/away [some message]
. Unfortunately, IRC does not yet have a way to use other presence levels supported by different protocols.Bitlbee's approach is to make use of keywords in away messages, mapping them to lower-level protocol presence states. E.g.
/away Busy - Filing issues on GitHub
would map to Discord'sdnd
and set the status message toFiling issues on GitHub.
(For Discord, if use of
/away
is needed for setting status message, too,Online - A message
could map toonline
/not AFK with status message ofA message
.)Bitlbee also handles
/away
without any matching keywords to mark oneself as away. This matches assumptions made by clients that automatically set away messages on idle or disconnect from a bouncer.bitlbee-discord should support these keywords and follow Bitlbee's behavior to reduce confusion, avoid learning new keywords, and avoid interfering with the assumptions made by IRC clients/bouncers.
Additional
Bitlbee documentation on Away
Bold emphasis added
If needed, this issue will be updated with more details later on.