示例#1
0
    def _feed_load(self, update = False):
        feed = self._get_feed(update)
        if not feed is None:
            from randblog.rss.entry import Entry
            import randblog.corpus.item
            import randblog.crawler.link
            print "Feed Data Modified"
            self.status.version = feed.version
            self.status.encoding = feed.encoding
            if hasattr(feed, 'etag'):
                self.status.etag = feed.etag
            if hasattr(feed, 'updated_parsed'):
                self.status.updated = convert_time_tuple(feed.updated_parsed)
            if hasattr(feed, 'modified_parsed'):
                self.status.modified = convert_time_tuple(feed.modified_parsed)

            for e_data in feed.entries:
                e, created = Entry.objects.get_or_create(feed=self, entry_id=e_data['id'], defaults = {'title':e_data['title']})
                e.populate_from_dict_info(e_data)
                if created and e.published is None:
                    e.published = datetime.utcnow()
                e.save()
                e.clean()
示例#2
0
 def set_datetime_field(self, fieldName, attr, value):
     suffix = attr[len(fieldName)+1:]
     if suffix == '' and isinstance(value, datetime):
         setattr(self, fieldName, value)
     elif suffix == 'parsed':
         setattr(self, fieldName, convert_time_tuple(value))