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()
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))