mirror of
https://github.com/gnosygnu/xowa.git
synced 2026-03-02 03:49:30 +00:00
Wikibase: Add isValidEntityId
This commit is contained in:
@@ -32,7 +32,7 @@ public class Db_mgr_fxt {
|
||||
public Xowd_page_itm doc_ttl_(int id, String title) {return bldr_fxt.doc_(id, "2012-01-02 03:04", title, "IGNORE");}
|
||||
public Db_mgr_fxt Init_fil(String url, String raw) {return Init_fil(Io_url_.new_fil_(url), raw);}
|
||||
public Db_mgr_fxt Init_fil(Io_url url, String raw) {Io_mgr.Instance.SaveFilStr(url, raw); return this;}
|
||||
public Db_mgr_fxt Exec_run(Xob_page_wkr wkr) {bldr_fxt.Run(wkr); return this;}
|
||||
public Db_mgr_fxt Exec_run(Xob_page_wkr wkr) {bldr_fxt.Run_page_wkrs(wkr); return this;}
|
||||
public Db_mgr_fxt Exec_run(Xob_cmd cmd) {bldr_fxt.Run_cmds(cmd); return this;}
|
||||
public Db_mgr_fxt Exec_run(Xobd_parser_wkr wkr) {bldr_fxt.Run(wkr); return this;}
|
||||
public void Init_page_insert(Int_obj_ref page_id_next, int ns_id, String[] ttls) {
|
||||
|
||||
@@ -49,7 +49,7 @@ public class Xob_cmd_mgr implements Gfo_invk {
|
||||
else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_util_download)) return Add(new Xob_download_cmd(bldr, wiki));
|
||||
else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_util_xml_dump)) return Add(new Xob_xml_dumper_cmd(bldr, wiki));
|
||||
else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_wbase_qid)) return Xml_rdr_direct_add(wiki, new Xob_wdata_qid_sql().Ctor(bldr, wiki));
|
||||
else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_wbase_pid)) return Xml_rdr_direct_add(wiki, new Xob_wdata_pid_sql().Ctor(bldr, wiki));
|
||||
else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_wbase_pid)) return Xml_rdr_direct_add(wiki, new Xob_wdata_pid_sql(wiki.Data__core_mgr().Db__wbase().Conn()).Ctor(bldr, wiki));
|
||||
else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_wbase_db)) return Add(new Xob_wdata_db_cmd(bldr, wiki));
|
||||
else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_site_meta)) return Add(new Xob_site_meta_cmd(bldr, wiki));
|
||||
|
||||
|
||||
@@ -18,6 +18,8 @@ import gplx.core.tests.*; import gplx.core.ios.*; import gplx.core.times.*;
|
||||
import gplx.dbs.*; import gplx.xowa.wikis.tdbs.*; import gplx.xowa.wikis.data.tbls.*; import gplx.xowa.bldrs.cmds.texts.tdbs.*;
|
||||
import gplx.xowa.bldrs.wkrs.*;
|
||||
public class Xob_fxt {
|
||||
private final Tst_mgr tst_mgr = new Tst_mgr();
|
||||
private final DateAdp_parser dateParser = DateAdp_parser.new_();
|
||||
public Xob_fxt Ctor_mem() {
|
||||
Io_mgr.Instance.InitEngine_mem();
|
||||
return Ctor(Io_url_.mem_dir_("mem/xowa/"));
|
||||
@@ -32,14 +34,6 @@ public class Xob_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 Io_url fil_ns_title(int ns_id, int idx) {return wiki.Tdb_fsys_mgr().Url_ns_fil(Xotdb_dir_info_.Tid_ttl, ns_id, idx);}
|
||||
public Io_url fil_ns_page(int ns_id, int idx) {return wiki.Tdb_fsys_mgr().Url_ns_fil(Xotdb_dir_info_.Tid_page, ns_id, idx);}
|
||||
public Io_url fil_ns_sttl(int ns_id, int idx) {return wiki.Tdb_fsys_mgr().Url_ns_fil(Xotdb_dir_info_.Tid_search_ttl, ns_id, idx);}
|
||||
public Io_url fil_site(byte tid, int idx) {return wiki.Tdb_fsys_mgr().Url_site_fil(tid, idx);}
|
||||
public Io_url fil_site_ctg(int idx) {return wiki.Tdb_fsys_mgr().Url_site_fil(Xotdb_dir_info_.Tid_category, idx);}
|
||||
public Io_url fil_site_id(int idx) {return wiki.Tdb_fsys_mgr().Url_site_fil(Xotdb_dir_info_.Tid_id, idx);}
|
||||
public Io_url fil_reg(byte tid) {return wiki.Tdb_fsys_mgr().Url_site_reg(tid);}
|
||||
public Io_url fil_reg(int ns_id, byte tid) {return wiki.Tdb_fsys_mgr().Url_ns_reg(Int_.To_str_pad_bgn_zero(ns_id, 3), tid);}
|
||||
public Xob_fxt Fil_expd(Io_url url, String... expd) {
|
||||
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));
|
||||
@@ -61,7 +55,7 @@ public class Xob_fxt {
|
||||
}
|
||||
public Xob_fxt Run_id() {
|
||||
Xob_make_id_wkr wkr = new Xob_make_id_wkr(bldr, wiki);
|
||||
Run(wkr);
|
||||
Run_page_wkrs(wkr);
|
||||
return this;
|
||||
}
|
||||
private void Run_wkr(Xob_page_wkr wkr) {
|
||||
@@ -98,10 +92,10 @@ public class Xob_fxt {
|
||||
int len = wkrs.length;
|
||||
for (int i = 0; i < len; i++)
|
||||
parser_wkr.Wkr_add(wkrs[i]);
|
||||
Run(parser_wkr);
|
||||
Run_page_wkrs(parser_wkr);
|
||||
return this;
|
||||
}
|
||||
public Xob_fxt Run(Xob_page_wkr... wkrs) {
|
||||
public Xob_fxt Run_page_wkrs(Xob_page_wkr... wkrs) {
|
||||
int doc_ary_len = doc_ary.length;
|
||||
for (int j = 0; j < wkrs.length; j++) {
|
||||
Xob_page_wkr wkr = wkrs[j];
|
||||
@@ -147,6 +141,14 @@ public class Xob_fxt {
|
||||
list.Add(fil);
|
||||
}
|
||||
}
|
||||
Tst_mgr tst_mgr = new Tst_mgr();
|
||||
DateAdp_parser dateParser = DateAdp_parser.new_();
|
||||
|
||||
public void Run_page_wkr(Xob_page_wkr wkr, Xowd_page_itm... pages) {
|
||||
int len = pages.length;
|
||||
wkr.Page_wkr__bgn();
|
||||
for (int i = 0; i < len; i++) {
|
||||
Xowd_page_itm page = pages[i];
|
||||
wkr.Page_wkr__run(page);
|
||||
}
|
||||
wkr.Page_wkr__end();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -118,7 +118,7 @@ public abstract class Xob_dump_mgr_base extends Xob_itm_basic_base implements Xo
|
||||
Xow_ns ns = wiki.Ns_mgr().Ids_get_or_null(ns_id);
|
||||
int pg_id = pg_bgn;
|
||||
while (true) {
|
||||
page_src.Get_pages(pages, db_id, ns_id, pg_id);
|
||||
page_src.Get_pages(wiki.Appe(), pages, db_id, ns_id, pg_id);
|
||||
int pages_len = pages.Count();
|
||||
if (pages_len == 0) { // no more pages in db;
|
||||
if (pg_id > pg_bgn) // reset pg_bgn to 0 only if pg_bgn seen;
|
||||
@@ -235,7 +235,7 @@ class Xob_dump_mgr_base_ {
|
||||
int load_count = 0;
|
||||
usr_dlg.Note_many("", "", "tmpl_load init");
|
||||
while (true) {
|
||||
page_src.Get_pages(pages, 0, Xow_ns_.Tid__template, cur_page_id); // 0 is always template db
|
||||
page_src.Get_pages(wiki.Appe(), pages, 0, Xow_ns_.Tid__template, cur_page_id); // 0 is always template db
|
||||
int page_count = pages.Count();
|
||||
if (page_count == 0) break; // no more pages in db;
|
||||
Xowd_page_itm page = null;
|
||||
|
||||
@@ -26,14 +26,14 @@ class Xob_dump_src_id {
|
||||
this.page_db_url = db_mgr.Core_data_mgr().Db__core().Url().Raw();
|
||||
return this;
|
||||
}
|
||||
public void Get_pages(List_adp list, int text_db_idx, int cur_ns, int prv_id) {
|
||||
public void Get_pages(Xoae_app app, List_adp list, int text_db_idx, int cur_ns, int prv_id) {
|
||||
DataRdr rdr = DataRdr_.Null;
|
||||
int size_len = 0;
|
||||
list.Clear();
|
||||
try {
|
||||
rdr = New_rdr(db_mgr, page_db_url, text_db_idx, cur_ns, prv_id, redirect);
|
||||
while (rdr.MoveNextPeer()) {
|
||||
Xowd_page_itm page = New_page(db_mgr, cur_ns, rdr);
|
||||
Xowd_page_itm page = New_page(app, db_mgr, cur_ns, rdr);
|
||||
list.Add(page);
|
||||
size_len += page.Text_len();
|
||||
if (size_len > size_max)
|
||||
@@ -52,7 +52,7 @@ class Xob_dump_src_id {
|
||||
}
|
||||
return text_stmt.Clear().Val_int(prv_id).Val_int(cur_ns).Exec_select();
|
||||
}
|
||||
private static Xowd_page_itm New_page(Xodb_mgr_sql db_mgr, int ns_id, DataRdr rdr) {
|
||||
private static Xowd_page_itm New_page(Xoae_app app, Xodb_mgr_sql db_mgr, int ns_id, DataRdr rdr) {
|
||||
Xowd_page_tbl page_core_tbl = db_mgr.Core_data_mgr().Tbl__page();
|
||||
Xowd_page_itm rv = new Xowd_page_itm();
|
||||
rv.Id_(rdr.ReadInt(page_core_tbl.Fld_page_id()));
|
||||
@@ -61,7 +61,7 @@ class Xob_dump_src_id {
|
||||
|
||||
String text_data_name = db_mgr.Core_data_mgr().Db__core().Tbl__text().Fld_text_data();
|
||||
byte[] text_data = rdr.ReadBry(text_data_name);
|
||||
text_data = db_mgr.Wiki().Appe().Zip_mgr().Unzip(db_mgr.Core_data_mgr().Props().Zip_tid_text(), text_data);
|
||||
text_data = app.Zip_mgr().Unzip(db_mgr.Core_data_mgr().Props().Zip_tid_text(), text_data);
|
||||
rv.Text_(text_data);
|
||||
return rv;
|
||||
}
|
||||
|
||||
@@ -61,7 +61,7 @@ public class Xob_site_meta_cmd implements Xob_cmd {
|
||||
break;
|
||||
}
|
||||
if (json_text == null) {// if wmf_api never returns, exit else CONSTRAINT error upon INSERT; EX:als.wiktionary.org; DATE:2018-04-17
|
||||
app.Usr_dlg().Note_many("", "", "wm.api: failed; wiki=~{0} api=~{1}", domain_str);
|
||||
app.Usr_dlg().Note_many("", "", "wm.api: failed; wiki=~{0}", domain_str);
|
||||
continue;
|
||||
}
|
||||
byte[] domain_bry = Bry_.new_u8(domain_str);
|
||||
|
||||
@@ -26,6 +26,7 @@ public abstract class Xob_itm_basic_base implements Gfo_invk {
|
||||
}
|
||||
@gplx.Virtual public Xob_cmd Cmd_clone(Xob_bldr bldr, Xowe_wiki wiki) {return null;}
|
||||
@gplx.Virtual protected void Cmd_ctor_end(Xob_bldr bldr, Xowe_wiki wiki) {}
|
||||
|
||||
@gplx.Virtual public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
if (ctx.Match(k, Invk_owner)) return bldr.Cmd_mgr();
|
||||
else return Gfo_invk_.Rv_unhandled;
|
||||
|
||||
Reference in New Issue
Block a user