return g_object_new (MVS_TYPE_MINFO_PROVIDER, NULL);
}
+static void
+parse_response (SoupSession *session, SoupMessage *message,
+ gpointer user_data)
+{
+ MvsMInfoProvider *self = MVS_MINFO_PROVIDER (user_data);
+ const gchar *mime = NULL;
+
+ if (!SOUP_STATUS_IS_SUCCESSFUL (message->status_code) ||
+ message->response_body->length <= 0) {
+
+ g_print ("%s\n", message->reason_phrase);
+ }
+ else {
+
+ mime = soup_message_headers_get_content_type
+ (message->response_headers, NULL);
+
+ g_print ("Response OK. Mime type: %s\n", mime);
+ g_print ("Content:\n%s\n", message->response_body->data);
+ }
+
+ g_signal_emit (self, signals[RESPONSE_RECEIVED], 0);
+}
+
+static gchar *
+get_query_uri (MvsMInfoProvider *self, const char *query)
+{
+ /* METHOD/LANGUAGE/FORMAT/APIKEY/MOVIENAME */
+ gchar *uri = g_strdup_printf (TMDB_BASE_URL, TMDB_METHOD,
+ TMDB_LANGUAGE,
+ self->priv->format,
+ TMDB_API_KEY,
+ query);
+
+ return uri;
+}
+
gboolean
mvs_minfo_provider_query (MvsMInfoProvider *self,
const gchar *query)
{
- return FALSE;
+ g_return_val_if_fail (MVS_IS_MINFO_PROVIDER (self), FALSE);
+
+ SoupSession *session = NULL;
+ SoupMessage *message = NULL;
+ gboolean message_queued = FALSE;
+
+ gchar *uri = get_query_uri (self, query);
+
+ g_return_val_if_fail (uri, FALSE);
+
+ session = soup_session_async_new ();
+ message = soup_message_new ("GET", uri);
+
+ if (message) {
+ soup_session_queue_message (session, message,
+ parse_response, self);
+ message_queued = TRUE;
+ }
+
+ g_free (uri);
+
+ return message_queued;
}
gboolean