All Projects → paramander → elm-twitch-chat

paramander / elm-twitch-chat

Licence: MIT license
Elm powered Twitch chat using WebSockets

Programming Languages

elm
856 projects
javascript
184084 projects - #8 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to elm-twitch-chat

Streamlink Twitch Gui
A multi platform Twitch.tv browser for Streamlink
Stars: ✭ 2,059 (+14607.14%)
Mutual labels:  twitch
Twire
Twire is an alternative and open source Twitch client for Android
Stars: ✭ 204 (+1357.14%)
Mutual labels:  twitch
Twitch
Interact with Twitch's API, chat, PubSub and subscribe to WebHooks.
Stars: ✭ 237 (+1592.86%)
Mutual labels:  twitch
Vscode Twitch Highlighter
This is a VS Code extension that will allow your Twitch chat to highlight a line of code via a command message. Example: `!line 8 server.js`. See master branch README.md for more details
Stars: ✭ 169 (+1107.14%)
Mutual labels:  twitch
Twitch Dl
CLI tool for downloading videos from Twitch.
Stars: ✭ 194 (+1285.71%)
Mutual labels:  twitch
Awesome Live Coding Streams
Stars: ✭ 216 (+1442.86%)
Mutual labels:  twitch
Visualizingtwitchcommunities
Graphing communities on Twitch.tv in a visually intuitive way
Stars: ✭ 150 (+971.43%)
Mutual labels:  twitch
Streamlabs Obs
Free and open source streaming software built on OBS and Electron.
Stars: ✭ 3,473 (+24707.14%)
Mutual labels:  twitch
Pajbot
Twitch moderation bot
Stars: ✭ 198 (+1314.29%)
Mutual labels:  twitch
Twitch Js
A community-centric, community-supported version of tmi.js
Stars: ✭ 225 (+1507.14%)
Mutual labels:  twitch
Pinpog
Ping-Pong-like game in Assembly that works without OS
Stars: ✭ 177 (+1164.29%)
Mutual labels:  twitch
Sogebot
sogeBot - Free Twitch Bot built on Node.js
Stars: ✭ 190 (+1257.14%)
Mutual labels:  twitch
All In One Customized Adblock List
An all-in-one adblock list that thoroughly blocks trackers, popup ads, ads, unwanted cookies, fake news, cookie warning messages, typosquatters, unwanted comment sections, crypto-coin mining, YouTube clutter, Twitter guff and social network hassles.
Stars: ✭ 217 (+1450%)
Mutual labels:  twitch
Chat Downloader
A simple tool used to retrieve chat messages from livestreams, videos, clips and past broadcasts. No authentication needed!
Stars: ✭ 160 (+1042.86%)
Mutual labels:  twitch
Twitch Hls Adblock
Block advertisements that are inserted in Twitch streams directly.
Stars: ✭ 242 (+1628.57%)
Mutual labels:  twitch
Streamwall
Display a mosaic of livestreams. Built for streaming.
Stars: ✭ 160 (+1042.86%)
Mutual labels:  twitch
Twitch4j
Modular Async/Sync/Reactive Twitch API Client / IRC Client
Stars: ✭ 209 (+1392.86%)
Mutual labels:  twitch
Cracking The Coding Interview Rust
Cracking the Coding Interview problem solutions in Rust
Stars: ✭ 246 (+1657.14%)
Mutual labels:  twitch
Gatsby Remark Embedder
Gatsby Remark plugin to embed well known services by their URL.
Stars: ✭ 245 (+1650%)
Mutual labels:  twitch
Transport Eta
Twitch streamed 🎥playground repo, README speaks to you.
Stars: ✭ 223 (+1492.86%)
Mutual labels:  twitch

Twitch Chat in Elm

This project was done in order to test whether Elm can be used to replace certain well established pieces of Javascript. One of these is the Twitch chat. Recently, Twitch has upgraded their chat servers to also support WebSockets.

Features

  • Receiving messages
  • Sending messages
  • Emotes
  • Subscriber badges
  • Turbo badges
  • Mod badges
  • Global mod badges
  • Admin badges
  • Staff badges
  • Broadcaster badges
  • Bits badges (wrong implementation, will have to use the new badges.twitch.tv endpoint)
  • Cheers
  • Resubscribe notices
  • Subscribe notices
  • Timeout/ban actions
  • /me actions
  • Emote picker
  • Viewer list
  • @ tagging

JSONP

The recommended way of consuming the Twitch API is JSONP. elm-lang/http has no way of using JSONP. That's why this project includes some Native Elm code to solve this.

Try it out

The whole setup is automated using npm. Make sure you have node > 4 and npm installed.

$ git clone https://gitlab.com/paramanders/elm-twitch-chat.git
$ cd elm-twitch-chat
$ npm install

If you haven't installed Elm globally yet, make sure to do so

$ npm install -g elm

And install this project's Elm dependencies using elm-github-install. This is needed, because elm-jsonp is downloaded that exposes Native modules, which can't be downloaded from the package server.

$ ./node_modules/.bin/elm-github-install

Serve locally

You can serve the application locally using Webpack. But first, you are required to enter your username, oauth token and the channel you want to connect to into your .env file. Just copy the example, and fill in your credentials:

cp .env.example .env

To get an oauth token, you can use https://twitchapps.com/tmi.

After inserting your username, oauth token and channel, run the command to serve the application on localhost:8000:

$ npm start

and it should look like this:

Preview

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].