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:
authorJan Palus <jpalus@fastmail.com>2021-02-15 15:28:56 +0300
committerJan Palus <jpalus@fastmail.com>2021-02-15 15:30:38 +0300
commitbebec9759c8a3c1b5ce8174234e7639c440fcc7d (patch)
treec58e19c55208e4881d696feb2984fa5bdde8d186
parent42df93659e50fac89f2bc39433051d94b65a1340 (diff)
Fix direction of uri messages
-rw-r--r--skypeweb/skypeweb_contacts.c8
-rw-r--r--skypeweb/skypeweb_messages.c10
-rw-r--r--skypeweb/skypeweb_messages.h1
3 files changed, 10 insertions, 9 deletions
diff --git a/skypeweb/skypeweb_contacts.c b/skypeweb/skypeweb_contacts.c
index ecaab9e..5186be2 100644
--- a/skypeweb/skypeweb_contacts.c
+++ b/skypeweb/skypeweb_contacts.c
@@ -208,14 +208,16 @@ skypeweb_download_uri_to_conv(SkypeWebAccount *sa, const gchar *uri, SkypeWebURI
url = g_strdup(uri);
break;
}
+
+ gboolean from_self = skypeweb_is_user_self(sa, from);
if (purple_strequal(purple_core_get_ui(), "BitlBee")) {
// Bitlbee doesn't support images, so just plop a url to the image instead
if (PURPLE_IS_IM_CONVERSATION(conv)) {
- purple_serv_got_im(sa->pc, from, url, PURPLE_MESSAGE_RECV, ts);
+ purple_serv_got_im(sa->pc, from, url, from_self ? PURPLE_MESSAGE_SEND : PURPLE_MESSAGE_RECV, ts);
} else if (PURPLE_IS_CHAT_CONVERSATION(conv)) {
gchar *chatname = purple_conversation_get_data(conv, "chatname");
- purple_serv_got_chat_in(sa->pc, g_str_hash(chatname), from, PURPLE_MESSAGE_RECV, url, ts);
+ purple_serv_got_chat_in(sa->pc, g_str_hash(chatname), from, from_self ? PURPLE_MESSAGE_SEND : PURPLE_MESSAGE_RECV, url, ts);
}
g_free(url);
@@ -234,7 +236,7 @@ skypeweb_download_uri_to_conv(SkypeWebAccount *sa, const gchar *uri, SkypeWebURI
purple_http_request_unref(request);
text = g_strdup_printf("<a href=\"%s\">Click here to view full %s</a>", url, skypeweb_uri_type_name(uri_type));
- purple_conversation_write_img_message(conv, from, text, 0, ts);
+ purple_conversation_write_img_message(conv, from, text, from_self ? PURPLE_MESSAGE_SEND : PURPLE_MESSAGE_RECV, ts);
g_free(url);
g_free(text);
diff --git a/skypeweb/skypeweb_messages.c b/skypeweb/skypeweb_messages.c
index 71c7b5c..959fb31 100644
--- a/skypeweb/skypeweb_messages.c
+++ b/skypeweb/skypeweb_messages.c
@@ -28,7 +28,7 @@ static GString* make_last_timestamp_setting(const gchar *convname) {
return rv;
}
-static gboolean
+gboolean
skypeweb_is_user_self(SkypeWebAccount *sa, const gchar *username) {
if (!username || *username == 0) {
return FALSE;
@@ -434,15 +434,13 @@ process_message_resource(SkypeWebAccount *sa, JsonObject *resource)
g_free(html);
} else if (g_str_equal(messagetype, "RichText/UriObject") || g_str_equal(messagetype, "RichText/Media_Video")) {
PurpleIMConversation *imconv;
+ const gchar* conv_buddy = skypeweb_is_user_self(sa, from) ? convbuddyname : from;
- if (skypeweb_is_user_self(sa, from)) {
- from = convbuddyname;
- }
if (from != NULL) {
- imconv = purple_conversations_find_im_with_account(from, sa->account);
+ imconv = purple_conversations_find_im_with_account(conv_buddy, sa->account);
if (imconv == NULL)
{
- imconv = purple_im_conversation_new(sa->account, from);
+ imconv = purple_im_conversation_new(sa->account, conv_buddy);
}
conv = PURPLE_CONVERSATION(imconv);
diff --git a/skypeweb/skypeweb_messages.h b/skypeweb/skypeweb_messages.h
index 98fcb60..f41eec6 100644
--- a/skypeweb/skypeweb_messages.h
+++ b/skypeweb/skypeweb_messages.h
@@ -68,5 +68,6 @@ void skype_web_get_offline_history(SkypeWebAccount *sa);
void skypeweb_mark_conv_seen(PurpleConversation *conv, PurpleConversationUpdateType type);
void skypeweb_gather_self_properties(SkypeWebAccount *sa);
+gboolean skypeweb_is_user_self(SkypeWebAccount *sa, const gchar *username);
#endif /* SKYPEWEB_MESSAGES_H */