View Single Post
Old 11-20-2011, 10:16 AM   #6
PatStapleton
Member
PatStapleton began at the beginning.
 
Posts: 22
Karma: 10
Join Date: Nov 2011
Location: Australia
Device: Kindle 4
Ok I think I have it working now. More work than I thought!

Let me know if you have any problems.

Spoiler:
Code:
__license__   = 'GPL v3'
__copyright__ = '2011, Pat Stapleton <pat.stapleton at gmail.com>'
'''
abc.net.au/news
'''
import re
from calibre.web.feeds.recipes import BasicNewsRecipe

class ABCNews(BasicNewsRecipe):
    title                  = 'ABC News'
    __author__             = 'Pat Stapleton, Dean Cording'
    description            = 'News from Australia'
    masthead_url           = 'http://www.abc.net.au/news/assets/v5/images/common/logo-news.png'
    cover_url              = 'http://www.abc.net.au/news/assets/v5/images/common/logo-news.png'

    oldest_article         = 2
    max_articles_per_feed  = 100
    no_stylesheets         = False
    #delay                  = 1
    use_embedded_content   = False
    encoding               = 'utf8'
    publisher              = 'ABC News'
    category               = 'News, Australia, World'
    language               = 'en_AU'
    publication_type       = 'newsportal'
#    preprocess_regexps     = [(re.compile(r'<!--.*?-->', re.DOTALL), lambda m: '')]
#Remove annoying map links (inline-caption class is also used for some image captions! hence regex to match maps.google)
    preprocess_regexps     = [(re.compile(r'<a class="inline-caption" href="http://maps\.google\.com.*?/a>', re.DOTALL), lambda m: '')]
    conversion_options = {
                             'comments'        : description
                            ,'tags'            : category
                            ,'language'        : language
                            ,'publisher'       : publisher
                            ,'linearize_tables': False
                         }

    keep_only_tags = [dict(attrs={'class':['article section']})]

    remove_tags = [dict(attrs={'class':['related', 'tags', 'tools', 'attached-content ready',
        'inline-content story left', 'inline-content map left contracted', 'published',
        'story-map', 'statepromo', 'topics', ]})]

    remove_attributes = ['width','height']

    feeds          = [
                      ('Top Stories', 'http://www.abc.net.au/news/feed/45910/rss.xml'),
                      ('Canberra', 'http://www.abc.net.au/news/feed/6910/rss.xml'),
                      ('Sydney', 'http://www.abc.net.au/news/feed/10232/rss.xml'),
                      ('Melbourne', 'http://www.abc.net.au/news/feed/21708/rss.xml'),
                      ('Brisbane', 'http://www.abc.net.au/news/feed/12858/rss.xml'),
                      ('Perth', 'feed://www.abc.net.au/news/feed/24886/rss.xml'),
                      ('Australia', 'http://www.abc.net.au/news/feed/46182/rss.xml'),
                      ('World', 'http://www.abc.net.au/news/feed/52278/rss.xml'),
                      ('Business', 'http://www.abc.net.au/news/feed/51892/rss.xml'),
                      ('Science and Technology', 'http://www.abc.net.au/news/feed/2298/rss.xml'),
                    ]


Enjoy!

-Pat
PatStapleton is offline   Reply With Quote