#!/usr/bin/env python
# License: 'CC-BY-4.0'
# Copyright: '2019, vohe Based on the recipe by Darko Miletic <darko.miletic at gmail.com>'

from calibre.web.feeds.news import BasicNewsRecipe

'''
spiegel germany free newsfeed
its free, read here: http://www.spiegel.de/dienste/besser-surfen-auf-spiegel-online-so-funktioniert-rss-a-1040321.html
this: ... Sie können unsere Nachrichten-Feeds kostenlos abonnieren - ...
'''
'''
feel free to modify this to your own needs
'''


class Spiegel_DE_all(BasicNewsRecipe):
    # Title of the Recipe
    title = 'Spiegel Online RSS - German alle Themen'
    # Author
    __author__ = 'Volker Heggemann, VoHe'
    # oldest article to download (in days)                                  ---- can be edit by user
    # be careful, if there is a lot of news, the file size exceeds!
    oldest_article = 7
    # describes itself,                                                     ---- can be edit by user
    max_articles_per_feed = 100
    # speed up the download on fast computers be careful (I test max.20)
    # ---- can be edit by user
    simultaneous_downloads = 10
    # description, some Reader show this in titlepage
    # add date to description so for dayly downloads you can find them easier
    # ---- can be edit by user
    # description = (
    # "Ständig die neueste Meldung auf dem Schirm, sekundenaktuell und übersichtlich: Mit unserem RSS-Angebot entgeht Ihnen keine wichtige Meldung,"
    # "selbst wenn Sie keinen Internet-Browser geöffnet haben. Sie können unsere Nachrichten-Feeds kostenlos abonnieren - nach Ihren Themenvorlieben.")
    # above a long description, but we use a shorter one
    description = 'Spiegel Online RSS News'
    # Who published the content?
    publisher = 'SPIEGEL ONLINE Gmbh'
    cover_url = 'https://de.m.wikipedia.org/wiki/Datei:Spiegel_Online_logo.svg'
    # What is the content of?
    category = 'SPIEGEL ONLINE RSS'
    # describes itself,                                                     ---- can be edit by user
    language = 'de'
    lang = 'de-DE'
    no_stylesheets = True
    # describes itself,                                                     ---- can be edit by user
    use_embedded_content = False
    # encoding of content. e.g. utf-8, None, ...
    # ---- can be edit by user
    encoding = 'UTF-8'  # AGe 2016-05-09 old: cp1252
    # Removes javascript- why keep this, we only want static content
    remove_javascript = True
    # Removes empty feeds - why keep them!?
    remove_empty_feeds = True
    resolve_internal_links = True
    # remove the rubbish (in ebook)
    auto_cleanup = True
    # now the content description and URL follows
    # feel free to add, wipe out what you need                              ---- can be edit by user
    #
    # Make some tests, may you first comment all of them out, and step by step you add what you'll need?
    #
    '''
    keep_only_tags = [
        dict(name='h2', attrs={'class': 'article-title'}),
        dict(id=['js-article-top-wide-asset', 'js-article-column']),
    ]
    '''
    remove_tags = [
        dict(attrs={'class': lambda x: x and 'asset-html-box' in x.split()}),
        dict(attrs={'class': lambda x: x and 'article-social-bookmark' in x.split()}),
        dict(attrs={'class': lambda x: x and 'article-newsfeed-box' in x.split()}),
        dict(attrs={'class': lambda x: x and 'article-comments-box' in x.split()}),
        dict(attrs={'class': lambda x: x and 'article-functions-bottom' in x.split()}),
    ]

    # omit articles already linked in Schlagzeilen feed
    ignore_duplicate_articles = {'title', 'url'}

    conversion_options = {'comment': description, 'tags': category, 'publisher': publisher, 'language': lang}

    feeds = [  # Content / Inhalt
        # Add or Remove the '#' symbol in front of line, to get or discard this rss-feed
        # de: lösche oder füge am Anfang jeder Zeile das # Zeichen. Damit wird die Zeile entfernt oder
        #     hinugefügt und damit der Inhalt im Text erscheinen.
        #
        # ---- each line can be edit by user
        # de: jede Zeile kann verändert werden.
        #
        # Sample:
        # Theme of the following news
        # (u'Alle Ressort',u'http://www.spiegel.de/schlagzeilen/index.rss'),
        # Beispiel
        # Theme of the following news
        # (u'Spiegel Online', u'http://www.spiegel.de/schlagzeilen/index.rss'),
        #
        #
        # "Alles" enthält die Themen Politik, Wirtschaft, Panorama , uws....
        # wenn Sie alles und die Unterthemen wählen, dann erscheinen News doppelt.
        #
        # Alles
        # (u'Spiegel Online alle Schlagzeilen', u'http://www.spiegel.de/schlagzeilen/index.rss'),
        # (u'Spiegel Online nur Topnews',u'http://www.spiegel.de/schlagzeilen/tops/index.rss'),
        # (u'Spiegel Online nur Eilmeldungen', u'http://www.spiegel.de/schlagzeilen/eilmeldungen/index.rss'),
        # (u'Spiegel Online alle Videos',u'http://www.spiegel.de/video/index.rss'),
        # Politik / Politics
        # (u'Politics global',u'http://www.spiegel.de/politik/index.rss'),
        ('Politics foreign countries', 'http://www.spiegel.de/politik/ausland/index.rss'),
        ('Politik DE', 'http://www.spiegel.de/politik/deutschland/index.rss'),
        # Wirtschaft / economy
        # (u'Wirtschaft alles', u'http://www.spiegel.de/wirtschaft/index.rss'),
        ('Wirtschaft Verbraucher und Service', 'http://www.spiegel.de/wirtschaft/service/index.rss'),
        ('Wirtschaft Unternehmen und Märkte', 'http://www.spiegel.de/wirtschaft/unternehmen/index.rss'),
        ('Wirtschaft Staat und Soziales', 'http://www.spiegel.de/wirtschaft/soziales/index.rss'),
        ('Wirtschaft Videos aus Politik und Wirtschaft', 'http://www.spiegel.de/video/politik_wirtschaft/index.rss'),
        # Panorama / panorama (overview)
        # (u'Panorama alles', u'http://www.spiegel.de/panorama/index.rss'),
        ('Panorama Justiz', 'http://www.spiegel.de/panorama/justiz/index.rss'),
        ('Panorama Gesellschaft', 'http://www.spiegel.de/panorama/gesellschaft/index.rss'),
        ('Panorama Leute', 'http://www.spiegel.de/panorama/leute/index.rss'),
        ('Panorama Videos aus Panorama', 'http://www.spiegel.de/video/panorama/index.rss'),
        # Sport / Sports
        ('Sport alles', 'http://www.spiegel.de/sport/index.rss'),
        # (u'Sport Fußball', u'http://www.spiegel.de/sport/fussball/index.rss'),
        # (u'Sport Formel1', u'http://www.spiegel.de/sport/formel1/index.rss'),
        # (u'Sport Videos', u'http://www.spiegel.de/video/sport/index.rss'),
        # Kultur / culture
        # (u'Kultur alles', u'http://www.spiegel.de/kultur/index.rss'),
        ('Kultur Kino', 'http://www.spiegel.de/kultur/kino/index.rss'),
        ('Kultur Musik', 'http://www.spiegel.de/kultur/musik/index.rss'),
        ('Kultur TV', 'http://www.spiegel.de/kultur/tv/index.rss'),
        ('Kultur Literatur', 'http://www.spiegel.de/kultur/literatur/index.rss'),
        ('Kultur Videos zu Kino', 'http://www.spiegel.de/video/kino/index.rss'),
        ('Kultur Videos zu Kultur', 'http://www.spiegel.de/video/kultur/index.rss'),
        # Netzwelt / TheNet
        # (u'Netzwelt alles', u'http://www.spiegel.de/netzwelt/index.rss'),
        ('Netzwelt Politk', 'http://www.spiegel.de/netzwelt/netzpolitik/index.rss'),
        ('Netzwelt TheWeb', 'http://www.spiegel.de/netzwelt/web/index.rss'),
        ('Netzwelt Gadgets', 'http://www.spiegel.de/netzwelt/gadgets/index.rss'),
        ('Netzwelt Games', 'http://www.spiegel.de/netzwelt/games/index.rss'),
        ('Videos zu Wissenschaft und Technik', 'http://www.spiegel.de/video/wissenschaft_technik/index.rss'),
        # Foto
        ('Fotografie', 'http://www.spiegel.de/thema/fotografie/index.rss'),
        # Wissenschaft / Technologie
        # (u'Wissenschaft alles', u'http://www.spiegel.de/wissenschaft/index.rss'),
        ('Wissenschaft Mensch', 'http://www.spiegel.de/wissenschaft/mensch/index.rss'),
        ('Wissenschaft Natur', 'http://www.spiegel.de/wissenschaft/natur/index.rss'),
        ('Wissenschaft Technik', 'http://www.spiegel.de/wissenschaft/technik/index.rss'),
        ('Wissenschaft Weltall', 'http://www.spiegel.de/wissenschaft/weltall/index.rss'),
        ('Wissenschaft Medizin', 'http://www.spiegel.de/wissenschaft/medizin/index.rss'),
        ('Videos zu Wissenschaft', 'http://www.spiegel.de/video/wissenschaft_technik/index.rss'),
        # Gesundheit / Health
        # (u'Gesundheit alles', u'http://www.spiegel.de/gesundheit/index.rss'),
        ('Gesundheit Diagnose und Therapie', 'http://www.spiegel.de/gesundheit/diagnose/index.rss'),
        ('Gesundheit Ernährung und Fitness', 'http://www.spiegel.de/gesundheit/ernaehrung/index.rss'),
        ('Gesundheit Psychologie', 'http://www.spiegel.de/gesundheit/psychologie/index.rss'),
        ('Gesundheit Sex und Partnerschaft', 'http://www.spiegel.de/gesundheit/sex/index.rss'),
        ('Gesundheit Schwangerschaft und Kind', 'http://www.spiegel.de/gesundheit/schwangerschaft/index.rss'),
        # Karriere / Career
        # (u'Karriere alles', u'http://www.spiegel.de/karriere/index.rss'),
        ('Karriere Berufsstart', 'http://www.spiegel.de/karriere/berufsstart/index.rss'),
        ('Karriere Beruf', 'http://www.spiegel.de/karriere/berufsleben/index.rss'),
        ('Karriere Ausland', 'http://www.spiegel.de/karriere/ausland/index.rss'),
        # Uni und Schule
        ('Uni und Schule', 'http://www.spiegel.de/unispiegel/index.rss'),
        # Reise / Travel
        # (u'Reise alles', u'http://www.spiegel.de/reise/index.rss'),
        ('Reise Städte', 'http://www.spiegel.de/reise/staedte/index.rss'),
        ('Reise Detuschland', 'http://www.spiegel.de/reise/deutschland/index.rss'),
        ('Reise Europa', 'http://www.spiegel.de/reise/europa/index.rss'),
        ('Reise Fernweh', 'http://www.spiegel.de/reise/fernweh/index.rss'),
        # Auto
        ('Auto', 'http://www.spiegel.de/auto/index.rss'),
    ]
