diff --git a/main.c b/main.c index da022cb..795c513 100644 --- a/main.c +++ b/main.c @@ -17,6 +17,7 @@ time_t startTime; void usage(); +int botProcessData(char *data); int main(int argc,char **argv) { int ch; @@ -67,7 +68,6 @@ sStartSocket(); sWriteSocket("IDENT TUveBOT:1234567\n"); - sWriteSocket("JOIN #general\n"); while (1) { sGetConnections(&readset); @@ -77,6 +77,9 @@ writeLog(0,"Socket Died!\n"); exit(1); } + else { + botProcessData(data); + } writeLog(0,"Got Data [%s]\n",data); } @@ -106,3 +109,45 @@ return(ret); } + +int botProcessMsg(char *data) { + char *nick; + char *chan; + char *cmdData; + char *str_tok = 0x0; + + nick = strtok_r(data,":",&str_tok); + chan = strtok_r(NULL,":",&str_tok); + cmdData = strtok_r(NULL,"\n",&str_tok); + + if ((!strcasecmp(nick,"MrOlsen")) && (!strcasecmp(chan,"PRIVMSG"))) { + printf("cmdData: [%s]\n",cmdData); + sWriteSocket("%s\n",cmdData); + } + return(0x0); + } + +int botProcessData(char *data) { + char *cmd = 0x0; + char *cmdData = 0x0; + char *str_tok = 0x0; + + cmd = strtok_r(data,":",&str_tok); + cmdData = strtok_r(NULL,"\n",&str_tok); + + if (strstr(cmd,"PING")) { + sWriteSocket("PONG!\n"); + } + else if (!strcmp(cmd,"IDENT")) { + sWriteSocket("JOIN #general\n"); + sWriteSocket("MSG TUveD:.tv login reddawg temp123\n"); + } + else if (!strcmp(cmd,"MSG")) { + botProcessMsg(cmdData); + } + else { + writeLog(0,"Unknown Command: [%s]\n",cmd); + } + + return(0x0); + } diff --git a/socket.c b/socket.c index cfdaf11..b4b4352 100644 --- a/socket.c +++ b/socket.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include "tuvebot.h" @@ -49,7 +50,14 @@ return(recLen); } -int sWriteSocket(char const *data) { +int sWriteSocket(char const * __restrict fmt, ...) { + char data[1024]; + va_list ap; + + va_start(ap,fmt); + vsnprintf(data,2048,fmt,ap); + va_end(ap); + send(mySocket,data,strlen(data),MSG_NOSIGNAL); return(0x0); diff --git a/tuvebot.h b/tuvebot.h index 6a58eae..d7a37c7 100644 --- a/tuvebot.h +++ b/tuvebot.h @@ -110,8 +110,8 @@ /* Socket Functions */ int sStartSocket(); ssize_t sReadSocket(void *buffer,size_t length); -int sWriteSocket(char const *data); int sGetConnections(fd_set *readset); +int sWriteSocket(char const * __restrict fmt, ...); /* Podz Fucntions */ int podzGetData(myConnections_t *);