View Single Post
Old 06-16-2011, 09:56 PM   #3
sexymax15
Enthusiast
sexymax15 began at the beginning.
 
sexymax15's Avatar
 
Posts: 30
Karma: 12
Join Date: Jun 2011
Location: India
Device: Kindle 3g
Quote:
Originally Posted by kovidgoyal View Post
What's the difference to the builtin recipe?
This is the built in version. Here you are not using RSS


Quote:
from __future__ import with_statement
__license__ = 'GPL 3'
__copyright__ = '2009, Kovid Goyal <kovid@kovidgoyal.net>'

import time
from calibre.web.feeds.news import BasicNewsRecipe

class TheHindu(BasicNewsRecipe):
title = u'The Hindu'
language = 'en_IN'

oldest_article = 7
__author__ = 'Kovid Goyal'
max_articles_per_feed = 100
no_stylesheets = True

keep_only_tags = [dict(id='content')]
remove_tags = [dict(attrs={'class':['article-links', 'breadcr']}),
dict(id=['email-section', 'right-column', 'printfooter'])]

extra_css = '.photo-caption { font-size: smaller }'

def postprocess_html(self, soup, first_fetch):
for t in soup.findAll(['table', 'tr', 'td','center']):
t.name = 'div'
return soup

def parse_index(self):
today = time.strftime('%Y-%m-%d')
soup = self.index_to_soup(
'http://www.thehindu.com/todays-paper/tp-index/?date=' + today)
div = soup.find(id='left-column')
feeds = []
current_section = None
current_articles = []
for x in div.findAll(['h3', 'div']):
if current_section and x.get('class', '') == 'tpaper':
a = x.find('a', href=True)
if a is not None:
current_articles.append({'url':a['href']+'?css=print',
'title':self.tag_to_string(a), 'date': '',
'description':''})
if x.name == 'h3':
if current_section and current_articles:
feeds.append((current_section, current_articles))
current_section = self.tag_to_string(x)
current_articles = []
return feeds
And this version is mine:


Quote:
class AdvancedUserRecipe1301060393(BasicNewsRecipe):
title = u'The Hindu1'
oldest_article = 7
max_articles_per_feed = 15

feeds = [(u'National', u'http://www.thehindu.com/news/national/?service=feeder'),
(u'International', u'http://www.thehindu.com/news/international/?service=feeder'),
(u'Sports', u'http://www.thehindu.com/sport/?service=feeder'),
(u'States', u'http://www.thehindu.com/news/states/?service=feeder'),
(u'Science', u'http://www.thehindu.com/sci-tech/science/?service=feeder'),
(u'Business', u'http://www.thehindu.com/business/?service=feeder'),
(u'Life&Style', u'http://www.thehindu.com/life-and-style/?service=feeder'),
(u'Arts', u'http://www.thehindu.com/arts/?service=feeder'),
(u'Health',u'http://www.thehindu.com/health/?service=feeder'),
(u'Editorial', u'http://www.thehindu.com/opinion/editorial/?service=feeder'),
(u'Agriculture', u'http://www.thehindu.com/sci-tech/agriculture/?service=feeder')
]
The hindu provides comple RSS feed. So you don't need to make any extra effort just add the RSS feed and your recipe will be ready in no minute.It already provides you the print version of the article.So please up date your calibre 'The Hindu' recipe. Your recipe sometimes doesnot fetch any article.

Comparision:
Calibre Built-In:





New Recipe:






:t hanks:
FOR MAKING CALIBRE


BY THE WAY IF YOU ARE AN INDIAN PLEASE JANLOKPAL AND ANNAHAZARE
sexymax15 is offline   Reply With Quote