139 """Fetch languages from peertube's search-index source code.
141 See videoLanguages_ in commit `8ed5c729 - Refactor and redesign client`_
143 .. _8ed5c729 - Refactor and redesign client:
144 https://framagit.org/framasoft/peertube/search-index/-/commit/8ed5c729
146 https://framagit.org/framasoft/peertube/search-index/-/commit/8ed5c729#3d8747f9a60695c367c70bb64efba8f403721fad_0_291
150 'https://framagit.org/framasoft/peertube/search-index/-/raw/master/client/src/components/Filters.vue',
156 print(
"ERROR: response from peertube is not OK.")
159 js_lang = re.search(
r"videoLanguages \(\)[^\n]+(.*?)\]", resp.text, re.DOTALL)
161 print(
"ERROR: can't determine languages from peertube")
164 for lang
in re.finditer(
r"\{ id: '([a-z]+)', label:", js_lang.group(1)):
165 eng_tag = lang.group(1)
172 sxng_tag = language_tag(babel.Locale.parse(eng_tag))
173 except babel.UnknownLocaleError:
174 print(
"ERROR: %s is unknown by babel" % eng_tag)
177 conflict = engine_traits.languages.get(sxng_tag)
179 if conflict != eng_tag:
180 print(
"CONFLICT: babel %s --> %s, %s" % (sxng_tag, conflict, eng_tag))
182 engine_traits.languages[sxng_tag] = eng_tag
184 engine_traits.languages[
'zh_Hans'] =
'zh'
185 engine_traits.languages[
'zh_Hant'] =
'zh'