minfo-provider-service: Added WATC movie service
[maevies] / examples / gtranslate.c
1 #include <stdio.h>
2 #include <libsoup/soup.h>
3 #include <glib.h>
4
5 #define URL_BASE "http://ajax.googleapis.com/ajax/services/\
6 language/translate?v=%s&q=%s&langpair=%s"
7 #define VERSION "1.0"
8 #define LANGPAIR "es|en"
9
10 static gchar*
11 get_query_uri (const gchar *text)
12 {
13         gchar *query = g_strdup_printf (URL_BASE, VERSION, text, LANGPAIR);
14
15         g_message ("%s\n", query);
16
17         return query;
18 }
19
20 static void process_response (SoupSession *session, SoupMessage *message,
21                               gpointer user_data)
22 {
23         if (!SOUP_STATUS_IS_SUCCESSFUL (message->status_code)
24                         || message->response_body->length <= 0) {
25
26                 g_print ("%s\n", message->reason_phrase);
27         } else {
28
29                 const gchar *mime = soup_message_headers_get_content_type (
30                                 message->response_headers, NULL);
31
32                 g_message ("Mime type: %s\n", mime);
33                 g_print ("%s\n", message->response_body->data);
34         }
35
36         GMainLoop *loop = (GMainLoop *) user_data;
37
38         g_main_loop_quit (loop);
39 }
40
41 int main (int argc, char **argv)
42 {
43         SoupSession *session = NULL;
44         SoupMessage *message = NULL;
45         GMainLoop *loop = NULL;
46         const gchar *text = NULL;
47         gchar *query = NULL;
48
49         g_thread_init (NULL);
50         g_type_init ();
51
52         loop = g_main_loop_new (NULL, FALSE);
53
54         if (argc > 1) {
55                 text = argv[1];
56         } else {
57                 text = "Hola Mundo";
58         }
59
60         query = get_query_uri (text);
61
62         session = soup_session_async_new ();
63         message = soup_message_new ("GET", query);
64
65         if (message)
66                 soup_session_queue_message (session, message,
67                                 process_response,
68                                 loop);
69
70         g_main_loop_run (loop);
71
72         g_free (query);
73         g_main_loop_unref (loop);
74         g_object_unref (session);
75 }