summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorryanss2015-02-08 11:33:30 -0500
committerryanss2015-02-08 11:33:30 -0500
commitb31159d5511f0444f15b23ce7b350825cb1ee876 (patch)
tree10da132e9d680b5620d715b0990fd24c7b524d8a
parent43917f2596c9c37bc41674fb602027b7236204a2 (diff)
downloadvim-hn-b31159d5511f0444f15b23ce7b350825cb1ee876.tar.gz
Fix #5 Timeout HTTP requests after 5 sconds
-rw-r--r--plugin/hackernews.py31
1 files changed, 24 insertions, 7 deletions
diff --git a/plugin/hackernews.py b/plugin/hackernews.py
index afbd533..bcebee0 100644
--- a/plugin/hackernews.py
+++ b/plugin/hackernews.py
@@ -55,8 +55,13 @@ def hacker_news():
bwrite("└───┘")
bwrite("")
- news1 = json.loads(urllib2.urlopen(API_URL+"/news").read())
- news2 = json.loads(urllib2.urlopen(API_URL+"/news2").read())
+ try:
+ news1 = json.loads(urllib2.urlopen(API_URL+"/news", timeout=5).read())
+ news2 = json.loads(urllib2.urlopen(API_URL+"/news2", timeout=5).read())
+ except:
+ print "HackerNews.vim Error: HTTP Request Timeout"
+ return
+
for i, item in enumerate(news1+news2):
if 'title' not in item:
continue
@@ -92,7 +97,12 @@ def hacker_news_link(external=False):
browser = webbrowser.get()
browser.open("https://news.ycombinator.com/item?id="+id)
return
- item = json.loads(urllib2.urlopen(API_URL+"/item/"+id).read())
+ try:
+ item = json.loads(urllib2.urlopen(API_URL+"/item/"+id,
+ timeout=5).read())
+ except:
+ print "HackerNews.vim Error: HTTP Request Timeout"
+ return
vim.command("edit .hackernews")
bwrite("%s (%s)" % (item['title'], item['domain']))
bwrite("%d points by %s %s | %d comments"
@@ -134,7 +144,12 @@ def hacker_news_link(external=False):
browser = webbrowser.get()
browser.open("https://news.ycombinator.com/item?id="+id)
return
- item = json.loads(urllib2.urlopen(API_URL+"/item/"+id).read())
+ try:
+ item = json.loads(urllib2.urlopen(API_URL+"/item/"+id,
+ timeout=5).read())
+ except:
+ print "HackerNews.vim Error: HTTP Request Timeout"
+ return
vim.command("edit .hackernews")
bwrite(item['title'])
bwrite("Posted %s by %s" % (item['time_ago'], item['user']))
@@ -150,8 +165,12 @@ def hacker_news_link(external=False):
browser = webbrowser.get()
browser.open(url)
return
+ try:
+ content = urllib2.urlopen(MARKDOWN_URL+url, timeout=5).read()
+ except:
+ print "HackerNews.vim Error: HTTP Request Timeout"
+ return
vim.command("edit .hackernews")
- content = urllib2.urlopen(MARKDOWN_URL+url).read()
for i, line in enumerate(content.split('\n')):
if not line:
bwrite("")
@@ -161,8 +180,6 @@ def hacker_news_link(external=False):
bwrite(wrap)
return
- print "HackerNews.vim Error: Could not parse [item id]"
-
html = HTMLParser.HTMLParser()