Hard Lounge - IRCv5 Compliant Webchat Client https://webchat.supernets.org
Go to file
2014-04-29 15:01:30 +02:00
client Added user modes. Close #7 2014-04-29 15:01:30 +02:00
lib Added user modes. Close #7 2014-04-29 15:01:30 +02:00
.gitignore Removing slate-irc submodule 2014-04-22 20:26:05 +02:00
config.js Added port to config 2014-04-26 19:44:23 +02:00
index.js Added config and auto-connect 2014-04-06 00:01:19 +02:00
package.json Added user modes. Close #7 2014-04-29 15:01:30 +02:00
README.md Added license 2014-04-28 13:10:06 +02:00

shout

Run your IRC client on a server and access it from the web browser. This gives you a persistent connection and allows you to chat from multiple devices at the same time.

Commands

These are the commands currently implemented:

  • /connect
  • /deop
  • /devoice
  • /disconnect
  • /join
  • /kick
  • /leave
  • /mode
  • /msg
  • /nick
  • /op
  • /part
  • /query
  • /quit
  • /server
  • /topic
  • /voice
  • /whois

Install

  1. Install Node.js and NPM
    sudo apt-get -y install nodejs npm

  2. Clone the project from GitHub
    git clone http://github.com/erming/shout

  3. Open folder
    cd shout/

  4. Install Node packages
    npm install

  5. Run the server
    npm start or node index.js

  6. Open your browser
    http://localhost:9000

Events

Using Socket.IO
Events sent from the server to the browser:

// Event: "join"
// Sent when joining a new channel/query.
socket.emit("join", {
  id: 0,
  chan: {
    id: 0,
    name: "",
    type: "",
    messages: [],
    users: [],
  }
});

// Event: "msg"
// Sent when receiving a message.
socket.emit("msg", {
  id: 0,
  msg: {
    time: "",
    type: "",
    from: "",
    text: "",
  }
});

// Event: "networks"
// Sent upon connecting to the server.
socket.emit("networks", {
  networks: [{
    id: 0,
    host: "",
    nick: "",
    channels: [],
  }]
});

// Event: "part"
// Sent when leaving a channel/query.
socket.emit("part", {
  id: 0
});

// Event: "users"
// Sent whenever the list of users changes.
socket.emit("users", {
  id: 0,
  users: [{
    mode: "",
    name: "",
  }]
});

License

Available under the MIT license.