You're Invited: Meet the Socket team at BSidesSF and RSAC - April 27 - May 1.RSVP
Socket
Sign inDemoInstall
Socket

twitchclient

Package Overview
Dependencies
Maintainers
1
Versions
50
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

twitchclient

Lightweight (2kb gzipped) Twitch client the Browser to connect to the chat and interact with it. Can also do some Api calls like following/unfollowing channels.

0.0.29
latest
Source
npm
Version published
Weekly downloads
21
2000%
Maintainers
1
Weekly downloads
 
Created
Source

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

<html>
<head>
    <!-- <script src="https://unpkg.com/twitchclient@0.0.7/lib/twitchclient.browser.js"></script> -->
    <script src="https://unpkg.com/twitchclient/lib/twitchclient.browser.js"></script>
    <script>
        let twitchClient = new TwitchClient("gzipped", "fw7kd79xuzpjwu8qbl4c18we78fssd", true);
        twitchClient.joinChannel("forsen");

        twitch.on("LOG", log => {
            console.log(log);
        })

        twitch.on("PRIVMSG", privmsg => {
            document.querySelector("body").innerHTML += `<p>[${privmsg.channel}] ${privmsg.display_name}: ${privmsg.msg_html}</p>`;
        })
    </script>
</head>
<body>
</body>
</html>

Index

  • Methods
  • Events

TwitchClient()

Creates a new TwitchClient().

let twitchClient = new TwitchClient(); // Anon
let twitchClient = new 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.joinChannel("forsen")

leaveChannel()

Leaves a Twitch channel.

TwitchClient.leaveChannel("forsen")

parseMessage()

Parses a raw IRC message to an object.

TwitchClient.parseMessage("@badge-info=subscriber/1;badges=subscriber/0;color=#1E90FF;dis...")

sendMessage()

Sends a message to a specific channel.

TwitchClient.sendMessage("forsen", "TriHard")

Events

on("LOG")

This event is emitted when something happens what could be important for debugging.

TwitchClient.on("LOG", log => { . . .});

on("PRIVMSG")

This event is emitted when a message has been sent.

TwitchClient.on("PRIVMSG", privmsg => { . . .});

on("CLEARCHAT")

This event is emitted when a user gets timeouted or banned.

TwitchClient.on("CLEARCHAT", clearchat => { . . .});

on("CLEARMSG")

This event is emitted when a single message got deleted via /delete .

TwitchClient.on("CLEARMSG", clearmsg => { . . .});

on("GLOBALUSERSTATE")

This event is emitted when a message has been sent.

TwitchClient.on("GLOBALUSERSTATE", globaluserstate => { . . .});

on("ROOMSTATE")

This event is emitted when a user joins the chat or room setting got changed.

TwitchClient.on("ROOMSTATE", roomstate => { . . .});

on("USERNOTICE")

This event is emitted when any of several events occurs.

TwitchClient.on("USERNOTICE", usernotice => { . . .});

on("USERSTATE")

This event is emitted when a user joins a channel or sends a PRIVMSG to a channel.

TwitchClient.on("USERSTATE", userstate => { . . .});

License

MIT

Keywords

twitch

FAQs

Package last updated on 25 Sep 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts