Example #1
0
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);
	}

}
Example #2
0
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);
}
Example #3
0
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);
        }
    }

}
Example #4
0
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;
            }
        }


    }


}
Example #5
0
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;
}