diff options
Diffstat (limited to 'protocols/twitter')
| -rw-r--r-- | protocols/twitter/twitter.c | 4 | ||||
| -rw-r--r-- | protocols/twitter/twitter_lib.c | 63 | 
2 files changed, 15 insertions, 52 deletions
| diff --git a/protocols/twitter/twitter.c b/protocols/twitter/twitter.c index 8f5dc168..eb30187f 100644 --- a/protocols/twitter/twitter.c +++ b/protocols/twitter/twitter.c @@ -538,10 +538,6 @@ static void twitter_init(account_t * acc)  	s = set_add(&acc->set, "show_old_mentions", "0", set_eval_int, acc);  	s = set_add(&acc->set, "strip_newlines", "false", set_eval_bool, acc); - -	s = set_add(&acc->set, "format_string", "\002[\002%i\002]\002 %c", NULL, acc); -	s = set_add(&acc->set, "retweet_format_string", "\002[\002%i\002]\002 RT @%a: %c", NULL, acc); -	s = set_add(&acc->set, "reply_format_string", "\002[\002%i->%r\002]\002 %c", NULL, acc);  	s = set_add(&acc->set, "_last_tweet", "0", NULL, acc);  	s->flags |= SET_HIDDEN | SET_NOSAVE; diff --git a/protocols/twitter/twitter_lib.c b/protocols/twitter/twitter_lib.c index b827a139..c8956606 100644 --- a/protocols/twitter/twitter_lib.c +++ b/protocols/twitter/twitter_lib.c @@ -62,7 +62,6 @@ struct twitter_xml_status {  	guint64 id, rt_id; /* Usually equal, with RTs id == *original* id */  	guint64 reply_to;  	gboolean from_filter; -	struct twitter_xml_status *rt;  };  /** @@ -88,7 +87,6 @@ static void txs_free(struct twitter_xml_status *txs)  	g_free(txs->text);  	txu_free(txs->user); -	txs_free(txs->rt);  	g_free(txs);  } @@ -490,9 +488,9 @@ static struct twitter_xml_status *twitter_xt_get_status(const json_value *node)  		struct twitter_xml_status *rtxs = twitter_xt_get_status(rt);  		if (rtxs) {  			g_free(txs->text); -			txs->text = g_strdup(rtxs->text); +			txs->text = g_strdup_printf("RT @%s: %s", rtxs->user->screen_name, rtxs->text);  			txs->id = rtxs->id; -			txs->rt = rtxs; +			txs_free(rtxs);  		}  	} else if (entities) {  		txs->text = expand_entities(txs->text, entities); @@ -610,49 +608,6 @@ static gboolean twitter_xt_get_status_list(struct im_connection *ic, const json_  	return TRUE;  } -/** - * Function to properly format a tweet as per the users configuration. - */ -static char *twitter_msg_get_text(struct im_connection *ic, int log_id, int reply_to, -				struct twitter_xml_status *txs, const char *prefix) { -	gchar * format = set_getstr(&ic->acc->set, "format_string"); -	GString * text = g_string_new(NULL); - -	gchar *c; -	if (reply_to != -1) -		format = set_getstr(&ic->acc->set, "reply_format_string"); -	if (txs->rt) -		format = set_getstr(&ic->acc->set, "retweet_format_string"); - -	for (c = format; *c ; c++) { -		if (!(*c == '%' && *(c+1))) { -			text = g_string_append_c(text, *c); -			continue; -		} -		c++; // Move past the % -		switch (*c) { -			case 'i': -				g_string_append_printf(text, "%02x", log_id); -				break; -			case 'r': -				if (reply_to != -1) // In case someone does put %r in the wrong format_string -				g_string_append_printf(text, "%02x", reply_to); -				break; -			case 'a': -				if (txs->rt) // In case someone does put %a in the wrong format_string -					text = g_string_append(text, txs->rt->user->screen_name); -				break; -			case 'c': -				text = g_string_append(text, txs->text); -				break; -			default: -				text = g_string_append_c(text, *c); -		} -	} -	text = g_string_prepend(text, prefix); -	return g_string_free(text, FALSE); -} -  /* Will log messages either way. Need to keep track of IDs for stream deduping.     Plus, show_ids is on by default and I don't see why anyone would disable it. */  static char *twitter_msg_add_id(struct im_connection *ic, @@ -691,7 +646,19 @@ static char *twitter_msg_add_id(struct im_connection *ic,  	if (g_strcasecmp(txs->user->screen_name, td->user) == 0)  		td->log[td->log_id].id = txs->rt_id; -	return twitter_msg_get_text(ic, td->log_id, reply_to, txs, prefix); +	if (set_getbool(&ic->acc->set, "show_ids")) { +		if (reply_to != -1) +			return g_strdup_printf("\002[\002%02x->%02x\002]\002 %s%s", +			                       td->log_id, reply_to, prefix, txs->text); +		else +			return g_strdup_printf("\002[\002%02x\002]\002 %s%s", +			                       td->log_id, prefix, txs->text); +	} else { +		if (*prefix) +			return g_strconcat(prefix, txs->text, NULL); +		else +			return NULL; +	}  }  /** | 
