diff --git a/bot.c b/bot.c index 7946d11..9000dd0 100644 --- a/bot.c +++ b/bot.c @@ -269,20 +269,30 @@ } int botDoJoin(cmdData) { - char *nick = 0x0; - char *ident = 0x0; - char *str_tok = 0x0; - char qryStr[256]; + char *chan = 0x0; + char *nick = 0x0; + char *ident = 0x0; + char *str_tok = 0x0; + char qryStr[256]; + MYSQL_RES *res = 0x0; + MYSQL_ROW row; - if (cmdData == 0x0) - return(-1); + if (cmdData == 0x0) + return(-1); + + chan = strtok_r(cmdData,":",&str_tok) + nick = strtok_r(NULL,":",&str_tok); + ident = strtok_r(NULL,":",&str_tok; - nick = strtok_r(cmdData,":",&str_tok); - ident = strtok_r(NULL,":",&str_tok; - - while (ident != 0x0) { - sprintf(qryStr,"SELECT * FROM active WHERE userid = %s",ident); - dbQuery(query,1) + while (ident != 0x0) { + sprintf(qryStr,"SELECT cid FROM active a INNER JOIN channels c ON a.uid = c.uid WHERE uid = %s AND channel like '%s'",ident,chan); + res = dbQuery(query,1) + if (res != 0x0) { + if (mysql_num_rows(res) > 0) + sWriteSocket("MSG %s:.tv mode +O %s",chan,nick); } + nick = strtok_r(NULL,":",&str_tok); + ident = strtok_r(NULL,":",&str_tok); } + return(0x0); }