ircv3 / ircv3-ideas

45 stars 3 forks source link

IGNORE command #24

Open derfalx opened 6 years ago

derfalx commented 6 years ago

It would be nice to have an IGNORE command within the IRC protocol, to block messages from specified nicks. This way the clientside ignoring commands would become unnecessary. Also it would make things easier for people who often work from different clients.

I would suggest a command like: /ignore nick(!user)?(@host)? user and host are optional and wildcard use should be possible (similar to the ban command)

SadieCat commented 6 years ago

InspIRCd already supports something like this: /SILENCE [+|-]<mask> <flags>

I think UnrealIRCd might also support this albeit without the flags.

derfalx commented 6 years ago

But like you said, currently it's depending on the used IRCd and therefore such a functionality is not guaranteed nor it's the same on all IRCds. For users who are not as familiar with the IRC ecosystem it's hard to check which IRCd is running and which command is needed. A protocol-wide command would strike-out this problem

jwheare commented 6 years ago

There’s already an ISUPPORT token to indicate SILENCE support so clients can automatically detect it for their users and present a UI rather than them having to know about it directly. https://tools.ietf.org/html/draft-hardy-irc-isupport-00#section-4.17

It’s probably worth getting some proper documentation of the command standardised though.

derfalx commented 6 years ago

Is this already part of the protocol itself, or is it still a draft?

jwheare commented 6 years ago

Most things in IRC are still drafts, including the original RFCs. ISUPPORT is one of the more widely supported drafts, so yeah it's pretty reliable.

derfalx commented 6 years ago

Does somebody know where exactly the SILENCE/ IGNORE command is defined?

DanielOaks commented 6 years ago

@derfalx there's no cross-platform definition but here's the InspIRCd one: https://github.com/inspircd/inspircd/blob/master/docs/conf/helpop-full.conf.example#L121

And the Unreal definition: https://github.com/unrealircd/unrealircd/blob/unreal40/doc/conf/help/help.conf#L717

Doesn't include numerics and etc, but running tests against running insp/unreal servers (or looking at the source code) should reveal those.

derfalx commented 6 years ago

Thanks @DanielOaks. But wouldn't it then be nice to standardize these commands? The base ISUPPORT token could be used to build upon.

jesopo commented 6 years ago

This should definitely be /SILENCE not /IGNORE to avoid command-clash between client-side and server-side commands

GIJack commented 5 years ago

some IRC clients already implement the /ignore command. mIRC and hexchat know, I do.

It would be nice if it was part of the server/client spec and stored server side so your ignores were respected between clients.