Updated to use conditional decoding dependent on language

This commit is contained in:
Ben Busby 2020-05-11 18:59:59 -06:00
parent c019c01139
commit dc65d7725f
2 changed files with 10 additions and 4 deletions

View File

@ -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')

View File

@ -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