TODO: Output
This commit is contained in:
parent
64dbc0b52c
commit
35f1cb3831
|
|
@ -0,0 +1,15 @@
|
||||||
|
{
|
||||||
|
// Use IntelliSense to learn about possible attributes.
|
||||||
|
// Hover to view descriptions of existing attributes.
|
||||||
|
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
||||||
|
"version": "0.2.0",
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"name": "Python: Aktuelle Datei",
|
||||||
|
"type": "python",
|
||||||
|
"request": "launch",
|
||||||
|
"program": "${file}",
|
||||||
|
"console": "integratedTerminal"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
Binary file not shown.
|
|
@ -4,44 +4,40 @@ from flask import Flask
|
||||||
from flask_ask import Ask, request, session, question, statement
|
from flask_ask import Ask, request, session, question, statement
|
||||||
import random
|
import random
|
||||||
import yaml
|
import yaml
|
||||||
import site as s
|
import siteobj as site2
|
||||||
|
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
ask = Ask(app, "/")
|
ask = Ask(app, "/")
|
||||||
logging.getLogger('flask_ask').setLevel(logging.DEBUG)
|
logging.getLogger('flask_ask').setLevel(logging.DEBUG)
|
||||||
|
|
||||||
|
|
||||||
@ask.intent('Search',
|
@ask.intent('GolemSearch',
|
||||||
mapping={'site': 'Site', 'searchTerm':'SearchTerm'},
|
mapping={'site': 'Site', 'searchTerm':'Topic'},
|
||||||
default={'site': 'golem', 'searchTerm':''})
|
default={'site': 'golem', 'searchTerm':''})
|
||||||
def search(site, searchTerm):
|
def search(site, searchTerm):
|
||||||
print(site, searchTerm)
|
print(site, searchTerm)
|
||||||
|
|
||||||
if site == "golem":
|
obj = site2.Golem()
|
||||||
obj = s.Golem()
|
|
||||||
elif site == "zeit":
|
|
||||||
obj = s.Zeit()
|
|
||||||
elif site == "welt":
|
|
||||||
obj = s.Welt()
|
|
||||||
else:
|
|
||||||
return statement("Es gab einen Fehler")
|
|
||||||
session.attributes["site"] = obj.url
|
|
||||||
|
|
||||||
articles, links = obj.search_article(searchTerm)
|
articles, links = obj.search_article(searchTerm)
|
||||||
|
|
||||||
session.attributes["lastSearch"] = links
|
session.attributes["lastSearch"] = links
|
||||||
antwort = "Für welchen der folgenden Artikel interessieren Sie sich?"
|
response = "Für welchen der folgenden Artikel interessieren Sie sich?"
|
||||||
for i in range(0, len(articles)):
|
for i in range(0, 5):
|
||||||
antwort += articles[i] + "..."
|
response += articles[i]
|
||||||
|
|
||||||
return question(antwort)
|
return question(response)
|
||||||
|
|
||||||
@ask.intent('Read',
|
|
||||||
mapping={'site': 'Site', 'activity':'Activity'},
|
|
||||||
default={'site': 'golem', 'activity':'read_headlines'})
|
|
||||||
def read(site, activity):
|
|
||||||
print(site, activity)
|
|
||||||
|
|
||||||
|
@ask.intent('News',
|
||||||
|
mapping={'site': 'Site'},
|
||||||
|
default={'site': 'golem'})
|
||||||
|
def news(site):
|
||||||
|
print(site)
|
||||||
|
obj = site2.Golem()
|
||||||
|
news = obj.get_news()
|
||||||
response = ""
|
response = ""
|
||||||
|
for i in range(0, 5):
|
||||||
|
response += news[i]
|
||||||
return statement(response)
|
return statement(response)
|
||||||
|
|
||||||
@ask.intent('AMAZON.HelpIntent')
|
@ask.intent('AMAZON.HelpIntent')
|
||||||
|
|
@ -51,7 +47,7 @@ def help():
|
||||||
|
|
||||||
@ask.launch
|
@ask.launch
|
||||||
def launch():
|
def launch():
|
||||||
return read("golem", "read_headlines")
|
return search("golem", "gaming")
|
||||||
|
|
||||||
@ask.session_ended
|
@ask.session_ended
|
||||||
def session_ended():
|
def session_ended():
|
||||||
|
|
|
||||||
131
reader/site.py
131
reader/site.py
|
|
@ -1,131 +0,0 @@
|
||||||
import urllib.request,urllib.parse,urllib.error
|
|
||||||
from lxml import html
|
|
||||||
import requests
|
|
||||||
import re
|
|
||||||
|
|
||||||
|
|
||||||
class site:
|
|
||||||
url = ""
|
|
||||||
header_values = {
|
|
||||||
'Connection:' : 'Keep-alive',
|
|
||||||
'name' : 'Michael Foord',
|
|
||||||
'location' : 'Northampton',
|
|
||||||
'language' : 'German',
|
|
||||||
'User-Agent': 'Mozilla 4/0'}
|
|
||||||
|
|
||||||
|
|
||||||
def __init__(self, url):
|
|
||||||
self.url = urllib.request.urlopen(url).geturl()
|
|
||||||
|
|
||||||
def search_article(self, topic):
|
|
||||||
return False
|
|
||||||
def get_news(self):
|
|
||||||
return False
|
|
||||||
def read_article(self, url):
|
|
||||||
return False
|
|
||||||
def read_headlines(self, url):
|
|
||||||
return False
|
|
||||||
|
|
||||||
|
|
||||||
class Golem(site):
|
|
||||||
url = "golem"
|
|
||||||
def search_article(self, topic):
|
|
||||||
searchURL = "https://suche.golem.de/search.php?l=10&q=" + topic.replace(" ", "+")
|
|
||||||
site = requests.get(searchURL, headers=self.header_values)
|
|
||||||
tree = html.fromstring(site.content)
|
|
||||||
|
|
||||||
articles = tree.xpath('//span[@class="dh2 head2"]/text()')
|
|
||||||
links = tree.xpath('//ol[@class="list-articles"]/li/header//@href')
|
|
||||||
return articles, links
|
|
||||||
|
|
||||||
def get_news(self):
|
|
||||||
searchURL = "https://www.golem.de/"
|
|
||||||
site = requests.get(searchURL, headers=self.header_values)
|
|
||||||
tree = html.fromstring(site.content)
|
|
||||||
|
|
||||||
articles = tree.xpath('//h2[@class="head2"]/text()')
|
|
||||||
return articles
|
|
||||||
|
|
||||||
def read_headlines(self, url):
|
|
||||||
site = requests.get(url, headers=self.header_values)
|
|
||||||
tree = html.fromstring(site.content)
|
|
||||||
|
|
||||||
title = tree.xpath('//header/h1/span[@class="dh1 head5"]/text()')
|
|
||||||
title += tree.xpath('//header/p/text()')
|
|
||||||
return title
|
|
||||||
|
|
||||||
def read_article(self, url):
|
|
||||||
site = requests.get(url, headers=self.header_values)
|
|
||||||
tree = html.fromstring(site.content)
|
|
||||||
|
|
||||||
title = self.read_headlines(url)
|
|
||||||
title += tree.xpath('//div[@class="formatted"]/p/text()')
|
|
||||||
return title
|
|
||||||
|
|
||||||
class Zeit(site):
|
|
||||||
url = "zeit"
|
|
||||||
def search_article(self, topic):
|
|
||||||
searchURL = "https://suche.golem.de/search.php?l=10&q=" + topic.replace(" ", "+")
|
|
||||||
site = requests.get(searchURL, headers=self.header_values)
|
|
||||||
tree = html.fromstring(site.content)
|
|
||||||
|
|
||||||
articles = tree.xpath('//span[@class="dh2 head2"]/text()')
|
|
||||||
return articles
|
|
||||||
|
|
||||||
def get_news(self):
|
|
||||||
searchURL = "https://www.golem.de/"
|
|
||||||
site = requests.get(searchURL, headers=self.header_values)
|
|
||||||
tree = html.fromstring(site.content)
|
|
||||||
|
|
||||||
articles = tree.xpath('//h2[@class="head2"]/text()')
|
|
||||||
return articles
|
|
||||||
|
|
||||||
def read_headlines(self, url):
|
|
||||||
site = requests.get(url, headers=self.header_values)
|
|
||||||
tree = html.fromstring(site.content)
|
|
||||||
|
|
||||||
title = tree.xpath('//header/h1/span[@class="dh1 head5"]/text()')
|
|
||||||
title += tree.xpath('//header/p/text()')
|
|
||||||
return title
|
|
||||||
|
|
||||||
def read_article(self, url):
|
|
||||||
site = requests.get(url, headers=self.header_values)
|
|
||||||
tree = html.fromstring(site.content)
|
|
||||||
|
|
||||||
title = self.read_headlines(url)
|
|
||||||
title += tree.xpath('//div[@class="formatted"]/p/text()')
|
|
||||||
return title
|
|
||||||
|
|
||||||
class Welt(site):
|
|
||||||
url = "welt"
|
|
||||||
def search_article(self, topic):
|
|
||||||
searchURL = "https://suche.golem.de/search.php?l=10&q=" + topic.replace(" ", "+")
|
|
||||||
site = requests.get(searchURL, headers=self.header_values)
|
|
||||||
tree = html.fromstring(site.content)
|
|
||||||
|
|
||||||
articles = tree.xpath('//span[@class="dh2 head2"]/text()')
|
|
||||||
return articles
|
|
||||||
|
|
||||||
def get_news(self):
|
|
||||||
searchURL = "https://www.golem.de/"
|
|
||||||
site = requests.get(searchURL, headers=self.header_values)
|
|
||||||
tree = html.fromstring(site.content)
|
|
||||||
|
|
||||||
articles = tree.xpath('//h2[@class="head2"]/text()')
|
|
||||||
return articles
|
|
||||||
|
|
||||||
def read_headlines(self, url):
|
|
||||||
site = requests.get(url, headers=self.header_values)
|
|
||||||
tree = html.fromstring(site.content)
|
|
||||||
|
|
||||||
title = tree.xpath('//header/h1/span[@class="dh1 head5"]/text()')
|
|
||||||
title += tree.xpath('//header/p/text()')
|
|
||||||
return title
|
|
||||||
|
|
||||||
def read_article(self, url):
|
|
||||||
site = requests.get(url, headers=self.header_values)
|
|
||||||
tree = html.fromstring(site.content)
|
|
||||||
|
|
||||||
title = self.read_headlines(url)
|
|
||||||
title += tree.xpath('//div[@class="formatted"]/p/text()')
|
|
||||||
return title
|
|
||||||
|
|
@ -0,0 +1,64 @@
|
||||||
|
import urllib.request,urllib.parse,urllib.error
|
||||||
|
from lxml import html
|
||||||
|
import requests
|
||||||
|
import re
|
||||||
|
|
||||||
|
|
||||||
|
class Site:
|
||||||
|
url = ""
|
||||||
|
header_values = {
|
||||||
|
'Connection:' : 'Keep-alive',
|
||||||
|
'name' : 'Michael Foord',
|
||||||
|
'location' : 'Northampton',
|
||||||
|
'language' : 'German',
|
||||||
|
'User-Agent': 'Mozilla 4/0'}
|
||||||
|
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
|
||||||
|
return None
|
||||||
|
|
||||||
|
def search_article(self, topic):
|
||||||
|
return False
|
||||||
|
def get_news(self):
|
||||||
|
return False
|
||||||
|
def read_article(self, url):
|
||||||
|
return False
|
||||||
|
def read_headlines(self, url):
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
class Golem(Site):
|
||||||
|
url = "golem"
|
||||||
|
def search_article(self, topic):
|
||||||
|
searchURL = "https://suche.golem.de/search.php?l=10&q=" + topic.replace(" ", "+")
|
||||||
|
site = requests.get(searchURL)
|
||||||
|
tree = html.fromstring(site.content)
|
||||||
|
|
||||||
|
articles = tree.xpath('//span[@class="dh2 head2"]/text()')
|
||||||
|
links = tree.xpath('//ol[@class="list-articles"]/li/header//@href')
|
||||||
|
return articles, links
|
||||||
|
|
||||||
|
def get_news(self):
|
||||||
|
searchURL = "https://www.golem.de/"
|
||||||
|
site = requests.get(searchURL)
|
||||||
|
tree = html.fromstring(site.content)
|
||||||
|
|
||||||
|
articles = tree.xpath('//h2[@class="head2"]/text()')
|
||||||
|
return articles
|
||||||
|
|
||||||
|
def read_headlines(self, url):
|
||||||
|
site = requests.get(url)
|
||||||
|
tree = html.fromstring(site.content)
|
||||||
|
|
||||||
|
title = tree.xpath('//header/h1/span[@class="dh1 head5"]/text()')
|
||||||
|
title += tree.xpath('//header/p/text()')
|
||||||
|
return title
|
||||||
|
|
||||||
|
def read_article(self, url):
|
||||||
|
site = requests.get(url)
|
||||||
|
tree = html.fromstring(site.content)
|
||||||
|
|
||||||
|
title = self.read_headlines(url)
|
||||||
|
title += tree.xpath('//div[@class="formatted"]/p/text()')
|
||||||
|
return title
|
||||||
Loading…
Reference in New Issue