Example #1
0
    def update(self):
        """This method should be called to update associated Posts
        It will call content-specific methods:
             _get_data() to obtain list of entries
             _store_post() to store obtained entry object
             _get_data_source_url() to get an URL to identify Posts from this Data Source
        """
        #get the raw data
#        self.posts.all().delete() # TODO: handle in update_posts if source changes without deleting every time
        data = self._get_data()
        #iterate through them and for each item
        msg = []
        for entry in data:
            link = self._get_entry_link(entry)
            stored_entry, is_new = Post.objects.get_or_create(link=link)
            self._store_post(stored_entry, entry)
            if is_new is True:
            #self._set_dates(stored_entry)
            #                self._store_post(stored_entry, entry)
                msg.append('Post "%s" added.' % stored_entry.link)
            else:
                msg.append('Post "%s" already saved.' % stored_entry.link)
        self.updated = utils.get_datetime_now()
        self.save(no_signals=True)
        return '<br />'.join(msg)
Example #2
0
    def up_to_date(self):
        """ Returns True if plugin posts are up to date

        Determined by self.updated and conf.GOSCALE_POSTS_UPDATE_FREQUENCY
        """
#        return False
        if not self.updated:
            return False
        return (utils.get_datetime_now() - self.updated).seconds < conf.GOSCALE_POSTS_UPDATE_FREQUENCY