static void impl_start (RBPodcastSearch *bsearch, const char *text, int max_results) { SoupURI *uri; SoupMessage *message; char *limit; RBPodcastSearchITunes *search = RB_PODCAST_SEARCH_ITUNES (bsearch); search->session = soup_session_async_new_with_options (SOUP_SESSION_ADD_FEATURE_BY_TYPE, SOUP_TYPE_PROXY_RESOLVER_DEFAULT, NULL); uri = soup_uri_new (ITUNES_SEARCH_URI); limit = g_strdup_printf ("%d", max_results); soup_uri_set_query_from_fields (uri, "term", text, "media", "podcast", "entity", "podcast", "limit", limit, "version", "2", "output", "json", NULL); g_free (limit); message = soup_message_new_from_uri (SOUP_METHOD_GET, uri); soup_uri_free (uri); soup_session_queue_message (search->session, message, (SoupSessionCallback) search_response_cb, search); }
static void impl_start (RBPodcastSearch *bsearch, const char *text, int max_results) { SoupURI *uri; SoupMessage *message; char *limit; RBPodcastSearchMiroGuide *search = RB_PODCAST_SEARCH_MIROGUIDE (bsearch); search->session = soup_session_async_new_with_options (SOUP_SESSION_ADD_FEATURE_BY_TYPE, SOUP_TYPE_PROXY_RESOLVER_DEFAULT, NULL); uri = soup_uri_new (MIROGUIDE_SEARCH_URI); limit = g_strdup_printf ("%d", max_results); soup_uri_set_query_from_fields (uri, "filter", "audio", "filter_value", "1", "filter", "name", "filter_value", text, "sort", "popular", /* hmm */ "limit", limit, "datatype", "json", NULL); g_free (limit); message = soup_message_new_from_uri (SOUP_METHOD_GET, uri); soup_uri_free (uri); soup_session_queue_message (search->session, message, (SoupSessionCallback) search_response_cb, search); }
static void md5_post_callback (SoupServer *server, SoupMessage *msg, const char *path, GHashTable *query, SoupClientContext *context, gpointer data) { const char *content_type; GHashTable *params; const char *fmt; char *filename, *md5sum, *redirect_uri; SoupBuffer *file; SoupURI *uri; content_type = soup_message_headers_get_content_type (msg->request_headers, NULL); if (!content_type || strcmp (content_type, "multipart/form-data") != 0) { soup_message_set_status (msg, SOUP_STATUS_BAD_REQUEST); return; } params = soup_form_decode_multipart (msg, "file", &filename, NULL, &file); if (!params) { soup_message_set_status (msg, SOUP_STATUS_BAD_REQUEST); return; } fmt = g_hash_table_lookup (params, "fmt"); md5sum = g_compute_checksum_for_data (G_CHECKSUM_MD5, (gpointer)file->data, file->length); soup_buffer_free (file); uri = soup_uri_copy (soup_message_get_uri (msg)); soup_uri_set_query_from_fields (uri, "file", filename ? filename : "", "md5sum", md5sum, "fmt", fmt ? fmt : "html", NULL); redirect_uri = soup_uri_to_string (uri, FALSE); soup_message_set_status (msg, SOUP_STATUS_SEE_OTHER); soup_message_headers_replace (msg->response_headers, "Location", redirect_uri); g_free (redirect_uri); soup_uri_free (uri); g_free (md5sum); g_free (filename); g_hash_table_destroy (params); }