#!/usr/bin/env python
# vim:fileencoding=utf-8
from __future__ import unicode_literals, division, absolute_import, print_function
from calibre.web.feeds.news import BasicNewsRecipe
from datetime import datetime
import json

# a serarch topic, filled into the string below. You can change that to anything google news should be searched for...
terms_to_search_for = (
    'computer',
    'books',
)


class google_news_de(BasicNewsRecipe):
    # Titel of the Recipe - this is a sample
    title = 'Google News'
    cover_url = 'https://upload.wikimedia.org/wikipedia/commons/thumb/d/da/Google_News_icon.svg/500px-Google_News_icon.svg.png'
    # Author
    __author__ = 'Volker Heggemann, VoHe'
    # oldes article to download (in days) 									---- can be edit by user
    oldest_article = 2
    # describes itself, 						 							---- can be edit by user
    max_articles_per_feed = 200
    # speed up the download on fast computers be carefull (I test max.20)
    # ---- can be edit by user
    simultaneous_downloads = 10
    # description, some Reader show this in titlepage
    description = u'Google News filter by your own recipe. Please read it in calibre software!'
    # add date to description so for dayly downloads you can find them easier
    # ---- can be edit by user
    description = description + ' fetched: ' + \
        datetime.now().strftime("%Y-%m-%d")  # %H:%M:%S")
    # What is the content of?
    category = u'NEWS'
    # describes itself, 						 							---- can be edit by user
    use_embedded_content = False
    remove_javascript = True
    # Removes empty feeds - why keep them!?
    remove_empty_feeds = 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
    #
    def get_feeds(self):
        url = "https://geolocation-db.com/json"
        data = self.index_to_soup(url, raw=True)
        data = json.loads(data)
        country_code = str(data['country_code']).lower()  # for me this is de
        city = data['city']
        self.feeds = [
            ('Google news Topnews for ' + country_code,
             'https://news.google.com/news?pz=1&cf=all&ned=' + country_code +
             '&hl=' + country_code + '&output=rss'),
        ]
        if city:
            location = '{},{}'.format(city, country_code)
            self.feeds.append(
                ('Google news for ' + location, 'https://news.google.' +
                country_code + '/news/rss/headlines/section/geo/' + location),
            )
        for searchfor in terms_to_search_for:
            self.feeds.append(
                ('Google news intrested in ' + searchfor,
                 'https://news.google.com/news?cf=all&hl=' + country_code +
                 '+&pz=1&ned=' + country_code + '&q=' + searchfor + '&output=rss'))
        return BasicNewsRecipe.get_feeds(self)
