/*
XOWA: the XOWA Offline Wiki Application
Copyright (C) 2012 gnosygnu@gmail.com

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa; import gplx.*;
import org.junit.*;
import gplx.brys.*; import gplx.threads.*; import gplx.xowa.wikis.*;
public class Xoi_cmd_wiki_tst {
	@Test  public void Run() {
//			Bld_import_list(Wikis);
//			Bld_cfg_files(Wikis);	// NOTE: remember to carry over the wikisource / page / index commands from the existing xowa_build_cfg.gfs; also, only run the xowa_build_cfg.gfs once; DATE:2013-10-15; last run: DATE:2014-09-09
	}
	public void Bld_import_list(String... ary) {
		int ary_len = ary.length;
		Bry_bfr bfr = Bry_bfr.reset_(255);
		Bry_fmtr_arg_time time_fmtr = new Bry_fmtr_arg_time();
		Xob_dump_file dump_file = new Xob_dump_file();
		for (int i = 0; i < ary_len; i++) {
			String itm = ary[i];
			dump_file.Ctor(itm, "latest", Xow_wiki_alias.Key_pages_articles);
			int count = 0;
			while (count++ < 10) {
				dump_file.Server_url_(Xob_dump_file_.Server_wmf);
				if (dump_file.Connect()) break;
				Tfds.WriteText(String_.Format("retrying: {0} {1}\n", count, dump_file.File_modified()));
				ThreadAdp_.Sleep(2000);	// wait for connection to reset
			}
			if (count == 10) {
				Tfds.WriteText(String_.Format("failed: {0}\n", dump_file.File_url()));
				continue;
			}
			else
				Tfds.WriteText(String_.Format("passed: {0}\n", itm));
			bfr.Add_str(itm).Add_byte_pipe();
			bfr.Add_str(dump_file.File_url()).Add_byte_pipe();
			bfr.Add(Xow_wiki_domain_.Key_by_tid(dump_file.Wiki_type().Wiki_tid())).Add_byte_pipe();
//				Xol_lang_itm lang_itm = Xol_lang_itm_.Get_by_key(wiki_type.Lang_key());
//				if (lang_itm == null) lang_itm = Xol_lang_itm_.Get_by_key(Xol_lang_.Key_en);	// commons, species, meta, etc will have no lang
//				bfr.Add(lang_itm.Local_name()).Add_byte_pipe();
//				bfr.Add(lang_itm.Canonical_name()).Add_byte_pipe();
			long src_size = dump_file.File_len();
			bfr.Add_long_variable(src_size).Add_byte_pipe();
			bfr.Add_str(gplx.ios.Io_size_.Xto_str(src_size)).Add_byte_pipe();
			time_fmtr.Seconds_(Math_.Div_safe_as_long(src_size, 1000000)).XferAry(bfr, 0);
			bfr.Add_byte_pipe();
			bfr.Add_str(dump_file.File_modified().XtoStr_fmt_yyyy_MM_dd_HH_mm());
			bfr.Add_byte_pipe();
//				bfr.Add_str(String_.ConcatWith_any(",", (Object[])dump_file.Dump_available_dates()));
//				bfr.Add_byte_pipe();
			bfr.Add_str(dump_file.Dump_date());
			bfr.Add_byte_nl();
		}
		Io_mgr._.SaveFilStr("C:\\temp.txt", bfr.Xto_str());
	}
	public void Bld_cfg_files(String... ary) {
		Bry_bfr bfr = Bry_bfr.reset_(255);
		gplx.xowa.bldrs.wiki_cfgs.Xoi_wiki_props_api api = new gplx.xowa.bldrs.wiki_cfgs.Xoi_wiki_props_api();
		gplx.xowa.bldrs.wiki_cfgs.Xoi_wiki_props_wiki wiki = new gplx.xowa.bldrs.wiki_cfgs.Xoi_wiki_props_wiki();
		int ary_len = ary.length;
		for (int i = 0; i < ary_len; i++) {
			String wiki_domain = ary[i];
			try {
				byte[] xml = api.Exec_api(api.Api_src(wiki_domain));
				wiki.Wiki_domain_(Bry_.new_ascii_(wiki_domain));
				api.Parse(wiki, String_.new_utf8_(xml));
				api.Build_cfg(bfr, wiki);
			}
			catch (Exception e) {
				ConsoleAdp._.WriteLine(Err_.Message_gplx_brief(e));
			}
		}
		bfr.Add_str("app.bldr.wiki_cfg_bldr.run;").Add_byte_nl();
		Io_mgr._.SaveFilStr("C:\\xowa_build_cfg.gfs", bfr.Xto_str());
	}
	public static String[] Wikis = new String[]
{ "simple.wikipedia.org"
};
//{ "aa.wikipedia.org"
//, "aa.wikibooks.org"
//, "aa.wiktionary.org"
//, "ab.wikipedia.org"
//, "ab.wiktionary.org"
//, "ace.wikipedia.org"
//, "af.wikipedia.org"
//, "af.wikibooks.org"
//, "af.wikiquote.org"
//, "af.wiktionary.org"
//, "ak.wikipedia.org"
//, "ak.wikibooks.org"
//, "ak.wiktionary.org"
//, "als.wikipedia.org"
//, "als.wikibooks.org"
//, "als.wikiquote.org"
//, "als.wiktionary.org"
//, "am.wikipedia.org"
//, "am.wikiquote.org"
//, "am.wiktionary.org"
//, "ang.wikipedia.org"
//, "ang.wikibooks.org"
//, "ang.wikiquote.org"
//, "ang.wikisource.org"
//, "ang.wiktionary.org"
//, "an.wikipedia.org"
//, "an.wiktionary.org"
//, "arc.wikipedia.org"
//, "ar.wikipedia.org"
//, "ar.wikibooks.org"
//, "ar.wikinews.org"
//, "ar.wikiquote.org"
//, "ar.wikisource.org"
//, "ar.wikiversity.org"
//, "ar.wiktionary.org"
//, "arz.wikipedia.org"
//, "ast.wikipedia.org"
//, "ast.wikibooks.org"
//, "ast.wikiquote.org"
//, "ast.wiktionary.org"
//, "as.wikipedia.org"
//, "as.wikibooks.org"
//, "as.wikisource.org"
//, "as.wiktionary.org"
//, "av.wikipedia.org"
//, "av.wiktionary.org"
//, "ay.wikipedia.org"
//, "ay.wikibooks.org"
//, "ay.wiktionary.org"
//, "az.wikipedia.org"
//, "az.wikibooks.org"
//, "az.wikiquote.org"
//, "az.wikisource.org"
//, "az.wiktionary.org"
//, "bar.wikipedia.org"
//, "bat-smg.wikipedia.org"
//, "ba.wikipedia.org"
//, "ba.wikibooks.org"
//, "bcl.wikipedia.org"
//, "be-x-old.wikipedia.org"
//, "be.wikipedia.org"
//, "be.wikibooks.org"
//, "be.wikiquote.org"
//, "be.wikisource.org"
//, "be.wiktionary.org"
//, "bg.wikipedia.org"
//, "bg.wikibooks.org"
//, "bg.wikinews.org"
//, "bg.wikiquote.org"
//, "bg.wikisource.org"
//, "bg.wiktionary.org"
//, "bh.wikipedia.org"
//, "bh.wiktionary.org"
//, "bi.wikipedia.org"
//, "bi.wikibooks.org"
//, "bi.wiktionary.org"
//, "bjn.wikipedia.org"
//, "bm.wikipedia.org"
//, "bm.wikibooks.org"
//, "bm.wikiquote.org"
//, "bm.wiktionary.org"
//, "bn.wikipedia.org"
//, "bn.wikibooks.org"
//, "bn.wikisource.org"
//, "bn.wiktionary.org"
//, "bo.wikipedia.org"
//, "bo.wikibooks.org"
//, "bo.wiktionary.org"
//, "bpy.wikipedia.org"
//, "br.wikipedia.org"
//, "br.wikiquote.org"
//, "br.wikisource.org"
//, "br.wiktionary.org"
//, "bs.wikipedia.org"
//, "bs.wikibooks.org"
//, "bs.wikinews.org"
//, "bs.wikiquote.org"
//, "bs.wikisource.org"
//, "bs.wiktionary.org"
//, "bug.wikipedia.org"
//, "bxr.wikipedia.org"
//, "ca.wikipedia.org"
//, "ca.wikibooks.org"
//, "ca.wikinews.org"
//, "ca.wikiquote.org"
//, "ca.wikisource.org"
//, "ca.wiktionary.org"
//, "cbk-zam.wikipedia.org"
//, "cdo.wikipedia.org"
//, "ceb.wikipedia.org"
//, "ce.wikipedia.org"
//, "cho.wikipedia.org"
//, "chr.wikipedia.org"
//, "chr.wiktionary.org"
//, "ch.wikipedia.org"
//, "ch.wikibooks.org"
//, "ch.wiktionary.org"
//, "chy.wikipedia.org"
//, "ckb.wikipedia.org"
//, "commons.wikimedia.org"
//, "co.wikipedia.org"
//, "co.wikibooks.org"
//, "co.wikiquote.org"
//, "co.wiktionary.org"
//, "crh.wikipedia.org"
//, "cr.wikipedia.org"
//, "cr.wikiquote.org"
//, "cr.wiktionary.org"
//, "csb.wikipedia.org"
//, "csb.wiktionary.org"
//, "cs.wikipedia.org"
//, "cs.wikibooks.org"
//, "cs.wikinews.org"
//, "cs.wikiquote.org"
//, "cs.wikisource.org"
//, "cs.wikiversity.org"
//, "cs.wiktionary.org"
//, "cu.wikipedia.org"
//, "cv.wikipedia.org"
//, "cv.wikibooks.org"
//, "cy.wikipedia.org"
//, "cy.wikibooks.org"
//, "cy.wikiquote.org"
//, "cy.wikisource.org"
//, "cy.wiktionary.org"
//, "da.wikipedia.org"
//, "da.wikibooks.org"
//, "da.wikiquote.org"
//, "da.wikisource.org"
//, "da.wiktionary.org"
//, "de.wikipedia.org"
//, "de.wikibooks.org"
//, "de.wikinews.org"
//, "de.wikiquote.org"
//, "de.wikisource.org"
//, "de.wikiversity.org"
//, "de.wikivoyage.org"
//, "de.wiktionary.org"
//, "diq.wikipedia.org"
//, "dsb.wikipedia.org"
//, "dv.wikipedia.org"
//, "dv.wiktionary.org"
//, "dz.wikipedia.org"
//, "dz.wiktionary.org"
//, "ee.wikipedia.org"
//, "el.wikipedia.org"
//, "el.wikibooks.org"
//, "el.wikinews.org"
//, "el.wikiquote.org"
//, "el.wikisource.org"
//, "el.wikiversity.org"
//, "el.wikivoyage.org"
//, "el.wiktionary.org"
//, "eml.wikipedia.org"
//, "en.wikipedia.org"
//, "en.wikibooks.org"
//, "en.wikinews.org"
//, "en.wikiquote.org"
//, "en.wikisource.org"
//, "en.wikiversity.org"
//, "en.wikivoyage.org"
//, "en.wiktionary.org"
//, "eo.wikipedia.org"
//, "eo.wikibooks.org"
//, "eo.wikinews.org"
//, "eo.wikiquote.org"
//, "eo.wikisource.org"
//, "eo.wiktionary.org"
//, "es.wikipedia.org"
//, "es.wikibooks.org"
//, "es.wikinews.org"
//, "es.wikiquote.org"
//, "es.wikisource.org"
//, "es.wikiversity.org"
//, "es.wikivoyage.org"
//, "es.wiktionary.org"
//, "et.wikipedia.org"
//, "et.wikibooks.org"
//, "et.wikiquote.org"
//, "et.wikisource.org"
//, "et.wiktionary.org"
//, "eu.wikipedia.org"
//, "eu.wikibooks.org"
//, "eu.wikiquote.org"
//, "eu.wiktionary.org"
//, "ext.wikipedia.org"
//, "fa.wikipedia.org"
//, "fa.wikibooks.org"
//, "fa.wikinews.org"
//, "fa.wikiquote.org"
//, "fa.wikisource.org"
//, "fa.wiktionary.org"
//, "ff.wikipedia.org"
//, "fiu-vro.wikipedia.org"
//, "fi.wikipedia.org"
//, "fi.wikibooks.org"
//, "fi.wikinews.org"
//, "fi.wikiquote.org"
//, "fi.wikisource.org"
//, "fi.wikiversity.org"
//, "fi.wiktionary.org"
//, "fj.wikipedia.org"
//, "fj.wiktionary.org"
//, "wikimediafoundation.org"
//, "fo.wikipedia.org"
//, "fo.wikisource.org"
//, "fo.wiktionary.org"
//, "frp.wikipedia.org"
//, "frr.wikipedia.org"
//, "fr.wikipedia.org"
//, "fr.wikibooks.org"
//, "fr.wikinews.org"
//, "fr.wikiquote.org"
//, "fr.wikisource.org"
//, "fr.wikiversity.org"
//, "fr.wikivoyage.org"
//, "fr.wiktionary.org"
//, "fur.wikipedia.org"
//, "fy.wikipedia.org"
//, "fy.wikibooks.org"
//, "fy.wiktionary.org"
//, "gag.wikipedia.org"
//, "gan.wikipedia.org"
//, "ga.wikipedia.org"
//, "ga.wikibooks.org"
//, "ga.wikiquote.org"
//, "ga.wiktionary.org"
//, "gd.wikipedia.org"
//, "gd.wiktionary.org"
//, "glk.wikipedia.org"
//, "gl.wikipedia.org"
//, "gl.wikibooks.org"
//, "gl.wikiquote.org"
//, "gl.wikisource.org"
//, "gl.wiktionary.org"
//, "gn.wikipedia.org"
//, "gn.wikibooks.org"
//, "gn.wiktionary.org"
//, "got.wikipedia.org"
//, "got.wikibooks.org"
//, "gu.wikipedia.org"
//, "gu.wikibooks.org"
//, "gu.wikiquote.org"
//, "gu.wikisource.org"
//, "gu.wiktionary.org"
//, "gv.wikipedia.org"
//, "gv.wiktionary.org"
//, "hak.wikipedia.org"
//, "ha.wikipedia.org"
//, "ha.wiktionary.org"
//, "haw.wikipedia.org"
//, "he.wikipedia.org"
//, "he.wikibooks.org"
//, "he.wikinews.org"
//, "he.wikiquote.org"
//, "he.wikisource.org"
//, "he.wikivoyage.org"
//, "he.wiktionary.org"
//, "hif.wikipedia.org"
//, "hi.wikipedia.org"
//, "hi.wikibooks.org"
//, "hi.wikiquote.org"
//, "hi.wiktionary.org"
//, "ho.wikipedia.org"
//, "hr.wikipedia.org"
//, "hr.wikibooks.org"
//, "hr.wikiquote.org"
//, "hr.wikisource.org"
//, "hr.wiktionary.org"
//, "hsb.wikipedia.org"
//, "hsb.wiktionary.org"
//, "ht.wikipedia.org"
//, "ht.wikisource.org"
//, "hu.wikipedia.org"
//, "hu.wikibooks.org"
//, "hu.wikinews.org"
//, "hu.wikiquote.org"
//, "hu.wikisource.org"
//, "hu.wiktionary.org"
//, "hy.wikipedia.org"
//, "hy.wikibooks.org"
//, "hy.wikiquote.org"
//, "hy.wikisource.org"
//, "hy.wiktionary.org"
//, "hz.wikipedia.org"
//, "ia.wikipedia.org"
//, "ia.wikibooks.org"
//, "ia.wiktionary.org"
//, "id.wikipedia.org"
//, "id.wikibooks.org"
//, "id.wikiquote.org"
//, "id.wikisource.org"
//, "id.wiktionary.org"
//, "ie.wikipedia.org"
//, "ie.wikibooks.org"
//, "ie.wiktionary.org"
//, "ig.wikipedia.org"
//, "ii.wikipedia.org"
//, "ik.wikipedia.org"
//, "ik.wiktionary.org"
//, "ilo.wikipedia.org"
//, "incubator.wikimedia.org"
//, "io.wikipedia.org"
//, "io.wiktionary.org"
//, "is.wikipedia.org"
//, "is.wikibooks.org"
//, "is.wikiquote.org"
//, "is.wikisource.org"
//, "is.wiktionary.org"
//, "it.wikipedia.org"
//, "it.wikibooks.org"
//, "it.wikinews.org"
//, "it.wikiquote.org"
//, "it.wikisource.org"
//, "it.wikiversity.org"
//, "it.wikivoyage.org"
//, "it.wiktionary.org"
//, "iu.wikipedia.org"
//, "iu.wiktionary.org"
//, "ja.wikipedia.org"
//, "ja.wikibooks.org"
//, "ja.wikinews.org"
//, "ja.wikiquote.org"
//, "ja.wikisource.org"
//, "ja.wikiversity.org"
//, "ja.wiktionary.org"
//, "jbo.wikipedia.org"
//, "jbo.wiktionary.org"
//, "jv.wikipedia.org"
//, "jv.wiktionary.org"
//, "kaa.wikipedia.org"
//, "kab.wikipedia.org"
//, "ka.wikipedia.org"
//, "ka.wikibooks.org"
//, "ka.wikiquote.org"
//, "ka.wiktionary.org"
//, "kbd.wikipedia.org"
//, "kg.wikipedia.org"
//, "ki.wikipedia.org"
//, "kj.wikipedia.org"
//, "kk.wikipedia.org"
//, "kk.wikibooks.org"
//, "kk.wikiquote.org"
//, "kk.wiktionary.org"
//, "kl.wikipedia.org"
//, "kl.wiktionary.org"
//, "km.wikipedia.org"
//, "km.wikibooks.org"
//, "km.wiktionary.org"
//, "kn.wikipedia.org"
//, "kn.wikibooks.org"
//, "kn.wikiquote.org"
//, "kn.wikisource.org"
//, "kn.wiktionary.org"
//, "koi.wikipedia.org"
//, "ko.wikipedia.org"
//, "ko.wikibooks.org"
//, "ko.wikinews.org"
//, "ko.wikiquote.org"
//, "ko.wikisource.org"
//, "ko.wikiversity.org"
//, "ko.wiktionary.org"
//, "krc.wikipedia.org"
//, "kr.wikipedia.org"
//, "kr.wikiquote.org"
//, "ksh.wikipedia.org"
//, "ks.wikipedia.org"
//, "ks.wikibooks.org"
//, "ks.wikiquote.org"
//, "ks.wiktionary.org"
//, "ku.wikipedia.org"
//, "ku.wikibooks.org"
//, "ku.wikiquote.org"
//, "ku.wiktionary.org"
//, "kv.wikipedia.org"
//, "kw.wikipedia.org"
//, "kw.wikiquote.org"
//, "kw.wiktionary.org"
//, "ky.wikipedia.org"
//, "ky.wikibooks.org"
//, "ky.wikiquote.org"
//, "ky.wiktionary.org"
//, "lad.wikipedia.org"
//, "la.wikipedia.org"
//, "la.wikibooks.org"
//, "la.wikiquote.org"
//, "la.wikisource.org"
//, "la.wiktionary.org"
//, "lbe.wikipedia.org"
//, "lb.wikipedia.org"
//, "lb.wikibooks.org"
//, "lb.wikiquote.org"
//, "lb.wiktionary.org"
//, "lez.wikipedia.org"
//, "lg.wikipedia.org"
//, "lij.wikipedia.org"
//, "li.wikipedia.org"
//, "li.wikibooks.org"
//, "li.wikiquote.org"
//, "li.wikisource.org"
//, "li.wiktionary.org"
//, "lmo.wikipedia.org"
//, "ln.wikipedia.org"
//, "ln.wikibooks.org"
//, "ln.wiktionary.org"
//, "lo.wikipedia.org"
//, "lo.wiktionary.org"
//, "ltg.wikipedia.org"
//, "lt.wikipedia.org"
//, "lt.wikibooks.org"
//, "lt.wikiquote.org"
//, "lt.wikisource.org"
//, "lt.wiktionary.org"
//, "lv.wikipedia.org"
//, "lv.wikibooks.org"
//, "lv.wiktionary.org"
//, "map-bms.wikipedia.org"
//, "mdf.wikipedia.org"
//, "www.mediawiki.org"
//, "meta.wikimedia.org"
//, "mg.wikipedia.org"
//, "mg.wikibooks.org"
//, "mg.wiktionary.org"
//, "mhr.wikipedia.org"
//, "mh.wikipedia.org"
//, "mh.wiktionary.org"
//, "min.wikipedia.org"
//, "mi.wikipedia.org"
//, "mi.wikibooks.org"
//, "mi.wiktionary.org"
//, "mk.wikipedia.org"
//, "mk.wikibooks.org"
//, "mk.wikisource.org"
//, "mk.wiktionary.org"
//, "ml.wikipedia.org"
//, "ml.wikibooks.org"
//, "ml.wikiquote.org"
//, "ml.wikisource.org"
//, "ml.wiktionary.org"
//, "mn.wikipedia.org"
//, "mn.wikibooks.org"
//, "mn.wiktionary.org"
//, "mo.wikipedia.org"
//, "mo.wiktionary.org"
//, "mrj.wikipedia.org"
//, "mr.wikipedia.org"
//, "mr.wikibooks.org"
//, "mr.wikiquote.org"
//, "mr.wikisource.org"
//, "mr.wiktionary.org"
//, "ms.wikipedia.org"
//, "ms.wikibooks.org"
//, "ms.wiktionary.org"
//, "mt.wikipedia.org"
//, "mt.wiktionary.org"
//, "mus.wikipedia.org"
//, "mwl.wikipedia.org"
//, "myv.wikipedia.org"
//, "my.wikipedia.org"
//, "my.wikibooks.org"
//, "my.wiktionary.org"
//, "mzn.wikipedia.org"
//, "nah.wikipedia.org"
//, "nah.wikibooks.org"
//, "nah.wiktionary.org"
//, "nap.wikipedia.org"
//, "na.wikipedia.org"
//, "na.wikibooks.org"
//, "na.wikiquote.org"
//, "na.wiktionary.org"
//, "nds-nl.wikipedia.org"
//, "nds.wikipedia.org"
//, "nds.wikibooks.org"
//, "nds.wikiquote.org"
//, "nds.wiktionary.org"
//, "ne.wikipedia.org"
//, "ne.wikibooks.org"
//, "ne.wiktionary.org"
//, "new.wikipedia.org"
//, "ng.wikipedia.org"
//, "nl.wikipedia.org"
//, "nl.wikibooks.org"
//, "nl.wikinews.org"
//, "nl.wikiquote.org"
//, "nl.wikisource.org"
//, "nl.wikivoyage.org"
//, "nl.wiktionary.org"
//, "nn.wikipedia.org"
//, "nn.wikiquote.org"
//, "nn.wiktionary.org"
//, "nov.wikipedia.org"
//, "no.wikipedia.org"
//, "no.wikibooks.org"
//, "no.wikinews.org"
//, "no.wikiquote.org"
//, "no.wikisource.org"
//, "no.wiktionary.org"
//, "nrm.wikipedia.org"
//, "nso.wikipedia.org"
//, "nv.wikipedia.org"
//, "ny.wikipedia.org"
//, "oc.wikipedia.org"
//, "oc.wikibooks.org"
//, "oc.wiktionary.org"
//, "om.wikipedia.org"
//, "om.wiktionary.org"
//, "or.wikipedia.org"
//, "or.wiktionary.org"
//, "os.wikipedia.org"
//, "pag.wikipedia.org"
//, "pam.wikipedia.org"
//, "pap.wikipedia.org"
//, "pa.wikipedia.org"
//, "pa.wikibooks.org"
//, "pa.wiktionary.org"
//, "pcd.wikipedia.org"
//, "pdc.wikipedia.org"
//, "pfl.wikipedia.org"
//, "pih.wikipedia.org"
//, "pi.wikipedia.org"
//, "pi.wiktionary.org"
//, "pl.wikipedia.org"
//, "pl.wikibooks.org"
//, "pl.wikinews.org"
//, "pl.wikiquote.org"
//, "pl.wikisource.org"
//, "pl.wikivoyage.org"
//, "pl.wiktionary.org"
//, "pms.wikipedia.org"
//, "pnb.wikipedia.org"
//, "pnb.wiktionary.org"
//, "pnt.wikipedia.org"
//, "ps.wikipedia.org"
//, "ps.wikibooks.org"
//, "ps.wiktionary.org"
//, "pt.wikipedia.org"
//, "pt.wikibooks.org"
//, "pt.wikinews.org"
//, "pt.wikiquote.org"
//, "pt.wikisource.org"
//, "pt.wikiversity.org"
//, "pt.wikivoyage.org"
//, "pt.wiktionary.org"
//, "qu.wikipedia.org"
//, "qu.wikibooks.org"
//, "qu.wikiquote.org"
//, "qu.wiktionary.org"
//, "rm.wikipedia.org"
//, "rm.wikibooks.org"
//, "rm.wiktionary.org"
//, "rmy.wikipedia.org"
//, "rn.wikipedia.org"
//, "rn.wiktionary.org"
//, "roa-rup.wikipedia.org"
//, "roa-rup.wiktionary.org"
//, "roa-tara.wikipedia.org"
//, "ro.wikipedia.org"
//, "ro.wikibooks.org"
//, "ro.wikinews.org"
//, "ro.wikiquote.org"
//, "ro.wikisource.org"
//, "ro.wikivoyage.org"
//, "ro.wiktionary.org"
//, "rue.wikipedia.org"
//, "ru.wikipedia.org"
//, "ru.wikibooks.org"
//, "ru.wikinews.org"
//, "ru.wikiquote.org"
//, "ru.wikisource.org"
//, "ru.wikiversity.org"
//, "ru.wikivoyage.org"
//, "ru.wiktionary.org"
//, "rw.wikipedia.org"
//, "rw.wiktionary.org"
//, "sah.wikipedia.org"
//, "sah.wikisource.org"
//, "sa.wikipedia.org"
//, "sa.wikibooks.org"
//, "sa.wikiquote.org"
//, "sa.wikisource.org"
//, "sa.wiktionary.org"
//, "scn.wikipedia.org"
//, "scn.wiktionary.org"
//, "sco.wikipedia.org"
//, "sc.wikipedia.org"
//, "sc.wiktionary.org"
//, "sd.wikipedia.org"
//, "sd.wikinews.org"
//, "sd.wiktionary.org"
//, "se.wikipedia.org"
//, "se.wikibooks.org"
//, "sg.wikipedia.org"
//, "sg.wiktionary.org"
//, "sh.wikipedia.org"
//, "sh.wiktionary.org"
//, "simple.wikipedia.org"
//, "simple.wikibooks.org"
//, "simple.wikiquote.org"
//, "simple.wiktionary.org"
//, "si.wikipedia.org"
//, "si.wikibooks.org"
//, "si.wiktionary.org"
//, "sk.wikipedia.org"
//, "sk.wikibooks.org"
//, "sk.wikiquote.org"
//, "sk.wikisource.org"
//, "sk.wiktionary.org"
//, "sl.wikipedia.org"
//, "sl.wikibooks.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"
//, "species.wikimedia.org"
//, "sq.wikipedia.org"
//, "sq.wikibooks.org"
//, "sq.wikinews.org"
//, "sq.wikiquote.org"
//, "sq.wiktionary.org"
//, "srn.wikipedia.org"
//, "sr.wikipedia.org"
//, "sr.wikibooks.org"
//, "sr.wikinews.org"
//, "sr.wikiquote.org"
//, "sr.wikisource.org"
//, "sr.wiktionary.org"
//, "ss.wikipedia.org"
//, "ss.wiktionary.org"
//, "stq.wikipedia.org"
//, "st.wikipedia.org"
//, "st.wiktionary.org"
//, "su.wikipedia.org"
//, "su.wikibooks.org"
//, "su.wikiquote.org"
//, "su.wiktionary.org"
//, "sv.wikipedia.org"
//, "sv.wikibooks.org"
//, "sv.wikinews.org"
//, "sv.wikiquote.org"
//, "sv.wikisource.org"
//, "sv.wikiversity.org"
//, "sv.wikivoyage.org"
//, "sv.wiktionary.org"
//, "sw.wikipedia.org"
//, "sw.wikibooks.org"
//, "sw.wiktionary.org"
//, "szl.wikipedia.org"
//, "ta.wikipedia.org"
//, "ta.wikibooks.org"
//, "ta.wikinews.org"
//, "ta.wikiquote.org"
//, "ta.wikisource.org"
//, "ta.wiktionary.org"
//, "tet.wikipedia.org"
//, "te.wikipedia.org"
//, "te.wikibooks.org"
//, "te.wikiquote.org"
//, "te.wikisource.org"
//, "te.wiktionary.org"
//, "tg.wikipedia.org"
//, "tg.wikibooks.org"
//, "tg.wiktionary.org"
//, "th.wikipedia.org"
//, "th.wikibooks.org"
//, "th.wikinews.org"
//, "th.wikiquote.org"
//, "th.wikisource.org"
//, "th.wiktionary.org"
//, "ti.wikipedia.org"
//, "ti.wiktionary.org"
//, "tk.wikipedia.org"
//, "tk.wikibooks.org"
//, "tk.wikiquote.org"
//, "tk.wiktionary.org"
//, "tl.wikipedia.org"
//, "tl.wikibooks.org"
//, "tl.wiktionary.org"
//, "tn.wikipedia.org"
//, "tn.wiktionary.org"
//, "to.wikipedia.org"
//, "to.wiktionary.org"
//, "tpi.wikipedia.org"
//, "tpi.wiktionary.org"
//, "tr.wikipedia.org"
//, "tr.wikibooks.org"
//, "tr.wikinews.org"
//, "tr.wikiquote.org"
//, "tr.wikisource.org"
//, "tr.wiktionary.org"
//, "ts.wikipedia.org"
//, "ts.wiktionary.org"
//, "tt.wikipedia.org"
//, "tt.wikibooks.org"
//, "tt.wikiquote.org"
//, "tt.wiktionary.org"
//, "tum.wikipedia.org"
//, "tw.wikipedia.org"
//, "tw.wiktionary.org"
//, "tyv.wikipedia.org"
//, "ty.wikipedia.org"
//, "udm.wikipedia.org"
//, "ug.wikipedia.org"
//, "ug.wikibooks.org"
//, "ug.wikiquote.org"
//, "ug.wiktionary.org"
//, "uk.wikipedia.org"
//, "uk.wikibooks.org"
//, "uk.wikinews.org"
//, "uk.wikiquote.org"
//, "uk.wikisource.org"
//, "uk.wikivoyage.org"
//, "uk.wiktionary.org"
//, "ur.wikipedia.org"
//, "ur.wikibooks.org"
//, "ur.wikiquote.org"
//, "ur.wiktionary.org"
//, "uz.wikipedia.org"
//, "uz.wikibooks.org"
//, "uz.wikiquote.org"
//, "uz.wiktionary.org"
//, "vec.wikipedia.org"
//, "vec.wikisource.org"
//, "vec.wiktionary.org"
//, "vep.wikipedia.org"
//, "ve.wikipedia.org"
//, "vi.wikipedia.org"
//, "vi.wikibooks.org"
//, "vi.wikiquote.org"
//, "vi.wikisource.org"
//, "vi.wikivoyage.org"
//, "vi.wiktionary.org"
//, "vls.wikipedia.org"
//, "vo.wikipedia.org"
//, "vo.wikibooks.org"
//, "vo.wikiquote.org"
//, "vo.wiktionary.org"
//, "war.wikipedia.org"
//, "wa.wikipedia.org"
//, "wa.wikibooks.org"
//, "wa.wiktionary.org"
//, "www.wikidata.org"
//, "wo.wikipedia.org"
//, "wo.wikiquote.org"
//, "wo.wiktionary.org"
//, "wuu.wikipedia.org"
//, "xal.wikipedia.org"
//, "xh.wikipedia.org"
//, "xh.wikibooks.org"
//, "xh.wiktionary.org"
//, "xmf.wikipedia.org"
//, "yi.wikipedia.org"
//, "yi.wikisource.org"
//, "yi.wiktionary.org"
//, "yo.wikipedia.org"
//, "yo.wikibooks.org"
//, "yo.wiktionary.org"
//, "za.wikipedia.org"
//, "za.wikibooks.org"
//, "za.wikiquote.org"
//, "za.wiktionary.org"
//, "zea.wikipedia.org"
//, "zh-classical.wikipedia.org"
//, "zh-min-nan.wikipedia.org"
//, "zh-min-nan.wikibooks.org"
//, "zh-min-nan.wikiquote.org"
//, "zh-min-nan.wikisource.org"
//, "zh-min-nan.wiktionary.org"
//, "zh-yue.wikipedia.org"
//, "zh.wikipedia.org"
//, "zh.wikibooks.org"
//, "zh.wikinews.org"
//, "zh.wikiquote.org"
//, "zh.wikisource.org"
//, "zh.wikivoyage.org"
//, "zh.wiktionary.org"
//, "zu.wikipedia.org"
//, "zu.wikibooks.org"
//, "zu.wiktionary.org"
//};
}
//, "als.wikisource.org"
//, "als.wikinews.org"
//, "nds.wikinews.org"
//, "ba.wiktionary.org"
//, "tokipona.wikibooks.org"
