[grilo-plugins] flickr: Offer multiple thumbnail sizes
- From: Juan A. Suarez Romero <jasuarez src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [grilo-plugins] flickr: Offer multiple thumbnail sizes
- Date: Tue, 20 Aug 2013 22:43:56 +0000 (UTC)
commit 2beda247809c3a1b334a860c260573c50be6c889
Author: Debarshi Ray <debarshir gnome org>
Date: Tue Jul 30 17:26:51 2013 +0200
flickr: Offer multiple thumbnail sizes
Currently we are offering the "thumbnail" and "small 320" sizes.
https://bugzilla.gnome.org/show_bug.cgi?id=705149
Signed-off-by: Juan A. Suarez Romero <jasuarez igalia com>
src/flickr/gflickr.c | 31 +++++++++++++++++++++++++++++++
src/flickr/gflickr.h | 3 +++
src/flickr/grl-flickr.c | 25 ++++++++++++++++++++-----
3 files changed, 54 insertions(+), 5 deletions(-)
---
diff --git a/src/flickr/gflickr.c b/src/flickr/gflickr.c
index 35bad08..9285aeb 100644
--- a/src/flickr/gflickr.c
+++ b/src/flickr/gflickr.c
@@ -20,6 +20,9 @@
#define FLICKR_PHOTO_ORIG_URL \
"http://farm%s.static.flickr.com/%s/%s_%s_o.%s"
+#define FLICKR_PHOTO_SMALL_URL \
+ "http://farm%s.static.flickr.com/%s/%s_%s_n.jpg"
+
#define FLICKR_PHOTO_THUMB_URL \
"http://farm%s.static.flickr.com/%s/%s_%s_t.jpg"
@@ -638,6 +641,34 @@ g_flickr_photo_url_original (GFlickr *f, GHashTable *photo)
}
gchar *
+g_flickr_photo_url_small (GFlickr *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_SMALL_URL,
+ farm_id,
+ server_id,
+ photo_id,
+ secret);
+ }
+}
+
+gchar *
g_flickr_photo_url_thumbnail (GFlickr *f, GHashTable *photo)
{
gchar *farm_id;
diff --git a/src/flickr/gflickr.h b/src/flickr/gflickr.h
index 8984648..ffe5927 100644
--- a/src/flickr/gflickr.h
+++ b/src/flickr/gflickr.h
@@ -114,6 +114,9 @@ gchar *
g_flickr_photo_url_original (GFlickr *f, GHashTable *photo);
gchar *
+g_flickr_photo_url_small (GFlickr *f, GHashTable *photo);
+
+gchar *
g_flickr_photo_url_thumbnail (GFlickr *f, GHashTable *photo);
gchar *
diff --git a/src/flickr/grl-flickr.c b/src/flickr/grl-flickr.c
index b67d13e..651efe8 100644
--- a/src/flickr/grl-flickr.c
+++ b/src/flickr/grl-flickr.c
@@ -441,13 +441,17 @@ token_info_cb (GFlickr *f,
static void
update_media (GrlMedia *media, GHashTable *photo)
{
+ GrlRelatedKeys *relkeys;
+ gchar *image[2] = { NULL };
gchar *author;
gchar *date;
gchar *description;
gchar *id;
+ gchar *small;
gchar *thumbnail;
gchar *title;
gchar *url;
+ gint i;
author = g_hash_table_lookup (photo, "owner_realname");
if (!author) {
@@ -496,11 +500,6 @@ update_media (GrlMedia *media, GHashTable *photo)
grl_media_set_id (media, id);
}
- if (thumbnail) {
- grl_media_set_thumbnail (media, thumbnail);
- g_free (thumbnail);
- }
-
if (title && title[0] != '\0') {
grl_media_set_title (media, title);
}
@@ -509,6 +508,22 @@ update_media (GrlMedia *media, GHashTable *photo)
grl_media_set_url (media, url);
g_free (url);
}
+
+ small = g_flickr_photo_url_small (NULL, photo);
+ image[0] = small;
+ image[1] = thumbnail;
+
+ for (i = 0; i < G_N_ELEMENTS (image); i++) {
+ if (image[i]) {
+ relkeys = grl_related_keys_new_with_keys (GRL_METADATA_KEY_THUMBNAIL,
+ image[i],
+ NULL);
+ grl_data_add_related_keys (GRL_DATA (media), relkeys);
+ }
+ }
+
+ g_free (small);
+ g_free (thumbnail);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]