summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Withnall <philip@tecnocode.co.uk>2011-07-30 19:45:12 +0100
committerPhilip Withnall <philip@tecnocode.co.uk>2011-07-31 01:05:47 +0100
commitf37ee6a0e6b282a39c4a27a302a8f3d88264e844 (patch)
tree519929223a80f8775e1d34892846ab8f8fdac4f6
parent7b57196184eb1cdc3670d6d1d463f66c212615a1 (diff)
downloadlibgdata-f37ee6a0e6b282a39c4a27a302a8f3d88264e844.tar.gz
demos: Port the scrapbook to GDataAuthorizer
-rw-r--r--demos/scrapbook/scrapbook.c63
1 files changed, 30 insertions, 33 deletions
diff --git a/demos/scrapbook/scrapbook.c b/demos/scrapbook/scrapbook.c
index 0c6206d2..59e04c43 100644
--- a/demos/scrapbook/scrapbook.c
+++ b/demos/scrapbook/scrapbook.c
@@ -396,43 +396,40 @@ start_new_youtube_search (GtkWidget *widget, ScrapData *first) /* *first is a po
static void
properties_set (GtkWidget *widget, ScrapProps *self)
{
+ GDataClientLoginAuthorizer *authorizer;
+ GList *domains = NULL; /* list of GDataAuthorizationDomains */
+ GError *error = NULL;
+
+ /* Get the username and password to use */
self->main_data->username = g_strdup (gtk_entry_get_text (GTK_ENTRY (self->username_entry)));
self->main_data->password = g_strdup (gtk_entry_get_text (GTK_ENTRY (self->password_entry)));
- /* authenticate on youtube */
- {
- GError *error = NULL;
- gdata_service_authenticate (GDATA_SERVICE (self->main_data->youtube_service),
- self->main_data->username,
- self->main_data->password,
- NULL, &error);
- if (error != NULL) { /* we show this to the user in case he mistyped his password */
- GtkWidget *label;
- label = gtk_label_new (error->message);
- gtk_widget_show (label);
- gtk_box_pack_end (GTK_BOX (self->box1), label, FALSE, FALSE, 0);
- g_print("error\n%s\n", error->message);
- g_error_free(error);
- }
- }
- /* authenticate on picasa (no time for fun and games, so we assume he's got the same account on both services) */
- {
- GError *error = NULL;
- gdata_service_authenticate (GDATA_SERVICE (self->main_data->picasaweb_service),
- self->main_data->username,
- self->main_data->password,
- NULL, &error);
- if (error != NULL) {
- GtkWidget *label;
- label = gtk_label_new (error->message);
- gtk_widget_show (label);
- gtk_box_pack_end (GTK_BOX (self->box1), label, FALSE, FALSE, 0);
- g_print("error\n%s\n", error->message);
- g_error_free(error);
- }
+ /* Domains we need to be authorised for */
+ domains = g_list_prepend (domains, gdata_youtube_service_get_primary_authorization_domain ());
+ domains = g_list_prepend (domains, gdata_picasaweb_service_get_primary_authorization_domain ());
+
+ /* Authenticate */
+ authorizer = gdata_client_login_authorizer_new_for_authorization_domains (CLIENT_ID, domains);
+
+ gdata_client_login_authorizer_authenticate (authorizer, self->main_data->username, self->main_data->password, NULL, &error);
+
+ if (error != NULL) { /* we show this to the user in case they mistyped their password */
+ GtkWidget *label;
+
+ label = gtk_label_new (error->message);
+ gtk_widget_show (label);
+ gtk_box_pack_end (GTK_BOX (self->box1), label, FALSE, FALSE, 0);
+
+ g_print ("error\n%s\n", error->message);
+
+ g_error_free (error);
}
+ gdata_service_set_authorizer (GDATA_SERVICE (self->main_data->youtube_service), GDATA_AUTHORIZER (authorizer));
+ gdata_service_set_authorizer (GDATA_SERVICE (self->main_data->picasaweb_service), GDATA_AUTHORIZER (authorizer));
+
gtk_widget_destroy (self->window);
+ g_object_unref (authorizer);
}
static void
@@ -608,7 +605,7 @@ main(int argc, char **argv)
/* create a new query, without any search text, starting at 0, and search only MAX_RESULTS results */
youtubeSearch->query = gdata_query_new_with_limits (NULL, 0, MAX_RESULTS);
/* create a new youtube service, giving it our developer key; google no longer uses client ids so we send in an empty string (NULL gives an error) */
- scrapbook->youtube_service = gdata_youtube_service_new (DEVELOPER_KEY, CLIENT_ID);
+ scrapbook->youtube_service = gdata_youtube_service_new (DEVELOPER_KEY, NULL);
/* create a new list store and tree to show the user the results
* it has three columns (two of which are displayed): a pixbuf for the thumbnail, the title, and the video data itself (as a gdata generic entry) */
youtubeSearch->lStore = gtk_list_store_new (N_COLS, GDK_TYPE_PIXBUF, G_TYPE_STRING, GDATA_TYPE_ENTRY);
@@ -617,7 +614,7 @@ main(int argc, char **argv)
scrapbook->p_search = picasaSearch;
picasaSearch->main_data = scrapbook;
picasaSearch->query = gdata_query_new_with_limits (NULL, 0, MAX_RESULTS);
- scrapbook->picasaweb_service = gdata_picasaweb_service_new (CLIENT_ID);
+ scrapbook->picasaweb_service = gdata_picasaweb_service_new (NULL);
photoSearch = g_slice_new (struct _ScrapPicSearch);
scrapbook->p_search->pic = photoSearch;