def generate(item): entry = {} for k, v in iteritems({ 'title': 'title', 'date': 'pubDate', 'link': 'link', 'content': 'description' }): try: entry[k] = item.find(v).text if k != 'content' \ else unescape(item.find(v).text) except (AttributeError, TypeError): pass if any( filter(lambda k: k not in entry, ['title', 'date', 'link', 'content'])): raise AcrylamidException('invalid RSS 2.0 feed: provide at least title, ' \ + 'link, content and pubDate!') return { 'title': entry['title'], 'content': entry['content'], 'date': parse_date_time(entry['date']), 'link': entry['link'], 'tags': [cat.text for cat in item.findall('category')] }
def generate(item): entry = {} for k, v in iteritems({'title': 'title', 'date': 'pubDate', 'link': 'link', 'content': 'description'}): try: entry[k] = item.find(v).text if k != 'content' \ else unescape(item.find(v).text) except (AttributeError, TypeError): pass if any(filter(lambda k: k not in entry, ['title', 'date', 'link', 'content'])): raise AcrylamidException('invalid RSS 2.0 feed: provide at least title, ' \ + 'link, content and pubDate!') return {'title': entry['title'], 'content': entry['content'], 'date': parse_date_time(entry['date']), 'link': entry['link'], 'tags': [cat.text for cat in item.findall('category')]}
def generate(item): entry = {} try: entry['title'] = item.find(ns + 'title').text entry['date'] = item.find(ns + 'updated').text entry['link'] = item.find(ns + 'link').text entry['content'] = item.find(ns + 'content').text except (AttributeError, TypeError): raise AcrylamidException('invalid Atom feed: provide at least title, ' + 'link, content and updated!') if item.find(ns + 'content').get('type', 'text') == 'html': entry['content'] = unescape(entry['content']) return {'title': entry['title'], 'content': entry['content'], 'date': datetime.strptime(entry['date'], "%Y-%m-%dT%H:%M:%SZ"), 'link': entry['link'], 'tags': [x.get('term') for x in item.findall(ns + 'category')]}