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

class TheSkepticalInquirer(BasicNewsRecipe):
    title          = u'The Skeptical Inquirer'
    description    = 'Investigation of fringe science and paranormal claims.'
    language       = 'en'
    __author__     = 'Starson17'
    oldest_article = 31
    cover_url           = 'http://www.skeptricks.com/images/Skeptical_Inquirer_Magazine.jpg'
    remove_empty_feeds    = True
    remove_javascript   = True
    max_articles_per_feed = 50
    no_stylesheets = True

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

    remove_tags = [
                  dict(name='div', attrs={'id':['socialMedia']}),
                  ]

    preprocess_regexps = [
        (re.compile(r'\.\(JavaScript must be enabled to view this email address\)', re.DOTALL|re.IGNORECASE), lambda match: ''),
        ]

    def parse_index(self):
        feeds = []
        for title, url in [("The Skeptical Inquirer", "http://www.csicop.org")]:
            articles = self.make_links(url)
            if articles:
                feeds.append((title, articles))
        return feeds

    def make_links(self, url):
        soup = self.index_to_soup(url)
        title = ''
        current_articles = []
        for item in soup.findAll(attrs={'class':['article-single bigger']}):
            page_url = url + str(item.a["href"])
            title = str(item.a.string)
            current_articles.append({'title': title, 'url': page_url, 'description':'', 'date':''})
        return current_articles

    extra_css = '''
                    h1{font-family:Arial,Helvetica,sans-serif; font-weight:bold;font-size:large;}
                    h2{font-family:Arial,Helvetica,sans-serif; font-weight:normal;font-size:small;}
                    p{font-family:Arial,Helvetica,sans-serif;font-size:small;}
                    body{font-family:Helvetica,Arial,sans-serif;font-size:small;}
		'''

