calibre/recipes/brecha.recipe

81 lines
3.5 KiB
Plaintext

from __future__ import absolute_import, division, print_function, unicode_literals
__license__ = 'GPL v3'
__copyright__ = '2012, Darko Miletic <darko.miletic at gmail.com>'
'''
www.brecha.com.uy
'''
try:
from urllib.parse import urlencode, quote
except ImportError:
from urllib import urlencode, quote
from calibre.web.feeds.news import BasicNewsRecipe
class Brecha(BasicNewsRecipe):
title = 'Brecha Digital'
__author__ = 'Darko Miletic'
description = 'Brecha , Cultura ,Sociales , Separatas, Lupas, Vueltas de Montevideo y toda la infomacion que caracteriza a este semanario'
publisher = 'Brecha'
category = 'brecha, digital, prensa, uruguay, semanario, sociedad, politica, cultura'
oldest_article = 7
max_articles_per_feed = 200
no_stylesheets = True
encoding = 'utf8'
use_embedded_content = False
language = 'es_UY'
remove_empty_feeds = True
publication_type = 'magazine'
auto_cleanup = True
needs_subscription = 'optional'
masthead_url = 'http://www.brecha.com.uy/templates/ja_nex/themes/orange/images/logo.png'
extra_css = """
body{font-family: Arial,Helvetica,sans-serif }
img{margin-bottom: 0.4em; display:block}
"""
conversion_options = {
'comment': description, 'tags': category, 'publisher': publisher, 'language': language
}
def get_browser(self):
br = BasicNewsRecipe.get_browser(self)
br.open('http://www.brecha.com.uy/index.php/acceder-miembros')
if self.username is not None and self.password is not None:
data = urlencode({'task': 'login', 'view': 'register', 'username': self.username, 'password': self.password
})
br.open(
'http://www.brecha.com.uy/index.php/index.php?option=com_osemsc&controller=register', data)
return br
remove_tags = [
dict(name=['meta', 'link']),
dict(name='div', attrs={'id': 'js_ja'}),
dict(name='ul', attrs={'class': 'actions'})
]
remove_attributes = ['lang', 'border']
feeds = [
(u'Politica', u'http://www.brecha.com.uy/index.php/politica-uruguaya?format=feed&type=rss'),
(u'Mundo', u'http://www.brecha.com.uy/index.php/mundo?format=feed&type=rss'),
(u'Mapamundi', u'http://www.brecha.com.uy/index.php/mundo/mapamundi?format=feed&type=rss'),
(u'Cultura', u'http://www.brecha.com.uy/index.php/cultura?format=feed&type=rss'),
(u'Vueltas de Montevideo',
u'http://www.brecha.com.uy/index.php/cultura/vueltas-de-montevideo?format=feed&type=rss'),
(u'Secos y Mojados', u'http://www.brecha.com.uy/index.php/cultura/secos-y-mojados?format=feed&type=rss'),
(u'Literarias', u'http://www.brecha.com.uy/index.php/cultura/literarias?format=feed&type=rss'),
(u'Sociedad', u'http://www.brecha.com.uy/index.php/sociedad?format=feed&type=rss'),
(u'Especiales', u'http://www.brecha.com.uy/index.php/especiales?format=feed&type=rss'),
(u'Contratapa', u'http://www.brecha.com.uy/index.php/contratapa?format=feed&type=rss')
]
def print_version(self, url):
return url + '?tmpl=component&print=1&layout=default&page='
def get_cover_url(self):
soup = self.index_to_soup('http://www.brecha.com.uy/index.php')
for image in soup.findAll('img', alt=True):
if image['alt'].startswith('Tapa '):
return 'http://www.brecha.com.uy' + quote(image['src'])
return None