Author: akv
Date: 2010-06-05 00:03:52 +0200 (Sat, 05 Jun 2010)
New Revision: 3417
Modified:
trunk/plugins/output-picasa/output-picasa.c
trunk/plugins/output-picasa/rs-picasa-client.c
trunk/plugins/output-picasa/rs-picasa-client.h
Log:
Added more error handling in picasa uploader.
Modified: trunk/plugins/output-picasa/output-picasa.c
===================================================================
--- trunk/plugins/output-picasa/output-picasa.c 2010-06-01 22:33:30 UTC (rev
3416)
+++ trunk/plugins/output-picasa/output-picasa.c 2010-06-04 22:03:52 UTC (rev
3417)
@@ -234,17 +234,18 @@
static void
create_album(GtkButton *button, gpointer callback_data)
{
+ GError *error = NULL;
CreateAlbumData *create_album_data = callback_data;
PicasaClient *picasa_client = create_album_data->picasa_client;
GtkEntry *entry = create_album_data->entry;
GtkComboBox *combobox = create_album_data->combobox;
const gchar *album_name = gtk_entry_get_text(entry);
- gchar *aid = rs_picasa_client_create_album(picasa_client, album_name);
+ gchar *aid = rs_picasa_client_create_album(picasa_client, album_name,
&error);
if (aid)
{
- GtkListStore *albums =
rs_picasa_client_get_album_list(picasa_client);
+ GtkListStore *albums =
rs_picasa_client_get_album_list(picasa_client, &error);
gtk_combo_box_set_model(combobox, GTK_TREE_MODEL(albums));
album_set_active(combobox, aid);
gtk_entry_set_text(entry, "");
@@ -261,7 +262,7 @@
PicasaClient *picasa_client = rs_picasa_client_init();
- GtkListStore *albums = rs_picasa_client_get_album_list(picasa_client);
+ GtkListStore *albums = rs_picasa_client_get_album_list(picasa_client,
&error);
GtkWidget *combobox = gtk_combo_box_new();
combobox_cell_text(GTK_COMBO_BOX(combobox), 0);
gtk_combo_box_set_model(GTK_COMBO_BOX(combobox),
GTK_TREE_MODEL(albums));
Modified: trunk/plugins/output-picasa/rs-picasa-client.c
===================================================================
--- trunk/plugins/output-picasa/rs-picasa-client.c 2010-06-01 22:33:30 UTC
(rev 3416)
+++ trunk/plugins/output-picasa/rs-picasa-client.c 2010-06-04 22:03:52 UTC
(rev 3417)
@@ -35,10 +35,10 @@
case 201:
break;
case 404:
- error_msg = g_strdup_printf("Got error %d\n\n%s\n", code,
data->str);
+ error_msg = g_strdup(data->str);
break;
default:
- error_msg = g_strdup_printf("Error not caught, please submit
this as a bugreport...\n\n%s\n", data->str);
+ error_msg = g_strdup_printf("Error not caught, please submit
this as a bugreport:\n%s", data->str);
break;
}
@@ -258,7 +258,7 @@
}
GtkListStore *
-rs_picasa_client_get_album_list(PicasaClient *picasa_client)
+rs_picasa_client_get_album_list(PicasaClient *picasa_client, GError **error)
{
g_assert(picasa_client->auth_token != NULL);
g_assert(picasa_client->username != NULL);
@@ -282,11 +282,16 @@
CURLcode result = curl_easy_perform(picasa_client->curl);
handle_curl_code(result);
- return xml_album_list_response(data);
+ glong response_code;
+ curl_easy_getinfo(picasa_client->curl, CURLINFO_RESPONSE_CODE,
&response_code);
+ if (picasa_error(response_code, data, error))
+ return xml_album_list_response(data);
+ else
+ return NULL;
}
gchar *
-rs_picasa_client_create_album(PicasaClient *picasa_client, const gchar *name)
+rs_picasa_client_create_album(PicasaClient *picasa_client, const gchar *name,
GError **error)
{
gchar *body = g_strdup_printf("<entry
xmlns='http://www.w3.org/2005/Atom' xmlns:media='http://search.yahoo.com/mrss/'
xmlns:gphoto='http://schemas.google.com/photos/2007'> <title
type='text'>%s</title><summary
type='text'></summary><gphoto:location></gphoto:location><gphoto:access>private</gphoto:access><gphoto:commentingEnabled>true</gphoto:commentingEnabled><gphoto:timestamp>%d000</gphoto:timestamp><category
scheme='http://schemas.google.com/g/2005#kind'
term='http://schemas.google.com/photos/2007#album'></category></entry>", name,
(int) time(NULL));
@@ -316,7 +321,12 @@
CURLcode result = curl_easy_perform(picasa_client->curl);
handle_curl_code(result);
- return xml_album_create_response(data);
+ glong response_code;
+ curl_easy_getinfo(picasa_client->curl, CURLINFO_RESPONSE_CODE,
&response_code);
+ if (picasa_error(response_code, data, error))
+ return xml_album_create_response(data);
+ else
+ return NULL;
}
gboolean
Modified: trunk/plugins/output-picasa/rs-picasa-client.h
===================================================================
--- trunk/plugins/output-picasa/rs-picasa-client.h 2010-06-01 22:33:30 UTC
(rev 3416)
+++ trunk/plugins/output-picasa/rs-picasa-client.h 2010-06-04 22:03:52 UTC
(rev 3417)
@@ -15,8 +15,8 @@
gboolean rs_picasa_client_auth_popup(PicasaClient *picasa_client);
void rs_picasa_client_auth(PicasaClient *picasa_client);
-GtkListStore * rs_picasa_client_get_album_list(PicasaClient *picasa_client);
-char * rs_picasa_client_create_album(PicasaClient *picasa_client, const gchar
*name);
+GtkListStore * rs_picasa_client_get_album_list(PicasaClient *picasa_client,
GError **error);
+char * rs_picasa_client_create_album(PicasaClient *picasa_client, const gchar
*name, GError **error);
gboolean rs_picasa_client_upload_photo(PicasaClient *picasa_client, gchar
*photo, gchar *albumid, GError **error);
PicasaClient * rs_picasa_client_init();
_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit