Team-TAU / tau

TAU- Twitch API Unifier, a containerized relay/proxy to unify the WebHook- and WebSocket-based real-time Twitch APIs under a single (local) WebSocket connection.
MIT License
149 stars 38 forks source link

[FEAT] add chat.message from EventSub #138

Open matthewbrandt opened 7 months ago

matthewbrandt commented 7 months ago

Is your feature request related to a problem? Please describe. Twitch now provides chat messages as a subscription type via EventSub.

Describe the solution you'd like When a chat message in the monitored channel is sent, EventSub parses the request through to TAU.

Describe alternatives you've considered IRC is clunky in comparison and data formats are incompatible with other EventSub data.

Additional context https://dev.twitch.tv/docs/eventsub/eventsub-subscription-types/#channelchatmessage

FiniteSingularity commented 7 months ago

WOW!

This is actually a game changer, as it would let me completely stop listening to IRC chat altogether (and thus eliminate the IRC service that keeps breaking and silently disconnecting). Some of the big Pros-

  1. This gives us channel point redemption messages WITH EMOTES.
  2. It gives us cheers WITH CHEERMOTES.
  3. Badge info is readily available.
  4. Combined with the helix chat message/announce, chatbot integration will be so much easier.

There is one big gotcha however- the primary one being that incoming connections on ngrok (For people who run webhooks locally) is rate limited and even a somewhat active chat could cause rate issues. So I'll definitely need to look into transferring over to using websockets for local connections (which hopefully wont come with the same annoying disconnect issues that the chat websocket can cause).