#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Expresso (Portugal) — receita Calibre.

Site: https://expresso.pt
Feed: https://feeds.feedburner.com/expresso-geral

Notas:
- Expresso é semanal mas o feed publica também as peças online diárias.
- Artigos premium (com cadeado) chegam truncados — para texto completo,
  precisas de subscrição Expresso e de adicionar autenticação à receita.
- Recomenda-se correr ao sábado de manhã, depois da publicação semanal.
"""

from calibre.web.feeds.news import BasicNewsRecipe


class ExpressoPT(BasicNewsRecipe):
    title = 'Expresso'
    description = 'Semanário português Expresso — artigos abertos e atualidade'
    language = 'pt'
    publisher = 'Impresa Publishing, S.A.'
    publication_type = 'newspaper'
    category = 'notícias, política, economia, opinião, Portugal'
    oldest_article = 7
    max_articles_per_feed = 40
    no_stylesheets = True
    remove_javascript = True
    use_embedded_content = False
    encoding = 'utf-8'
    auto_cleanup = True

    feeds = [
        ('Expresso — Geral', 'https://feeds.feedburner.com/expresso-geral'),
    ]

    remove_tags = [
        dict(name=['script', 'noscript', 'iframe', 'aside', 'footer']),
        dict(attrs={'class': lambda x: x and any(
            cls in x for cls in [
                'social', 'newsletter', 'related', 'comments',
                'paywall', 'subscription', 'advertisement', 'banner',
                'tags', 'sharing', 'author-bio'
            ])}),
    ]
