diff --git a/400_xowa/src/gplx/xowa/apps/site_cfgs/Xoa_site_cfg_itm__interwikimap.java b/400_xowa/src/gplx/xowa/apps/site_cfgs/Xoa_site_cfg_itm__interwikimap.java index 04fa37a2e..fb56bc001 100644 --- a/400_xowa/src/gplx/xowa/apps/site_cfgs/Xoa_site_cfg_itm__interwikimap.java +++ b/400_xowa/src/gplx/xowa/apps/site_cfgs/Xoa_site_cfg_itm__interwikimap.java @@ -57,7 +57,8 @@ class Xoa_site_cfg_itm__interwikimap extends Xoa_site_cfg_itm__base { xwiki_mgr.Add_by_csv(Csv__peers__lang); // peer: EX: [[wikt]] -> en.wiktionary.org break; case Xow_domain_tid_.Tid__commons: case Xow_domain_tid_.Tid__wikidata: - case Xow_domain_tid_.Tid__wikimedia: case Xow_domain_tid_.Tid__species: case Xow_domain_tid_.Tid__meta: case Xow_domain_tid_.Tid__incubator: + case Xow_domain_tid_.Tid__wikimedia: case Xow_domain_tid_.Tid__species: case Xow_domain_tid_.Tid__meta: + case Xow_domain_tid_.Tid__incubator: case Xow_domain_tid_.Tid__wikimania: case Xow_domain_tid_.Tid__wikisource_org: case Xow_domain_tid_.Tid__mediawiki: case Xow_domain_tid_.Tid__wmfblog: case Xow_domain_tid_.Tid__home: case Xow_domain_tid_.Tid__other: xwiki_mgr.Add_by_sitelink_mgr(Xow_domain_tid_.Tid__wikipedia); // lang: hardcode to wikipedia; EX: "[[en:]] -> "en.wikipedia.org" @@ -85,6 +86,8 @@ class Xoa_site_cfg_itm__interwikimap extends Xoa_site_cfg_itm__base { , "1|mw;mediawikiwiki|www.mediawiki.org" , "1|wmf;wikimedia;foundation|foundation.wikimedia.org" , "1|incubator|incubator.wikimedia.org" + , "1|wikimania|wikimania.wikimedia.org" + , "1|sourceswiki|wikisource.org" , "0|oldwikisource|https://wikisource.org/wiki/~{0}|Old Wikisoure" , "0|mail|https://lists.wikimedia.org/mailman/listinfo/~{0}|Wikitech Mailing List" )) diff --git a/400_xowa/src/gplx/xowa/wikis/domains/Xow_abrv_wm_.java b/400_xowa/src/gplx/xowa/wikis/domains/Xow_abrv_wm_.java index 2391b308f..9f7d387ce 100644 --- a/400_xowa/src/gplx/xowa/wikis/domains/Xow_abrv_wm_.java +++ b/400_xowa/src/gplx/xowa/wikis/domains/Xow_abrv_wm_.java @@ -18,18 +18,36 @@ import gplx.core.primitives.*; import gplx.core.btries.*; import gplx.xowa.langs.*; public class Xow_abrv_wm_ { public static Xow_abrv_wm Parse_to_abrv_or_null(byte[] src) { // EX: parse "enwiki" to abrv_itm - if (src == null) return null; - int src_len = src.length; if (src_len == 0) return null; // empty bry + int src_len = src == null ? 0 : src.length; + + // src is empty; return null; + if (src_len == 0) return null; + + // check abrv_overrides + Xow_abrv_wm rv = Xow_abrv_wm_override.To_abrv_itm_or_null(src); + + // abrv_overrides exists; return it; EX: "arwikimedia" -> "ar.wikimedia.org" + if (rv != null) return rv; + + // match end for lang; EX: "enwiki" tries to match "wiki" Btrie_rv trv = new Btrie_rv(); - Object o = bry_trie.Match_at(trv, src, src_len - 1, -1); if (o == null) return null; - Xow_abrv_wm rv = Xow_abrv_wm_override.To_abrv_itm_or_null(src); if (rv != null) return rv; + Object o = bry_trie.Match_at(trv, src, src_len - 1, -1); + + // no match; exit + if (o == null) return null; + + // check domain type int domain_type = ((Int_obj_ref)o).Val(); + + // match start for lang Xol_lang_stub lang_itm = Xol_lang_stub_.Get_by_key_or_intl(src, 0, trv.Pos() + 1); return new Xow_abrv_wm(src, lang_itm.Key(), lang_itm, domain_type); } public static Xow_domain_itm Parse_to_domain_itm(byte[] src) { // EX: parse "enwiki" to "en.wikipedia.org" itm - if (Bry_.Has(src, Byte_ascii.Underline)) // convert "_" to "-"; note that wmf_keys have a strict format of langtype; EX: "zh_yuewiki"; DATE:2014-10-06 + // convert "_" to "-"; note that wmf_keys have a strict format of langtype; EX: "zh_yuewiki"; DATE:2014-10-06 + if (Bry_.Has(src, Byte_ascii.Underline)) src = Bry_.Replace_create(src, Byte_ascii.Underline, Byte_ascii.Dash); + return Xow_domain_itm_.parse(Xow_abrv_wm_.Parse_to_domain_bry(src)); } public static byte[] Parse_to_domain_bry(byte[] src) { // EX: parse "enwiki" to en.wikipedia.org @@ -55,6 +73,8 @@ public class Xow_abrv_wm_ { case Xow_domain_tid_.Tid__species: return Xow_domain_itm_.Bry__species; case Xow_domain_tid_.Tid__meta: return Xow_domain_itm_.Bry__meta; case Xow_domain_tid_.Tid__incubator: return Xow_domain_itm_.Bry__incubator; + case Xow_domain_tid_.Tid__wikimania: return Xow_domain_itm_.Bry__wikimania; + case Xow_domain_tid_.Tid__wikisource_org: return Xow_domain_itm_.Bry__wikisource_org; case Xow_domain_tid_.Tid__wikipedia: case Xow_domain_tid_.Tid__wiktionary: case Xow_domain_tid_.Tid__wikisource: @@ -86,6 +106,8 @@ public class Xow_abrv_wm_ { case Xow_domain_tid_.Tid__species: case Xow_domain_tid_.Tid__meta: case Xow_domain_tid_.Tid__incubator: + case Xow_domain_tid_.Tid__wikimania: + case Xow_domain_tid_.Tid__wikisource_org: case Xow_domain_tid_.Tid__wikidata: case Xow_domain_tid_.Tid__mediawiki: case Xow_domain_tid_.Tid__wmfblog: bfr.Add(suffix_bry); break; @@ -101,6 +123,8 @@ public class Xow_abrv_wm_ { case Xow_domain_tid_.Tid__species: case Xow_domain_tid_.Tid__meta: case Xow_domain_tid_.Tid__incubator: + case Xow_domain_tid_.Tid__wikimania: + case Xow_domain_tid_.Tid__wikisource_org: case Xow_domain_tid_.Tid__wikidata: case Xow_domain_tid_.Tid__mediawiki: case Xow_domain_tid_.Tid__wmfblog: return suffix; @@ -134,6 +158,8 @@ public class Xow_abrv_wm_ { Init_trie_itm(rv, int_hash, "specieswiki" , Xow_domain_tid_.Tid__species); Init_trie_itm(rv, int_hash, "metawiki" , Xow_domain_tid_.Tid__meta); Init_trie_itm(rv, int_hash, "incubatorwiki" , Xow_domain_tid_.Tid__incubator); + Init_trie_itm(rv, int_hash, "wikimaniawiki" , Xow_domain_tid_.Tid__wikimania); + Init_trie_itm(rv, int_hash, "sourceswiki" , Xow_domain_tid_.Tid__wikisource_org); Init_trie_itm(rv, int_hash, "wikidatawiki" , Xow_domain_tid_.Tid__wikidata); Init_trie_itm(rv, int_hash, "mediawikiwiki" , Xow_domain_tid_.Tid__mediawiki); Init_trie_itm(rv, int_hash, "foundationwiki" , Xow_domain_tid_.Tid__wmfblog); @@ -166,6 +192,7 @@ class Xow_abrv_wm_override { itm_hash__add(rv, lang_hash, "ca.wikimedia.org", "cawikimedia", "ca", Xol_lang_stub_.Id_en, Xow_domain_tid_.Tid__wikimedia); // NOTE: ca means Canada not Catalan itm_hash__add(rv, lang_hash, "be.wikimedia.org", "bewikimedia", "be", Xol_lang_stub_.Id_en, Xow_domain_tid_.Tid__wikimedia); // NOTE: be means Belgium not Belarusian itm_hash__add(rv, lang_hash, "se.wikimedia.org", "sewikimedia", "se", Xol_lang_stub_.Id_sv, Xow_domain_tid_.Tid__wikimedia); // NOTE: se means Swedish not Northern Sami + itm_hash__add(rv, lang_hash, "wikisource.org" , "sourceswiki", "en", Xol_lang_stub_.Id_en, Xow_domain_tid_.Tid__wikisource_org); return rv; } private static void itm_hash__add(Hash_adp_bry hash, Hash_adp_bry lang_hash, String domain, String raw, String lang_domain, int lang_actl, int domain_type) { diff --git a/400_xowa/src/gplx/xowa/wikis/domains/Xow_abrv_wm_tst.java b/400_xowa/src/gplx/xowa/wikis/domains/Xow_abrv_wm_tst.java index a611e76f5..6b1916a32 100644 --- a/400_xowa/src/gplx/xowa/wikis/domains/Xow_abrv_wm_tst.java +++ b/400_xowa/src/gplx/xowa/wikis/domains/Xow_abrv_wm_tst.java @@ -59,6 +59,16 @@ public class Xow_abrv_wm_tst { @Test public void To_abrv_by_lang() { fxt.Test_to_abrv_by_lang("en", Xow_domain_tid_.Tid__wikipedia, "enwiki"); } + @Test public void Wikimania() { + fxt.Test_parse("wikimaniawiki", Xol_lang_stub_.Id__intl, Xow_domain_tid_.Tid__wikimania); + fxt.Test_to_domain_itm("wikimaniawiki", "", "wikimania.wikimedia.org"); + fxt.Test_to_abrv("wikimania.wikimedia.org", "wikimaniawiki"); + } + @Test public void Wikisources() { + fxt.Test_parse("sourceswiki", Xol_lang_stub_.Id_en, Xow_domain_tid_.Tid__wikisource_org); + fxt.Test_to_domain_itm("sourceswiki", "", "wikisource.org"); + fxt.Test_to_abrv("wikisource.org", "sourceswiki"); + } } class Xow_abrv_wm_fxt { public void Test_parse(String raw, int expd_lang_id, int expd_domain_tid) { diff --git a/400_xowa/src/gplx/xowa/wikis/domains/Xow_domain_itm_.java b/400_xowa/src/gplx/xowa/wikis/domains/Xow_domain_itm_.java index bafe1f3c5..d1b97c6eb 100644 --- a/400_xowa/src/gplx/xowa/wikis/domains/Xow_domain_itm_.java +++ b/400_xowa/src/gplx/xowa/wikis/domains/Xow_domain_itm_.java @@ -26,45 +26,84 @@ public class Xow_domain_itm_ { ~www.~{type}.org EX: mediawiki; wikidata; */ int raw_len = raw.length; + + // find 1st dot int dot_0 = Bry_find_.Find_fwd(raw, Byte_ascii.Dot, 0, raw_len); - if (dot_0 == Bry_find_.Not_found) { // 0 dots; check for "home" + + // 0 dots; check for "home" + if (dot_0 == Bry_find_.Not_found) { return Bry_.Eq(raw, Xow_domain_tid_.Bry__home) ? Xow_domain_uid_.To_domain(Xow_domain_uid_.Tid_xowa) : new_other(raw); } + + // find 2nd dot int dot_1 = Bry_find_.Find_fwd(raw, Byte_ascii.Dot, dot_0 + 1, raw_len); - if (dot_1 == Bry_find_.Not_found) { // 1 dot; + + // 1 dot only -> return "wikisource.org" or other + if (dot_1 == Bry_find_.Not_found) { + // wikisource.org + if (Bry_.Eq(raw, Xow_domain_itm_.Bry__wikisource_org)) { + return Xow_domain_itm.new_(raw, Xow_domain_tid_.Tid__wikisource_org, Xol_lang_stub_.Key__unknown); + } + else { + return new_other(raw); + } + } + + // 2 dots + // seg_1 is type?; EX: ".wikipedia." + int seg_1_tid = Xow_domain_tid_.Get_type_as_tid(raw, dot_0 + 1, dot_1); + + // seg_1 is not a type -> return other + if (seg_1_tid == Xow_domain_tid_.Tid__null) { return new_other(raw); } - // 2 dots - int seg_1_tid = Xow_domain_tid_.Get_type_as_tid(raw, dot_0 + 1, dot_1); // parse middle; EX: ".wikipedia." - if (seg_1_tid == Xow_domain_tid_.Tid__null) return new_other(raw); // seg_1 is unknown; return other; + + // seg_1 is known switch (seg_1_tid) { + // ~{lang}.~{type}.org case Xow_domain_tid_.Tid__wikipedia: case Xow_domain_tid_.Tid__wiktionary: case Xow_domain_tid_.Tid__wikisource: case Xow_domain_tid_.Tid__wikibooks: - case Xow_domain_tid_.Tid__wikiversity: case Xow_domain_tid_.Tid__wikiquote: case Xow_domain_tid_.Tid__wikinews: case Xow_domain_tid_.Tid__wikivoyage: // ~{lang}.~{type}.org + case Xow_domain_tid_.Tid__wikiversity: case Xow_domain_tid_.Tid__wikiquote: case Xow_domain_tid_.Tid__wikinews: case Xow_domain_tid_.Tid__wikivoyage: byte[] lang_orig = Bry_.Mid(raw, 0, dot_0); byte[] lang_actl = Get_lang_code_for_mw_messages_file(lang_orig); - return Xow_domain_itm.new_(raw, seg_1_tid, lang_actl, lang_orig); // NOTE: seg_tids must match wiki_tids - case Xow_domain_tid_.Tid__wikidata: case Xow_domain_tid_.Tid__mediawiki:// ~www.~{type}.org + return Xow_domain_itm.new_(raw, seg_1_tid, lang_actl, lang_orig); // NOTE: seg_tids must match wiki_tids + + // ~www.~{type}.org + case Xow_domain_tid_.Tid__wikidata: case Xow_domain_tid_.Tid__mediawiki: return Xow_domain_itm.new_(raw, seg_1_tid, Xol_lang_stub_.Key__unknown); - case Xow_domain_tid_.Tid__wikimedia: // ~{type}.wikimedia.org; - int seg_0_tid = Xow_domain_tid_.Get_type_as_tid(raw, 0, dot_0); // try to get "incubator", "meta", etc.. - if (seg_0_tid == Xow_domain_tid_.Tid__null) { // not a known name; try language - byte[] lang_override = Xow_abrv_wm_override.To_lang_key_or_null(raw); // handle "lang-like" wikimedia domains like "ar.wikimedia.org" which is actually to "Argentina Wikimedia" + + // ~{type}.wikimedia.org; + case Xow_domain_tid_.Tid__wikimedia: + // seg_0 is type?; EX: "incubator", "meta", etc.. + int seg_0_tid = Xow_domain_tid_.Get_type_as_tid(raw, 0, dot_0); + + // seg_0 is not a type + if (seg_0_tid == Xow_domain_tid_.Tid__null) { + // seg_0 is language?; handles "lang-like" wikimedia domains like "ar.wikimedia.org" which is actually to "Argentina Wikimedia" + byte[] lang_override = Xow_abrv_wm_override.To_lang_key_or_null(raw); + + // seg_0 is not a language if (lang_override == null) { Xol_lang_stub wikimedia_lang = Xol_lang_stub_.Get_by_key_or_null(raw, 0, dot_0); return wikimedia_lang == null ? new_other(raw) : Xow_domain_itm.new_(raw, Xow_domain_tid_.Tid__wikimedia, wikimedia_lang.Key()); } + // seg_0 is a language; use language override; EX: "ar.wikimedia.org" else return Xow_domain_itm.new_(raw, Xow_domain_tid_.Tid__wikimedia, lang_override, Bry_.Mid(raw, 0, dot_0)); } + + // seg_0 is a type switch (seg_0_tid) { - case Xow_domain_tid_.Tid__commons: case Xow_domain_tid_.Tid__species: case Xow_domain_tid_.Tid__meta: case Xow_domain_tid_.Tid__incubator: + case Xow_domain_tid_.Tid__commons: case Xow_domain_tid_.Tid__species: case Xow_domain_tid_.Tid__meta: + case Xow_domain_tid_.Tid__incubator: case Xow_domain_tid_.Tid__wikimania: case Xow_domain_tid_.Tid__wikisource_org: case Xow_domain_tid_.Tid__wmfblog: - return Xow_domain_itm.new_(raw, seg_0_tid, Xol_lang_stub_.Key__unknown); // NOTE: seg_tids must match wiki_tids; NOTE: lang_key is "en" (really, "multi" but making things easier) + return Xow_domain_itm.new_(raw, seg_0_tid, Xol_lang_stub_.Key__unknown); // NOTE: seg_tids must match wiki_tids; NOTE: lang_key is "en" (really, "multi" but making things easier) default: return new_other(raw); } + + // unknown type case Xow_domain_tid_.Tid__other: default: return new_other(raw); @@ -130,6 +169,8 @@ public class Xow_domain_itm_ { , Str__mediawiki = "www.mediawiki.org" , Str__meta = "meta.wikimedia.org" , Str__incubator = "incubator.wikimedia.org" + , Str__wikimania = "wikimania.wikimedia.org" + , Str__wikisource_org = "wikisource.org" , Str__wmforg = "foundation.wikimedia.org" , Str__home = "home" ; @@ -141,6 +182,8 @@ public class Xow_domain_itm_ { , Bry__mediawiki = Bry_.new_a7(Str__mediawiki) , Bry__meta = Bry_.new_a7(Str__meta) , Bry__incubator = Bry_.new_a7(Str__incubator) + , Bry__wikimania = Bry_.new_a7(Str__wikimania) + , Bry__wikisource_org = Bry_.new_a7(Str__wikisource_org) , Bry__wmforg = Bry_.new_a7(Str__wmforg) , Bry__home = Bry_.new_a7(Str__home) , Bry__simplewiki = Bry_.new_a7("simple.wikipedia.org") diff --git a/400_xowa/src/gplx/xowa/wikis/domains/Xow_domain_itm_tst.java b/400_xowa/src/gplx/xowa/wikis/domains/Xow_domain_itm_tst.java index ece3a194d..c2ffbbe5f 100644 --- a/400_xowa/src/gplx/xowa/wikis/domains/Xow_domain_itm_tst.java +++ b/400_xowa/src/gplx/xowa/wikis/domains/Xow_domain_itm_tst.java @@ -15,7 +15,7 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt */ package gplx.xowa.wikis.domains; import gplx.*; import gplx.xowa.*; import gplx.xowa.wikis.*; import org.junit.*; import gplx.core.tests.*; -public class Xow_domain_itm_tst { +public class Xow_domain_itm_tst { private final Xow_domain_fxt fxt = new Xow_domain_fxt(); @Test public void Parse_en_wikipedia() {fxt.Test_parse("en.wikipedia.org" , "en" , "en" , Xow_domain_tid_.Tid__wikipedia);} @Test public void Parse_fr_wikipedia() {fxt.Test_parse("fr.wikipedia.org" , "fr" , "fr" , Xow_domain_tid_.Tid__wikipedia);} @@ -28,6 +28,8 @@ public class Xow_domain_itm_tst { @Test public void Parse_other() {fxt.Test_parse("other.wiki" , "" , "" , Xow_domain_tid_.Tid__other);} @Test public void Parse_ua_wikimedia_org() {fxt.Test_parse("ua.wikimedia.org" , "ua" , "uk" , Xow_domain_tid_.Tid__wikimedia);} @Test public void Parse_ar_wikimedia_org() {fxt.Test_parse("ar.wikimedia.org" , "ar" , "es" , Xow_domain_tid_.Tid__wikimedia);} + @Test public void Parse_wikimania() {fxt.Test_parse("wikimania.wikimedia.org" , "" , "" , Xow_domain_tid_.Tid__wikimania);} + @Test public void Parse_wikisource_org() {fxt.Test_parse("wikisource.org" , "" , "" , Xow_domain_tid_.Tid__wikisource_org);} @Test public void Parse_blank() {fxt.Test_parse("" , "" , "" , Xow_domain_tid_.Tid__other);} @Test public void Match_lang() { fxt.Test__match_lang_y("en", "en.wikipedia.org", "en.wiktionary.org", "simple.wikipedia.org", "species.wikimedia.org", "www.wikidata.org", "commons.wikimedia.org"); diff --git a/400_xowa/src/gplx/xowa/wikis/domains/Xow_domain_regy.java b/400_xowa/src/gplx/xowa/wikis/domains/Xow_domain_regy.java index 6d8163ef9..beffa76cb 100644 --- a/400_xowa/src/gplx/xowa/wikis/domains/Xow_domain_regy.java +++ b/400_xowa/src/gplx/xowa/wikis/domains/Xow_domain_regy.java @@ -16,651 +16,566 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt package gplx.xowa.wikis.domains; import gplx.*; import gplx.xowa.*; import gplx.xowa.wikis.*; public class Xow_domain_regy { public static String[] All = new String[] -{ "commons.wikimedia.org" -, "species.wikimedia.org" -, "meta.wikimedia.org" -, "incubator.wikimedia.org" -, "www.wikidata.org" -, "www.mediawiki.org" -, "foundation.wikimedia.org" -, "en.wikipedia.org" -, "en.wiktionary.org" -, "en.wikisource.org" -, "en.wikibooks.org" -, "en.wikiversity.org" -, "en.wikiquote.org" -, "en.wikinews.org" -, "en.wikivoyage.org" -, "de.wikipedia.org" -, "de.wiktionary.org" -, "de.wikisource.org" -, "de.wikibooks.org" -, "de.wikiversity.org" -, "de.wikiquote.org" -, "de.wikinews.org" -, "de.wikivoyage.org" -, "es.wikipedia.org" -, "es.wiktionary.org" -, "es.wikisource.org" -, "es.wikibooks.org" -, "es.wikiversity.org" -, "es.wikiquote.org" -, "es.wikinews.org" -, "es.wikivoyage.org" -, "fr.wikipedia.org" -, "fr.wiktionary.org" -, "fr.wikisource.org" -, "fr.wikibooks.org" -, "fr.wikiversity.org" -, "fr.wikiquote.org" -, "fr.wikinews.org" -, "fr.wikivoyage.org" -, "it.wikipedia.org" -, "it.wiktionary.org" -, "it.wikisource.org" -, "it.wikibooks.org" -, "it.wikiversity.org" -, "it.wikiquote.org" -, "it.wikinews.org" -, "it.wikivoyage.org" -, "ja.wikipedia.org" -, "ja.wiktionary.org" -, "ja.wikisource.org" -, "ja.wikibooks.org" -, "ja.wikiversity.org" -, "ja.wikiquote.org" -, "ja.wikinews.org" -, "nl.wikipedia.org" -, "nl.wiktionary.org" -, "nl.wikisource.org" -, "nl.wikibooks.org" -, "nl.wikiquote.org" -, "nl.wikinews.org" -, "nl.wikivoyage.org" -, "nl.wikimedia.org" -, "pl.wikipedia.org" -, "pl.wiktionary.org" -, "pl.wikisource.org" -, "pl.wikibooks.org" -, "pl.wikiquote.org" -, "pl.wikinews.org" -, "pl.wikivoyage.org" -, "pl.wikimedia.org" -, "pt.wikipedia.org" -, "pt.wiktionary.org" -, "pt.wikisource.org" -, "pt.wikibooks.org" -, "pt.wikiversity.org" -, "pt.wikiquote.org" -, "pt.wikinews.org" -, "pt.wikivoyage.org" -, "ru.wikipedia.org" -, "ru.wiktionary.org" -, "ru.wikisource.org" -, "ru.wikibooks.org" -, "ru.wikiversity.org" -, "ru.wikiquote.org" -, "ru.wikinews.org" -, "ru.wikivoyage.org" -, "ru.wikimedia.org" -, "ar.wikipedia.org" -, "ar.wiktionary.org" -, "ar.wikisource.org" -, "ar.wikibooks.org" -, "ar.wikiversity.org" -, "ar.wikiquote.org" -, "ar.wikinews.org" -, "ar.wikimedia.org" -, "ca.wikipedia.org" -, "ca.wiktionary.org" -, "ca.wikisource.org" -, "ca.wikibooks.org" -, "ca.wikiquote.org" -, "ca.wikinews.org" -, "ca.wikimedia.org" -, "cs.wikipedia.org" -, "cs.wiktionary.org" -, "cs.wikisource.org" -, "cs.wikibooks.org" -, "cs.wikiversity.org" -, "cs.wikiquote.org" -, "cs.wikinews.org" -, "da.wikipedia.org" -, "da.wiktionary.org" -, "da.wikisource.org" -, "da.wikibooks.org" -, "da.wikiquote.org" -, "eo.wikipedia.org" -, "eo.wiktionary.org" -, "eo.wikisource.org" -, "eo.wikibooks.org" -, "eo.wikiquote.org" -, "eo.wikinews.org" -, "fa.wikipedia.org" -, "fa.wiktionary.org" -, "fa.wikisource.org" -, "fa.wikibooks.org" -, "fa.wikiquote.org" -, "fa.wikinews.org" -, "fa.wikivoyage.org" -, "fi.wikipedia.org" -, "fi.wiktionary.org" -, "fi.wikisource.org" -, "fi.wikivoyage.org" -, "fi.wikibooks.org" -, "fi.wikiversity.org" -, "fi.wikiquote.org" -, "fi.wikinews.org" -, "fi.wikimedia.org" -, "hu.wikipedia.org" -, "hu.wiktionary.org" -, "hu.wikisource.org" -, "hu.wikibooks.org" -, "hu.wikiquote.org" -, "hu.wikinews.org" -, "id.wikipedia.org" -, "id.wiktionary.org" -, "id.wikisource.org" -, "id.wikibooks.org" -, "id.wikiquote.org" -, "kk.wikipedia.org" -, "kk.wiktionary.org" -, "kk.wikibooks.org" -, "kk.wikiquote.org" -, "ko.wikipedia.org" -, "ko.wiktionary.org" -, "ko.wikisource.org" -, "ko.wikibooks.org" -, "ko.wikiversity.org" -, "ko.wikiquote.org" -, "ko.wikinews.org" -, "lt.wikipedia.org" -, "lt.wiktionary.org" -, "lt.wikisource.org" -, "lt.wikibooks.org" -, "lt.wikiquote.org" -, "no.wikipedia.org" -, "no.wiktionary.org" -, "no.wikisource.org" -, "no.wikibooks.org" -, "no.wikiquote.org" -, "no.wikinews.org" -, "no.wikimedia.org" -, "ro.wikipedia.org" -, "ro.wiktionary.org" -, "ro.wikisource.org" -, "ro.wikibooks.org" -, "ro.wikiquote.org" -, "ro.wikinews.org" -, "ro.wikivoyage.org" -, "sk.wikipedia.org" -, "sk.wiktionary.org" -, "sk.wikisource.org" -, "sk.wikibooks.org" -, "sk.wikiquote.org" -, "sr.wikipedia.org" -, "sr.wiktionary.org" -, "sr.wikisource.org" -, "sr.wikibooks.org" -, "sr.wikiquote.org" -, "sr.wikinews.org" -, "sv.wikipedia.org" -, "sv.wiktionary.org" -, "sv.wikisource.org" -, "sv.wikibooks.org" -, "sv.wikiversity.org" -, "sv.wikiquote.org" -, "sv.wikinews.org" -, "sv.wikivoyage.org" -, "tr.wikipedia.org" -, "tr.wiktionary.org" -, "tr.wikisource.org" -, "tr.wikibooks.org" -, "tr.wikiquote.org" -, "tr.wikinews.org" -, "tr.wikimedia.org" -, "uk.wikipedia.org" -, "uk.wiktionary.org" -, "uk.wikisource.org" -, "uk.wikibooks.org" -, "uk.wikiquote.org" -, "uk.wikinews.org" -, "uk.wikivoyage.org" -, "ua.wikimedia.org" -, "vi.wikipedia.org" -, "vi.wiktionary.org" -, "vi.wikisource.org" -, "vi.wikibooks.org" -, "vi.wikiquote.org" -, "vi.wikivoyage.org" -, "zh.wikipedia.org" -, "zh.wiktionary.org" -, "zh.wikisource.org" -, "zh.wikibooks.org" -, "zh.wikiquote.org" -, "zh.wikinews.org" -, "zh.wikivoyage.org" -, "bg.wikipedia.org" -, "bg.wiktionary.org" -, "bg.wikisource.org" -, "bg.wikibooks.org" -, "bg.wikiquote.org" -, "bg.wikinews.org" -, "el.wikipedia.org" -, "el.wiktionary.org" -, "el.wikisource.org" -, "el.wikibooks.org" -, "el.wikiversity.org" -, "el.wikiquote.org" -, "el.wikinews.org" -, "el.wikivoyage.org" -, "et.wikipedia.org" -, "et.wiktionary.org" -, "et.wikisource.org" -, "et.wikibooks.org" -, "et.wikiquote.org" -, "et.wikimedia.org" -, "eu.wikipedia.org" -, "eu.wiktionary.org" -, "eu.wikibooks.org" -, "eu.wikiquote.org" -, "gl.wikipedia.org" -, "gl.wiktionary.org" -, "gl.wikisource.org" -, "gl.wikibooks.org" -, "gl.wikiquote.org" -, "he.wikipedia.org" -, "he.wiktionary.org" -, "he.wikisource.org" -, "he.wikibooks.org" -, "he.wikiquote.org" -, "he.wikinews.org" -, "he.wikivoyage.org" -, "hr.wikipedia.org" -, "hr.wiktionary.org" -, "hr.wikisource.org" -, "hr.wikibooks.org" -, "hr.wikiquote.org" -, "ms.wikipedia.org" -, "ms.wiktionary.org" -, "ms.wikibooks.org" -, "nn.wikipedia.org" -, "nn.wiktionary.org" -, "nn.wikiquote.org" -, "sh.wikipedia.org" -, "sh.wiktionary.org" -, "simple.wikipedia.org" -, "simple.wiktionary.org" -, "simple.wikibooks.org" -, "simple.wikiquote.org" -, "sl.wikipedia.org" -, "sl.wiktionary.org" -, "sl.wikisource.org" -, "sl.wikibooks.org" -, "sl.wikiversity.org" -, "sl.wikiquote.org" -, "th.wikipedia.org" -, "th.wiktionary.org" -, "th.wikisource.org" -, "th.wikibooks.org" -, "th.wikiquote.org" -, "th.wikinews.org" -, "vo.wikipedia.org" -, "vo.wiktionary.org" -, "vo.wikibooks.org" -, "vo.wikiquote.org" -, "hi.wikipedia.org" -, "hi.wiktionary.org" -, "hi.wikibooks.org" -, "hi.wikiquote.org" -, "ia.wikipedia.org" -, "ia.wiktionary.org" -, "ia.wikibooks.org" -, "la.wikipedia.org" -, "la.wiktionary.org" -, "la.wikisource.org" -, "la.wikibooks.org" -, "la.wikiquote.org" +{ "aa.wikibooks.org" , "aa.wikipedia.org" , "aa.wiktionary.org" -, "aa.wikibooks.org" , "ab.wikipedia.org" , "ab.wiktionary.org" , "ace.wikipedia.org" -, "af.wikipedia.org" -, "af.wiktionary.org" , "af.wikibooks.org" +, "af.wikipedia.org" , "af.wikiquote.org" +, "af.wiktionary.org" +, "ak.wikibooks.org" , "ak.wikipedia.org" , "ak.wiktionary.org" -, "ak.wikibooks.org" , "als.wikipedia.org" , "am.wikipedia.org" -, "am.wiktionary.org" , "am.wikiquote.org" +, "am.wiktionary.org" , "an.wikipedia.org" , "an.wiktionary.org" -, "ang.wikipedia.org" -, "ang.wiktionary.org" -, "ang.wikisource.org" , "ang.wikibooks.org" +, "ang.wikipedia.org" , "ang.wikiquote.org" +, "ang.wikisource.org" +, "ang.wiktionary.org" +, "ar.wikibooks.org" +, "ar.wikimedia.org" +, "ar.wikinews.org" +, "ar.wikipedia.org" +, "ar.wikiquote.org" +, "ar.wikisource.org" +, "ar.wikiversity.org" +, "ar.wiktionary.org" , "arc.wikipedia.org" , "arz.wikipedia.org" -, "as.wikipedia.org" -, "as.wiktionary.org" -, "as.wikisource.org" , "as.wikibooks.org" -, "ast.wikipedia.org" -, "ast.wiktionary.org" +, "as.wikipedia.org" +, "as.wikisource.org" +, "as.wiktionary.org" , "ast.wikibooks.org" +, "ast.wikipedia.org" , "ast.wikiquote.org" +, "ast.wiktionary.org" +, "atj.wikipedia.org" , "av.wikipedia.org" , "av.wiktionary.org" +, "ay.wikibooks.org" , "ay.wikipedia.org" , "ay.wiktionary.org" -, "ay.wikibooks.org" -, "az.wikipedia.org" -, "az.wiktionary.org" -, "az.wikisource.org" , "az.wikibooks.org" +, "az.wikipedia.org" , "az.wikiquote.org" -, "ba.wikipedia.org" +, "az.wikisource.org" +, "az.wiktionary.org" +, "azb.wikipedia.org" , "ba.wikibooks.org" +, "ba.wikipedia.org" , "bar.wikipedia.org" , "bat-smg.wikipedia.org" , "bcl.wikipedia.org" -, "be.wikipedia.org" -, "be.wiktionary.org" -, "be.wikisource.org" -, "be.wikibooks.org" -, "be.wikiquote.org" -, "be.wikimedia.org" , "be-x-old.wikipedia.org" +, "be.wikibooks.org" +, "be.wikimedia.org" +, "be.wikipedia.org" +, "be.wikiquote.org" +, "be.wikisource.org" +, "be.wiktionary.org" +, "bg.wikibooks.org" +, "bg.wikinews.org" +, "bg.wikipedia.org" +, "bg.wikiquote.org" +, "bg.wikisource.org" +, "bg.wiktionary.org" , "bh.wikipedia.org" , "bh.wiktionary.org" +, "bi.wikibooks.org" , "bi.wikipedia.org" , "bi.wiktionary.org" -, "bi.wikibooks.org" , "bjn.wikipedia.org" -, "bm.wikipedia.org" -, "bm.wiktionary.org" , "bm.wikibooks.org" +, "bm.wikipedia.org" , "bm.wikiquote.org" +, "bm.wiktionary.org" +, "bn.wikibooks.org" , "bn.wikipedia.org" +, "bn.wikisource.org" , "bn.wikivoyage.org" , "bn.wiktionary.org" -, "bn.wikisource.org" -, "bn.wikibooks.org" +, "bo.wikibooks.org" , "bo.wikipedia.org" , "bo.wiktionary.org" -, "bo.wikibooks.org" , "bpy.wikipedia.org" -, "br.wikipedia.org" -, "br.wiktionary.org" -, "br.wikisource.org" -, "br.wikiquote.org" , "br.wikimedia.org" -, "bs.wikipedia.org" -, "bs.wiktionary.org" -, "bs.wikisource.org" +, "br.wikipedia.org" +, "br.wikiquote.org" +, "br.wikisource.org" +, "br.wiktionary.org" , "bs.wikibooks.org" -, "bs.wikiquote.org" , "bs.wikinews.org" +, "bs.wikipedia.org" +, "bs.wikiquote.org" +, "bs.wikisource.org" +, "bs.wiktionary.org" , "bug.wikipedia.org" , "bxr.wikipedia.org" +, "ca.wikibooks.org" +, "ca.wikimedia.org" +, "ca.wikinews.org" +, "ca.wikipedia.org" +, "ca.wikiquote.org" +, "ca.wikisource.org" +, "ca.wiktionary.org" , "cbk-zam.wikipedia.org" , "cdo.wikipedia.org" , "ce.wikipedia.org" , "ceb.wikipedia.org" +, "ch.wikibooks.org" , "ch.wikipedia.org" , "ch.wiktionary.org" -, "ch.wikibooks.org" , "cho.wikipedia.org" , "chr.wikipedia.org" , "chr.wiktionary.org" , "chy.wikipedia.org" , "ckb.wikipedia.org" -, "co.wikipedia.org" -, "co.wiktionary.org" , "co.wikibooks.org" -, "co.wikiquote.org" , "co.wikimedia.org" +, "co.wikipedia.org" +, "co.wikiquote.org" +, "co.wiktionary.org" +, "commons.wikimedia.org" , "cr.wikipedia.org" -, "cr.wiktionary.org" , "cr.wikiquote.org" +, "cr.wiktionary.org" , "crh.wikipedia.org" +, "cs.wikibooks.org" +, "cs.wikinews.org" +, "cs.wikipedia.org" +, "cs.wikiquote.org" +, "cs.wikisource.org" +, "cs.wikiversity.org" +, "cs.wiktionary.org" , "csb.wikipedia.org" , "csb.wiktionary.org" , "cu.wikipedia.org" -, "cv.wikipedia.org" , "cv.wikibooks.org" -, "cy.wikipedia.org" -, "cy.wiktionary.org" -, "cy.wikisource.org" +, "cv.wikipedia.org" , "cy.wikibooks.org" +, "cy.wikipedia.org" , "cy.wikiquote.org" +, "cy.wikisource.org" +, "cy.wiktionary.org" +, "da.wikibooks.org" +, "da.wikipedia.org" +, "da.wikiquote.org" +, "da.wikisource.org" +, "da.wiktionary.org" +, "de.wikibooks.org" +, "de.wikinews.org" +, "de.wikipedia.org" +, "de.wikiquote.org" +, "de.wikisource.org" +, "de.wikiversity.org" +, "de.wikivoyage.org" +, "de.wiktionary.org" +, "din.wikipedia.org" , "diq.wikipedia.org" , "dsb.wikipedia.org" +, "dty.wikipedia.org" , "dv.wikipedia.org" , "dv.wiktionary.org" , "dz.wikipedia.org" , "dz.wiktionary.org" , "ee.wikipedia.org" +, "el.wikibooks.org" +, "el.wikinews.org" +, "el.wikipedia.org" +, "el.wikiquote.org" +, "el.wikisource.org" +, "el.wikiversity.org" +, "el.wikivoyage.org" +, "el.wiktionary.org" , "eml.wikipedia.org" +, "en.wikibooks.org" +, "en.wikinews.org" +, "en.wikipedia.org" +, "en.wikiquote.org" +, "en.wikisource.org" +, "en.wikiversity.org" +, "en.wikivoyage.org" +, "en.wiktionary.org" +, "eo.wikibooks.org" +, "eo.wikinews.org" +, "eo.wikipedia.org" +, "eo.wikiquote.org" +, "eo.wikisource.org" +, "eo.wiktionary.org" +, "es.wikibooks.org" +, "es.wikinews.org" +, "es.wikipedia.org" +, "es.wikiquote.org" +, "es.wikisource.org" +, "es.wikiversity.org" +, "es.wikivoyage.org" +, "es.wiktionary.org" +, "et.wikibooks.org" +, "et.wikimedia.org" +, "et.wikipedia.org" +, "et.wikiquote.org" +, "et.wikisource.org" +, "et.wiktionary.org" +, "eu.wikibooks.org" +, "eu.wikipedia.org" +, "eu.wikiquote.org" +, "eu.wikisource.org" +, "eu.wiktionary.org" , "ext.wikipedia.org" +, "fa.wikibooks.org" +, "fa.wikinews.org" +, "fa.wikipedia.org" +, "fa.wikiquote.org" +, "fa.wikisource.org" +, "fa.wikivoyage.org" +, "fa.wiktionary.org" , "ff.wikipedia.org" +, "fi.wikibooks.org" +, "fi.wikimedia.org" +, "fi.wikinews.org" +, "fi.wikipedia.org" +, "fi.wikiquote.org" +, "fi.wikisource.org" +, "fi.wikiversity.org" +, "fi.wikivoyage.org" +, "fi.wiktionary.org" , "fiu-vro.wikipedia.org" , "fj.wikipedia.org" , "fj.wiktionary.org" , "fo.wikipedia.org" -, "fo.wiktionary.org" , "fo.wikisource.org" +, "fo.wiktionary.org" +, "foundation.wikimedia.org" +, "fr.wikibooks.org" +, "fr.wikinews.org" +, "fr.wikipedia.org" +, "fr.wikiquote.org" +, "fr.wikisource.org" +, "fr.wikiversity.org" +, "fr.wikivoyage.org" +, "fr.wiktionary.org" , "frp.wikipedia.org" , "frr.wikipedia.org" , "fur.wikipedia.org" +, "fy.wikibooks.org" , "fy.wikipedia.org" , "fy.wiktionary.org" -, "fy.wikibooks.org" -, "ga.wikipedia.org" -, "ga.wiktionary.org" , "ga.wikibooks.org" +, "ga.wikipedia.org" , "ga.wikiquote.org" +, "ga.wiktionary.org" , "gag.wikipedia.org" , "gan.wikipedia.org" , "gd.wikipedia.org" , "gd.wiktionary.org" +, "gl.wikibooks.org" +, "gl.wikipedia.org" +, "gl.wikiquote.org" +, "gl.wikisource.org" +, "gl.wiktionary.org" , "glk.wikipedia.org" +, "gn.wikibooks.org" , "gn.wikipedia.org" , "gn.wiktionary.org" -, "gn.wikibooks.org" -, "got.wikipedia.org" +, "gom.wikipedia.org" +, "gor.wikipedia.org" , "got.wikibooks.org" -, "gu.wikipedia.org" -, "gu.wiktionary.org" -, "gu.wikisource.org" +, "got.wikipedia.org" , "gu.wikibooks.org" +, "gu.wikipedia.org" , "gu.wikiquote.org" +, "gu.wikisource.org" +, "gu.wiktionary.org" , "gv.wikipedia.org" , "gv.wiktionary.org" , "ha.wikipedia.org" , "ha.wiktionary.org" , "hak.wikipedia.org" , "haw.wikipedia.org" +, "he.wikibooks.org" +, "he.wikinews.org" +, "he.wikipedia.org" +, "he.wikiquote.org" +, "he.wikisource.org" +, "he.wikivoyage.org" +, "he.wiktionary.org" +, "hi.wikibooks.org" +, "hi.wikipedia.org" +, "hi.wikiquote.org" +, "hi.wikiversity.org" +, "hi.wikivoyage.org" +, "hi.wiktionary.org" , "hif.wikipedia.org" +, "hif.wiktionary.org" , "ho.wikipedia.org" +, "hr.wikibooks.org" +, "hr.wikipedia.org" +, "hr.wikiquote.org" +, "hr.wikisource.org" +, "hr.wiktionary.org" , "hsb.wikipedia.org" , "hsb.wiktionary.org" , "ht.wikipedia.org" , "ht.wikisource.org" -, "hy.wikipedia.org" -, "hy.wiktionary.org" -, "hy.wikisource.org" +, "hu.wikibooks.org" +, "hu.wikinews.org" +, "hu.wikipedia.org" +, "hu.wikiquote.org" +, "hu.wikisource.org" +, "hu.wiktionary.org" , "hy.wikibooks.org" +, "hy.wikipedia.org" , "hy.wikiquote.org" +, "hy.wikisource.org" +, "hy.wiktionary.org" +, "hyw.wikipedia.org" , "hz.wikipedia.org" +, "ia.wikibooks.org" +, "ia.wikipedia.org" +, "ia.wiktionary.org" +, "id.wikibooks.org" +, "id.wikipedia.org" +, "id.wikiquote.org" +, "id.wikisource.org" +, "id.wiktionary.org" +, "ie.wikibooks.org" , "ie.wikipedia.org" , "ie.wiktionary.org" -, "ie.wikibooks.org" , "ig.wikipedia.org" , "ii.wikipedia.org" , "ik.wikipedia.org" , "ik.wiktionary.org" , "ilo.wikipedia.org" +, "incubator.wikimedia.org" +, "inh.wikipedia.org" , "io.wikipedia.org" , "io.wiktionary.org" -, "is.wikipedia.org" -, "is.wiktionary.org" -, "is.wikisource.org" , "is.wikibooks.org" +, "is.wikipedia.org" , "is.wikiquote.org" +, "is.wikisource.org" +, "is.wiktionary.org" +, "it.wikibooks.org" +, "it.wikinews.org" +, "it.wikipedia.org" +, "it.wikiquote.org" +, "it.wikisource.org" +, "it.wikiversity.org" +, "it.wikivoyage.org" +, "it.wiktionary.org" , "iu.wikipedia.org" , "iu.wiktionary.org" +, "ja.wikibooks.org" +, "ja.wikinews.org" +, "ja.wikipedia.org" +, "ja.wikiquote.org" +, "ja.wikisource.org" +, "ja.wikiversity.org" +, "ja.wiktionary.org" +, "jam.wikipedia.org" , "jbo.wikipedia.org" , "jbo.wiktionary.org" , "jv.wikipedia.org" , "jv.wiktionary.org" -, "ka.wikipedia.org" -, "ka.wiktionary.org" , "ka.wikibooks.org" +, "ka.wikipedia.org" , "ka.wikiquote.org" +, "ka.wiktionary.org" , "kaa.wikipedia.org" , "kab.wikipedia.org" , "kbd.wikipedia.org" +, "kbp.wikipedia.org" , "kg.wikipedia.org" , "ki.wikipedia.org" , "kj.wikipedia.org" +, "kk.wikibooks.org" +, "kk.wikipedia.org" +, "kk.wikiquote.org" +, "kk.wiktionary.org" , "kl.wikipedia.org" , "kl.wiktionary.org" +, "km.wikibooks.org" , "km.wikipedia.org" , "km.wiktionary.org" -, "km.wikibooks.org" -, "kn.wikipedia.org" -, "kn.wiktionary.org" -, "kn.wikisource.org" , "kn.wikibooks.org" +, "kn.wikipedia.org" , "kn.wikiquote.org" +, "kn.wikisource.org" +, "kn.wiktionary.org" +, "ko.wikibooks.org" +, "ko.wikinews.org" +, "ko.wikipedia.org" +, "ko.wikiquote.org" +, "ko.wikisource.org" +, "ko.wikiversity.org" +, "ko.wiktionary.org" , "koi.wikipedia.org" , "kr.wikipedia.org" , "kr.wikiquote.org" , "krc.wikipedia.org" -, "ks.wikipedia.org" -, "ks.wiktionary.org" , "ks.wikibooks.org" +, "ks.wikipedia.org" , "ks.wikiquote.org" +, "ks.wiktionary.org" , "ksh.wikipedia.org" -, "ku.wikipedia.org" -, "ku.wiktionary.org" , "ku.wikibooks.org" +, "ku.wikipedia.org" , "ku.wikiquote.org" +, "ku.wiktionary.org" , "kv.wikipedia.org" , "kw.wikipedia.org" -, "kw.wiktionary.org" , "kw.wikiquote.org" -, "ky.wikipedia.org" -, "ky.wiktionary.org" +, "kw.wiktionary.org" , "ky.wikibooks.org" +, "ky.wikipedia.org" , "ky.wikiquote.org" +, "ky.wiktionary.org" +, "la.wikibooks.org" +, "la.wikipedia.org" +, "la.wikiquote.org" +, "la.wikisource.org" +, "la.wiktionary.org" , "lad.wikipedia.org" -, "lb.wikipedia.org" -, "lb.wiktionary.org" , "lb.wikibooks.org" +, "lb.wikipedia.org" , "lb.wikiquote.org" +, "lb.wiktionary.org" , "lbe.wikipedia.org" , "lez.wikipedia.org" +, "lfn.wikipedia.org" , "lg.wikipedia.org" -, "li.wikipedia.org" -, "li.wiktionary.org" -, "li.wikisource.org" , "li.wikibooks.org" +, "li.wikinews.org" +, "li.wikipedia.org" , "li.wikiquote.org" +, "li.wikisource.org" +, "li.wiktionary.org" , "lij.wikipedia.org" , "lmo.wikipedia.org" +, "ln.wikibooks.org" , "ln.wikipedia.org" , "ln.wiktionary.org" -, "ln.wikibooks.org" , "lo.wikipedia.org" , "lo.wiktionary.org" +, "lrc.wikipedia.org" +, "lt.wikibooks.org" +, "lt.wikipedia.org" +, "lt.wikiquote.org" +, "lt.wikisource.org" +, "lt.wiktionary.org" , "ltg.wikipedia.org" +, "lv.wikibooks.org" , "lv.wikipedia.org" , "lv.wiktionary.org" -, "lv.wikibooks.org" , "mai.wikipedia.org" , "map-bms.wikipedia.org" , "mdf.wikipedia.org" +, "meta.wikimedia.org" +, "mg.wikibooks.org" , "mg.wikipedia.org" , "mg.wiktionary.org" -, "mg.wikibooks.org" , "mh.wikipedia.org" , "mh.wiktionary.org" , "mhr.wikipedia.org" +, "mi.wikibooks.org" , "mi.wikipedia.org" , "mi.wiktionary.org" -, "mi.wikibooks.org" , "min.wikipedia.org" -, "mk.wikipedia.org" -, "mk.wiktionary.org" -, "mk.wikisource.org" , "mk.wikibooks.org" , "mk.wikimedia.org" -, "ml.wikipedia.org" -, "ml.wiktionary.org" -, "ml.wikisource.org" +, "mk.wikipedia.org" +, "mk.wikisource.org" +, "mk.wiktionary.org" , "ml.wikibooks.org" +, "ml.wikipedia.org" , "ml.wikiquote.org" +, "ml.wikisource.org" +, "ml.wiktionary.org" +, "mn.wikibooks.org" , "mn.wikipedia.org" , "mn.wiktionary.org" -, "mn.wikibooks.org" -, "mr.wikipedia.org" -, "mr.wiktionary.org" -, "mr.wikisource.org" , "mr.wikibooks.org" +, "mr.wikipedia.org" , "mr.wikiquote.org" +, "mr.wikisource.org" +, "mr.wiktionary.org" , "mrj.wikipedia.org" +, "ms.wikibooks.org" +, "ms.wikipedia.org" +, "ms.wiktionary.org" , "mt.wikipedia.org" , "mt.wiktionary.org" , "mus.wikipedia.org" , "mwl.wikipedia.org" +, "my.wikibooks.org" , "my.wikipedia.org" , "my.wiktionary.org" -, "my.wikibooks.org" , "myv.wikipedia.org" , "mzn.wikipedia.org" -, "na.wikipedia.org" -, "na.wiktionary.org" , "na.wikibooks.org" +, "na.wikipedia.org" , "na.wikiquote.org" +, "na.wiktionary.org" +, "nah.wikibooks.org" , "nah.wikipedia.org" , "nah.wiktionary.org" -, "nah.wikibooks.org" , "nap.wikipedia.org" -, "nds.wikipedia.org" -, "nds.wiktionary.org" -, "nds.wikibooks.org" -, "nds.wikiquote.org" , "nds-nl.wikipedia.org" +, "nds.wikibooks.org" +, "nds.wikipedia.org" +, "nds.wikiquote.org" +, "nds.wiktionary.org" +, "ne.wikibooks.org" , "ne.wikipedia.org" , "ne.wiktionary.org" -, "ne.wikibooks.org" , "new.wikipedia.org" , "ng.wikipedia.org" +, "nl.wikibooks.org" +, "nl.wikimedia.org" +, "nl.wikinews.org" +, "nl.wikipedia.org" +, "nl.wikiquote.org" +, "nl.wikisource.org" +, "nl.wikivoyage.org" +, "nl.wiktionary.org" +, "nn.wikipedia.org" +, "nn.wikiquote.org" +, "nn.wiktionary.org" +, "no.wikibooks.org" +, "no.wikimedia.org" +, "no.wikinews.org" +, "no.wikipedia.org" +, "no.wikiquote.org" +, "no.wikisource.org" +, "no.wiktionary.org" , "nov.wikipedia.org" , "nrm.wikipedia.org" , "nso.wikipedia.org" , "nv.wikipedia.org" , "ny.wikipedia.org" +, "oc.wikibooks.org" , "oc.wikipedia.org" , "oc.wiktionary.org" -, "oc.wikibooks.org" +, "olo.wikipedia.org" , "om.wikipedia.org" , "om.wiktionary.org" , "or.wikipedia.org" -, "or.wiktionary.org" , "or.wikisource.org" +, "or.wiktionary.org" , "os.wikipedia.org" -, "pa.wikipedia.org" -, "pa.wiktionary.org" , "pa.wikibooks.org" +, "pa.wikipedia.org" +, "pa.wikisource.org" +, "pa.wiktionary.org" , "pag.wikipedia.org" , "pam.wikipedia.org" , "pap.wikipedia.org" @@ -670,194 +585,285 @@ public class Xow_domain_regy { , "pi.wikipedia.org" , "pi.wiktionary.org" , "pih.wikipedia.org" +, "pl.wikibooks.org" +, "pl.wikimedia.org" +, "pl.wikinews.org" +, "pl.wikipedia.org" +, "pl.wikiquote.org" +, "pl.wikisource.org" +, "pl.wikivoyage.org" +, "pl.wiktionary.org" , "pms.wikipedia.org" +, "pms.wikisource.org" , "pnb.wikipedia.org" , "pnb.wiktionary.org" , "pnt.wikipedia.org" -, "ps.wikipedia.org" -, "ps.wiktionary.org" , "ps.wikibooks.org" -, "qu.wikipedia.org" -, "qu.wiktionary.org" +, "ps.wikipedia.org" +, "ps.wikivoyage.org" +, "ps.wiktionary.org" +, "pt.wikibooks.org" +, "pt.wikinews.org" +, "pt.wikipedia.org" +, "pt.wikiquote.org" +, "pt.wikisource.org" +, "pt.wikiversity.org" +, "pt.wikivoyage.org" +, "pt.wiktionary.org" , "qu.wikibooks.org" +, "qu.wikipedia.org" , "qu.wikiquote.org" +, "qu.wiktionary.org" +, "rm.wikibooks.org" , "rm.wikipedia.org" , "rm.wiktionary.org" -, "rm.wikibooks.org" , "rmy.wikipedia.org" , "rn.wikipedia.org" , "rn.wiktionary.org" +, "ro.wikibooks.org" +, "ro.wikinews.org" +, "ro.wikipedia.org" +, "ro.wikiquote.org" +, "ro.wikisource.org" +, "ro.wikivoyage.org" +, "ro.wiktionary.org" , "roa-rup.wikipedia.org" , "roa-rup.wiktionary.org" , "roa-tara.wikipedia.org" +, "ru.wikibooks.org" +, "ru.wikimedia.org" +, "ru.wikinews.org" +, "ru.wikipedia.org" +, "ru.wikiquote.org" +, "ru.wikisource.org" +, "ru.wikiversity.org" +, "ru.wikivoyage.org" +, "ru.wiktionary.org" , "rue.wikipedia.org" , "rw.wikipedia.org" , "rw.wiktionary.org" -, "sa.wikipedia.org" -, "sa.wiktionary.org" -, "sa.wikisource.org" , "sa.wikibooks.org" +, "sa.wikipedia.org" , "sa.wikiquote.org" +, "sa.wikisource.org" +, "sa.wiktionary.org" , "sah.wikipedia.org" +, "sah.wikiquote.org" , "sah.wikisource.org" +, "sat.wikipedia.org" , "sc.wikipedia.org" , "sc.wiktionary.org" , "scn.wikipedia.org" , "scn.wiktionary.org" , "sco.wikipedia.org" +, "sd.wikinews.org" , "sd.wikipedia.org" , "sd.wiktionary.org" -, "sd.wikinews.org" -, "se.wikipedia.org" , "se.wikibooks.org" , "se.wikimedia.org" +, "se.wikipedia.org" , "sg.wikipedia.org" , "sg.wiktionary.org" +, "sh.wikipedia.org" +, "sh.wiktionary.org" +, "shn.wikipedia.org" +, "si.wikibooks.org" , "si.wikipedia.org" , "si.wiktionary.org" -, "si.wikibooks.org" +, "simple.wikibooks.org" +, "simple.wikipedia.org" +, "simple.wikiquote.org" +, "simple.wiktionary.org" +, "sk.wikibooks.org" +, "sk.wikipedia.org" +, "sk.wikiquote.org" +, "sk.wikisource.org" +, "sk.wiktionary.org" +, "sl.wikibooks.org" +, "sl.wikipedia.org" +, "sl.wikiquote.org" +, "sl.wikisource.org" +, "sl.wikiversity.org" +, "sl.wiktionary.org" , "sm.wikipedia.org" , "sm.wiktionary.org" , "sn.wikipedia.org" , "sn.wiktionary.org" , "so.wikipedia.org" , "so.wiktionary.org" -, "sq.wikipedia.org" -, "sq.wiktionary.org" +, "species.wikimedia.org" , "sq.wikibooks.org" -, "sq.wikiquote.org" , "sq.wikinews.org" +, "sq.wikipedia.org" +, "sq.wikiquote.org" +, "sq.wiktionary.org" +, "sr.wikibooks.org" +, "sr.wikinews.org" +, "sr.wikipedia.org" +, "sr.wikiquote.org" +, "sr.wikisource.org" +, "sr.wiktionary.org" , "srn.wikipedia.org" , "ss.wikipedia.org" , "ss.wiktionary.org" , "st.wikipedia.org" , "st.wiktionary.org" , "stq.wikipedia.org" -, "su.wikipedia.org" -, "su.wiktionary.org" , "su.wikibooks.org" +, "su.wikipedia.org" , "su.wikiquote.org" +, "su.wiktionary.org" +, "sv.wikibooks.org" +, "sv.wikinews.org" +, "sv.wikipedia.org" +, "sv.wikiquote.org" +, "sv.wikisource.org" +, "sv.wikiversity.org" +, "sv.wikivoyage.org" +, "sv.wiktionary.org" +, "sw.wikibooks.org" , "sw.wikipedia.org" , "sw.wiktionary.org" -, "sw.wikibooks.org" , "szl.wikipedia.org" -, "ta.wikipedia.org" -, "ta.wiktionary.org" -, "ta.wikisource.org" , "ta.wikibooks.org" -, "ta.wikiquote.org" , "ta.wikinews.org" -, "te.wikipedia.org" -, "te.wiktionary.org" -, "te.wikisource.org" +, "ta.wikipedia.org" +, "ta.wikiquote.org" +, "ta.wikisource.org" +, "ta.wiktionary.org" +, "tcy.wikipedia.org" , "te.wikibooks.org" +, "te.wikipedia.org" , "te.wikiquote.org" +, "te.wikisource.org" +, "te.wiktionary.org" , "tet.wikipedia.org" +, "tg.wikibooks.org" , "tg.wikipedia.org" , "tg.wiktionary.org" -, "tg.wikibooks.org" +, "th.wikibooks.org" +, "th.wikinews.org" +, "th.wikipedia.org" +, "th.wikiquote.org" +, "th.wikisource.org" +, "th.wiktionary.org" , "ti.wikipedia.org" , "ti.wiktionary.org" -, "tk.wikipedia.org" -, "tk.wiktionary.org" , "tk.wikibooks.org" +, "tk.wikipedia.org" , "tk.wikiquote.org" +, "tk.wiktionary.org" +, "tl.wikibooks.org" , "tl.wikipedia.org" , "tl.wiktionary.org" -, "tl.wikibooks.org" , "tn.wikipedia.org" , "tn.wiktionary.org" , "to.wikipedia.org" , "to.wiktionary.org" , "tpi.wikipedia.org" , "tpi.wiktionary.org" +, "tr.wikibooks.org" +, "tr.wikimedia.org" +, "tr.wikinews.org" +, "tr.wikipedia.org" +, "tr.wikiquote.org" +, "tr.wikisource.org" +, "tr.wiktionary.org" , "ts.wikipedia.org" , "ts.wiktionary.org" -, "tt.wikipedia.org" -, "tt.wiktionary.org" , "tt.wikibooks.org" +, "tt.wikipedia.org" , "tt.wikiquote.org" +, "tt.wiktionary.org" , "tum.wikipedia.org" , "tw.wikipedia.org" , "tw.wiktionary.org" , "ty.wikipedia.org" , "tyv.wikipedia.org" +, "ua.wikimedia.org" , "udm.wikipedia.org" -, "ug.wikipedia.org" -, "ug.wiktionary.org" , "ug.wikibooks.org" +, "ug.wikipedia.org" , "ug.wikiquote.org" -, "ur.wikipedia.org" -, "ur.wiktionary.org" +, "ug.wiktionary.org" +, "uk.wikibooks.org" +, "uk.wikinews.org" +, "uk.wikipedia.org" +, "uk.wikiquote.org" +, "uk.wikisource.org" +, "uk.wikivoyage.org" +, "uk.wiktionary.org" , "ur.wikibooks.org" +, "ur.wikipedia.org" , "ur.wikiquote.org" -, "uz.wikipedia.org" -, "uz.wiktionary.org" +, "ur.wiktionary.org" , "uz.wikibooks.org" +, "uz.wikipedia.org" , "uz.wikiquote.org" +, "uz.wiktionary.org" , "ve.wikipedia.org" , "vec.wikipedia.org" -, "vec.wiktionary.org" , "vec.wikisource.org" +, "vec.wiktionary.org" , "vep.wikipedia.org" +, "vi.wikibooks.org" +, "vi.wikipedia.org" +, "vi.wikiquote.org" +, "vi.wikisource.org" +, "vi.wikivoyage.org" +, "vi.wiktionary.org" , "vls.wikipedia.org" +, "vo.wikibooks.org" +, "vo.wikipedia.org" +, "vo.wikiquote.org" +, "vo.wiktionary.org" +, "wa.wikibooks.org" , "wa.wikipedia.org" , "wa.wiktionary.org" -, "wa.wikibooks.org" , "war.wikipedia.org" +, "wikimania.wikimedia.org" +, "wikisource.org" , "wo.wikipedia.org" -, "wo.wiktionary.org" , "wo.wikiquote.org" +, "wo.wiktionary.org" , "wuu.wikipedia.org" +, "www.mediawiki.org" +, "www.wikidata.org" , "xal.wikipedia.org" +, "xh.wikibooks.org" , "xh.wikipedia.org" , "xh.wiktionary.org" -, "xh.wikibooks.org" , "xmf.wikipedia.org" , "yi.wikipedia.org" -, "yi.wiktionary.org" , "yi.wikisource.org" +, "yi.wiktionary.org" +, "yo.wikibooks.org" , "yo.wikipedia.org" , "yo.wiktionary.org" -, "yo.wikibooks.org" -, "za.wikipedia.org" -, "za.wiktionary.org" +, "yue.wiktionary.org" , "za.wikibooks.org" +, "za.wikipedia.org" , "za.wikiquote.org" +, "za.wiktionary.org" , "zea.wikipedia.org" , "zh-classical.wikipedia.org" -, "zh-min-nan.wikipedia.org" -, "zh-min-nan.wiktionary.org" -, "zh-min-nan.wikisource.org" , "zh-min-nan.wikibooks.org" +, "zh-min-nan.wikipedia.org" , "zh-min-nan.wikiquote.org" +, "zh-min-nan.wikisource.org" +, "zh-min-nan.wiktionary.org" , "zh-yue.wikipedia.org" +, "zh.wikibooks.org" +, "zh.wikinews.org" +, "zh.wikipedia.org" +, "zh.wikiquote.org" +, "zh.wikisource.org" +, "zh.wikiversity.org" +, "zh.wikivoyage.org" +, "zh.wiktionary.org" +, "zu.wikibooks.org" , "zu.wikipedia.org" , "zu.wiktionary.org" -, "zu.wikibooks.org" -, "azb.wikipedia.org" -, "atj.wikipedia.org" -, "din.wikipedia.org" -, "dty.wikipedia.org" -, "eu.wikisource.org" -, "gom.wikipedia.org" -, "gor.wikipedia.org" -, "hi.wikiversity.org" -, "hi.wikivoyage.org" -, "hif.wiktionary.org" -, "inh.wikipedia.org" -, "jam.wikipedia.org" -, "kbp.wikipedia.org" -, "lrc.wikipedia.org" -, "lfn.wikipedia.org" -, "olo.wikipedia.org" -, "pa.wikisource.org" -, "pms.wikisource.org" -, "ps.wikivoyage.org" -, "sat.wikipedia.org" -, "sah.wikiquote.org" -, "tcy.wikipedia.org" -, "zh.wikiversity.org" }; //, "als.wikisource.org" //, "als.wiktionary.org" diff --git a/400_xowa/src/gplx/xowa/wikis/domains/Xow_domain_tid_.java b/400_xowa/src/gplx/xowa/wikis/domains/Xow_domain_tid_.java index 39aab49e6..d9ac10451 100644 --- a/400_xowa/src/gplx/xowa/wikis/domains/Xow_domain_tid_.java +++ b/400_xowa/src/gplx/xowa/wikis/domains/Xow_domain_tid_.java @@ -15,7 +15,7 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt */ package gplx.xowa.wikis.domains; import gplx.*; import gplx.xowa.*; import gplx.xowa.wikis.*; public class Xow_domain_tid_ { - public static final int + public static final int // SERIALIZED.NONE (ASSUMPTION); DATE:2019-07-31 Tid__null = 0 , Tid__wikipedia = 1 , Tid__wiktionary = 2 @@ -32,10 +32,12 @@ public class Xow_domain_tid_ { , Tid__mediawiki = 13 , Tid__meta = 14 , Tid__incubator = 15 - , Tid__wmfblog = 16 - , Tid__home = 17 - , Tid__other = 18 - , Tid___len = 19 + , Tid__wikimania = 16 + , Tid__wikisource_org = 17 + , Tid__wmfblog = 18 + , Tid__home = 19 + , Tid__other = 20 + , Tid___len = 21 ; public static final String // SERIALIZED:xowa.gfs Str__wikipedia = "wikipedia" @@ -53,6 +55,7 @@ public class Xow_domain_tid_ { , Str__mediawiki = "mediawiki" , Str__meta = "meta" , Str__incubator = "incubator" + , Str__wikimania = "wikimania" , Str__wmforg = "wikimediafoundation" , Str__home = "home" , Str__other = "other" @@ -73,6 +76,7 @@ public class Xow_domain_tid_ { , Bry__mediawiki = Bry_.new_a7(Str__mediawiki) , Bry__meta = Bry_.new_a7(Str__meta) , Bry__incubator = Bry_.new_a7(Str__incubator) + , Bry__wikimania = Bry_.new_a7(Str__wikimania) , Bry__wmforg = Bry_.new_a7(Str__wmforg) , Bry__home = Bry_.new_a7(Str__home) , Bry__other = Bry_.new_a7(Str__other) @@ -96,8 +100,10 @@ public class Xow_domain_tid_ { , Itm__mediawiki = new_(Bool_.N , Xow_domain_tid.Src__wmf , Tid__mediawiki , Bry__mediawiki , "mw" , Xow_domain_itm_.Str__mediawiki) , Itm__meta = new_(Bool_.N , Xow_domain_tid.Src__wmf , Tid__meta , Bry__meta , "meta" , Xow_domain_itm_.Str__meta) , Itm__incubator = new_(Bool_.N , Xow_domain_tid.Src__wmf , Tid__incubator , Bry__incubator , "qb" , Xow_domain_itm_.Str__incubator) + , Itm__wikimania = new_(Bool_.N , Xow_domain_tid.Src__wmf , Tid__wikimania , Bry__wikimania , "wikimania" , Xow_domain_itm_.Str__wikimania) + , Itm__wikisource_org = new_(Bool_.N , Xow_domain_tid.Src__wmf , Tid__wikisource_org , Xow_domain_itm_.Bry__wikisource_org, "wikisource_org" , Xow_domain_itm_.Str__wikisource_org) , Itm__wmforg = new_(Bool_.N , Xow_domain_tid.Src__wmf , Tid__wmfblog , Bry__wmforg , "wmf" , Xow_domain_itm_.Str__wmforg) - , Itm__home = new_(Bool_.N , Xow_domain_tid.Src__xowa, Tid__home , Bry__home , "home" , Xow_domain_itm_.Str__home) + , Itm__home = new_(Bool_.N , Xow_domain_tid.Src__xowa , Tid__home , Bry__home , "home" , Xow_domain_itm_.Str__home) , Itm__other = new_(Bool_.N , Xow_domain_tid.Src__mw , Tid__other , Bry__other , "" , "") ; private static Xow_domain_tid new_(boolean multi_lang, int src, int tid, byte[] key_bry, String abrv_xo_str, String domain_bry) { diff --git a/400_xowa/src/gplx/xowa/wikis/domains/Xow_domain_uid_.java b/400_xowa/src/gplx/xowa/wikis/domains/Xow_domain_uid_.java index 4e66513cb..508eb622c 100644 --- a/400_xowa/src/gplx/xowa/wikis/domains/Xow_domain_uid_.java +++ b/400_xowa/src/gplx/xowa/wikis/domains/Xow_domain_uid_.java @@ -26,6 +26,8 @@ public class Xow_domain_uid_ { , Tid_incubator = 22 , Tid_wmfblog = 23 , Tid_species = 24 + , Tid_wikimania = 25 + , Tid_wikisource_org = 26 ; private static final int Tid_sub_wikipedia = 0 @@ -48,6 +50,8 @@ public class Xow_domain_uid_ { case Xow_domain_tid_.Tid__mediawiki: return Tid_mediawiki; case Xow_domain_tid_.Tid__meta: return Tid_meta; case Xow_domain_tid_.Tid__incubator: return Tid_incubator; + case Xow_domain_tid_.Tid__wikimania: return Tid_wikimania; + case Xow_domain_tid_.Tid__wikisource_org: return Tid_wikisource_org; case Xow_domain_tid_.Tid__wmfblog: return Tid_wmfblog; case Xow_domain_tid_.Tid__species: return Tid_species; case Xow_domain_tid_.Tid__wikipedia: domain_tid = Tid_sub_wikipedia; break; @@ -74,6 +78,8 @@ public class Xow_domain_uid_ { case Tid_mediawiki: return Xow_domain_itm.new_(Xow_domain_itm_.Bry__mediawiki, Xow_domain_tid_.Tid__mediawiki, Xol_lang_stub_.Key__unknown); case Tid_meta: return Xow_domain_itm.new_(Xow_domain_itm_.Bry__meta, Xow_domain_tid_.Tid__meta, Xol_lang_stub_.Key__unknown); case Tid_incubator: return Xow_domain_itm.new_(Xow_domain_itm_.Bry__incubator, Xow_domain_tid_.Tid__incubator, Xol_lang_stub_.Key__unknown); + case Tid_wikimania: return Xow_domain_itm.new_(Xow_domain_itm_.Bry__wikimania, Xow_domain_tid_.Tid__wikimania, Xol_lang_stub_.Key__unknown); + case Tid_wikisource_org: return Xow_domain_itm.new_(Xow_domain_itm_.Bry__wikisource_org, Xow_domain_tid_.Tid__wikisource_org, Xol_lang_stub_.Key__unknown); case Tid_wmfblog: return Xow_domain_itm.new_(Xow_domain_itm_.Bry__wmforg, Xow_domain_tid_.Tid__wmfblog, Xol_lang_stub_.Key__unknown); case Tid_species: return Xow_domain_itm.new_(Xow_domain_itm_.Bry__species, Xow_domain_tid_.Tid__species, Xol_lang_stub_.Key__unknown); } diff --git a/400_xowa/src/gplx/xowa/wikis/xwikis/Xow_xwiki_mgr.java b/400_xowa/src/gplx/xowa/wikis/xwikis/Xow_xwiki_mgr.java index 2663d3d24..d573f33d1 100644 --- a/400_xowa/src/gplx/xowa/wikis/xwikis/Xow_xwiki_mgr.java +++ b/400_xowa/src/gplx/xowa/wikis/xwikis/Xow_xwiki_mgr.java @@ -87,8 +87,9 @@ public class Xow_xwiki_mgr { } private static int Xwiki_tid(int tid) { switch (tid) { - case Xow_domain_tid_.Tid__commons: case Xow_domain_tid_.Tid__species: case Xow_domain_tid_.Tid__incubator: - case Xow_domain_tid_.Tid__mediawiki: case Xow_domain_tid_.Tid__wmfblog: case Xow_domain_tid_.Tid__home: + case Xow_domain_tid_.Tid__commons: case Xow_domain_tid_.Tid__species: + case Xow_domain_tid_.Tid__incubator: case Xow_domain_tid_.Tid__wikimania: case Xow_domain_tid_.Tid__wikisource_org: + case Xow_domain_tid_.Tid__mediawiki: case Xow_domain_tid_.Tid__wmfblog: case Xow_domain_tid_.Tid__home: return Xow_domain_tid_.Tid__wikipedia; // set xwiki_tid to wikipedia; allows [[da:Page]] to point to da.wikipedia.org; PAGE:species:Puccinia; DATE:2014-09-14 default: return tid; } diff --git a/res/bin/any/xowa/cfg/wiki/site_meta.sqlite3 b/res/bin/any/xowa/cfg/wiki/site_meta.sqlite3 index a267aa5cc..e14fe62b5 100644 Binary files a/res/bin/any/xowa/cfg/wiki/site_meta.sqlite3 and b/res/bin/any/xowa/cfg/wiki/site_meta.sqlite3 differ