TODO: Output

This commit is contained in:
Patrice 2019-04-26 22:53:04 +02:00
parent 64dbc0b52c
commit 35f1cb3831
5 changed files with 98 additions and 154 deletions

15
.vscode/launch.json vendored Normal file
View File

@ -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.

View File

@ -4,44 +4,40 @@ from flask import Flask
from flask_ask import Ask, request, session, question, statement
import random
import yaml
import site as s
import siteobj as site2
app = Flask(__name__)
ask = Ask(app, "/")
logging.getLogger('flask_ask').setLevel(logging.DEBUG)
@ask.intent('Search',
mapping={'site': 'Site', 'searchTerm':'SearchTerm'},
@ask.intent('GolemSearch',
mapping={'site': 'Site', 'searchTerm':'Topic'},
default={'site': 'golem', 'searchTerm':''})
def search(site, searchTerm):
print(site, searchTerm)
if site == "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
obj = site2.Golem()
articles, links = obj.search_article(searchTerm)
session.attributes["lastSearch"] = links
antwort = "Für welchen der folgenden Artikel interessieren Sie sich?"
for i in range(0, len(articles)):
antwort += articles[i] + "..."
response = "Für welchen der folgenden Artikel interessieren Sie sich?"
for i in range(0, 5):
response += articles[i]
return question(antwort)
@ask.intent('Read',
mapping={'site': 'Site', 'activity':'Activity'},
default={'site': 'golem', 'activity':'read_headlines'})
def read(site, activity):
print(site, activity)
return question(response)
@ask.intent('News',
mapping={'site': 'Site'},
default={'site': 'golem'})
def news(site):
print(site)
obj = site2.Golem()
news = obj.get_news()
response = ""
for i in range(0, 5):
response += news[i]
return statement(response)
@ask.intent('AMAZON.HelpIntent')
@ -51,7 +47,7 @@ def help():
@ask.launch
def launch():
return read("golem", "read_headlines")
return search("golem", "gaming")
@ask.session_ended
def session_ended():

View File

@ -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

64
reader/siteobj.py Normal file
View File

@ -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