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>2014-11-30 12:54:43 +0300
committerEion Robb <eion@robbmob.com>2014-11-30 12:54:43 +0300
commitda225c9c1c759e76aac5f90f2a93cfbe4fa2de12 (patch)
tree50d036677a3c7590cb4fa07e23d489e606c30c77
parente219b1e82de3c0972c7ae9283c719176758bb5f9 (diff)
SkypeWeb : Fix idle statuses, buddy search
-rw-r--r--skypeweb/libskypeweb.c15
-rw-r--r--skypeweb/libskypeweb.h2
-rw-r--r--skypeweb/skypeweb_contacts.c14
-rw-r--r--skypeweb/skypeweb_messages.c6
4 files changed, 19 insertions, 18 deletions
diff --git a/skypeweb/libskypeweb.c b/skypeweb/libskypeweb.c
index 25c2688..13644bd 100644
--- a/skypeweb/libskypeweb.c
+++ b/skypeweb/libskypeweb.c
@@ -89,15 +89,18 @@ skypeweb_status_types(PurpleAccount *account)
GList *types = NULL;
PurpleStatusType *status;
- status = purple_status_type_new_with_attrs(PURPLE_STATUS_AVAILABLE, "Online", NULL, TRUE, TRUE, FALSE, "message", "Mood", purple_value_new(PURPLE_TYPE_STRING), NULL);
+ status = purple_status_type_new_full(PURPLE_STATUS_OFFLINE, NULL, NULL, FALSE, TRUE, FALSE);
types = g_list_append(types, status);
- status = purple_status_type_new_with_attrs(PURPLE_STATUS_OFFLINE, "Offline", NULL, TRUE, TRUE, FALSE, "message", "Mood", purple_value_new(PURPLE_TYPE_STRING), NULL);
+
+ status = purple_status_type_new_with_attrs(PURPLE_STATUS_AVAILABLE, "Online", "Online", TRUE, TRUE, FALSE, "message", "Mood", purple_value_new(PURPLE_TYPE_STRING), NULL);
+ types = g_list_append(types, status);
+ status = purple_status_type_new_with_attrs(PURPLE_STATUS_OFFLINE, "Offline", "Offline", TRUE, TRUE, FALSE, "message", "Mood", purple_value_new(PURPLE_TYPE_STRING), NULL);
types = g_list_append(types, status);
- status = purple_status_type_new_with_attrs(PURPLE_STATUS_UNAVAILABLE, "Idle", NULL, TRUE, TRUE, FALSE, "message", "Mood", purple_value_new(PURPLE_TYPE_STRING), NULL);
+ status = purple_status_type_new_with_attrs(PURPLE_STATUS_AVAILABLE, "Idle", "Idle", FALSE, TRUE, FALSE, "message", "Mood", purple_value_new(PURPLE_TYPE_STRING), NULL);
types = g_list_append(types, status);
- status = purple_status_type_new_with_attrs(PURPLE_STATUS_AWAY, "Away", NULL, TRUE, TRUE, FALSE, "message", "Mood", purple_value_new(PURPLE_TYPE_STRING), NULL);
+ status = purple_status_type_new_with_attrs(PURPLE_STATUS_AWAY, "Away", "Away", TRUE, TRUE, FALSE, "message", "Mood", purple_value_new(PURPLE_TYPE_STRING), NULL);
types = g_list_append(types, status);
- status = purple_status_type_new_with_attrs(PURPLE_STATUS_EXTENDED_AWAY, "Hidden", NULL, TRUE, TRUE, FALSE, "message", "Mood", purple_value_new(PURPLE_TYPE_STRING), NULL);
+ status = purple_status_type_new_with_attrs(PURPLE_STATUS_EXTENDED_AWAY, "Hidden", "Hidden", TRUE, TRUE, FALSE, "message", "Mood", purple_value_new(PURPLE_TYPE_STRING), NULL);
types = g_list_append(types, status);
return types;
@@ -118,8 +121,6 @@ skypeweb_buddy_free(PurpleBuddy *buddy)
g_free(sbuddy->avatar_url);
g_free(sbuddy->mood);
g_free(sbuddy->rich_mood);
- g_free(sbuddy->country);
- g_free(sbuddy->city);
g_free(sbuddy);
}
diff --git a/skypeweb/libskypeweb.h b/skypeweb/libskypeweb.h
index a2fbf25..d1ff3ef 100644
--- a/skypeweb/libskypeweb.h
+++ b/skypeweb/libskypeweb.h
@@ -118,8 +118,6 @@ struct _SkypeWebBuddy {
gchar *avatar_url;
gchar *mood;
gchar *rich_mood;
- gchar *country;
- gchar *city;
};
diff --git a/skypeweb/skypeweb_contacts.c b/skypeweb/skypeweb_contacts.c
index 134757b..c2531c6 100644
--- a/skypeweb/skypeweb_contacts.c
+++ b/skypeweb/skypeweb_contacts.c
@@ -100,7 +100,7 @@ skypeweb_search_users_text_cb(SkypeWebAccount *sa, JsonNode *node, gpointer user
PurpleNotifySearchResults *results;
PurpleNotifySearchColumn *column;
-
+ resultsarray = json_node_get_array(node);
length = json_array_get_length(resultsarray);
if (length == 0)
@@ -221,6 +221,8 @@ skypeweb_got_friend_profiles(SkypeWebAccount *sa, JsonNode *node, gpointer user_
const gchar *username = json_object_get_string_member(contact, "username");
const gchar *new_avatar;
+ purple_debug_info("skypeweb", "got_profiles processing %s\n", username);
+
buddy = purple_find_buddy(sa->account, username);
if (!buddy)
continue;
@@ -233,7 +235,8 @@ skypeweb_got_friend_profiles(SkypeWebAccount *sa, JsonNode *node, gpointer user_
g_free(sbuddy->display_name); sbuddy->display_name = g_strdup(json_object_get_string_member(contact, "displayname"));
serv_got_alias(sa->pc, username, sbuddy->display_name);
-
+ purple_blist_server_alias_buddy(buddy, json_object_get_string_member(contact, "firstname"));
+
new_avatar = json_object_get_string_member(contact, "avatarUrl");
if (new_avatar && (!sbuddy->avatar_url || !g_str_equal(sbuddy->avatar_url, new_avatar))) {
g_free(sbuddy->avatar_url);
@@ -243,8 +246,6 @@ skypeweb_got_friend_profiles(SkypeWebAccount *sa, JsonNode *node, gpointer user_
g_free(sbuddy->mood); sbuddy->mood = g_strdup(json_object_get_string_member(contact, "mood"));
g_free(sbuddy->rich_mood); sbuddy->rich_mood = g_strdup(json_object_get_string_member(contact, "richMood"));
- g_free(sbuddy->country); sbuddy->country = g_strdup(json_object_get_string_member(contact, "country"));
- g_free(sbuddy->city); sbuddy->city = g_strdup(json_object_get_string_member(contact, "city"));
}
}
@@ -323,8 +324,6 @@ skypeweb_got_info(SkypeWebAccount *sa, JsonNode *node, gpointer user_data)
g_free(sbuddy->mood); sbuddy->mood = g_strdup(json_object_get_string_member(userobj, "mood"));
g_free(sbuddy->rich_mood); sbuddy->rich_mood = g_strdup(json_object_get_string_member(userobj, "richMood"));
- g_free(sbuddy->country); sbuddy->country = g_strdup(json_object_get_string_member(userobj, "country"));
- g_free(sbuddy->city); sbuddy->city = g_strdup(json_object_get_string_member(userobj, "city"));
}
purple_notify_userinfo(sa->pc, username, user_info, NULL, NULL);
@@ -426,7 +425,8 @@ skypeweb_get_friend_list_cb(SkypeWebAccount *sa, JsonNode *node, gpointer user_d
sbuddy->buddy = buddy;
buddy->proto_data = sbuddy;
- serv_got_alias(sa->pc, skypename, sbuddy->display_name); //purple_blist_server_alias_buddy(buddy, string_parts[3]);
+ serv_got_alias(sa->pc, skypename, sbuddy->display_name);
+ purple_blist_server_alias_buddy(buddy, fullname);
users_to_fetch = g_slist_prepend(users_to_fetch, (gpointer) skypename);
}
diff --git a/skypeweb/skypeweb_messages.c b/skypeweb/skypeweb_messages.c
index 3e19294..daa8069 100644
--- a/skypeweb/skypeweb_messages.c
+++ b/skypeweb/skypeweb_messages.c
@@ -24,6 +24,7 @@ process_userpresence_resource(SkypeWebAccount *sa, JsonObject *resource)
}
purple_prpl_got_user_status(sa->account, from, status, NULL);
+ purple_prpl_got_user_idle(sa->account, from, g_str_equal(status, "Idle"), 0);
}
static void
@@ -198,7 +199,7 @@ skypeweb_got_registration_token(PurpleUtilFetchUrlData *url_data, gpointer user_
_("Failed getting Registration Token"));
return;
}
- purple_debug_info("skypeweb", "New RegistrationToken is %s\n", registration_token);
+ //purple_debug_info("skypeweb", "New RegistrationToken is %s\n", registration_token);
sa->registration_token = registration_token;
@@ -223,6 +224,7 @@ skypeweb_get_registration_token(SkypeWebAccount *sa)
request = g_strdup_printf("POST /v1/users/ME/endpoints HTTP/1.0\r\n"
"Connection: close\r\n"
"Accept: */*\r\n"
+ "BehaviorOverride: redirectAs404\r\n"
"LockAndKey: appId=" SKYPEWEB_LOCKANDKEY_APPID "; time=%s; lockAndKeyResponse=%s\r\n"
"ClientInfo: os=Windows; osVer=8.1; proc=Win32; lcid=en-us; deviceType=1; country=n/a; clientName=swx-skype.com; clientVer=908/1.0.0.20\r\n"
"Host: " SKYPEWEB_MESSAGES_HOST "\r\n"
@@ -231,7 +233,7 @@ skypeweb_get_registration_token(SkypeWebAccount *sa)
"Content-Length: 2\r\n\r\n{}",
curtime, response, sa->skype_token);
- purple_debug_info("skypeweb", "reg token request is %s\n", request);
+ //purple_debug_info("skypeweb", "reg token request is %s\n", request);
requestdata = purple_util_fetch_url_request(sa->account, messages_url, TRUE, NULL, FALSE, request, TRUE, 524288, skypeweb_got_registration_token, sa);
requestdata->num_times_redirected = 10; /* Prevent following redirects */