twitchintheshell.com | @twitchshell | changelog
The code is currently running on our stream, feel free to drop by and say hi!
This is the user interaction backbone of our back-end. It is built to take inputs from a Twitch channel's chat, and send them to a QEMU virtual machine (if they are appropriate, see map.json for that).
Specifically, it is accomplished with a multiprocess system, comprised of 5 functional portions:
- client_console: Shows the parsed votes from chat.
- client_status: Shows the results of each voting period.
- client_vnc: Runs the VNC client that connects to QEMU to act as the VM's display.
- twitch_master: Connects to twitch chat, and processes messages in chat. The real meat of the code base as it stands.
- qemu: Starts the QEMU process and restarts it if it dies.
Create a file with name config.json
in the root directory of the source code and content-structure as the following:
{
"nick": "my_twitch_username",
"password": "oauth:6vgm8nZzzZ1337mine"
}
Then you can launch the files qemu.js, client_console.js, client_status.js and twitch_master.js.
If you're running this on a Mac, npm will not be able to install zmq without first running:
brew install pkg-config icu4c
and then:
brew link icu4c --force
Please open a pull request as/when you see fit. We will review it and then act accordingly. If you want to contribute many lines of code at once, and more importantly, if they are addressing crucial parts of the code such as input parsing please open up an issue first for discussion. Do not proceed into writing what you got in mind because it might get turned down. Also, stick to the coding style you see.
GNU GPL v3 or later. Please check the LICENSE file for more information.