#!/usr/bin/env python
# vim:fileencoding=utf-8
__license__ = 'GPL v3'
__author__ = 'Luis Hernandez'
__copyright__ = 'Luis Hernandez<tolyluis@gmail.com>'
__version__ = 'v0.85'
__date__ = '31 January 2011'

'''
www.20minutos.es
'''
import re

from calibre.web.feeds.news import BasicNewsRecipe


class AdvancedUserRecipe1294946868(BasicNewsRecipe):
    title = '20 Minutos'
    publisher = 'Grupo 20 Minutos'

    __author__ = 'Luis Hernandez'
    description = 'Free spanish newspaper'
    cover_url = 'http://estaticos.20minutos.es/mmedia/especiales/corporativo/css/img/logotipos_grupo20minutos.gif'

    oldest_article = 2
    max_articles_per_feed = 100

    remove_javascript = True
    no_stylesheets = True
    use_embedded_content = False

    encoding = 'ISO-8859-1'
    language = 'es'
    timefmt = '[%a, %d %b, %Y]'
    remove_empty_feeds = True

    keep_only_tags = [
        dict(
            name='div',
            attrs={
                'id': [
                    'content',
                    'vinetas',
                ]
            },
        ),
        dict(name='div', attrs={'class': ['boxed', 'description', 'lead', 'article-content', 'cuerpo estirar']}),
        dict(name='span', attrs={'class': ['photo-bar']}),
        dict(name='ul', attrs={'class': ['article-author']}),  # noqa: E501
    ]

    remove_tags_before = dict(name='ul', attrs={'class': ['servicios-sub']})
    remove_tags_after = dict(name='div', attrs={'class': ['related-news', 'col']})

    remove_tags = [
        dict(
            name='ol',
            attrs={
                'class': [
                    'navigation',
                ]
            },
        ),
        dict(name='span', attrs={'class': ['action']}),
        dict(
            name='div',
            attrs={
                'class': [
                    'twitter comments-list hidden',
                    'related-news',
                    'col',
                    'photo-gallery',
                    'photo-gallery side-art-block',
                    'calendario',
                    'article-comment',
                    'postto estirar',
                    'otras_vinetas estirar',
                    'kment',
                    'user-actions',
                ]
            },
        ),
        dict(
            name='div',
            attrs={
                'id': [
                    'twitter-destacados',
                    'eco-tabs',
                    'inner',
                    'vineta_calendario',
                    'vinetistas clearfix',
                    'otras_vinetas estirar',
                    'MIN1',
                    'main',
                    'SUP1',
                    'INT',
                ]
            },
        ),
        dict(name='ul', attrs={'class': ['article-user-actions', 'stripped-list']}),
        dict(name='ul', attrs={'id': ['site-links']}),
        dict(name='li', attrs={'class': ['puntuacion', 'enviar', 'compartir']}),  # noqa: E501
    ]

    extra_css = '''
                p{text-align: justify; font-size: 100%}
                body{ text-align: left; font-size:100% }
                h3{font-family: sans-serif; font-size:150%; font-weight:bold; text-align: justify; }
                '''

    preprocess_regexps = [(re.compile(r'<a href="http://estaticos.*?[0-999]px;" target="_blank">', re.DOTALL), lambda m: '')]

    recipe_specific_options = {
        'days': {
            'short': 'Oldest article to download from this news source. In days ',
            'long': 'For example, 0.5, gives you articles from the past 12 hours',
            'default': str(oldest_article),
        }
    }

    def __init__(self, *args, **kwargs):
        BasicNewsRecipe.__init__(self, *args, **kwargs)
        d = self.recipe_specific_options.get('days')
        if d and isinstance(d, str):
            self.oldest_article = float(d)

    feeds = [
        ('Portada', 'http://www.20minutos.es/rss/'),
        ('Nacional', 'http://www.20minutos.es/rss/nacional/'),
        ('Internacional', 'http://www.20minutos.es/rss/internacional/'),
        ('Economia', 'http://www.20minutos.es/rss/economia/'),
        ('Deportes', 'http://www.20minutos.es/rss/deportes/'),
        ('Tecnologia', 'http://www.20minutos.es/rss/tecnologia/'),
        ('Gente - TV', 'http://www.20minutos.es/rss/gente-television/'),
        ('Motor', 'http://www.20minutos.es/rss/motor/'),
        ('Salud', 'http://www.20minutos.es/rss/belleza-y-salud/'),
        ('Viajes', 'http://www.20minutos.es/rss/viajes/'),
        ('Vivienda', 'http://www.20minutos.es/rss/vivienda/'),
        ('Empleo', 'http://www.20minutos.es/rss/empleo/'),
        ('Cine', 'http://www.20minutos.es/rss/cine/'),
        ('Musica', 'http://www.20minutos.es/rss/musica/'),
        ('Vinetas', 'http://www.20minutos.es/rss/vinetas/'),
        ('Comunidad20', 'http://www.20minutos.es/rss/zona20/'),
    ]
