def basic_asset_for_element(asset_el): atom_id = asset_el.findtext('{http://www.w3.org/2005/Atom}id') logging.debug('Parsing asset %s', atom_id) try: asset = Post.objects.get(atom_id=atom_id) except Post.DoesNotExist: asset = Post(atom_id=atom_id) asset.imported = True publ = asset_el.findtext('{http://www.w3.org/2005/Atom}published') publ_dt = datetime.strptime(publ, '%Y-%m-%dT%H:%M:%SZ') asset.created = publ_dt content_el = asset_el.find('{http://www.w3.org/2005/Atom}content') content_type = content_el.get('type') if content_type == 'html': asset.html = content_el.text elif content_type == 'xhtml': html_el = content_el.find('{http://www.w3.org/1999/xhtml}div') html = html_el.text or u'' html += u''.join(ElementTree.tostring(el) for el in html_el.getchildren()) asset.html = html author_el = asset_el.find('{http://www.w3.org/2005/Atom}author') author_name = author_el.findtext('{http://www.w3.org/2005/Atom}name') openid = author_el.findtext('{http://www.w3.org/2005/Atom}uri') # Import "gone" folks' comments anonymously. if openid != 'http://www.vox.com/gone/': asset.author = person_for_openid(openid, author_name).user return asset