2016-06-08 22:05:13 +02:00
|
|
|
#include "konasearch.h"
|
|
|
|
#include <stdio.h>
|
2016-06-12 18:01:24 +02:00
|
|
|
#include <libsoup/soup.h>
|
|
|
|
|
2016-09-05 18:41:34 +02:00
|
|
|
// Function prototypes for local functions
|
|
|
|
static void kona_search_posts_soup_cb (SoupSession *session, SoupMessage *msg, gpointer user_data);
|
|
|
|
|
2016-06-08 22:05:13 +02:00
|
|
|
|
|
|
|
/*** GLIB object start ***/
|
|
|
|
|
|
|
|
struct _KonaSearch {
|
|
|
|
GObject parent_instance; // struct of parent (inherit)
|
2016-06-12 18:01:24 +02:00
|
|
|
gchar *searchString;
|
|
|
|
|
|
|
|
SoupSession *postsSession;
|
2016-06-08 22:05:13 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
G_DEFINE_TYPE(KonaSearch, kona_search, G_TYPE_OBJECT)
|
|
|
|
|
2016-06-12 18:01:24 +02:00
|
|
|
static void kona_search_class_init(KonaSearchClass *klass)
|
|
|
|
{
|
2016-06-08 22:05:13 +02:00
|
|
|
GObjectClass *object_class = G_OBJECT_CLASS(klass);
|
|
|
|
|
2016-06-12 18:01:24 +02:00
|
|
|
//object_class->set_property = kona_search_set_property;
|
|
|
|
//object_class->get_property = kona_search_get_property;
|
2016-06-08 22:05:13 +02:00
|
|
|
object_class->dispose = kona_search_dispose;
|
|
|
|
object_class->finalize = kona_search_finalize;
|
|
|
|
}
|
|
|
|
|
2016-06-12 18:01:24 +02:00
|
|
|
static void kona_search_init (KonaSearch *self)
|
|
|
|
{
|
2016-06-08 22:05:13 +02:00
|
|
|
printf("kona_search_init\n");
|
|
|
|
}
|
|
|
|
|
2016-06-12 18:01:24 +02:00
|
|
|
static void kona_search_dispose(GObject *self)
|
|
|
|
{
|
2016-06-08 22:05:13 +02:00
|
|
|
G_OBJECT_CLASS (kona_search_parent_class)->dispose((GObject*) self);
|
|
|
|
}
|
|
|
|
|
2016-06-12 18:01:24 +02:00
|
|
|
static void kona_search_finalize(GObject *self)
|
|
|
|
{
|
|
|
|
KonaSearch *ks = (KonaSearch*) self;
|
|
|
|
//g_free(ks->postsSession);
|
2016-08-29 17:34:52 +02:00
|
|
|
g_free(ks->searchString);
|
2016-06-08 22:05:13 +02:00
|
|
|
G_OBJECT_CLASS (kona_search_parent_class)->finalize ((GObject*) self);
|
|
|
|
}
|
|
|
|
|
2016-06-12 18:01:24 +02:00
|
|
|
KonaSearch *kona_search_new(gchar *search)
|
2016-06-08 22:05:13 +02:00
|
|
|
{
|
2016-06-12 18:01:24 +02:00
|
|
|
KonaSearch *ks;
|
|
|
|
ks = g_object_new(KONA_TYPE_SEARCH, 0);
|
|
|
|
ks->searchString = g_strdup(search);
|
2016-09-05 18:41:34 +02:00
|
|
|
return ks;
|
2016-06-08 22:05:13 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
/*** GLIB object end ***/
|
2016-06-12 18:01:24 +02:00
|
|
|
|
2016-09-05 18:41:34 +02:00
|
|
|
|
2016-06-12 18:01:24 +02:00
|
|
|
void kona_search_start(KonaSearch *self)
|
|
|
|
{
|
|
|
|
SoupMessage *msg;
|
|
|
|
gchar *url;
|
|
|
|
|
|
|
|
self->postsSession = soup_session_new();
|
|
|
|
|
|
|
|
url = g_strdup_printf("http://konachan.com/post.xml?tag=%s", self->searchString);
|
|
|
|
msg = soup_message_new("GET", url);
|
|
|
|
g_free(url);
|
|
|
|
|
2016-09-05 18:41:34 +02:00
|
|
|
soup_session_queue_message(self->postsSession, msg, kona_search_posts_soup_cb, self);
|
2016-06-12 18:01:24 +02:00
|
|
|
}
|
|
|
|
|
2016-09-05 18:41:34 +02:00
|
|
|
static void kona_search_posts_soup_cb (SoupSession *session, SoupMessage *msg, gpointer user_data)
|
2016-06-12 18:01:24 +02:00
|
|
|
{
|
|
|
|
printf("RECEIVED!!\n");
|
2016-09-05 18:41:34 +02:00
|
|
|
printf("%s\n", *msg->response_body);
|
2016-08-29 17:34:52 +02:00
|
|
|
fflush(stdout);
|
2016-06-12 18:01:24 +02:00
|
|
|
}
|