aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Gilbert <dave@treblig.org>2021-06-20 16:51:49 +0100
committerGitHub <noreply@github.com>2021-06-20 16:51:49 +0100
commitde3f487f1d67b286914026c102dff489d84a470a (patch)
tree7d48c6e4ff30accc93c884261c525eb26abf8a20
parent2fcd5b8f901034980616e5f719750c48f37a332f (diff)
parentf8c22de413a690639574ef20dd2dcffc4e17c300 (diff)
downloadpurple-matrix-de3f487f1d67b286914026c102dff489d84a470a.tar.gz
Merge pull request #117 from vmiklos/no-html-option
Add an option to get markdown, not HTML
-rw-r--r--libmatrix.c4
-rw-r--r--libmatrix.h1
-rw-r--r--matrix-room.c10
3 files changed, 13 insertions, 2 deletions
diff --git a/libmatrix.c b/libmatrix.c
index 4783056..a422e0f 100644
--- a/libmatrix.c
+++ b/libmatrix.c
@@ -372,6 +372,10 @@ static void matrixprpl_init(PurplePlugin *plugin)
_("On reconnect, skip messages which were received in a "
"previous session"),
PRPL_ACCOUNT_OPT_SKIP_OLD_MESSAGES, FALSE));
+ protocol_options = g_list_append(protocol_options,
+ purple_account_option_bool_new(
+ _("Prefer Markdown over HTML"),
+ PRPL_ACCOUNT_OPT_PREFER_MARKDOWN, FALSE));
prpl_info.protocol_options = protocol_options;
}
diff --git a/libmatrix.h b/libmatrix.h
index 852d5f8..c894723 100644
--- a/libmatrix.h
+++ b/libmatrix.h
@@ -115,6 +115,7 @@
#define PRPL_ACCOUNT_OPT_HOME_SERVER "home_server"
#define PRPL_ACCOUNT_OPT_NEXT_BATCH "next_batch"
#define PRPL_ACCOUNT_OPT_SKIP_OLD_MESSAGES "skip_old_messages"
+#define PRPL_ACCOUNT_OPT_PREFER_MARKDOWN "prefer_markdown"
/* Pickled account info from olm_pickle_account */
#define PRPL_ACCOUNT_OPT_OLM_ACCOUNT_KEYS "olm_account_keys"
/* Access token, after a login */
diff --git a/matrix-room.c b/matrix-room.c
index b26d036..cd17ae7 100644
--- a/matrix-room.c
+++ b/matrix-room.c
@@ -1094,8 +1094,14 @@ void matrix_room_handle_timeline_event(PurpleConversation *conv,
}
flags = PURPLE_MESSAGE_RECV;
- if (purple_strequal(matrix_json_object_get_string_member(json_content_obj, "format"), "org.matrix.custom.html")) {
- escaped_body = g_strdup(matrix_json_object_get_string_member(json_content_obj, "formatted_body"));
+ gboolean prefer_markdown = purple_account_get_bool(conv->account,
+ PRPL_ACCOUNT_OPT_PREFER_MARKDOWN, FALSE);
+ if (!prefer_markdown) {
+ if (purple_strequal(matrix_json_object_get_string_member(json_content_obj, "format"), "org.matrix.custom.html")) {
+ escaped_body = g_strdup(matrix_json_object_get_string_member(json_content_obj, "formatted_body"));
+ } else {
+ escaped_body = purple_markup_escape_text(tmp_body ? tmp_body : msg_body, -1);
+ }
} else {
escaped_body = purple_markup_escape_text(tmp_body ? tmp_body : msg_body, -1);
}