View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0004221||unreal||ircd||public||2013-06-08 03:39||2019-10-14 14:58|
|Target Version||Fixed in Version||5.0.0-alpha1|
|Summary||0004221: Feed previous text to users on channel join|
|Description||There are various situations which I have missed out on conversations because I got knocked offline or had to reboot...or maybe I'm just curious about what people were talking about when I connect.|
I propose caching the most recent 10-20 lines of text in a channel and then when a user joins, send those to him/her.
This would of course need to be an optional setting for admins.
I was a part of an online community that had built-in chat rooms and it had this feature. I found it to be very helpful because you could dive right into whatever the conversation was.
|Tags||No tags attached.|
|3rd party modules|
From a person view: I don't like this idea. In the 2 scenarios offered, the former case the user can simply ask what was missed. Sometimes that's 0 lines, sometimes its more than 20 lines. In the latter scenario, it is none of the users business what was said right before they join. I'm not trying to be rude, but it's simply not. The user wasn't there and its all too possible to say something that the user doesn't need to know that the ircd would end up exposing.
From a developers view: this is too much work for too little gain. First and foremost, it should require logging all channel traffic for all channels. Let's also not forget logging user connections because you know if someone wants to know what was said before they arrive, they will likely want joins/parts logged too. There is also the issue of increased server traffic, CPU usage and RAM. In the most efficient setup, its still possible that the local server won't have any logged traffic if the user connects on a server that didn't previously have users in that channel so there will be no log to display even on an active channel.
That seems like a lot of work, resource usage and potential drama for a feature that won't work 100% of the time.
||If you want this you should just use ZNC, it can hold a buffer of x amount of lines per channel for you while you're disconnected from bouncer.|
Something like this has been discussed in the past. InspIRCd has this feature (I believe it's channel mode H).
One thing that needs to be considered before adding a feature or module in an official sense would be the legality issues concerning user privacy. Even though channels are "public" there are tons of complexities that need to be considered and worked out (such as how to notify users, there should be a way for people to opt out, etc). You also need to consider that people who may not normally have access to the information or "presence" in the channel may still be able to obtain details (accessing memory/files where logs are stored, joining/parting every few minutes to get a log without being there, etc).
I think this is one of those things that would be better done in a module, so channel owners can opt-in to having the channel history stored and replayed.
If something like this is eventually created as an official feature/module, it would need:
* A way to notify joining users that the channel is logged and the last XXX lines will be displayed to joining users.
* A way for users to opt-out of having their text included in conversation logs.
* A way to store lines efficiently in memory.
* A way to transmit them to clients in a "safe" manner to avoid triggering OMGFLOODACTION for the script kiddies or those who feel the need to run "protection" scripts.
* A way to efficiently handle server joins to combine and trim down stored data.
* This should be an owner-only mode.
* I would recommend giving the mode a parameter, like +H <lines> so channel owners can specify the lines.
* There should be a configurable cap for the mode in either "lines" or "bytes"
Done in 5.0.0-alpha1, available via channel mode +H. The UnrealIRCd 5 release notes (currently alpha) contain more information.
|2013-06-08 03:39||Caspy7||New Issue|
|2013-06-26 14:29||katsklaw||Note Added: 0017718|
|2013-08-05 02:17||wolfwood||Note Added: 0017739|
|2013-08-15 21:17||Stealth||Note Added: 0017753|
|2013-08-15 21:17||Stealth||Status||new => feedback|
|2014-03-14 01:14||peterkingalexander||Issue cloned: 0004289|
|2019-10-14 14:58||syzop||Assigned To||=> syzop|
|2019-10-14 14:58||syzop||Status||feedback => resolved|
|2019-10-14 14:58||syzop||Resolution||open => fixed|
|2019-10-14 14:58||syzop||Fixed in Version||=> 5.0.0-alpha1|
|2019-10-14 14:58||syzop||Note Added: 0020965|