Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/EionRobb/skype4pidgin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEion Robb <eion@robbmob.com>2019-03-06 23:02:13 +0300
committerGitHub <noreply@github.com>2019-03-06 23:02:13 +0300
commitd25047d94e0fb24db2a4433d51e9b63b124c5c23 (patch)
tree81d9773006e96ed5c40e24f3506024c48d1ef3d8
parentb405173ea4bafce50546f6a56755cd9566bf7b70 (diff)
parentf73e44df8b5c0232b1d2005dfae86bb026b6e8ed (diff)
Merge pull request #626 from himselfv/nosystem
Turning image messages into non-PURPLE_MESSAGE_SYSTEM
-rw-r--r--skypeweb/skypeweb_contacts.c21
-rw-r--r--skypeweb/skypeweb_contacts.h4
-rw-r--r--skypeweb/skypeweb_messages.c9
3 files changed, 24 insertions, 10 deletions
diff --git a/skypeweb/skypeweb_contacts.c b/skypeweb/skypeweb_contacts.c
index 363f75f..e6623e8 100644
--- a/skypeweb/skypeweb_contacts.c
+++ b/skypeweb/skypeweb_contacts.c
@@ -33,6 +33,11 @@ static void purple_conversation_write_system_message_ts(
purple_message_set_time(pmsg, ts);
purple_conversation_write_message(conv, pmsg);
}
+static void purple_conversation_write_img_message(
+ PurpleConversation *conv, const char* who, const gchar *msg,
+ PurpleMessageFlags flags, time_t ts) {
+ purple_conversation_write(conv, who, msg, flags, ts);
+}
// Check that the conversation hasn't been closed
static gboolean
@@ -127,6 +132,7 @@ skypeweb_get_icon(PurpleBuddy *buddy)
typedef struct SkypeImgMsgContext_ {
PurpleConversation *conv;
time_t composetimestamp;
+ gchar* from;
} SkypeImgMsgContext;
static void
@@ -141,6 +147,8 @@ skypeweb_got_imagemessage(PurpleHttpConnection *http_conn, PurpleHttpResponse *r
SkypeImgMsgContext *ctx = user_data;
PurpleConversation *conv = ctx->conv;
time_t ts = ctx->composetimestamp;
+ gchar* ctx_from = ctx->from;
+ ctx->from = NULL;
g_free(ctx);
// Conversation could have been closed before we retrieved the image
@@ -159,12 +167,13 @@ skypeweb_got_imagemessage(PurpleHttpConnection *http_conn, PurpleHttpResponse *r
image = purple_image_new_from_data(g_memdup(url_text, len), len);
icon_id = purple_image_store_add(image);
msg_tmp = g_strdup_printf("<img id='%d'>", icon_id);
- purple_conversation_write_system_message_ts(conv, msg_tmp, PURPLE_MESSAGE_NO_LOG | PURPLE_MESSAGE_IMAGES, ts);
+ purple_conversation_write_img_message(conv, ctx_from, msg_tmp, PURPLE_MESSAGE_NO_LOG | PURPLE_MESSAGE_IMAGES, ts);
g_free(msg_tmp);
+ g_free(ctx_from);
}
void
-skypeweb_download_uri_to_conv(SkypeWebAccount *sa, const gchar *uri, PurpleConversation *conv, time_t ts)
+skypeweb_download_uri_to_conv(SkypeWebAccount *sa, const gchar *uri, PurpleConversation *conv, time_t ts, const gchar* from)
{
gchar *url, *text;
PurpleHttpRequest *request;
@@ -186,19 +195,20 @@ skypeweb_download_uri_to_conv(SkypeWebAccount *sa, const gchar *uri, PurpleConve
SkypeImgMsgContext *ctx = g_new(SkypeImgMsgContext, 1);
ctx->composetimestamp = ts;
ctx->conv = conv;
+ ctx->from = g_strdup(from);
purple_http_request(sa->pc, request, skypeweb_got_imagemessage, ctx);
purple_http_request_unref(request);
url = purple_strreplace(uri, "imgt1", "imgpsh_fullsize");
text = g_strdup_printf("<a href=\"%s\">Click here to view full version</a>", url);
- purple_conversation_write_system_message_ts(conv, text, PURPLE_MESSAGE_SYSTEM, ts);
+ purple_conversation_write_img_message(conv, from, text, 0, ts);
g_free(url);
g_free(text);
}
void
-skypeweb_download_moji_to_conv(SkypeWebAccount *sa, const gchar *text, const gchar *url_thumbnail, PurpleConversation *conv, time_t ts)
+skypeweb_download_moji_to_conv(SkypeWebAccount *sa, const gchar *text, const gchar *url_thumbnail, PurpleConversation *conv, time_t ts, const gchar* from)
{
gchar *cdn_url_thumbnail;
PurpleHttpURL *httpurl;
@@ -215,10 +225,11 @@ skypeweb_download_moji_to_conv(SkypeWebAccount *sa, const gchar *text, const gch
SkypeImgMsgContext *ctx = g_new(SkypeImgMsgContext, 1);
ctx->composetimestamp = ts;
ctx->conv = conv;
+ ctx->from = g_strdup(from);
purple_http_request(sa->pc, request, skypeweb_got_imagemessage, ctx);
purple_http_request_unref(request);
- purple_conversation_write_system_message_ts(conv, text, PURPLE_MESSAGE_SYSTEM, ts);
+ purple_conversation_write_img_message(conv, from, text, 0, ts);
g_free(cdn_url_thumbnail);
purple_http_url_free(httpurl);
diff --git a/skypeweb/skypeweb_contacts.h b/skypeweb/skypeweb_contacts.h
index e30f985..6d837a1 100644
--- a/skypeweb/skypeweb_contacts.h
+++ b/skypeweb/skypeweb_contacts.h
@@ -22,9 +22,9 @@
#include "libskypeweb.h"
void skypeweb_get_icon(PurpleBuddy *buddy);
-void skypeweb_download_uri_to_conv(SkypeWebAccount *sa, const gchar *uri, PurpleConversation *conv, time_t ts);
+void skypeweb_download_uri_to_conv(SkypeWebAccount *sa, const gchar *uri, PurpleConversation *conv, time_t ts, const gchar* from);
void skypeweb_download_video_message(SkypeWebAccount *sa, const gchar *sid, PurpleConversation *conv);
-void skypeweb_download_moji_to_conv(SkypeWebAccount *sa, const gchar *text, const gchar *url_thumbnail, PurpleConversation *conv, time_t ts);
+void skypeweb_download_moji_to_conv(SkypeWebAccount *sa, const gchar *text, const gchar *url_thumbnail, PurpleConversation *conv, time_t ts, const gchar* from);
void skypeweb_present_uri_as_filetransfer(SkypeWebAccount *sa, const gchar *uri, const gchar *from);
PurpleXfer *skypeweb_new_xfer(PurpleConnection *pc, const char *who);
diff --git a/skypeweb/skypeweb_messages.c b/skypeweb/skypeweb_messages.c
index 8e6100d..aa29c58 100644
--- a/skypeweb/skypeweb_messages.c
+++ b/skypeweb/skypeweb_messages.c
@@ -331,7 +331,10 @@ process_message_resource(SkypeWebAccount *sa, JsonObject *resource)
PurpleXmlNode *blob = purple_xmlnode_from_str(content, -1);
const gchar *uri = purple_xmlnode_get_attrib(blob, "url_thumbnail");
- skypeweb_download_uri_to_conv(sa, uri, conv, composetimestamp);
+ from = skypeweb_contact_url_to_name(from);
+ g_return_if_fail(from);
+
+ skypeweb_download_uri_to_conv(sa, uri, conv, composetimestamp, from);
purple_xmlnode_free(blob);
} else {
purple_debug_warning("skypeweb", "Unhandled thread message resource messagetype '%s'\n", messagetype);
@@ -418,7 +421,7 @@ process_message_resource(SkypeWebAccount *sa, JsonObject *resource)
}
conv = PURPLE_CONVERSATION(imconv);
- skypeweb_download_uri_to_conv(sa, uri, conv, composetimestamp);
+ skypeweb_download_uri_to_conv(sa, uri, conv, composetimestamp, from);
}
purple_xmlnode_free(blob);
} else if (g_str_equal(messagetype, "RichText/Media_GenericFile")) {
@@ -564,7 +567,7 @@ process_message_resource(SkypeWebAccount *sa, JsonObject *resource)
conv = PURPLE_CONVERSATION(imconv);
- skypeweb_download_moji_to_conv(sa, text, url_thumbnail, conv, composetimestamp);
+ skypeweb_download_moji_to_conv(sa, text, url_thumbnail, conv, composetimestamp, from);
const gchar *message = _("The user sent a Moji");