70def request(query, params):
71 """Google-News search request"""
72
73 sxng_locale = params.get('searxng_locale', 'en-US')
74 ceid = locales.get_engine_locale(sxng_locale, traits.custom['ceid'], default='US:en')
75 google_info = get_google_info(params, traits)
76 google_info['subdomain'] = 'news.google.com'
77
78 ceid_region, ceid_lang = ceid.split(':')
79 ceid_lang, ceid_suffix = (
80 ceid_lang.split('-')
81 + [
82 None,
83 ]
84 )[:2]
85
86 google_info['params']['hl'] = ceid_lang
87
88 if ceid_suffix and ceid_suffix not in ['Hans', 'Hant']:
89
90 if ceid_region.lower() == ceid_lang:
91 google_info['params']['hl'] = ceid_lang + '-' + ceid_region
92 else:
93 google_info['params']['hl'] = ceid_lang + '-' + ceid_suffix
94
95 elif ceid_region.lower() != ceid_lang:
96
97 if ceid_region in ['AT', 'BE', 'CH', 'IL', 'SA', 'IN', 'BD', 'PT']:
98 google_info['params']['hl'] = ceid_lang
99 else:
100 google_info['params']['hl'] = ceid_lang + '-' + ceid_region
101
102 google_info['params']['lr'] = 'lang_' + ceid_lang.split('-')[0]
103 google_info['params']['gl'] = ceid_region
104
105 query_url = (
106 'https://'
107 + google_info['subdomain']
108 + "/search?"
109 + urlencode(
110 {
111 'q': query,
112 **google_info['params'],
113 }
114 )
115
116 + ('&ceid=%s' % ceid)
117 )
118
119 params['url'] = query_url
120 params['cookies'] = google_info['cookies']
121 params['headers'].update(google_info['headers'])
122 return params
123
124