Author: post
Date: 2011-01-29 14:44:34 +0100 (Sat, 29 Jan 2011)
New Revision: 3806

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:
Add original image name when uploading to picasa.

Modified: trunk/plugins/output-picasa/output-picasa.c
===================================================================
--- trunk/plugins/output-picasa/output-picasa.c 2011-01-29 13:42:53 UTC (rev 
3805)
+++ trunk/plugins/output-picasa/output-picasa.c 2011-01-29 13:44:34 UTC (rev 
3806)
@@ -404,6 +404,8 @@
        GError *error = NULL;
        RSPicasa *picasa = RS_PICASA (output);
        RSOutput *jpegsave = rs_output_new ("RSJpegfile");
+       gchar *input_filename = NULL;
+       rs_filter_get_recursive(filter, "filename", &input_filename, NULL);
 
        PicasaClient *picasa_client = rs_picasa_client_init();
 
@@ -420,7 +422,7 @@
        rs_output_execute (jpegsave, filter);
        g_object_unref (jpegsave);
 
-       uploaded_ok = rs_picasa_client_upload_photo(picasa_client, temp_file, 
picasa->album_id, &error);
+       uploaded_ok = rs_picasa_client_upload_photo(picasa_client, temp_file, 
input_filename, picasa->album_id, &error);
 
        unlink (temp_file);
        g_free (temp_file);

Modified: trunk/plugins/output-picasa/rs-picasa-client.c
===================================================================
--- trunk/plugins/output-picasa/rs-picasa-client.c      2011-01-29 13:42:53 UTC 
(rev 3805)
+++ trunk/plugins/output-picasa/rs-picasa-client.c      2011-01-29 13:44:34 UTC 
(rev 3806)
@@ -453,7 +453,7 @@
 }
 
 gboolean
-rs_picasa_client_upload_photo(PicasaClient *picasa_client, gchar *photo, gchar 
*albumid, GError **error)
+rs_picasa_client_upload_photo(PicasaClient *picasa_client, gchar *photo, gchar 
*input_name, gchar *albumid, GError **error)
 {
        gint ret;
        g_assert(picasa_client->auth_token != NULL);
@@ -472,8 +472,12 @@
        gsize length;
        g_file_get_contents(photo, &contents, &length, NULL);
 
+       gchar *basename = g_path_get_basename(input_name);
+       gchar *slug_name = g_strdup_printf("Slug: %s", basename);
+
        header = curl_slist_append(header, auth_string->str);
        header = curl_slist_append(header, "Content-Type: image/jpeg");
+       header = curl_slist_append(header, slug_name);
 
         curl_easy_reset(picasa_client->curl);
        curl_easy_setopt(picasa_client->curl, CURLOPT_ERRORBUFFER, 
picasa_client->curl_error_buffer);
@@ -492,12 +496,15 @@
         curl_easy_setopt(picasa_client->curl, CURLOPT_VERBOSE, TRUE);
 #endif
 
-        CURLcode result = curl_easy_perform(picasa_client->curl);
+       CURLcode result = curl_easy_perform(picasa_client->curl);
+       g_free(basename);
+       g_free(slug_name);
+
        ret = handle_curl_code(picasa_client, result);
        if (PICASA_CLIENT_ERROR == ret)
                return FALSE;
        else if (PICASA_CLIENT_RETRY == ret)
-               return rs_picasa_client_upload_photo(picasa_client, photo, 
albumid, error);
+               return rs_picasa_client_upload_photo(picasa_client, photo, 
input_name, albumid, error);
 
        glong response_code;
        curl_easy_getinfo(picasa_client->curl, CURLINFO_RESPONSE_CODE, 
&response_code);
@@ -506,7 +513,7 @@
        if (PICASA_CLIENT_OK == ret)
                return TRUE;
        else if (PICASA_CLIENT_RETRY == ret)
-               return rs_picasa_client_upload_photo(picasa_client, photo, 
albumid, error);
+               return rs_picasa_client_upload_photo(picasa_client, photo, 
input_name, albumid, error);
 
        return FALSE;
 }

Modified: trunk/plugins/output-picasa/rs-picasa-client.h
===================================================================
--- trunk/plugins/output-picasa/rs-picasa-client.h      2011-01-29 13:42:53 UTC 
(rev 3805)
+++ trunk/plugins/output-picasa/rs-picasa-client.h      2011-01-29 13:44:34 UTC 
(rev 3806)
@@ -24,7 +24,7 @@
 gboolean rs_picasa_client_auth(PicasaClient *picasa_client);
 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);
+gboolean rs_picasa_client_upload_photo(PicasaClient *picasa_client, gchar 
*photo, gchar *input_name, gchar *albumid, GError **error);
 PicasaClient * rs_picasa_client_init();
 
 #endif /* RS_PICASA_CLIENT_H */


_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit

Reply via email to