mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-06-23 15:30:45 -04:00
71 lines
2.9 KiB
Python
71 lines
2.9 KiB
Python
#!/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)
|