From fed594a8f9841c273e1f26ddaf47eefedee0e36a Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 7 Sep 2021 16:07:05 +0530 Subject: [PATCH] Update BBC News for changes in website --- recipes/bbc.recipe | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) 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))