Update Folha de Sao Paolo

This commit is contained in:
Kovid Goyal 2018-03-15 10:17:02 +05:30
parent dff08d5ebd
commit 7cb3f0ac84
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -1,144 +1,50 @@
# -*- coding: utf-8 -*- #!/usr/bin/env python2
# vim:fileencoding=utf-8
from __future__ import unicode_literals, division, absolute_import, print_function
from calibre.web.feeds.news import BasicNewsRecipe from calibre.web.feeds.news import BasicNewsRecipe
from datetime import datetime, timedelta
from calibre.ebooks.BeautifulSoup import Tag, BeautifulSoup
from calibre.utils.magick import Image, PixelWand
from urllib2 import Request, urlopen, URLError
class FolhaOnline(BasicNewsRecipe): class Folha(BasicNewsRecipe):
THUMBALIZR_API = '' # ---->Get your at http://www.thumbalizr.com/ and put here title = 'Folha de São Paolo'
LANGUAGE = 'pt_br' language = 'pt_BR'
language = 'pt_BR' __author__ = 'Bola de Fogo'
LANGHTM = 'pt-br' oldest_article = 1
ENCODING = 'cp1252' max_articles_per_feed = 100
ENCHTM = 'iso-8859-1' auto_cleanup = True
directionhtm = 'ltr'
requires_version = (0, 7, 47)
news = True
title = u'Folha de S\xE3o Paulo' feeds = [
__author__ = 'Euler Alves and Alex Mitrani, improved by Bola de Fogo' (u'Poder', u'http://feeds.folha.uol.com.br/poder/rss091.xml'),
description = u'Brazilian news from Folha de S\xE3o Paulo' (u'Cotidiano', u'http://feeds.folha.uol.com.br/cotidiano/rss091.xml'),
publisher = u'Folha de S\xE3o Paulo' ('Painel', 'http://painel.blogfolha.uol.com.br/feed/'),
category = 'news, rss' ('Josias', 'http://josiasdesouza.blogosfera.uol.com.br/feed/'),
('Milton Neves', 'http://blogmiltonneves.bol.uol.com.br/feed/'),
oldest_article = 4 ('Noblat', 'http://noblat.oglobo.globo.com/rss/ultimas.feed'),
max_articles_per_feed = 200 (u'Mercado', u'http://feeds.folha.uol.com.br/mercado/rss091.xml'),
summary_length = 1000 (u'Mundo', u'http://feeds.folha.uol.com.br/mundo/rss091.xml'),
(u'Esporte', u'http://feeds.folha.uol.com.br/esporte/rss091.xml'),
remove_javascript = True (u'Comida', u'http://feeds.folha.uol.com.br/comida/rss091.xml'),
no_stylesheets = True (u'Tec', u'http://feeds.folha.uol.com.br/tec/rss091.xml'),
use_embedded_content = False (u'Ilustrada', u'http://feeds.folha.uol.com.br/ilustrada/rss091.xml'),
remove_empty_feeds = True (u'Opiniao', u'http://feeds.folha.uol.com.br/opiniao/rss091.xml'),
timefmt = ' [%d %b %Y (%a)]' (u'Ciência', u'http://feeds.folha.uol.com.br/ciencia/rss091.xml'),
(u'Equilíbrio e Saúde', u'http://feeds.folha.uol.com.br/equilibrioesaude/rss091.xml'),
html2lrf_options = [ (u'Elio Gaspari', u'http://feeds.folha.uol.com.br/colunas/eliogaspari/rss091.xml'),
'--comment', description, '--category', category, '--publisher', publisher (u'Tati Bernardi', u'http://feeds.folha.uol.com.br/colunas/tatibernardi/rss091.xml'),
(u'PVC', u'http://feeds.folha.uol.com.br/colunas/pvc/rss091.xml'),
(u'Clóvis Rossi', u'http://feeds.folha.uol.com.br/colunas/clovisrossi/rss091.xml'),
(u'Hélio Schwartsman', u'http://feeds.folha.uol.com.br/colunas/helioschwartsman/rss091.xml'),
(u'Janio de Freitas', u'http://feeds.folha.uol.com.br/colunas/janiodefreitas/rss091.xml'),
(u'João Pereira Coutinho', u'http://feeds.folha.uol.com.br/colunas/joaopereiracoutinho/rss091.xml'),
(u'Juca', u'http://feeds.folha.uol.com.br/colunas/jucakfouri/rss091.xml'),
(u'Vinicius Torres Freitas', u'http://feeds.folha.uol.com.br/colunas/viniciustorres/rss091.xml'),
(u'Monica Bergamo', u'http://feeds.folha.uol.com.br/colunas/monicabergamo/rss091.xml'),
(u'Alexandre Schwartsman', u'http://feeds.folha.uol.com.br/colunas/alexandreschwartsman/rss091.xml'),
(u'Vinicius Mota', u'http://feeds.folha.uol.com.br/colunas/viniciusmota/rss091.xml'),
(u'Tostao', u'http://feeds.folha.uol.com.br/colunas/tostao/rss091.xml'),
(u'Reinaldo Azevedo', u'http://feeds.folha.uol.com.br/colunas/reinaldoazevedo/rss091.xml'),
(u'Contardo', u'http://feeds.folha.uol.com.br/colunas/contardocalligaris/rss091.xml'),
(u'Samuel Pessoa', u'http://feeds.folha.uol.com.br/colunas/samuelpessoa/rss091.xml'),
(u'Onbudsman', u'http://feeds.folha.uol.com.br/colunas/paula-cesarino-costa-ombudsman/rss091.xml'),
('Mariliz Pereira', 'http://feeds.folha.uol.com.br/colunas/marilizpereirajorge/rss091.xml'),
('X', 'http://xdesexo.blogfolha.uol.com.br/feed/'),
] ]
html2epub_options = 'publisher="' + publisher + \
'"\ncomments="' + description + '"\ntags="' + category + '"'
hoje = datetime.now()
pubdate = hoje.strftime('%a, %d %b')
if hoje.hour < 6:
hoje = hoje - timedelta(days=1)
CAPA = 'http://img.kiosko.net/' + hoje.strftime('%Y') + '/' + hoje.strftime(
'%m') + '/' + hoje.strftime('%d') + '/br/br_folha_spaulo.200.jpg'
SCREENSHOT = 'http://www1.folha.uol.com.br/'
cover_margins = (0, 0, 'white')
masthead_url = 'http://f.i.uol.com.br/fsp/furniture/images/lgo-fsp-430x50-ffffff.gif'
keep_only_tags = [
dict(name='div', attrs={'id': 'articleNew'}),
dict(name='article', id='news'),
]
feeds = [
(u'Em cima da hora', u'http://feeds.folha.uol.com.br/emcimadahora/rss091.xml'),
(u'Poder', u'http://feeds.folha.uol.com.br/poder/rss091.xml'),
(u'Cotidiano', u'http://feeds.folha.uol.com.br/cotidiano/rss091.xml'),
(u'Mercado', u'http://feeds.folha.uol.com.br/mercado/rss091.xml'),
(u'Mundo', u'http://feeds.folha.uol.com.br/mundo/rss091.xml'),
(u'Esporte', u'http://feeds.folha.uol.com.br/esporte/rss091.xml'),
(u'Comida', u'http://feeds.folha.uol.com.br/comida/rss091.xml'),
(u'Tec', u'http://feeds.folha.uol.com.br/tec/rss091.xml'),
(u'Ilustrada', u'http://feeds.folha.uol.com.br/ilustrada/rss091.xml'),
(u'Ambiente', u'http://feeds.folha.uol.com.br/ambiente/rss091.xml'),
(u'Opiniao', u'http://feeds.folha.uol.com.br/opiniao/rss091.xml'),
(u'Ci\xEAncia', u'http://feeds.folha.uol.com.br/ciencia/rss091.xml'),
(u'Equil\xEDbrio e Sa\xFAde', u'http://feeds.folha.uol.com.br/equilibrioesaude/rss091.xml'),
(u'Elio Gaspari', u'http://feeds.folha.uol.com.br/colunas/eliogaspari/rss091.xml'),
(u'Tati Bernardi', u'http://feeds.folha.uol.com.br/colunas/tatibernardi/rss091.xml'),
(u'PVC', u'http://feeds.folha.uol.com.br/colunas/pvc/rss091.xml'),
(u'Clóvis Rossi', u'http://feeds.folha.uol.com.br/colunas/clovisrossi/rss091.xml'),
(u'Hélio Schwartsman', u'http://feeds.folha.uol.com.br/colunas/helioschwartsman/rss091.xml'),
(u'Humberto Luiz Peron', u'http://feeds.folha.uol.com.br/colunas/futebolnarede/rss091.xml'),
(u'João Pereira Coutinho', u'http://feeds.folha.uol.com.br/colunas/joaopereiracoutinho/rss091.xml'),
(u'Cony', u'http://feeds.folha.uol.com.br/colunas/carlosheitorcony/rss091.xml'),
(u'Juca', u'http://feeds.folha.uol.com.br/colunas/jucakfouri/rss091.xml'),
(u'Viniciu Torres Freitas', u'http://feeds.folha.uol.com.br/colunas/viniciustorres/rss091.xml'),
(u'Monica Bergamo', u'http://feeds.folha.uol.com.br/colunas/monicabergamo/rss091.xml'),
(u'Vinicius Mota', u'http://feeds.folha.uol.com.br/colunas/viniciusmota/rss091.xml'),
(u'Bernardo Guimaraes', u'http://aeconomianoseculo21.blogfolha.uol.com.br/feed/'),
(u'Tostao', u'http://feeds.folha.uol.com.br/colunas/tostao/rss091.xml'),
(u'Valdo Cruz', u'http://feeds.folha.uol.com.br/colunas/valdocruz/rss091.xml')
]
conversion_options = {
'title': title, 'comments': description, 'publisher': publisher, 'tags': category, 'language': LANGUAGE, 'linearize_tables': True
}
def preprocess_html(self, soup):
for item in soup.findAll(style=True):
del item['style']
if not soup.find(attrs={'http-equiv': 'Content-Language'}):
meta0 = Tag(soup, 'meta', [
("http-equiv", "Content-Language"), ("content", self.LANGHTM)])
soup.head.insert(0, meta0)
if not soup.find(attrs={'http-equiv': 'Content-Type'}):
meta1 = Tag(soup, 'meta', [
("http-equiv", "Content-Type"), ("content", "text/html; charset=" + self.ENCHTM)])
soup.head.insert(0, meta1)
return soup
def postprocess_html(self, soup, first):
# process all the images. assumes that the new html has the correct
# path
for tag in soup.findAll(lambda tag: tag.name.lower() == 'img' and 'src' in tag):
iurl = tag['src']
img = Image()
img.open(iurl)
width, height = img.size
print 'img is: ', iurl, 'width is: ', width, 'height is: ', height
if img < 0:
raise RuntimeError('Out of memory')
pw = PixelWand()
if(width > height and width > 590):
print 'Rotate image'
img.rotate(pw, -90)
img.save(iurl)
return soup
def get_cover_url(self):
cover_url = self.CAPA
pedido = Request(self.CAPA)
pedido.add_header('User-agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ' +
self.LANGHTM + '; userid=' + self.THUMBALIZR_API + ') Calibre/0.8.47 (like Gecko)')
pedido.add_header('Accept-Charset', self.ENCHTM)
pedido.add_header('Referer', self.SCREENSHOT)
try:
resposta = urlopen(pedido)
soup = BeautifulSoup(resposta)
cover_item = soup.find('body')
if cover_item:
cover_url = 'http://api.thumbalizr.com/?api_key=' + self.THUMBALIZR_API + \
'&url=' + self.SCREENSHOT + '&width=600&quality=90'
return cover_url
except URLError:
cover_url = 'http://api.thumbalizr.com/?api_key=' + self.THUMBALIZR_API + \
'&url=' + self.SCREENSHOT + '&width=600&quality=90'
return cover_url