Add support for WHOWAS

Fixes #2050

Co-Authored-By: jay2k1 <jay2k1@users.noreply.github.com>
This commit is contained in:
Pavel Djundik 2018-06-20 21:01:45 +03:00
parent c95b09cbac
commit 5091939aa4
2 changed files with 33 additions and 15 deletions

View File

@ -1,4 +1,8 @@
<p>{{> ../user_name nick=whois.nick}}</p> <p>
{{> ../user_name nick=whois.nick}}
{{#if whois.whowas}} is offline, last information:{{/if}}
</p>
<dl class="whois"> <dl class="whois">
{{#if whois.account}} {{#if whois.account}}
<dt>Logged in as:</dt> <dt>Logged in as:</dt>

View File

@ -5,10 +5,23 @@ const Msg = require("../../models/msg");
module.exports = function(irc, network) { module.exports = function(irc, network) {
const client = this; const client = this;
irc.on("whois", function(data) {
irc.on("whois", handleWhois);
irc.on("whowas", (data) => {
data.whowas = true;
handleWhois(data);
});
function handleWhois(data) {
let chan = network.getChannel(data.nick); let chan = network.getChannel(data.nick);
if (typeof chan === "undefined") { if (typeof chan === "undefined") {
// Do not create new windows for errors as they may contain illegal characters
if (data.error) {
chan = network.channels[0];
} else {
chan = client.createChannel({ chan = client.createChannel({
type: Chan.Type.QUERY, type: Chan.Type.QUERY,
name: data.nick, name: data.nick,
@ -23,6 +36,7 @@ module.exports = function(irc, network) {
chan.loadMessages(client, network); chan.loadMessages(client, network);
client.save(); client.save();
} }
}
let msg; let msg;
@ -43,5 +57,5 @@ module.exports = function(irc, network) {
} }
chan.pushMessage(client, msg); chan.pushMessage(client, msg);
}); }
}; };