Skip to content

Instantly share code, notes, and snippets.

@pauginer
Last active July 15, 2022 10:06
Show Gist options
  • Save pauginer/10ae6bc82e27591e55b4264a60ac8ca2 to your computer and use it in GitHub Desktop.
Save pauginer/10ae6bc82e27591e55b4264a60ac8ca2 to your computer and use it in GitHub Desktop.
Find missing lang codes on wiki
List<String> findUniqueCodes(List<String> a, List<String> b){
var result = <String>[];
var setA = <String>{};
setA.addAll(a);
var setB = <String>{};
setB.addAll(b);
//var common = setA.intersection(setB);
//var union = setA.union(setB);
//var diff = union.difference(common);
//result = diff.toList();
result = setA.difference(setB).toList();
return result;
}
void main() {
// Wikipedia codes from https://meta.wikimedia.org/wiki/List_of_Wikipedias extracted with:
// var s = ""; $(".external").each(function(){
// var text = $(this).attr("href");
// var url = new URL(text);
// var host = url.hostname;
// var parts = host.split(".");
// if(parts[1] == 'wikipedia'){
// //console.info(parts[0]);
// s = "'" + parts[0] + "', "+s;
// }
// }); console.info(s);
var wikiCodes = ['kr', 'kr', 'hz', 'hz', 'aa', 'aa', 'mus', 'mus', 'lrc', 'lrc', 'ii', 'ii', 'ho', 'ho', 'mh', 'mh', 'kj', 'kj', 'cho', 'cho', 'ng', 'ng', 'cr', 'cr', 'dz', 'dz', 'ti', 'ti', 'kl', 'kl', 'pwn', 'pwn', 'sg', 'sg', 'din', 'din', 'ee', 'ee', 'ik', 'ik', 'ff', 'ff', 'kcg', 'kcg', 'ady', 'ady', 'pnt', 'pnt', 'ch', 'ch', 'ss', 'ss', 'ak', 'ak', 'iu', 'iu', 'rn', 'rn', 've', 've', 'chy', 'chy', 'ts', 'ts', 'bm', 'bm', 'rmy', 'rmy', 'tn', 'tn', 'ami', 'ami', 'st', 'st', 'mad', 'mad', 'got', 'got', 'pih', 'pih', 'ny', 'ny', 'guw', 'guw', 'ltg', 'ltg', 'chr', 'chr', 'alt', 'alt', 'gcr', 'gcr', 'sm', 'sm', 'om', 'om', 'trv', 'trv', 'srn', 'srn', 'shi', 'shi', 'ks', 'ks', 'cu', 'cu', 'ty', 'ty', 'mnw', 'mnw', 'xh', 'xh', 'kg', 'kg', 'nqo', 'nqo', 'lbe', 'lbe', 'fj', 'fj', 'roa-rup', 'roa-rup', 'jbo', 'jbo', 'tpi', 'tpi', 'bi', 'bi', 'lg', 'lg', 'tet', 'tet', 'ki', 'ki', 'nia', 'nia', 'nov', 'nov', 'tcy', 'tcy', 'kbd', 'kbd', 'wo', 'wo', 'na', 'na', 'jam', 'jam', 'kbp', 'kbp', 'arc', 'arc', 'mdf', 'mdf', 'dag', 'dag', 'to', 'to', 'atj', 'atj', 'pdc', 'pdc', 'kaa', 'kaa', 'za', 'za', 'szy', 'szy', 'xal', 'xal', 'krc', 'krc', 'inh', 'inh', 'tw', 'tw', 'tay', 'tay', 'awa', 'awa', 'haw', 'haw', 'pi', 'pi', 'pap', 'pap', 'pag', 'pag', 'pfl', 'pfl', 'bxr', 'bxr', 'gag', 'gag', 'ksh', 'ksh', 'av', 'av', 'dv', 'dv', 'cbk-zam', 'cbk-zam', 'ln', 'ln', 'dty', 'dty', 'rw', 'rw', 'dsb', 'dsb', 'tyv', 'tyv', 'ext', 'ext', 'koi', 'koi', 'tum', 'tum', 'gom', 'gom', 'ang', 'ang', 'lad', 'lad', 'rm', 'rm', 'fur', 'fur', 'olo', 'olo', 'mwl', 'mwl', 'lo', 'lo', 'stq', 'stq', 'lfn', 'lfn', 'lez', 'lez', 'smn', 'smn', 'bjn', 'bjn', 'mt', 'mt', 'nrm', 'nrm', 'gn', 'gn', 'zea', 'zea', 'ay', 'ay', 'udm', 'udm', 'skr', 'skr', 'ug', 'ug', 'pcd', 'pcd', 'csb', 'csb', 'kv', 'kv', 'gv', 'gv', 'kw', 'kw', 'frp', 'frp', 'ary', 'ary', 'ab', 'ab', 'bo', 'bo', 'co', 'co', 'fiu-vro', 'fiu-vro', 'tk', 'tk', 'glk', 'glk', 'kab', 'kab', 'gan', 'gan', 'vep', 'vep', 'nah', 'nah', 'sc', 'sc', 'sat', 'sat', 'mi', 'mi', 'nds-nl', 'nds-nl', 'vls', 'vls', 'myv', 'myv', 'se', 'se', 'bh', 'bh', 'sn', 'sn', 'so', 'so', 'ig', 'ig', 'rue', 'rue', 'nso', 'nso', 'pam', 'pam', 'roa-tara', 'roa-tara', 'km', 'km', 'hak', 'hak', 'mni', 'mni', 'ie', 'ie', 'hyw', 'hyw', 'hif', 'hif', 'mhr', 'mhr', 'mrj', 'mrj', 'as', 'as', 'zu', 'zu', 'lij', 'lij', 'zh-classical', 'zh-classical', 'shn', 'shn', 'wa', 'wa', 'sa', 'sa', 'bcl', 'bcl', 'ace', 'ace', 'eml', 'eml', 'gor', 'gor', 'mzn', 'mzn', 'li', 'li', 'mai', 'mai', 'map-bms', 'map-bms', 'fo', 'fo', 'hsb', 'hsb', 'sah', 'sah', 'ban', 'ban', 'nap', 'nap', 'ps', 'ps', 'am', 'am', 'sd', 'sd', 'ilo', 'ilo', 'yi', 'yi', 'bug', 'bug', 'cdo', 'cdo', 'or', 'or', 'gd', 'gd', 'os', 'os', 'frr', 'frr', 'ha', 'ha', 'bat-smg', 'bat-smg', 'si', 'si', 'crh', 'crh', 'xmf', 'xmf', 'nv', 'nv', 'mn', 'mn', 'qu', 'qu', 'avk', 'avk', 'ia', 'ia', 'bpy', 'bpy', 'scn', 'scn', 'kn', 'kn', 'als', 'als', 'gu', 'gu', 'bar', 'bar', 'ne', 'ne', 'io', 'io', 'yo', 'yo', 'pa', 'pa', 'diq', 'diq', 'sco', 'sco', 'an', 'an', 'ckb', 'ckb', 'wuu', 'wuu', 'tl', 'tl', 'fy', 'fy', 'cv', 'cv', 'lmo', 'lmo', 'ku', 'ku', 'is', 'is', 'szl', 'szl', 'ga', 'ga', 'lld', 'lld', 'ba', 'ba', 'lb', 'lb', 'su', 'su', 'pnb', 'pnb', 'pms', 'pms', 'ht', 'ht', 'vec', 'vec', 'jv', 'jv', 'br', 'br', 'new', 'new', 'sw', 'sw', 'te', 'te', 'be-tarask', 'be-tarask', 'ml', 'ml', 'ky', 'ky', 'nds', 'nds', 'mr', 'mr', 'sq', 'sq', 'oc', 'oc', 'bs', 'bs', 'mg', 'mg', 'my', 'my', 'af', 'af', 'tg', 'tg', 'lv', 'lv', 'vo', 'vo', 'bn', 'bn', 'zh-yue', 'zh-yue', 'mk', 'mk', 'ast', 'ast', 'cy', 'cy', 'la', 'la', 'ta', 'ta', 'th', 'th', 'uz', 'uz', 'hi', 'hi', 'ka', 'ka', 'nn', 'nn', 'ur', 'ur', 'sl', 'sl', 'az', 'az', 'gl', 'gl', 'lt', 'lt', 'el', 'el', 'hr', 'hr', 'simple', 'simple', 'be', 'be', 'min', 'min', 'et', 'et', 'kk', 'kk', 'sk', 'sk', 'azb', 'azb', 'da', 'da', 'bg', 'bg', 'hy', 'hy', 'he', 'he', 'eo', 'eo', 'ms', 'ms', 'eu', 'eu', 'tt', 'tt', 'zh-min-nan', 'zh-min-nan', 'ro', 'ro', 'sh', 'sh', 'ce', 'ce', 'tr', 'tr', 'cs', 'cs', 'hu', 'hu', 'fi', 'fi', 'no', 'no', 'ko', 'ko', 'id', 'id', 'sr', 'sr', 'ca', 'ca', 'fa', 'fa', 'pt', 'pt', 'uk', 'uk', 'ar', 'ar', 'war', 'war', 'vi', 'vi', 'zh', 'zh', 'ja', 'ja', 'pl', 'pl', 'arz', 'arz', 'it', 'it', 'es', 'es', 'ru', 'ru', 'nl', 'nl', 'fr', 'fr', 'sv', 'sv', 'de', 'de', 'ceb', 'ceb', 'en', 'en'];
var listCodes = ['jv', 'tl', 'bn', 'mn', 'ml', 'sq', 'te', 'af', 'kn', 'is', 'lv', 'bs', 'gu', 'ne', 'mr', 'mk', 'sw', 'pa', 'bcl', 'ms', 'az', 'ta', 'et', 'lt', 'sl', 'hy', 'sh', 'zh-yue', 'kk', 'ka', 'gl', 'eu', 'ky', 'be', 'nn', 'arz', 'eo', 'ur', 'uz', 'la', 'be-tarask', 'ceb', 'cy', 'ast', 'su', '???', 'si', 'lb', 'ckb', 'sco', 'bar', 'my', 'zh-classical', 'fy', 'br', 'ga', 'an', 'ba', 'oc', 'tg', 'km', 'tt', 'or', 'war', 'ku', 'zh-min-nan', 'as', 'azb', 'so', 'scn', '???', 'vec', 'wuu', 'ig', 'lmo', 'yi', 'mzn', 'am', 'ps', 'sah', 'bh', 'hif', 'ia', 'cv', 'pnb', 'li', 'tk', 'io', 'ce', 'sa', 'mg', 'nap', 'xh', 'fo', 'min', 'gom', 'ht', 'mai', 'qu', 'gn', '???', 'map-bms', 'sd', 'rue', 'gd', 'lo', 'ha', 'pms', 'xmf', 'vo', 'eml', 'yo', 'diq', 'vls', 'pam', 'lij', 'mt', 'nds', 'hsb', 'lad', 'wa', 'szl', 'sc', 'cdo', 'ace', 'hak', 'mhr', 'sat', 'bat-smg/sgs', 'ilo', 'frr', 'gan', 'ie', 'myv', 'sn', 'bpy', 'tcy', 'crh', 'rm', 'os', 'tyv', 'pcd', 'kab', 'zu', 'vep', 'nah', 'pdc', 'se', 'bo', 'mwl', 'co', 'glk', 'om', 'pap', 'ug', 'frp', 'lrc', 'lez', 'dsb', 'ay', 'xal', 'bjn', 'olo', 'tet', 'rw', 'new', 'zea', 'fiu-vro', 'stq', 'fur', 'ab', 'pih', 'cu', 'udm', 'kbp', 'roa-tara', 'csb', 'cbk-zam', 'jam', 'gv', 'koi', '???', 'nov', 'dty', 'haw', 'pag', 'mi', '???', 'kw', 'ug', 'pfl', 'tn', 'ln', '???', 'ext', 'gag', 'nso', 'ts', 'kaa', 'bi', 'nrm', 'roa-rup', '???', 'dv', 'lg', 'nv', 'chr', 'st', 'bug', 'kl', 'ki', 'mrj', 'ak', 'wo', 'bm', 'tw', 'arc', 'atj', 'sm', 'tpi', 'got', 'srn', 'kg', 'na', 'koi', 'chy', 'jbo', 'din', 'ltg', 'mdf', 'sg', 'ss', 'ty', 'umb', 'za', 'to', 'kbd', 'ee', 'ik', 'chy', 'rn', 'ff', 'ny', 'ks', 'fj', 'pnt', 'lbe', 'cr', 'iu', 've', 'dz', 'ady', 'krc', 'ti', 'mnw', 'nqo', 'gcr', 'awa', 'ho', 'kj', 'mh', 'ng', 'hyw', 'ary', 'avk', 'lld', 'smn', 'mad', 'skr', 'nia', 'mni', 'tay', 'trv', 'dag', 'shi', 'ami', 'pwn', 'guw', 'kcg', 'nl', 'ar', 'fa', 'ko', 'id', 'sv', 'uk', 'cs', 'he', 'vi', 'th', 'hu', 'fi', 'tr', 'no', 'ro', 'el', 'ca', 'simple', 'hi', 'sr', 'da', 'bg', 'hr', 'sk', 'en', 'es', 'de', 'ja', 'fr', 'ru', 'it', 'zh', 'pt', 'pl'];
var result = findUniqueCodes(wikiCodes, listCodes);
print(result);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment