void event_channel (irc_session_t * session, const char * event, const char * origin, const char ** params, unsigned int count) { printf ("'%s' said in channel %s: %s\n", origin ? origin : "someone", params[0], params[1] ); char * stripped = irc_color_strip_from_mirc (params[1]); irc_cmd_msg (session, params[0], stripped); free (stripped); stripped = irc_color_convert_from_mirc (params[1]); irc_cmd_msg (session, params[0], stripped); free (stripped); if ( !strcmp (params[1], "test") ) { char * str = irc_color_convert_to_mirc ("normal, [B]bold[/B], [I]reverse[/I], [U]underline[/U], [COLOR=RED]red on white[/COLOR], [COLOR=YELLOW/BLACK]yellow on black[/COLOR]"); irc_cmd_msg (session, params[0], str); free (str); } if ( strstr (params[1], "testme") == params[1] ) { char * str = irc_color_convert_to_mirc (params[1] + 7); irc_cmd_msg (session, params[0], str); free (str); } }
void event_join (irc_session_t * session, const char * event, const char * origin, const char ** params, unsigned int count) { char * str = irc_color_convert_to_mirc ("[B]Hi[/B] [U]all[/U]. Could someone say 'test'?"); irc_cmd_msg (session, params[0], str); free (str); }
void event_channel (irc_session_t * session, const char * event, const char * origin, const char ** params, unsigned int count) { printf ("<%s> sagt in %s: %s\n", origin ? origin : "someone", params[0], params[1] ); snprintf(textbuf, sizeof(textbuf), "<%s> %s", origin, params[1]); dlop(textbuf,false); if ( !strcmp (params[1], "-h") || !strcmp (params[1], "-help") ) { char * str = irc_color_convert_to_mirc ("[B]bold[/B], [I]reverse[/I], [U]underline[/U], [COLOR=RED]red[/COLOR], [COLOR=YELLOW/BLACK]black[/COLOR]"); irc_cmd_msg (session, params[0], str); free (str); irc_cmd_msg (session, params[0], "[B]bold[/B], [I]reverse[/I], [U]underline[/U], [COLOR=RED]red[/COLOR], [COLOR=YELLOW/BLACK]black[/COLOR]"); irc_cmd_msg (session, params[0], " "); irc_cmd_msg (session, params[0], "-l nickname | Abfrage, wann ein Nutzer das letzte Mal im Raum war."); irc_cmd_msg (session, params[0], "-e [email protected] | Verschicken des irc-Log an eine Mailadresse"); irc_cmd_msg (session, params[0], "-bot | Abfrage, ob ein irc-Bot da ist."); irc_cmd_msg (session, params[0], "-q xxxxxx | Bot wird geschlossen, z.B.: -q 123532"); } if ( !strcmp (params[1], "-bot") ) { char * str = irc_color_convert_to_mirc ("Hallo! Yes, I'm Bot. =)"); irc_cmd_msg (session, params[0], str); free (str); } if ( strstr(params[1], "-l")) { char par[100]; size_t len; strcpy(par, params[1]+3); char cdata[255]; len = strlen(par); if(len > 0 ) { strcpy(cdata, par); ssqlsv(cdata, false); snprintf (textbuf, sizeof(textbuf), "%s",cdata); } else snprintf (textbuf, sizeof(textbuf), "Hast du vergessen, einen Nickname einzugeben?"); irc_cmd_msg (session, params[0], textbuf); printf("Rueckmeldung: %s\n",textbuf); snprintf(cdata, sizeof(cdata), " "); } if ( strstr(params[1], "-e") ) { size_t lin2; lin2 = strlen(params[1]); if(lin2>3) { char cemail[50]; strcpy(cemail, params[1]+3); irc_cmd_msg (session, params[0], "An deiner email-Adresse wurde log.txt geschickt"); char system_str[256]; FILE * datei; size_t len; char text[100]; datei = fopen("/etc/ircbotF/confi.cfg", "r"); if( datei != NULL) { fgets(text,100,datei); len = strlen(text); text[len-1] = '\0'; fclose(datei); } char pfad[255]; snprintf(pfad, sizeof(pfad),"%slog/log.txt",text); snprintf( system_str, sizeof(system_str), "mail -s \"IRC-LOG\" %s < %s", cemail, pfad ); system(system_str); } else irc_cmd_msg (session, params[0], "ohne email-Adresse geht es nicht"); } if(strstr(params[1], "-q")) { if ( !strcmp (params[1], "-q 123456") && !strcmp(origin,"Xdmin")) { char * str = irc_color_convert_to_mirc ("Bye bye!"); irc_cmd_msg (session, params[0], str); free (str); if(irc_cmd_quit(session,params[0])) { syslog(LOG_ERR, "QUIT IRC command closed"); exit(irc_errno(session)); } } else { char * str = irc_color_convert_to_mirc ("sorry, dein Passwort ist falsch oder es funktioniert nur als Admin"); irc_cmd_msg (session, params[0], str); free (str); } } }
void event_privmsg(irc_session_t * session, const char * event, const char * origin, const char ** params, unsigned int count) { char *pch; std::string comandos = params[1]; std::vector<std::string> notificar; sql::Driver *driver; sql::Connection *con; sql::Statement *stmt; sql::ResultSet *res; driver = get_driver_instance(); con = driver->connect(direccion, usuario, password); if ( !origin || count != 2 ) return; irc_ctx_t * ctx = (irc_ctx_t *) irc_get_ctx (session); char nickbuf[128], text[1024]; irc_target_get_nick (origin, nickbuf, sizeof(nickbuf)); pch = strtok ((char *)params[1]," ,.-/\r\n"); if(pch != NULL) { if(strcmp(pch,"login") == 0) { char *arg1; char *arg2; pch = strtok (NULL," ,.-/\r\n"); if(pch == NULL){return;} arg1 = pch; pch = strtok (NULL," ,.-/\r\n"); if(pch == NULL){return;} arg2 = pch; con->setSchema("bigbug"); stmt = con->createStatement(); char querysql[256]; sprintf (querysql, "SELECT * from users where usuario = '%s' and clave = md5('%s');", arg1,arg2); res = stmt->executeQuery(querysql); while (res->next()) { if ( ctx->userLogged.find(nickbuf) == ctx->userLogged.end() ) ctx->userLogged[nickbuf] = arg1; sprintf (text, "%s, estas loggeado.", nickbuf); irc_cmd_notice (session, nickbuf, text); } delete res; delete stmt; delete con; } else if(strcmp(pch,"amilogin") == 0) { if ( ctx->userLogged.find(nickbuf) != ctx->userLogged.end() ) { sprintf (text, "%s, estas loggeado. Usuario: %s", nickbuf,ctx->userLogged[nickbuf].c_str()); irc_cmd_notice (session, nickbuf, text); } } else if(strcmp(pch,"plan") == 0) { if ( ctx->userLogged.find(nickbuf) != ctx->userLogged.end() ) { Plan *plan = new Plan(direccion, usuario, password); notificar = plan->procesar(ctx->userLogged[nickbuf],comandos.c_str()); for(size_t i=0; i<notificar.size(); i++) { irc_cmd_notice (session, nickbuf, irc_color_convert_to_mirc(notificar[i].c_str())); } delete plan; } } } }
void event_channel (irc_session_t * irc_session, const char * event, const char * origin, const char ** params, unsigned int count) { char buffer[512]; char nickbuf[128]; char md5sum[MD5_HASHSUM_SIZE]; ConfigArrayPtr setting; SessionPtr session; if ( count != 2 ) return; params[1] = irc_color_strip_from_mirc( params[1] ); addlog ("'%s' said in channel %s: %s", origin ? origin : "someone", params[0], params[1] ); if ( !origin ) return; irc_target_get_nick( origin, nickbuf, sizeof(nickbuf) ); md5_string( origin, md5sum ); session = get_session( SESSION_IRC, md5sum ); if ( !strcmp (params[1], "help") ) { if( ( session->dbuser ) && ( session->dbuser->level >= LEVEL_MODERATOR ) ) snprintf(buffer, sizeof(buffer), "%s", irc_color_convert_to_mirc( "[B]Usage[/B] - quit, help, dcc send, topic, mode, whois, nick" ) ); else snprintf(buffer, sizeof(buffer), "%s", irc_color_convert_to_mirc( "[B]Usage[/B] - help, dcc send, login" ) ); irc_cmd_notice( irc_session, params[0], buffer ); } if ( !strcmp (params[1], "ctcp") ) { irc_cmd_ctcp_request (irc_session, nickbuf, "PING 223"); irc_cmd_ctcp_request (irc_session, nickbuf, "FINGER"); irc_cmd_ctcp_request (irc_session, nickbuf, "VERSION"); irc_cmd_ctcp_request (irc_session, nickbuf, "TIME"); } if ( !strcmp (params[1], "dcc chat") ) { irc_dcc_t dccid; irc_dcc_chat (irc_session, 0, nickbuf, dcc_recv_callback, &dccid); addlog ("DCC chat ID: %d", dccid); } if ( !strcmp (params[1], "dcc send") ) { irc_dcc_t dccid; setting = GetSetting( "HTTP Images" ); snprintf(buffer, sizeof(buffer), "%s/cookie.gif", setting->string_value ); irc_dcc_sendfile (irc_session, 0, nickbuf, buffer, dcc_file_send_callback, &dccid); addlog ("DCC send ID: %d", dccid); } if( ( session->dbuser ) && ( session->dbuser->level >= LEVEL_MODERATOR ) ) { if ( !strcmp (params[1], "quit") ) { irc_cmd_quit (irc_session, "of course, Master!"); } if ( !strcmp (params[1], "topic") ) { irc_cmd_topic (irc_session, params[0], 0); } else if ( strstr (params[1], "topic ") == params[1] ) { irc_cmd_topic (irc_session, params[0], params[1] + 6); } if ( strstr (params[1], "mode ") == params[1] ) irc_cmd_channel_mode (irc_session, params[0], params[1] + 5); if ( strstr (params[1], "nick ") == params[1] ) irc_cmd_nick (irc_session, params[1] + 5); if ( strstr (params[1], "whois ") == params[1] ) irc_cmd_whois (irc_session, params[1] + 5); } return; }