From 3af94a17196fe47945d6a8e46c0f23db9fc95c17 Mon Sep 17 00:00:00 2001 From: Willi Raschkowski Date: Sat, 17 Sep 2016 18:28:12 +0200 Subject: [PATCH] Improve language parsing --- wikipedia.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/wikipedia.py b/wikipedia.py index d60fcf8..bc453ca 100755 --- a/wikipedia.py +++ b/wikipedia.py @@ -6,7 +6,7 @@ import os from lib import requests -from utils import url_to_mobile, url_to_dbpedia, \ +from utils import url_to_mobile, url_to_dbpedia, language_codes, \ ResultsException, RequestException @@ -43,8 +43,16 @@ def search(query, lang, max_hits): def language(query): - lang, query = query.split('.') - return lang.strip(), query.strip() + """Check query for a language code and return language/query. + """ + if ' ' in query and '.' in query: + lang_code, new_query = query.split(' ', 1) + lang_code = lang_code.replace('.', '').strip() + if lang_code in language_codes: + return lang_code, new_query + + lang_code = os.getenv('defaultLang') or 'en' + return lang_code, query def alfred_item(result, lang): @@ -90,13 +98,11 @@ def alfred_error(e, query): if __name__ == '__main__': - # Get settings + # Get maximum number of search results max_hits = os.getenv('maxHits') or 9 - lang = os.getenv('defaultLang') or 'en' # Get query query = sys.argv[1] - if '.' in query: - lang, query = language(query) + lang, query = language(query) # Check non-empty input if not query: # Keep Alfred from removing the placeholder