Merge pull request #1930 from thelounge/astorije/ctcp-request
Let user know someone is making a CTCP request against their nick
This commit is contained in:
commit
59ec0348b6
@ -236,6 +236,7 @@ kbd {
|
||||
#chat .topic .from::before,
|
||||
#chat .mode .from::before,
|
||||
#chat .ctcp .from::before,
|
||||
#chat .ctcp_request .from::before,
|
||||
#chat .whois .from::before,
|
||||
#chat .nick .from::before,
|
||||
#chat .action .from::before,
|
||||
@ -351,7 +352,8 @@ kbd {
|
||||
color: #2ecc40;
|
||||
}
|
||||
|
||||
#chat .ctcp .from::before {
|
||||
#chat .ctcp .from::before,
|
||||
#chat .ctcp_request .from::before {
|
||||
content: "\f0f6"; /* http://fontawesome.io/icon/file-text-o/ */
|
||||
}
|
||||
|
||||
|
@ -1,2 +1,2 @@
|
||||
{{> ../user_name from}}
|
||||
<b>{{ctcpType}}</b> <span class="ctcp-message">{{{parse ctcpMessage}}}</span>
|
||||
<span class="ctcp-message">{{{parse ctcpMessage}}}</span>
|
||||
|
3
client/views/actions/ctcp_request.tpl
Normal file
3
client/views/actions/ctcp_request.tpl
Normal file
@ -0,0 +1,3 @@
|
||||
{{> ../user_name from}}
|
||||
sent a <abbr title="Client-to-client_protocol">CTCP</abbr> request:
|
||||
<span class="ctcp-message">{{{parse ctcpMessage}}}</span>
|
@ -62,6 +62,7 @@ Msg.Type = {
|
||||
PART: "part",
|
||||
QUIT: "quit",
|
||||
CTCP: "ctcp",
|
||||
CTCP_REQUEST: "ctcp_request",
|
||||
CHGHOST: "chghost",
|
||||
TOPIC: "topic",
|
||||
TOPIC_SET_BY: "topic_set_by",
|
||||
|
@ -1,7 +1,9 @@
|
||||
"use strict";
|
||||
|
||||
const _ = require("lodash");
|
||||
const Helper = require("../../helper");
|
||||
const Msg = require("../../models/msg");
|
||||
const User = require("../../models/user");
|
||||
const pkg = require("../../../package.json");
|
||||
|
||||
const ctcpResponses = {
|
||||
@ -16,29 +18,40 @@ const ctcpResponses = {
|
||||
|
||||
module.exports = function(irc, network) {
|
||||
const client = this;
|
||||
const lobby = network.channels[0];
|
||||
|
||||
irc.on("ctcp response", function(data) {
|
||||
let chan = network.getChannel(data.nick);
|
||||
|
||||
if (typeof chan === "undefined") {
|
||||
chan = network.channels[0];
|
||||
chan = lobby;
|
||||
}
|
||||
|
||||
const msg = new Msg({
|
||||
type: Msg.Type.CTCP,
|
||||
time: data.time,
|
||||
from: chan.getUser(data.nick),
|
||||
ctcpType: data.type,
|
||||
ctcpMessage: data.message,
|
||||
});
|
||||
chan.pushMessage(client, msg);
|
||||
});
|
||||
|
||||
irc.on("ctcp request", (data) => {
|
||||
// Limit requests to a rate of one per second max
|
||||
irc.on("ctcp request", _.throttle((data) => {
|
||||
const response = ctcpResponses[data.type];
|
||||
|
||||
if (response) {
|
||||
irc.ctcpResponse(data.nick, data.type, response(data));
|
||||
}
|
||||
|
||||
// Let user know someone is making a CTCP request against their nick
|
||||
const msg = new Msg({
|
||||
type: Msg.Type.CTCP_REQUEST,
|
||||
time: data.time,
|
||||
from: new User({nick: data.nick}),
|
||||
hostmask: data.ident + "@" + data.hostname,
|
||||
ctcpMessage: data.message,
|
||||
});
|
||||
lobby.pushMessage(client, msg);
|
||||
}, 1000, {trailing: false}));
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user