Permalink
Browse files

adjust the format of README and Add timeout Exception

  • Loading branch information...
1 parent 4e5bd70 commit f156d42e2d31b077b1caadc691ac15b874ce7e5d @yueyoum committed Sep 28, 2012
Showing with 26 additions and 14 deletions.
  1. +15 −12 README.md
  2. +11 −2 googletrans.py
View
@@ -1,26 +1,29 @@
## 背景 ##
-> 初衷是因为要看大量的英文文档,难免需要翻译。
-> 先用Python做了一个google translate的程序
+初衷是因为要看大量的英文文档,难免需要翻译
-> 但在使用中发现,如果不知道单词的发音,很难记住新单词.
+先用Python做了一个google translate的程序。
-> 所以就有了这个协助发音的程序
+但在使用中发现,如果不知道单词的发音,很难记住新单词.
+
+所以就有了这个协助发音的程序
## 说明 ##
-> C 程序使用 libmpg123 解码mp3, libao播放。
-> 进入项目目录中 make , 就会生成两个文件:
+C 程序使用 libmpg123 解码mp3, libao播放。
+
+进入项目目录中 make , 就会生成两个文件:
-> * wsound : ./wsound "MUSIC FILE" 可以播放mp3
+* wsound : ./wsound "MUSIC FILE" 可以播放mp3
-> * libwsound.so : 动态链接库, 其中的 <code>int decode(const char \*)</code> 提供给Python调用。
+* libwsound.so : 动态链接库, 其中的 `int decode(const char \*)` 提供给Python调用。
-> 运行 googletrans.py 后,输入 字符 回车后翻译,输入 s 发音,输入 exit 退出
+运行 googletrans.py 后,输入 字符 回车后翻译,输入 s 发音,输入 exit 退出
## 问题 ##
-> 貌似libao动态链接库的问题,需要大家自己再编译一遍 libao
-> 其实整个项目很简单,大家如果有需要自己编先编译 libao, libmpg123
+貌似libao动态链接库的问题,需要大家自己再编译一遍 libao
+
+其实整个项目很简单,大家如果有需要自己编先编译 libao, libmpg123
-> 然后根据自己的需要修改 Makefile 和 googletrans.py
+然后根据自己的需要修改 Makefile 和 googletrans.py
View
@@ -12,6 +12,8 @@
# REPLACE THIS WITH YOUR PATH
WSOUND = os.path.dirname(os.path.realpath(__file__)) + '/libwsound.so'
+TIMEOUT = 5
+
class GoogleTrans(object):
def __init__(self):
@@ -94,14 +96,21 @@ def _request(self, text):
_param['hl'] = 'en'
url = '%s%s' % (self.URL, urllib.urlencode(_param))
- response = self.opener.open(url);
+ try:
+ response = self.opener.open(url, timeout=TIMEOUT);
+ except:
+ return None
return response.read()
def trans(self, text):
self.last_word = text;
+
+ response = self._request(text)
+ if not response:
+ return ['Error']
- _res = self.RES_PATTERN.findall( self._request(text) )
+ _res = self.RES_PATTERN.findall(response)
_res = _res[:2]
return [r.replace('[', '').replace(']', '') for r in _res]

0 comments on commit f156d42

Please sign in to comment.