No description
Find a file
Mattias Erming 164bf55e98 Cleaning up
2014-06-19 00:27:05 +02:00
client Update favico.js 2014-06-18 17:25:11 +02:00
lib Cleaning up 2014-06-19 00:27:05 +02:00
logs Add 'logs/' folder 2014-06-19 00:22:07 +02:00
screenshots Updated screenshots 2014-06-16 00:09:07 +02:00
.gitignore Added logging 2014-06-19 00:17:25 +02:00
config.js Added logging 2014-06-19 00:17:25 +02:00
Gruntfile.js Remove bower 2014-06-17 18:20:22 +02:00
index.js Release 0.4.0 2014-06-15 19:35:43 +02:00
package.json Added grunt 2014-06-17 15:38:08 +02:00
README.md Update README 2014-06-18 12:11:51 +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.

Contributing

Shout is open source and open for contributions. Any sort of help is appreciated!
Come join #shout-irc on Freenode!

Screenshots

And also..
Mobile interface

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
    sudo npm install

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

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

Commands

These are the commands currently implemented:

  • /ame
  • /amsg
  • /close
  • /connect
  • /deop
  • /devoice
  • /disconnect
  • /invite
  • /join
  • /kick
  • /leave
  • /me
  • /mode
  • /msg
  • /nick
  • /notice
  • /op
  • /part
  • /partall
  • /query
  • /quit
  • /raw
  • /say
  • /send
  • /server
  • /slap
  • /topic
  • /voice
  • /whoami
  • /whois

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: "",
    network: "",
    count: 0,
    messages: [],
    users: [],
  }
});

// Event: "messages"
// Sent after the server receives a "fetch" request from client.
socket.emit("messages", {
  id: 0,
  msg: []
});

// 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.