4 #include <beagle/beagle.h>
9 print_feed_item_hit (BeagleHit
*hit
)
13 if (beagle_hit_get_one_property (hit
, "dc:title", &text
))
14 g_print ("Blog: %s\n", text
);
18 print_file_hit (BeagleHit
*hit
)
20 g_print ("File: %s\n", beagle_hit_get_uri (hit
));
24 print_other_hit (BeagleHit
*hit
)
26 g_print ("%s (%s)", beagle_hit_get_uri (hit
),
27 beagle_hit_get_source (hit
));
31 print_hit (BeagleHit
*hit
)
33 if (strcmp (beagle_hit_get_type (hit
), "FeedItem") == 0) {
34 print_feed_item_hit (hit
);
36 else if (strcmp (beagle_hit_get_type (hit
), "File") == 0) {
39 print_other_hit (hit
);
44 hits_added_cb (BeagleQuery
*query
, BeagleHitsAddedResponse
*response
)
50 hits
= beagle_hits_added_response_get_hits (response
);
52 nr_hits
= g_slist_length (hits
);
53 total_hits
+= nr_hits
;
54 g_print ("Found hits (%d):\n", nr_hits
);
55 g_print ("-------------------------------------------\n");
56 for (l
= hits
, i
= 1; l
; l
= l
->next
, ++i
) {
59 print_hit (BEAGLE_HIT (l
->data
));
63 g_print ("-------------------------------------------\n\n\n");
67 finished_cb (BeagleQuery
*query
,
68 BeagleFinishedResponse
*response
,
71 g_main_loop_quit (main_loop
);
75 main (int argc
, char **argv
)
83 g_print ("Usage %s \"query string\"\n", argv
[0]);
91 client
= beagle_client_new (NULL
);
93 main_loop
= g_main_loop_new (NULL
, FALSE
);
95 query
= beagle_query_new ();
97 for (i
= 1; i
< argc
; ++i
) {
98 beagle_query_add_text (query
, argv
[i
]);
101 g_signal_connect (query
, "hits-added",
102 G_CALLBACK (hits_added_cb
),
105 g_signal_connect (query
, "finished",
106 G_CALLBACK (finished_cb
),
109 beagle_client_send_request_async (client
, BEAGLE_REQUEST (query
),
112 g_main_loop_run (main_loop
);
113 g_object_unref (query
);
114 g_object_unref (client
);
115 g_main_loop_unref (main_loop
);
117 g_print ("Found a total of %d hits\n", total_hits
);