forked from zaclys/searxng
		
	filter langauges
This commit is contained in:
		
							parent
							
								
									149802c569
								
							
						
					
					
						commit
						c677aee58a
					
				
					 4 changed files with 81 additions and 72 deletions
				
			
		|  | @ -40,6 +40,12 @@ url_xpath = './/url' | |||
| title_xpath = './/title' | ||||
| content_xpath = './/sum' | ||||
| 
 | ||||
| supported_languages = ["en", "fr", "es", "ru", "tr", "ja", "zh-CN", "zh-TW", "ko", "de", | ||||
|                        "nl", "it", "fi", "sv", "no", "pt", "vi", "ar", "he", "id", "el", | ||||
|                        "th", "hi", "bn", "pl", "tl", "la", "eo", "ca", "bg", "tx", "sr", | ||||
|                        "hu", "da", "lt", "cs", "gl", "ka", "gd", "go", "ro", "ga", "lv", | ||||
|                        "hy", "is", "ag", "gv", "io", "fa", "te", "vv", "mg", "ku", "lb", "et"]  | ||||
| 
 | ||||
| 
 | ||||
| # do search-request | ||||
| def request(query, params): | ||||
|  | @ -48,7 +54,9 @@ def request(query, params): | |||
|     if params['language'] == 'all': | ||||
|         language = 'xx' | ||||
|     else: | ||||
|         language = params['language'].split('-')[0] | ||||
|         language = params['language'].replace('-', '_').lower() | ||||
|         if language.split('-')[0] != 'zh': | ||||
|             language = language.split('-')[0] | ||||
| 
 | ||||
|     if params['safesearch'] >= 1: | ||||
|         safesearch = 1 | ||||
|  |  | |||
|  | @ -23,20 +23,20 @@ categories = ['general'] | |||
| paging = True | ||||
| language_support = True | ||||
| use_locale_domain = True | ||||
| supported_languages = ['de', 'en', 'es', 'es_419', 'fr', 'hr', 'it', 'nl', 'pl', 'pt-BR', | ||||
|                        'pt-PT', 'vi', 'tr', 'ru', 'ar', 'th', 'ko', 'zh-CN', 'zh-TW', 'ja', | ||||
|                        'ach', 'af', 'ak', 'az', 'ms', 'ban', 'xx_bork', 'bs', 'br', 'ca', | ||||
|                        'ceb', 'ckb', 'cs', 'sn', 'co', 'cy', 'da', 'yo', 'et', 'xx_elmer', | ||||
|                        'eo', 'eu', 'ee', 'tl', 'fo', 'gaa', 'ga', 'gd', 'gl', 'gn', 'xx_hacker', | ||||
|                        'ht', 'ha', 'haw', 'bem', 'ig', 'rn', 'id', 'ia', 'zu', 'is', 'jw', 'rw', | ||||
|                        'sw', 'tlh', 'kg', 'mfe', 'kri', 'la', 'lv', 'to', 'lt', 'ln', 'loz', | ||||
|                        'lua', 'lg', 'hu', 'mg', 'mt', 'mi', 'pcm', 'no', 'nso', 'ny', 'nn', | ||||
|                        'uz', 'oc', 'om', 'xx_pirate', 'pt', 'ro', 'mo', 'rm', 'qu', 'nyn', 'crs', | ||||
|                        'sq', 'sd', 'sk', 'sl', 'so', 'st', 'sr_ME', 'sr_Latn', 'su', 'fi', 'sv', | ||||
|                        'tg', 'tt', 'tn', 'tum', 'tk', 'tw', 'fy', 'wo', 'xh', 'el', 'be', 'bg', | ||||
|                        'ky', 'kk', 'mk', 'mn', 'sr', 'uk', 'ka', 'hy', 'yi', 'iw', 'ug', 'ur', | ||||
|                        'ps', 'fa', 'ti', 'am', 'ne', 'mr', 'hi', 'bn', 'pa', 'gu', 'or', 'ta', | ||||
|                        'te', 'kn', 'ml', 'si', 'lo', 'my', 'km', 'chr'] | ||||
| supported_languages = ["ach", "af", "ak", "az", "ms", "ban", "xx-bork", "bs", "br", "ca", | ||||
|                        "ceb", "ckb", "cs", "sn", "co", "cy", "da", "de", "yo", "et", | ||||
|                        "xx-elmer", "en", "es", "es-419", "eo", "eu", "ee", "tl", "fo", "fr", | ||||
|                        "gaa", "ga", "gd", "gl", "gn", "xx-hacker", "ht", "ha", "hr", "haw", | ||||
|                        "bem", "ig", "rn", "id", "ia", "zu", "is", "it", "jw", "rw", "sw", | ||||
|                        "tlh", "kg", "mfe", "kri", "la", "lv", "to", "lt", "ln", "loz", | ||||
|                        "lua", "lg", "hu", "mg", "mt", "mi", "nl", "pcm", "no", "nso", | ||||
|                        "ny", "nn", "uz", "oc", "om", "xx-pirate", "pl", "pt-BR", "pt-PT", | ||||
|                        "ro", "rm", "qu", "nyn", "crs", "sq", "sd", "sk", "sl", "so", "st", | ||||
|                        "sr-ME", "sr-Latn", "su", "fi", "sv", "tg", "tt", "vi", "tn", "tum", | ||||
|                        "tr", "tk", "tw", "fy", "wo", "xh", "el", "be", "bg", "ky", "kk", "mk", | ||||
|                        "mn", "ru", "sr", "uk", "ka", "hy", "yi", "iw", "ug", "ur", "ar", "ps", | ||||
|                        "fa", "ti", "am", "ne", "mr", "hi", "bn", "pa", "gu", "or", "ta", "te", | ||||
|                        "kn", "ml", "si", "th", "lo", "my", "km", "chr", "ko", "zh-CN", "zh-TW", "ja"] | ||||
| time_range_support = True | ||||
| 
 | ||||
