diff --git a/app/request.py b/app/request.py index 3a23d97..a116b42 100644 --- a/app/request.py +++ b/app/request.py @@ -61,12 +61,19 @@ def gen_query(query, args, near_city=None, language='lang_en'): class Request: - def __init__(self, normal_ua): + def __init__(self, normal_ua, language='lang_en'): self.modified_user_agent = gen_user_agent(normal_ua) + self.language = language def __getitem__(self, name): return getattr(self, name) + def get_decode_value(self): + if 'lang_zh' in self.language: + return 'gb2312' + else: + return 'unicode-escape' + def send(self, base_url=SEARCH_URL, query='', return_bytes=False): response_header = [] @@ -83,4 +90,4 @@ class Request: if return_bytes: return b_obj.getvalue() else: - return b_obj.getvalue().decode('gb2312', 'ignore') + return b_obj.getvalue().decode(self.get_decode_value(), 'ignore') diff --git a/app/routes.py b/app/routes.py index aed98b7..993d1f6 100644 --- a/app/routes.py +++ b/app/routes.py @@ -20,13 +20,12 @@ CONFIG_PATH = app.config['STATIC_FOLDER'] + '/config.json' @app.before_request def before_request_func(): json_config = json.load(open(CONFIG_PATH)) if os.path.exists(CONFIG_PATH) else {'url': request.url_root} - - g.user_request = Request(request.headers.get('User-Agent')) g.user_config = Config(**json_config) if not g.user_config.url: g.user_config.url = request.url_root + g.user_request = Request(request.headers.get('User-Agent'), language=g.user_config.lang) g.app_location = g.user_config.url