diff options
| author | ryanss | 2015-02-08 11:33:30 -0500 |
|---|---|---|
| committer | ryanss | 2015-02-08 11:33:30 -0500 |
| commit | b31159d5511f0444f15b23ce7b350825cb1ee876 (patch) | |
| tree | 10da132e9d680b5620d715b0990fd24c7b524d8a /plugin | |
| parent | 43917f2596c9c37bc41674fb602027b7236204a2 (diff) | |
| download | vim-hn-b31159d5511f0444f15b23ce7b350825cb1ee876.tar.gz | |
Fix #5 Timeout HTTP requests after 5 sconds
Diffstat (limited to 'plugin')
| -rw-r--r-- | plugin/hackernews.py | 31 |
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() |
