#include <json-glib/json-glib.h>
#include "mvs-tmdb-movie.h"
+#include "mvs-tmdb-image.h"
#include "mvs-watc-movie.h"
#define TMDB_API_KEY "249e1a42df9bee09fac5e92d3a51396b"
return g_object_new (MVS_TYPE_MINFO_PROVIDER, NULL);
}
+static MvsTmdbImage*
+create_tmdb_image (xmlNodePtr node)
+{
+ MvsTmdbImage *image = mvs_tmdb_image_new ();
+ gchar *value = NULL;
+ int i;
+
+ /* <image type="poster"
+ * url="http://....jpg"
+ * size="original"
+ * id="4bc91...e007304"/> */
+
+ for (i = 0; i < LAST_FIELD; i ++) {
+ value = xmlGetProp (node, image_fields[i]);
+
+ g_object_set (image, image_fields[i], value, NULL);
+
+ g_free (value);
+ }
+
+ return image;
+}
+
static MvsTmdbMovie*
create_tmdb_movie (xmlNodePtr node)
{
xmlNodePtr cur_node = NULL;
MvsTmdbMovie *movie_info = mvs_tmdb_movie_new ();
+ GList *image_list = NULL;
/* We use the loop to append each property to the movie object */
for (cur_node = node; cur_node; cur_node = cur_node->next) {
for (cur_image = cur_node->children; cur_image;
cur_image = cur_image->next) {
- value = xmlGetProp (cur_image, "url");
- g_message ("(%s: %s)", cur_image->name, value);
- g_free (value);
+ MvsTmdbImage *tmdb_image = create_tmdb_image (cur_image);
+ image_list = g_list_append (image_list, tmdb_image);
}
}
else {
}
}
}
+
+ mvs_tmdb_movie_set_images (movie_info, image_list);
+
return movie_info;
}
gchar *certification;
gchar *overview;
gchar *released;
- gchar *images;
+ GList *images;
gchar *last_modified;
};
case PROP_ID:
g_value_set_string (value, self->priv->id);
break;
- case PROP_IMAGES:
- g_value_set_string (value, self->priv->images);
- break;
case PROP_IMDB_ID:
g_value_set_string (value, self->priv->imdb_id);
break;
mvs_tmdb_movie_set_id (self,
g_value_get_string (value));
break;
- case PROP_IMAGES:
- mvs_tmdb_movie_set_images (self,
- g_value_get_string (value));
- break;
case PROP_IMDB_ID:
mvs_tmdb_movie_set_imdb_id (self,
g_value_get_string (value));
g_free (self->priv->alt_name);
g_free (self->priv->certification);
g_free (self->priv->id);
- g_free (self->priv->images);
g_free (self->priv->imdb_id);
g_free (self->priv->language);
g_free (self->priv->last_modified);
g_free (self->priv->type);
g_free (self->priv->url);
+ g_list_foreach (self->priv->images, (GFunc) g_object_unref, NULL);
+ g_list_free (self->priv->images);
+
G_OBJECT_CLASS (mvs_tmdb_movie_parent_class)->finalize (object);
}
G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
g_object_class_install_property
- (object_class, PROP_IMAGES,
- g_param_spec_string ("images", "Movie images",
- "The movie images",
- NULL,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
-
- g_object_class_install_property
(object_class, PROP_IMDB_ID,
g_param_spec_string ("imdb_id", "Movie IMDB ID",
"The movie IMDB ID",
}
gboolean
-mvs_tmdb_movie_set_images (MvsTmdbMovie *self, const gchar *images)
+mvs_tmdb_movie_set_images (MvsTmdbMovie *self, GList *images)
{
g_return_val_if_fail (MVS_TMDB_MOVIE (self), FALSE);
- return set_property (&self->priv->images, images);
+ self->priv->images = images;
+ return TRUE;
}
-const gchar*
+GList*
mvs_tmdb_movie_get_images (MvsTmdbMovie *self)
{
return self->priv->images;
g_print ("[Alternative name]: %s\n", self->priv->alt_name);
g_print ("[Certification]: %s\n", self->priv->certification);
g_print ("[Id]: %s\n", self->priv->id);
- g_print ("[Images]: %s\n", self->priv->images);
+ g_print ("[Images]: %d\n", g_list_length(self->priv->images));
g_print ("[IMDB Id]: %s\n", self->priv->imdb_id);
g_print ("[Language]: %s\n", self->priv->language);
g_print ("[Last modified]: %s\n", self->priv->last_modified);