calibre/recipes/crikey.recipe
Kovid Goyal f03f2c06a4
Crikey by Alistair Francis
Merge branch 'alistair/crikey' of https://github.com/alistair23/calibre
2021-04-18 07:51:56 +05:30

57 lines
1.6 KiB
Python

#!/usr/bin/env python
__license__ = 'GPL v3'
__copyright__ = '2021, Alistair Francis alistair@alistair23.me'
__docformat__ = 'restructuredtext en'
from urllib.parse import urlencode
from calibre.web.feeds.news import BasicNewsRecipe
def classes(classes):
q = frozenset(classes.split(' '))
return dict(attrs={
'class': lambda x: x and frozenset(x.split()).intersection(q)})
class Crikey(BasicNewsRecipe):
title = 'Crikey'
description = 'Australian News'
__author__ = 'Alistair Francis'
language = 'en_AU'
use_embedded_content = True
needs_subscription = True
keep_only_tags = [
classes('article-body'),
]
feeds = [
('Politics', 'https://www.crikey.com.au/politics/feed'),
('World', 'https://www.crikey.com.au/world/feed'),
('Media', 'https://www.crikey.com.au/media/feed'),
('Buisness', 'https://www.crikey.com.au/business/feed'),
('Coronavirus', 'https://www.crikey.com.au/coronavirus/feed'),
('Culture', 'https://www.crikey.com.au/life/feed'),
]
def get_browser(self):
br = BasicNewsRecipe.get_browser(self)
br.open('https://www.crikey.com.au/')
if self.username is not None and self.password is not None:
postdata = urlencode({
'username': self.username,
'password': self.password
})
br.open(
'https://www.crikey.com.au',
data=postdata,
timeout=self.timeout
)
br.set_handle_refresh(True)
return br