/soc/2015/jgeboski/facebook: ac1d2fdaab42: facebook: escape/unes...

James Geboski jgeboski at gmail.com
Fri Jul 10 13:05:01 EDT 2015


Changeset: ac1d2fdaab42d8127c6cae14b4dc058348e7cc2f
Author:	 James Geboski <jgeboski at gmail.com>
Date:	 2015-07-10 13:04 -0400
Branch:	 facebook
URL: https://hg.pidgin.im/soc/2015/jgeboski/facebook/rev/ac1d2fdaab42

Description:

facebook: escape/unescape HTML within messages

This patch was inspired by a patch by Eion Robb for the purple2 variant
of this plugin.

diffstat:

 libpurple/protocols/facebook/facebook.c |  20 ++++++++++++++++----
 1 files changed, 16 insertions(+), 4 deletions(-)

diffs (78 lines):

diff --git a/libpurple/protocols/facebook/facebook.c b/libpurple/protocols/facebook/facebook.c
--- a/libpurple/protocols/facebook/facebook.c
+++ b/libpurple/protocols/facebook/facebook.c
@@ -180,6 +180,7 @@ fb_cb_api_message(FbApi *api, GSList *ms
 {
 	FbApiMessage *msg;
 	FbData *fata = data;
+	gchar *html;
 	gchar tid[FB_ID_STRMAX];
 	gchar uid[FB_ID_STRMAX];
 	gint id;
@@ -194,12 +195,15 @@ fb_cb_api_message(FbApi *api, GSList *ms
 	for (l = msgs; l != NULL; l = l->next) {
 		msg = l->data;
 		chat = NULL;
+
+		html = purple_markup_escape_text(msg->text, -1);
 		FB_ID_TO_STR(msg->uid, uid);
 
 		if (msg->tid == 0) {
-			purple_serv_got_im(gc, uid, msg->text,
+			purple_serv_got_im(gc, uid, html,
 		                           PURPLE_MESSAGE_RECV,
 			                   time(NULL));
+			g_free(html);
 			continue;
 		}
 
@@ -210,8 +214,10 @@ fb_cb_api_message(FbApi *api, GSList *ms
 			id = purple_chat_conversation_get_id(chat);
 			purple_serv_got_chat_in(gc, id, uid,
 			                        PURPLE_MESSAGE_RECV,
-		                                msg->text, time(NULL));
+		                                html, time(NULL));
 		}
+
+		g_free(html);
 	}
 }
 
@@ -557,6 +563,7 @@ fb_im_send(PurpleConnection *gc, PurpleM
 	FbApi *api;
 	FbData *fata;
 	FbId uid;
+	gchar *sext;
 
 	fata = purple_connection_get_protocol_data(gc);
 	api = fb_data_get_api(fata);
@@ -565,7 +572,9 @@ fb_im_send(PurpleConnection *gc, PurpleM
 	uid = FB_ID_FROM_STR(name);
 
 	text = purple_message_get_contents(msg);
-	fb_api_message(api, uid, FALSE, text);
+	sext = purple_markup_strip_html(text);
+	fb_api_message(api, uid, FALSE, sext);
+	g_free(sext);
 	return 1;
 }
 
@@ -691,6 +700,7 @@ fb_chat_send(PurpleConnection *gc, gint 
 	FbApi *api;
 	FbData *fata;
 	FbId tid;
+	gchar *sext;
 	PurpleAccount *acct;
 	PurpleChatConversation *chat;
 
@@ -703,7 +713,9 @@ fb_chat_send(PurpleConnection *gc, gint 
 	tid = FB_ID_FROM_STR(name);
 
 	text = purple_message_get_contents(msg);
-	fb_api_message(api, tid, TRUE, text);
+	sext = purple_markup_strip_html(text);
+	fb_api_message(api, tid, TRUE, sext);
+	g_free(sext);
 
 	name = purple_account_get_username(acct);
 	purple_serv_got_chat_in(gc, id, name,



More information about the Commits mailing list