Add /whowas
parent
05fbcb41c9
commit
8b6a476c35
|
@ -1,4 +1,4 @@
|
|||
.Dd December 29, 2020
|
||||
.Dd December 30, 2020
|
||||
.Dt CATGIRL 1
|
||||
.Os
|
||||
.
|
||||
|
@ -339,6 +339,8 @@ Press
|
|||
twice to copy the current topic.
|
||||
.It Ic /whois Ar nick
|
||||
Query information about a user.
|
||||
.It Ic /whowas Ar nick
|
||||
Query past information about a user.
|
||||
.El
|
||||
.
|
||||
.Ss UI Commands
|
||||
|
|
1
chat.h
1
chat.h
|
@ -260,6 +260,7 @@ extern struct Replies {
|
|||
uint topic;
|
||||
uint who;
|
||||
uint whois;
|
||||
uint whowas;
|
||||
} replies;
|
||||
|
||||
void handle(struct Message *msg);
|
||||
|
|
|
@ -316,6 +316,13 @@ static void commandWhois(uint id, char *params) {
|
|||
replies.whois += count;
|
||||
}
|
||||
|
||||
static void commandWhowas(uint id, char *params) {
|
||||
(void)id;
|
||||
if (!params) return;
|
||||
ircFormat("WHOWAS %s\r\n", params);
|
||||
replies.whowas++;
|
||||
}
|
||||
|
||||
static void commandNS(uint id, char *params) {
|
||||
(void)id;
|
||||
if (params) ircFormat("PRIVMSG NickServ :%s\r\n", params);
|
||||
|
@ -500,6 +507,7 @@ static const struct Handler {
|
|||
{ "/uninvex", commandUninvex, 0 },
|
||||
{ "/voice", commandVoice, 0 },
|
||||
{ "/whois", commandWhois, 0 },
|
||||
{ "/whowas", commandWhowas, 0 },
|
||||
{ "/window", commandWindow, 0 },
|
||||
};
|
||||
|
||||
|
|
28
handle.c
28
handle.c
|
@ -1058,12 +1058,12 @@ static void handleReplyWhoisUser(struct Message *msg) {
|
|||
|
||||
static void handleReplyWhoisServer(struct Message *msg) {
|
||||
require(msg, false, 4);
|
||||
if (!replies.whois) return;
|
||||
if (!replies.whois && !replies.whowas) return;
|
||||
uiFormat(
|
||||
Network, Warm, tagTime(msg),
|
||||
"\3%02d%s\3\tis connected to %s (%s)",
|
||||
"\3%02d%s\3\t%s connected to %s (%s)",
|
||||
completeColor(Network, msg->params[1]), msg->params[1],
|
||||
msg->params[2], msg->params[3]
|
||||
(replies.whowas ? "was" : "is"), msg->params[2], msg->params[3]
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -1135,6 +1135,26 @@ static void handleReplyEndOfWhois(struct Message *msg) {
|
|||
replies.whois--;
|
||||
}
|
||||
|
||||
static void handleReplyWhowasUser(struct Message *msg) {
|
||||
require(msg, false, 6);
|
||||
if (!replies.whowas) return;
|
||||
completeTouch(Network, msg->params[1], hash(msg->params[2]));
|
||||
uiFormat(
|
||||
Network, Warm, tagTime(msg),
|
||||
"\3%02d%s\3\twas %s!%s@%s (%s)",
|
||||
hash(msg->params[2]), msg->params[1],
|
||||
msg->params[1], msg->params[2], msg->params[3], msg->params[5]
|
||||
);
|
||||
}
|
||||
|
||||
static void handleReplyEndOfWhowas(struct Message *msg) {
|
||||
require(msg, false, 2);
|
||||
if (strcmp(msg->params[1], self.nick)) {
|
||||
completeRemove(Network, msg->params[1]);
|
||||
}
|
||||
if (replies.whowas) replies.whowas--;
|
||||
}
|
||||
|
||||
static void handleReplyAway(struct Message *msg) {
|
||||
require(msg, false, 3);
|
||||
// Might be part of a WHOIS response.
|
||||
|
@ -1300,6 +1320,7 @@ static const struct Handler {
|
|||
{ "311", handleReplyWhoisUser },
|
||||
{ "312", handleReplyWhoisServer },
|
||||
{ "313", handleReplyWhoisGeneric },
|
||||
{ "314", handleReplyWhowasUser },
|
||||
{ "315", handleReplyEndOfWho },
|
||||
{ "317", handleReplyWhoisIdle },
|
||||
{ "318", handleReplyEndOfWhois },
|
||||
|
@ -1320,6 +1341,7 @@ static const struct Handler {
|
|||
{ "366", handleReplyEndOfNames },
|
||||
{ "367", handleReplyBanList },
|
||||
{ "368", handleReplyEndOfBanList },
|
||||
{ "369", handleReplyEndOfWhowas },
|
||||
{ "372", handleReplyMOTD },
|
||||
{ "378", handleReplyWhoisGeneric },
|
||||
{ "379", handleReplyWhoisGeneric },
|
||||
|
|
Loading…
Reference in New Issue