mirror of
				https://github.com/kovidgoyal/calibre.git
				synced 2025-11-04 03:27:00 -05:00 
			
		
		
		
	Update BBC News for changes in website
This commit is contained in:
		
							parent
							
								
									b63efc28f7
								
							
						
					
					
						commit
						fed594a8f9
					
				@ -12,18 +12,20 @@ from calibre.web.feeds.recipes import BasicNewsRecipe
 | 
			
		||||
def serialize_image(block):
 | 
			
		||||
    yield '<div>'
 | 
			
		||||
    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 '<img src="{}" alt="{}"/>'.format(src, alt)
 | 
			
		||||
    caption = block.get('caption')
 | 
			
		||||
    if caption:
 | 
			
		||||
        yield '<div>{}</div>'.format(prepare_string_for_xml(caption))
 | 
			
		||||
    if caption and caption.get('type') == 'text':
 | 
			
		||||
        yield '<div>'
 | 
			
		||||
        yield from serialize_paragraph(caption)
 | 
			
		||||
        yield '</div>'
 | 
			
		||||
    yield '</div>'
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -102,7 +104,7 @@ def parse_article_json(root, abort_article):
 | 
			
		||||
        lines.append('<h1>{}</h1>'.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))
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user