diff options
| author | dequis <dx@dxzone.com.ar> | 2015-02-20 19:47:33 -0300 | 
|---|---|---|
| committer | dequis <dx@dxzone.com.ar> | 2015-02-20 19:47:33 -0300 | 
| commit | 0ca1d79cff9e6a9fb9fa4796814c9e77a9cfcc19 (patch) | |
| tree | 0dab1800752e0a28461bd8c8e5b9ceebf6b4d2a6 /protocols/twitter/twitter_lib.c | |
| parent | 34afea7dd6b066a9e7153d16a8e386c7c90ffe87 (diff) | |
Revert "Twitter format strings"
This reverts commit ce402b20d82ec323e6bd5e306de934773590742d.
See discussion in PR #10 for more details.
Diffstat (limited to 'protocols/twitter/twitter_lib.c')
| -rw-r--r-- | protocols/twitter/twitter_lib.c | 63 | 
1 files changed, 15 insertions, 48 deletions
| 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; +	}  }  /** | 
