TwitchClient()
Lightweight 2.5kb gzipped Twitch client for the Browser to connect to the chat and interact with it. Supports third party emotes from BetterTTV & FrankerFaceZ.
Installation
npm i twitchclient
Message Object
let message = {
raw: '@badge-info=subscriber/1;badges=subscriber/0;color=#1E90FF;display-name=BDJoe_;emotes=120232:13-19;flags=;id=5a253ad7-7e42-4021-a364-44d0c9af7821;mod=0;room-id=22484632;subscriber=1;tmi-sent-ts=1568822980541;turbo=0;user-id=453114423;user-type= :bdjoe_!bdjoe_@bdjoe_.tmi.twitch.tv PRIVMSG #forsen :TriHard Kapp forsenPls forsenPls test',
msg_type: 'PRIVMSG',
modified_irc: '@badge-info=subscriber/1;badges=subscriber/0;color=#1E90FF;display-name=BDJoe_;emotes=120232:13-19;flags=;id=5a253ad7-7e42-4021-a364-44d0c9af7821;mod=0;room-id=22484632;subscriber=1;tmi-sent-ts=1568822980541;turbo=0;user-id=453114423;user-type=;msg-before=bdjoe_!bdjoe_@bdjoe_.tmi.twitch.tv;msg-type=PRIVMSG;channel=#forsen;msg-content=TriHard Kapp forsenPls forsenPls test',
badge_info: 'subscriber/1',
badges: 'subscriber/0',
color: '#1E90FF',
display_name: 'BDJoe_',
emotes: '120232:13-19',
flags: '',
id: '5a253ad7-7e42-4021-a364-44d0c9af7821',
mod: '0',
room_id: '22484632',
subscriber: '1',
tmi_sent_ts: '1568822980541',
turbo: '0',
user_id: '453114423',
user_type: '',
msg_before: 'bdjoe_!bdjoe_@bdjoe_.tmi.twitch.tv',
channel: '#forsen',
msg_content: 'TriHard Kapp forsenPls forsenPls test',
parsed_emotes: {"Twitch":[{"name":"TriHard","urls":["https://static-cdn.jtvnw.net/emoticons/v1/120232/1.0","https://static-cdn.jtvnw.net/emoticons/v1/120232/2.0","https://static-cdn.jtvnw.net/emoticons/v1/120232/3.0"],"host":"Twitch","indexes":"0-6,"}],"BTTV":[{"name":"forsenPls","urls":["https://cdn.betterttv.net/emote/55e2096ea6fa8b261f81b12a/1x","https://cdn.betterttv.net/emote/55e2096ea6fa8b261f81b12a/2x","https://cdn.betterttv.net/emote/55e2096ea6fa8b261f81b12a/3x"],"host":"BTTV","indexes":"13-23,23-33,"}],"FFZ":[{"name":"Kapp","urls":["https://cdn.frankerfacez.com/93d93138f176a98e4b09c81e8de56372.PNG","https://cdn.frankerfacez.com/6e50ed6052f4398ffc67a92ee782d79d.PNG","https://cdn.frankerfacez.com/f92ee27b25b813e2618b0d34a96402b5.png"],"host":"FFZ","indexes":"8-13,"}]},
msg_html: '<img src=\"https://static-cdn.jtvnw.net/emoticons/v1/120232/1.0\"> <img src=\"https://cdn.frankerfacez.com/93d93138f176a98e4b09c81e8de56372.PNG\"> <img src=\"https://cdn.betterttv.net/emote/55e2096ea6fa8b261f81b12a/1x\"> <img src=\"https://cdn.betterttv.net/emote/55e2096ea6fa8b261f81b12a/1x\"> test ',
}
Browser Example
<!-- <script src="https://unpkg.com/twitchclient@0.0.7/lib/twitchclient.browser.js"></script> -->
Index
TwitchClient()
Creates a new TwitchClient().
let twitchClient = ; // Anonlet twitchClient = "forsen" "oauthtokenwithscope" true; // Username - OAuth Token - Third party emote parsing// You can get the OAuth token from https://twitchapps.com/tmi/ for example or create your own https://dev.twitch.tv/docs/authentication/getting-tokens-oauth/
Methods
joinChannel()
Joins a Twitch channel.
TwitchClient
leaveChannel()
Leaves a Twitch channel.
TwitchClient
parseMessage()
Parses a raw IRC message to an object.
TwitchClient
sendMessage()
Sends a message to a specific channel.
TwitchClient
Events
on("LOG")
This event is emitted when something happens what could be important for debugging.
TwitchClient;
on("PRIVMSG")
This event is emitted when a message has been sent.
TwitchClient;
on("CLEARCHAT")
This event is emitted when a user gets timeouted or banned.
TwitchClient;
on("CLEARMSG")
This event is emitted when a single message got deleted via /delete .
TwitchClient;
on("GLOBALUSERSTATE")
This event is emitted when a message has been sent.
TwitchClient;
on("ROOMSTATE")
This event is emitted when a user joins the chat or room setting got changed.
TwitchClient;
on("USERNOTICE")
This event is emitted when any of several events occurs.
TwitchClient;
on("USERSTATE")
This event is emitted when a user joins a channel or sends a PRIVMSG to a channel.
TwitchClient;