diff options
| author | Wilmer van der Gaast <wilmer@gaast.net> | 2010-05-08 01:25:15 +0100 | 
|---|---|---|
| committer | Wilmer van der Gaast <wilmer@gaast.net> | 2010-05-08 01:25:15 +0100 | 
| commit | 27e2c66f28bc196d766ac179aa5eae0d190565d5 (patch) | |
| tree | a47343b0b79a120a8a5e9d8af98d0c8e7bf19ef3 /protocols/bee_chat.c | |
| parent | f1a089067fcc4fcae05cdbfa0f51a8a3cc8f6783 (diff) | |
Support for receiving messages in chatrooms.
Diffstat (limited to 'protocols/bee_chat.c')
| -rw-r--r-- | protocols/bee_chat.c | 44 | 
1 files changed, 16 insertions, 28 deletions
| diff --git a/protocols/bee_chat.c b/protocols/bee_chat.c index 501bb6aa..0c7bebd9 100644 --- a/protocols/bee_chat.c +++ b/protocols/bee_chat.c @@ -104,56 +104,44 @@ void imcb_chat_free( struct groupchat *c )  void imcb_chat_msg( struct groupchat *c, const char *who, char *msg, uint32_t flags, time_t sent_at )  { -#if 0  	struct im_connection *ic = c->ic; -	char *wrapped; -	user_t *u; +	bee_t *bee = ic->bee; +	bee_user_t *bu; +	char *s;  	/* Gaim sends own messages through this too. IRC doesn't want this, so kill them */  	if( g_strcasecmp( who, ic->acc->user ) == 0 )  		return; -	u = user_findhandle( ic, who ); +	bu = bee_user_by_handle( bee, ic, who ); -	if( ( g_strcasecmp( set_getstr( &ic->bee->set, "strip_html" ), "always" ) == 0 ) || -	    ( ( ic->flags & OPT_DOES_HTML ) && set_getbool( &ic->bee->set, "strip_html" ) ) ) +	s = set_getstr( &ic->bee->set, "strip_html" ); +	if( ( g_strcasecmp( s, "always" ) == 0 ) || +	    ( ( ic->flags & OPT_DOES_HTML ) && s ) )  		strip_html( msg ); -	wrapped = word_wrap( msg, 425 ); -	if( c && u ) -	{ -		char *ts = NULL; -		if( set_getbool( &ic->irc->set, "display_timestamps" ) ) -			ts = format_timestamp( ic->irc, sent_at ); -		irc_privmsg( ic->irc, u, "PRIVMSG", c->channel, ts ? : "", wrapped ); -		g_free( ts ); -	} +	if( bu && bee->ui->chat_msg ) +		bee->ui->chat_msg( bee, c, bu, msg, sent_at );  	else -	{ -		imcb_log( ic, "Message from/to conversation %s@%p (unknown conv/user): %s", who, c, wrapped ); -	} -	g_free( wrapped ); -#endif +		imcb_chat_log( c, "Message from unknown participant %s: %s", who, msg );  }  void imcb_chat_log( struct groupchat *c, char *format, ... )  { -#if 0 -	irc_t *irc = c->ic->irc; +	struct im_connection *ic = c->ic; +	bee_t *bee = ic->bee;  	va_list params;  	char *text; -	user_t *u; +	 +	if( !bee->ui->chat_log ) +		return;  	va_start( params, format );  	text = g_strdup_vprintf( format, params );  	va_end( params ); -	u = user_find( irc, irc->mynick ); -	 -	irc_privmsg( irc, u, "PRIVMSG", c->channel, "System message: ", text ); -	 +	bee->ui->chat_log( bee, c, text );  	g_free( text ); -#endif  }  void imcb_chat_topic( struct groupchat *c, char *who, char *topic, time_t set_at ) | 
