diff --git a/recipes/bbc.recipe b/recipes/bbc.recipe index 60b302667740..01eadca9e52b 100644 --- a/recipes/bbc.recipe +++ b/recipes/bbc.recipe @@ -12,18 +12,20 @@ from calibre.web.feeds.recipes import BasicNewsRecipe def serialize_image(block): yield '
' block = block['model'] - media = block['media'] - alt = prepare_string_for_xml(media.get('alt') or '', True) + img = block['image'] + alt = prepare_string_for_xml(img.get('alt') or '', True) for q in ('originalSrc', 'src'): - if q in media: - src = prepare_string_for_xml(media[q]) + if q in img: + src = prepare_string_for_xml(img[q]) break else: - raise ValueError('No src found in media block: {}'.format(media)) + raise ValueError('No src found in img block: {}'.format(img)) yield '{}'.format(src, alt) caption = block.get('caption') - if caption: - yield '
{}
'.format(prepare_string_for_xml(caption)) + if caption and caption.get('type') == 'text': + yield '
' + yield from serialize_paragraph(caption) + yield '
' yield '
' @@ -102,7 +104,7 @@ def parse_article_json(root, abort_article): lines.append('

{}

'.format(prepare_string_for_xml(article['headline']))) if article.get('contributor'): lines.extend(serialize_contributor(article['contributor'])) - for block in article['blocks']: + for block in article['content']['model']['blocks']: bt = block.get('type') if bt == 'image': lines.extend(serialize_image(block))