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:
@@ -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;
|
||||
|
||||
@@ -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);}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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);}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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 {}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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();}
|
||||
|
||||
@@ -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();}
|
||||
|
||||
@@ -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"
|
||||
);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);}
|
||||
}
|
||||
|
||||
@@ -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];
|
||||
|
||||
@@ -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() {}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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) {}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
// }
|
||||
|
||||
@@ -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_";
|
||||
}
|
||||
|
||||
@@ -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;}
|
||||
|
||||
@@ -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_";
|
||||
}
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 	 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) {
|
||||
|
||||
@@ -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});");
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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++)
|
||||
|
||||
@@ -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;}
|
||||
|
||||
@@ -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()));
|
||||
|
||||
@@ -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>");
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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_";
|
||||
|
||||
|
||||
@@ -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];
|
||||
|
||||
@@ -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;}
|
||||
}
|
||||
|
||||
@@ -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) {}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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_";
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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_";
|
||||
}
|
||||
|
||||
@@ -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("&"), 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("&"), 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);
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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";
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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)
|
||||
;
|
||||
|
||||
@@ -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"));
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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/");
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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";
|
||||
}
|
||||
|
||||
@@ -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_"
|
||||
|
||||
@@ -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--) {
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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() {
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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";
|
||||
}
|
||||
|
||||
@@ -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";
|
||||
}
|
||||
|
||||
@@ -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++) {
|
||||
|
||||
@@ -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(" ");
|
||||
|
||||
@@ -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");}
|
||||
|
||||
@@ -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";
|
||||
}
|
||||
@@ -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"
|
||||
;
|
||||
|
||||
@@ -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";
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user