X-Git-Url: https://git.wpitchoune.net/gitweb/?p=prss.git;a=blobdiff_plain;f=src%2Fttrss_wsasync.c;h=35e42e745229c16be4d9a4e1b3033f590a3e62d3;hp=f3c3d84ffc5dfe4e47276afe3b9c0b84d4769e69;hb=03759c1d9512afb87624c268481d5c9c499e8275;hpb=9f2b2bde43dc8f831417213463709640935eeeb9 diff --git a/src/ttrss_wsasync.c b/src/ttrss_wsasync.c index f3c3d84..35e42e7 100644 --- a/src/ttrss_wsasync.c +++ b/src/ttrss_wsasync.c @@ -17,6 +17,7 @@ * 02110-1301 USA */ +#include #include #include @@ -81,7 +82,7 @@ static void *loop() json_object_put(rp); cur++; - usleep(100000); + usleep(500000); } free(tmp); } @@ -134,3 +135,38 @@ void ws_async_set_article_unread(int id, int unread) log_debug("ws_async_set_article_unread(%d,%d) done", id, unread); } + +struct cbk_data { + int id; + void (*callback)(int id, const char *); +}; + +void async_article_content_cbk(struct json_object *rp, void *userdata) +{ + struct cbk_data *data; + + data = userdata; + + log_debug("async_article_content_cbk %d\n", data->id); + + if (data->callback) + data->callback(data->id, ws_reply_get_article_content(rp)); + + free(data); +} + + +void +ws_async_get_article_content(int id, void (*callback)(int id, const char *)) +{ + struct json_object *rq; + struct cbk_data *data; + + rq = ws_request_new_get_article_content(id); + + data = malloc(sizeof(struct cbk_data)); + data->id = id; + data->callback = callback; + + add_async_request(rq, async_article_content_cbk, data); +}