diff options
author | Wilmer van der Gaast <wilmer@gaast.net> | 2010-04-01 23:25:41 -0400 |
---|---|---|
committer | Wilmer van der Gaast <wilmer@gaast.net> | 2010-04-01 23:25:41 -0400 |
commit | f012a9f0bb363cfcbdb6f2d563254ffba26b9fc8 (patch) | |
tree | e73e976243ac36a082f4e7f5cd354d8d1103f0e3 /protocols/bee_user.c | |
parent | 231b08b07a2807881da1327408e33855370b7b95 (diff) |
Can receive messages again.
Diffstat (limited to 'protocols/bee_user.c')
-rw-r--r-- | protocols/bee_user.c | 95 |
1 files changed, 13 insertions, 82 deletions
diff --git a/protocols/bee_user.c b/protocols/bee_user.c index cbcebe33..675d37c5 100644 --- a/protocols/bee_user.c +++ b/protocols/bee_user.c @@ -115,11 +115,11 @@ void imcb_buddy_status( struct im_connection *ic, const char *handle, int flags, } else { - if( set_getbool( &ic->bee->set, "debug" ) || g_strcasecmp( set_getstr( &ic->bee->set, "handle_unknown" ), "ignore" ) != 0 ) + if( g_strcasecmp( set_getstr( &ic->bee->set, "handle_unknown" ), "ignore" ) != 0 ) { - imcb_log( ic, "imcb_buddy_status() for unknown handle %s:", handle ); - imcb_log( ic, "flags = %d, state = %s, message = %s", flags, - state ? state : "NULL", message ? message : "NULL" ); + imcb_log( ic, "imcb_buddy_status() for unknown handle %s:\n" + "flags = %d, state = %s, message = %s", handle, flags, + state ? state : "NULL", message ? message : "NULL" ); } return; @@ -141,54 +141,6 @@ void imcb_buddy_status( struct im_connection *ic, const char *handle, int flags, g_free( old->status ); g_free( old ); #if 0 - oa = u->away != NULL; - oo = u->online; - - g_free( u->away ); - g_free( u->status_msg ); - u->away = u->status_msg = NULL; - - if( ( flags & OPT_LOGGED_IN ) && !u->online ) - { - irc_spawn( ic->irc, u ); - u->online = 1; - } - else if( !( flags & OPT_LOGGED_IN ) && u->online ) - { - struct groupchat *c; - - irc_kill( ic->irc, u ); - u->online = 0; - - /* Remove him/her from the groupchats to prevent PART messages after he/she QUIT already */ - for( c = ic->groupchats; c; c = c->next ) - remove_chat_buddy_silent( c, handle ); - } - - if( flags & OPT_AWAY ) - { - if( state && message ) - { - u->away = g_strdup_printf( "%s (%s)", state, message ); - } - else if( state ) - { - u->away = g_strdup( state ); - } - else if( message ) - { - u->away = g_strdup( message ); - } - else - { - u->away = g_strdup( "Away" ); - } - } - else - { - u->status_msg = g_strdup( message ); - } - /* LISPy... */ if( ( set_getbool( &ic->bee->set, "away_devoice" ) ) && /* Don't do a thing when user doesn't want it */ ( u->online ) && /* Don't touch offline people */ @@ -215,53 +167,32 @@ void imcb_buddy_status( struct im_connection *ic, const char *handle, int flags, void imcb_buddy_msg( struct im_connection *ic, const char *handle, char *msg, uint32_t flags, time_t sent_at ) { -#if 0 bee_t *bee = ic->bee; char *wrapped; - user_t *u; + bee_user_t *bu; - u = user_findhandle( ic, handle ); + bu = bee_user_by_handle( bee, ic, handle ); - if( !u ) + if( !bu ) { char *h = set_getstr( &bee->set, "handle_unknown" ); if( g_strcasecmp( h, "ignore" ) == 0 ) { - if( set_getbool( &bee->set, "debug" ) ) - imcb_log( ic, "Ignoring message from unknown handle %s", handle ); - return; } else if( g_strncasecmp( h, "add", 3 ) == 0 ) { - int private = set_getbool( &bee->set, "private" ); - - if( h[3] ) - { - if( g_strcasecmp( h + 3, "_private" ) == 0 ) - private = 1; - else if( g_strcasecmp( h + 3, "_channel" ) == 0 ) - private = 0; - } - - imcb_add_buddy( ic, handle, NULL ); - u = user_findhandle( ic, handle ); - u->is_private = private; - } - else - { - imcb_log( ic, "Message from unknown handle %s:", handle ); - u = user_find( irc, irc->mynick ); + bu = bee_user_new( bee, ic, handle ); } } if( ( g_strcasecmp( set_getstr( &ic->bee->set, "strip_html" ), "always" ) == 0 ) || ( ( ic->flags & OPT_DOES_HTML ) && set_getbool( &ic->bee->set, "strip_html" ) ) ) strip_html( msg ); - - wrapped = word_wrap( msg, 425 ); - irc_msgfrom( irc, u->nick, wrapped ); - g_free( wrapped ); -#endif + + if( bee->ui->user_msg && bu ) + bee->ui->user_msg( bee, bu, msg, sent_at ); + else + imcb_log( ic, "Message from unknown handle %s:\n%s", handle, msg ); } |