mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Merge from trunk
This commit is contained in:
commit
8f08137735
46
recipes/dobanevinosti.recipe
Normal file
46
recipes/dobanevinosti.recipe
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
|
||||||
|
__license__ = 'GPL v3'
|
||||||
|
__copyright__ = '2013, Darko Miletic <darko.miletic at gmail.com>'
|
||||||
|
'''
|
||||||
|
dobanevinosti.blogspot.com
|
||||||
|
'''
|
||||||
|
|
||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
|
class DobaNevinosti(BasicNewsRecipe):
|
||||||
|
title = 'Doba Nevinosti'
|
||||||
|
__author__ = 'Darko Miletic'
|
||||||
|
description = 'Filmski blog'
|
||||||
|
oldest_article = 15
|
||||||
|
max_articles_per_feed = 100
|
||||||
|
language = 'sr'
|
||||||
|
encoding = 'utf-8'
|
||||||
|
no_stylesheets = True
|
||||||
|
use_embedded_content = True
|
||||||
|
publication_type = 'blog'
|
||||||
|
auto_cleanup = True
|
||||||
|
extra_css = """
|
||||||
|
@font-face {font-family: "sans1";src:url(res:///opt/sony/ebook/FONT/tt0003m_.ttf)}
|
||||||
|
body{font-family: "Trebuchet MS",Trebuchet,Verdana,sans1,sans-serif}
|
||||||
|
img{margin-bottom: 0.8em; display:block;}
|
||||||
|
"""
|
||||||
|
|
||||||
|
conversion_options = {
|
||||||
|
'comment' : description
|
||||||
|
, 'tags' : 'film, blog, srbija, tv'
|
||||||
|
, 'publisher': 'Dimitrije Vojinov'
|
||||||
|
, 'language' : language
|
||||||
|
}
|
||||||
|
remove_attributes = ['lang', 'border']
|
||||||
|
preprocess_regexps = [(re.compile(u'\u0110'), lambda match: u'\u00D0')]
|
||||||
|
|
||||||
|
feeds = [(u'Tekstovi', u'http://dobanevinosti.blogspot.com/feeds/posts/default')]
|
||||||
|
|
||||||
|
def preprocess_html(self, soup):
|
||||||
|
for item in soup.findAll(style=True):
|
||||||
|
del item['style']
|
||||||
|
for item in soup.findAll('img'):
|
||||||
|
if not item.has_key('alt'):
|
||||||
|
item['alt'] = 'image'
|
||||||
|
return soup
|
||||||
|
|
@ -4,7 +4,6 @@ __copyright__ = '2010, Darko Miletic <darko.miletic at gmail.com>'
|
|||||||
scmp.com
|
scmp.com
|
||||||
'''
|
'''
|
||||||
|
|
||||||
import re
|
|
||||||
from calibre.web.feeds.news import BasicNewsRecipe
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
class SCMP(BasicNewsRecipe):
|
class SCMP(BasicNewsRecipe):
|
||||||
@ -18,10 +17,11 @@ class SCMP(BasicNewsRecipe):
|
|||||||
max_articles_per_feed = 200
|
max_articles_per_feed = 200
|
||||||
no_stylesheets = True
|
no_stylesheets = True
|
||||||
encoding = 'utf-8'
|
encoding = 'utf-8'
|
||||||
|
auto_cleanup = True
|
||||||
use_embedded_content = False
|
use_embedded_content = False
|
||||||
language = 'en_CN'
|
language = 'en_CN'
|
||||||
remove_empty_feeds = True
|
remove_empty_feeds = True
|
||||||
needs_subscription = True
|
needs_subscription = 'optional'
|
||||||
publication_type = 'newspaper'
|
publication_type = 'newspaper'
|
||||||
masthead_url = 'http://www.scmp.com/images/logo_scmp_home.gif'
|
masthead_url = 'http://www.scmp.com/images/logo_scmp_home.gif'
|
||||||
extra_css = ' body{font-family: Arial,Helvetica,sans-serif } '
|
extra_css = ' body{font-family: Arial,Helvetica,sans-serif } '
|
||||||
@ -46,17 +46,17 @@ class SCMP(BasicNewsRecipe):
|
|||||||
br.submit()
|
br.submit()
|
||||||
return br
|
return br
|
||||||
|
|
||||||
remove_attributes=['width','height','border']
|
#remove_attributes=['width','height','border']
|
||||||
|
|
||||||
keep_only_tags = [
|
#keep_only_tags = [
|
||||||
dict(attrs={'id':['ART','photoBox']})
|
#dict(attrs={'id':['ART','photoBox']})
|
||||||
,dict(attrs={'class':['article_label','article_byline','article_body']})
|
#,dict(attrs={'class':['article_label','article_byline','article_body']})
|
||||||
]
|
#]
|
||||||
|
|
||||||
preprocess_regexps = [
|
#preprocess_regexps = [
|
||||||
(re.compile(r'<P><table((?!<table).)*class="embscreen"((?!</table>).)*</table>', re.DOTALL|re.IGNORECASE),
|
#(re.compile(r'<P><table((?!<table).)*class="embscreen"((?!</table>).)*</table>', re.DOTALL|re.IGNORECASE),
|
||||||
lambda match: ''),
|
#lambda match: ''),
|
||||||
]
|
#]
|
||||||
|
|
||||||
feeds = [
|
feeds = [
|
||||||
(u'Business' , u'http://www.scmp.com/rss/business.xml' )
|
(u'Business' , u'http://www.scmp.com/rss/business.xml' )
|
||||||
@ -68,13 +68,13 @@ class SCMP(BasicNewsRecipe):
|
|||||||
,(u'Sport' , u'http://www.scmp.com/rss/sport.xml' )
|
,(u'Sport' , u'http://www.scmp.com/rss/sport.xml' )
|
||||||
]
|
]
|
||||||
|
|
||||||
def print_version(self, url):
|
#def print_version(self, url):
|
||||||
rpart, sep, rest = url.rpartition('&')
|
#rpart, sep, rest = url.rpartition('&')
|
||||||
return rpart #+ sep + urllib.quote_plus(rest)
|
#return rpart #+ sep + urllib.quote_plus(rest)
|
||||||
|
|
||||||
def preprocess_html(self, soup):
|
#def preprocess_html(self, soup):
|
||||||
for item in soup.findAll(style=True):
|
#for item in soup.findAll(style=True):
|
||||||
del item['style']
|
#del item['style']
|
||||||
items = soup.findAll(src="/images/label_icon.gif")
|
#items = soup.findAll(src="/images/label_icon.gif")
|
||||||
[item.extract() for item in items]
|
#[item.extract() for item in items]
|
||||||
return self.adeify_images(soup)
|
#return self.adeify_images(soup)
|
||||||
|
@ -422,7 +422,7 @@ class BasicNewsRecipe(Recipe):
|
|||||||
Times recipe to login for full access::
|
Times recipe to login for full access::
|
||||||
|
|
||||||
def get_browser(self):
|
def get_browser(self):
|
||||||
br = BasicNewsRecipe.get_browser()
|
br = BasicNewsRecipe.get_browser(self)
|
||||||
if self.username is not None and self.password is not None:
|
if self.username is not None and self.password is not None:
|
||||||
br.open('http://www.nytimes.com/auth/login')
|
br.open('http://www.nytimes.com/auth/login')
|
||||||
br.select_form(name='login')
|
br.select_form(name='login')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user