robotty/twitch-irc-rs

Set Capabilities

Chronophylos opened this issue · 6 comments

I'd like to set irc capabilites without having to send the CAP message when connecting to the irc. Specifically I want the twitch.tv/membership capability.

What is your use case of the membership capability? I'm asking because this might be a case of an XY problem.

This library doesn't request the membership capability because it is notoriously unreliable and completely stops working in very large chats, making it unfit for most use cases that I can think of - however I'm interested in hearing your use case.

I want to monitor who joins a channel. The channel in question in rather small which is why the JOIN messages should be reliable.

I usually see this as being disabled by default, but with the option to enable it, like for example with the crate twitchchat, this behaviour can be enabled if you call .enable_all_capabilities() on the config builder. I see some javascript libraries use a list of capabilities to achieve that same functionality as well...

My primary use case would be to monitor who joins channels that I moderate, so the bot can preventively ban them if the user is part of a personal list, which contains a lot of people that do hate raid, that are bot accounts, and such.

Maybe if we add the option, with the warning that it may be unstable on bigger channels, which is why its disabled by default, could be a good comprimise

What is your use case of the membership capability? I'm asking because this might be a case of an XY problem.

This library doesn't request the membership capability because it is notoriously unreliable and completely stops working in very large chats, making it unfit for most use cases that I can think of - however I'm interested in hearing your use case.

With twitch.tv/membership you can get the list of users in the chat after you join the channel
https://dev.twitch.tv/docs/irc/capabilities

What is your use case of the membership capability? I'm asking because this might be a case of an XY problem.
This library doesn't request the membership capability because it is notoriously unreliable and completely stops working in very large chats, making it unfit for most use cases that I can think of - however I'm interested in hearing your use case.

With twitch.tv/membership you can get the list of users in the chat after you join the channel https://dev.twitch.tv/docs/irc/capabilities

As I said, this is unreliable, using https://tmi.twitch.tv/group/user/usernamehere/chatters is generally preferable, because the twitch.tv/membership capability stops working in larger chats. You can poll this API endpoint regularly and with that compute who joined and left the chat.

Is there anything else that you wanted to add, because what you said as far as I can tell has already been said in the prior discussion? I‘m asking because I don‘t want to miss a valid additional discussion point.

What is your use case of the membership capability? I'm asking because this might be a case of an XY problem.
This library doesn't request the membership capability because it is notoriously unreliable and completely stops working in very large chats, making it unfit for most use cases that I can think of - however I'm interested in hearing your use case.

With twitch.tv/membership you can get the list of users in the chat after you join the channel https://dev.twitch.tv/docs/irc/capabilities

As I said, this is unreliable, using https://tmi.twitch.tv/group/user/usernamehere/chatters is generally preferable, because the twitch.tv/membership capability stops working in larger chats. You can poll this API endpoint regularly and with that compute who joined and left the chat.

Is there anything else that you wanted to add, because what you said as far as I can tell has already been said in the prior discussion? I‘m asking because I don‘t want to miss a valid additional discussion point.

You are right, I didn't know that it doesn't work in chat having less than 1k users