int headline_cursor_changed_cbk(GtkTreeView *treeview, gpointer data)
{
- printf("headline_cursor_changed_cbk\n");
-
GtkTreePath *path;
GtkTreeViewColumn *cols;
GtkTreeIter iter;
GtkTreeModel *model;
struct headline *headline;
+ const char *str;
+
+ printf("headline_cursor_changed_cbk\n");
gtk_tree_view_get_cursor(treeview, &path, &cols);
gtk_tree_model_get_iter(model, &iter, path);
gtk_tree_model_get(model, &iter, 1, &headline, -1);
- web_load(((struct headline *)headline)->content);
+ str = ttrss_get_headline_content((struct headline *)headline);
+
+ if (str)
+ web_load(str);
+ else
+ web_load("");
gtk_tree_path_free(path);
}
json_object_put(rp);
}
+const char *ttrss_get_headline_content(struct headline *h)
+{
+ struct json_object *rp, *rq, *content, *array, *item;
+
+ printf("get_headlines %d\n", h->id);
+
+ if (!h->content) {
+ rq = create_op("getArticle");
+ json_object_object_add(rq, "article_id",
+ json_object_new_int(h->id));
+
+ rp = post_json_object(session_url, rq);
+
+ json_object_put(rq);
+
+ array = json_object_object_get(rp, "content");
+
+ if (!array)
+ goto release;
+
+ item = json_object_array_get_idx(array, 0);
+
+ if (!item)
+ goto release;
+
+ content = json_object_object_get(item, "content");
+
+ h->content = strdup(json_object_get_string(content));
+
+ release:
+ json_object_put(rp);
+ }
+ return h->content;
+}
+
static struct headline **get_headlines(int feed_id)
{
struct json_object *rp, *rq, *content, *jheadline, *j;
rq = create_op("getHeadlines");
json_object_object_add(rq, "feed_id", json_object_new_int(feed_id));
- json_object_object_add(rq, "show_excerpt", json_object_new_boolean(1));
- json_object_object_add(rq, "show_content", json_object_new_boolean(1));
rp = post_json_object(session_url, rq);
h = malloc(sizeof(struct headline));
+ j = json_object_object_get(jheadline, "id");
+ h->id = json_object_get_int(j);
+
j = json_object_object_get(jheadline, "title");
h->title = strdup(json_object_get_string(j));
- j = json_object_object_get(jheadline, "excerpt");
- h->excerpt = strdup(json_object_get_string(j));
-
- j = json_object_object_get(jheadline, "content");
- h->content = strdup(json_object_get_string(j));
+ h->excerpt = NULL;
+ h->content = NULL;
j = json_object_object_get(jheadline, "unread");
h->unread = json_object_get_boolean(j);