__license__   = 'GPL v3'
__copyright__ = '2008-2010, Darko Miletic <darko.miletic at gmail.com>'
'''
nspm.rs
'''

import re
from calibre.web.feeds.news import BasicNewsRecipe
from calibre.ebooks.BeautifulSoup import Tag

class Nspm(BasicNewsRecipe):
    title                 = 'Nova srpska politicka misao'
    __author__            = 'Darko Miletic'
    description           = 'Casopis za politicku teoriju i drustvena istrazivanja'
    publisher             = 'NSPM'
    category              = 'news, politics, Serbia'
    oldest_article        = 2
    max_articles_per_feed = 100
    no_stylesheets        = True
    use_embedded_content  = False
    INDEX                 = 'http://www.nspm.rs/?alphabet=l'
    encoding              = 'utf-8'
    language              = 'sr'
    publication_type      = 'magazine'    
    masthead_url          = 'http://www.nspm.rs/templates/jsn_epic_pro/images/logol.jpg'
    extra_css             = ' @font-face {font-family: "serif1";src:url(res:///opt/sony/ebook/FONT/tt0011m_.ttf)} @font-face {font-family: "sans1";src:url(res:///opt/sony/ebook/FONT/tt0003m_.ttf)} body{font-family: "Times New Roman", serif1, serif} .article_description{font-family: Arial, sans1, sans-serif} img{margin-top:0.5em; margin-bottom: 0.7em} .author{color: #990000; font-weight: bold} .author,.createdate{font-size: 0.9em} img{margin-top:0.5em; margin-bottom: 0.7em} '

    conversion_options = {
                          'comment'   : description
                        , 'tags'      : category
                        , 'publisher' : publisher
                        , 'language'  : language
                        }

    preprocess_regexps = [(re.compile(u'\u0110'), lambda match: u'\u00D0')]
    remove_tags        = [
                            dict(name=['link','object','embed','script','meta'])
                           ,dict(name='td', attrs={'class':'buttonheading'})
                         ]
    keep_only_tags = [
                         dict(attrs={'class':['contentpagetitle','author','createdate']})
                        ,dict(name='p')                        
                     ]
    remove_attributes = ['width','height']

    def get_browser(self):
        br = BasicNewsRecipe.get_browser()
        br.open(self.INDEX)
        return br

    feeds = [(u'Nova srpska politicka misao', u'http://www.nspm.rs/feed/rss.html')]

    def print_version(self, url):
        return url.replace('.html','/stampa.html')

    def preprocess_html(self, soup):
        for item in soup.body.findAll(style=True):
            del item['style']
        att = soup.find('a',attrs={'class':'contentpagetitle'})
        if att:
           att.name = 'h1';
           del att['href']
        att2 = soup.find('td')
        if att2:
           att2.name = 'p';
           del att['valign']
        for pt in soup.findAll('img'):
            brtag = Tag(soup,'br')
            brtag2 = Tag(soup,'br')
            pt.append(brtag)
            pt.append(brtag2)           
        return soup
