split into files

This commit is contained in:
NatureFreshMilk 2019-09-03 11:47:57 +02:00
parent de1d26fce3
commit c36969c68e
7 changed files with 89 additions and 63 deletions

16
client_map.js Normal file
View File

@ -0,0 +1,16 @@
const client = require('./irc_client');
const channel_map = require("./channel_map');
var channels = {}; // name -> channelObj
client.on('registered', function() {
Object.keys(channel_map).forEach(name => {
var channel = client.channel("#" + name);
channel.join();
channel.say(`beerchat_proxy connected! ingame-channel: ${name}`);
channels[name] = channel;
});
});
module.exports = channels;

7
src/app.js Normal file
View File

@ -0,0 +1,7 @@
const express = require('express')
const app = express();
app.use(express.static('public'));
app.disable('etag');
module.exports = app;

10
src/channel_map.js Normal file
View File

@ -0,0 +1,10 @@
// TODO: config
// ingame -> irc
var channel_map = {
"main": "pandorabox",
"de": "pandorabox-de",
"mod": "pandorabox-mod"
};
module.exports = channel_map;

View File

@ -1,66 +1,6 @@
const express = require('express')
const bodyParser = require('body-parser')
const jsonParser = bodyParser.json()
const app = require("./app");
const IRC = require('irc-framework');
const app = express();
app.use(express.static('public'));
app.disable('etag');
const IRC_HOST = process.env.IRC_HOST
const IRC_USERNAME = process.env.IRC_USERNAME
const IRC_PASSWORD = process.env.IRC_PASSWORD
const client = new IRC.Client();
client.connect({
host: IRC_HOST,
port: 6667,
nick: IRC_USERNAME,
auto_reconnect: true
});
var channels = {}; // name -> channelObj
// TODO: config
var channel_map = {
"main": "pandorabox",
"de": "pandorabox-de",
"mod": "pandorabox-mod"
};
client.on('registered', function() {
Object.keys(channel_map).forEach(name => {
var channel = client.channel("#" + name);
channel.join();
channel.say(`beerchat_proxy connected! ingame-channel: ${name}`);
channels[name] = channel;
});
});
// mod -> web
app.post('/api/message', jsonParser, function(req, res){
// req.body = { channel = "", playername = "", message = "" }
if (!req.body.channel)
return;
const channel = channels[req.body.channel];
if (channel) {
channel.say(
(req.body.playername ? `<${req.body.playername}> ` : "") +
req.body.message
);
}
res.end();
});
client.on('message', function(event) {
// event = { message }
});
// TODO: web -> mod
require("/rx.js");
require("/tx.js");
app.listen(8080, () => console.log('Listening on http://127.0.0.1:8080'));

16
src/irc_client.js Normal file
View File

@ -0,0 +1,16 @@
const IRC = require('irc-framework');
const IRC_HOST = process.env.IRC_HOST
const IRC_USERNAME = process.env.IRC_USERNAME
const IRC_PASSWORD = process.env.IRC_PASSWORD
const client = new IRC.Client();
client.connect({
host: IRC_HOST,
port: 6667,
nick: IRC_USERNAME,
auto_reconnect: true
});
module.exports = client

24
src/rx.js Normal file
View File

@ -0,0 +1,24 @@
const bodyParser = require('body-parser')
const jsonParser = bodyParser.json()
const app = require("./app");
const client_map = require("./client_map");
// mod -> web
app.post('/', jsonParser, function(req, res){
// req.body = { channel = "", playername = "", message = "" }
if (!req.body.channel)
return;
const channel = client_map[req.body.channel];
if (channel) {
channel.say(
(req.body.playername ? `<${req.body.playername}> ` : "") +
req.body.message
);
}
res.end();
});

13
src/tx.js Normal file
View File

@ -0,0 +1,13 @@
const app = require("./app");
const client = require('./irc_client');
client.on('message', function(event) {
// event = { message }
console.log("message", event);//XXX
});
// web -> mod
app.get('/', function(req, res){
setTimeout(() => res.json({}), 10000)
})