(no commit message)
[prss.git] / src / ttrss_model.c
index c65a710..3cba736 100644 (file)
@@ -18,6 +18,7 @@
  */
 
 #include <stdlib.h>
+#include <stdio.h>
 #include <string.h>
 
 #include "ttrss_model.h"
@@ -100,9 +101,10 @@ struct headline *headline_new(int id, const char *url, const char *title)
        h->id = id;
        h->url = strdup(url);
        h->title = strdup(title);
+       h->unread = -1;
        h->excerpt = NULL;
        h->content = NULL;
-       
+
        return h;
 }
 
@@ -120,6 +122,21 @@ void headlines_free(struct headline **headlines)
        }
 }
 
+struct feed *feed_new(int id, const char *url, const char *title)
+{
+       struct feed *f;
+
+       f = malloc(sizeof(struct feed));
+
+       f->id = id;
+       f->url = strdup(url);
+       f->title = strdup(title);
+       f->unread = -1;
+       f->headlines = NULL;
+
+       return f;
+}
+
 void feed_free(struct feed *feed)
 {
        if (feed) {
@@ -145,3 +162,34 @@ void feeds_free(struct feed **feeds)
                free(feeds);
        }
 }
+
+struct feed *feeds_get_feed(struct feed **feeds, int id)
+{
+       struct feed **cur;
+
+       if (feeds)
+               for (cur = feeds; *cur; cur++)
+                       if ((*cur)->id == id)
+                               return *cur;
+
+       return NULL;
+}
+
+struct headline *feeds_get_headline(struct feed **feeds, int id)
+{
+       struct headline *h;
+
+       if (!feeds)
+               return NULL;
+
+       while (*feeds) {
+               h = feed_get_headline(*feeds, id);
+
+               if (h)
+                       return h;
+
+               feeds++;
+       }
+
+       return NULL;
+}