This repository has been archived on 2022-11-26. You can view files and clone it, but cannot push or open issues or pull requests.
teemant-old/teemant.js
2016-09-23 12:47:12 +03:00

55 lines
1.9 KiB
JavaScript
Executable File

#!/usr/bin/env node
'use strict';
let express = require("express");
let path = require("path");
let sockio = require('socket.io');
let app = express();
let pubdir = path.join(__dirname+"/public");
let port = 8080;
let connections = {}
app.get("/", function(req, res){
res.sendFile(pubdir+"/index.html");
});
app.use(express.static(__dirname + '/public'));
let io = sockio.listen(app.listen(port, function() {
console.log("*** Listening on port " + port);
}));
io.sockets.on('connection', function (socket) {
console.log('clientID: '+socket.id+' connection: ', socket.request.connection._peername);
connections[socket.id] = {}
socket.on('disconnect', function() {
for (let d in connections[socket.id]) d.disconnect("Client exited");
delete connections[socket.id];
console.log('clientID: '+socket.id+' disconnect');
});
socket.on('irc_create', function(connectiondata) {
console.log(socket.id+" created irc connection: ", connectiondata);
socket.emit('act_client', {type: 'connect_message', data: "Attempting connection..", error: false});
setTimeout(function() {
console.log("fake connect");
socket.emit('act_client', {type: 'event_connect', address: connectiondata.server, network: "IcyNet", raw: connectiondata});
socket.emit('act_client', {type: 'server_message', messageType: "notice", server: connectiondata.server, to: connectiondata.server, from: null, message: "Connection established"});
}, 2000);
setTimeout(function() {
console.log("fake channel");
socket.emit('act_client', {type: 'event_join_channel', server: connectiondata.server, name: "#channel"});
// Spam the client with messages (for testing)
setInterval(function() {
socket.emit('act_client', {type: 'server_message', messageType: "privmsg", server: connectiondata.server, to: "#channel", from: "horse", message: "I like ponies"});
}, 1000);
}, 4000);
});
});