| # based on https://en.wikipedia.org/wiki/List_of_Google_domains and tests | ||||
|  | @ -181,8 +181,12 @@ def request(query, params): | |||
|         language = 'en' | ||||
|         country = 'US' | ||||
|         url_lang = '' | ||||
|     elif params['language'][:2] == 'jv': | ||||
|         language = 'jw' | ||||
|         country = 'ID' | ||||
|         url_lang = 'lang_jw' | ||||
|     else: | ||||
|         language_array = params['language'].lower().split('_') | ||||
|         language_array = params['language'].lower().split('-') | ||||
|         if len(language_array) == 2: | ||||
|             country = language_array[1] | ||||
|         else: | ||||
|  |  | |||
|  | @ -32,9 +32,7 @@ language_codes = ( | |||
|     (u"en-NZ", u"English", u"", u"English"), | ||||
|     (u"got", u"𐌲𐌿𐍄𐌹𐍃𐌺", u"", u"Gothic"), | ||||
|     (u"vls", u"West-Vlams", u"", u"West Flemish"), | ||||
|     (u"ro", u"Română", u"", u"Romanian"), | ||||
|     (u"bxr", u"Буряад", u"", u"Buryat"), | ||||
|     (u"fiu-vro", u"Võro", u"", u"Võro"), | ||||
|     (u"diq", u"Zazaki", u"", u"Zazaki"), | ||||
|     (u"zh", u"中文", u"", u"Chinese"), | ||||
|     (u"pms", u"Piemontèis", u"", u"Piedmontese"), | ||||
|  | @ -42,28 +40,25 @@ language_codes = ( | |||
|     (u"zh-HK", u"中文", u"", u"Chinese"), | ||||
|     (u"zu", u"isiZulu", u"", u"Zulu"), | ||||
|     (u"tet", u"Tetun", u"", u"Tetum"), | ||||
|     (u"es-PE", u"Español", u"", u"Spanish"), | ||||
|     (u"zh-CN", u"中文 (简体)", u"", u""), | ||||
|     (u"new", u"नेपाल भाषा", u"", u"Newar"), | ||||
|     (u"ro-RO", u"Română", u"", u"Romanian"), | ||||
|     (u"lez", u"Лезги чІал (Lezgi č’al)", u"", u"Lezgian"), | ||||
|     (u"glk", u"گیلکی", u"", u"Gilaki"), | ||||
|     (u"ko-KR", u"한국어", u"", u"Korean"), | ||||
|     (u"id-ID", u"Bahasa Indonesia", u"", u"Indonesian"), | ||||
|     (u"cho", u"Choctaw", u"", u"Choctaw"), | ||||
|     (u"chr", u"ᏣᎳᎩ", u"", u"Cherokee"), | ||||
|     (u"vi", u"Tiếng Việt", u"", u"Vietnamese"), | ||||
|     (u"chy", u"Tsetsêhestâhese", u"", u"Cheyenne"), | ||||
|     (u"is", u"Íslenska", u"", u"Icelandic"), | ||||
|     (u"tk", u"تركمن / Туркмен", u"", u"Turkmen"), | ||||
|     (u"da-DK", u"Dansk", u"", u"Danish"), | ||||
|     (u"pfl", u"Pälzisch", u"", u"Palatinate German"), | ||||
|     (u"hu-HU", u"Magyar", u"", u"Hungarian"), | ||||
|     (u"he-IL", u"עברית", u"", u"Hebrew"), | ||||
|     (u"mg", u"Malagasy", u"", u"Malagasy"), | ||||
|     (u"ml", u"മലയാളം", u"", u"Malayalam"), | ||||
|     (u"mo", u"Молдовеняскэ", u"", u"Moldovan"), | ||||
|     (u"mn", u"Монгол", u"", u"Mongolian"), | ||||
|     (u"mi", u"Māori", u"", u"Maori"), | ||||
|     (u"mh", u"Ebon", u"", u"Marshallese"), | ||||
|     (u"mk", u"Македонски", u"", u"Macedonian"), | ||||
|     (u"mt", u"Malti", u"", u"Maltese"), | ||||
|     (u"ms", u"Bahasa Melayu", u"", u"Malay"), | ||||
|  | @ -75,7 +70,6 @@ language_codes = ( | |||
|     (u"pl-PL", u"Polski", u"", u"Polish"), | ||||
|     (u"sl-SL", u"Slovenščina", u"", u"Slovenian"), | ||||
|     (u"csb", u"Kaszëbsczi", u"", u"Kashubian"), | ||||
|     (u"cbk-zam", u"Chavacano de Zamboanga", u"", u"Zamboanga Chavacano"), | ||||
|     (u"nyn", u"Runyankore", u"", u""), | ||||
|     (u"ig", u"Igbo", u"", u"Igbo"), | ||||
|     (u"fr", u"Français", u"", u"French"), | ||||
|  | @ -88,7 +82,7 @@ language_codes = ( | |||
|     (u"fj", u"Na Vosa Vakaviti", u"", u"Fijian"), | ||||
|     (u"fo", u"Føroyskt", u"", u"Faroese"), | ||||
|     (u"ss", u"SiSwati", u"", u"Swati"), | ||||
|     (u"roa-tara", u"Tarandíne", u"", u"Tarantino"), | ||||
|     (u"sr", u"Српски / Srpski", u"", u"Serbian"), | ||||
|     (u"sq", u"Shqip", u"", u"Albanian"), | ||||
|     (u"sw", u"Kiswahili", u"", u"Swahili"), | ||||
|     (u"sv", u"Svenska", u"", u"Swedish"), | ||||
|  | @ -104,7 +98,7 @@ language_codes = ( | |||
|     (u"sc", u"Sardu", u"", u"Sardinian"), | ||||
|     (u"pt-BR", u"português (Brasil)", u"", u""), | ||||
|     (u"sa", u"संस्कृतम्", u"", u"Sanskrit"), | ||||
|     (u"sg", u"Sängö", u"", u"Sango"), | ||||
|     (u"he-IL", u"עברית", u"", u"Hebrew"), | ||||
|     (u"se", u"Sámegiella", u"", u"Northern Sami"), | ||||
|     (u"sd", u"سنڌي، سندھی ، सिन्ध", u"", u"Sindhi"), | ||||
|     (u"fr-CH", u"Français", u"", u"French"), | ||||
|  | @ -112,7 +106,6 @@ language_codes = ( | |||
|     (u"it-CH", u"Italiano", u"", u"Italian"), | ||||
|     (u"wuu", u"吴语", u"", u"Wu"), | ||||
|     (u"fr-CA", u"Français", u"", u"French"), | ||||
|     (u"ar-XA", u"العربية", u"", u"Arabic"), | ||||
|     (u"kbd", u"Адыгэбзэ (Adighabze)", u"", u"Kabardian Circassian"), | ||||
|     (u"no-NO", u"Norsk (Bokmål)", u"", u"Norwegian (Bokmål)"), | ||||
|     (u"ca-ES", u"Català", u"", u"Catalan"), | ||||
|  | @ -130,14 +123,13 @@ language_codes = ( | |||
|     (u"yi", u"ייִדיש", u"", u"Yiddish"), | ||||
|     (u"ceb", u"Sinugboanong Binisaya", u"", u"Cebuano"), | ||||
|     (u"yo", u"Yorùbá", u"", u"Yoruba"), | ||||
|     (u"ro-RO", u"Română", u"", u"Romanian"), | ||||
|     (u"ru-RU", u"Русский", u"", u"Russian"), | ||||
|     (u"bar", u"Boarisch", u"", u"Bavarian"), | ||||
|     (u"nov", u"Novial", u"", u"Novial"), | ||||
|     (u"sr-ME", u"srpski (Crna Gora)", u"", u""), | ||||
|     (u"es-CL", u"Español", u"", u"Spanish"), | ||||
|     (u"es-CO", u"Español", u"", u"Spanish"), | ||||
|     (u"nl-NL", u"Nederlands", u"", u"Dutch"), | ||||
|     (u"map-bms", u"Basa Banyumasan", u"", u"Banyumasan"), | ||||
|     (u"el", u"Ελληνικά", u"", u"Greek"), | ||||
|     (u"eo", u"Esperanto", u"", u"Esperanto"), | ||||
|     (u"en", u"English", u"", u"English"), | ||||
|  | @ -151,7 +143,7 @@ language_codes = ( | |||
|     (u"rw", u"Ikinyarwanda", u"", u"Kinyarwanda"), | ||||
|     (u"rm", u"Rumantsch", u"", u"Romansh"), | ||||
|     (u"rn", u"Kirundi", u"", u"Kirundi"), | ||||
|     (u"es-419", u"español (Latinoamérica)", u"", u""), | ||||
|     (u"ro", u"Română", u"", u"Romanian"), | ||||
|     (u"dsb", u"Dolnoserbski", u"", u"Lower Sorbian"), | ||||
|     (u"ast", u"Asturianu", u"", u"Asturian"), | ||||
|     (u"lmo", u"Lumbaart", u"", u"Lombard"), | ||||
|  | @ -161,17 +153,13 @@ language_codes = ( | |||
|     (u"koi", u"Перем Коми (Perem Komi)", u"", u"Komi-Permyak"), | ||||
|     (u"tr-TR", u"Türkçe", u"", u"Turkish"), | ||||
|     (u"pnt", u"Ποντιακά", u"", u"Pontic"), | ||||
|     (u"es-XL", u"Español", u"", u"Spanish"), | ||||
|     (u"fi-FI", u"Suomi", u"", u"Finnish"), | ||||
|     (u"pnb", u"شاہ مکھی پنجابی (Shāhmukhī Pañjābī)", u"", u"Western Punjabi"), | ||||
|     (u"udm", u"Удмурт кыл", u"", u"Udmurt"), | ||||
|     (u"ar-SA", u"العربية", u"", u"Arabic"), | ||||
|     (u"bem", u"Ichibemba", u"", u""), | ||||
|     (u"roa-rup", u"Armãneashce", u"", u"Aromanian"), | ||||
|     (u"sr-Latn", u"srpski (latinica)", u"", u""), | ||||
|     (u"en-ZA", u"English", u"", u"English"), | ||||
|     (u"stq", u"Seeltersk", u"", u"Saterland Frisian"), | ||||
|     (u"sr", u"Српски / Srpski", u"", u"Serbian"), | ||||
|     (u"ang", u"Englisc", u"", u"Anglo-Saxon"), | ||||
|     (u"ru-RU", u"Русский", u"", u"Russian"), | ||||
|     (u"lbe", u"Лакку", u"", u"Lak"), | ||||
|     (u"min", u"Minangkabau", u"", u"Minangkabau"), | ||||
|     (u"es-US", u"Español", u"", u"Spanish"), | ||||
|  | @ -184,14 +172,13 @@ language_codes = ( | |||
|     (u"kg", u"KiKongo", u"", u"Kongo"), | ||||
|     (u"ckb", u"Soranî / کوردی", u"", u"Sorani"), | ||||
|     (u"kk", u"Қазақша", u"", u"Kazakh"), | ||||
|     (u"kj", u"Kuanyama", u"", u"Kuanyama"), | ||||
|     (u"sg", u"Sängö", u"", u"Sango"), | ||||
|     (u"ki", u"Gĩkũyũ", u"", u"Kikuyu"), | ||||
|     (u"ko", u"한국어", u"", u"Korean"), | ||||
|     (u"kn", u"ಕನ್ನಡ", u"", u"Kannada"), | ||||
|     (u"tpi", u"Tok Pisin", u"", u"Tok Pisin"), | ||||
|     (u"kl", u"Kalaallisut", u"", u"Greenlandic"), | ||||
|     (u"ks", u"कश्मीरी / كشميري", u"", u"Kashmiri"), | ||||
|     (u"kr", u"Kanuri", u"", u"Kanuri"), | ||||
|     (u"ext", u"Estremeñu", u"", u"Extremaduran"), | ||||
|     (u"kw", u"Kernewek/Karnuack", u"", u"Cornish"), | ||||
|     (u"kv", u"Коми", u"", u"Komi"), | ||||
|  | @ -202,7 +189,7 @@ language_codes = ( | |||
|     (u"en-GB", u"English", u"", u"English"), | ||||
|     (u"xmf", u"მარგალური (Margaluri)", u"", u"Mingrelian"), | ||||
|     (u"jam", u"Jamaican Creole English", u"", u"Patois"), | ||||
|     (u"ar-SA", u"العربية", u"", u"Arabic"), | ||||
|     (u"udm", u"Удмурт кыл", u"", u"Udmurt"), | ||||
|     (u"ksh", u"Ripoarisch", u"", u"Ripuarian"), | ||||
|     (u"ms-MY", u"Bahasa Melayu", u"", u"Malay"), | ||||
|     (u"de", u"Deutsch", u"", u"German"), | ||||
|  | @ -219,13 +206,10 @@ language_codes = ( | |||
|     (u"rmy", u"romani - रोमानी", u"", u"Romani"), | ||||
|     (u"arc", u"ܐܪܡܝܐ", u"", u"Aramaic"), | ||||
|     (u"th-TH", u"ไทย", u"", u"Thai"), | ||||
|     (u"mus", u"Muskogee", u"", u"Muscogee"), | ||||
|     (u"lua", u"Luba-Lulua", u"", u""), | ||||
|     (u"en-ZA", u"English", u"", u"English"), | ||||
|     (u"wa", u"Walon", u"", u"Walloon"), | ||||
|     (u"wo", u"Wolof", u"", u"Wolof"), | ||||
|     (u"jv", u"Basa Jawa", u"", u"Javanese"), | ||||
|     (u"jw", u"Javanese", u"", u""), | ||||
|     (u"fr-BE", u"Français", u"", u"French"), | ||||
|     (u"tum", u"chiTumbuka", u"", u"Tumbuka"), | ||||
|     (u"ja", u"日本語", u"", u"Japanese"), | ||||
|  | @ -233,12 +217,9 @@ language_codes = ( | |||
|     (u"ilo", u"Ilokano", u"", u"Ilokano"), | ||||
|     (u"tlh", u"Klingon", u"", u""), | ||||
|     (u"pdc", u"Deitsch", u"", u"Pennsylvania German"), | ||||
|     (u"aa", u"Afar", u"", u"Afar"), | ||||
|     (u"ch", u"Chamoru", u"", u"Chamorro"), | ||||
|     (u"co", u"Corsu", u"", u"Corsican"), | ||||
|     (u"simple", u"Simple English", u"", u"Simple English"), | ||||
|     (u"ca", u"Català", u"", u"Catalan"), | ||||
|     (u"xx-pirate", u"Pirate", u"", u""), | ||||
|     (u"ce", u"Нохчийн", u"", u"Chechen"), | ||||
|     (u"cy", u"Cymraeg", u"", u"Welsh"), | ||||
|     (u"sah", u"Саха тыла (Saxa Tyla)", u"", u"Sakha"), | ||||
|  | @ -254,30 +235,26 @@ language_codes = ( | |||
|     (u"frp", u"Arpitan", u"", u"Franco-Provençal"), | ||||
|     (u"xal", u"Хальмг", u"", u"Kalmyk"), | ||||
|     (u"pi", u"पाऴि", u"", u"Pali"), | ||||
|     (u"it-IT", u"Italiano", u"", u"Italian"), | ||||
|     (u"ak", u"Akana", u"", u"Akan"), | ||||
|     (u"pl", u"Polski", u"", u"Polish"), | ||||
|     (u"nrm", u"Nouormand/Normaund", u"", u"Norman"), | ||||
|     (u"en-US", u"English", u"", u"English"), | ||||
|     (u"gan", u"贛語", u"", u"Gan"), | ||||
|     (u"bat-smg", u"Žemaitėška", u"", u"Samogitian"), | ||||
|     (u"en-UK", u"English", u"", u"English"), | ||||
|     (u"gag", u"Gagauz", u"", u"Gagauz"), | ||||
|     (u"an", u"Aragonés", u"", u"Aragonese"), | ||||
|     (u"gaa", u"Ga", u"", u""), | ||||
|     (u"fur", u"Furlan", u"", u"Friulian"), | ||||
|     (u"kr-KR", u"Kanuri", u"", u"Kanuri"), | ||||
|     (u"zh-CN", u"中文 (简体)", u"", u""), | ||||
|     (u"es-PE", u"Español", u"", u"Spanish"), | ||||
|     (u"tl-PH", u"Tagalog", u"", u"Tagalog"), | ||||
|     (u"en-IN", u"English", u"", u"English"), | ||||
|     (u"ve", u"Tshivenda", u"", u"Venda"), | ||||
|     (u"en-ID", u"English", u"", u"English"), | ||||
|     (u"en-IE", u"English", u"", u"English"), | ||||
|     (u"xx-bork", u"Bork, bork, bork!", u"", u""), | ||||
|     (u"is", u"Íslenska", u"", u"Icelandic"), | ||||
|     (u"iu", u"ᐃᓄᒃᑎᑐᑦ", u"", u"Inuktitut"), | ||||
|     (u"it", u"Italiano", u"", u"Italian"), | ||||
|     (u"iw", u"עברית", u"", u""), | ||||
|     (u"vo", u"Volapük", u"", u"Volapük"), | ||||
|     (u"ii", u"ꆇꉙ", u"", u"Sichuan Yi"), | ||||
|     (u"ik", u"Iñupiak", u"", u"Inupiak"), | ||||
|     (u"io", u"Ido", u"", u"Ido"), | ||||
|     (u"ia", u"Interlingua", u"", u"Interlingua"), | ||||
|  | @ -288,7 +265,7 @@ language_codes = ( | |||
|     (u"pap", u"Papiamentu", u"", u"Papiamentu"), | ||||
|     (u"pag", u"Pangasinan", u"", u"Pangasinan"), | ||||
|     (u"pam", u"Kapampangan", u"", u"Kapampangan"), | ||||
|     (u"lv-LV", u"Latviešu", u"", u"Latvian"), | ||||
|     (u"nl", u"Nederlands", u"", u"Dutch"), | ||||
|     (u"mzn", u"مَزِروني", u"", u"Mazandarani"), | ||||
|     (u"nl-BE", u"Nederlands", u"", u"Dutch"), | ||||
|     (u"sk-SK", u"Slovenčina", u"", u"Slovak"), | ||||
|  | @ -297,6 +274,7 @@ language_codes = ( | |||
|     (u"de-DE", u"Deutsch", u"", u"German"), | ||||
|     (u"jbo", u"Lojban", u"", u"Lojban"), | ||||
|     (u"mfe", u"kreol morisien", u"", u""), | ||||
|     (u"tcy", u"Tulu", u"", u"ತುಳು"), | ||||
|     (u"hak", u"Hak-kâ-fa / 客家話", u"", u"Hakka"), | ||||
|     (u"ny", u"Chichewa", u"", u"Chichewa"), | ||||
|     (u"ady", u"Адыгэбзэ", u"", u"Adyghe"), | ||||
|  | @ -308,7 +286,6 @@ language_codes = ( | |||
|     (u"en-MY", u"English", u"", u"English"), | ||||
|     (u"sv-SE", u"Svenska", u"", u"Swedish"), | ||||
|     (u"de-AT", u"Deutsch", u"", u"German"), | ||||
|     (u"xx-elmer", u"Elmer Fudd", u"", u""), | ||||
|     (u"hsb", u"Hornjoserbsce", u"", u"Upper Sorbian"), | ||||
|     (u"be", u"Беларуская", u"", u"Belarusian"), | ||||
|     (u"bg", u"Български", u"", u"Bulgarian"), | ||||
|  | @ -328,25 +305,20 @@ language_codes = ( | |||
|     (u"ach", u"Acoli", u"", u""), | ||||
|     (u"oc", u"Occitan", u"", u"Occitan"), | ||||
|     (u"kri", u"Krio (Sierra Leone)", u"", u""), | ||||
|     (u"be-tarask", u"Беларуская (тарашкевіца)", u"", u"Belarusian (Taraškievica)"), | ||||
|     (u"krc", u"Къарачай-Малкъар (Qarachay-Malqar)", u"", u"Karachay-Balkar"), | ||||
|     (u"nds", u"Plattdüütsch", u"", u"Low Saxon"), | ||||
|     (u"os", u"Иронау", u"", u"Ossetian"), | ||||
|     (u"or", u"ଓଡ଼ିଆ", u"", u"Oriya"), | ||||
|     (u"nso", u"Sepedi", u"", u"Northern Sotho"), | ||||
|     (u"bjn", u"Bahasa Banjar", u"", u"Banjar"), | ||||
|     (u"xx-hacker", u"Hacker", u"", u""), | ||||
|     (u"zh-min-nan", u"Bân-lâm-gú", u"", u"Min Nan"), | ||||
|     (u"pa", u"ਪੰਜਾਬੀ", u"", u"Punjabi"), | ||||
|     (u"loz", u"Lozi", u"", u""), | ||||
|     (u"war", u"Winaray", u"", u"Waray-Waray"), | ||||
|     (u"hz", u"Otsiherero", u"", u"Herero"), | ||||
|     (u"hy", u"Հայերեն", u"", u"Armenian"), | ||||
|     (u"hr", u"Hrvatski", u"", u"Croatian"), | ||||
|     (u"ht", u"Krèyol ayisyen", u"", u"Haitian"), | ||||
|     (u"hu", u"Magyar", u"", u"Hungarian"), | ||||
|     (u"hi", u"हिन्दी", u"", u"Hindi"), | ||||
|     (u"ho", u"Hiri Motu", u"", u"Hiri Motu"), | ||||
|     (u"ha", u"هَوُسَ", u"", u"Hausa"), | ||||
|     (u"bug", u"Basa Ugi", u"", u"Buginese"), | ||||
|     (u"he", u"עברית", u"", u"Hebrew"), | ||||
|  | @ -359,7 +331,7 @@ language_codes = ( | |||
|     (u"pih", u"Norfuk", u"", u"Norfolk"), | ||||
|     (u"ab", u"Аҧсуа", u"", u"Abkhazian"), | ||||
|     (u"af", u"Afrikaans", u"", u"Afrikaans"), | ||||
|     (u"ak", u"Akana", u"", u"Akan"), | ||||
|     (u"it-IT", u"Italiano", u"", u"Italian"), | ||||
|     (u"am", u"አማርኛ", u"", u"Amharic"), | ||||
|     (u"myv", u"Эрзянь (Erzjanj Kelj)", u"", u"Erzya"), | ||||
|     (u"as", u"অসমীয়া", u"", u"Assamese"), | ||||
|  | @ -370,21 +342,17 @@ language_codes = ( | |||
|     (u"ay", u"Aymar", u"", u"Aymara"), | ||||
|     (u"az", u"Azərbaycanca", u"", u"Azerbaijani"), | ||||
|     (u"es-ES", u"Español", u"", u"Spanish"), | ||||
|     (u"nl", u"Nederlands", u"", u"Dutch"), | ||||
|     (u"lv-LV", u"Latviešu", u"", u"Latvian"), | ||||
|     (u"nn", u"Nynorsk", u"", u"Norwegian (Nynorsk)"), | ||||
|     (u"no", u"Norsk (Bokmål)", u"", u"Norwegian (Bokmål)"), | ||||
|     (u"na", u"dorerin Naoero", u"", u"Nauruan"), | ||||
|     (u"nah", u"Nāhuatl", u"", u"Nahuatl"), | ||||
|     (u"ne", u"नेपाली", u"", u"Nepali"), | ||||
|     (u"ng", u"Oshiwambo", u"", u"Ndonga"), | ||||
|     (u"en-AU", u"English", u"", u"English"), | ||||
|     (u"nap", u"Nnapulitano", u"", u"Neapolitan"), | ||||
|     (u"nv", u"Diné bizaad", u"", u"Navajo"), | ||||
|     (u"ku", u"Kurdî / كوردی", u"", u"Kurdish"), | ||||
|     (u"cs-CZ", u"Čeština", u"", u"Czech"), | ||||
|     (u"zh-yue", u"粵語", u"", u"Cantonese"), | ||||
|     (u"en-SG", u"English", u"", u"English"), | ||||
|     (u"zh-classical", u"古文 / 文言文", u"", u"Classical Chinese"), | ||||
|     (u"bcl", u"Bikol", u"", u"Central Bicolano"), | ||||
|     (u"en-XA", u"English", u"", u"English") | ||||
|     (u"bcl", u"Bikol", u"", u"Central Bicolano") | ||||
| ) | ||||
|  |  | |||
|  | @ -11,7 +11,7 @@ | |||
| 
 | ||||
| from requests import get | ||||
| from re import sub | ||||
| from lxml.html import fromstring | ||||
| from lxml.html import fromstring, tostring | ||||
| from json import loads | ||||
| from sys import path | ||||
| path.append('../searx') | ||||
|  | @ -25,6 +25,28 @@ google_json_name = 'google.preferences.langMap' | |||
| 
 | ||||
| languages = {} | ||||
| 
 | ||||
| 
 | ||||
| # To filter out invalid codes and dialects. | ||||
| def valid_code(lang_code): | ||||
|     # filter invalid codes | ||||
|     if lang_code[:2] == 'xx'\ | ||||
|        or lang_code == 'jw'\ | ||||
|        or lang_code[-2:] == 'UK'\ | ||||
|        or lang_code[-2:] == 'XA'\ | ||||
|        or lang_code[-2:] == 'XL': | ||||
|         return False | ||||
| 
 | ||||
|     # filter dialects | ||||
|     lang_code = lang_code.split('-') | ||||
|     if len(lang_code) > 2 or len(lang_code[0]) > 3: | ||||
|         return False | ||||
|     if len(lang_code) == 2 and len(lang_code[1]) > 2: | ||||
|         print lang_code | ||||
|         return False | ||||
|          | ||||
|     return True | ||||
| 
 | ||||
| 
 | ||||
| # Get language names from Wikipedia. | ||||
| def get_wikipedia_languages(): | ||||
|     response = get(wiki_languages_url) | ||||
|  | @ -38,10 +60,13 @@ def get_wikipedia_languages(): | |||
|             code = td[3].xpath('./a')[0].text | ||||
|             name = td[2].xpath('./a')[0].text | ||||
|             english_name = td[1].xpath('./a')[0].text | ||||
|             articles = int(td[4].xpath('./a/b')[0].text.replace(',','')) | ||||
|              | ||||
|             if code not in languages: | ||||
|             # exclude languages with few articles and language variants | ||||
|             if code not in languages and articles >= 100 and valid_code(code): | ||||
|                 languages[code] = (name, '', english_name) | ||||
| 
 | ||||
| 
 | ||||
| # Get language names from Google. | ||||
| def get_google_languages(): | ||||
|     response = get(google_languages_url) | ||||
|  | @ -51,25 +76,27 @@ def get_google_languages(): | |||
|         code = option.xpath('./@value')[0] | ||||
|         name = option.text[:-1] | ||||
| 
 | ||||
|         if code not in languages: | ||||
|         if code not in languages and valid_code(code): | ||||
|             languages[code] = (name, '', '') | ||||
| 
 | ||||
| 
 | ||||
| # Join all language lists. | ||||
| # iterate all languages supported by each engine | ||||
| def join_language_lists(): | ||||
|     for engine_name in engines: | ||||
|         for locale in engines[engine_name].supported_languages: | ||||
|             locale = locale.replace('_', '-') | ||||
|             if locale not in languages: | ||||
|             if locale not in languages and valid_code(locale): | ||||
|                 # try to get language name | ||||
|                 language = languages.get(locale.split('-')[0], None) | ||||
|                 if language == None: | ||||
|                     print engine_name + ": " + locale | ||||
|                     # print engine_name + ": " + locale | ||||
|                     continue | ||||
| 
 | ||||
|                 (name, country, english) = language | ||||
|                 languages[locale] = (name, country, english) | ||||
| 
 | ||||
| 
 | ||||
| # Write languages.py. | ||||
| def write_languages_file(): | ||||
|     new_file = open('languages.py', 'w') | ||||
|  | @ -81,7 +108,7 @@ def write_languages_file(): | |||
|         (name, country, english) = languages[code] | ||||
|         file_content += '\n    (u"' + code + '"'\ | ||||
|                         + ', u"' + name + '"'\ | ||||
|                         + ', u"' + country[1:-1] + '"'\ | ||||
|                         + ', u"' + country + '"'\ | ||||
|                         + ', u"' + english + '"),' | ||||
|     # remove last comma | ||||
|     file_content = file_content[:-1] | ||||
|  | @ -89,11 +116,13 @@ def write_languages_file(): | |||
|     new_file.write(file_content.encode('utf8')) | ||||
|     new_file.close() | ||||
| 
 | ||||
| 
 | ||||
| def main(): | ||||
|     get_wikipedia_languages() | ||||
|     get_google_languages() | ||||
|     join_language_lists() | ||||
|     write_languages_file() | ||||
| 
 | ||||
| 
 | ||||
| if __name__ == "__main__": | ||||
|     main() | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 marc
						marc