# -*- 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 = 'Dziennik Polski'
    publisher = 'Grupa Polskapresse'

    __author__ = 'grzegorz.maj'
    description = '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: E501
    ]

    remove_tags = []

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