diff options
| author | Wilmer van der Gaast <wilmer@gaast.net> | 2010-05-06 01:28:56 +0100 | 
|---|---|---|
| committer | Wilmer van der Gaast <wilmer@gaast.net> | 2010-05-06 01:28:56 +0100 | 
| commit | aea8b68bd0e057441d671c008200e71dd046a211 (patch) | |
| tree | ba3d668eec9747c9009a50e8cdbaa842bddf446c /irc_im.c | |
| parent | 94383231eddf56112cf74f2ae65d691821d70803 (diff) | |
Starting to restore chatroom stuff. Only enough to create and be joined
into a room. More will follow soon.
Diffstat (limited to 'irc_im.c')
| -rw-r--r-- | irc_im.c | 69 | 
1 files changed, 69 insertions, 0 deletions
@@ -202,6 +202,68 @@ static gboolean bee_irc_user_fullname( bee_t *bee, bee_user_t *bu )  	return TRUE;  } + +/* Groupchats */ +gboolean bee_irc_chat_new( bee_t *bee, struct groupchat *c ) +{ +	irc_t *irc = bee->ui_data; +	irc_channel_t *ic; +	char *topic; +	int i; +	 +	for( i = 0; i <= 999; i ++ ) +	{ +		char name[16]; +		sprintf( name, "&chat_%03d", i ); +		if( ( ic = irc_channel_new( irc, name ) ) ) +			break; +	} +	 +	if( ic == NULL ) +		return FALSE; +	 +	c->ui_data = ic; +	ic->data = c; +	 +	topic = g_strdup_printf( "BitlBee groupchat: \"%s\". Please keep in mind that root-commands won't work here. Have fun!", c->title ); +	irc_channel_set_topic( ic, topic, irc->root ); +	g_free( topic ); +	 +	return TRUE; +} + +gboolean bee_irc_chat_free( bee_t *bee, struct groupchat *c ) +{ +	irc_channel_t *ic = c->ui_data; +	 +	if( ic->flags & IRC_CHANNEL_JOINED ) +		irc_channel_printf( ic, "Cleaning up channel, bye!" ); +	 +	irc_channel_free( ic ); +	 +	return TRUE; +} + +gboolean bee_irc_chat_log( bee_t *bee, struct groupchat *c, const char *format, ... ) +{ +} + +gboolean bee_irc_chat_msg( bee_t *bee, struct groupchat *c, const char *who, const char *msg, time_t sent_at ) +{ +} + +gboolean bee_irc_chat_add_user( bee_t *bee, struct groupchat *c, bee_user_t *bu ) +{ +	irc_t *irc = bee->ui_data; +	 +	irc_channel_add_user( c->ui_data, bu == bee->user ? irc->user : bu->ui_data ); +} + +gboolean bee_irc_chat_remove_user( bee_t *bee, struct groupchat *c, bee_user_t *bu ) +{ +} + +  /* File transfers */  static file_transfer_t *bee_irc_ft_in_start( bee_t *bee, bee_user_t *bu, const char *file_name, size_t file_size )  { @@ -236,6 +298,13 @@ const struct bee_ui_funcs irc_ui_funcs = {  	bee_irc_user_msg,  	bee_irc_user_typing, +	bee_irc_chat_new, +	bee_irc_chat_free, +	NULL, +	NULL, +	bee_irc_chat_add_user, +	NULL, +	  	bee_irc_ft_in_start,  	bee_irc_ft_out_start,  	bee_irc_ft_close,  | 
