# -*- coding: utf-8 -*-
__license__ = 'GPL v3'
__author__ = 'grzegorz.maj@dziennik.krakow.pl>'

'''
http://dziennikpolski24.pl
Author: grzegorz.maj@dziennik.krakow.pl
'''
from calibre.web.feeds.news import BasicNewsRecipe


class DziennikPolski24(BasicNewsRecipe):

    title = u'Dziennik Polski'
    publisher = u'Grupa Polskapresse'

    __author__ = 'grzegorz.maj'
    description = u'Wiadomości z wydania Dziennika Polskiego'
    oldest_article = 1
    max_articles_per_feed = 50
    needs_subscription = True

    remove_javascript = True
    no_stylesheets = True
    use_embedded_content = False
    remove_empty_feeds = True
    extra_css = '.date{margin-top: 4em;} .logo_author{margin-left:0.5em;}'

    publication_type = 'newspaper'
    cover_url = 'http://www.dziennikpolski24.pl/_p/images/logoDP24-b.gif'
    INDEX = 'http://dziennikpolski24.pl/'

    encoding = 'utf-8'
    language = 'pl'

    keep_only_tags = [

        dict(name='div', attrs={'class': ['toolbar']}), dict(name='h1'), dict(name='h2', attrs={'class': ['teaser']}), dict(name='div', attrs={'class': ['picture']}), dict(name='div', attrs={'id': ['showContent']}), dict(name='div', attrs={'class': ['paging']}), dict(name='div', attrs={'class': ['wykupTresc']})  # noqa
    ]

    remove_tags = [

    ]

    feeds = [

    (u'Kraj', u'http://www.dziennikpolski24.pl/rss/feed/1151'),
    (u'Świat', u'http://www.dziennikpolski24.pl/rss/feed/1153'),
    (u'Gospodarka', u'http://www.dziennikpolski24.pl/rss/feed/1154'),
    (u'Małopolska', u'http://www.dziennikpolski24.pl/rss/feed/1155'),
    (u'Kultura', u'http://www.dziennikpolski24.pl/rss/feed/1156'),
    (u'Opinie', u'http://www.dziennikpolski24.pl/rss/feed/1158'),
    (u'Kronika Nowohucka', u'http://www.dziennikpolski24.pl/rss/feed/1656'),
    (u'Na bieżąco', u'http://www.dziennikpolski24.pl/rss/feed/1543'),
    (u'Londyn 2012', u'http://www.dziennikpolski24.pl/rss/feed/2545'),
    (u'Piłka nożna', u'http://www.dziennikpolski24.pl/rss/feed/2196'),
    (u'Siatkówka', u'http://www.dziennikpolski24.pl/rss/feed/2197'),
    (u'Koszykówka', u'http://www.dziennikpolski24.pl/rss/feed/2198'),
    (u'Tenis', u'http://www.dziennikpolski24.pl/rss/feed/2199'),
    (u'Formuła 1', u'http://www.dziennikpolski24.pl/rss/feed/2203'),
    (u'Lekkoatletyka', u'http://www.dziennikpolski24.pl/rss/feed/2204'),
    (u'Żużel', u'http://www.dziennikpolski24.pl/rss/feed/2200'),
    (u'Sporty motorowe', u'http://www.dziennikpolski24.pl/rss/feed/2206'),
    (u'Publicystyka sportowa', u'http://www.dziennikpolski24.pl/rss/feed/2201'),
    (u'Kolarstwo', u'http://www.dziennikpolski24.pl/rss/feed/2205'),
    (u'Inne', u'http://www.dziennikpolski24.pl/rss/feed/2202'),
    (u'Miasto Kraków', u'http://www.dziennikpolski24.pl/rss/feed/1784'),
    (u'Region nowosądecki', u'http://www.dziennikpolski24.pl/rss/feed/1795'),
    (u'Region Małopolski Zachodniej', u'http://www.dziennikpolski24.pl/rss/feed/1793'),
    (u'Region tarnowski', u'http://www.dziennikpolski24.pl/rss/feed/1797'),
    (u'Region podhalański', u'http://www.dziennikpolski24.pl/rss/feed/1789'),
    (u'Region olkuski', u'http://www.dziennikpolski24.pl/rss/feed/1670'),
    (u'Region miechowski', u'http://www.dziennikpolski24.pl/rss/feed/1806'),
    (u'Region podkrakowski', u'http://www.dziennikpolski24.pl/rss/feed/1787'),
    (u'Region proszowicki', u'http://www.dziennikpolski24.pl/rss/feed/1804'),
    (u'Region wielicki', u'http://www.dziennikpolski24.pl/rss/feed/1802'),
    (u'Region podbeskidzki', u'http://www.dziennikpolski24.pl/rss/feed/1791'),
    (u'Region myślenicki', u'http://www.dziennikpolski24.pl/rss/feed/1800'),
    (u'Autosalon', u'http://www.dziennikpolski24.pl/rss/feed/1294'),
    (u'Kariera', u'http://www.dziennikpolski24.pl/rss/feed/1289'),
    (u'Przegląd nieruchomości', u'http://www.dziennikpolski24.pl/rss/feed/1281'),
    (u'Magnes', u'http://www.dziennikpolski24.pl/rss/feed/1283'),
    (u'Magazyn Piątek', u'http://www.dziennikpolski24.pl/rss/feed/1293'),
    (u'Pejzaż rodzinny', u'http://www.dziennikpolski24.pl/rss/feed/1274'),
    (u'Podróże', u'http://www.dziennikpolski24.pl/rss/feed/1275'),
    (u'Konsument', u'http://www.dziennikpolski24.pl/rss/feed/1288')
    ]

    def append_page(self, soup, appendtag):
        loop = False
        tag = soup.find('div', attrs={'class': 'paging'})
        if tag:
            loop = True
            li_nks = tag.findAll('li')
            appendtag.find('div', attrs={'class': 'paging'}).extract()
        if appendtag.find('ul', attrs={'class': 'menuf'}):
            appendtag.find('ul', attrs={'class': 'menuf'}).extract()
        while loop:
            loop = False
            for li_nk in li_nks:
                link_tag = li_nk.contents[0].contents[0].string
                if u'następna' in link_tag:
                    soup2 = self.index_to_soup(
                        self.INDEX + li_nk.contents[0]['href'])
                    if soup2.find('div', attrs={'id': 'showContent'}):
                        pagetext = soup2.find(
                            'div', attrs={'id': 'showContent'})
                        pos = len(appendtag.contents)
                        appendtag.insert(pos, pagetext)
                        if soup2.find('div', attrs={'class': 'rightbar'}):
                            pagecont = soup2.find(
                                'div', attrs={'class': 'rightbar'})
                            tag = pagecont.find(
                                'div', attrs={'class': 'paging'})
                            li_nks = tag.findAll('li')
                            loop = True

    def get_browser(self):
        br = BasicNewsRecipe.get_browser(self)
        if self.username is not None and self.password is not None:
            br.open('http://www.dziennikpolski24.pl/pl/moje-konto/950606-loguj.html')
            br.select_form(nr=1)
            br["user_login[login]"] = self.username
            br['user_login[pass]'] = self.password
            br.submit()
        return br

    def preprocess_html(self, soup):
        self.append_page(soup, soup.body)
        return soup
