projects
/
prss.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
(no commit message)
[prss.git]
/
src
/
ttrss.c
diff --git
a/src/ttrss.c
b/src/ttrss.c
index
2a73d64
..
9b76295
100644
(file)
--- a/
src/ttrss.c
+++ b/
src/ttrss.c
@@
-18,6
+18,7
@@
*/
#include <stdio.h>
*/
#include <stdio.h>
+#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include <string.h>
#include <glib.h>
@@
-25,7
+26,8
@@
#include "http.h"
#include "io.h"
#include "http.h"
#include "io.h"
-#include "ttrss_ws.h"
+#include "log.h"
+#include "ttrss_wsasync.h"
#include "url.h"
static struct feed **data;
#include "url.h"
static struct feed **data;
@@
-59,32
+61,28
@@
static void file_set_content(const char *path, const char *content)
}
}
}
}
-c
onst c
har *ttrss_get_headline_content(struct headline *h)
+char *ttrss_get_headline_content(struct headline *h)
{
const char *cache_dir;
char *path, *content;
{
const char *cache_dir;
char *path, *content;
- if (!h->content) {
- cache_dir = get_cache_dir();
- if (cache_dir) {
- path = g_strdup_printf("%s/%d", cache_dir, h->id);
+ cache_dir = get_cache_dir();
+ if (cache_dir) {
+ path = g_strdup_printf("%s/%d", cache_dir, h->id);
-
content = file_get_content(path);
+ content = file_get_content(path);
-
if (
content) {
-
h->content = content
;
- } else {
- h->content = ws_get_article_content(h->id);
+
if (!
content) {
+
content = ws_get_article_content(h->id)
;
+ file_set_content(path, content);
+ }
- if (h->content)
- file_set_content(path, h->content);
- }
+ g_free(path);
- g_free(path);
- }
+ return content;
}
}
- return
h->content
;
+ return
NULL
;
}
struct feed **ttrss_get_feeds()
}
struct feed **ttrss_get_feeds()
@@
-104,26
+102,18
@@
struct headline **ttrss_feed_get_headlines(struct feed *f)
void ttrss_set_article_unread(int id, int unread)
{
void ttrss_set_article_unread(int id, int unread)
{
- struct json_object *rp, *rq;
-
- printf("ttrss_set_article_unread %d %d\n", id, unread);
+ log_debug("ttrss_set_article_unread(%d,%d)", id, unread);
- rq = ws_request_new("updateArticle");
- json_object_object_add(rq, "article_ids", json_object_new_int(id));
- json_object_object_add(rq, "field", json_object_new_int(2));
- json_object_object_add(rq, "mode", json_object_new_int(unread));
+ ws_async_set_article_unread(id, unread);
- rp = ws_execute(rq);
-
- json_object_put(rq);
- json_object_put(rp);
+ log_debug("ttrss_set_article_unread(%d,%d)", id, unread);
}
void ttrss_set_config(const char *url, const char *user, const char *pwd)
{
feeds_free(data);
data = NULL;
}
void ttrss_set_config(const char *url, const char *user, const char *pwd)
{
feeds_free(data);
data = NULL;
- ws_
init
(url, user, pwd);
+ ws_
set_config
(url, user, pwd);
}
struct feed *ttrss_get_feed(int id)
}
struct feed *ttrss_get_feed(int id)
@@
-135,3
+125,18
@@
struct headline *ttrss_get_headline(int id)
{
return feeds_get_headline(data, id);
}
{
return feeds_get_headline(data, id);
}
+
+void ttrs_download_headline_content(struct feed **feeds)
+{
+ struct feed **fcur;
+ struct headline **hcur;
+
+ for (fcur = feeds; *fcur; fcur++) {
+ hcur = ttrss_feed_get_headlines(*fcur);
+
+ while (hcur && *hcur) {
+ free(ttrss_get_headline_content(*hcur));
+ hcur++;
+ }
+ }
+}