Detect pings in ACTIONs

weechat-hashes
Curtis McEnroe 2018-08-14 21:26:27 -04:00
parent 9167a9d92c
commit 7082820299
No known key found for this signature in database
GPG Key ID: CEA2F97ADCFCD77C
1 changed files with 6 additions and 4 deletions

View File

@ -93,7 +93,8 @@ static bool isSelf(const char *nick, const char *user) {
return false; return false;
} }
static bool isPing(const char *mesg) { static bool isPing(const char *nick, const char *user, const char *mesg) {
if (isSelf(nick, user)) return false;
size_t len = strlen(self.nick); size_t len = strlen(self.nick);
const char *match = mesg; const char *match = mesg;
while (NULL != (match = strcasestr(match, self.nick))) { while (NULL != (match = strcasestr(match, self.nick))) {
@ -297,9 +298,10 @@ static void handleCTCP(struct Tag tag, char *nick, char *user, char *mesg) {
if (strcmp(ctcp, "ACTION")) return; if (strcmp(ctcp, "ACTION")) return;
if (!isSelf(nick, user)) tabTouch(tag, nick); if (!isSelf(nick, user)) tabTouch(tag, nick);
urlScan(tag, params); urlScan(tag, params);
bool ping = isPing(nick, user, params);
uiFmt( uiFmt(
tag, "\3%d* %s\3 %s", tag, "%c\3%d* %s\17 %s",
color(user), nick, params ping["\17\26"], color(user), nick, params
); );
} }
@ -314,7 +316,7 @@ static void handlePrivmsg(char *prefix, char *params) {
if (!isSelf(nick, user)) tabTouch(tag, nick); if (!isSelf(nick, user)) tabTouch(tag, nick);
urlScan(tag, mesg); urlScan(tag, mesg);
bool self = isSelf(nick, user); bool self = isSelf(nick, user);
bool ping = !self && isPing(mesg); bool ping = isPing(nick, user, mesg);
uiFmt( uiFmt(
tag, "%c\3%d%c%s%c\17 %s", tag, "%c\3%d%c%s%c\17 %s",
ping["\17\26"], color(user), self["<("], nick, self[">)"], mesg ping["\17\26"], color(user), self["<("], nick, self[">)"], mesg