diff options
author | Juan A. Suarez Romero <jasuarez@igalia.com> | 2010-02-15 10:10:29 +0100 |
---|---|---|
committer | Juan A. Suarez Romero <jasuarez@igalia.com> | 2010-02-15 16:58:21 +0100 |
commit | 6ddb0b211cf7fa4feaa9142a413c79a0322b0773 (patch) | |
tree | b5eb14e49543598a577a19c83ae0f874a5a7ddd0 | |
parent | 2f0eee3d6aff29c0c0f4b8e75675ac94b8827a51 (diff) | |
download | grilo-plugins-6ddb0b211cf7fa4feaa9142a413c79a0322b0773.tar.gz |
[flickr] Add support for thumbnails
-rw-r--r-- | src/flickr/gflickr.c | 31 | ||||
-rw-r--r-- | src/flickr/gflickr.h | 3 | ||||
-rw-r--r-- | src/flickr/grl-flickr.c | 17 |
3 files changed, 46 insertions, 5 deletions
diff --git a/src/flickr/gflickr.c b/src/flickr/gflickr.c index 170546d..aacfcbc 100644 --- a/src/flickr/gflickr.c +++ b/src/flickr/gflickr.c @@ -9,6 +9,9 @@ #define FLICKR_PHOTO_ORIG_URL \ "http://farm%s.static.flickr.com/%s/%s_%s_o.%s" +#define FLICKR_PHOTO_THUMB_URL \ + "http://farm%s.static.flickr.com/%s/%s_%s_t.jpg" + #define FLICKR_ENDPOINT "http://api.flickr.com/services/rest/?" #define FLICKR_PHOTOS_SEARCH_METHOD "flickr.photos.search" @@ -265,3 +268,31 @@ g_flickr_photo_url_original (gpointer f, GHashTable *photo) extension); } } + +gchar * +g_flickr_photo_url_thumbnail (gpointer f, GHashTable *photo) +{ + gchar *farm_id; + gchar *secret; + gchar *photo_id; + gchar *server_id; + + if (!photo) { + return NULL; + } + + farm_id = g_hash_table_lookup (photo, "photo_farm"); + secret = g_hash_table_lookup (photo, "photo_secret"); + photo_id = g_hash_table_lookup (photo, "photo_id"); + server_id = g_hash_table_lookup (photo, "photo_server"); + + if (!farm_id || !secret || !photo_id || !server_id) { + return NULL; + } else { + return g_strdup_printf (FLICKR_PHOTO_THUMB_URL, + farm_id, + server_id, + photo_id, + secret); + } +} diff --git a/src/flickr/gflickr.h b/src/flickr/gflickr.h index 109f643..eaf3cf8 100644 --- a/src/flickr/gflickr.h +++ b/src/flickr/gflickr.h @@ -38,4 +38,7 @@ g_flickr_photos_getInfo (gpointer f, gchar * g_flickr_photo_url_original (gpointer f, GHashTable *photo); +gchar * +g_flickr_photo_url_thumbnail (gpointer f, GHashTable *photo); + #endif /* _G_FLICKR_H_ */ diff --git a/src/flickr/grl-flickr.c b/src/flickr/grl-flickr.c index bc70e63..5e8c9f3 100644 --- a/src/flickr/grl-flickr.c +++ b/src/flickr/grl-flickr.c @@ -461,6 +461,7 @@ getInfo_cb (gpointer f, GHashTable *photo, gpointer user_data) gchar *author; gchar *date; gchar *description; + gchar *thumbnail; gchar *title; gchar *url; @@ -470,6 +471,7 @@ getInfo_cb (gpointer f, GHashTable *photo, gpointer user_data) description = g_hash_table_lookup (photo, "description"); date = g_hash_table_lookup (photo, "dates_taken"); url = g_flickr_photo_url_original (f, photo); + thumbnail = g_flickr_photo_url_thumbnail (f, photo); if (author) { grl_content_media_set_author (ms->media, author); @@ -490,6 +492,10 @@ getInfo_cb (gpointer f, GHashTable *photo, gpointer user_data) if (url) { grl_content_media_set_url (ms->media, url); } + + if (thumbnail) { + grl_content_media_set_thumbnail (ms->media, thumbnail); + } } ms->callback (ms->source, ms->media, ms->user_data, NULL); @@ -502,12 +508,13 @@ grl_flickr_source_supported_keys (GrlMetadataSource *source) { static GList *keys = NULL; if (!keys) { - keys = grl_metadata_key_list_new (GRL_METADATA_KEY_ID, - GRL_METADATA_KEY_URL, - GRL_METADATA_KEY_AUTHOR, - GRL_METADATA_KEY_TITLE, - GRL_METADATA_KEY_DESCRIPTION, + keys = grl_metadata_key_list_new (GRL_METADATA_KEY_AUTHOR, GRL_METADATA_KEY_DATE, + GRL_METADATA_KEY_DESCRIPTION, + GRL_METADATA_KEY_ID, + GRL_METADATA_KEY_THUMBNAIL, + GRL_METADATA_KEY_TITLE, + GRL_METADATA_KEY_URL, NULL); } return keys; |