aboutsummaryrefslogtreecommitdiffstats
path: root/protocols
diff options
context:
space:
mode:
Diffstat (limited to 'protocols')
-rw-r--r--protocols/twitter/twitter.c4
-rw-r--r--protocols/twitter/twitter_lib.c63
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;
+ }
}
/**