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