Don't try to store status updates for fake blog entries
authorMagnus Hagander <magnus@hagander.net>
Thu, 11 Feb 2016 14:17:01 +0000 (15:17 +0100)
committerMagnus Hagander <magnus@hagander.net>
Thu, 11 Feb 2016 14:17:01 +0000 (15:17 +0100)
We create fake entries when scanning for saved blogs, and they should
never be saved to the db.

This was broken by baefbd4de052774e75c52e7830ba396b4c8b3664 which pushed
the save into the aggregator. Now, make it optional.

hamnadmin/hamnadmin/register/forms.py
hamnadmin/hamnadmin/util/aggregate.py

index 8f00187276f7881eda09a0f10b0df4c036e5547d..07ff91300e0e5abd538fea4058894e3815342d3a 100644 (file)
@@ -29,7 +29,7 @@ class BlogEditForm(forms.ModelForm):
 
                # Create a fake instance to pass down. We'll just throw it away
                feedobj = Blog(feedurl=self.cleaned_data['feedurl'], authorfilter=self.cleaned_data['authorfilter'])
-               fetcher = FeedFetcher(feedobj, _trace)
+               fetcher = FeedFetcher(feedobj, _trace, False)
                try:
                        entries = list(fetcher.parse())
                except Exception, e:
index 5e21f919ba4cf0ff89dc1950dc4c7b52b552f6d8..0588e052ec4f717f92984295b9cc51df7c9dc117 100644 (file)
@@ -7,9 +7,10 @@ import feedparser
 from hamnadmin.register.models import Post
 
 class FeedFetcher(object):
-       def __init__(self, feed, tracefunc=None):
+       def __init__(self, feed, tracefunc=None, update=True):
                self.feed = feed
                self.tracefunc = tracefunc
+               self.update = update
                self.newest_entry_date = None
 
        def _trace(self, msg):
@@ -104,12 +105,13 @@ class FeedFetcher(object):
                                # currently define rediculously long as 5 days
                                d = datetime.datetime.now()
 
-                       self.feed.lastget = d
-                       self.feed.save()
+                       if self.update:
+                               self.feed.lastget = d
+                               self.feed.save()
                else:
                        # We didn't get a Last-Modified time, so set it to the entry date
                        # for the latest entry in this feed.
-                       if self.newest_entry_date:
+                       if self.newest_entry_date and self.update:
                                self.feed.lastget = self.newest_entry_date
                                self.feed.save()