hirc

IRC client
Log | Files | Refs

commit b8ea1b26880de131a890113d7ba2a3c6c92b911b
parent 7a1eac17c35ab8f05d5279de8421fb7b71b93cd2
Author: hhvn <dev@hhvn.uk>
Date:   Fri, 27 May 2022 22:51:58 +0100

Display CTCP messages and NOTICEs in hirc2txt

Diffstat:
Mmisc/hirc2txt.c | 23++++++++++++++++++++++-
1 file changed, 22 insertions(+), 1 deletion(-)

diff --git a/misc/hirc2txt.c b/misc/hirc2txt.c @@ -28,7 +28,28 @@ convert(char *line) { strftime(time, sizeof(time), "[%Y-%m-%d %H:%M:%S]", localtime(&timestamp)); - if (strncmp(msg, "PRIVMSG ", 8) == 0 && (p = strchr(msg, ':'))) { + if (strncmp(msg, "PRIVMSG ", 8) == 0 && strstr(msg, ":\01ACTION")) { + if (msg[strlen(msg) - 1] == 1) + msg[strlen(msg) - 1] = '\0'; + p = strchr(msg, ':') + 9; + printf("%s *%s %s\n", time, tok[5], p); + } else if (strncmp(msg, "PRIVMSG ", 8) == 0 && strstr(msg, ":\01")) { + if (msg[strlen(msg) - 1] == 1) + msg[strlen(msg) - 1] = '\0'; + p = strchr(msg, ':') + 2; + printf("%s %s requested %s via CTCP\n", time, tok[5], p); + } else if (strncmp(msg, "NOTICE ", 7) == 0 && strstr(msg, ":\01")) { + if (msg[strlen(msg) - 1] == 1) + msg[strlen(msg) - 1] = '\0'; + p = strchr(msg, ':') + 2; + if (msg = strchr(p, ' ')) { + *msg = '\0'; + msg++; + } else msg = ""; + printf("%s %s replied to the CTCP request for %s: %s\n", time, tok[5], p, msg); + } else if (strncmp(msg, "NOTICE ", 7) == 0 && (p = strchr(msg, ':'))) { + printf("%s -%s%s- %s\n", time, *tok[4] != ' ' ? tok[4] : "", tok[5], p + 1); + } else if (strncmp(msg, "PRIVMSG ", 8) == 0 && (p = strchr(msg, ':'))) { printf("%s <%s%s> %s\n", time, *tok[4] != ' ' ? tok[4] : "", tok[5], p + 1); } else if (strncmp(msg, "JOIN ", 5) == 0) { printf("%s %s (%s@%s) joined.\n", time, tok[5], tok[6], tok[7]);