diff --git a/recipes/private_eye.recipe b/recipes/private_eye.recipe index e635b928db..8ddda8392d 100644 --- a/recipes/private_eye.recipe +++ b/recipes/private_eye.recipe @@ -8,9 +8,13 @@ from datetime import datetime, timedelta class PrivateEyeRecipe(BasicNewsRecipe): ## - # Last Edited: 2023-07-01 + # Last Edited: 2023-07-14 # - # Remark: Version 3.0 + # Remark: Version 3.1 2023-07-14 + # Show crossword on right so clues are continuous down left + # Link to crossword image removed + # Improve many image layouts + # Version 3.0 2023-07-01 # Rewrite (by Sophist-UK) to fit latest web pages, correctly identify pages to include # and improve formatting. # Edited to add: inclusion of About page, @@ -115,6 +119,20 @@ class PrivateEyeRecipe(BasicNewsRecipe): return [('Private Eye', articles)] + def preprocess_html(self, soup): + # Remove tag link to crossword image + for tag in soup.findAll('a', {'href': re.compile(r'/pictures/crossword/')}): + self.log("Removing link to crossword image...") + tag.unwrap() + + # Remove align tag in crossword image (so float right works) + for tag in soup.findAll('img', {'src': re.compile(r'/pictures/crossword/')}): + if "align" in tag.attrs: + self.log("Removing crossword image align attribute...") + del tag.attrs['align'] + + return soup + # We remove vast swathes of HTML which is not part of the articles. # Remove sibling content remove_tags_before = [ @@ -164,19 +182,29 @@ class PrivateEyeRecipe(BasicNewsRecipe): # ebook without duplicating it as extra css. # However some is new css to tweak output when part of an ebook. extra_css = ' \n '.join([ - '#content img {float: right;}', - '#content img.cartoon-left {float: left;}', - '#content img.cartoon-right {float: right;}', + '#content img {float: right; width: 45%; minimum-width:350px;}', + '#content img.cartoon-left {float: left; margin-right: 15px; margin-bottom: 15px;}', + '#content img.cartoon-right {float: none; margin-bottom: 15px;}', + '#content img.strip {float: none; width: 100%;}', '#content img:first-child {float: none;}', - '#content #block-sections img {float: none;}', - '#content #block-sections img.crossword {float: none; width: 50%; margin-right: 20px;}', - '#article-caption-box {float: right; background: #222222; display: block; width: 40%; max-width: 40%;}', + '#content img.gnitty-right {float: none; width: 160px;}', + '#content #story > div[align=right] > img:first-child {float: none; width: 15px;}', + '#content #story > img:first-child {float: none; height: 100px; width: none; minimum-width: none;}', + '#content #block-sections img {float: none; width: none;}', + '#content #block-sections img.lookalike {float: none; width: 100%;}', + '#content #block-sections img.photo-right {float: right; width: 25%; min-width:120px; margin-left: 15px;}', + '#content #block-sections > p:last-child > img:first-child {float: none; width: 120px;}', + '#content #block-sections > p:last-child > img:nth-child(2) {float: none; width: 120px;}', + '#content #block-sections img.crossword {float: right; width: 40%; margin-left: 15px; min-width: 350px;}', + '#content #article-caption-box {float: right; background: #222222; display: block; width: 40%; min-width: 250px; font-size: 90%; margin-left: 15px;}', + '#content #article-caption-box img {float: none; width: 100%; max-width: none;}', '#caption-box {color: #ffffff; text-align: center; padding: 5px 20px 15px 20px;}', '#whatsapp {border-left: 5px #8aba60 solid; border-right: 5px #8aba60 solid; border-bottom: 5px #8aba60 solid; padding: 0 20px 20px 20px;}', '#whatsapp::after {clear:both;}', - '.whatsapp-left, .whatsapp-right {margin: 20px 0px 0px 0px; padding: 15px; border-radius: 10px;}', - '.whatsapp-left, .whatsapp-right {font-family: Helvetica, Arial, "sans-serif"; font-weight: 300; font-size: 18px; line-height: 24px;}', - '.whatsapp-left {text-align: left; margin-right: 30%; background-color: #eeeeee;}', - '.whatsapp-right {text-align: right; margin-left: 30%; background-color: #dce5ae;}', + '#whatsapp .whatsapp-left, .whatsapp-right {margin: 0 0 20px 0; padding: 15px; border-radius: 10px;}', + '#whatsapp .whatsapp-left, .whatsapp-right {font-family: Helvetica, Arial, "sans-serif"; font-weight: 300; font-size: 18px; line-height: 24px;}', + '#whatsapp .whatsapp-left {text-align: left; margin-right: 30%; background-color: #eeeeee;}', + '#whatsapp .whatsapp-right {text-align: right; margin-left: 30%; background-color: #dce5ae;}', '#whatsapp .whatsapp-left img, #whatsapp .whatsapp-right img {width: 35px; margin: 0 10px; vertical-align: middle;}', + '#whatsapp .whatsapp-left img.emoji, #whatsapp .whatsapp-right img.emoji {max-width: 35px; margin: 0 5px; vertical-align: middle;}', ])