mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Update nzz_ger.recipe to add cover retrieval
This commit is contained in:
parent
2ccacce456
commit
3ff582c625
@ -1,4 +1,8 @@
|
|||||||
from calibre.web.feeds.recipes import BasicNewsRecipe
|
from calibre.web.feeds.recipes import BasicNewsRecipe
|
||||||
|
import mechanize
|
||||||
|
import json
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
|
||||||
class Nzz(BasicNewsRecipe):
|
class Nzz(BasicNewsRecipe):
|
||||||
title = 'NZZ'
|
title = 'NZZ'
|
||||||
@ -6,11 +10,12 @@ class Nzz(BasicNewsRecipe):
|
|||||||
description = 'Neue Zürcher Zeitung'
|
description = 'Neue Zürcher Zeitung'
|
||||||
publisher = 'Neue Zürcher Zeitung'
|
publisher = 'Neue Zürcher Zeitung'
|
||||||
category = 'news, politics'
|
category = 'news, politics'
|
||||||
|
oldest_article = 30
|
||||||
|
max_articles_per_feed = 15
|
||||||
language = 'de'
|
language = 'de'
|
||||||
no_stylesheets = True
|
no_stylesheets = True
|
||||||
use_embedded_content = False
|
use_embedded_content = False
|
||||||
encoding = 'utf-8'
|
encoding = 'utf-8'
|
||||||
timefmt = ' [%a, %d %b %Y %H:%M:%S %z]'
|
|
||||||
|
|
||||||
scale_news_images = (600, 400)
|
scale_news_images = (600, 400)
|
||||||
scale_news_images_to_device = True
|
scale_news_images_to_device = True
|
||||||
@ -45,6 +50,52 @@ class Nzz(BasicNewsRecipe):
|
|||||||
('Technologie', 'https://www.nzz.ch/technologie.rss'),
|
('Technologie', 'https://www.nzz.ch/technologie.rss'),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
def get_cover_url(self):
|
||||||
|
# Prepare the date and data
|
||||||
|
today_date = datetime.now().strftime('%Y-%m-%d')
|
||||||
|
json_data = {
|
||||||
|
'editions': [
|
||||||
|
{
|
||||||
|
'publicationDate': today_date,
|
||||||
|
'defId': 6,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
'startDate': today_date,
|
||||||
|
'maxHits': 1,
|
||||||
|
'direction': 'BACKWARD',
|
||||||
|
}
|
||||||
|
|
||||||
|
# Prepare headers
|
||||||
|
headers = {
|
||||||
|
'Accept': 'application/json',
|
||||||
|
'Accept-Language': 'en-US,en;q=0.9,de;q=0.8',
|
||||||
|
'Content-Type': 'application/json',
|
||||||
|
'Origin': 'https://epaper.nzz.ch',
|
||||||
|
'Referer': 'https://epaper.nzz.ch/',
|
||||||
|
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0',
|
||||||
|
'X-Requested-With': 'XMLHttpRequest',
|
||||||
|
}
|
||||||
|
|
||||||
|
# Encode your JSON data
|
||||||
|
encoded_data = json.dumps(json_data).encode('utf-8')
|
||||||
|
|
||||||
|
# Create a mechanize Request object with the target URL, encoded data, and headers
|
||||||
|
req = mechanize.Request(url='https://epaper.nzz.ch/epaper/1.0/findEditionsFromDate',
|
||||||
|
data=encoded_data,
|
||||||
|
headers=headers,
|
||||||
|
method='POST')
|
||||||
|
|
||||||
|
# Use mechanize to open the request and read the response
|
||||||
|
browser = mechanize.Browser()
|
||||||
|
response = browser.open(req)
|
||||||
|
response_data = json.loads(response.read())
|
||||||
|
|
||||||
|
# Extract the desired information
|
||||||
|
url = response_data['data'][0]['pages'][0]['pageDocUrl']['PREVIEW']['url']
|
||||||
|
|
||||||
|
return url
|
||||||
|
|
||||||
|
|
||||||
def get_browser(self, *args, **kwargs):
|
def get_browser(self, *args, **kwargs):
|
||||||
kwargs['user_agent'] = 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)'
|
kwargs['user_agent'] = 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)'
|
||||||
br = BasicNewsRecipe.get_browser(self, *args, **kwargs)
|
br = BasicNewsRecipe.get_browser(self, *args, **kwargs)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user