#!/usr/bin/env  python
__license__   = 'GPL v3'
__copyright__ = '2009, Matthew Briggs'
__docformat__ = 'restructuredtext en'

'''
http://www.theaustralian.news.com.au/
'''

from calibre.web.feeds.news import BasicNewsRecipe

class DailyTelegraph(BasicNewsRecipe):
    title          = u'The Australian'
    __author__     = u'Matthew Briggs and Sujata Raman'
    description    = (u'National broadsheet newspaper from down under - colloquially known as The Oz'
            '. You will need to have a subscription to '
            'http://www.theaustralian.com.au to get full articles.')
    language = 'en_AU'

    oldest_article = 2
    needs_subscription = 'optional'
    max_articles_per_feed = 30
    remove_javascript      = True
    no_stylesheets         = True
    encoding               = 'utf8'

    keep_only_tags = [dict(name='div', attrs={'id': 'story'})]

    # remove_tags = [dict(name=['object','link'])]
    remove_tags = [dict(name='div', attrs={'class': 'story-info'}),
                          dict(name='div', attrs={'class': 'story-header-tools'}),
                          dict(name='div', attrs={'class': 'story-sidebar'}),
                          dict(name='div', attrs={'class': 'story-footer'}),
                          dict(name='div', attrs={'id': 'comments'}),
                          dict(name='div', attrs={'class': 'story-extras story-extras-2'}),
                          dict(name='div', attrs={'class': 'group item-count-1 story-related'})
                          ]

    extra_css   = '''
                    h1{font-family :Georgia,"Times New Roman",Times,serif; font-size:large; }
                    #article{font-family :Georgia,"Times New Roman",Times,serif; font-size: x-small;}
                    .module-subheader{font-family :Tahoma,Geneva,Arial,Helvetica,sans-serif; color:#666666; font-size: xx-small;}
                    .intro{ font-family:Trebuchet MS,Trebuchet,Helvetica,sans-serif;font-size: x-small; }
                    .article-source{font-family:Trebuchet MS,Trebuchet,Helvetica,sans-serif; color:#666666; font-size: xx-small;}
                    .caption{font-family:Trebuchet MS,Trebuchet,Helvetica,sans-serif; font-size: xx-small;}
                '''

    feeds = [
        (u'News', u'http://feeds.news.com.au/public/rss/2.0/aus_news_807.xml'),
        (u'Opinion', u'http://feeds.news.com.au/public/rss/2.0/aus_opinion_58.xml'),
        (u'The Nation', u'http://feeds.news.com.au/public/rss/2.0/aus_the_nation_62.xml'),
        (u'World News', u'http://feeds.news.com.au/public/rss/2.0/aus_world_808.xml'),
        (u'US Election', u'http://feeds.news.com.au/public/rss/2.0/aus_uselection_687.xml'),
        (u'Climate', u'http://feeds.news.com.au/public/rss/2.0/aus_climate_809.xml'),
        (u'Media', u'http://feeds.news.com.au/public/rss/2.0/aus_media_57.xml'),
        (u'IT', u'http://feeds.news.com.au/public/rss/2.0/ausit_itnews_topstories_367.xml'),
        (u'Exec Tech', u'http://feeds.news.com.au/public/rss/2.0/ausit_exec_topstories_385.xml'),
        (u'Higher Education', u'http://feeds.news.com.au/public/rss/2.0/aus_higher_education_56.xml'),
        (u'Arts', u'http://feeds.news.com.au/public/rss/2.0/aus_arts_51.xml'),
        (u'Travel', u'http://feeds.news.com.au/public/rss/2.0/aus_travel_and_indulgence_63.xml'),
        (u'Property', u'http://feeds.news.com.au/public/rss/2.0/aus_property_59.xml'),
        (u'Sport', u'http://feeds.news.com.au/public/rss/2.0/aus_sport_61.xml'),
        (u'Business', u'http://feeds.news.com.au/public/rss/2.0/aus_business_811.xml'),
        (u'Aviation', u'http://feeds.news.com.au/public/rss/2.0/aus_business_aviation_706.xml'),
        (u'Commercial Property', u'http://feeds.news.com.au/public/rss/2.0/aus_business_commercial_property_708.xml'),
        (u'Mining', u'http://feeds.news.com.au/public/rss/2.0/aus_business_mining_704.xml')]

    def get_browser(self):
        br = BasicNewsRecipe.get_browser(self)
        if self.username and self.password:
            br.open('http://www.theaustralian.com.au')
            br.select_form(nr=1)
            br['username'] = self.username
            br['password'] = self.password
            raw = br.submit().read()
            if '>log out' not in raw.lower():
                raise ValueError('Failed to log in to www.theaustralian.com.au'
                        ' are your username and password correct?')
        return br

    def get_article_url(self, article):
        return article.id

        # br = self.get_browser()
        # br.open(article.link).read()
        # print br.geturl()

        # return br.geturl()



