function get_timestamp(): int
{
return Math.floor(Date.now()/1000);
}
async function main(): Promise<void>
{
var nm_irc = require("irc");
var _events: Array<any> = [];
var _users: Array<{name: string; role: string;}> = [];
var _client = null;
const server: lib_server.class_server = new lib_server.class_server(
7979,
(input: string) => {
const request: lib_http.type_request = lib_http.decode_request(input);
// process.stderr.write(JSON.stringify(request, undefined, "\t") + "\n");
const data_in: any = JSON.parse(request.body);
let data_out: any;
let error: (null | Error);
try {
switch (data_in["action"]) {
case "connect":
if (_client !== null) {
throw (new Error("already connected"));
}
else {
const client = new nm_irc.Client(
data_in["data"]["server"],
data_in["data"]["nickname"],
{
"channels": data_in["data"]["channels"],
"autoConnect": false,
}
);
client.addListener(
"message",
(from, to, message) => {
_events.push({
"timestamp": get_timestamp(),
"kind": "channel_message",
"data": {
"from": from,
"to": to,
"message": message,
}
});
}
);
client.addListener(