This commit is contained in:
Kovid Goyal 2023-07-14 20:15:28 +05:30
commit 30a3c7db1e
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -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 <a> 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;}',
])