1
0
mirror of https://github.com/gnosygnu/xowa.git synced 2026-03-02 03:49:30 +00:00

'v3.6.3.1'

This commit is contained in:
gnosygnu
2016-06-19 23:58:10 -04:00
parent 96636f3161
commit d4e8590345
1960 changed files with 20790 additions and 9272 deletions

View File

@@ -63,7 +63,7 @@ public class Db_mgr_fxt {
public void Test_load_page(int ns_id, int page_id, String expd) {
Xowe_wiki wiki = bldr_fxt.Wiki();
Xow_ns ns = wiki.Ns_mgr().Ids_get_or_null(ns_id);
wiki.Db_mgr_as_sql().Load_mgr().Load_page(actl.Id_(page_id), ns, false);
wiki.Db_mgr_as_sql().Load_mgr().Load_page(actl.Id_(page_id), ns);
Tfds.Eq(expd, String_.new_a7(actl.Text()));
}
int[] Xto_int_ary(List_adp rslts) {
@@ -83,7 +83,7 @@ public class Db_mgr_fxt {
Tfds.Eq_ary(expd, Xto_int_ary(ctg));
}
int[] Xto_int_ary(Xoctg_view_ctg ctg) {
List_adp list = List_adp_.new_();
List_adp list = List_adp_.New();
byte tid_max = Xoa_ctg_mgr.Tid__max;
for (byte tid = 0; tid < tid_max; tid++) {
Xoctg_view_grp grp = ctg.Grp_by_tid(tid); if (grp == null) continue;
@@ -107,7 +107,7 @@ public class Db_mgr_fxt {
Tfds.Eq_str_lines(expd, actl);
}
int[] Xto_int_ary(Xoctg_data_ctg ctg) {
List_adp list = List_adp_.new_();
List_adp list = List_adp_.New();
byte tid_max = Xoa_ctg_mgr.Tid__max;
for (byte tid = 0; tid < tid_max; tid++) {
Xoctg_idx_mgr grp = ctg.Grp_by_tid(tid); if (grp == null) continue;

View File

@@ -34,7 +34,7 @@ public class Xob_base_fxt {
public Xoae_app App() {return app;} private Xoae_app app;
public Xob_bldr Bldr() {return bldr;} private Xob_bldr bldr;
public Xowe_wiki Wiki() {return wiki;} private Xowe_wiki wiki;
public GfoInvkAble Bldr_itm() {return bldr_itm;} GfoInvkAble bldr_itm;
public Gfo_invk Bldr_itm() {return bldr_itm;} Gfo_invk bldr_itm;
public Xowd_page_itm page_(String ttl) {return page_(ttl, "");}
public Xowd_page_itm page_(String ttl, String text) {return new Xowd_page_itm().Ttl_(Bry_.new_u8(ttl), wiki.Ns_mgr()).Text_(Bry_.new_u8(text));}
public Io_fil_chkr meta_(String url, String data) {return new Io_fil_chkr(Io_url_.mem_fil_(url), data);}

View File

@@ -20,7 +20,7 @@ import gplx.core.consoles.*; import gplx.core.envs.*;
import gplx.xowa.apps.*; import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.xmls.*; import gplx.xowa.bldrs.cfgs.*; import gplx.xowa.langs.bldrs.*;
import gplx.xowa.bldrs.wkrs.*;
import gplx.langs.jsons.*;
public class Xob_bldr implements GfoInvkAble {
public class Xob_bldr implements Gfo_invk {
private boolean pause_at_end = false; private long prv_prog_time; private Xob_xml_parser dump_parser;
public Xob_bldr(Xoae_app app) {
this.app = app;
@@ -67,11 +67,11 @@ public class Xob_bldr implements GfoInvkAble {
if ( String_.Eq(atr_key, "key")
|| String_.Eq(atr_key, "wiki")) continue;
byte[] atr_val = atr_kv.Val_as_bry();
GfoInvkAble_.InvkCmd_val(clone, atr_key + GfoInvkAble_.Mutator_suffix, String_.new_u8(atr_val));
Gfo_invk_.Invk_by_val(clone, atr_key + Gfo_invk_.Mutator_suffix, String_.new_u8(atr_val));
}
cmd_mgr.Add(clone);
}
gplx.core.threads.Thread_adp_.invk_("bldr_by_json", this, Invk_run_by_kit).Start();
gplx.core.threads.Thread_adp_.Start_by_key("bldr_by_json", this, Invk_run_by_kit);
} catch (Exception e) {
app.Gui_mgr().Kit().Ask_ok("", "", "error: ~{0}", Err_.Message_gplx_log(e));
}
@@ -140,7 +140,7 @@ public class Xob_bldr implements GfoInvkAble {
else if (ctx.Match(k, Invk_run)) Run();
else if (ctx.Match(k, Invk_run_by_kit)) Run_by_kit();
else if (ctx.Match(k, Invk_cancel)) Cancel();
else return GfoInvkAble_.Rv_unhandled;
else return Gfo_invk_.Rv_unhandled;
return this;
}
private static final String
@@ -155,7 +155,7 @@ public class Xob_bldr implements GfoInvkAble {
. make_fil_len: max size of made file; EX: /id/..../0000000001.csv will have max len of 64 KB
. dump_fil_len: max size of temp file; EX: /tmp/.../0000000001.csv will have max len of 1 MB
. sort_mem_len: max size of memory for external merge process; note the following
.. a continguous range of memory of that size will be needed: "Bry_bfr.new_(sort_mem_len)" will be called
.. a continguous range of memory of that size will be needed: "Bry_bfr_.New(sort_mem_len)" will be called
.. large sort_mem_len will result in smaller number of merge files
... EX: 16 MB will take en.wikipedia.org's 640 MB title files and generate 40 temp files of 8 MB each
.. number of merge files is number of open file channels during merge process

View File

@@ -18,19 +18,20 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
package gplx.xowa.bldrs; import gplx.*; import gplx.xowa.*;
import gplx.core.primitives.*;
import gplx.xowa.wikis.*; import gplx.xowa.xtns.wdatas.imports.*;
import gplx.xowa.bldrs.wkrs.*; import gplx.xowa.bldrs.cmds.texts.*; import gplx.xowa.bldrs.cmds.texts.sqls.*; import gplx.xowa.bldrs.cmds.texts.tdbs.*; import gplx.xowa.addons.builds.files.*; import gplx.xowa.bldrs.cmds.ctgs.*; import gplx.xowa.bldrs.cmds.utils.*;
import gplx.xowa.bldrs.wkrs.*; import gplx.xowa.bldrs.cmds.texts.*; import gplx.xowa.bldrs.cmds.texts.sqls.*; import gplx.xowa.bldrs.cmds.texts.tdbs.*; import gplx.xowa.addons.bldrs.files.*; import gplx.xowa.bldrs.cmds.ctgs.*; import gplx.xowa.bldrs.cmds.utils.*;
import gplx.xowa.bldrs.cmds.diffs.*;
import gplx.xowa.files.origs.*; import gplx.xowa.htmls.core.bldrs.*;
import gplx.xowa.addons.apps.searchs.bldrs.*; import gplx.xowa.addons.builds.files.cmds.*;
public class Xob_cmd_mgr implements GfoInvkAble {
import gplx.xowa.addons.wikis.searchs.bldrs.*;
import gplx.xowa.addons.bldrs.files.cmds.*; import gplx.xowa.addons.wikis.htmls.css.bldrs.*;
public class Xob_cmd_mgr implements Gfo_invk {
private final Xob_bldr bldr;
public final Xob_cmd_regy cmd_regy;
public Xob_cmd_mgr(Xob_bldr bldr, Xob_cmd_regy cmd_regy) {this.bldr = bldr; this.cmd_regy = cmd_regy;}
public void Clear() {list.Clear(); dump_rdrs.Clear();}
public int Len() {return list.Count();} private final List_adp list = List_adp_.new_();
public int Len() {return list.Count();} private final List_adp list = List_adp_.New();
public Xob_cmd Get_at(int i) {return (Xob_cmd)list.Get_at(i);}
public Xob_cmd Add(Xob_cmd cmd) {list.Add(cmd); return cmd;}
public GfoInvkAble Add_cmd(Xowe_wiki wiki, String cmd_key) {
public Gfo_invk Add_cmd(Xowe_wiki wiki, String cmd_key) {
Xob_cmd prime = cmd_regy.Get_or_null(cmd_key);
if (prime != null) {
Xob_cmd clone = prime.Cmd_clone(bldr, wiki);
@@ -40,7 +41,7 @@ public class Xob_cmd_mgr implements GfoInvkAble {
if (String_.Eq(cmd_key, Xob_cmd_keys.Key_text_init)) return Add(new Xob_init_cmd(bldr, wiki));
else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_text_page)) return Xml_rdr_direct_add(wiki, new Xob_page_cmd(bldr, wiki));
else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_text_css)) return Add(new Xob_css_cmd(bldr, wiki));
else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_text_search_wkr)) return Xml_rdr_direct_add(wiki, new gplx.xowa.addons.apps.searchs.bldrs.Srch_bldr_wkr(bldr, wiki));
else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_text_search_wkr)) return Xml_rdr_direct_add(wiki, new gplx.xowa.addons.wikis.searchs.bldrs.Srch_bldr_wkr(bldr, wiki));
else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_text_search_cmd)) return Add(new Srch_bldr_cmd(bldr, wiki));
else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_text_cat_core_v1)) return Xml_rdr_parser_add(wiki, new Xob_ctg_v1_sql().Ctor(bldr, wiki));
else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_text_cat_core)) return Add(new Xob_category_registry_sql(bldr, wiki));
@@ -99,13 +100,13 @@ public class Xob_cmd_mgr implements GfoInvkAble {
}
return rv;
}
private Hash_adp dump_rdrs = Hash_adp_.new_(); private Bry_obj_ref dump_rdrs_ref = Bry_obj_ref.New_empty();
private Hash_adp dump_rdrs = Hash_adp_.New(); private Bry_obj_ref dump_rdrs_ref = Bry_obj_ref.New_empty();
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
if (ctx.Match(k, Invk_add)) return Add_cmd(Wiki_get_or_make(m), m.ReadStr("v"));
else if (ctx.Match(k, Invk_add_many)) return Add_many(m);
else if (ctx.Match(k, Invk_get_first)) return Get_first(m);
else if (ctx.Match(k, Invk_new_batch)) return new Xob_core_batch_utl(bldr, m.ReadBry("v"));
else return GfoInvkAble_.Rv_unhandled;
else return Gfo_invk_.Rv_unhandled;
}
private static final String Invk_add = "add", Invk_add_many = "add_many", Invk_new_batch = "new_batch", Invk_get_first = "get_first";
private Object Get_first(GfoMsg m) {

View File

@@ -32,6 +32,7 @@ public class Xob_db_file {
public static Xob_db_file New__temp_log(Io_url dir) {return New(dir, Name__temp_log);}
public static Xob_db_file New__redlink(Io_url dir) {return New(dir, Name__redlink);}
public static Xob_db_file New__page_link(Xow_wiki wiki) {return New(wiki.Fsys_mgr().Root_dir(), Name__page_link);}
public static Xob_db_file New__page_file_map(Xow_wiki wiki) {return New(wiki.Fsys_mgr().Root_dir(), wiki.Domain_str() + "-file-page_map.xowa");}
public static Xob_db_file New__deletion_db(Xow_wiki wiki) {
String name = String_.Format("{0}-file-core-deletion_db-{1}.xowa", wiki.Domain_str(), DateAdp_.Now().XtoStr_fmt("yyyy.MM"));
return New(wiki.Fsys_mgr().Root_dir(), name);

View File

@@ -46,12 +46,12 @@ public class Xob_fxt {
String text = String_.Concat_lines_nl_skip_last(expd); // skipLast b/c if trailing line wanted, easier to pass in extra argument for ""
expd_list.Add(new Io_fil_chkr(url, text));
return this;
} List_adp expd_list = List_adp_.new_();
} List_adp expd_list = List_adp_.New();
public Xob_fxt Fil_skip(Io_url... urls) {
for (int i = 0; i < urls.length; i++)
skip_list.Add(urls[i]);
return this;
} List_adp skip_list = List_adp_.new_();
} List_adp skip_list = List_adp_.New();
public Xob_fxt doc_ary_(Xowd_page_itm... v) {doc_ary = v; return this;} private Xowd_page_itm[] doc_ary;
public Xowd_page_itm doc_wo_date_(int id, String title, String text) {return doc_(id, "2012-01-02 13:14", title, text);}
public Xowd_page_itm doc_(int id, String date, String title, String text) {
@@ -144,7 +144,7 @@ public class Xob_fxt {
}
}
Io_fil[] wiki_() {
List_adp rv = List_adp_.new_();
List_adp rv = List_adp_.New();
wiki_fil_add(rv, wiki.Tdb_fsys_mgr().Ns_dir());
wiki_fil_add(rv, wiki.Tdb_fsys_mgr().Site_dir());
rv.Sort();

View File

@@ -18,21 +18,21 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
package gplx.xowa.bldrs; import gplx.*; import gplx.xowa.*;
import gplx.xowa.wikis.data.*; import gplx.xowa.wikis.data.tbls.*; import gplx.xowa.bldrs.cmds.*;
public class Xob_ns_to_db_mgr {
private final Xob_ns_to_db_wkr wkr; private final Xowd_db_mgr db_mgr; private final long db_max; private boolean one_file_conn_init = true;
private final Ordered_hash db_list = Ordered_hash_.New();
public Xob_ns_to_db_mgr(Xob_ns_to_db_wkr wkr, Xowd_db_mgr db_mgr, long db_max) {
private final Xob_ns_to_db_wkr wkr; private final Xow_db_mgr db_mgr; private final long db_max; private boolean one_file_conn_init = true;
private final Ordered_hash db_list = Ordered_hash_.New();
public Xob_ns_to_db_mgr(Xob_ns_to_db_wkr wkr, Xow_db_mgr db_mgr, long db_max) {
this.wkr = wkr; this.db_mgr = db_mgr; this.db_max = db_max;
}
public Xowd_db_file Get_by_ns(Xob_ns_file_itm ns_file_itm, int data_len) {
Xowd_db_file rv = null;
if (wkr.Db_tid() == Xowd_db_file_.Tid_text && db_mgr.Props().Layout_text().Tid_is_all_or_few()) {
public Xow_db_file Get_by_ns(Xob_ns_file_itm ns_file_itm, int data_len) {
Xow_db_file rv = null;
if (db_mgr.Props().Layout_text().Tid_is_all()) {
rv = db_mgr.Db__core();
if (one_file_conn_init) {
one_file_conn_init = false;
Init_tbl(rv);
}
}
else if (wkr.Db_tid() == Xowd_db_file_.Tid_html_data && db_mgr.Props().Layout_html().Tid_is_all_or_few()) {
else if (wkr.Db_tid() == Xow_db_file_.Tid__html_data && db_mgr.Props().Layout_html().Tid_is_all_or_few()) {
if (one_file_conn_init) {
one_file_conn_init = false;
rv = db_mgr.Dbs__make_by_tid(wkr.Db_tid());
@@ -46,7 +46,7 @@ public class Xob_ns_to_db_mgr {
if (db_id == Xob_ns_file_itm.Nth_db_id_null) // ns not assigned yet to db
rv = Init_db(ns_file_itm);
else
rv = db_mgr.Dbs__get_by_id(db_id);
rv = db_mgr.Dbs__get_by_id_or_fail(db_id);
long file_len = rv.File_len();
if (file_len + data_len > db_max) { // file is "full"
Term_tbl(rv);
@@ -56,32 +56,32 @@ public class Xob_ns_to_db_mgr {
rv.File_len_add(data_len);
return rv;
}
private Xowd_db_file Init_db(Xob_ns_file_itm ns_file_itm) {
Xowd_db_file rv = db_mgr.Dbs__make_by_tid(ns_file_itm.Db_file_tid(), Int_.To_str(ns_file_itm.Ns_ids(), "|"), ns_file_itm.Nth_db_idx(), ns_file_itm.Make_file_name());
private Xow_db_file Init_db(Xob_ns_file_itm ns_file_itm) {
Xow_db_file rv = db_mgr.Dbs__make_by_tid(ns_file_itm.Db_file_tid(), Int_.To_str(ns_file_itm.Ns_ids(), "|"), ns_file_itm.Nth_db_idx(), ns_file_itm.Make_file_name());
ns_file_itm.Nth_db_id_(rv.Id());
Init_tbl(rv);
return rv;
}
private void Init_tbl(Xowd_db_file db) {
private void Init_tbl(Xow_db_file db) {
wkr.Tbl_init(db);
db_list.Add(db.Id(), db);
}
private void Term_tbl(Xowd_db_file db) {
private void Term_tbl(Xow_db_file db) {
wkr.Tbl_term(db);
db_list.Del(db.Id());
}
public void Rls_all() {
Xowd_db_file[] ary = (Xowd_db_file[])db_list.To_ary(Xowd_db_file.class);
Xow_db_file[] ary = (Xow_db_file[])db_list.To_ary(Xow_db_file.class);
int len = ary.length;
for (int i = 0; i < len; ++i) {
Xowd_db_file db = (Xowd_db_file)ary[i];
Xow_db_file db = (Xow_db_file)ary[i];
Term_tbl(db); // SQLITE:1_TXN; may call close on db where txn is already closed
}
}
public void Commit() {
int len = db_list.Count();
for (int i = 0; i < len; ++i) {
Xowd_db_file db = (Xowd_db_file)db_list.Get_at(i);
Xow_db_file db = (Xow_db_file)db_list.Get_at(i);
db.Conn().Txn_sav();
}
}

View File

@@ -19,6 +19,6 @@ package gplx.xowa.bldrs; import gplx.*; import gplx.xowa.*;
import gplx.xowa.wikis.data.*;
public interface Xob_ns_to_db_wkr {
byte Db_tid();
void Tbl_init(Xowd_db_file db);
void Tbl_term(Xowd_db_file db);
void Tbl_init(Xow_db_file db);
void Tbl_term(Xow_db_file db);
}

View File

@@ -33,10 +33,10 @@ public class Xob_page_wkr_cmd implements Xob_cmd {
long fil_len = 0;
Gfo_usr_dlg usr_dlg = bldr.App().Usr_dlg();
try {
gplx.core.ios.Io_stream_rdr src_rdr = wiki.Import_cfg().Src_rdr();
gplx.core.ios.streams.Io_stream_rdr src_rdr = wiki.Import_cfg().Src_rdr();
fil = Io_buffer_rdr.new_(src_rdr, optRdrBfrSize);
fil_len = fil.Fil_len();
if (src_rdr.Tid() == gplx.core.ios.Io_stream_.Tid_bzip2) fil_len = (fil_len * 100) / 18; // HACK: no way to get actual file progress; assume 18% compression
if (src_rdr.Tid() == gplx.core.ios.streams.Io_stream_.Tid_bzip2) fil_len = (fil_len * 100) / 18; // HACK: no way to get actual file progress; assume 18% compression
// fil.Seek(bldr.Opts().ResumeAt());
int prv_pos = 0;
while (true) {

View File

@@ -21,7 +21,7 @@ import gplx.xowa.wikis.data.tbls.*;
public class Xobd_parser implements Xob_page_wkr {
private final Xob_bldr bldr;
private final Btrie_slim_mgr trie = Btrie_slim_mgr.ci_a7(); // NOTE:ci.ascii:MW_const.en; ctg.v1 assumes [[Category:
private final List_adp wkr_list = List_adp_.new_();
private final List_adp wkr_list = List_adp_.New();
public String Page_wkr__key() {return KEY;} static final String KEY = "page_parser";
public Xobd_parser(Xob_bldr bldr) {this.bldr = bldr;}
public void Wkr_add(Xobd_parser_wkr wkr) {wkr_list.Add(wkr);}

View File

@@ -17,7 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.bldrs; import gplx.*; import gplx.xowa.*;
import gplx.xowa.wikis.data.tbls.*;
public interface Xobd_parser_wkr extends GfoInvkAble {
public interface Xobd_parser_wkr extends Gfo_invk {
Ordered_hash Wkr_hooks();
void Wkr_bgn(Xob_bldr bldr);
int Wkr_run(Xowd_page_itm page, byte[] src, int src_len, int bgn, int end);

View File

@@ -36,7 +36,7 @@ class Io_sort_filCmd_reg implements Io_sort_filCmd { // 123|bgn|end|1
}
public void Flush(Io_url fil) {
Io_mgr.Instance.SaveFilBry(fil, bfr.Bfr(), bfr.Len());
} private Bry_bfr bfr = Bry_bfr.new_(); int fil_idx = 0; int itm_count = 0;
} private Bry_bfr bfr = Bry_bfr_.New(); int fil_idx = 0; int itm_count = 0;
}
class Io_url_gen_nest implements gplx.core.ios.Io_url_gen {
public Io_url Cur_url() {return cur_url;} Io_url cur_url;

View File

@@ -18,7 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
package gplx.xowa.bldrs.aria2; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*;
import gplx.core.envs.*;
import gplx.xowa.apps.fsys.*; import gplx.xowa.bldrs.wms.dumps.*;
public class Aria2_lib_mgr implements GfoInvkAble {
public class Aria2_lib_mgr implements Gfo_invk {
public Process_adp Lib() {return lib;} private Process_adp lib = new Process_adp();
public void Init_by_app(Xoae_app app) {
Xoa_fsys_eval cmd_eval = app.Url_cmd_eval();
@@ -27,7 +27,7 @@ public class Aria2_lib_mgr implements GfoInvkAble {
, Lib_args_fmt
, "wiki_abrv", "wiki_date", "wiki_type");
}
// private Bry_bfr tmp_bfr = Bry_bfr.reset_(255);
// private Bry_bfr tmp_bfr = Bry_bfr_.Reset(255);
public void Exec(Xowm_dump_file dump_file) {
// byte[] args_bry = lib.Args_fmtr().Bld_bry_many(tmp_bfr, dump_file.Wiki_alias(), dump_file.Dump_date(), dump_file.Dump_file_type());
// Process_adp process = new Process_adp().Exe_url_(lib.Exe_url()).Args_str_(String_.new_u8(args_bry));
@@ -35,10 +35,10 @@ public class Aria2_lib_mgr implements GfoInvkAble {
}
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
if (ctx.Match(k, Invk_lib)) return lib;
else return GfoInvkAble_.Rv_unhandled;
else return Gfo_invk_.Rv_unhandled;
}
private static final String Invk_lib = "lib";
private static final String Lib_args_fmt = String_.Concat
private static final String Invk_lib = "lib";
private static final String Lib_args_fmt = String_.Concat
( "--max-connection-per-server=2"
, " --max-concurrent-downloads=20"
, " --split=4"

View File

@@ -18,19 +18,19 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
package gplx.xowa.bldrs.aria2; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*;
import gplx.gfui.*;
class Gfui_process_win {
public void Exec_async(String process, String args, GfoInvkAbleCmd done_cbk) {
public void Exec_async(String process, String args, Gfo_invk_cmd done_cbk) {
// Gfo_process process = new Gfo_process().Init_process_(process, args).Init_async_(done_cbk).Init_strm_out_err_(output_box).Exec();
}
}
class Gfo_process {
// private GfoInvkAbleCmd done_cbk;
// private Gfo_invk_cmd done_cbk;
// private Gfo_process_wtr out_wtr, err_wtr;
public String Cmd_path() {return cmd_path;} private String cmd_path;
public String Cmd_args() {return cmd_args;} private String cmd_args;
public byte Mode() {return mode;} private byte mode;
public Gfo_process Init_cmd_(String cmd_path, String cmd_args) {this.cmd_path = cmd_path; this.cmd_args = cmd_args; return this;}
public Gfo_process Init_mode_async_() {mode = Gfo_process_.Mode_async; return this;}
// public Gfo_process Init_mode_async_(GfoInvkAbleCmd done_cbk) {this.done_cbk = done_cbk; return this.Init_mode_async_();}
// public Gfo_process Init_mode_async_(Gfo_invk_cmd done_cbk) {this.done_cbk = done_cbk; return this.Init_mode_async_();}
// public Gfo_process Init_wtr_out_err_(Gfo_process_wtr wtr) {out_wtr = err_wtr = wtr; return this;}
}
class Gfo_process_wtr {}

View File

@@ -16,14 +16,14 @@ 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.bldrs.cfgs; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*;
public class Xoac_wiki_cfg_bldr_fil implements GfoInvkAble {
public class Xoac_wiki_cfg_bldr_fil implements Gfo_invk {
public Xoac_wiki_cfg_bldr_fil(String wiki) {this.wiki = wiki;}
public String Wiki() {return wiki;} private String wiki;
public int Itms_count() {return list.Count();}
public Xoac_wiki_cfg_bldr_cmd Itms_get_at(int i) {return (Xoac_wiki_cfg_bldr_cmd)list.Get_at(i);}
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
if (ctx.Match(k, Invk_new_cmd_)) {Itms_add(m.ReadStr("id"), m.ReadStr("text"));}
else return GfoInvkAble_.Rv_unhandled;
else return Gfo_invk_.Rv_unhandled;
return this;
} private static final String Invk_new_cmd_ = "new_cmd_";
public Xoac_wiki_cfg_bldr_cmd Itms_add(String key, String text) {
@@ -31,5 +31,5 @@ public class Xoac_wiki_cfg_bldr_fil implements GfoInvkAble {
list.Add(rv);
return rv;
}
List_adp list = List_adp_.new_();
List_adp list = List_adp_.New();
}

View File

@@ -17,7 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.bldrs.cfgs; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*;
import gplx.core.strings.*;
public class Xob_wiki_cfg_bldr implements GfoInvkAble {
public class Xob_wiki_cfg_bldr implements Gfo_invk {
public Xob_wiki_cfg_bldr(Xob_bldr bldr) {this.app = bldr.App();} private Xoae_app app;
public void Exec() {
int len = hash.Count();
@@ -41,7 +41,7 @@ public class Xob_wiki_cfg_bldr implements GfoInvkAble {
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
if (ctx.Match(k, Invk_get)) return Itms_get_or_new(m.ReadStr("v"));
else if (ctx.Match(k, Invk_run)) Exec();
else return GfoInvkAble_.Rv_unhandled;
else return Gfo_invk_.Rv_unhandled;
return this;
} private static final String Invk_get = "get", Invk_run = "run";
public void Clear() {hash.Clear();}

View File

@@ -17,16 +17,16 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.bldrs.cmds; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*;
import gplx.core.envs.*;
import gplx.dbs.*; import gplx.xowa.wikis.caches.*; import gplx.xowa.addons.builds.files.*; import gplx.xowa.files.origs.*;
import gplx.dbs.*; import gplx.xowa.wikis.caches.*; import gplx.xowa.addons.bldrs.files.*; import gplx.xowa.files.origs.*;
import gplx.xowa.bldrs.wkrs.*;
import gplx.xowa.wikis.nss.*;
import gplx.xowa.wikis.data.*; import gplx.xowa.wikis.dbs.*; import gplx.xowa.wikis.data.tbls.*;
import gplx.xowa.addons.builds.files.utls.*;
import gplx.xowa.addons.bldrs.files.utls.*;
import gplx.xowa.parsers.*; import gplx.xowa.parsers.tmpls.*;
public abstract class Xob_dump_mgr_base extends Xob_itm_basic_base implements Xob_cmd, GfoInvkAble {
public abstract class Xob_dump_mgr_base extends Xob_itm_basic_base implements Xob_cmd, Gfo_invk {
private Xob_dump_src_id page_src;
private Xowd_db_mgr db_fsys_mgr; protected Xop_parser parser; protected Xop_ctx ctx; protected Xop_root_tkn root;
private int[] ns_ary; private Xowd_db_file[] db_ary;
private Xow_db_mgr db_fsys_mgr; protected Xop_parser parser; protected Xop_ctx ctx; protected Xop_root_tkn root;
private int[] ns_ary; private Xow_db_file[] db_ary;
private int ns_bgn = -1, db_bgn = -1, pg_bgn = -1;
private int ns_end = -1, db_end = -1, pg_end = Int_.Max_value;
private int commit_interval = 1000, progress_interval = 250, cleanup_interval = 2500, select_size = 10 * Io_mgr.Len_mb;
@@ -45,7 +45,7 @@ public abstract class Xob_dump_mgr_base extends Xob_itm_basic_base implements Xo
ctx = wiki.Parser_mgr().Ctx();
root = ctx.Tkn_mkr().Root(Bry_.Empty);
wiki.Init_assert(); // NOTE: must init wiki for db_mgr_as_sql
wiki.Db_mgr_as_sql().Core_data_mgr().Init_by_load(gplx.xowa.wikis.Xow_fsys_mgr.Find_core_fil(wiki)); // NOTE: must reinit providers as previous steps may have rls'd (and left member variable conn which is closed)
wiki.Db_mgr_as_sql().Core_data_mgr().Init_by_load(gplx.xowa.wikis.data.Xow_db_file__core_.Find_core_fil(wiki)); // NOTE: must reinit providers as previous steps may have rls'd (and left member variable conn which is closed)
wiki.File__orig_mgr().Wkrs_del(Xof_orig_wkr_.Tid_wmf_api);
db_fsys_mgr = wiki.Db_mgr_as_sql().Core_data_mgr();
db_ary = Xob_dump_mgr_base_.Init_text_files_ary(db_fsys_mgr);
@@ -110,7 +110,7 @@ public abstract class Xob_dump_mgr_base extends Xob_itm_basic_base implements Xo
}
}
private void Exec_db_itm(Xob_dump_bmk dump_bmk, int ns_ord, int ns_id, int db_id) {
List_adp pages = List_adp_.new_();
List_adp pages = List_adp_.New();
Xow_ns ns = wiki.Ns_mgr().Ids_get_or_null(ns_id);
int pg_id = pg_bgn;
while (true) {
@@ -183,7 +183,7 @@ public abstract class Xob_dump_mgr_base extends Xob_itm_basic_base implements Xo
usr_dlg.Note_many("", "", "done: ~{0} ~{1}", exec_count, Decimal_adp_.divide_safe_(exec_count, Env_.TickCount_elapsed_in_sec(time_bgn)).To_str("#,###.000"));
}
private void Free() {
Xow_wiki_.Rls_mem(wiki, true);
Xowe_wiki_.Rls_mem(wiki, true);
}
protected void Reset_db_y_() {this.reset_db = true;}
@Override public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
@@ -204,7 +204,7 @@ public abstract class Xob_dump_mgr_base extends Xob_itm_basic_base implements Xo
else if (ctx.Match(k, Invk_exec_count_max_)) exec_count_max = m.ReadInt("v");
else if (ctx.Match(k, Invk_exit_now_)) exit_now = m.ReadYn("v");
else if (ctx.Match(k, Invk_exit_after_commit_)) exit_after_commit = m.ReadYn("v");
else return GfoInvkAble_.Rv_unhandled;
else return Gfo_invk_.Rv_unhandled;
return this;
}
private void Notify_restoring(String itm, int val) {
@@ -222,7 +222,7 @@ public abstract class Xob_dump_mgr_base extends Xob_itm_basic_base implements Xo
}
class Xob_dump_mgr_base_ {
public static void Load_all_tmpls(Gfo_usr_dlg usr_dlg, Xowe_wiki wiki, Xob_dump_src_id page_src) {
List_adp pages = List_adp_.new_();
List_adp pages = List_adp_.New();
Xow_ns ns_tmpl = wiki.Ns_mgr().Ns_template();
Xow_defn_cache defn_cache = wiki.Cache_mgr().Defn_cache();
int cur_page_id = -1;
@@ -245,24 +245,24 @@ class Xob_dump_mgr_base_ {
}
usr_dlg.Note_many("", "", "tmpl_load done: ~{0}", load_count);
}
public static Xowd_db_file[] Init_text_files_ary(Xowd_db_mgr core_data_mgr) {
List_adp text_files_list = List_adp_.new_();
public static Xow_db_file[] Init_text_files_ary(Xow_db_mgr core_data_mgr) {
List_adp text_files_list = List_adp_.New();
int len = core_data_mgr.Dbs__len();
if (len == 1) return new Xowd_db_file[] {core_data_mgr.Dbs__get_at(0)}; // single file: return core; note that there are no Tid = Text
if (len == 1) return new Xow_db_file[] {core_data_mgr.Dbs__get_at(0)}; // single file: return core; note that there are no Tid = Text
for (int i = 0; i < len; i++) {
Xowd_db_file file = core_data_mgr.Dbs__get_at(i);
Xow_db_file file = core_data_mgr.Dbs__get_at(i);
switch (file.Tid()) {
case Xowd_db_file_.Tid_text:
case Xowd_db_file_.Tid_text_solo:
case Xow_db_file_.Tid__text:
case Xow_db_file_.Tid__text_solo:
text_files_list.Add(file);
break;
}
}
return (Xowd_db_file[])text_files_list.To_ary_and_clear(Xowd_db_file.class);
return (Xow_db_file[])text_files_list.To_ary_and_clear(Xow_db_file.class);
}
}
class Xob_dump_bmk_mgr {
private Bry_bfr save_bfr = Bry_bfr.reset_(1024);
private Bry_bfr save_bfr = Bry_bfr_.Reset(1024);
public Io_url Cfg_url() {return cfg_url;} public Xob_dump_bmk_mgr Cfg_url_(Io_url v) {cfg_url = v; return this;} private Io_url cfg_url;
public void Reset() {Io_mgr.Instance.DeleteFil(cfg_url);}
public void Load(Xoae_app app, Xob_dump_mgr_base dump_mgr) {
@@ -283,7 +283,7 @@ class Xob_dump_bmk_mgr {
class Xob_rate_mgr {
private long time_bgn;
private int item_len;
private Bry_bfr save_bfr = Bry_bfr.reset_(255);
private Bry_bfr save_bfr = Bry_bfr_.Reset(255);
public int Reset_interval() {return reset_interval;} public Xob_rate_mgr Reset_interval_(int v) {reset_interval = v; return this;} private int reset_interval = 10000;
public Io_url Log_file_url() {return log_file;} public Xob_rate_mgr Log_file_(Io_url v) {log_file = v; return this;} private Io_url log_file;
public void Init() {time_bgn = Env_.TickCount();}

View File

@@ -23,14 +23,14 @@ public class Xob_ns_file_itm {
this.db_file_tid = db_file_tid; this.file_name = file_name; this.ns_ids = ns_ids;
this.nth_db_id = Nth_db_id_null; this.nth_db_idx = 1;
}
public byte Db_file_tid() {return db_file_tid;} private final byte db_file_tid;
public String File_name() {return file_name;} private final String file_name;
public int[] Ns_ids() {return ns_ids;} private final int[] ns_ids;
public byte Db_file_tid() {return db_file_tid;} private final byte db_file_tid;
public String File_name() {return file_name;} private final String file_name;
public int[] Ns_ids() {return ns_ids;} private final int[] ns_ids;
public int Nth_db_id() {return nth_db_id;} public void Nth_db_id_(int v) {nth_db_id = v;} private int nth_db_id;
public int Nth_db_idx() {return nth_db_idx;} private int nth_db_idx;
public String Make_file_name() { // EX: en.wikipedia.org-text-ns.000-001.xowa
String rv = String_.Format("-{0}{1}{2}.xowa" // EX: -text-ns.000-db.001.xowa
, Xowd_db_file_.To_key(db_file_tid) // text
, Xow_db_file_.To_key(db_file_tid) // text
, String_.Len_eq_0(file_name) ? "" : "-" + file_name // if empty, don't add "ns.000" segment; produces en.wikipedia.org-text-001.xowa
, nth_db_idx == 1 ? "" : "-db." + Int_.To_str_pad_bgn_zero(nth_db_idx, 3) // "-db.001"
);

View File

@@ -19,7 +19,7 @@ package gplx.xowa.bldrs.cmds; import gplx.*; import gplx.xowa.*; import gplx.xow
import gplx.langs.dsvs.*;
import gplx.xowa.wikis.nss.*;
public class Xob_ns_file_itm_parser extends Dsv_wkr_base {
private byte[] ns_ids_bry; private String name; private final List_adp rslts = List_adp_.new_();
private byte[] ns_ids_bry; private String name; private final List_adp rslts = List_adp_.New();
private Xow_ns_mgr ns_mgr; private byte db_file_tid; private boolean mode_each = false;
public void Ctor(byte db_file_tid, Xow_ns_mgr ns_mgr) {
this.db_file_tid = db_file_tid; this.ns_mgr = ns_mgr;
@@ -36,7 +36,9 @@ public class Xob_ns_file_itm_parser extends Dsv_wkr_base {
@Override public void Commit_itm(Dsv_tbl_parser parser, int pos) {
if (ns_ids_bry == null) throw parser.Err_row_bgn("ns_itm missing ns_ids", pos);
if (mode_each) return;
if (Bry_.Eq(ns_ids_bry, ns_ids_bry_each)) {
// mode is <each>; create map with each ns in separate file
if (Bry_.Eq(ns_ids_bry, Ns_file_map__each)) {
mode_each = true;
int len = ns_mgr.Ords_len();
for (int i = 0; i < len; ++i) {
@@ -46,6 +48,17 @@ public class Xob_ns_file_itm_parser extends Dsv_wkr_base {
}
return;
}
// mode is <few>; create map with each ns in one file; // DB.FEW: DATE:2016-06-07
else if (Bry_.Eq(ns_ids_bry, Ns_file_map__few)) {
int len = ns_mgr.Ords_len();
int[] ns_ary_for_few = new int[len];
for (int i = 0; i < len; ++i) {
ns_ary_for_few[i] = ns_mgr.Ords_get_at(i).Id();
}
rslts.Add(new Xob_ns_file_itm(db_file_tid, String_.Empty, ns_ary_for_few));
return;
}
int[] ns_ids = null;
if (ns_ids_bry.length == 1 && ns_ids_bry[0] == Byte_ascii.Star) { // "*"
int len = ns_mgr.Ords_len();
@@ -69,7 +82,7 @@ public class Xob_ns_file_itm_parser extends Dsv_wkr_base {
this.Load_by_bry(bry);
return (Xob_ns_file_itm[])rslts.To_ary(Xob_ns_file_itm.class);
}
private static final byte[] ns_ids_bry_each = Bry_.new_a7("<each>");
public static final byte[] Ns_file_map__few = Bry_.new_a7("few"), Ns_file_map__each = Bry_.new_a7("<each>");
/*
"" -> no rules; return "default"; generates "text-001" and lumps all ns into it
"*|<id>|3700|2" -> auto-generate per ns

View File

@@ -47,7 +47,7 @@ class Xob_dump_src_id {
private DataRdr New_rdr(Xodb_mgr_sql db_mgr, String page_db_url, int text_db_idx, int cur_ns, int prv_id, byte redirect) {
if (cur_text_db_idx != text_db_idx) {
cur_text_db_idx = text_db_idx;
Xowd_db_file text_db = db_mgr.Core_data_mgr().Dbs__get_by_id(text_db_idx);
Xow_db_file text_db = db_mgr.Core_data_mgr().Dbs__get_by_id_or_fail(text_db_idx);
Db_conn conn = text_db.Conn();
String sql = String_.Format(Sql_select_clause, New_rdr__redirect_clause(redirect));
text_stmt = conn.Stmt_sql(sql);
@@ -75,7 +75,7 @@ class Xob_dump_src_id {
default: throw Err_.new_unhandled(redirect);
}
}
private static final String Sql_select_clause = String_.Concat_lines_nl
private static final String Sql_select_clause = String_.Concat_lines_nl
( "SELECT p.page_id"
, ", p.page_title"
, ", t.text_data"

View File

@@ -33,7 +33,7 @@ class Uca_trie_fxt {
public void Clear() {
if (trie == null) {
trie = new Uca_trie();
bfr = Bry_bfr.new_();
bfr = Bry_bfr_.New();
}
trie.Clear();
} Uca_trie trie; Bry_bfr bfr;

View File

@@ -34,7 +34,7 @@ public class Xob_category_registry_sql implements Xob_cmd {
Gfo_usr_dlg usr_dlg = wiki.Appe().Usr_dlg();
wiki.Init_db_mgr();
Xowd_page_tbl page_core_tbl = wiki.Db_mgr_as_sql().Core_data_mgr().Tbl__page();
Db_rdr rdr = page_core_tbl.conn.Stmt_select_order(page_core_tbl.Tbl_name(), String_.Ary(page_core_tbl.Fld_page_title(), page_core_tbl.Fld_page_id()), String_.Ary(page_core_tbl.Fld_page_ns()), page_core_tbl.Fld_page_title())
Db_rdr rdr = page_core_tbl.Conn().Stmt_select_order(page_core_tbl.Tbl_name(), String_.Ary(page_core_tbl.Fld_page_title(), page_core_tbl.Fld_page_id()), String_.Ary(page_core_tbl.Fld_page_ns()), page_core_tbl.Fld_page_title())
.Crt_int(page_core_tbl.Fld_page_ns(), Xow_ns_.Tid__category)
.Exec_select__rls_auto();
try {
@@ -53,6 +53,6 @@ public class Xob_category_registry_sql implements Xob_cmd {
public void Cmd_bgn(Xob_bldr bldr) {}
public void Cmd_run() {}
public void Cmd_term() {}
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {return GfoInvkAble_.Rv_unhandled;}
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {return Gfo_invk_.Rv_unhandled;}
public static Io_url Tmp_dir(Xowe_wiki wiki) {return wiki.Fsys_mgr().Tmp_dir().GenSubDir(Xob_cmd_keys.Key_text_cat_core);}
}

View File

@@ -28,7 +28,7 @@ public class Xob_category_registry_sql_tst {
}
}
class Xob_category_registry_sql_fxt {
Db_mgr_fxt fxt; Xowe_wiki wiki; Xoae_app app; Int_obj_ref page_id_next = Int_obj_ref.new_(1);
Db_mgr_fxt fxt; Xowe_wiki wiki; Xoae_app app; Int_obj_ref page_id_next = Int_obj_ref.New(1);
public void Clear() {
if (fxt == null) {
fxt = new Db_mgr_fxt().Ctor_fsys();
@@ -53,7 +53,7 @@ class Xob_category_registry_sql_fxt {
}
int[] Parse_rslts_txt(String rslts_txt) {
String[] lines = String_.SplitLines_nl(rslts_txt);
List_adp list = List_adp_.new_();
List_adp list = List_adp_.New();
int len = lines.length;
for (int i = 0; i < len; i++) {
String line = lines[i];

View File

@@ -19,7 +19,7 @@ package gplx.xowa.bldrs.cmds.ctgs; import gplx.*; import gplx.xowa.*; import gpl
import gplx.core.brys.*; import gplx.core.ios.*; import gplx.core.times.*;
import gplx.xowa.wikis.ctgs.*; import gplx.xowa.bldrs.wkrs.*; import gplx.xowa.bldrs.sqls.*;
public abstract class Xob_categorylinks_base extends Xob_sql_dump_base implements Sql_file_parser_cmd {
private DateAdp_parser date_parser = DateAdp_parser.new_(); private Sql_file_parser sql_parser; Uca_trie trie; private Bry_bfr uca_bfr = Bry_bfr.reset_(255);
private DateAdp_parser date_parser = DateAdp_parser.new_(); private Sql_file_parser sql_parser; Uca_trie trie; private Bry_bfr uca_bfr = Bry_bfr_.Reset(255);
public abstract Io_sort_cmd Make_sort_cmd(Sql_file_parser sql_parser);
@Override public String Sql_file_name() {return "categorylinks";}
@Override public void Cmd_bgn_hook(Xob_bldr bldr, Sql_file_parser parser) {
@@ -70,8 +70,8 @@ public abstract class Xob_categorylinks_base extends Xob_sql_dump_base implement
Xobdc_merger.Basic(bldr.Usr_dlg(), dump_url_gen, temp_dir.GenSubDir("sort"), sort_mem_len, Xoctg_link_sql_sorter.Instance, Io_line_rdr_key_gen_.noop, Make_sort_cmd(sql_parser));
wiki.Html_mgr().Importing_ctgs_(Bool_.N);
}
private static final byte[] Fld_cl_from = Bry_.new_a7("cl_from"), Fld_cl_to = Bry_.new_a7("cl_to"), Fld_cl_timestamp = Bry_.new_a7("cl_timestamp"), Fld_cl_collation = Bry_.new_a7("cl_collation"), Fld_cl_sortkey = Bry_.new_a7("cl_sortkey"), Fld_cl_type = Bry_.new_a7("cl_type");
private static final byte[] Collation_uca = Bry_.new_a7("uca"), Sortkey_space = new byte[] {Byte_ascii.Space};
private static final byte[] Fld_cl_from = Bry_.new_a7("cl_from"), Fld_cl_to = Bry_.new_a7("cl_to"), Fld_cl_timestamp = Bry_.new_a7("cl_timestamp"), Fld_cl_collation = Bry_.new_a7("cl_collation"), Fld_cl_sortkey = Bry_.new_a7("cl_sortkey"), Fld_cl_type = Bry_.new_a7("cl_type");
private static final byte[] Collation_uca = Bry_.new_a7("uca"), Sortkey_space = new byte[] {Byte_ascii.Space};
}
class Xoctg_link_sql_sorter implements gplx.core.lists.ComparerAble {
public int compare(Object lhsObj, Object rhsObj) {
@@ -86,5 +86,5 @@ class Xoctg_link_sql_sorter implements gplx.core.lists.ComparerAble {
}
return CompareAble_.Same;
}
public static final Xoctg_link_sql_sorter Instance = new Xoctg_link_sql_sorter(); Xoctg_link_sql_sorter() {}
public static final Xoctg_link_sql_sorter Instance = new Xoctg_link_sql_sorter(); Xoctg_link_sql_sorter() {}
}

View File

@@ -20,8 +20,8 @@ import gplx.core.flds.*; import gplx.core.ios.*; import gplx.core.encoders.*; im
import gplx.xowa.bldrs.sqls.*;
import gplx.xowa.wikis.data.*; import gplx.xowa.wikis.data.tbls.*;
public class Xob_categorylinks_sql_make implements Io_make_cmd {
private Gfo_usr_dlg usr_dlg; private final Xowe_wiki wiki; private final Db_idx_mode idx_mode; private Xowd_db_mgr core_db_mgr;
private final Sql_file_parser sql_parser; private final Gfo_fld_rdr fld_rdr = Gfo_fld_rdr.xowa_(); private Io_line_rdr name_id_rdr;
private Gfo_usr_dlg usr_dlg; private final Xowe_wiki wiki; private final Db_idx_mode idx_mode; private Xow_db_mgr core_db_mgr;
private final Sql_file_parser sql_parser; private final Gfo_fld_rdr fld_rdr = Gfo_fld_rdr.xowa_(); private Io_line_rdr name_id_rdr;
private Xowd_cat_core_tbl cat_core_tbl; private Xowd_cat_link_tbl cat_link_tbl;
private long cat_db_size, cat_db_max; private int cur_row_count;
private int[] cur_cat_counts = new int[Xoa_ctg_mgr.Tid__max]; private byte[] cur_cat_ttl = Ttl_first; private int cur_cat_id; private int cur_cat_file_idx;
@@ -34,7 +34,7 @@ public class Xob_categorylinks_sql_make implements Io_make_cmd {
this.cat_db_max = wiki.Appe().Api_root().Bldr().Wiki().Import().Cat_link_db_max();
boolean one_file = core_db_mgr.Props().Layout_text().Tid_is_all_or_few();
if (!one_file) // cat is in its own dbs: delete dbs
core_db_mgr.Dbs__delete_by_tid(Xowd_db_file_.Tid_cat, Xowd_db_file_.Tid_cat_core, Xowd_db_file_.Tid_cat_link); // delete existing category files else upgrade won't work
core_db_mgr.Dbs__delete_by_tid(Xow_db_file_.Tid__cat, Xow_db_file_.Tid__cat_core, Xow_db_file_.Tid__cat_link); // delete existing category files else upgrade won't work
Db_make(Bool_.Y);
if (one_file) { // cat is in single db; delete tbls;
cat_core_tbl.Delete_all();
@@ -86,10 +86,10 @@ public class Xob_categorylinks_sql_make implements Io_make_cmd {
private void Db_make(boolean first) {
boolean one_file = core_db_mgr.Props().Layout_text().Tid_is_all_or_few();
if (first) { // create cat_core
Xowd_db_file cat_core_db = one_file ? core_db_mgr.Db__cat_core() : core_db_mgr.Dbs__make_by_tid(Xowd_db_file_.Tid_cat_core);
Xow_db_file cat_core_db = one_file ? core_db_mgr.Db__cat_core() : core_db_mgr.Dbs__make_by_tid(Xow_db_file_.Tid__cat_core);
this.cat_core_tbl = cat_core_db.Tbl__cat_core().Create_tbl();
}
Xowd_db_file cat_link_db = one_file ? core_db_mgr.Db__core() : core_db_mgr.Dbs__make_by_tid(Xowd_db_file_.Tid_cat_link);
Xow_db_file cat_link_db = one_file ? core_db_mgr.Db__core() : core_db_mgr.Dbs__make_by_tid(Xow_db_file_.Tid__cat_link);
this.cat_link_tbl = cat_link_db.Tbl__cat_link();
if ( (one_file && first)
|| !one_file)
@@ -134,7 +134,7 @@ public class Xob_categorylinks_sql_make implements Io_make_cmd {
Io_url[] urls = Io_mgr.Instance.QueryDir_args(make_dir).ExecAsUrlAry();
return new Io_line_rdr(usr_dlg, urls).Key_gen_(Io_line_rdr_key_gen_.first_pipe);
}
private static final byte[] Ttl_last = null, Ttl_first = Bry_.Empty;
private static final byte[] Ttl_last = null, Ttl_first = Bry_.Empty;
}
/*
NOTE_1: categorylinks row size: 34 + 20 + 12 + (cat_sortkey.length * 2)

View File

@@ -23,7 +23,7 @@ public class Xob_categorylinks_sql_tst {
@Test public void Basic() {
if (Xoa_test_.Db_skip()) return;
fxt.Init_db_sqlite();
fxt.Init_page_insert(Int_obj_ref.new_(1), Xow_ns_.Tid__category, String_.Ary("Ctg_1", "Ctg_2"));
fxt.Init_page_insert(Int_obj_ref.New(1), Xow_ns_.Tid__category, String_.Ary("Ctg_1", "Ctg_2"));
fxt.Init_fil(Xoa_test_.Url_wiki_enwiki().GenSubFil("xowa_categorylinks.sql"), String_.Concat
( Xob_categorylinks_sql.Sql_categorylinks
, "INSERT INTO `categorylinks` VALUES"
@@ -54,7 +54,7 @@ class Db_tst_val {
public String Key() {return key;} public Db_tst_val Key_(String v) {this.key = v; return this;} private String key;
public Object Val() {return val;} public Db_tst_val Val_(Object v) {this.val = v; return this;} Object val;
public static final int Idx_null = -1;
public static final String Key_null = null;
public static final String Key_null = null;
}
class Db_tst_row {
public int Idx() {return idx;} public Db_tst_row Idx_(int val) {idx = val; return this;} private int idx = -1;
@@ -86,7 +86,7 @@ class Db_tst_row {
class Db_tst_qry {
public Db_qry Qry() {return qry;} Db_qry qry;
public String[] Cols() {return cols;} public Db_tst_qry Cols_(String... v) {this.cols = v; return this;} private String[] cols;
public List_adp Rows() {return rows;} List_adp rows = List_adp_.new_();
public List_adp Rows() {return rows;} List_adp rows = List_adp_.New();
public Db_tst_qry Rows_add_vals(Object... ary) {
Db_tst_row row = Db_tst_row.kvs_(cols, ary);
rows.Add(row);
@@ -94,7 +94,7 @@ class Db_tst_qry {
}
public void Test(Db_conn conn) {
DataRdr rdr = DataRdr_.Null;
Bry_bfr bfr = Bry_bfr.new_();
Bry_bfr bfr = Bry_bfr_.New();
try {
rdr = conn.Exec_qry_as_old_rdr(qry);
int expd_row_idx = 0, expd_row_max = rows.Count();
@@ -130,7 +130,7 @@ class Db_tst_qry {
bfr.Add_str_u8(qry.To_sql__exec(gplx.dbs.sqls.Sql_qry_wtr_.Sqlite)).Add_byte(Byte_ascii.Semic);
throw Err_.new_wo_type(bfr.To_str_and_clear());
}
} static final byte[] Lbl_row_hdr = Bry_.new_a7("row: "), Lbl_eq_y = Bry_.new_a7(" == "), Lbl_eq_n = Bry_.new_a7(" != ");
} static final byte[] Lbl_row_hdr = Bry_.new_a7("row: "), Lbl_eq_y = Bry_.new_a7(" == "), Lbl_eq_n = Bry_.new_a7(" != ");
public static Db_tst_qry tbl_(String tbl_name, String order_by) {return new_(Db_qry_.select_tbl_(tbl_name).Order_asc_(order_by));}
public static Db_tst_qry new_(Db_qry qry) {
Db_tst_qry rv = new Db_tst_qry();

View File

@@ -21,7 +21,7 @@ import gplx.xowa.bldrs.wkrs.*;
import gplx.xowa.langs.*; import gplx.xowa.langs.bldrs.*;
import gplx.xowa.wikis.nss.*;
import gplx.xowa.wikis.data.tbls.*;
public abstract class Xob_ctg_v1_base extends Xob_itm_dump_base implements Xobd_parser_wkr, GfoInvkAble {
public abstract class Xob_ctg_v1_base extends Xob_itm_dump_base implements Xobd_parser_wkr, Gfo_invk {
protected Xob_ctg_v1_base() {} // TEST:needed for fxt
public Xob_ctg_v1_base Ctor(Xob_bldr bldr, Xowe_wiki wiki) {this.Cmd_ctor(bldr, wiki); return this;}
public abstract String Wkr_key();
@@ -83,7 +83,7 @@ public abstract class Xob_ctg_v1_base extends Xob_itm_dump_base implements Xobd_
private Gfo_fld_wtr fld_wtr = Gfo_fld_wtr.xowa_();
Btrie_fast_mgr trie = Btrie_fast_mgr.cs().Add_stub(Tid_brack_end, "]]").Add_stub(Tid_pipe, "|").Add_stub(Tid_nl, "\n").Add_stub(Tid_brack_bgn, "[[");
static final int row_fixed_len = 5 + 1 + 1; // 5=rowId; 1=|; 1=\n
List_adp category_list = List_adp_.new_(); Int_obj_ref cur_pos = Int_obj_ref.zero_();
List_adp category_list = List_adp_.New(); Int_obj_ref cur_pos = Int_obj_ref.New_zero();
static final byte Tid_eos = 0, Tid_brack_end = 1, Tid_pipe = 2, Tid_nl = 3, Tid_brack_bgn = 4;
private static int Move_fwd_while_space(byte[] src, int src_len, int pos) {
while (true) {

View File

@@ -52,7 +52,7 @@ class Xowd_page_wkr_ctg_fxt {
return this;
}
}
class Xobd_parser_wkr_ctg_tstr extends Xob_ctg_v1_txt { public List_adp Found() {return found;} List_adp found = List_adp_.new_();
class Xobd_parser_wkr_ctg_tstr extends Xob_ctg_v1_txt { public List_adp Found() {return found;} List_adp found = List_adp_.New();
@Override public void Process_ctg(Xowd_page_itm page, byte[] src, int src_len, int bgn, int end) {
found.Add(Bry_.Mid(src, bgn, end));
}

View File

@@ -18,7 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
package gplx.xowa.bldrs.cmds.ctgs; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.cmds.*;
import gplx.core.ios.*; import gplx.xowa.wikis.tdbs.*;
import gplx.xowa.bldrs.wkrs.*;
public class Xoctg_hiddencat_ttl_wkr extends Xob_itm_dump_base implements Xob_cmd, GfoInvkAble {
public class Xoctg_hiddencat_ttl_wkr extends Xob_itm_dump_base implements Xob_cmd, Gfo_invk {
public Xoctg_hiddencat_ttl_wkr(Xob_bldr bldr, Xowe_wiki wiki) {this.Cmd_ctor(bldr, wiki); this.make_fil_len = Io_mgr.Len_mb;} private Xob_sql_join_wkr_ctg_hidden join_wkr;
public String Cmd_key() {return Xob_cmd_keys.Key_tdb_cat_hidden_ttl;}
public void Cmd_init(Xob_bldr bldr) {}
@@ -62,7 +62,7 @@ class Xob_sql_join_wkr_ctg_hidden implements Xob_sql_join_wkr {
if (pipe_pos == Bry_find_.Not_found) throw Err_.new_wo_type("failed to find pipe for name", "excerpt", String_.new_u8(src, join.Itm_pos_bgn(), join.Itm_pos_end()));
file_bfr.Add_mid(src, pipe_pos + 1, itm_end - 1).Add_byte_pipe();
file_bfr.Add(key_bry).Add_byte_nl();
} private Bry_bfr file_bfr = Bry_bfr.new_();
} private Bry_bfr file_bfr = Bry_bfr_.New();
public void Flush() {
Io_mgr.Instance.SaveFilBfr(dump_url_gen.Nxt_url(), file_bfr);
}

View File

@@ -78,7 +78,7 @@ class Xoctg_make_link_mgr {
subc_grp = new Xoctg_make_link_grp(Xoa_ctg_mgr.Tid_subc, make_fil_max);
file_grp = new Xoctg_make_link_grp(Xoa_ctg_mgr.Tid_file, make_fil_max);
page_grp = new Xoctg_make_link_grp(Xoa_ctg_mgr.Tid_page, make_fil_max);
make_fil_bfr = Bry_bfr.reset_(make_fil_max);
make_fil_bfr = Bry_bfr_.Reset(make_fil_max);
make_fld_wtr = Gfo_fld_wtr.xowa_().Bfr_(make_fil_bfr);
make_dir = fsys_mgr.Url_site_dir(Xotdb_dir_info_.Tid_category2_link);
make_cmd = new Xob_make_cmd_site(usr_dlg, make_dir, make_fil_max);
@@ -126,7 +126,7 @@ class Xoctg_make_link_mgr {
;
}
class Xoctg_make_link_grp {
public Xoctg_make_link_grp(byte tid, int bfr_max) {this.tid = tid; bfr = Bry_bfr.reset_(bfr_max);} Gfo_fld_wtr fld_wtr = Gfo_fld_wtr.xowa_();
public Xoctg_make_link_grp(byte tid, int bfr_max) {this.tid = tid; bfr = Bry_bfr_.Reset(bfr_max);} Gfo_fld_wtr fld_wtr = Gfo_fld_wtr.xowa_();
public byte Tid() {return tid;} private byte tid;
public int Bfr_len() {return bfr.Len();}
public Bry_bfr Bfr() {return bfr;} Bry_bfr bfr;
@@ -157,7 +157,7 @@ class Xoctg_idx_data_link {
class Xoctg_make_main_mgr {
public Xoctg_make_main_mgr(Gfo_usr_dlg usr_dlg, int make_fil_max, Xotdb_fsys_mgr fsys_mgr) {
this.make_fil_max = make_fil_max;
make_fil_bfr = Bry_bfr.reset_(make_fil_max);
make_fil_bfr = Bry_bfr_.Reset(make_fil_max);
make_fld_wtr = Gfo_fld_wtr.xowa_().Bfr_(make_fil_bfr);
make_dir = fsys_mgr.Url_site_dir(Xotdb_dir_info_.Tid_category2_main);
make_cmd = new Xob_make_cmd_site(usr_dlg, make_dir, make_fil_max);

View File

@@ -34,7 +34,7 @@ public class Xob_diff_build_cmd implements Xob_cmd {
else if (ctx.Match(k, Invk__commit_interval_)) commit_interval = m.ReadInt("v");
else if (ctx.Match(k, Invk__db_ids_)) db_ids = Int_.Ary_parse(m.ReadStr("v"), "|");
else if (ctx.Match(k, Invk__bld_name_)) bld_name = m.ReadStr("v");
else return GfoInvkAble_.Rv_unhandled;
else return Gfo_invk_.Rv_unhandled;
return this;
}
public void Cmd_init(Xob_bldr bldr) {}

View File

@@ -28,7 +28,7 @@ class Xob_diff_build_wkr {
this.wiki = wiki;
wiki.Init_by_wiki();
Bry_fmt url_fmt = Bry_fmt.New("").Args_(New_url_args(wiki, tbl_mapr.Name));
Bry_bfr tmp_bfr = Bry_bfr.new_();
Bry_bfr tmp_bfr = Bry_bfr_.New();
old_conn = New_conn(tmp_bfr, wiki, url_fmt, Bool_.N, old_url);
new_conn = New_conn(tmp_bfr, wiki, url_fmt, Bool_.N, new_url);
dif_conn = New_conn(tmp_bfr, wiki, url_fmt, Bool_.Y, dif_url);
@@ -45,10 +45,10 @@ class Xob_diff_build_wkr {
dif_wkr.Init_conn(dif_db, 1000);
dif_bldr.Init(dif_wkr);
// wiki.Data__core_mgr().Db__core().Conn().Conn_info();
Xowd_db_file[] db_files = wiki.Data__core_mgr().Db__core().Tbl__db().Select_all(wiki.Data__core_mgr().Props(), Io_url_.Empty);
int db_files_len = db_files.length;
Xow_db_file[] db_file_ary = wiki.Data__core_mgr().Db__core().Tbl__db().Select_all(wiki.Data__core_mgr().Props(), Io_url_.Empty);
int db_files_len = db_file_ary.length;
for (int i = 0; i < db_files_len; ++i) {
Xowd_db_file db_file = db_files[i];
Xow_db_file db_file = db_file_ary[i];
if (tbl_mapr.Db_ids__has(db_file.Tid()))
Compare(ctx);
}

View File

@@ -22,12 +22,12 @@ class Xowd_tbl_mapr {
this.Name = name;
this.Db_ids = db_ids;
}
public final String Name;
public final int[] Db_ids;
public final String Name;
public final int[] Db_ids;
public boolean Db_ids__has(int id) {return true;}
// private static List_adp Fill_tbl_names(List_adp rv, int db_tid) {
// switch (db_tid) {
// case Xowd_db_file_.Tid_cat:
// case Xow_db_file_.Tid__cat:
// return
// break;
// }

View File

@@ -19,7 +19,7 @@ package gplx.xowa.bldrs.cmds.texts; import gplx.*; import gplx.xowa.*; import gp
import gplx.xowa.xtns.wdatas.*;
import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.wkrs.*; import gplx.xowa.bldrs.xmls.*; import gplx.xowa.bldrs.cmds.texts.xmls.*;
import gplx.xowa.bldrs.css.*; import gplx.xowa.wikis.domains.*;
public abstract class Xob_init_base implements Xob_cmd, GfoInvkAble {
public abstract class Xob_init_base implements Xob_cmd, Gfo_invk {
private Xob_bldr bldr; private Xowe_wiki wiki; private Gfo_usr_dlg usr_dlg;
private byte wbase_enabled = Bool_.__byte;
public Xob_init_base Ctor(Xob_bldr bldr, Xowe_wiki wiki) {this.bldr = bldr; this.wiki = wiki; this.usr_dlg = wiki.Appe().Usr_dlg(); return this;}
@@ -35,7 +35,7 @@ public abstract class Xob_init_base implements Xob_cmd, GfoInvkAble {
}
public void Cmd_bgn(Xob_bldr bldr) {}
public void Cmd_run() { // parse site_info
gplx.core.ios.Io_stream_rdr src_rdr = wiki.Import_cfg().Src_rdr(); usr_dlg.Plog_many("", "", "reading dump header: ~{0}", src_rdr.Url().Raw());
gplx.core.ios.streams.Io_stream_rdr src_rdr = wiki.Import_cfg().Src_rdr(); usr_dlg.Plog_many("", "", "reading dump header: ~{0}", src_rdr.Url().Raw());
Xob_siteinfo_parser_.Parse(Xob_siteinfo_parser_.Extract(src_rdr), wiki);
this.Cmd_run_end(wiki); // save site info
}
@@ -53,7 +53,7 @@ public abstract class Xob_init_base implements Xob_cmd, GfoInvkAble {
else if (ctx.Match(k, Invk_src_bz2_fil_)) wiki.Import_cfg().Src_fil_bz2_(m.ReadIoUrl("v"));
else if (ctx.Match(k, Invk_wdata_enabled_)) wbase_enabled = m.ReadYn("v") ? Bool_.Y_byte : Bool_.N_byte;
else if (ctx.Match(k, Invk_owner)) return bldr.Cmd_mgr();
else return GfoInvkAble_.Rv_unhandled;
else return Gfo_invk_.Rv_unhandled;
return this;
} private static final String Invk_src_xml_fil_ = "src_xml_fil_", Invk_src_bz2_fil_ = "src_bz2_fil_", Invk_owner = "owner", Invk_wdata_enabled_ = "wdata_enabled_";
}

View File

@@ -17,7 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.bldrs.cmds.texts; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.cmds.*;
import gplx.xowa.bldrs.wkrs.*; import gplx.xowa.bldrs.xmls.*; import gplx.xowa.xtns.wdatas.*; import gplx.xowa.wikis.data.tbls.*; import gplx.xowa.wikis.dbs.*;
public abstract class Xob_term_base implements Xob_cmd, GfoInvkAble {
public abstract class Xob_term_base implements Xob_cmd, Gfo_invk {
public Xob_term_base Ctor(Xob_bldr bldr, Xowe_wiki wiki) {this.wiki = wiki; return this;} private Xowe_wiki wiki;
public abstract String Cmd_key();
public Xob_cmd Cmd_clone(Xob_bldr bldr, Xowe_wiki wiki) {return null;}

View File

@@ -1,53 +0,0 @@
/*
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.bldrs.cmds.texts.sqls; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.cmds.*; import gplx.xowa.bldrs.cmds.texts.*;
import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.wkrs.*; import gplx.xowa.wikis.*; import gplx.xowa.wikis.data.*; import gplx.xowa.htmls.css.*;
public class Xob_css_cmd implements Xob_cmd {
private final Xob_bldr bldr; private final Xowe_wiki wiki; private final Gfo_usr_dlg usr_dlg;
private Io_url css_dir; private String css_key;
public Xob_css_cmd(Xob_bldr bldr, Xowe_wiki wiki) {this.bldr = bldr; this.wiki = wiki; this.usr_dlg = wiki.Appe().Usr_dlg();}
public String Cmd_key() {return Xob_cmd_keys.Key_text_css;}
public Xob_cmd Cmd_clone(Xob_bldr bldr, Xowe_wiki wiki) {return null;}
public void Cmd_init(Xob_bldr bldr) {
if (css_dir == null) css_dir = wiki.App().Fsys_mgr().Wiki_css_dir(wiki.Domain_str()); // EX: /xowa/user/anonymous/wiki/en.wikipedia.org
if (css_key == null) css_key = Xowd_css_core_mgr.Key_default;
}
public void Cmd_run() {
usr_dlg.Plog_many("", "", Cmd_key() + ":bgn;");
bldr.App().Html__css_installer().Install(wiki, null); // download from wmf
usr_dlg.Plog_many("", "", Cmd_key() + ":css_dir; dir=~{0}", css_dir.Raw());
wiki.Init_db_mgr(); // NOTE: must follow Install b/c Init_assert also calls Install; else will download any css from db
Xowd_db_file core_db = wiki.Db_mgr_as_sql().Core_data_mgr().Db__core();
core_db.Conn().Txn_bgn("bldr__css");
core_db.Tbl__css_core().Create_tbl();
core_db.Tbl__css_file().Create_tbl();
gplx.xowa.htmls.css.Xowd_css_core_mgr.Set(core_db.Tbl__css_core(), core_db.Tbl__css_file(), css_dir, css_key);
core_db.Tbl__cfg().Upsert_yn(Xow_cfg_consts.Grp__wiki_schema, Xowd_db_file_schema_props.Key__tbl_css_core, Bool_.Y);
core_db.Conn().Txn_end();
usr_dlg.Plog_many("", "", Cmd_key() + ":end;");
}
public void Cmd_bgn(Xob_bldr bldr) {}
public void Cmd_end() {}
public void Cmd_term() {}
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
if (ctx.Match(k, Invk_css_dir_)) css_dir = m.ReadIoUrl("v");
else if (ctx.Match(k, Invk_css_key_)) css_key = m.ReadStr("v");
else return GfoInvkAble_.Rv_unhandled;
return this;
} private static final String Invk_css_dir_ = "css_dir_", Invk_css_key_ = "css_key_";
}

View File

@@ -31,7 +31,7 @@ public class Xob_init_cmd extends Xob_init_base {
}
@Override public void Cmd_run_end(Xowe_wiki wiki) {
if (gplx.xowa.wikis.Xow_fsys_mgr.Find_core_fil(wiki) != null)
if (gplx.xowa.wikis.data.Xow_db_file__core_.Find_core_fil(wiki) != null)
throw wiki.Appe().Bldr().Usr_dlg().Fail_many("", "", "directory must not contain any .xowa or .sqlite3 files: dir=~{0}", wiki.Fsys_mgr().Root_dir().Raw());
Xowe_wiki_.Create(wiki, wiki.Import_cfg().Src_rdr_len(), wiki.Import_cfg().Src_fil().NameOnly());
}

View File

@@ -18,13 +18,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
package gplx.xowa.bldrs.cmds.texts.sqls; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.cmds.*; import gplx.xowa.bldrs.cmds.texts.*;
import gplx.xowa.wikis.data.*; import gplx.xowa.wikis.data.tbls.*;
public class Xob_ns_to_db_wkr__text implements Xob_ns_to_db_wkr {
public byte Db_tid() {return Xowd_db_file_.Tid_text;}
public void Tbl_init(Xowd_db_file db) {
public byte Db_tid() {return Xow_db_file_.Tid__text;}
public void Tbl_init(Xow_db_file db) {
Xowd_text_tbl tbl = db.Tbl__text();
tbl.Create_tbl();
tbl.Insert_bgn();
}
public void Tbl_term(Xowd_db_file db) {
public void Tbl_term(Xow_db_file db) {
db.Tbl__text().Insert_end();
}
}

View File

@@ -21,9 +21,9 @@ import gplx.xowa.bldrs.wkrs.*;
import gplx.xowa.wikis.nss.*;
import gplx.xowa.wikis.data.*; import gplx.xowa.wikis.data.tbls.*; import gplx.xowa.wikis.dbs.*;
import gplx.xowa.wikis.*; import gplx.xowa.bldrs.filters.dansguardians.*; import gplx.xowa.apps.apis.xowa.bldrs.imports.*;
import gplx.xowa.parsers.utils.*; import gplx.xowa.addons.builds.files.cmds.*; import gplx.xowa.addons.builds.files.dbs.*;
public class Xob_page_cmd extends Xob_itm_basic_base implements Xob_page_wkr, GfoInvkAble {
private Xowd_db_mgr db_mgr; private Db_idx_mode idx_mode = Db_idx_mode.Itm_end; private Xowd_page_tbl page_core_tbl; private Io_stream_zip_mgr text_zip_mgr; private byte text_zip_tid;
import gplx.xowa.parsers.utils.*; import gplx.xowa.addons.bldrs.files.cmds.*; import gplx.xowa.addons.bldrs.files.dbs.*;
public class Xob_page_cmd extends Xob_itm_basic_base implements Xob_page_wkr, Gfo_invk {
private Xow_db_mgr db_mgr; private Db_idx_mode idx_mode = Db_idx_mode.Itm_end; private Xowd_page_tbl page_core_tbl; private Io_stream_zip_mgr text_zip_mgr; private byte text_zip_tid;
private Xop_redirect_mgr redirect_mgr; private Xob_redirect_tbl redirect_tbl; private boolean redirect_id_enabled;
private DateAdp modified_latest = DateAdp_.MinValue; private int page_count_all, page_count_main = 0; private int commit_interval = 100000; // 100 k
private Dg_match_mgr dg_match_mgr; private Xob_ns_to_db_mgr ns_to_db_mgr;
@@ -45,8 +45,8 @@ public class Xob_page_cmd extends Xob_itm_basic_base implements Xob_page_wkr, Gf
}
app.Bldr().Dump_parser().Trie_tab_del_(); // disable swapping &#09; for \t
byte[] ns_file_map = import_cfg.New_ns_file_map(wiki.Import_cfg().Src_rdr_len());
Xob_ns_file_itm.Init_ns_bldr_data(Xowd_db_file_.Tid_text, wiki.Ns_mgr(), ns_file_map);
if (idx_mode.Tid_is_bgn()) page_core_tbl.Create_index();
Xob_ns_file_itm.Init_ns_bldr_data(Xow_db_file_.Tid__text, wiki.Ns_mgr(), ns_file_map);
if (idx_mode.Tid_is_bgn()) page_core_tbl.Create_idx();
page_core_tbl.Insert_bgn();
usr_dlg.Prog_many("", "", "import.page.bgn");
}
@@ -62,7 +62,7 @@ public class Xob_page_cmd extends Xob_itm_basic_base implements Xob_page_wkr, Gf
if (dg_match_mgr.Match(1, id, ns.Id(), page.Ttl_page_db(), page.Ttl_full_db(), wiki.Lang(), text_raw)) return;
}
byte[] text_zip = text_zip_mgr.Zip(text_zip_tid, text_raw);
Xowd_db_file text_db = ns_to_db_mgr.Get_by_ns(ns.Bldr_data(), text_zip.length);
Xow_db_file text_db = ns_to_db_mgr.Get_by_ns(ns.Bldr_data(), text_zip.length);
try {db_mgr.Create_page(page_core_tbl, text_db.Tbl__text(), id, page.Ns_id(), page.Ttl_page_db(), redirect, modified, text_zip, text_raw_len, random_int, text_db.Id(), -1);}
catch (Exception e) {
throw Err_.new_exc(e, "bldr", "create page in db failed; skipping page", "id", id, "ns", page.Ns_id(), "name", page.Ttl_page_db(), "redirect", redirect, "modified", modified, "text_len", text_raw_len, "text_db_id", text_db.Id());
@@ -72,7 +72,7 @@ public class Xob_page_cmd extends Xob_itm_basic_base implements Xob_page_wkr, Gf
++page_count_all;
if (ns.Id_is_main() && !page.Redirected()) ++page_count_main;
if (page_count_all % commit_interval == 0) {
page_core_tbl.conn.Txn_sav(); text_db.Conn().Txn_sav();
page_core_tbl.Conn().Txn_sav(); text_db.Conn().Txn_sav();
if (redirect_id_enabled) redirect_tbl.Conn().Txn_sav();
if (dg_match_mgr != null) dg_match_mgr.Commit();
}
@@ -86,15 +86,15 @@ public class Xob_page_cmd extends Xob_itm_basic_base implements Xob_page_wkr, Gf
if (dg_match_mgr != null) dg_match_mgr.Rls();
usr_dlg.Log_many("", "", "import.page: updating core stats");
Xow_ns_mgr ns_mgr = wiki.Ns_mgr();
Xowd_db_file db_core = db_mgr.Db__core();
Xow_db_file db_core = db_mgr.Db__core();
db_core.Tbl__site_stats().Update(page_count_main, page_count_all, ns_mgr.Ns_file().Count()); // save page stats
db_core.Tbl__ns().Insert(ns_mgr); // save ns
db_mgr.Tbl__cfg().Insert_str(Xow_cfg_consts.Grp__wiki_init, Xow_cfg_consts.Key__init__modified_latest, modified_latest.XtoStr_fmt(DateAdp_.Fmt_iso8561_date_time));
if (idx_mode.Tid_is_end()) page_core_tbl.Create_index();
if (idx_mode.Tid_is_end()) page_core_tbl.Create_idx();
if (redirect_id_enabled) {
redirect_tbl.Conn().Txn_end();
redirect_tbl.Update_trg_redirect_id(db_core.Url(), 1);
redirect_tbl.Update_src_redirect_id(db_core.Url(), page_core_tbl.conn);
redirect_tbl.Update_src_redirect_id(db_core.Url(), page_core_tbl.Conn());
}
}
@Override public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {

View File

@@ -24,7 +24,7 @@ public class Xob_page_delete_cmd extends Xob_cmd_base {
@Override public String Cmd_key() {return Xob_cmd_keys.Key_text_delete_page;}
@Override public void Cmd_run() {
wiki.Init_by_wiki();
Xowd_db_file core_db = wiki.Data__core_mgr().Db__core();
Xow_db_file core_db = wiki.Data__core_mgr().Db__core();
Db_conn core_db_conn = core_db.Conn();
Gfo_usr_dlg usr_dlg = Gfo_usr_dlg_.Instance;
usr_dlg.Plog_many("", "", "creating page_filter");
@@ -53,18 +53,18 @@ public class Xob_page_delete_cmd extends Xob_cmd_base {
, ";"
));
try {
Xowd_db_file[] db_files = core_db.Tbl__db().Select_all(wiki.Data__core_mgr().Props(), wiki.Fsys_mgr().Root_dir());
int len = db_files.length;
Xow_db_file[] db_file_ary = core_db.Tbl__db().Select_all(wiki.Data__core_mgr().Props(), wiki.Fsys_mgr().Root_dir());
int len = db_file_ary.length;
for (int i = 0; i < len; ++i) {
boolean db_file_is_text = Bool_.N, db_file_is_cat = Bool_.N, db_file_is_search = Bool_.N;
Xowd_db_file db_file = db_files[i];
Xow_db_file db_file = db_file_ary[i];
switch (db_file.Tid()) {
case Xowd_db_file_.Tid_core: case Xowd_db_file_.Tid_wiki_solo: case Xowd_db_file_.Tid_text_solo:
case Xow_db_file_.Tid__core: case Xow_db_file_.Tid__wiki_solo: case Xow_db_file_.Tid__text_solo:
if (wiki.Data__core_mgr().Props().Layout_text().Tid_is_lot()) continue; // if mode is lot, then "core" db does not have text, cat, search; skip; DATE:2016-01-31
db_file_is_text = db_file_is_cat = db_file_is_search = Bool_.Y; break;
case Xowd_db_file_.Tid_text: db_file_is_text = Bool_.Y; break;
case Xowd_db_file_.Tid_cat: db_file_is_cat = Bool_.Y; break;
case Xowd_db_file_.Tid_search_core: db_file_is_search = Bool_.Y; break;
case Xow_db_file_.Tid__text: db_file_is_text = Bool_.Y; break;
case Xow_db_file_.Tid__cat: db_file_is_cat = Bool_.Y; break;
case Xow_db_file_.Tid__search_core: db_file_is_search = Bool_.Y; break;
}
int db_id = db_file.Id();
if (db_file_is_text) Run_sql(core_db_conn, db_file.Url(), db_id, "deleting text: " + db_id, "DELETE FROM <data_db>text WHERE page_id IN (SELECT page_id FROM page_filter WHERE page_text_db_id = {0});");

View File

@@ -19,7 +19,7 @@ package gplx.xowa.bldrs.cmds.texts.tdbs; import gplx.*; import gplx.xowa.*; impo
import gplx.core.ios.*;
import gplx.xowa.wikis.tdbs.*; import gplx.xowa.wikis.tdbs.xdats.*;
public class Io_sort_cmd_ns implements Io_make_cmd {
Xob_xdat_file_wtr fil_wtr; Bry_bfr reg_bfr = Bry_bfr.new_(), key_bfr_0 = Bry_bfr.new_(512), key_bfr_n = Bry_bfr.new_(512);
Xob_xdat_file_wtr fil_wtr; Bry_bfr reg_bfr = Bry_bfr_.New(), key_bfr_0 = Bry_bfr_.New_w_size(512), key_bfr_n = Bry_bfr_.New_w_size(512);
int fil_count = 0, itm_count = 0;
public Io_sort_cmd_ns(Gfo_usr_dlg usr_dlg) {this.usr_dlg = usr_dlg;} Gfo_usr_dlg usr_dlg;
public int Trg_fil_max() {return trg_fil_max;} public Io_sort_cmd_ns Trg_fil_max_(int v) {trg_fil_max = v; return this;} private int trg_fil_max = 65 * Io_mgr.Len_kb;

View File

@@ -39,7 +39,7 @@ public class Xob_calc_stats_cmd extends Xob_itm_basic_base implements Xob_cmd {
}
int count_main = Calc_count_articles(wiki.Ns_mgr().Ns_main());
int count_file = Calc_count_articles(wiki.Ns_mgr().Ns_file());
Bry_bfr bfr = Bry_bfr.new_();
Bry_bfr bfr = Bry_bfr_.New();
Gen_call(Bool_.Y, bfr, Xowe_wiki.Invk_stats);
Gen_call(Bool_.N, bfr, Xow_site_stats_mgr.Invk_number_of_articles_, count_main);
Gen_call(Bool_.N, bfr, Xow_site_stats_mgr.Invk_number_of_files_, count_file);

View File

@@ -16,10 +16,10 @@ 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.bldrs.cmds.texts.tdbs; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.cmds.*; import gplx.xowa.bldrs.cmds.texts.*;
import gplx.core.ios.*;
import gplx.core.ios.*; import gplx.core.ios.streams.*;
import gplx.xowa.wikis.tdbs.*; import gplx.xowa.wikis.tdbs.xdats.*;
public class Xob_make_cmd_site implements Io_make_cmd {
Xob_xdat_file_wtr fil_wtr; Bry_bfr cur_bfr = Bry_bfr.new_(), reg_bfr = Bry_bfr.new_(), reg_key_0 = Bry_bfr.new_(512), reg_key_n = Bry_bfr.new_(512);
Xob_xdat_file_wtr fil_wtr; Bry_bfr cur_bfr = Bry_bfr_.New(), reg_bfr = Bry_bfr_.New(), reg_key_0 = Bry_bfr_.New_w_size(512), reg_key_n = Bry_bfr_.New_w_size(512);
int make_fil_max = 65 * Io_mgr.Len_kb, fil_count = 0, itm_count = 0, itm_key_end = 0; Io_url reg_url;
public Xob_make_cmd_site(Gfo_usr_dlg usr_dlg, Io_url make_dir, int make_fil_max) {this.usr_dlg = usr_dlg; this.make_dir = make_dir; this.make_fil_max = make_fil_max;} Gfo_usr_dlg usr_dlg;
public Io_sort_cmd Make_dir_(Io_url v) {make_dir = v; return this;} Io_url make_dir;

View File

@@ -18,7 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
package gplx.xowa.bldrs.cmds.texts.tdbs; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.cmds.*; import gplx.xowa.bldrs.cmds.texts.*;
import gplx.core.ios.*; import gplx.xowa.wikis.tdbs.*; import gplx.xowa.wikis.data.tbls.*;
import gplx.xowa.bldrs.wkrs.*;
public class Xob_make_id_wkr extends Xob_itm_dump_base implements Xob_page_wkr, GfoInvkAble {
public class Xob_make_id_wkr extends Xob_itm_dump_base implements Xob_page_wkr, Gfo_invk {
public Xob_make_id_wkr(Xob_bldr bldr, Xowe_wiki wiki) {this.Cmd_ctor(bldr, wiki);}
public String Page_wkr__key() {return KEY;} public static final String KEY = "core.make_id";
public void Page_wkr__bgn() {

View File

@@ -21,7 +21,7 @@ import gplx.xowa.bldrs.wkrs.*; import gplx.xowa.bldrs.wtrs.*;
import gplx.xowa.wikis.nss.*;
import gplx.xowa.parsers.utils.*;
import gplx.xowa.wikis.tdbs.*; import gplx.xowa.wikis.tdbs.xdats.*; import gplx.xowa.wikis.tdbs.stats.*;
public class Xob_page_txt extends Xob_itm_dump_base implements Xob_page_wkr, GfoInvkAble {
public class Xob_page_txt extends Xob_itm_dump_base implements Xob_page_wkr, Gfo_invk {
public Xob_page_txt(Xob_bldr bldr, Xowe_wiki wiki) {this.Cmd_ctor(bldr, wiki);}
public String Page_wkr__key() {return Xob_cmd_keys.Key_tdb_make_page;}
public void Page_wkr__bgn() {
@@ -49,7 +49,7 @@ public class Xob_page_txt extends Xob_itm_dump_base implements Xob_page_wkr, Gfo
// idx: EX: 00100|aB64|Ttl;
Xob_tmp_wtr ttl_wtr = ttl_wtr_mgr.Get_or_new(ns);
int file_idx = page_wtr.Fil_idx(), row_idx = page_wtr.Idx_pos() - List_adp_.LastIdxOffset;
int file_idx = page_wtr.Fil_idx(), row_idx = page_wtr.Idx_pos() - 1; // 1=Last_idx_offset
page.Text_db_id_(file_idx).Tdb_row_idx_(row_idx);
if (ttl_wtr.FlushNeeded(Xotdb_page_itm_.Txt_ttl_len__fixed + ttl_len)) ttl_wtr.Flush(bldr.Usr_dlg());
Xotdb_page_itm_.Txt_ttl_save(ttl_wtr.Bfr(), id, file_idx, row_idx, redirect, text_len, ttl_wo_ns);

View File

@@ -18,7 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
package gplx.xowa.bldrs.cmds.texts.tdbs; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.cmds.*; import gplx.xowa.bldrs.cmds.texts.*;
import gplx.core.ios.*; import gplx.xowa.wikis.data.tbls.*; import gplx.xowa.wikis.tdbs.*; import gplx.xowa.wikis.nss.*;
import gplx.xowa.bldrs.wkrs.*;
public class Xob_parse_dump_templates_cmd extends Xob_itm_dump_base implements Xob_page_wkr, GfoInvkAble {
public class Xob_parse_dump_templates_cmd extends Xob_itm_dump_base implements Xob_page_wkr, Gfo_invk {
public Xob_parse_dump_templates_cmd(Xob_bldr bldr, Xowe_wiki wiki) {this.Cmd_ctor(bldr, wiki);}
public String Page_wkr__key() {return KEY;} public static final String KEY = "parse.dump_templates";
public static final int FixedLen_page = 1 + 5 + 1 + 5 + 1 + 1 + 1; // \tid|date|title|text\n

View File

@@ -17,7 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.bldrs.cmds.texts.tdbs; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.cmds.*; import gplx.xowa.bldrs.cmds.texts.*;
import org.junit.*; import gplx.xowa.wikis.tdbs.*; import gplx.xowa.bldrs.*; import gplx.xowa.wikis.nss.*;
import gplx.xowa.addons.apps.searchs.bldrs.*;
import gplx.xowa.addons.wikis.searchs.bldrs.*;
public class Xob_search_base_tst {
@Test public void Split() {
tst_Split("a", "a");
@@ -47,7 +47,7 @@ public class Xob_search_base_tst {
;
} private Xob_fxt fxt = new Xob_fxt().Ctor_mem();
private void tst_Split(String raw, String... expd) {
Ordered_hash list = Ordered_hash_.New(); Bry_bfr bfr = Bry_bfr.new_();
Ordered_hash list = Ordered_hash_.New(); Bry_bfr bfr = Bry_bfr_.New();
byte[][] actl_bry = Srch_bldr_wkr_base.Split_ttl_into_words(fxt.App().Lang_mgr().Lang_en(), list, bfr, Bry_.new_u8(raw));
String[] actl = new String[actl_bry.length];
for (int i = 0; i < actl_bry.length; i++)

View File

@@ -16,7 +16,7 @@ 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.bldrs.cmds.texts.tdbs; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.cmds.*; import gplx.xowa.bldrs.cmds.texts.*;
import gplx.xowa.addons.apps.searchs.bldrs.*;
import gplx.xowa.addons.wikis.searchs.bldrs.*;
public class Xob_search_tdb extends Srch_bldr_wkr_base {
public Xob_search_tdb(Xob_bldr bldr, Xowe_wiki wiki) {this.Cmd_ctor(bldr, wiki);}
@Override public String Page_wkr__key() {return Xob_cmd_keys.Key_tdb_make_search_title;}

View File

@@ -176,7 +176,7 @@ public class Xob_tst {
Xotdb_page_raw_parser parser = new Xotdb_page_raw_parser();
Xowe_wiki wiki = Xoa_app_fxt.Make__wiki__edit(app);
parser.Load(Gfo_usr_dlg_.Test(), wiki, new Xow_ns(Xow_ns_.Tid__template, Xow_ns_case_.Tid__1st, Bry_.new_a7("Template"), false), new Io_url[] {url}, 1 * Io_mgr.Len_kb);
List_adp actl = List_adp_.new_();
List_adp actl = List_adp_.New();
Xowd_page_itm page = new Xowd_page_itm();
while (parser.Read(page)) {
actl.Add(String_.new_u8(page.Text()));

View File

@@ -16,7 +16,7 @@ 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.bldrs.cmds.texts.xmls; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.cmds.*; import gplx.xowa.bldrs.cmds.texts.*;
import gplx.core.ios.*; import gplx.langs.xmls.*; // NOTE: gplx.langs.xmls does not support Android; DATE:2013-01-17
import gplx.core.ios.*; import gplx.core.ios.streams.*; import gplx.langs.xmls.*; // NOTE: gplx.langs.xmls does not support Android; DATE:2013-01-17
import gplx.xowa.wikis.nss.*;
public class Xob_siteinfo_parser_ {
public static byte[] Extract(Io_stream_rdr src_rdr) {
@@ -34,7 +34,7 @@ public class Xob_siteinfo_parser_ {
Xob_siteinfo_nde nde = Parse(String_.new_u8(siteinfo_bry), wiki.Ns_mgr());
wiki.Props().Bldr_version_(Bry_.new_a7(Xoa_app_.Version));
wiki.Props().Main_page_(nde.Main_page());
Bry_bfr bfr = Bry_bfr.new_().Add_str_u8(nde.Site_name()).Add_byte_pipe().Add_str_u8(nde.Generator()).Add_byte_pipe().Add_str_u8(nde.Case_dflt()).Add_byte_pipe();
Bry_bfr bfr = Bry_bfr_.New().Add_str_u8(nde.Site_name()).Add_byte_pipe().Add_str_u8(nde.Generator()).Add_byte_pipe().Add_str_u8(nde.Case_dflt()).Add_byte_pipe();
wiki.Props().Siteinfo_misc_(bfr.To_bry_and_clear());
}
public static Xob_siteinfo_nde Parse(String xdoc_src, Xow_ns_mgr ns_mgr) {
@@ -76,5 +76,5 @@ public class Xob_siteinfo_parser_ {
}
ns_mgr.Init_w_defaults();
}
private static final byte[] Bry_siteinfo_bgn = Bry_.new_a7("<siteinfo>"), Bry_siteinfo_end = Bry_.new_a7("</siteinfo>");
private static final byte[] Bry_siteinfo_bgn = Bry_.new_a7("<siteinfo>"), Bry_siteinfo_end = Bry_.new_a7("</siteinfo>");
}

View File

@@ -18,7 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
package gplx.xowa.bldrs.cmds.texts.xmls; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.cmds.*; import gplx.xowa.bldrs.cmds.texts.*;
import org.junit.*; import gplx.xowa.wikis.nss.*;
public class Xob_siteinfo_parser__tst {
private final Xob_siteinfo_parser__fxt fxt = new Xob_siteinfo_parser__fxt();
private final Xob_siteinfo_parser__fxt fxt = new Xob_siteinfo_parser__fxt();
@Test public void Basic__simplewikt() { // PURPOSE: basic test of siteinfo parse; DATE:2015-11-01
fxt.Test__parse(String_.Concat_lines_nl_skip_last
( " <siteinfo>"
@@ -100,8 +100,8 @@ public class Xob_siteinfo_parser__tst {
}
}
class Xob_siteinfo_parser__fxt {
private final Xow_ns_mgr ns_mgr = new Xow_ns_mgr(gplx.xowa.langs.cases.Xol_case_mgr_.U8());
private final Bry_bfr bfr = Bry_bfr.new_();
private final Xow_ns_mgr ns_mgr = new Xow_ns_mgr(gplx.xowa.langs.cases.Xol_case_mgr_.U8());
private final Bry_bfr bfr = Bry_bfr_.New();
public void Test__parse(String src_str, String expd) {
Xob_siteinfo_nde nde = Xob_siteinfo_parser_.Parse(src_str, ns_mgr);
nde.To_bfr(bfr);

View File

@@ -17,7 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.bldrs.cmds.utils; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.cmds.*;
import gplx.xowa.bldrs.wkrs.*;
import gplx.gfui.*;
import gplx.gfui.*; import gplx.gfui.kits.core.*;
public class Xob_alert_cmd extends Xob_cmd__base implements Xob_cmd {
public Xob_alert_cmd(Xob_bldr bldr, Xowe_wiki wiki) {super(bldr, wiki);}
public Xob_alert_cmd Msg_(String v) {this.msg = v; return this;} private String msg = "no message specified";
@@ -29,7 +29,7 @@ public class Xob_alert_cmd extends Xob_cmd__base implements Xob_cmd {
}
@Override public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
if (ctx.Match(k, Invk__text_)) this.msg = m.ReadStr("v");
else return GfoInvkAble_.Rv_unhandled;
else return Gfo_invk_.Rv_unhandled;
return this;
} private static final String Invk__text_ = "text_";

View File

@@ -19,13 +19,13 @@ package gplx.xowa.bldrs.cmds.utils; import gplx.*; import gplx.xowa.*; import gp
import gplx.core.brys.fmtrs.*;
import gplx.xowa.wikis.domains.*;
import gplx.xowa.bldrs.wms.dumps.*;
public class Xob_core_batch_utl implements GfoInvkAble {
private final Xob_bldr bldr;
private final Bry_fmtr fmtr = Bry_fmtr.keys_("bz2_fil", "wiki_key");
public class Xob_core_batch_utl implements Gfo_invk {
private final Xob_bldr bldr;
private final Bry_fmtr fmtr = Bry_fmtr.keys_("bz2_fil", "wiki_key");
public Xob_core_batch_utl(Xob_bldr bldr, byte[] raw) {this.bldr = bldr; fmtr.Fmt_(raw);}
private void Run() {
Io_url[] bz2_fils = Io_mgr.Instance.QueryDir_fils(bldr.App().Fsys_mgr().Wiki_dir().GenSubDir_nest(Dir_dump, "todo"));
Bry_bfr bfr = Bry_bfr.reset_(Io_mgr.Len_kb);
Bry_bfr bfr = Bry_bfr_.Reset(Io_mgr.Len_kb);
int bz2_fils_len = bz2_fils.length;
for (int i = 0; i < bz2_fils_len; i++) {
Io_url bz2_fil_url = bz2_fils[i];

View File

@@ -27,7 +27,7 @@ public class Xob_delete_cmd extends Xob_cmd__base implements Xob_cmd {
int len = patterns_ary.length; if (len == 0) return;
// build filter EX: '*.xml|*.txt'
Bry_bfr bfr = Bry_bfr.new_();
Bry_bfr bfr = Bry_bfr_.New();
for (int i = 0; i < len; ++i) {
String pattern = patterns_ary[i];
if (i != 0) bfr.Add_byte_pipe();
@@ -45,5 +45,5 @@ public class Xob_delete_cmd extends Xob_cmd__base implements Xob_cmd {
Io_mgr.Instance.DeleteFil(file);
}
}
@Override public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {return GfoInvkAble_.Null;}
@Override public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {return Gfo_invk_.Noop;}
}

View File

@@ -17,7 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.bldrs.cmds.utils; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.cmds.*;
import gplx.xowa.bldrs.wkrs.*; import gplx.xowa.wikis.tdbs.*;
public class Xob_deploy_copy_cmd extends Xob_itm_basic_base implements Xob_cmd, GfoInvkAble {
public class Xob_deploy_copy_cmd extends Xob_itm_basic_base implements Xob_cmd, Gfo_invk {
public Xob_deploy_copy_cmd(Xob_bldr bldr, Xowe_wiki wiki) {this.Cmd_ctor(bldr, wiki);}
public String Cmd_key() {return Xob_cmd_keys.Key_deploy_copy;}
public void Cmd_init(Xob_bldr bldr) {}

View File

@@ -57,7 +57,7 @@ public class Xob_download_cmd extends Xob_cmd__base implements Xob_cmd {
else if (String_.Eq(k, Invk_dump_trg_zip_)) dump_trg_zip = m.ReadIoUrl("v");
else if (String_.Eq(k, Invk_dump_trg_bin_)) dump_trg_bin = m.ReadIoUrl("v");
else if (String_.Eq(k, Invk_unzip_)) unzip = m.ReadYn("v");
else return GfoInvkAble_.Rv_unhandled;
else return Gfo_invk_.Rv_unhandled;
return this;
}
private static final String

View File

@@ -27,8 +27,8 @@ public class Xob_exec_sql_cmd implements Xob_cmd {
Xoae_app app = wiki.Appe();
wiki.Init_assert(); // force load; needed to pick up MediaWiki ns for MediaWiki:mainpage
Xodb_mgr_sql db_mgr = wiki.Db_mgr_as_sql();
Xowd_db_mgr fsys_mgr = db_mgr.Core_data_mgr();
Xowd_db_file file = fsys_mgr.Dbs__get_by_id(file_idx);
Xow_db_mgr fsys_mgr = db_mgr.Core_data_mgr();
Xow_db_file file = fsys_mgr.Dbs__get_by_id_or_fail(file_idx);
app.Usr_dlg().Plog_many("", "", "exec_sql: running sql; file_idx=~{0} sql=~{1}", file_idx, sql);
file.Conn().Exec_sql(sql);
}

View File

@@ -86,7 +86,7 @@ public class Xob_site_meta_cmd implements Xob_cmd {
if (ctx.Match(k, Invk_db_url_)) this.db_url = m.ReadIoUrl("v");
else if (ctx.Match(k, Invk_wikis_)) this.wikis = m.ReadStrAry("v", "\n");
else if (ctx.Match(k, Invk_cutoff_time_)) this.cutoff_time = m.ReadDate("v");
else return GfoInvkAble_.Rv_unhandled;
else return Gfo_invk_.Rv_unhandled;
return this;
}
private static String Invk_db_url_ = "db_url_", Invk_wikis_ = "wikis_", Invk_cutoff_time_ = "cutoff_time_";

View File

@@ -30,9 +30,9 @@ public class Xob_unzip_wkr {
}
public void Decompress(Io_url src, Io_url trg) {
String src_ext = src.Ext();
if (String_.Eq(src_ext, gplx.core.ios.Io_stream_.Ext_bz2)) process = decompress_bz2;
else if (String_.Eq(src_ext, gplx.core.ios.Io_stream_.Ext_zip)) process = decompress_zip;
else if (String_.Eq(src_ext, gplx.core.ios.Io_stream_.Ext_gz)) process = decompress_gz;
if (String_.Eq(src_ext, gplx.core.ios.streams.Io_stream_.Ext_bz2)) process = decompress_bz2;
else if (String_.Eq(src_ext, gplx.core.ios.streams.Io_stream_.Ext_zip)) process = decompress_zip;
else if (String_.Eq(src_ext, gplx.core.ios.streams.Io_stream_.Ext_gz)) process = decompress_gz;
else throw Err_.new_unhandled(src_ext);
Io_url trg_owner_dir = trg.OwnerDir();
Io_mgr.Instance.CreateDirIfAbsent(trg_owner_dir);

View File

@@ -33,7 +33,7 @@ public class Xob_xml_dumper_cmd implements Xob_cmd {
usr_dlg.Plog_many("", "", Cmd_key() + ":bgn;");
String wiki_abrv = "";
String main_page = String_.Format("https://{0}/wiki/{1}", wiki.Domain_str(), String_.new_u8(wiki.Props().Main_page()));
String ns_case = "first-letter"; // TODO:
String ns_case = "first-letter"; // TODO_OLD:
xml_dumper.Write_root_bgn(wiki.Ns_mgr(), wiki.Domain_itm(), wiki_abrv, main_page, ns_case, "XOWA " + Xoa_app_.Version);
Xodb_page_rdr page_rdr = wiki.Db_mgr().Load_mgr().Get_page_rdr(wiki);
Xowd_page_itm page = new Xowd_page_itm();
@@ -60,7 +60,7 @@ public class Xob_xml_dumper_cmd implements Xob_cmd {
public void Cmd_term() {}
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
if (ctx.Match(k, Invk_commit_interval_)) commit_interval = m.ReadInt("v");
else return GfoInvkAble_.Rv_unhandled;
else return Gfo_invk_.Rv_unhandled;
return this;
} private static final String Invk_commit_interval_ = "commit_interval_";
}

View File

@@ -22,6 +22,8 @@ import gplx.xowa.wikis.nss.*;
import gplx.xowa.wikis.*; import gplx.xowa.wikis.domains.*; import gplx.xowa.wikis.data.*;
import gplx.xowa.files.downloads.*;
import gplx.core.net.*;
import gplx.xowa.addons.wikis.htmls.css.bldrs.*; import gplx.xowa.addons.wikis.htmls.css.mgrs.*;
import gplx.xowa.wikis.data.fetchers.*;
public class Xoa_css_extractor {
public IoEngine_xrg_downloadFil Download_xrg() {return download_xrg;} private IoEngine_xrg_downloadFil download_xrg = Io_mgr.Instance.DownloadFil_args("", Io_url_.Empty);
public Xoa_css_extractor Wiki_domain_(byte[] v) {wiki_domain = v; return this;} private byte[] wiki_domain;
@@ -36,7 +38,7 @@ public class Xoa_css_extractor {
public Xoa_css_extractor Url_encoder_(Gfo_url_encoder v) {url_encoder = v; return this;} private Gfo_url_encoder url_encoder;
public Xoa_css_extractor Wiki_code_(byte[] v) {this.wiki_code = v; return this;} private byte[] wiki_code = null;
private byte[] mainpage_html; private boolean lang_is_ltr = true;
private final Gfo_url_parser url_parser = new Gfo_url_parser();
private final Gfo_url_parser url_parser = new Gfo_url_parser();
public void Init_by_app(Xoae_app app) {
this.usr_dlg = app.Usr_dlg();
Xof_download_wkr download_wkr = app.Wmf_mgr().Download_wkr();
@@ -85,17 +87,17 @@ public class Xoa_css_extractor {
Logo_setup();
}
private boolean Install_by_db(Xow_wiki wiki, Io_url wiki_html_dir, String css_key) {
Xowd_db_mgr core_db_mgr = wiki.Data__core_mgr();
Xow_db_mgr core_db_mgr = wiki.Data__core_mgr();
if ( core_db_mgr == null
|| core_db_mgr.Props() == null
|| core_db_mgr.Props().Schema_is_1()
|| !core_db_mgr.Tbl__cfg().Select_yn_or(Xow_cfg_consts.Grp__wiki_schema, Xowd_db_file_schema_props.Key__tbl_css_core, Bool_.N)
|| !core_db_mgr.Tbl__cfg().Select_yn_or(Xow_cfg_consts.Grp__wiki_schema, Xow_db_file_schema_props.Key__tbl_css_core, Bool_.N)
) {
Xoa_app_.Usr_dlg().Warn_many("", "", "css.db not found; wiki=~{0} css_dir=~{1}", wiki.Domain_str(), wiki_html_dir.Raw());
return false;
}
Xowd_db_file core_db = core_db_mgr.Db__core();
return gplx.xowa.htmls.css.Xowd_css_core_mgr.Get(core_db.Tbl__css_core(), core_db.Tbl__css_file(), wiki_html_dir, css_key);
Xow_db_file core_db = core_db_mgr.Db__core();
return Xowd_css_core_mgr.Get(core_db.Tbl__css_core(), core_db.Tbl__css_file(), wiki_html_dir, css_key);
}
public void Css_common_setup() {
if (opt_download_css_common)
@@ -133,14 +135,14 @@ public class Xoa_css_extractor {
css_img_downloader.Chk(wiki_domain, trg_fil);
}
private boolean Css_wiki_generate(Io_url trg_fil) {
Bry_bfr bfr = Bry_bfr.new_();
Bry_bfr bfr = Bry_bfr_.New();
Css_wiki_generate_section(bfr, Ttl_common_css);
Css_wiki_generate_section(bfr, Ttl_vector_css);
byte[] bry = bfr.To_bry_and_clear();
bry = Bry_.Replace(bry, gplx.xowa.bldrs.xmls.Xob_xml_parser_.Bry_tab_ent, gplx.xowa.bldrs.xmls.Xob_xml_parser_.Bry_tab);
Io_mgr.Instance.SaveFilBry(trg_fil, bry);
return true;
} private static final byte[] Ttl_common_css = Bry_.new_a7("Common.css"), Ttl_vector_css = Bry_.new_a7("Vector.css");
} private static final byte[] Ttl_common_css = Bry_.new_a7("Common.css"), Ttl_vector_css = Bry_.new_a7("Vector.css");
private boolean Css_wiki_generate_section(Bry_bfr bfr, byte[] ttl) {
byte[] page = page_fetcher.Get_by(Xow_ns_.Tid__mediawiki, ttl);
if (page == null) return false;
@@ -148,7 +150,7 @@ public class Xoa_css_extractor {
Css_wiki_section_hdr.Bld_bfr_many(bfr, ttl); // add "/*XOWA:MediaWiki:Common.css*/\n"
bfr.Add(page); // add page
return true;
} static final Bry_fmtr Css_wiki_section_hdr = Bry_fmtr.new_("/*XOWA:MediaWiki:~{ttl}*/\n", "ttl");
} static final Bry_fmtr Css_wiki_section_hdr = Bry_fmtr.new_("/*XOWA:MediaWiki:~{ttl}*/\n", "ttl");
public void Logo_setup() {
boolean logo_missing = true;
Io_url logo_url = wiki_html_dir.GenSubFil("logo.png");
@@ -183,7 +185,7 @@ public class Xoa_css_extractor {
Io_url src_fil = wiki_html_dir.GenSubFil(String_.new_u8(src_bry));
Io_mgr.Instance.CopyFil(src_fil, trg_fil, true);
return true;
} private static final byte[] Bry_mw_wiki_logo = Bry_.new_a7(".mw-wiki-logo{background-image:url(\"");
} private static final byte[] Bry_mw_wiki_logo = Bry_.new_a7(".mw-wiki-logo{background-image:url(\"");
private String Logo_find_src() {
if (mainpage_html == null) return null;
int main_page_html_len = mainpage_html.length;
@@ -195,7 +197,7 @@ public class Xoa_css_extractor {
byte[] logo_bry = Bry_.Mid(mainpage_html, logo_bgn, logo_end);
return protocol_prefix + String_.new_u8(logo_bry);
}
private static final byte[] Logo_find_bgn = Bry_.new_a7("<div id=\"p-logo\""), Logo_find_end = Bry_.new_a7("background-image: url(");
private static final byte[] Logo_find_bgn = Bry_.new_a7("<div id=\"p-logo\""), Logo_find_end = Bry_.new_a7("background-image: url(");
public boolean Mainpage_download() {
mainpage_html = Mainpage_download_html();
return mainpage_html != null;
@@ -233,7 +235,7 @@ public class Xoa_css_extractor {
return Css_scrape_download(css_urls);
}
private String[] Css_scrape_urls(byte[] raw) {
List_adp rv = List_adp_.new_();
List_adp rv = List_adp_.New();
int raw_len = raw.length;
int prv_pos = 0;
int css_find_bgn_len = Css_find_bgn.length;
@@ -255,10 +257,10 @@ public class Xoa_css_extractor {
prv_pos = url_end;
}
return rv.To_str_ary();
} private static final byte[] Css_find_bgn = Bry_.new_a7("<link rel=\"stylesheet\" href=\""), Css_amp_find = Bry_.new_a7("&amp;"), Css_amp_repl = Bry_.new_a7("&");
} private static final byte[] Css_find_bgn = Bry_.new_a7("<link rel=\"stylesheet\" href=\""), Css_amp_find = Bry_.new_a7("&amp;"), Css_amp_repl = Bry_.new_a7("&");
private byte[] Css_scrape_download(String[] css_urls) {
int css_urls_len = css_urls.length;
Bry_bfr tmp_bfr = Bry_bfr.new_();
Bry_bfr tmp_bfr = Bry_bfr_.New();
for (int i = 0; i < css_urls_len; i++) {
String css_url = css_urls[i];
usr_dlg.Prog_many("", "main_page.css_download", "downloading css for '~{0}'", css_url);

View File

@@ -17,6 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.bldrs.css; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*;
import org.junit.*; import gplx.core.ios.*; import gplx.langs.htmls.encoders.*; import gplx.xowa.wikis.data.*; import gplx.xowa.files.downloads.*;
import gplx.xowa.wikis.data.fetchers.*;
public class Xoa_css_extractor_basic_tst {
@Before public void init() {fxt.Clear();} private Xoa_css_extractor_fxt fxt = new Xoa_css_extractor_fxt();
@Test public void Logo_download() {

View File

@@ -26,7 +26,7 @@ public class Xoa_css_img_downloader {
public Xoa_css_img_downloader Stylesheet_prefix_(byte[] v) {stylesheet_prefix = v; return this;} private byte[] stylesheet_prefix; // TEST: setter exposed b/c tests can handle "mem/" but not "//mem"
public void Chk(byte[] wiki_domain, Io_url css_fil) {
this.wiki_domain = wiki_domain;
List_adp img_list = List_adp_.new_();
List_adp img_list = List_adp_.New();
byte[] old_bry = Io_mgr.Instance.LoadFilBry(css_fil);
byte[] rel_url_prefix = Bry_.Add(Bry_fwd_slashes, wiki_domain);
byte[] new_bry = Convert_to_local_urls(rel_url_prefix, old_bry, img_list);
@@ -38,7 +38,7 @@ public class Xoa_css_img_downloader {
try {
int src_len = src.length;
int prv_pos = 0;
Bry_bfr bfr = Bry_bfr.new_(src_len);
Bry_bfr bfr = Bry_bfr_.New_w_size(src_len);
Hash_adp img_hash = Hash_adp_bry.cs();
while (true) {
int url_pos = Bry_find_.Find_fwd(src, Bry_url, prv_pos);
@@ -134,7 +134,7 @@ public class Xoa_css_img_downloader {
int semic_pos = Bry_find_.Find_fwd(src, Byte_ascii.Semic, find_bgn + url_raw.length, src_len);
return semic_pos + Int_.Const_dlm_len;
}
private static final byte[]
private static final byte[]
Wikisource_dynimg_ttl = Bry_.new_a7("en.wikisource.org/w/index.php?title=MediaWiki:Dynimg.css")
, Wikisource_dynimg_find = Bry_.new_a7(".freedImg img[src*=\"wikipedia\"], .freedImg img[src*=\"wikisource\"], .freedImg img[src*=\"score\"], .freedImg img[src*=\"math\"] {")
, Wikisource_dynimg_repl = Bry_.new_a7(".freedImg img[src*=\"wikipedia\"], .freedImg img[src*=\"wikisource\"], /*XOWA:handle file:// paths which will have /commons.wikimedia.org/ but not /wikipedia/ */ .freedImg img[src*=\"wikimedia\"], .freedImg img[src*=\"score\"], .freedImg img[src*=\"math\"] {")
@@ -179,13 +179,13 @@ public class Xoa_css_img_downloader {
}
return raw_bry;
}
private static final byte[]
private static final byte[]
Bry_url = Bry_.new_a7("url("), Bry_data_image = Bry_.new_a7("data:image/")
, Bry_http = Bry_.new_a7("http://"), Bry_fwd_slashes = Bry_.new_a7("//"), Bry_import = Bry_.new_a7("@import ")
, Bry_http_protocol = Bry_.new_a7("http")
;
public static final byte[]
public static final byte[]
Bry_comment_bgn = Bry_.new_a7("/*XOWA:"), Bry_comment_end = Bry_.new_a7("*/");
private static final int Bry_url_len = Bry_url.length, Bry_import_len = Bry_import.length;
private static final int Bry_url_len = Bry_url.length, Bry_import_len = Bry_import.length;
static final String GRP_KEY = "xowa.wikis.init.css";
}

View File

@@ -166,7 +166,7 @@ class Xoa_css_img_downloader_fxt {
downloader.Ctor(Gfo_usr_dlg_.Test(), new Xof_download_wkr_test(), Bry_.Empty);
}
public void Test_css_convert(String raw, String expd, String... expd_img_ary) {
List_adp actl_img_list = List_adp_.new_();
List_adp actl_img_list = List_adp_.New();
byte[] actl_bry = downloader.Convert_to_local_urls(Bry_.new_a7("mem/en.wikipedia.org"), Bry_.new_u8(raw), actl_img_list);
Tfds.Eq_str_lines(expd, String_.new_u8(actl_bry));
Tfds.Eq_ary_str(expd_img_ary, actl_img_list.To_str_ary());

View File

@@ -18,9 +18,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
package gplx.xowa.bldrs.css; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*;
import gplx.core.btries.*; import gplx.core.primitives.*;
class Xob_css_parser {
private final Bry_bfr bfr = Bry_bfr.new_(255);
private final Xob_mirror_mgr mgr;
private final Xob_css_parser__url url_parser; private final Xob_css_parser__import import_parser;
private final Bry_bfr bfr = Bry_bfr_.New_w_size(255);
private final Xob_mirror_mgr mgr;
private final Xob_css_parser__url url_parser; private final Xob_css_parser__import import_parser;
public Xob_css_parser(Xob_mirror_mgr mgr) {
this.mgr = mgr;
this.url_parser = new Xob_css_parser__url(mgr.Site_url());
@@ -49,7 +49,7 @@ class Xob_css_parser {
}
}
private static final byte Tkn_import = 1, Tkn_url = 2;
private static final Btrie_slim_mgr tkns_trie = Btrie_slim_mgr.ci_a7()
private static final Btrie_slim_mgr tkns_trie = Btrie_slim_mgr.ci_a7()
.Add_str_byte("@import" , Tkn_import)
.Add_str_byte(" url(" , Tkn_url)
;

View File

@@ -30,7 +30,7 @@ public class Xob_css_parser__url_tst {
@Test public void Warn_site() {fxt.Test_parse_warn(" url('//site')" , " url('//site')" , "invalid");}
}
class Xob_css_parser__url_fxt {
protected Xob_css_parser__url url_parser; private final Bry_bfr bfr = Bry_bfr.new_(32);
protected Xob_css_parser__url url_parser; private final Bry_bfr bfr = Bry_bfr_.New_w_size(32);
protected Xob_css_tkn__base cur_frag; protected byte[] src_bry;
@gplx.Virtual public void Clear() {
url_parser = new Xob_css_parser__url(Bry_.new_a7("site"));

View File

@@ -48,10 +48,10 @@ class Xob_url_fixer {
case Xob_url_fixer_tkn.Tid_mid_question: end = pos; pos = src_len; break;
case Xob_url_fixer_tkn.Tid_mid_rel_1:
case Xob_url_fixer_tkn.Tid_mid_rel_2:
Bry_bfr tmp_bfr = Bry_bfr.new_(src_len);
Bry_bfr tmp_bfr = Bry_bfr_.New_w_size(src_len);
byte[] to_rel_root = Bry_.Mid(src, bgn, pos);
byte[] to_rel_qry = Bry_.Mid(src, pos, src_len);
src = gplx.xowa.xtns.pfuncs.ttls.Pfunc_rel2abs.Rel2abs(tmp_bfr, to_rel_qry, to_rel_root, Int_obj_ref.neg1_());
src = gplx.xowa.xtns.pfuncs.ttls.Pfunc_rel2abs.Rel2abs(tmp_bfr, to_rel_qry, to_rel_root, Int_obj_ref.New_neg1());
bgn = pos = 0;
end = src_len = src.length;
no_slashes = true;

View File

@@ -19,12 +19,12 @@ package gplx.xowa.bldrs.filters.dansguardians; import gplx.*; import gplx.xowa.*
import gplx.core.primitives.*;
class Dg_file {
public Dg_file(int id, String rel_path, Dg_rule[] lines) {this.id = id; this.rel_path = rel_path; this.lines = lines;}
public int Id() {return id;} private final int id;
public String Rel_path() {return rel_path;} private final String rel_path; // EX: goodphrases/weighted_general
public Dg_rule[] Lines() {return lines;} private final Dg_rule[] lines;
public int Id() {return id;} private final int id;
public String Rel_path() {return rel_path;} private final String rel_path; // EX: goodphrases/weighted_general
public Dg_rule[] Lines() {return lines;} private final Dg_rule[] lines;
}
class Dg_rule {// EX: < wikipedia ><-30>
private final Hash_adp_bry word_idx_hash = Hash_adp_bry.cs();
private final Hash_adp_bry word_idx_hash = Hash_adp_bry.cs();
public Dg_rule(int file_id, int id, int idx, int tid, byte[] key, int score, Dg_word[] words) {
this.file_id = file_id;
this.id = id; this.idx = idx; this.tid = tid; this.key = key; this.score = score; this.words = words;
@@ -32,25 +32,25 @@ class Dg_rule {// EX: < wikipedia ><-30>
int words_len = words.length;
for (int i = 0; i < words_len; ++i) {
Dg_word word = words[i];
word_idx_hash.Add_bry_obj(word.Raw(), Int_obj_ref.new_(i));
word_idx_hash.Add_bry_obj(word.Raw(), Int_obj_ref.New(i));
}
}
}
public int File_id() {return file_id;} private final int file_id;
public int Id() {return id;} private final int id;
public int Idx() {return idx;} private final int idx;
public int Tid() {return tid;} private final int tid;
public byte[] Key() {return key;} private final byte[] key;
public Dg_word[] Words() {return words;} private final Dg_word[] words;
public int File_id() {return file_id;} private final int file_id;
public int Id() {return id;} private final int id;
public int Idx() {return idx;} private final int idx;
public int Tid() {return tid;} private final int tid;
public byte[] Key() {return key;} private final byte[] key;
public Dg_word[] Words() {return words;} private final Dg_word[] words;
public Hash_adp_bry Word_idx_hash() {return word_idx_hash;}
public int Score() {return score;} private final int score;
public int Score() {return score;} private final int score;
public static final int
Tid_rule = 0
, Tid_comment = 1
, Tid_blank = 3
, Tid_invalid = 4
;
public static final Dg_rule
public static final Dg_rule
Itm_comment = new Dg_rule(-1, -1, -1, Tid_comment, null, -1, null)
, Itm_blank = new Dg_rule(-1, -1, -1, Tid_blank, null, -1, null)
, Itm_invalid = new Dg_rule(-1, -1, -1, Tid_invalid, null, -1, null)
@@ -59,7 +59,7 @@ class Dg_rule {// EX: < wikipedia ><-30>
}
class Dg_word {
public Dg_word(byte[] raw) {this.raw = raw;}
public byte[] Raw() {return raw;} private final byte[] raw;
public byte[] Raw() {return raw;} private final byte[] raw;
public static String Ary_concat(Dg_word[] ary, Bry_bfr bfr, byte dlm) {
if (ary == null) return String_.Empty;
int len = ary.length;

View File

@@ -19,11 +19,11 @@ package gplx.xowa.bldrs.filters.dansguardians; import gplx.*; import gplx.xowa.*
import gplx.dbs.*;
class Dg_log_mgr {
private Db_conn conn;
private final Dg_file_tbl tbl_file = new Dg_file_tbl();
private final Dg_rule_tbl tbl_rule = new Dg_rule_tbl();
private final Dg_page_score_tbl tbl_page_score = new Dg_page_score_tbl();
private final Dg_page_rule_tbl tbl_page_rule = new Dg_page_rule_tbl();
private final Bry_bfr tmp_bfr = Bry_bfr.reset_(16);
private final Dg_file_tbl tbl_file = new Dg_file_tbl();
private final Dg_rule_tbl tbl_rule = new Dg_rule_tbl();
private final Dg_page_score_tbl tbl_page_score = new Dg_page_score_tbl();
private final Dg_page_rule_tbl tbl_page_rule = new Dg_page_rule_tbl();
private final Bry_bfr tmp_bfr = Bry_bfr_.Reset(16);
public void Init(Io_url db_url) {
Db_conn_bldr_data conn_data = Db_conn_bldr.Instance.Get_or_new(db_url);
conn = conn_data.Conn(); boolean created = conn_data.Created();
@@ -43,7 +43,7 @@ class Dg_log_mgr {
public void Rls() {conn.Txn_end();}
}
class Dg_file_tbl {
private String tbl_name = "dg_file"; private final Dbmeta_fld_list flds = Dbmeta_fld_list.new_();
private String tbl_name = "dg_file"; private final Dbmeta_fld_list flds = new Dbmeta_fld_list();
private String fld_file_id, fld_file_path, fld_rule_count;
private Db_conn conn; private Db_stmt stmt_insert;
public void Conn_(Db_conn new_conn, boolean created) {
@@ -69,7 +69,7 @@ class Dg_file_tbl {
}
}
class Dg_rule_tbl implements Rls_able {
private String tbl_name = "dg_rule"; private final Dbmeta_fld_list flds = Dbmeta_fld_list.new_();
private String tbl_name = "dg_rule"; private final Dbmeta_fld_list flds = new Dbmeta_fld_list();
private String fld_file_id, fld_rule_id, fld_rule_idx, fld_rule_score, fld_rule_text;
private Db_conn conn; private Db_stmt stmt_insert;
public void Conn_(Db_conn new_conn, boolean created) {
@@ -102,7 +102,7 @@ class Dg_rule_tbl implements Rls_able {
}
}
class Dg_page_score_tbl implements Rls_able {
private String tbl_name = "dg_page_score"; private final Dbmeta_fld_list flds = Dbmeta_fld_list.new_();
private String tbl_name = "dg_page_score"; private final Dbmeta_fld_list flds = new Dbmeta_fld_list();
private String fld_log_tid, fld_page_id, fld_page_ns, fld_page_ttl, fld_page_len, fld_page_score, fld_page_rule_count, fld_clude_type;
private Db_conn conn; private Db_stmt stmt_insert;
public void Conn_(Db_conn new_conn, boolean created) {
@@ -142,7 +142,7 @@ class Dg_page_score_tbl implements Rls_able {
}
}
class Dg_page_rule_tbl implements Rls_able {
private String tbl_name = "dg_page_rule"; private final Dbmeta_fld_list flds = Dbmeta_fld_list.new_();
private String tbl_name = "dg_page_rule"; private final Dbmeta_fld_list flds = new Dbmeta_fld_list();
private String fld_log_tid, fld_page_id, fld_rule_id, fld_rule_score_total;
private Db_conn conn; private Db_stmt stmt_insert;
public void Conn_(Db_conn new_conn, boolean created) {

View File

@@ -21,12 +21,12 @@ import gplx.xowa.langs.*;
import gplx.xowa.bldrs.filters.core.*;
public class Dg_match_mgr {
private int score_init, score_fail; private boolean log_enabled, case_match;
private final Btrie_slim_mgr btrie = Btrie_slim_mgr.cs();
private final Ordered_hash rules = Ordered_hash_.New_bry();
private final Ordered_hash rule_group_hash = Ordered_hash_.New_bry(), rule_tally_hash = Ordered_hash_.New_bry();
private final Dg_parser parser = new Dg_parser();
private final Xob_ttl_filter_mgr ttl_filter_mgr = new Xob_ttl_filter_mgr();
private final Dg_log_mgr log_mgr = new Dg_log_mgr();
private final Btrie_slim_mgr btrie = Btrie_slim_mgr.cs();
private final Ordered_hash rules = Ordered_hash_.New_bry();
private final Ordered_hash rule_group_hash = Ordered_hash_.New_bry(), rule_tally_hash = Ordered_hash_.New_bry();
private final Dg_parser parser = new Dg_parser();
private final Xob_ttl_filter_mgr ttl_filter_mgr = new Xob_ttl_filter_mgr();
private final Dg_log_mgr log_mgr = new Dg_log_mgr();
public Dg_match_mgr(Io_url root_dir, int score_init, int score_fail, boolean case_match, boolean log_enabled, Io_url log_url) {
this.score_init = score_init; this.score_fail = score_fail; this.case_match = case_match; this.log_enabled = log_enabled;
if (log_enabled) log_mgr.Init(log_url);
@@ -132,8 +132,8 @@ public class Dg_match_mgr {
}
class Dg_rule_group {
public Dg_rule_group(byte[] word) {this.word = word;}
public byte[] Word() {return word;} private final byte[] word;
public List_adp Rules_list() {return rules_list;} private final List_adp rules_list = List_adp_.new_();
public byte[] Word() {return word;} private final byte[] word;
public List_adp Rules_list() {return rules_list;} private final List_adp rules_list = List_adp_.New();
public Dg_rule[] Rules_ary() {
if (rules_ary == null)
rules_ary = (Dg_rule[])rules_list.To_ary_and_clear(Dg_rule.class);
@@ -147,8 +147,8 @@ class Dg_rule_tally {
this.results_len = words.length;
this.results = new int[results_len];
}
public Dg_rule Rule() {return rule;} private final Dg_rule rule;
public int[] Results() {return results;} private final int[] results; private final int results_len;
public Dg_rule Rule() {return rule;} private final Dg_rule rule;
public int[] Results() {return results;} private final int[] results; private final int results_len;
public void Process(byte[] word) {
Int_obj_ref idx = (Int_obj_ref)rule.Word_idx_hash().Get_by_bry(word);
int idx_val = idx.Val();

View File

@@ -27,7 +27,7 @@ public class Dg_match_mgr_tst {
}
class Dg_match_mgr_fxt {
private Dg_match_mgr match_mgr;
private final List_adp rule_list = List_adp_.new_();
private final List_adp rule_list = List_adp_.New();
public void Clear() {
Db_conn_bldr.Instance.Reg_default_mem();
Io_url root_dir = Io_url_.mem_dir_("mem/dg/");

View File

@@ -17,8 +17,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.bldrs.filters.dansguardians; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.filters.*;
class Dg_parser {
private Gfo_usr_dlg usr_dlg = Gfo_usr_dlg_.Instance; private final Bry_bfr key_bldr = Bry_bfr.reset_(32);
private final List_adp files = List_adp_.new_(), lines = List_adp_.new_(), words = List_adp_.new_();
private Gfo_usr_dlg usr_dlg = Gfo_usr_dlg_.Instance; private final Bry_bfr key_bldr = Bry_bfr_.Reset(32);
private final List_adp files = List_adp_.New(), lines = List_adp_.New(), words = List_adp_.New();
private int next_id = 0;
public Dg_file[] Parse_dir(Io_url dir) {
Io_url[] fil_urls = Io_mgr.Instance.QueryDir_args(dir).Recur_(true).ExecAsUrlAry();

View File

@@ -39,8 +39,8 @@ public class Dg_parser_tst {
// }
}
class Dg_parser_fxt {
private final Dg_parser parser = new Dg_parser(); private final Bry_bfr bfr = Bry_bfr.reset_(32);
private final Bry_bfr tmp_bfr = Bry_bfr.reset_(16);
private final Dg_parser parser = new Dg_parser(); private final Bry_bfr bfr = Bry_bfr_.Reset(32);
private final Bry_bfr tmp_bfr = Bry_bfr_.Reset(16);
public void Init() {}
public Dg_rule Make_line(int score, String... words) {return new Dg_rule(-1, -1, -1, Dg_rule.Tid_rule, null, score, Dg_word.Ary_new_by_str_ary(words));}
public void Test_parse_line(String str, Dg_rule expd) {

View File

@@ -56,6 +56,6 @@ public class Xob_info_session {
, Cfg_key__time = "time" // EX: 20150102 030405
, Cfg_key__guid = "guid" // EX: 00000000-0000-0000-0000-000000000000
;
public static Xob_info_session new_(String user, String wiki_domain, String dump_name) {return new Xob_info_session(user, Xoa_app_.Version, wiki_domain, dump_name, DateAdp_.Now(), Guid_adp_.new_());}
public static Xob_info_session new_(String user, String wiki_domain, String dump_name) {return new Xob_info_session(user, Xoa_app_.Version, wiki_domain, dump_name, DateAdp_.Now(), Guid_adp_.New());}
public static final Xob_info_session Test = new_("anonymous", "en.wikipedia.org", "enwiki-latest-pages-articles");
}

View File

@@ -34,12 +34,12 @@ abstract class Xoi_cmd_base implements Gfo_thread_cmd {
// install_mgr.App().Gui_wtr().Log_many(GRP_KEY, "import.end", "import.end ~{0} ~{1} ~{2}", wiki_key, wiki_date, dump_type);
return true;
}
public GfoInvkAble Owner() {return owner;} public Xoi_cmd_base Owner_(GfoInvkAble v) {owner = v; return this;} GfoInvkAble owner;
public Gfo_invk Owner() {return owner;} public Xoi_cmd_base Owner_(Gfo_invk v) {owner = v; return this;} Gfo_invk owner;
public Gfo_thread_cmd Async_next_cmd() {return next_cmd;} public void Async_next_cmd_(Gfo_thread_cmd v) {next_cmd = v;} Gfo_thread_cmd next_cmd;
public void Async_run() {
running = true;
// install_mgr.App().Gui_wtr().Log_many(GRP_KEY, "import.bgn", "import.bgn ~{0} ~{1} ~{2}", wiki_key, wiki_date, dump_type);
Thread_adp_.invk_(this.Async_key(), this, Invk_process_async).Start();
Thread_adp_.Start_by_key(this.Async_key(), this, Invk_process_async);
}
public boolean Async_running() {return running;} private boolean running;
public void Process_async() {
@@ -66,7 +66,7 @@ abstract class Xoi_cmd_base implements Gfo_thread_cmd {
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
if (ctx.Match(k, Invk_process_async)) Process_async();
else if (ctx.Match(k, Invk_owner)) return owner;
else return GfoInvkAble_.Rv_unhandled;
else return Gfo_invk_.Rv_unhandled;
return this;
} private static final String Invk_process_async = "run_async", Invk_owner = "owner";
}
@@ -103,7 +103,7 @@ class Xoi_cmd_search2_build extends Xoi_cmd_base {
@Override public void Process_async_init(Xoae_app app, Xowe_wiki wiki, Xob_bldr bldr) {
if (app.Setup_mgr().Dump_mgr().Wiki_storage_type_is_sql()) {
wiki.Db_mgr_as_sql().Category_version_update(false);
gplx.xowa.addons.apps.searchs.bldrs.Srch_bldr_mgr_.Setup(wiki);
gplx.xowa.addons.wikis.searchs.bldrs.Srch_bldr_mgr_.Setup(wiki);
}
}
@Override public void Process_async_done(Xoae_app app, Xowe_wiki wiki, Xob_bldr bldr) {

View File

@@ -16,9 +16,9 @@ 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.bldrs.installs; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*;
import gplx.gfui.*;
import gplx.gfui.*; import gplx.gfui.kits.core.*;
import gplx.core.threads.*;
class Xoi_cmd_imageMagick_download extends Gfo_thread_cmd_download implements Gfo_thread_cmd {// private static final byte[] Bry_windows_zip = Bry_.new_a7("-windows.zip");
class Xoi_cmd_imageMagick_download extends Gfo_thread_cmd_download implements Gfo_thread_cmd {// private static final byte[] Bry_windows_zip = Bry_.new_a7("-windows.zip");
// static final String Src_imageMagick = "ftp://ftp.sunet.se/pub/multimedia/graphics/ImageMagick/binaries/";
public Xoi_cmd_imageMagick_download(Gfo_usr_dlg usr_dlg, Gfui_kit kit, Io_url trg) {this.Ctor(usr_dlg, kit); this.trg = trg;} Io_url trg;
@Override public byte Async_init() { // <a href="ImageMagick-6.8.1-9-Q16-x86-windows.zip">

View File

@@ -17,8 +17,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.bldrs.installs; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*;
import gplx.core.brys.fmtrs.*; import gplx.core.threads.*;
public class Xoi_cmd_mgr implements GfoInvkAble {
List_adp cmds = List_adp_.new_();
public class Xoi_cmd_mgr implements Gfo_invk {
List_adp cmds = List_adp_.New();
public Xoi_cmd_mgr(Xoi_setup_mgr install_mgr) {this.app = install_mgr.App(); this.install_mgr = install_mgr;} private Xoae_app app; Xoi_setup_mgr install_mgr;
public Xoae_app App() {return app;}
public void Canceled_y_() {canceled = true;} private boolean canceled = false;
@@ -47,7 +47,7 @@ public class Xoi_cmd_mgr implements GfoInvkAble {
else
this.Working_(Bool_.N);
}
private void Run_async(Gfo_thread_cmd cmd) {Thread_adp_.invk_msg_(cmd.Async_key(), this, GfoMsg_.new_cast_(Invk_process_async).Add("v", cmd)).Start();}
private void Run_async(Gfo_thread_cmd cmd) {Thread_adp_.Start_by_val(cmd.Async_key(), this, Invk_process_async, cmd);}
private void Cmds_run() {
if (working) {
app.Gui_mgr().Kit().Ask_ok("", "", "An import is in progress. Please wait for it to complete. If you want to do multiple imports at once, see Dashboard/Import/Offline."); // HOME
@@ -142,7 +142,7 @@ public class Xoi_cmd_mgr implements GfoInvkAble {
else if (ctx.Match(k, Invk_dump_add_many)) return Dump_add_many(m);
else if (ctx.Match(k, Invk_cmd_add)) return Cmd_add(m);
else if (ctx.Match(k, Invk_run)) Cmds_run();
else return GfoInvkAble_.Rv_unhandled;
else return Gfo_invk_.Rv_unhandled;
return this;
} private static final String Invk_process_async = "process_async", Invk_dump_add_many = "dump_add_many", Invk_run = "run", Invk_cmd_add = "cmd_add";
static final String GRP_KEY = "xowa.install_mgr.cmd_mgr";

View File

@@ -31,12 +31,12 @@ class Xoi_cmd_wiki_import implements Gfo_thread_cmd {
install_mgr.App().Usr_dlg().Log_many(GRP_KEY, "import.end", "import.end ~{0} ~{1} ~{2}", wiki_key, wiki_date, dump_type);
return true;
}
public GfoInvkAble Owner() {return owner;} public Xoi_cmd_wiki_import Owner_(GfoInvkAble v) {owner = v; return this;} GfoInvkAble owner;
public Gfo_invk Owner() {return owner;} public Xoi_cmd_wiki_import Owner_(Gfo_invk v) {owner = v; return this;} Gfo_invk owner;
public Gfo_thread_cmd Async_next_cmd() {return next_cmd;} public void Async_next_cmd_(Gfo_thread_cmd v) {next_cmd = v;} Gfo_thread_cmd next_cmd;
public void Async_run() {
running = true;
install_mgr.App().Usr_dlg().Log_many(GRP_KEY, "import.bgn", "import.bgn ~{0} ~{1} ~{2}", wiki_key, wiki_date, dump_type);
Thread_adp_.invk_(this.Async_key(), this, Invk_process_async).Start();
Thread_adp_.Start_by_key(this.Async_key(), this, Invk_process_async);
}
public boolean Async_running() {
return running;
@@ -64,8 +64,8 @@ class Xoi_cmd_wiki_import implements Gfo_thread_cmd {
bldr.Cmd_mgr().Add_cmd(wiki, Xob_cmd_keys.Key_text_cat_core);
bldr.Cmd_mgr().Add_cmd(wiki, Xob_cmd_keys.Key_text_cat_link);
}
if (wiki.Appe().Setup_mgr().Dump_mgr().Search_version() == gplx.xowa.addons.apps.searchs.specials.Srch_special_page.Version_2)
gplx.xowa.addons.apps.searchs.bldrs.Srch_bldr_mgr_.Setup(wiki);
if (wiki.Appe().Setup_mgr().Dump_mgr().Search_version() == gplx.xowa.addons.wikis.searchs.specials.Srch_special_page.Version_2)
gplx.xowa.addons.wikis.searchs.bldrs.Srch_bldr_mgr_.Setup(wiki);
bldr.Cmd_mgr().Add_cmd(wiki, Xob_cmd_keys.Key_text_term);
}
private void Process_async() {
@@ -110,7 +110,7 @@ class Xoi_cmd_wiki_import implements Gfo_thread_cmd {
if (ctx.Match(k, Invk_process_async)) Process_async();
else if (ctx.Match(k, Invk_owner)) return owner;
else if (ctx.Match(k, Invk_open_wiki)) Open_wiki(wiki_key);
else return GfoInvkAble_.Rv_unhandled;
else return Gfo_invk_.Rv_unhandled;
return this;
} private static final String Invk_process_async = "run_async", Invk_owner = "owner", Invk_open_wiki = "open_wiki";
static final String GRP_KEY = "xowa.thread.op.build";

View File

@@ -23,12 +23,12 @@ import gplx.xowa.wikis.domains.*;
import gplx.xowa.bldrs.wms.*; import gplx.xowa.bldrs.wms.dumps.*;
public class Xoi_cmd_wiki_tst {
@Test public void Run() { // MAINT
Bld_import_list(Xow_domain_regy.All);
// Bld_import_list(Xow_domain_regy.All);
// Bld_cfg_files(Xow_domain_regy.All); // 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_bfr bfr = Bry_bfr_.Reset(255);
Wmf_latest_parser parser = new Wmf_latest_parser();
Bfr_arg__time time_fmtr = new Bfr_arg__time();
for (int i = 0; i < ary_len; i++)
@@ -55,7 +55,7 @@ public class Xoi_cmd_wiki_tst {
byte[] pages_articles_key = Bry_.new_a7(wmf_key + "-latest-pages-articles.xml.bz2");
Wmf_latest_itm latest_itm = parser.Get_by(pages_articles_key);
if (latest_itm == null) {Tfds.Dbg("missing|" + domain_str + "|" + url); return;} // NOTE: commonswiki missing entry for commonswiki-latest-pages-articles.xml.bz2 DATE:2016-05-01
Tfds.Dbg("pass|" + url);
Tfds.Dbg("pass|" + domain_str + "|" + url);
bfr.Add(domain_bry).Add_byte_pipe();
bfr.Add_str_u8(dump_file.File_url()).Add_byte_pipe();
bfr.Add(Xow_domain_tid_.Get_type_as_bry(domain_itm.Domain_type_id())).Add_byte_pipe();
@@ -108,7 +108,7 @@ public class Xoi_cmd_wiki_tst {
}
*/
public void Bld_cfg_files(String... ary) {
Bry_bfr bfr = Bry_bfr.reset_(255);
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;

View File

@@ -16,7 +16,7 @@ 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.bldrs.installs; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*;
import gplx.gfui.*;
import gplx.gfui.*; import gplx.gfui.kits.core.*;
import gplx.core.threads.*;
class Xoi_cmd_wiki_unzip extends Gfo_thread_cmd_unzip implements Gfo_thread_cmd { public static final String KEY_dump = "wiki.unzip";
public Xoi_cmd_wiki_unzip(Xoi_setup_mgr install_mgr, String wiki_key, String dump_date, String dump_type) {this.install_mgr = install_mgr; this.Owner_(install_mgr); this.wiki_key = wiki_key; this.dump_date = dump_date; this.dump_type = dump_type;} private Xoi_setup_mgr install_mgr; String wiki_key, dump_date, dump_type;

View File

@@ -20,7 +20,7 @@ import gplx.core.threads.*;
import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.cmds.utils.*;
class Xoi_cmd_wiki_zip implements Gfo_thread_cmd {
public Xoi_cmd_wiki_zip(Xoi_setup_mgr install_mgr, String wiki_key, String wiki_date, String dump_type) {this.install_mgr = install_mgr; this.Owner_(install_mgr); this.wiki_key = wiki_key; this.wiki_date = wiki_date; this.dump_type = dump_type;} private Xoi_setup_mgr install_mgr; String wiki_key, wiki_date, dump_type;
public static final String KEY = "wiki.zip";
public static final String KEY = "wiki.zip";
public void Cmd_ctor() {}
public String Async_key() {return KEY;}
public int Async_sleep_interval() {return Gfo_thread_cmd_.Async_sleep_interval_1_second;}
@@ -33,12 +33,12 @@ class Xoi_cmd_wiki_zip implements Gfo_thread_cmd {
install_mgr.App().Usr_dlg().Prog_many(GRP_KEY, "zip.done", "zip done");
return true;
}
public GfoInvkAble Owner() {return owner;} public Xoi_cmd_wiki_zip Owner_(GfoInvkAble v) {owner = v; return this;} GfoInvkAble owner;
public Gfo_invk Owner() {return owner;} public Xoi_cmd_wiki_zip Owner_(Gfo_invk v) {owner = v; return this;} Gfo_invk owner;
public Gfo_thread_cmd Async_next_cmd() {return next_cmd;} public void Async_next_cmd_(Gfo_thread_cmd v) {next_cmd = v;} Gfo_thread_cmd next_cmd;
public void Async_run() {
running = true;
install_mgr.App().Usr_dlg().Log_many(GRP_KEY, "zip.bgn", "zip.bgn ~{0}", wiki_key);
Thread_adp_.invk_(this.Async_key(), this, Invk_process_async).Start();
Thread_adp_.Start_by_key(this.Async_key(), this, Invk_process_async);
}
public boolean Async_running() {
return running;
@@ -62,8 +62,8 @@ class Xoi_cmd_wiki_zip implements Gfo_thread_cmd {
else if (ctx.Match(k, Invk_owner)) return owner;
else if (ctx.Match(k, Invk_delete_dirs_page_)) delete_dirs_page = m.ReadYn("v");
else if (ctx.Match(k, Invk_notify_done_)) notify_done = m.ReadYn("v");
else return GfoInvkAble_.Rv_unhandled;
else return Gfo_invk_.Rv_unhandled;
return this;
} private static final String Invk_process_async = "run_async", Invk_owner = "owner", Invk_delete_dirs_page_ = "delete_dirs_page_", Invk_notify_done_ = "notify_done_";
private static final String GRP_KEY = "xowa.thread.op.wiki.zip";
private static final String GRP_KEY = "xowa.thread.op.wiki.zip";
}

View File

@@ -16,12 +16,12 @@ 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.bldrs.installs; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*;
import gplx.core.ios.*;
import gplx.core.ios.*; import gplx.core.ios.streams.*;
import gplx.xowa.bldrs.wms.dumps.*;
public class Xoi_dump_mgr implements GfoInvkAble {
public class Xoi_dump_mgr implements Gfo_invk {
public String[] Server_urls() {return server_urls;} private String[] server_urls = String_.Ary(Xowm_dump_file_.Server_wmf_https, Xowm_dump_file_.Server_your_org, Xowm_dump_file_.Server_c3sl, Xowm_dump_file_.Server_masaryk);
public String[] Custom_cmds() {return custom_cmds;} private String[] custom_cmds = String_.Ary(Xoi_cmd_wiki_download.Key_wiki_download, Xoi_cmd_wiki_import.KEY);
public byte Data_storage_format() {return data_storage_format;} public Xoi_dump_mgr Data_storage_format_(byte v) {data_storage_format = v; return this;} private byte data_storage_format = gplx.core.ios.Io_stream_.Tid_gzip;
public byte Data_storage_format() {return data_storage_format;} public Xoi_dump_mgr Data_storage_format_(byte v) {data_storage_format = v; return this;} private byte data_storage_format = gplx.core.ios.streams.Io_stream_.Tid_gzip;
public long Db_text_max() {return db_text_max;} private long db_text_max = (long)3000 * Io_mgr.Len_mb;
public long Db_categorylinks_max() {return db_categorylinks_max;} private long db_categorylinks_max = (long)3600 * Io_mgr.Len_mb;
public long Db_wikidata_max() {return db_wikidata_max;} private long db_wikidata_max = (long)3600 * Io_mgr.Len_mb;
@@ -31,7 +31,7 @@ public class Xoi_dump_mgr implements GfoInvkAble {
public boolean Css_wiki_update() {return css_wiki_update;} private boolean css_wiki_update = true;
public boolean Css_commons_download() {return css_commons_download;} private boolean css_commons_download = true; // changed from false to true; DATE:2014-10-19
public boolean Delete_xml_file() {return delete_xml_file;} private boolean delete_xml_file = true;
public byte Search_version() {return search_version;} private byte search_version = gplx.xowa.addons.apps.searchs.specials.Srch_special_page.Version_2;
public byte Search_version() {return search_version;} private byte search_version = gplx.xowa.addons.wikis.searchs.specials.Srch_special_page.Version_2;
public boolean Import_bz2_by_stdout() {return import_bz2_by_stdout;} private boolean import_bz2_by_stdout = true;
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
if (ctx.Match(k, Invk_server_urls)) return String_.Concat_with_str(",\n", server_urls);
@@ -63,7 +63,7 @@ public class Xoi_dump_mgr implements GfoInvkAble {
else if (ctx.Match(k, Invk_search_version_list)) return Options_search_version_list;
else if (ctx.Match(k, Invk_import_bz2_by_stdout)) return Yn.To_str(import_bz2_by_stdout);
else if (ctx.Match(k, Invk_import_bz2_by_stdout_)) import_bz2_by_stdout = m.ReadYn("v");
else return GfoInvkAble_.Rv_unhandled;
else return Gfo_invk_.Rv_unhandled;
return this;
}
private static final String Invk_server_urls = "server_urls", Invk_server_urls_ = "server_urls_", Invk_custom_cmds = "custom_cmds", Invk_custom_cmds_ = "custom_cmds_"

View File

@@ -20,7 +20,7 @@ public class Xoi_mirror_parser {
public String[] Parse(String raw_str) {
if (String_.Len_eq_0(raw_str)) return String_.Ary_empty;
byte[] raw = Bry_.new_u8(raw_str);
List_adp rv = List_adp_.new_();
List_adp rv = List_adp_.New();
int pos = 0;
while (true) {
int bgn = Bry_find_.Find_fwd(raw, CONST_href_bgn, pos); if (bgn == Bry_find_.Not_found) break;
@@ -35,7 +35,7 @@ public class Xoi_mirror_parser {
rv.Add(String_.new_u8(date));
}
return rv.To_str_ary();
} static final byte[] CONST_href_bgn = Bry_.new_a7("<a href=\""), CONST_href_end = Bry_.new_a7("\""), CONST_date_parent_dir = Bry_.new_a7("../");
} static final byte[] CONST_href_bgn = Bry_.new_a7("<a href=\""), CONST_href_end = Bry_.new_a7("\""), CONST_date_parent_dir = Bry_.new_a7("../");
public static String Find_last_lte(String[] ary, String comp) { // assuming sorted ary, find last entry that is lte comp
int len = ary.length;
for (int i = len - 1; i > -1; i--) {

View File

@@ -18,7 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
package gplx.xowa.bldrs.installs; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*;
import gplx.gfui.*; import gplx.xowa.bldrs.setups.addons.*;
import gplx.xowa.bldrs.setups.maints.*;
public class Xoi_setup_mgr implements GfoInvkAble {
public class Xoi_setup_mgr implements Gfo_invk {
public Xoi_setup_mgr(Xoae_app app) {
this.app = app;
cmd_mgr = new Xoi_cmd_mgr(this);
@@ -37,7 +37,7 @@ public class Xoi_setup_mgr implements GfoInvkAble {
else if (ctx.Match(k, Invk_dumps)) return dump_mgr;
else if (ctx.Match(k, Invk_addons)) return addon_mgr;
else if (ctx.Match(k, Invk_maint)) return maint_mgr;
else return GfoInvkAble_.Rv_unhandled;
else return Gfo_invk_.Rv_unhandled;
}
static final String Invk_cmds = "cmds", Invk_dumps = "dumps", Invk_addons = "addons", Invk_maint = "maint";
static final String GRP_KEY = "xowa.setup";

View File

@@ -1,48 +0,0 @@
/*
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.bldrs.servers; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*;
import gplx.xowa.bldrs.setups.maints.*;
import gplx.xowa.bldrs.servers.jobs.*;
public class Xob_core_server {
private Xob_wmf_mgr wmf_mgr;
public Xob_core_server(Xoae_app app) {
wmf_mgr = new Xob_wmf_mgr(app);
}
public void Server_init() {
// load cmds bld_all
// load cses wiki_updated,commons_updated,wikidata_update
// load jobs bld_all,en.wikipedia.org
}
public void Server_bgn() {
while (true) {
if ( wmf_mgr.Sync() // new wmf_stats
// || jar_mgr.Updated() // new jar
) {
// RunJobs();
}
}
/*
check wikimedia
if (change)
check jobs
run jobs
*/
}
public void Server_end() {
}
}

View File

@@ -1,35 +0,0 @@
/*
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.bldrs.servers; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*;
import gplx.xowa.bldrs.setups.maints.*;
public class Xob_wmf_mgr {
private Xoa_maint_mgr maint_mgr;
public Xob_wmf_mgr(Xoae_app app) {
maint_mgr = new Xoa_maint_mgr(app);
}
public int Sync_interval() {return sync_interval;} public Xob_wmf_mgr Sync_interval_(int v) {sync_interval = v; return this;} private int sync_interval = 60 * 24; // in minutes
public DateAdp Sync_previous() {return sync_previous;} public Xob_wmf_mgr Sync_previous_(DateAdp v) {sync_previous = v; return this;} private DateAdp sync_previous = DateAdp_.MinValue;
public boolean Sync() {
maint_mgr.Wmf_status_update();
/*
download dumps
calculate times
*/
return false;
}
}

View File

@@ -1,24 +0,0 @@
/*
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.bldrs.servers.jobs; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.servers.*;
public class Xob_job_itm {
public String Key() {return key;} public Xob_job_itm Key_(String v) {key = v; return this;} private String key;
public String Owner() {return owner;} public Xob_job_itm Owner_(String v) {owner = v; return this;} private String owner;
public String Ctg() {return ctg;} public Xob_job_itm Ctg_(String v) {ctg = v; return this;} private String ctg;
public String Text() {return text;} public Xob_job_itm Text_(String v) {text = v; return this;} private String text;
}

View File

@@ -1,27 +0,0 @@
/*
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.bldrs.servers.jobs; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.servers.*;
public class Xob_job_mgr {
private Ordered_hash jobs = Ordered_hash_.New();
public int Count() {return jobs.Count();}
public Xob_job_itm Get_at(int i) {return (Xob_job_itm)jobs.Get_at(i);}
public Xob_job_itm Get(String k) {return (Xob_job_itm)jobs.Get_by(k);}
public void Load(String text) {
jobs.Add(null, null);
}
}

View File

@@ -16,13 +16,13 @@ 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.bldrs.setups.addons; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.setups.*;
public class Xoi_addon_mgr implements GfoInvkAble {
public class Xoi_addon_mgr implements Gfo_invk {
public Xoi_firefox_installer Firefox() {return firefox;} private Xoi_firefox_installer firefox = new Xoi_firefox_installer();
public void Init_by_app(Xoae_app app) {
firefox.Init_by_app(app);
}
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
if (ctx.Match(k, Invk_firefox)) return firefox;
else return GfoInvkAble_.Rv_unhandled;
else return Gfo_invk_.Rv_unhandled;
} private static final String Invk_firefox = "firefox";
}

View File

@@ -18,7 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
package gplx.xowa.bldrs.setups.addons; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.setups.*;
import gplx.core.ios.zips.*; import gplx.core.envs.*;
import gplx.xowa.apps.fsys.*;
public class Xoi_firefox_installer implements GfoInvkAble {
public class Xoi_firefox_installer implements Gfo_invk {
private Io_url src_xpi, trg_xpi;
private Io_url trg_xpi_package;
private Process_adp program = new Process_adp();
@@ -59,7 +59,7 @@ public class Xoi_firefox_installer implements GfoInvkAble {
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
if (ctx.Match(k, Invk_program)) return program;
if (ctx.Match(k, Invk_install)) Install_via_process();
else return GfoInvkAble_.Rv_unhandled;
else return Gfo_invk_.Rv_unhandled;
return this;
} private static final String Invk_program = "program", Invk_install = "install";
}

View File

@@ -51,8 +51,8 @@ public class Wmf_dump_list_parser_tst {
// );
// Wmf_dump_itm[] itms = new Wmf_dump_list_parser().Parse(Io_mgr.Instance.LoadFilBry("C:\\xowa\\bin\\any\\xowa\\xtns\\xowa\\maintenance\\backup-index.html"));
// Array_.Sort(itms);
// Bry_bfr sql_bfr = Bry_bfr.new_();
// Bry_bfr bld_bfr = Bry_bfr.new_();
// Bry_bfr sql_bfr = Bry_bfr_.New();
// Bry_bfr bld_bfr = Bry_bfr_.New();
// int itms_len = itms.length;
// int counter = 1;
// for (int i = 0; i < itms_len; i++) {

View File

@@ -25,7 +25,7 @@ public class Wmf_latest_parser {
public Wmf_latest_itm[] To_ary() {return (Wmf_latest_itm[])hash.To_ary(Wmf_latest_itm.class);}
public void Parse(byte[] src) {
hash.Clear();
Bry_bfr tmp_bfr = Bry_bfr.reset_(255);
Bry_bfr tmp_bfr = Bry_bfr_.Reset(255);
byte[] name_bgn_bry = Bry_.new_a7("\n<a href=\"");
byte[] date_bgn_bry = Bry_.new_a7("</a>");
byte[] date_end_bry = Bry_.new_a7(" ");

View File

@@ -19,7 +19,7 @@ package gplx.xowa.bldrs.setups.maints; import gplx.*; import gplx.xowa.*; import
import gplx.core.ios.*;
import gplx.xowa.wikis.domains.*;
import gplx.xowa.files.downloads.*;
public class Xoa_maint_mgr implements GfoInvkAble {
public class Xoa_maint_mgr implements Gfo_invk {
public Xoa_maint_mgr(Xoae_app app) {
this.app = app;
wmf_dump_status_url = Wmf_dump_status_url(app);
@@ -76,7 +76,7 @@ public class Xoa_maint_mgr implements GfoInvkAble {
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
if (ctx.Match(k, Invk_wmf_status_update)) Wmf_status_update();
else if (ctx.Match(k, Invk_wikis)) return wiki_mgr;
else return GfoInvkAble_.Rv_unhandled;
else return Gfo_invk_.Rv_unhandled;
return this;
} private static final String Invk_wmf_status_update = "wmf_status_update", Invk_wikis = "wikis";
public static Io_url Wmf_dump_status_url(Xoae_app app) {return app.Fsys_mgr().Bin_xowa_dir().GenSubDir_nest("xtns", "xowa", "maintenance", "backup-index.html");}

View File

@@ -16,7 +16,7 @@ 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.bldrs.setups.maints; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.setups.*;
public class Xoa_maint_wikis_mgr implements GfoInvkAble {
public class Xoa_maint_wikis_mgr implements Gfo_invk {
private final Ordered_hash hash = Ordered_hash_.New_bry();
public Xoa_maint_wikis_mgr(Xoae_app app) {this.app = app;} private Xoae_app app;
public int Len() {return hash.Count();}
@@ -41,7 +41,7 @@ public class Xoa_maint_wikis_mgr implements GfoInvkAble {
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
if (ctx.Match(k, Invk_len)) return this.Len();
else if (ctx.Match(k, Invk_get_at)) return this.Get_at(m.ReadInt("v"));
else return GfoInvkAble_.Rv_unhandled;
else return Gfo_invk_.Rv_unhandled;
// return this;
} private static final String Invk_len = "len", Invk_get_at = "get_at";
}

View File

@@ -16,7 +16,7 @@ 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.bldrs.setups.maints; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.setups.*;
public class Xow_maint_mgr implements GfoInvkAble {
public class Xow_maint_mgr implements Gfo_invk {
public Xow_maint_mgr(Xowe_wiki wiki) {
this.wiki = wiki;
maint_mgr = wiki.Appe().Setup_mgr().Maint_mgr();
@@ -48,10 +48,10 @@ public class Xow_maint_mgr implements GfoInvkAble {
else if (ctx.Match(k, Invk_wiki_dump_date_)) wiki_dump_date = m.ReadDate("v");
else if (ctx.Match(k, Invk_wiki_update_needed)) return Yn.To_str(Wiki_update_needed());
else if (ctx.Match(k, Invk_wiki_dump_date_)) wiki_dump_date = m.ReadDate("v");
else return GfoInvkAble_.Rv_unhandled;
else return Gfo_invk_.Rv_unhandled;
return this;
}
private static final String Invk_wmf_dump_date = "wmf_dump_date", Invk_wmf_dump_date_ = "wmf_dump_date_", Invk_wmf_dump_done = "wmf_dump_done", Invk_wmf_dump_done_ = "wmf_dump_done_"
private static final String Invk_wmf_dump_date = "wmf_dump_date", Invk_wmf_dump_date_ = "wmf_dump_date_", Invk_wmf_dump_done = "wmf_dump_done", Invk_wmf_dump_done_ = "wmf_dump_done_"
, Invk_wmf_dump_status = "wmf_dump_status", Invk_wmf_dump_status_ = "wmf_dump_status_", Invk_wiki_dump_date = "wiki_dump_date", Invk_wiki_dump_date_ = "wiki_dump_date_"
, Invk_wiki_update_needed = "wiki_update_needed"
;

View File

@@ -54,8 +54,8 @@ public class Sql_file_parser {
public void Parse(Gfo_usr_dlg usr_dlg) {
Io_buffer_rdr rdr = Io_buffer_rdr.Null;
try {
rdr = Io_buffer_rdr.new_(gplx.core.ios.Io_stream_rdr_.new_by_url_(src_fil), src_len);
Bry_bfr fil_bfr = Bry_bfr.new_(), val_bfr = Bry_bfr.new_();
rdr = Io_buffer_rdr.new_(gplx.core.ios.streams.Io_stream_rdr_.new_by_url_(src_fil), src_len);
Bry_bfr fil_bfr = Bry_bfr_.New(), val_bfr = Bry_bfr_.New();
byte[] bfr = rdr.Bfr(); int bfr_len = rdr.Bfr_len(), fld_idx = 0, cur_pos = 0;
if (flds_req != null) Identify_flds(bfr);
byte mode = Mode_sql_bgn; byte[] decode_regy = sql_parser.Escape_decode();
@@ -157,6 +157,6 @@ public class Sql_file_parser {
}
val_bfr.Clear();
}
private static final byte[] Bry_insert_into = Bry_.new_a7("INSERT INTO "), Bry_values = Bry_.new_a7(" VALUES (");
private static final String GRP_KEY = "xowa.bldr.sql";
private static final byte[] Bry_insert_into = Bry_.new_a7("INSERT INTO "), Bry_values = Bry_.new_a7(" VALUES (");
private static final String GRP_KEY = "xowa.bldr.sql";
}

View File

@@ -39,5 +39,5 @@ class Sql_file_parser_cmd_max_len implements Sql_file_parser_cmd {
}
file_bfr.Add_mid(src, fld_bgn, fld_end).Add_byte(Byte_ascii.Pipe);
}
List_adp log = List_adp_.new_();
List_adp log = List_adp_.New();
}

View File

@@ -21,7 +21,7 @@ import gplx.langs.phps.*; import gplx.xowa.langs.bldrs.*;
class Xob_subpage_parser {
public Xob_subpage_wiki[] Parse(byte[] src) {
src = Bry_.Add(Bry_.new_a7("$a = array("), src, Bry_.new_a7(");"));
List_adp wikis_list = List_adp_.new_();
List_adp wikis_list = List_adp_.New();
try {
Php_parser php_parser = new Php_parser();
Php_evaluator eval = new Php_evaluator(new Gfo_msg_log("test"));
@@ -85,5 +85,5 @@ class Xob_subpage_ns {
}
class Xob_subpage_wiki {
public byte[] Name() {return name;} public Xob_subpage_wiki Name_(byte[] v) {this.name = v; return this;} private byte[] name;
public List_adp Ns_list() {return ns_list;} private List_adp ns_list = List_adp_.new_();
public List_adp Ns_list() {return ns_list;} private List_adp ns_list = List_adp_.New();
}

View File

@@ -61,7 +61,7 @@ public class Xoi_wiki_props_api {
}
private Xoi_wiki_props_alias[] Parse_alias_ary(XmlNde xnde) {
int xndes_len = xnde.SubNdes().Count();
List_adp list = List_adp_.new_();
List_adp list = List_adp_.New();
for (int i = 0; i < xndes_len; i++) {
XmlNde sub_nde = xnde.SubNdes().Get_at(i);
if (!String_.Eq(sub_nde.Name(), "ns")) continue;
@@ -73,7 +73,7 @@ public class Xoi_wiki_props_api {
}
private Xoi_wiki_props_ns[] Parse_ns_ary(XmlNde xnde) {
int xndes_len = xnde.SubNdes().Count();
List_adp list = List_adp_.new_();
List_adp list = List_adp_.New();
for (int i = 0; i < xndes_len; i++) {
XmlNde sub_nde = xnde.SubNdes().Get_at(i);
if (!String_.Eq(sub_nde.Name(), "ns")) continue;

View File

@@ -63,7 +63,7 @@ public class Xoi_wiki_props_api_tst {
}
class Xoi_wiki_props_fxt {
private Xoi_wiki_props_api api = new Xoi_wiki_props_api();
private Bry_bfr bfr = Bry_bfr.new_();
private Bry_bfr bfr = Bry_bfr_.New();
public Xoi_wiki_props_wiki wiki_() {return wiki_("domain_doesnt_matter");}
public Xoi_wiki_props_wiki wiki_(String wiki_domain) {return new Xoi_wiki_props_wiki().Wiki_domain_(Bry_.new_a7(wiki_domain));}
public Xoi_wiki_props_alias alias_(int id, String alias) {return new Xoi_wiki_props_alias().Init_by_ctor(id, alias);}

Some files were not shown because too many files have changed in this diff Show More