-from .models import Feed, Entry
+from .models import Feed, Entry, Subscription, UserEntry
import datetime
import feedparser
refresh_feed(feed)
-def add_feed(url):
- feed = Feed(url=url)
+def add_feed(url, user=None):
+ try:
+ feed = Feed.objects.get(url=url)
+ except Feed.DoesNotExist:
+ feed = Feed(url=url)
refresh_feed(feed)
- return feed
\ No newline at end of file
+ if user is not None:
+ sub, _ = Subscription.objects.get_or_create(user=user, feed=feed)
+ return feed
+
+
+def unread_count(user, feed=None):
+ if feed:
+ entries = feed.entries
+ else:
+ entries = Entry.objects.filter(feed__subscriptions__user=user)
+ total_entries = entries.count()
+ read_entries = entries.filter(userentries__user=user, userentries__read=True).count()
+ return total_entries - read_entries
+
\ No newline at end of file