on master help sign in
simplify datetime extraction
commit337bd6d907503176eb94290c3f386ce88167dea8 authorThomas Pointhuber <thomas.pointhuber@gmx.at> dateTue 18 Mar 2014, 13:19 (13 years ago) parentfd86bf8
5 files changed+15−13
requirements.txt+1 searx/engines/google_news.py+4−10 searx/engines/yahoo_news.py+2−3 searx/engines/youtube.py+7 setup.py+1
requirements.txt+1
@@ -3,3 +3,4 @@ flask-babel
33grequests
44lxml
55pyyaml
6+python-dateutil
searx/engines/google_news.py+4−10
@@ -2,6 +2,7 @@
22
33from urllib import urlencode
44from json import loads
5+from dateutil import parser
56from datetime import datetime
67
78categories = ['news']
@@ -32,16 +33,9 @@ def response(resp):
3233 return []
3334
3435 for result in search_res['responseData']['results']:
35−# S.149 (159), library.pdf
36−# datetime.strptime("Mon, 10 Mar 2014 16:26:15 -0700",
37−# "%a, %d %b %Y %H:%M:%S %z")
38−# publishedDate = parse(result['publishedDate'])
39− publishedDate = datetime.strptime(
40− str.join(' ', result['publishedDate'].split(None)[0:5]),
41− "%a, %d %b %Y %H:%M:%S")
42− #utc_offset = timedelta(result['publishedDate'].split(None)[5])
43− # local = utc + offset
44− #publishedDate = publishedDate + utc_offset
36+
37+# Mon, 10 Mar 2014 16:26:15 -0700
38+ publishedDate = parser.parse(result['publishedDate'])
4539
4640 results.append({'url': result['unescapedUrl'],
4741 'title': result['titleNoFormatting'],
searx/engines/yahoo_news.py+2−3
@@ -6,6 +6,7 @@ from searx.engines.xpath import extract_text, extract_url
66from searx.engines.yahoo import parse_url
77from datetime import datetime, timedelta
88import re
9+from dateutil import parser
910
1011categories = ['news']
1112search_url = 'http://news.search.yahoo.com/search?{query}&b={offset}'
@@ -52,9 +53,7 @@ def response(resp):
5253 - timedelta(hours=int(timeNumbers[0]))\
5354 - timedelta(minutes=int(timeNumbers[1]))
5455 else:
55− # TODO year in string possible?
56− publishedDate = datetime.strptime(publishedDate,
57− "%b %d %H:%M%p")
56+ publishedDate =parser.parse(publishedDate)
5857
5958 if publishedDate.year == 1900:
6059 publishedDate = publishedDate.replace(year=datetime.now().year)
searx/engines/youtube.py+7
@@ -1,5 +1,7 @@
11from json import loads
22from urllib import urlencode
3+from dateutil import parser
4+from datetime import datetime
35
46categories = ['videos']
57
@@ -35,6 +37,10 @@ def response(resp):
3537 content = ''
3638 thumbnail = ''
3739
40+#"2013-12-31T15:22:51.000Z"
41+ pubdate = result['published']['$t']
42+ publishedDate = parser.parse(pubdate)
43+
3844 if result['media$group']['media$thumbnail']:
3945 thumbnail = result['media$group']['media$thumbnail'][0]['url']
4046 content += '<a href="{0}" title="{0}" ><img src="{1}" /></a>'.format(url, thumbnail) # noqa
@@ -48,6 +54,7 @@ def response(resp):
4854 'title': title,
4955 'content': content,
5056 'template': 'videos.html',
57+ 'publishedDate': publishedDate,
5158 'thumbnail': thumbnail})
5259
5360 return results
setup.py+1
@@ -35,6 +35,7 @@ setup(
3535 'lxml',
3636 'pyyaml',
3737 'setuptools',
38+ 'python-dateutil',
3839 ],
3940 extras_require={
4041 'test': [