def get_lang_list(self, provider=None): # advanced settings if provider and self.advanced.providers and provider in self.advanced.providers: adv_languages = self.advanced.providers[provider].get( "languages", None) if adv_languages: adv_out = set() for adv_lang in adv_languages: adv_lang = adv_lang.strip() try: real_lang = Language.fromietf(adv_lang) except: try: real_lang = Language.fromname(adv_lang) except: continue adv_out.update({real_lang}) # fallback to default languages if no valid language was found in advanced settings if adv_out: return adv_out l = {Language.fromietf(Prefs["langPref1a"])} lang_custom = Prefs["langPrefCustom"].strip() if Prefs['subtitles.only_one']: return l if Prefs["langPref2a"] != "None": try: l.update({Language.fromietf(Prefs["langPref2a"])}) except: pass if Prefs["langPref3a"] != "None": try: l.update({Language.fromietf(Prefs["langPref3a"])}) except: pass if len(lang_custom) and lang_custom != "None": for lang in lang_custom.split(u","): lang = lang.strip() try: real_lang = Language.fromietf(lang) except: try: real_lang = Language.fromname(lang) except: continue l.update({real_lang}) return l
def get_lang_list(self, provider=None, ordered=False): # advanced settings if provider and self.advanced.providers and provider in self.advanced.providers: adv_languages = self.advanced.providers[provider].get("languages", None) if adv_languages: adv_out = set() for adv_lang in adv_languages: adv_lang = adv_lang.strip() try: real_lang = Language.fromietf(adv_lang) except: try: real_lang = Language.fromname(adv_lang) except: continue adv_out.update({real_lang}) # fallback to default languages if no valid language was found in advanced settings if adv_out: return adv_out l = [Language.fromietf(Prefs["langPref1a"])] lang_custom = Prefs["langPrefCustom"].strip() if Prefs['subtitles.only_one']: return set(l) if not ordered else l if Prefs["langPref2a"] != "None": try: l.append(Language.fromietf(Prefs["langPref2a"])) except: pass if Prefs["langPref3a"] != "None": try: l.append(Language.fromietf(Prefs["langPref3a"])) except: pass if len(lang_custom) and lang_custom != "None": for lang in lang_custom.split(u","): lang = lang.strip() try: real_lang = Language.fromietf(lang) except: try: real_lang = Language.fromname(lang) except: continue l.append(real_lang) if self.forced_also: if Prefs["subtitles.when_forced"] == "Always": for lang in list(l): l.append(Language.rebuild(lang, forced=True)) else: for (setting, index) in (("Only for Subtitle Language (1)", 0), ("Only for Subtitle Language (2)", 1), ("Only for Subtitle Language (3)", 2)): if Prefs["subtitles.when_forced"] == setting: try: l.append(Language.rebuild(list(l)[index], forced=True)) break except: pass elif self.forced_only: for lang in l: lang.forced = True if not self.normal_subs: for lang in l[:]: if not lang.forced: l.remove(lang) return set(l) if not ordered else l