from calibre.web.feeds.news import BasicNewsRecipe


def classes(classes):
    q = frozenset(classes.split(' '))
    return dict(attrs={'class': lambda x: x and frozenset(x.split()).intersection(q)})


class JerusalemPost(BasicNewsRecipe):
    title = 'Jerusalem Post'
    description = 'News from Israel and the Middle East'
    use_embedded_content = False
    language = 'en'
    keep_only_tags = [
        classes('margin-container-body article-title article-subline article-inner-content-breaking-news'),
    ]
    remove_tags = [
        classes('share-buttons hide-for-premium'),
    ]
    remove_attributes = ['style']
    no_stylesheets = True

    __author__ = 'Kovid Goyal'
    max_articles_per_feed = 10

    def get_browser(self):
        return BasicNewsRecipe.get_browser(self, user_agent='common_words/based')

    feeds = [
        ('Top Stories', 'https://www.jpost.com/Rss/RssFeedsHeadlines.aspx'),
        ('Arab Israeli Conflict', 'https://www.jpost.com/rss/rssfeedsarabisraeliconflict.aspx'),
        ('US Politics', 'https://www.jpost.com/rss/rssfeedsamerican-politics'),
        ('Israel News', 'https://www.jpost.com/rss/rssfeedsisraelnews.aspx'),
        ('Middle East News', 'https://www.jpost.com/rss/rssfeedsmiddleeastnews.aspx'),
        ('International News', 'https://www.jpost.com/rss/rssfeedsinternational'),
        ('Opinion', 'https://www.jpost.com/Rss/RssFeedsOpinion.aspx'),
    ]
