Page 1 of 1

[REQUEST] Server side ignore channel events (join,part,quit,etc)

Posted: Thu Aug 24, 2017 9:48 pm
by HeXiLeD
The purpose of this module is a server side implementation of what most irc clients do to ignore channel events.

Some examples: HexChat
For all channels:

Code: Select all

Settings → Preferences → General → Check "Hide join and part messages"
For a single channel:

Code: Select all

left-hand window list → right-click the channel → Settings → Check "Hide join/part messages"
Irssi:

Code: Select all

/ignore #channel MODES JOINS PARTS QUITS
weechat:

Code: Select all

/filter add irc_smart * irc_smart_filter *
more examples here

Events to be ignored: join, part, quit, modes, kicks & bans, etc. Very much every except except topic changes, /me and or /ame and those annoying aways that people sometimes use. (let me know if I forgot any)

Initial idea is be a module that the user will load with a specific flag and then the user will not be presented with these notice-events instead of having to type code into the client.

Although I though about the new mode to be loaded and be in effect in all channels by default, ideally the new mode may be better if is set along with the channel that we want to ignore the events.

Example: /umode +y #chan1 #chan2

This type of idea should be a default feature at some point.

A perfect situation would be /umode +y would set it active for all channels by default but if the user specifies channels, then it is only in effect for those specific channels.

Second part of this idea is the mode to be set by the channel operator such as /mode +Y which will override the user mode whatever it may be. Basically 2 ways to control the event_filter.c

This must be taken in mind:
Server side url tittle fetcher (url tittler type)

Re: [REQUEST] Server side ignore channel events (join,part,quit,etc)

Posted: Fri Aug 25, 2017 6:39 pm
by Gottem
You can't, really. JOIN/PART/QUIT/etc is how clients know who is in what channels. If clients themselves hide it, they still got the message so they still know that X just joined #y and parted #z. Simply not propagating those (as you're proposing) would result in massive desyncs all around.

I advise you to check out delayjoin (channel mode +D) instead. #unreal-support is using it so that should give you a general idea of what it does. It's similar to what you're proposing but it solves (part of) the desync by JOINing them once they speak.

Also, why would you wanna hide all those events anyways?

Re: [REQUEST] Server side ignore channel events (join,part,quit,etc)

Posted: Sat Aug 26, 2017 12:20 pm
by HeXiLeD
After posting this I even thought about the module having a small configuration file to allow the specification of what to hide such as just joins, part & quits and not modes set by operators if intended.

The reason to at least hide joins, part & quits comes handy for large channels where people join part and in leave with so much frequency that ends up by messing the text of those speaking and almost looking like spam.

I did consider mode +D which kind of addresses part of the situation but has one downside to some of us, because it will always show less users on the channel list than what the number of people in it actually is. This in turn makes some people thinking that the channel is dead.

If the channel list always displayed the real number of users in the channel for everyone, then mode +D would be a lot nicer. I wonder if it can be done.

Correct me if i am wrong but for example, when I join a +D channel i see all the users there in the channel list, but they don't see me until I speak which causes the impression that no one visits the channel.
Quits & parts are still seen after the user speaks.

Re: [REQUEST] Server side ignore channel events (join,part,quit,etc)

Posted: Sat Aug 26, 2017 12:39 pm
by Gottem
HeXiLeD wrote: Sat Aug 26, 2017 12:20 pm If the channel list always displayed the real number of users in the channel for everyone
Well you can't, that's the whole issue. ;]

Also, +D makes it so that when you join you'll see anyone who has said something up till now. If you get chanops or higher (iirc) you'll always see everyone.