def find_news(): items = [] try: root = ET.fromstring( requests.get(config.get('main', 'rss_url')).content) except requests.exceptions.ConnectionError: return [] for item in root.findall('.//channel/item'): link, title = item.find('link').text, item.find('title').text ext_id = link.split('.')[-1].split('/')[0] if not Topic.select().where(Topic.ext_id == ext_id): items.append({"title": title, "link": link}) Topic.create(title=title, link=link, ext_id=ext_id) else: Topic.update(title=title, link=link).where(Topic.ext_id == ext_id) return items