diff options
Diffstat (limited to 'protocols/twitter/twitter.c')
| -rw-r--r-- | protocols/twitter/twitter.c | 37 | 
1 files changed, 22 insertions, 15 deletions
| diff --git a/protocols/twitter/twitter.c b/protocols/twitter/twitter.c index 1cc7eaeb..b6b23fa5 100644 --- a/protocols/twitter/twitter.c +++ b/protocols/twitter/twitter.c @@ -28,8 +28,8 @@  /** - *  * Main loop function - *   */ + * Main loop function + */  gboolean twitter_main_loop(gpointer data, gint fd, b_input_condition cond)  {  	struct im_connection *ic = data; @@ -37,6 +37,11 @@ gboolean twitter_main_loop(gpointer data, gint fd, b_input_condition cond)  	if ((ic->flags & OPT_LOGGED_IN) != OPT_LOGGED_IN)  		return 0; +	// If the user uses multiple private message windows we need to get the  +	// users buddies. +	if (!set_getbool( &ic->acc->set, "use_groupchat" )) +		twitter_get_statuses_friends(ic, -1); +  	// Do stuff..  	twitter_get_home_timeline(ic, -1); @@ -47,6 +52,8 @@ gboolean twitter_main_loop(gpointer data, gint fd, b_input_condition cond)  static void twitter_init( account_t *acc )  { +	set_t *s; +	s = set_add( &acc->set, "use_groupchat", "false", set_eval_bool, acc );  }  /** @@ -57,7 +64,7 @@ static void twitter_login( account_t *acc )  {  	struct im_connection *ic = imcb_new( acc );  	struct twitter_data *td = g_new0( struct twitter_data, 1 ); -	 +  	td->user = acc->user;  	td->pass = acc->pass;  	td->home_timeline_id = 0; @@ -67,11 +74,6 @@ static void twitter_login( account_t *acc )  	// Set the status to logged in.  	ic->flags = OPT_LOGGED_IN; -	// Try to get the buddies... -	//twitter_get_friends_ids(ic, -1); - -	//twitter_get_home_timeline(ic, -1); -  	// Run this once. After this queue the main loop function.  	twitter_main_loop(ic, -1, 0); @@ -80,6 +82,8 @@ static void twitter_login( account_t *acc )  	imcb_log( ic, "Connecting to twitter" );  	imcb_connected(ic); + +	twitter_connections = g_slist_append( twitter_connections, ic );  }  /** @@ -96,6 +100,8 @@ static void twitter_logout( struct im_connection *ic )  	{  		g_free( td );  	} + +	twitter_connections = g_slist_remove( twitter_connections, ic );  }  /** @@ -103,8 +109,11 @@ static void twitter_logout( struct im_connection *ic )   */  static int twitter_buddy_msg( struct im_connection *ic, char *who, char *message, int away )  { -	imcb_log( ic, "In twitter_buddy_msg..."); -	twitter_post_status(ic, message); +	// Let's just update the status. +//	if ( g_strcasecmp(who, ic->acc->user) == 0 ) +		twitter_post_status(ic, message); +//	else +//		twitter_direct_messages_new(ic, who, message);  	return( 0 );  } @@ -123,11 +132,6 @@ static void twitter_set_away( struct im_connection *ic, char *state, char *messa  static void twitter_set_my_name( struct im_connection *ic, char *info )  { -	imcb_log( ic, "In twitter_set_my_name..." ); -//	char * aap = twitter_http("http://gertje.org", NULL, ic, 1, "geert", "poep", NULL, 0); - -//	imcb_log( ic, aap ); -//	g_free(aap);  }  static void twitter_get_info(struct im_connection *ic, char *who)  @@ -217,5 +221,8 @@ void twitter_initmodule()  	ret->handle_cmp = g_strcasecmp;  	register_protocol(ret); + +	// Initialise the twitter_connections GSList. +	twitter_connections = NULL;  } | 
