[gthumb] 23hq.com: fixed authentication
- From: Paolo Bacchilega <paobac src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gthumb] 23hq.com: fixed authentication
- Date: Sat, 22 Dec 2012 16:10:15 +0000 (UTC)
commit 93093602c894af80f48e3e937114eb1ce8373eb8
Author: Paolo Bacchilega <paobac src gnome org>
Date: Sat Dec 22 16:04:33 2012 +0100
23hq.com: fixed authentication
extensions/23hq/actions.c | 11 +-
extensions/flicker/actions.c | 3 +-
extensions/flicker_utils/data/ui/Makefile.am | 3 +-
.../data/ui/flicker-ask-authorization.ui | 84 ----
...rization.ui => flickr-ask-authorization-old.ui} | 41 ++-
extensions/flicker_utils/flickr-service.c | 468 +++++++++++++++++++-
extensions/flicker_utils/flickr-types.h | 1 +
extensions/oauth/data/ui/Makefile.am | 9 +-
.../oauth/data/ui/oauth-complete-authorization.ui | 85 ----
9 files changed, 502 insertions(+), 203 deletions(-)
---
diff --git a/extensions/23hq/actions.c b/extensions/23hq/actions.c
index 553b6de..4097efc 100644
--- a/extensions/23hq/actions.c
+++ b/extensions/23hq/actions.c
@@ -34,16 +34,17 @@ static FlickrServer www_23hq_com = {
"http://www.23hq.com",
"http",
- "http://www.23hq.com/services/oauth/request_token",
- "http://www.23hq.com/services/oauth/authorize",
- "http://www.23hq.comm/services/oauth/access_token",
+ NULL,
+ "http://www.23hq.com/services/auth/",
+ NULL,
"8960706ee7f4151e893b11837e9c24ce",
"1ff8d1e45c873423",
"http://www.23hq.com/services/rest",
- "http://www.23hq.com/services/upload",
+ "http://www.23hq.com/services/upload/",
"www.23hq.com",
- TRUE
+ TRUE,
+ FALSE
};
diff --git a/extensions/flicker/actions.c b/extensions/flicker/actions.c
index 302b205..0ad858a 100644
--- a/extensions/flicker/actions.c
+++ b/extensions/flicker/actions.c
@@ -43,7 +43,8 @@ static FlickrServer www_flickr_com = {
"http://api.flickr.com/services/rest",
"http://api.flickr.com/services/upload",
"static.flickr.com",
- FALSE
+ FALSE,
+ TRUE
};
diff --git a/extensions/flicker_utils/data/ui/Makefile.am b/extensions/flicker_utils/data/ui/Makefile.am
index 822fa53..608532b 100644
--- a/extensions/flicker_utils/data/ui/Makefile.am
+++ b/extensions/flicker_utils/data/ui/Makefile.am
@@ -1,9 +1,8 @@
uidir = $(pkgdatadir)/ui
ui_DATA = \
export-to-flickr.ui \
- flicker-ask-authorization.ui \
- flicker-complete-authorization.ui \
flicker-export-completed.ui \
+ flickr-ask-authorization-old.ui \
import-from-flickr.ui
EXTRA_DIST = $(ui_DATA)
diff --git a/extensions/flicker_utils/data/ui/flicker-complete-authorization.ui b/extensions/flicker_utils/data/ui/flickr-ask-authorization-old.ui
similarity index 74%
rename from extensions/flicker_utils/data/ui/flicker-complete-authorization.ui
rename to extensions/flicker_utils/data/ui/flickr-ask-authorization-old.ui
index f62b64f..329b93c 100644
--- a/extensions/flicker_utils/data/ui/flicker-complete-authorization.ui
+++ b/extensions/flicker_utils/data/ui/flickr-ask-authorization-old.ui
@@ -1,12 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
- <requires lib="gtk+" version="2.16"/>
- <object class="GtkImage" id="button_image1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="stock">gtk-dialog-authentication</property>
- </object>
- <object class="GtkMessageDialog" id="complete_authorization_messagedialog">
+ <!-- interface-requires gtk+ 3.0 -->
+ <object class="GtkMessageDialog" id="ask_authorization_dialog">
<property name="can_focus">False</property>
<property name="border_width">5</property>
<property name="resizable">False</property>
@@ -29,11 +24,9 @@
<child>
<object class="GtkButton" id="cancel_button1">
<property name="label">gtk-cancel</property>
- <property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
- <property name="use_action_appearance">False</property>
<property name="use_stock">True</property>
<property name="xalign">0.50999999046325684</property>
</object>
@@ -46,11 +39,9 @@
<child>
<object class="GtkButton" id="complete_button">
<property name="label" translatable="yes">C_ontinue</property>
- <property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
- <property name="use_action_appearance">False</property>
<property name="image">button_image1</property>
<property name="use_underline">True</property>
</object>
@@ -60,6 +51,21 @@
<property name="position">1</property>
</packing>
</child>
+ <child>
+ <object class="GtkButton" id="authorize_button">
+ <property name="label" translatable="yes">_Authorize...</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="image">button_image</property>
+ <property name="use_underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
</object>
<packing>
<property name="expand">False</property>
@@ -72,9 +78,20 @@
</child>
<action-widgets>
<action-widget response="-6">cancel_button1</action-widget>
- <action-widget response="-5">complete_button</action-widget>
+ <action-widget response="1">complete_button</action-widget>
+ <action-widget response="2">authorize_button</action-widget>
</action-widgets>
</object>
+ <object class="GtkImage" id="button_image">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="stock">gtk-dialog-authentication</property>
+ </object>
+ <object class="GtkImage" id="button_image1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="stock">gtk-dialog-authentication</property>
+ </object>
<object class="GtkImage" id="icon_image1">
<property name="visible">True</property>
<property name="can_focus">False</property>
diff --git a/extensions/flicker_utils/flickr-service.c b/extensions/flicker_utils/flickr-service.c
index 9950eae..463250e 100644
--- a/extensions/flicker_utils/flickr-service.c
+++ b/extensions/flicker_utils/flickr-service.c
@@ -107,6 +107,8 @@ struct _FlickrServicePrivate {
AddPhotosData *add_photos;
FlickrServer *server;
OAuthConsumer *consumer;
+ GChecksum *checksum;
+ char *frob;
};
@@ -167,11 +169,456 @@ flickr_service_finalize (GObject *object)
post_photos_data_free (self->priv->post_photos);
add_photos_data_free (self->priv->add_photos);
oauth_consumer_free (self->priv->consumer);
+ g_checksum_free (self->priv->checksum);
+ g_free (self->priv->frob);
G_OBJECT_CLASS (flickr_service_parent_class)->finalize (object);
}
+/* -- flickr_service_old_auth_get_frob -- */
+
+
+static void
+flickr_service_old_auth_add_api_sig (FlickrService *self,
+ GHashTable *data_set)
+{
+ GList *keys;
+ GList *scan;
+
+ g_hash_table_insert (data_set, "api_key", (gpointer) self->priv->server->consumer_key);
+ if (oauth_service_get_token (OAUTH_SERVICE (self)) != NULL)
+ g_hash_table_insert (data_set, "auth_token", (gpointer) oauth_service_get_token (OAUTH_SERVICE (self)));
+
+ g_checksum_reset (self->priv->checksum);
+ g_checksum_update (self->priv->checksum, (guchar *) self->priv->server->consumer_secret, -1);
+
+ keys = g_hash_table_get_keys (data_set);
+ keys = g_list_sort (keys, (GCompareFunc) strcmp);
+ for (scan = keys; scan; scan = scan->next) {
+ char *key = scan->data;
+
+ g_checksum_update (self->priv->checksum, (guchar *) key, -1);
+ g_checksum_update (self->priv->checksum, g_hash_table_lookup (data_set, key), -1);
+ }
+ g_hash_table_insert (data_set, "api_sig", (gpointer) g_checksum_get_string (self->priv->checksum));
+
+ g_list_free (keys);
+}
+
+
+static void
+flickr_service_old_auth_get_frob_ready_cb (SoupSession *session,
+ SoupMessage *msg,
+ gpointer user_data)
+{
+ FlickrService *self = user_data;
+ GSimpleAsyncResult *result;
+ SoupBuffer *body;
+ DomDocument *doc = NULL;
+ GError *error = NULL;
+
+ g_free (self->priv->frob);
+ self->priv->frob = NULL;
+
+ result = _web_service_get_result (WEB_SERVICE (self));
+
+ body = soup_message_body_flatten (msg->response_body);
+ if (flickr_utils_parse_response (body, &doc, &error)) {
+ DomElement *root;
+ DomElement *child;
+
+ root = DOM_ELEMENT (doc)->first_child;
+ for (child = root->first_child; child; child = child->next_sibling)
+ if (g_strcmp0 (child->tag_name, "frob") == 0)
+ self->priv->frob = g_strdup (dom_element_get_inner_text (child));
+
+ if (self->priv->frob == NULL) {
+ error = g_error_new_literal (WEB_SERVICE_ERROR, WEB_SERVICE_ERROR_GENERIC, _("Unknown error"));
+ g_simple_async_result_set_from_error (result, error);
+ }
+ else
+ g_simple_async_result_set_op_res_gboolean (result, TRUE);
+
+ g_object_unref (doc);
+ }
+ else
+ g_simple_async_result_set_from_error (result, error);
+
+ g_simple_async_result_complete_in_idle (result);
+
+ soup_buffer_free (body);
+}
+
+
+void
+flickr_service_old_auth_get_frob (FlickrService *self,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ GHashTable *data_set;
+ SoupMessage *msg;
+
+ oauth_service_set_token (OAUTH_SERVICE (self), NULL);
+
+ data_set = g_hash_table_new (g_str_hash, g_str_equal);
+ g_hash_table_insert (data_set, "method", "flickr.auth.getFrob");
+ flickr_service_old_auth_add_api_sig (self, data_set);
+ msg = soup_form_request_new_from_hash ("GET", self->priv->server->rest_url, data_set);
+ _web_service_send_message (WEB_SERVICE (self),
+ msg,
+ cancellable,
+ callback,
+ user_data,
+ flickr_service_old_auth_get_frob,
+ flickr_service_old_auth_get_frob_ready_cb,
+ self);
+
+ g_hash_table_destroy (data_set);
+}
+
+
+static gboolean
+flickr_service_old_auth_get_frob_finish (FlickrService *self,
+ GAsyncResult *result,
+ GError **error)
+{
+ if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (result), error))
+ return FALSE;
+ else
+ return TRUE;
+}
+
+
+/* -- flickr_service_old_auth_get_token -- */
+
+
+static void
+flickr_service_old_auth_get_token_ready_cb (SoupSession *session,
+ SoupMessage *msg,
+ gpointer user_data)
+{
+ FlickrService *self = user_data;
+ GSimpleAsyncResult *result;
+ SoupBuffer *body;
+ DomDocument *doc = NULL;
+ GError *error = NULL;
+
+ result = _web_service_get_result (WEB_SERVICE (self));
+
+ body = soup_message_body_flatten (msg->response_body);
+ if (flickr_utils_parse_response (body, &doc, &error)) {
+ DomElement *response;
+ DomElement *auth;
+ const char *token;
+
+ token = NULL;
+ response = DOM_ELEMENT (doc)->first_child;
+ for (auth = response->first_child; auth; auth = auth->next_sibling) {
+ if (g_strcmp0 (auth->tag_name, "auth") == 0) {
+ DomElement *node;
+
+ for (node = auth->first_child; node; node = node->next_sibling) {
+ if (g_strcmp0 (node->tag_name, "token") == 0) {
+ token = dom_element_get_inner_text (node);
+ oauth_service_set_token (OAUTH_SERVICE (self), token);
+ break;
+ }
+ }
+
+ for (node = auth->first_child; node; node = node->next_sibling) {
+ if (g_strcmp0 (node->tag_name, "user") == 0) {
+ FlickrAccount *account;
+
+ account = g_object_new (FLICKR_TYPE_ACCOUNT,
+ "id", dom_element_get_attribute (node, "nsid"),
+ "username", dom_element_get_attribute (node, "username"),
+ "name", dom_element_get_attribute (node, "fullname"),
+ "token", token,
+ NULL);
+ g_simple_async_result_set_op_res_gpointer (result, account, g_object_unref);
+ break;
+ }
+ }
+ }
+ }
+
+ if (token == NULL) {
+ error = g_error_new_literal (WEB_SERVICE_ERROR, WEB_SERVICE_ERROR_GENERIC, _("Unknown error"));
+ g_simple_async_result_set_from_error (result, error);
+ }
+
+ g_object_unref (doc);
+ }
+ else
+ g_simple_async_result_set_from_error (result, error);
+
+ g_simple_async_result_complete_in_idle (result);
+
+ soup_buffer_free (body);
+}
+
+
+static void
+flickr_service_old_auth_get_token (FlickrService *self,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ GHashTable *data_set;
+ SoupMessage *msg;
+
+ oauth_service_set_token (OAUTH_SERVICE (self), NULL);
+
+ data_set = g_hash_table_new (g_str_hash, g_str_equal);
+ g_hash_table_insert (data_set, "method", "flickr.auth.getToken");
+ g_hash_table_insert (data_set, "frob", self->priv->frob);
+ flickr_service_old_auth_add_api_sig (self, data_set);
+ msg = soup_form_request_new_from_hash ("GET", self->priv->server->rest_url, data_set);
+ _web_service_send_message (WEB_SERVICE (self),
+ msg,
+ cancellable,
+ callback,
+ user_data,
+ flickr_service_old_auth_get_token,
+ flickr_service_old_auth_get_token_ready_cb,
+ self);
+
+ g_hash_table_destroy (data_set);
+}
+
+
+static OAuthAccount *
+flickr_service_old_auth_get_token_finish (FlickrService *self,
+ GAsyncResult *result,
+ GError **error)
+{
+ if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (result), error))
+ return FALSE;
+ else
+ return g_object_ref (g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (result)));
+}
+
+
+static char *
+old_auth_get_access_type_name (WebAuthorization access_type)
+{
+ char *name = NULL;
+
+ switch (access_type) {
+ case WEB_AUTHORIZATION_READ:
+ name = "read";
+ break;
+
+ case WEB_AUTHORIZATION_WRITE:
+ name = "write";
+ break;
+ }
+
+ return name;
+}
+
+
+char *
+flickr_service_old_auth_get_login_link (FlickrService *self,
+ WebAuthorization access_type)
+{
+ GHashTable *data_set;
+ GString *link;
+ GList *keys;
+ GList *scan;
+
+ g_return_val_if_fail (self->priv->frob != NULL, NULL);
+
+ data_set = g_hash_table_new (g_str_hash, g_str_equal);
+ g_hash_table_insert (data_set, "frob", self->priv->frob);
+ g_hash_table_insert (data_set, "perms", old_auth_get_access_type_name (access_type));
+ flickr_service_old_auth_add_api_sig (self, data_set);
+
+ link = g_string_new (self->priv->server->authorization_url);
+ g_string_append (link, "?");
+ keys = g_hash_table_get_keys (data_set);
+ for (scan = keys; scan; scan = scan->next) {
+ char *key = scan->data;
+
+ if (scan != keys)
+ g_string_append (link, "&");
+ g_string_append (link, key);
+ g_string_append (link, "=");
+ g_string_append (link, g_hash_table_lookup (data_set, key));
+ }
+
+ g_list_free (keys);
+ g_hash_table_destroy (data_set);
+
+ return g_string_free (link, FALSE);
+}
+
+
+/* -- flickr_service_ask_authorization -- */
+
+
+#define _RESPONSE_CONTINUE 1
+#define _RESPONSE_AUTHORIZE 2
+
+
+static void
+old_auth_token_ready_cb (GObject *source_object,
+ GAsyncResult *res,
+ gpointer user_data)
+{
+ FlickrService *self = user_data;
+ GError *error = NULL;
+ OAuthAccount *account;
+
+ account = flickr_service_old_auth_get_token_finish (self, res, &error);
+
+ if (account == NULL) {
+ gtk_dialog_response (GTK_DIALOG (_web_service_get_auth_dialog (WEB_SERVICE (self))), GTK_RESPONSE_CANCEL);
+ gth_task_completed (GTH_TASK (self), error);
+ return;
+ }
+
+ web_service_set_current_account (WEB_SERVICE (self), account);
+ gtk_dialog_response (GTK_DIALOG (_web_service_get_auth_dialog (WEB_SERVICE (self))), GTK_RESPONSE_OK);
+
+ g_object_unref (account);
+}
+
+
+static void
+old_authorization_complete (FlickrService *self)
+{
+ GtkWidget *dialog;
+ GtkBuilder *builder;
+ char *text;
+ char *secondary_text;
+
+ dialog = _web_service_get_auth_dialog (WEB_SERVICE (self));
+ builder = g_object_get_data (G_OBJECT (dialog), "builder");
+ gtk_widget_hide (_gtk_builder_get_widget (builder, "authorize_button"));
+ gtk_widget_show (_gtk_builder_get_widget (builder, "complete_button"));
+ text = g_strdup_printf (_("Return to this window when you have finished the authorization process on %s"), self->priv->server->display_name);
+ secondary_text = g_strdup (_("Once you're done, click the 'Continue' button below."));
+ g_object_set (dialog, "text", text, "secondary-text", secondary_text, NULL);
+ gtk_window_present (GTK_WINDOW (dialog));
+
+ g_free (secondary_text);
+ g_free (text);
+}
+
+
+static void
+old_authorization_dialog_response_cb (GtkDialog *dialog,
+ int response_id,
+ gpointer user_data)
+{
+ FlickrService *self = user_data;
+
+ switch (response_id) {
+ case _RESPONSE_AUTHORIZE:
+ {
+ GdkScreen *screen;
+ char *url;
+ GError *error = NULL;
+
+ screen = gtk_widget_get_screen (GTK_WIDGET (dialog));
+ url = flickr_service_old_auth_get_login_link (self, WEB_AUTHORIZATION_WRITE);
+ if (gtk_show_uri (screen, url, 0, &error))
+ old_authorization_complete (self);
+ else
+ gth_task_completed (GTH_TASK (self), error);
+
+ g_free (url);
+ }
+ break;
+
+ case _RESPONSE_CONTINUE:
+ gtk_widget_hide (GTK_WIDGET (dialog));
+ gth_task_dialog (GTH_TASK (self), FALSE, NULL);
+ flickr_service_old_auth_get_token (self,
+ gth_task_get_cancellable (GTH_TASK (self)),
+ old_auth_token_ready_cb,
+ self);
+ break;
+
+ default:
+ break;
+ }
+}
+
+
+static void
+old_auth_frob_ready_cb (GObject *source_object,
+ GAsyncResult *result,
+ gpointer user_data)
+{
+ FlickrService *self = user_data;
+ GError *error = NULL;
+ GtkBuilder *builder;
+ GtkWidget *dialog;
+ char *text;
+ char *secondary_text;
+
+ if (! flickr_service_old_auth_get_frob_finish (self, result, &error)) {
+ gth_task_completed (GTH_TASK (self), error);
+ return;
+ }
+
+ builder = _gtk_builder_new_from_file ("flickr-ask-authorization-old.ui", "flicker_utils");
+ dialog = _gtk_builder_get_widget (builder, "ask_authorization_dialog");
+ text = g_strdup_printf (_("gThumb requires your authorization to upload the photos to %s"), self->priv->server->display_name);
+ secondary_text = g_strdup_printf (_("Click 'Authorize' to open your web browser and authorize gthumb to upload photos to %s. When you're finished, return to this window to complete the authorization."), self->priv->server->display_name);
+ g_object_set (dialog, "text", text, "secondary-text", secondary_text, NULL);
+ gtk_widget_show (_gtk_builder_get_widget (builder, "authorize_button"));
+ gtk_widget_hide (_gtk_builder_get_widget (builder, "complete_button"));
+ g_object_set_data_full (G_OBJECT (dialog), "builder", builder, g_object_unref);
+ g_signal_connect (dialog,
+ "response",
+ G_CALLBACK (old_authorization_dialog_response_cb),
+ self);
+
+ _web_service_set_auth_dialog (WEB_SERVICE (self), GTK_DIALOG (dialog));
+ gtk_window_present (GTK_WINDOW (dialog));
+
+ g_free (secondary_text);
+ g_free (text);
+}
+
+
+static void
+flickr_service_ask_authorization (WebService *base)
+{
+ FlickrService *self = FLICKR_SERVICE (base);
+
+ if (self->priv->server->new_authentication) {
+ WEB_SERVICE_CLASS (flickr_service_parent_class)->ask_authorization (base);
+ return;
+ }
+
+ /* old authentication process, still used by 23hq.com */
+
+ flickr_service_old_auth_get_frob (self,
+ gth_task_get_cancellable (GTH_TASK (self)),
+ old_auth_frob_ready_cb,
+ self);
+}
+
+
+static void
+flickr_service_add_signature (FlickrService *self,
+ const char *method,
+ const char *url,
+ GHashTable *parameters)
+{
+ if (self->priv->server->new_authentication)
+ flickr_service_add_signature (self, method, url, parameters);
+ else
+ flickr_service_old_auth_add_api_sig (self, parameters);
+}
+
+
/* -- flickr_service_get_user_info -- */
@@ -258,7 +705,7 @@ flickr_service_get_user_info (WebService *base,
data_set = g_hash_table_new (g_str_hash, g_str_equal);
g_hash_table_insert (data_set, "format", RESPONSE_FORMAT);
g_hash_table_insert (data_set, "method", "flickr.people.getUploadStatus");
- oauth_service_add_signature (OAUTH_SERVICE (self), "GET", self->priv->server->rest_url, data_set);
+ flickr_service_add_signature (self, "GET", self->priv->server->rest_url, data_set);
msg = soup_form_request_new_from_hash ("GET", self->priv->server->rest_url, data_set);
_web_service_send_message (WEB_SERVICE (self),
msg,
@@ -287,6 +734,7 @@ flickr_service_class_init (FlickrServiceClass *klass)
object_class->finalize = flickr_service_finalize;
service_class = (WebServiceClass*) klass;
+ service_class->ask_authorization = flickr_service_ask_authorization;
service_class->get_user_info = flickr_service_get_user_info;
/* properties */
@@ -307,6 +755,8 @@ flickr_service_init (FlickrService *self)
self->priv->post_photos = NULL;
self->priv->add_photos = NULL;
self->priv->server = NULL;
+ self->priv->checksum = g_checksum_new (G_CHECKSUM_MD5);
+ self->priv->frob = NULL;
}
@@ -415,7 +865,7 @@ flickr_service_list_photosets (FlickrService *self,
data_set = g_hash_table_new (g_str_hash, g_str_equal);
g_hash_table_insert (data_set, "format", RESPONSE_FORMAT);
g_hash_table_insert (data_set, "method", "flickr.photosets.getList");
- oauth_service_add_signature (OAUTH_SERVICE (self), "GET", self->priv->server->rest_url, data_set);
+ flickr_service_add_signature (self, "GET", self->priv->server->rest_url, data_set);
msg = soup_form_request_new_from_hash ("GET", self->priv->server->rest_url, data_set);
_web_service_send_message (WEB_SERVICE (self),
msg,
@@ -519,7 +969,7 @@ flickr_service_create_photoset (FlickrService *self,
g_hash_table_insert (data_set, "method", "flickr.photosets.create");
g_hash_table_insert (data_set, "title", photoset->title);
g_hash_table_insert (data_set, "primary_photo_id", photoset->primary);
- oauth_service_add_signature (OAUTH_SERVICE (self), "GET", self->priv->server->rest_url, data_set);
+ flickr_service_add_signature (self, "GET", self->priv->server->rest_url, data_set);
msg = soup_form_request_new_from_hash ("GET", self->priv->server->rest_url, data_set);
_web_service_send_message (WEB_SERVICE (self),
msg,
@@ -650,7 +1100,7 @@ add_current_photo_to_set (FlickrService *self)
g_hash_table_insert (data_set, "method", "flickr.photosets.addPhoto");
g_hash_table_insert (data_set, "photoset_id", self->priv->add_photos->photoset->id);
g_hash_table_insert (data_set, "photo_id", photo_id);
- oauth_service_add_signature (OAUTH_SERVICE (self), "POST", self->priv->server->rest_url, data_set);
+ flickr_service_add_signature (self, "POST", self->priv->server->rest_url, data_set);
msg = soup_form_request_new_from_hash ("POST", self->priv->server->rest_url, data_set);
_web_service_send_message (WEB_SERVICE (self),
msg,
@@ -903,7 +1353,7 @@ post_photo_file_buffer_ready_cb (void **buffer,
g_hash_table_insert (data_set, "is_family", ((self->priv->post_photos->privacy_level == FLICKR_PRIVACY_FAMILY) || (self->priv->post_photos->privacy_level == FLICKR_PRIVACY_FRIENDS_FAMILY)) ? "1" : "0");
g_hash_table_insert (data_set, "safety_level", get_safety_value (self->priv->post_photos->safety_level));
g_hash_table_insert (data_set, "hidden", self->priv->post_photos->hidden ? "2" : "1");
- oauth_service_add_signature (OAUTH_SERVICE (self), "POST", self->priv->server->upload_url, data_set);
+ flickr_service_add_signature (self, "POST", self->priv->server->upload_url, data_set);
keys = g_hash_table_get_keys (data_set);
for (scan = keys; scan; scan = scan->next) {
@@ -1018,8 +1468,8 @@ post_photos_info_ready_cb (GList *files,
void
flickr_service_post_photos (FlickrService *self,
- FlickrPrivacy privacy_level,
- FlickrSafety safety_level,
+ FlickrPrivacy privacy_level,
+ FlickrSafety safety_level,
gboolean hidden,
int max_width,
int max_height,
@@ -1030,7 +1480,7 @@ flickr_service_post_photos (FlickrService *self,
{
gth_task_progress (GTH_TASK (self),
_("Uploading the files to the server"),
- NULL,
+ "",
TRUE,
0.0);
@@ -1218,7 +1668,7 @@ flickr_service_list_photoset_page (FlickrListPhotosData *data,
g_hash_table_insert (data_set, "page", per_page);
}
- oauth_service_add_signature (OAUTH_SERVICE (self), "GET", self->priv->server->rest_url, data_set);
+ flickr_service_add_signature (self, "GET", self->priv->server->rest_url, data_set);
msg = soup_form_request_new_from_hash ("GET", self->priv->server->rest_url, data_set);
_web_service_send_message (WEB_SERVICE (self),
msg,
diff --git a/extensions/flicker_utils/flickr-types.h b/extensions/flicker_utils/flickr-types.h
index 75b150c..4a1f67a 100644
--- a/extensions/flicker_utils/flickr-types.h
+++ b/extensions/flicker_utils/flickr-types.h
@@ -77,6 +77,7 @@ typedef struct {
const char *upload_url;
const char *static_url;
gboolean automatic_urls;
+ gboolean new_authentication;
} FlickrServer;
diff --git a/extensions/oauth/data/ui/Makefile.am b/extensions/oauth/data/ui/Makefile.am
index 01d55f9..c929718 100644
--- a/extensions/oauth/data/ui/Makefile.am
+++ b/extensions/oauth/data/ui/Makefile.am
@@ -1,9 +1,8 @@
uidir = $(pkgdatadir)/ui
-ui_DATA = \
- oauth-account-chooser.ui \
- oauth-account-manager.ui \
- oauth-ask-authorization.ui \
- oauth-complete-authorization.ui
+ui_DATA = \
+ oauth-account-chooser.ui \
+ oauth-account-manager.ui \
+ oauth-ask-authorization.ui
EXTRA_DIST = $(ui_DATA)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]