B"
@@ -45,34 +46,40 @@ public class Xows_html_wkr_tst {
));
}
}
-class Xows_html_wkr_fxt {
- private Xoae_app app; private Xowe_wiki wiki; private Xows_html_wkr html_mgr; private final Bry_bfr tmp_bfr = Bry_bfr.new_(255);
- public Xows_html_wkr_fxt Clear() {
+class Srch_html_page_bldr_fxt {
+ private Xoae_app app; private Xowe_wiki wiki; private Srch_html_page_bldr html_mgr; private final Bry_bfr tmp_bfr = Bry_bfr.new_(255);
+ private int page_id;
+ public Srch_html_page_bldr_fxt Clear() {
if (app == null) {
- app = Xoa_app_fxt.app_();
- wiki = Xoa_app_fxt.wiki_tst_(app);
- html_mgr = new Xows_html_wkr();
+ app = Xoa_app_fxt.Make__app__edit();
+ wiki = Xoa_app_fxt.Make__wiki__edit(app);
+ html_mgr = new Srch_html_page_bldr();
}
+ page_id = 0;
return this;
}
- public void Test_paging(boolean fwd, int paging_idx, String expd) {
- Srch_qry qry = new Srch_qry(Bry_.new_a7("A"), paging_idx, 100, new Xows_ns_mgr(), true, new Xow_domain_itm[] {Xow_domain_itm_.parse(wiki.Domain_bry())});
- qry.page_max = 2;
+ public void Test_paging(boolean fwd, int slab_idx, String expd) {
+ byte[] search_orig = Bry_.new_a7("A");
+ Srch_search_qry qry = Srch_search_qry.New__search_page(Xow_domain_itm_.Ary_empty, wiki, app.Gui_mgr().Search_cfg(), Bool_.N, search_orig, slab_idx, 100);
html_mgr.Init_by_wiki(wiki, wiki.Lang().Num_mgr(), qry);
- byte[] paging_link = html_mgr.Paging_link(fwd);
+ byte[] paging_link = html_mgr.Bld_paging_link(fwd);
Tfds.Eq(expd, String_.new_a7(paging_link));
}
- public void Test_rows(Srch_rslt_itm[] rows, String expd) {
- Srch_rslt_list rslt = new Srch_rslt_list();
- Xows_html_row html_row = new Xows_html_row(wiki.App().Html__lnki_bldr());
- html_row.Init(rslt);
+ public void Test_rows(Srch_rslt_row[] rows, String expd) {
+ Srch_rslt_list rslts = new Srch_rslt_list();
+ Srch_html_row_bldr row_bldr = new Srch_html_row_bldr(wiki.App().Html__lnki_bldr());
+ row_bldr.Init(rslts, 0, rows.length);
for (int i = 0; i < rows.length; ++i)
- rslt.Add(rows[i]);
- html_row.Bfr_arg__add(tmp_bfr);
+ rslts.Add(rows[i]);
+ row_bldr.Bfr_arg__add(tmp_bfr);
Tfds.Eq_str_lines(expd, tmp_bfr.To_str_and_clear());
}
- public Srch_rslt_itm Make_row(int len, String ttl_str) {
+ public Srch_rslt_row Make_row(int len, String ttl_str) {
+ byte[] wiki_bry = Bry_.new_a7("w");
byte[] ttl_bry = Bry_.new_u8(ttl_str);
- return new Srch_rslt_itm(Bry_.new_a7("w"), wiki.Ttl_parse(ttl_bry), 1, len);
+ ++page_id;
+ Srch_rslt_row rv = new Srch_rslt_row(Srch_rslt_row.Bld_key(wiki_bry, page_id), wiki_bry, wiki.Ttl_parse(ttl_bry), gplx.xowa.wikis.nss.Xow_ns_.Tid__main, ttl_bry, page_id, len, len, Srch_rslt_row.Page_redirect_id_null);
+ rv.Page_ttl_highlight = rv.Page_ttl.Full_txt_w_ttl_case();
+ return rv;
}
}
diff --git a/400_xowa/src/gplx/xowa/addons/searchs/specials/htmls/Srch_html_row_bldr.java b/400_xowa/src/gplx/xowa/addons/searchs/specials/htmls/Srch_html_row_bldr.java
new file mode 100644
index 000000000..5996331fb
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/addons/searchs/specials/htmls/Srch_html_row_bldr.java
@@ -0,0 +1,52 @@
+/*
+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 .
+*/
+package gplx.xowa.addons.searchs.specials.htmls; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.searchs.*; import gplx.xowa.addons.searchs.specials.*;
+import gplx.xowa.htmls.core.htmls.utls.*; import gplx.langs.htmls.*;
+import gplx.xowa.addons.searchs.searchers.rslts.*;
+public class Srch_html_row_bldr implements gplx.core.brys.Bfr_arg {
+ private final Xoh_lnki_bldr lnki_bldr;
+ private Srch_rslt_list rslt_list; private int slab_bgn, slab_end;
+ private final Object thread_lock = new Object();
+ public Srch_html_row_bldr(Xoh_lnki_bldr lnki_bldr) {this.lnki_bldr = lnki_bldr;}
+ public Srch_html_row_bldr Init(Srch_rslt_list rslt_list, int slab_bgn, int slab_end) {this.rslt_list = rslt_list; this.slab_bgn = slab_bgn; this.slab_end = slab_end; return this;}
+ public void Bfr_arg__add(Bry_bfr bfr) { // A
+ int rslts_len = rslt_list.Len();
+ for (int i = slab_bgn; i < slab_end; ++i) {
+ if (i >= rslts_len) return;
+ Srch_rslt_row row = rslt_list.Get_at(i);
+ Bld_html(bfr, row);
+ }
+ }
+ public void Bld_html(Bry_bfr bfr, Srch_rslt_row row) {
+ synchronized (thread_lock) {
+ lnki_bldr.Href_(row.Wiki_bry, row.Page_ttl);
+ lnki_bldr.Title_(row.Page_ttl.Full_txt_w_ttl_case());
+ lnki_bldr.Caption_direct_(row.Page_ttl_display(Bool_.Y));
+ fmtr.Bld_many(bfr, Gfh_utl.Encode_id_as_str(row.Key), row.Page_score, lnki_bldr.Bld_to_bry());
+ }
+ }
+ public Bry_fmt Fmtr() {return fmtr;} private final Bry_fmt fmtr = Bry_fmt.Auto(String_.Concat_lines_nl_skip_last
+ ( ""
+ , "
"
+ , "
~{page_len}"
+ , "
"
+ , "
~{lnki}" // SERVER:" 1)"
+ ), tbl_name, score_max_as_str, count_as_str));
+ conn.Exec_sql(Bry_fmt.Make_str(String_.Concat_lines_nl_skip_last
+ ( "UPDATE ~{tbl}"
+ , "SET row_score = (SELECT row_score FROM ~{tbl}_avg t2 WHERE t2.row_val = ~{tbl}.row_val)"
+ , "WHERE row_val IN (SELECT row_val FROM ~{tbl}_avg t2)"
+ ), tbl_name));
+ conn.Meta_idx_create(Xoa_app_.Usr_dlg(), Dbmeta_idx_itm.new_normal_by_tbl(tbl_name, "row_score", "row_key", "row_score"));
+ }
+ @Override public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
+ if (ctx.Match(k, Invk__db_rel_url_)) db_rel_url = m.ReadStr("v");
+ else if (ctx.Match(k, Invk__select_sql_)) select_sql = m.ReadStr("v");
+ else if (ctx.Match(k, Invk__tbl_name_)) tbl_name = m.ReadStr("v");
+ else if (ctx.Match(k, Invk__score_max_)) score_max = m.ReadInt("v");
+ else return GfoInvkAble_.Rv_unhandled;
+ return this;
+ }
+ private static final String Invk__db_rel_url_ = "db_rel_url_", Invk__select_sql_ = "select_sql_", Invk__tbl_name_ = "tbl_name_", Invk__score_max_ = "score_max_";
+}
diff --git a/400_xowa/src/gplx/xowa/addons/sqlite_utils/bldrs/Statistic_calculator.java b/400_xowa/src/gplx/xowa/addons/sqlite_utils/bldrs/Statistic_calculator.java
new file mode 100644
index 000000000..ca5e36d52
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/addons/sqlite_utils/bldrs/Statistic_calculator.java
@@ -0,0 +1,41 @@
+/*
+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 .
+*/
+package gplx.xowa.addons.sqlite_utils.bldrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.sqlite_utils.*;
+class Statistic_calculator {
+ private int count;
+ private double old_avg, cur_avg, old_sum, cur_sum;
+ public int Count() {return count;}
+ public double Avg() {return (count > 0) ? cur_avg : 0;}
+ public double Variance() {return (count > 1) ? cur_sum / (count - 1) : 0;}
+ public double Stddev() {return Math_.Sqrt(Variance());}
+ public void Clear() {count = 0;}
+ public void Push(double x) {
+ count++;
+ if (count == 1) {
+ old_avg = cur_avg = x;
+ old_sum = 0.0;
+ }
+ else {
+ cur_avg = old_avg + ((x - old_avg) / count);
+ cur_sum = old_sum + ((x - old_avg) * (x - cur_avg));
+
+ old_avg = cur_avg;
+ old_sum = cur_sum;
+ }
+ }
+}
diff --git a/400_xowa/src/gplx/xowa/addons/sqlite_utils/bldrs/Str_ary_.java b/400_xowa/src/gplx/xowa/addons/sqlite_utils/bldrs/Str_ary_.java
new file mode 100644
index 000000000..dc080a0f3
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/addons/sqlite_utils/bldrs/Str_ary_.java
@@ -0,0 +1,35 @@
+/*
+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 .
+*/
+package gplx.xowa.addons.sqlite_utils.bldrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.sqlite_utils.*;
+class Str_ary_ {
+ public static String[][] To_str_ary_ary(String v, String val_dlm, String row_dlm) {// "a|b|c`"
+ String[] rows_ary = String_.Split(v, row_dlm);
+ int rv_len = rows_ary.length;
+ String[][] rv = new String[rv_len][];
+ for (int i = 0; i < rv_len; ++i) {
+ String row = rows_ary[i];
+ String[] vals_ary = String_.Split(row, val_dlm);
+ int vals_len = vals_ary.length;
+ String[] rv_row = new String[vals_len];
+ rv[i] = rv_row;
+ for (int j = 0; j < vals_len; ++j)
+ rv[i][j] = vals_ary[j];
+ }
+ return rv;
+ }
+}
diff --git a/400_xowa/src/gplx/xowa/apps/Xoa_app_eval_tst.java b/400_xowa/src/gplx/xowa/apps/Xoa_app_eval_tst.java
index c4d5ee301..a667128bb 100644
--- a/400_xowa/src/gplx/xowa/apps/Xoa_app_eval_tst.java
+++ b/400_xowa/src/gplx/xowa/apps/Xoa_app_eval_tst.java
@@ -29,7 +29,7 @@ public class Xoa_app_eval_tst {
class Xoa_app_eval_fxt {
public void Clear() {
if (app == null) {
- app = Xoa_app_fxt.app_();
+ app = Xoa_app_fxt.Make__app__edit();
fmtr = Bry_fmtr.new_();
eval = new Xoa_app_eval();
fmtr.Eval_mgr_(eval);
diff --git a/400_xowa/src/gplx/xowa/apps/Xoa_sys_cfg.java b/400_xowa/src/gplx/xowa/apps/Xoa_sys_cfg.java
index 62fad5b9f..48cc17eb9 100644
--- a/400_xowa/src/gplx/xowa/apps/Xoa_sys_cfg.java
+++ b/400_xowa/src/gplx/xowa/apps/Xoa_sys_cfg.java
@@ -31,7 +31,7 @@ public class Xoa_sys_cfg implements GfoInvkAble {
return this;
} private byte[] lang_key = Xol_lang_itm_.Key_en;
public int Options_version() {return options_version;} public Xoa_sys_cfg Options_version_(int v) {options_version = v; return this;} private int options_version = 1;
- public KeyVal[] Options_lang_list() {if (options_lang_list == null) options_lang_list = Options_list_lang_.new_(); return options_lang_list;} private KeyVal[] options_lang_list;
+ public Keyval[] Options_lang_list() {if (options_lang_list == null) options_lang_list = Options_list_lang_.new_(); return options_lang_list;} private Keyval[] options_lang_list;
public long Free_mem_when() {return free_mem_when;} long free_mem_when;
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
if (ctx.Match(k, Invk_version)) return Xoa_app_.Version;
@@ -49,7 +49,7 @@ public class Xoa_sys_cfg implements GfoInvkAble {
, Invk_lang = "lang", Invk_lang_ = "lang_", Invk_lang_list = "lang_list";
}
class Options_list_lang_ {
- public static KeyVal[] new_() {
+ public static Keyval[] new_() {
Ordered_hash translated = Ordered_hash_.New_bry();
List_adp untranslated = List_adp_.new_();
Add_itm_many(translated, Xol_lang_stub_.Id_en, Xol_lang_stub_.Id_de, Xol_lang_stub_.Id_pl, Xol_lang_stub_.Id_zh_hans, Xol_lang_stub_.Id_zh_hant); // add langs with translations first, so they alphabetize to top of list
@@ -61,7 +61,7 @@ class Options_list_lang_ {
}
untranslated.Sort_by(Xol_lang_stub_.Comparer_key);
- KeyVal[] rv = new KeyVal[len];
+ Keyval[] rv = new Keyval[len];
int translated_max = translated.Count();
for (int i = 0; i < translated_max; i++)
rv[i] = new_itm((Xol_lang_stub)translated.Get_at(i));
@@ -70,10 +70,10 @@ class Options_list_lang_ {
rv[i] = new_itm((Xol_lang_stub)untranslated.Get_at(i - translated_max));
return rv;
}
- private static KeyVal new_itm(Xol_lang_stub itm) {
+ private static Keyval new_itm(Xol_lang_stub itm) {
String key_str = String_.new_u8(itm.Key());
String name_str = String_.new_u8(itm.Canonical_name());
- return KeyVal_.new_(key_str, name_str + " [" + key_str + "]");
+ return Keyval_.new_(key_str, name_str + " [" + key_str + "]");
}
private static void Add_itm_many(Ordered_hash translated, int... langs) {
int langs_len = langs.length;
diff --git a/400_xowa/src/gplx/xowa/apps/Xoav_app.java b/400_xowa/src/gplx/xowa/apps/Xoav_app.java
index 4b56e4afa..c171ccbd5 100644
--- a/400_xowa/src/gplx/xowa/apps/Xoav_app.java
+++ b/400_xowa/src/gplx/xowa/apps/Xoav_app.java
@@ -74,7 +74,6 @@ public class Xoav_app implements Xoa_app, GfoInvkAble {
public Bry_bfr_mkr Utl__bfr_mkr() {return Xoa_app_.Utl__bfr_mkr();}
public Json_parser Utl__json_parser() {return utl__json_parser;} private final Json_parser utl__json_parser = new Json_parser();
public boolean Bldr__running() {return bldr__running;} public void Bldr__running_(boolean v) {this.bldr__running = v;} private boolean bldr__running;
-
public Xop_amp_mgr Utl_amp_mgr() {return utl_amp_mgr;} private Xop_amp_mgr utl_amp_mgr = Xop_amp_mgr.Instance;
public Xol_case_mgr Utl_case_mgr() {return utl_case_mgr;} private Xol_case_mgr utl_case_mgr = Xol_case_mgr_.U8();
// public Gfo_url_encoder Utl_encoder_fsys() {return utl_encoder_fsys;} private Gfo_url_encoder utl_encoder_fsys = Gfo_url_encoder.New_fsys_lnx();
diff --git a/400_xowa/src/gplx/xowa/apps/apis/Xoapi_doc.java b/400_xowa/src/gplx/xowa/apps/apis/Xoapi_doc.java
index 649287722..42afd71d9 100644
--- a/400_xowa/src/gplx/xowa/apps/apis/Xoapi_doc.java
+++ b/400_xowa/src/gplx/xowa/apps/apis/Xoapi_doc.java
@@ -50,10 +50,10 @@ xowa {
gui {
browser {
url {
- focus();
- exec_by_paste();
- exec_new_tab_by_paste();
- restore();
+ focus();
+ exec_by_paste();
+ exec_new_tab_by_paste();
+ restore();
exec();
}
search {
@@ -61,45 +61,45 @@ xowa {
exec();
}
tabs {
- new_dflt__at_dflt__focus_y();
- new_link__at_dflt__focus_n();
- new_link__at_dflt__focus_y();
- new_href__at_dflt__focus_y();
- new_dupe__at_dflt__focus_y();
- close_cur();
- select_bwd();
- select_fwd();
- move_bwd();
- move_fwd();
- close_others();
- close_to_bgn();
- close_to_end();
- close_undo();
- pin_toggle();
- select_by_idx_1();
- select_by_idx_2();
- select_by_idx_3();
- select_by_idx_4();
- select_by_idx_5();
- select_by_idx_6();
- select_by_idx_7();
- select_by_idx_8();
+ new_dflt__at_dflt__focus_y();
+ new_link__at_dflt__focus_n();
+ new_link__at_dflt__focus_y();
+ new_href__at_dflt__focus_y();
+ new_dupe__at_dflt__focus_y();
+ close_cur();
+ select_bwd();
+ select_fwd();
+ move_bwd();
+ move_fwd();
+ close_others();
+ close_to_bgn();
+ close_to_end();
+ close_undo();
+ pin_toggle();
+ select_by_idx_1();
+ select_by_idx_2();
+ select_by_idx_3();
+ select_by_idx_4();
+ select_by_idx_5();
+ select_by_idx_6();
+ select_by_idx_7();
+ select_by_idx_8();
select_by_idx_9();
}
html {
- focus();
- selection_focus_toggle();
+ focus();
+ selection_focus_toggle();
load_tid; // [mem,url]
}
find {
- show();
- show_by_paste();
- hide();
- exec();
- type();
- find_bwd();
- find_fwd();
- case_toggle();
+ show();
+ show_by_paste();
+ hide();
+ exec();
+ type();
+ find_bwd();
+ find_fwd();
+ case_toggle();
wrap_toggle();
}
prog {
@@ -107,11 +107,11 @@ xowa {
show_short_link;
}
info {
- focus();
- clear();
- launch();
- warn_enabled;
- note_enabled;
+ focus();
+ clear();
+ launch();
+ warn_enabled;
+ note_enabled;
}
prog_log {
show();
@@ -124,30 +124,30 @@ xowa {
}
page {
edit {
- copy();
- select_all();
- save();
- save_draft();
- preview();
- focus_edit_box();
- dbg_tmpl();
- dbg_html();
- exec();
- }
- selection {
- copy();
- select_all();
- save_file_as();
- }
- view {
- mode_read();
- mode_edit();
- mode_html();
- reload();
- refresh();
- print();
- save_as();
- }
+ copy();
+ select_all();
+ save();
+ save_draft();
+ preview();
+ focus_edit_box();
+ dbg_tmpl();
+ dbg_html();
+ exec();
+ }
+ selection {
+ copy();
+ select_all();
+ save_file_as();
+ }
+ view {
+ mode_read();
+ mode_edit();
+ mode_html();
+ reload();
+ refresh();
+ print();
+ save_as();
+ }
}
}
html {
diff --git a/400_xowa/src/gplx/xowa/apps/apis/Xoapi_root.java b/400_xowa/src/gplx/xowa/apps/apis/Xoapi_root.java
index 9f259641c..b7f4763e4 100644
--- a/400_xowa/src/gplx/xowa/apps/apis/Xoapi_root.java
+++ b/400_xowa/src/gplx/xowa/apps/apis/Xoapi_root.java
@@ -40,16 +40,17 @@ public class Xoapi_root implements GfoInvkAble {
html_api.Page().Toggle_mgr().Img_dir_(img_dir);
usr_api.Init_by_app(app);
}
- public Xoapi_app App() {return app_api;} private final Xoapi_app app_api = new Xoapi_app();
- public Xoapi_nav Nav() {return nav_api;} private final Xoapi_nav nav_api = new Xoapi_nav();
- public Xoapi_gui Gui() {return gui_api;} private final Xoapi_gui gui_api = new Xoapi_gui();
- public Xoapi_html Html() {return html_api;} private final Xoapi_html html_api = new Xoapi_html();
- public Xoapi_bldr Bldr() {return bldr_api;} private final Xoapi_bldr bldr_api = new Xoapi_bldr();
- public Xoapi_net Net() {return net_api;} private final Xoapi_net net_api = new Xoapi_net();
- public Xoapi_usr Usr() {return usr_api;} private final Xoapi_usr usr_api = new Xoapi_usr();
- public Xoapi_special Special() {return special_api;} private final Xoapi_special special_api = new Xoapi_special();
- public Xoapi_xtns Xtns() {return xtns_api;} private final Xoapi_xtns xtns_api = new Xoapi_xtns();
- public Xoapi_app_wikis Wikis() {return app_wikis;} private final Xoapi_app_wikis app_wikis = new Xoapi_app_wikis();
+ public Xoapi_addon Addon() {return addon_api;} private final Xoapi_addon addon_api = new Xoapi_addon();
+ public Xoapi_app App() {return app_api;} private final Xoapi_app app_api = new Xoapi_app();
+ public Xoapi_nav Nav() {return nav_api;} private final Xoapi_nav nav_api = new Xoapi_nav();
+ public Xoapi_gui Gui() {return gui_api;} private final Xoapi_gui gui_api = new Xoapi_gui();
+ public Xoapi_html Html() {return html_api;} private final Xoapi_html html_api = new Xoapi_html();
+ public Xoapi_bldr Bldr() {return bldr_api;} private final Xoapi_bldr bldr_api = new Xoapi_bldr();
+ public Xoapi_net Net() {return net_api;} private final Xoapi_net net_api = new Xoapi_net();
+ public Xoapi_usr Usr() {return usr_api;} private final Xoapi_usr usr_api = new Xoapi_usr();
+ public Xoapi_special Special() {return special_api;} private final Xoapi_special special_api = new Xoapi_special();
+ public Xoapi_xtns Xtns() {return xtns_api;} private final Xoapi_xtns xtns_api = new Xoapi_xtns();
+ public Xoapi_app_wikis Wikis() {return app_wikis;} private final Xoapi_app_wikis app_wikis = new Xoapi_app_wikis();
public String Test_str() {return test_str;} public void Test_str_(String v) {test_str = v;} private String test_str; // TEST
private void Exec(String key) {
Xog_cmd_itm cmd_itm = app.Gui_mgr().Cmd_mgr().Get_or_null(key);
@@ -58,6 +59,7 @@ public class Xoapi_root implements GfoInvkAble {
}
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
if (ctx.Match(k, Invk_app)) return app_api;
+ else if (ctx.Match(k, Invk_addon)) return addon_api;
else if (ctx.Match(k, Invk_bldr)) return bldr_api;
else if (ctx.Match(k, Invk_nav)) return nav_api;
else if (ctx.Match(k, Invk_gui)) return gui_api;
@@ -74,7 +76,8 @@ public class Xoapi_root implements GfoInvkAble {
}
private static final String
Invk_exec = "exec"
- , Invk_app = "app", Invk_bldr = "bldr", Invk_nav = "nav", Invk_gui = "gui", Invk_html = "html", Invk_net = "net", Invk_usr = "usr", Invk_special = "special", Invk_xtns = "xtns"
+ , Invk_app = "app", Invk_addon = "addon"
+ , Invk_bldr = "bldr", Invk_nav = "nav", Invk_gui = "gui", Invk_html = "html", Invk_net = "net", Invk_usr = "usr", Invk_special = "special", Invk_xtns = "xtns"
, Invk_test_str = "test_str", Invk_test_str_ = "test_str_"
, Invk_wikis = "wikis"
;
diff --git a/400_xowa/src/gplx/xowa/apps/apis/xowa/Xoapi_addon.java b/400_xowa/src/gplx/xowa/apps/apis/xowa/Xoapi_addon.java
new file mode 100644
index 000000000..befc0c863
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/apps/apis/xowa/Xoapi_addon.java
@@ -0,0 +1,28 @@
+/*
+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 .
+*/
+package gplx.xowa.apps.apis.xowa; import gplx.*; import gplx.xowa.*; import gplx.xowa.apps.*; import gplx.xowa.apps.apis.*;
+import gplx.xowa.apps.apis.xowa.addons.*;
+public class Xoapi_addon implements GfoInvkAble {
+ public void Ctor_by_app(Xoa_app app) {}
+ public Xoapi_search_addon Search() {return search;} private final Xoapi_search_addon search = new Xoapi_search_addon();
+ public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
+ if (ctx.Match(k, Invk__search)) return search;
+ else return GfoInvkAble_.Rv_unhandled;
+ }
+ private static final String Invk__search = "search";
+}
diff --git a/400_xowa/src/gplx/xowa/apps/apis/xowa/addons/Xoapi_search_addon.java b/400_xowa/src/gplx/xowa/apps/apis/xowa/addons/Xoapi_search_addon.java
new file mode 100644
index 000000000..4d1d79fd9
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/apps/apis/xowa/addons/Xoapi_search_addon.java
@@ -0,0 +1,39 @@
+/*
+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 .
+*/
+package gplx.xowa.apps.apis.xowa.addons; import gplx.*; import gplx.xowa.*; import gplx.xowa.apps.*; import gplx.xowa.apps.apis.*; import gplx.xowa.apps.apis.xowa.*;
+import gplx.xowa.wikis.domains.*; import gplx.xowa.wikis.domains.crts.*;
+import gplx.xowa.apps.apis.xowa.addons.searchs.*;
+public class Xoapi_search_addon implements GfoInvkAble {
+ public Xoapi_search_addon() {}
+ public Xoapi_url_bar Url_bar() {return url_bar;} private final Xoapi_url_bar url_bar = new Xoapi_url_bar();
+ @gplx.Internal protected Xoapi_search_box Search_box() {return search_box;} private final Xoapi_search_box search_box = new Xoapi_search_box();
+ public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
+ if (ctx.Match(k, Invk__url_bar)) return url_bar;
+ else if (ctx.Match(k, Invk__search_box)) return search_box;
+ else return GfoInvkAble_.Rv_unhandled;
+ }
+ private static final String
+ Invk__url_bar = "url_bar"
+ , Invk__search_box = "search_box"
+ ;
+}
+class Xoapi_search_box implements GfoInvkAble {
+ public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
+ return null;
+ }
+}
diff --git a/400_xowa/src/gplx/xowa/apps/apis/xowa/addons/searchs/Xoapi_search_mode_.java b/400_xowa/src/gplx/xowa/apps/apis/xowa/addons/searchs/Xoapi_search_mode_.java
new file mode 100644
index 000000000..e9c7e4794
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/apps/apis/xowa/addons/searchs/Xoapi_search_mode_.java
@@ -0,0 +1,34 @@
+/*
+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 .
+*/
+package gplx.xowa.apps.apis.xowa.addons.searchs; import gplx.*; import gplx.xowa.*; import gplx.xowa.apps.*; import gplx.xowa.apps.apis.*; import gplx.xowa.apps.apis.xowa.*; import gplx.xowa.apps.apis.xowa.addons.*;
+public class Xoapi_search_mode_ {
+ public static final int Tid__title_full = 0, Tid__title_word = 1;
+ public static final String Str__title_full = "title.full", Str__title_word = "title.word";
+ public static String To_str(int v) {
+ switch (v) {
+ case Tid__title_full: return Str__title_full;
+ case Tid__title_word: return Str__title_word;
+ default: throw Err_.new_unhandled_default(v);
+ }
+ }
+ public static int To_int(String v) {
+ if (String_.Eq(v, Str__title_full)) return Tid__title_full;
+ else if (String_.Eq(v, Str__title_word)) return Tid__title_word;
+ else throw Err_.new_unhandled_default(v);
+ }
+}
diff --git a/400_xowa/src/gplx/xowa/apps/apis/xowa/addons/searchs/Xoapi_url_bar.java b/400_xowa/src/gplx/xowa/apps/apis/xowa/addons/searchs/Xoapi_url_bar.java
new file mode 100644
index 000000000..72c211426
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/apps/apis/xowa/addons/searchs/Xoapi_url_bar.java
@@ -0,0 +1,78 @@
+/*
+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 .
+*/
+package gplx.xowa.apps.apis.xowa.addons.searchs; import gplx.*; import gplx.xowa.*; import gplx.xowa.apps.*; import gplx.xowa.apps.apis.*; import gplx.xowa.apps.apis.xowa.*; import gplx.xowa.apps.apis.xowa.addons.*;
+import gplx.xowa.addons.searchs.searchers.*; import gplx.xowa.addons.searchs.searchers.crts.*;
+public class Xoapi_url_bar implements GfoInvkAble, GfoEvMgrOwner {
+ public Xoapi_url_bar() {
+ this.evMgr = GfoEvMgr.new_(this);
+ }
+ public GfoEvMgr EvMgr() {return evMgr;} private final GfoEvMgr evMgr;
+ public boolean Enabled() {return enabled;} private boolean enabled = true;
+ public int Search_mode() {return search_mode;} private int search_mode = Xoapi_search_mode_.Tid__title_word;
+ public int Max_results() {return max_results;} private int max_results = 10;
+ public boolean Auto_wildcard() {return auto_wildcard;} private boolean auto_wildcard = true;
+ public Srch_ns_mgr Ns_mgr() {return ns_mgr;} private final Srch_ns_mgr ns_mgr = new Srch_ns_mgr().Add_main_if_empty();
+ public Srch_crt_scanner_syms Syms() {return syms;} private Srch_crt_scanner_syms syms = Srch_search_mgr.Scanner_syms;
+ public Keyval[] Operators() {return symbols;} private Keyval[] symbols = Keyval_.Ary_empty;
+ public int Visible_rows() {return visible_rows;} private int visible_rows = 10;
+ public int Jump_len() {return jump_len;} private int jump_len = 5;
+ private void Ns_ids_(String s) {
+ int[] ns_ids = Int_.Ary_empty;
+ if (String_.Eq(s, "*")) {} // leave as int[0]; ns_mgr will interpret as wildcard
+ else {
+ ns_ids = Int_.Ary_parse(s, ",");
+ }
+ ns_mgr.Add_by_int_ids(ns_ids);
+ GfoEvMgr_.Pub(this, Evt__ns_ids_changed);
+ }
+ public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
+ if (ctx.Match(k, Invk__enabled)) return Yn.To_str(enabled);
+ else if (ctx.Match(k, Invk__enabled_)) enabled = m.ReadBool("v");
+ else if (ctx.Match(k, Invk__search_mode)) return Xoapi_search_mode_.To_str(search_mode);
+ else if (ctx.Match(k, Invk__search_mode_)) search_mode = Xoapi_search_mode_.To_int(m.ReadStr("v"));
+ else if (ctx.Match(k, Invk__max_results)) return Int_.To_str(max_results);
+ else if (ctx.Match(k, Invk__max_results_)) max_results = m.ReadInt("v");
+ else if (ctx.Match(k, Invk__auto_wildcard)) return Yn.To_str(auto_wildcard);
+ else if (ctx.Match(k, Invk__auto_wildcard_)) auto_wildcard = m.ReadBool("v");
+ else if (ctx.Match(k, Invk__ns_ids)) return Int_.To_str(ns_mgr.To_int_ary(), "|");
+ else if (ctx.Match(k, Invk__ns_ids_)) Ns_ids_(m.ReadStr("v"));
+ else if (ctx.Match(k, Invk__symbols)) return String_.new_u8(syms.To_bry());
+ else if (ctx.Match(k, Invk__symbols_)) syms.Parse(m.ReadBry("v"));
+ else if (ctx.Match(k, Invk__visible_rows)) return Int_.To_str(visible_rows);
+ else if (ctx.Match(k, Invk__visible_rows_)) {visible_rows = m.ReadInt("v"); GfoEvMgr_.PubVal(this, Evt__visible_rows_changed, visible_rows);}
+ else if (ctx.Match(k, Invk__jump_len)) return Int_.To_str(jump_len);
+ else if (ctx.Match(k, Invk__jump_len_)) {jump_len = m.ReadInt("v"); GfoEvMgr_.PubVal(this, Evt__jump_len_changed, jump_len);}
+ else return GfoInvkAble_.Rv_unhandled;
+ return this;
+ }
+ private static final String
+ Invk__enabled = "enabled" , Invk__enabled_ = "enabled_"
+ , Invk__search_mode = "search_mode" , Invk__search_mode_ = "search_mode_"
+ , Invk__max_results = "max_results" , Invk__max_results_ = "max_results_"
+ , Invk__auto_wildcard = "auto_wildcard" , Invk__auto_wildcard_ = "auto_wildcard_"
+ , Invk__ns_ids = "ns_ids" , Invk__ns_ids_ = "ns_ids_"
+ , Invk__symbols = "symbols" , Invk__symbols_ = "symbols_"
+ , Invk__visible_rows = "visible_rows" , Invk__visible_rows_ = "visible_rows_"
+ , Invk__jump_len = "jump_len" , Invk__jump_len_ = "jump_len_"
+ ;
+ public static final String
+ Evt__visible_rows_changed = "visible_rows_changed"
+ , Evt__jump_len_changed = "jump_len_changed"
+ , Evt__ns_ids_changed = "ns_ids_changed"
+ ;
+}
diff --git a/400_xowa/src/gplx/xowa/apps/apis/xowa/bldrs/imports/Xoapi_import.java b/400_xowa/src/gplx/xowa/apps/apis/xowa/bldrs/imports/Xoapi_import.java
index 30909b346..7fd1a2dae 100644
--- a/400_xowa/src/gplx/xowa/apps/apis/xowa/bldrs/imports/Xoapi_import.java
+++ b/400_xowa/src/gplx/xowa/apps/apis/xowa/bldrs/imports/Xoapi_import.java
@@ -16,8 +16,9 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa.apps.apis.xowa.bldrs.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.apps.*; import gplx.xowa.apps.apis.*; import gplx.xowa.apps.apis.xowa.*; import gplx.xowa.apps.apis.xowa.bldrs.*;
-import gplx.core.ios.*; import gplx.xowa.wikis.data.*;
+import gplx.core.ios.*; import gplx.xowa.wikis.data.*; import gplx.xowa.apps.apis.xowa.bldrs.imports.page_ranks.*;
public class Xoapi_import implements GfoInvkAble {
+ public Xoapi_page_rank Page_rank() {return page_rank;} private final Xoapi_page_rank page_rank = new Xoapi_page_rank();
public long Layout_all_max() {return layout_all_max;} private long layout_all_max = 0; // disable by default; may set to 200 MB in future
public long Layout_text_max() {return layout_text_max;} private long layout_text_max = Io_size_.To_long_by_int_mb(1500); // 1.5 GB
public long Layout_html_max() {return layout_html_max;} private long layout_html_max = Io_size_.To_long_by_int_mb(1500); // 1.5 GB
@@ -77,10 +78,11 @@ public class Xoapi_import implements GfoInvkAble {
else if (ctx.Match(k, Invk_hzip_mode_is_b256_)) hzip_mode_is_b256 = m.ReadYn("v");
else if (ctx.Match(k, Invk_user_name)) return user_name;
else if (ctx.Match(k, Invk_user_name_)) user_name = m.ReadStr("v");
+ else if (ctx.Match(k, Invk_page_rank)) return page_rank;
else return GfoInvkAble_.Rv_unhandled;
return this;
}
- private static KeyVal[] Options_zip_tid__list = KeyVal_.Ary(KeyVal_.new_("raw", "text"), KeyVal_.new_("gzip"), KeyVal_.new_("bzip2"));
+ private static Keyval[] Options_zip_tid__list = Keyval_.Ary(Keyval_.new_("raw", "text"), Keyval_.new_("gzip"), Keyval_.new_("bzip2"));
private static final String
Invk_layout_all_max = "layout_all_max" , Invk_layout_all_max_ = "layout_all_max_"
, Invk_layout_text_max = "layout_text_max" , Invk_layout_text_max_ = "layout_text_max_"
@@ -96,6 +98,7 @@ public class Xoapi_import implements GfoInvkAble {
, Invk_user_name = "user_name" , Invk_user_name_ = "user_name_"
, Invk_hzip_enabled = "hzip_enabled" , Invk_hzip_enabled_ = "hzip_enabled_"
, Invk_hzip_mode_is_b256 = "hzip_mode_is_b256" , Invk_hzip_mode_is_b256_ = "hzip_mode_is_b256_"
+ , Invk_page_rank = "page_rank"
;
public static final byte[] Ns_file_map__each = Bry_.new_a7("");
}
diff --git a/400_xowa/src/gplx/xowa/apps/apis/xowa/bldrs/imports/page_ranks/Xoapi_page_rank.java b/400_xowa/src/gplx/xowa/apps/apis/xowa/bldrs/imports/page_ranks/Xoapi_page_rank.java
new file mode 100644
index 000000000..03f99190b
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/apps/apis/xowa/bldrs/imports/page_ranks/Xoapi_page_rank.java
@@ -0,0 +1,30 @@
+/*
+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 .
+*/
+package gplx.xowa.apps.apis.xowa.bldrs.imports.page_ranks; import gplx.*; import gplx.xowa.*; import gplx.xowa.apps.*; import gplx.xowa.apps.apis.*; import gplx.xowa.apps.apis.xowa.*; import gplx.xowa.apps.apis.xowa.bldrs.*; import gplx.xowa.apps.apis.xowa.bldrs.imports.*;
+public class Xoapi_page_rank implements GfoInvkAble {
+ public int Iteration_max() {return iteration_max;} private int iteration_max = 0;
+ public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
+ if (ctx.Match(k, Invk_iteration_max)) return Int_.To_str(iteration_max);
+ else if (ctx.Match(k, Invk_iteration_max_)) iteration_max = m.ReadInt("v");
+ else return GfoInvkAble_.Rv_unhandled;
+ return this;
+ }
+ private static final String
+ Invk_iteration_max = "iteration_max" , Invk_iteration_max_ = "iteration_max_"
+ ;
+}
diff --git a/400_xowa/src/gplx/xowa/apps/apis/xowa/gui/Xoapi_font.java b/400_xowa/src/gplx/xowa/apps/apis/xowa/gui/Xoapi_font.java
index 62419139f..d6a70c9c6 100644
--- a/400_xowa/src/gplx/xowa/apps/apis/xowa/gui/Xoapi_font.java
+++ b/400_xowa/src/gplx/xowa/apps/apis/xowa/gui/Xoapi_font.java
@@ -40,7 +40,7 @@ public class Xoapi_font implements GfoInvkAble {
app.Gui_mgr().Win_cfg().Font().Size_(gui_font_size);
app.Cfg_mgr().Set_by_app("app.gui.win_opts.font.size", Float_.To_str(gui_font_size));
app.Cfg_mgr().Db_save_txt();
- app.Gui_mgr().Browser_win().Page__reload(); // NOTE: force reload; needed if viewing Help:Options/HTML, else Font size won't update
+ app.Gui_mgr().Browser_win().Page__reload(); // NOTE: force reload; needed if viewing home/wiki/Options/HTML, else Font size won't update
}
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
if (ctx.Match(k, Invk_increase)) this.Increase();
diff --git a/400_xowa/src/gplx/xowa/apps/apis/xowa/gui/browsers/Xoapi_find.java b/400_xowa/src/gplx/xowa/apps/apis/xowa/gui/browsers/Xoapi_find.java
index 432254c1e..701ad8535 100644
--- a/400_xowa/src/gplx/xowa/apps/apis/xowa/gui/browsers/Xoapi_find.java
+++ b/400_xowa/src/gplx/xowa/apps/apis/xowa/gui/browsers/Xoapi_find.java
@@ -40,7 +40,8 @@ public class Xoapi_find implements GfoInvkAble {
}
class Xog_find_box {
private Xoae_app app; private Xog_win_itm win; private GfuiTextBox find_box;
- private String prv_find_text; private boolean dir_fwd = true, case_match = false, wrap_search = true;
+ private String prv_find_text = ""; // NOTE: must set to "", else will fail during Hide
+ private boolean dir_fwd = true, case_match = false, wrap_search = true;
public Xog_find_box(Xoae_app app) {
this.app = app;
this.win = app.Gui_mgr().Browser_win();
@@ -66,7 +67,7 @@ class Xog_find_box {
win.Usr_dlg().Prog_direct("Find direction changed to " + (fwd ? "forward" : "backward"));
}
public void Exec() {
- prv_find_text = find_box.Text();
+ prv_find_text = find_box.Text();
Exec_find(prv_find_text, Bool_.Y);
}
private void Exec_find(String find, boolean highlight_matches) {
diff --git a/400_xowa/src/gplx/xowa/apps/apis/xowa/gui/browsers/Xoapi_url.java b/400_xowa/src/gplx/xowa/apps/apis/xowa/gui/browsers/Xoapi_url.java
index 274126e04..2af2bc08e 100644
--- a/400_xowa/src/gplx/xowa/apps/apis/xowa/gui/browsers/Xoapi_url.java
+++ b/400_xowa/src/gplx/xowa/apps/apis/xowa/gui/browsers/Xoapi_url.java
@@ -18,9 +18,14 @@ along with this program. If not, see .
package gplx.xowa.apps.apis.xowa.gui.browsers; import gplx.*; import gplx.xowa.*; import gplx.xowa.apps.*; import gplx.xowa.apps.apis.*; import gplx.xowa.apps.apis.xowa.*; import gplx.xowa.apps.apis.xowa.gui.*;
import gplx.gfui.*; import gplx.xowa.guis.views.*; import gplx.core.envs.*;
public class Xoapi_url implements GfoInvkAble {
- public void Init_by_kit(Xoae_app app) {this.app = app;} private Xoae_app app;
- private GfuiTextBox Url_box() {return app.Gui_mgr().Browser_win().Url_box();}
- public void Focus() {this.Url_box().Focus_select_all();}
+ private Xoae_app app;
+ private Xoapi_url_searcher url_searcher;
+ public void Init_by_kit(Xoae_app app) {
+ this.app = app;
+ this.url_searcher = new Xoapi_url_searcher(app);
+ }
+ private GfuiComboBox Url_box() {return app.Gui_mgr().Browser_win().Url_box();}
+ public void Focus() {this.Url_box().Focus(); this.Url_box().Sel_(0, String_.Len(this.Url_box().Text()));}
public void Exec() {Exec_wkr(Bool_.N, this.Url_box().Text());}
public void Exec_by_paste() {Exec_wkr(Bool_.N, ClipboardAdp_.GetText());}
public void Exec_new_tab_by_paste() {Exec_wkr(Bool_.Y, ClipboardAdp_.GetText());}
@@ -28,15 +33,29 @@ public class Xoapi_url implements GfoInvkAble {
Xog_tab_itm tab = app.Gui_mgr().Browser_win().Active_tab(); if (tab == Xog_tab_itm_.Null) return;
this.Url_box().Text_(tab.Page().Url().To_str());
}
+ public void Type() {
+ url_searcher.Search();
+ }
private void Exec_wkr(boolean new_tab, String urls_text) {
if (Op_sys.Cur().Tid_is_wnt())
urls_text = String_.Replace(urls_text, Op_sys.Wnt.Nl_str(), Op_sys.Lnx.Nl_str());
String[] urls = String_.Split(String_.Trim(urls_text), Op_sys.Lnx.Nl_str());
int urls_len = urls.length;
if (urls_len == 0) return;
- if (urls_len == 1) {
+ if (urls_len == 1) { // 1 url; most cases
String url = urls[0];
- this.Url_box().Text_(url);
+ gplx.core.threads.Thread_adp_.Sleep(1); // HACK: sleep 1 ms, else rapid keystrokes may cause last keystroke to not register; EX: typing "w:" may show just "w" instead of "w:"; DATE:2016-03-27
+ GfuiComboBox combo = this.Url_box();
+ String[] itms_ary = combo.DataSource_as_str_ary();
+ if ( itms_ary.length > 0 // results exist...
+ && combo.List_visible()) { // and dropdown is visible; use selected-item
+ int sel_idx = combo.List_sel_idx(); // get selected item
+ if (sel_idx == -1) sel_idx = 0; // if nothing selected, default to 1st; allows typing first few characters and picking 1st item from list
+ String itms_sel = itms_ary[sel_idx];
+ // if (String_.Has(String_.Lower(itms_sel), String_.Lower(url))) // make sure itms_sel contains url; handles slow machines, where dropdown may not be updated yet
+ url = Xog_win_itm.Remove_redirect_if_exists(itms_sel);
+ }
+ combo.Text_(url);
app.Gui_mgr().Browser_win().Page__navigate_by_url_bar(url);
}
else {
@@ -54,9 +73,10 @@ public class Xoapi_url implements GfoInvkAble {
else if (ctx.Match(k, Invk_exec_by_paste)) this.Exec_by_paste();
else if (ctx.Match(k, Invk_exec_new_tab_by_paste)) this.Exec_new_tab_by_paste();
else if (ctx.Match(k, Invk_restore)) this.Restore();
+ else if (ctx.Match(k, Invk_type)) this.Type();
else return GfoInvkAble_.Rv_unhandled;
return this;
}
- private static final String Invk_focus = "focus", Invk_exec_by_paste = "exec_by_paste", Invk_exec_new_tab_by_paste = "exec_new_tab_by_paste", Invk_restore = "restore";
+ private static final String Invk_focus = "focus", Invk_exec_by_paste = "exec_by_paste", Invk_exec_new_tab_by_paste = "exec_new_tab_by_paste", Invk_restore = "restore", Invk_type = "type";
public static final String Invk_exec = "exec";
}
diff --git a/400_xowa/src/gplx/xowa/apps/apis/xowa/gui/browsers/Xoapi_url_searcher.java b/400_xowa/src/gplx/xowa/apps/apis/xowa/gui/browsers/Xoapi_url_searcher.java
new file mode 100644
index 000000000..c6d1fcb35
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/apps/apis/xowa/gui/browsers/Xoapi_url_searcher.java
@@ -0,0 +1,74 @@
+/*
+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 .
+*/
+package gplx.xowa.apps.apis.xowa.gui.browsers; import gplx.*; import gplx.xowa.*; import gplx.xowa.apps.*; import gplx.xowa.apps.apis.*; import gplx.xowa.apps.apis.xowa.*; import gplx.xowa.apps.apis.xowa.gui.*;
+import gplx.gfui.*;
+import gplx.xowa.addons.searchs.*; import gplx.xowa.addons.searchs.searchers.*; import gplx.xowa.addons.searchs.searchers.cbks.*;
+import gplx.xowa.apps.apis.xowa.addons.searchs.*;
+import gplx.xowa.guis.views.*;
+class Xoapi_url_searcher implements GfoEvObj {
+ private final Xoae_app app;
+ private final Xoapi_url_bar url_bar_api; private Srch_search_addon addon;
+ private final GfuiComboBox url_bar;
+ public Xoapi_url_searcher(Xoae_app app) { // called by Init_by_kit
+ this.app = app;
+ this.evMgr = GfoEvMgr.new_(this);
+ this.url_bar = app.Gui_mgr().Browser_win().Url_box();
+ this.url_bar_api = app.Api_root().Addon().Search().Url_bar();
+ GfoEvMgr_.SubSame_many(url_bar_api, this, Xoapi_url_bar.Evt__jump_len_changed, Xoapi_url_bar.Evt__visible_rows_changed, Xoapi_url_bar.Evt__ns_ids_changed);
+ url_bar.Items__jump_len_(url_bar_api.Jump_len());
+ url_bar.Items__visible_rows_(url_bar_api.Visible_rows());
+ }
+ public GfoEvMgr EvMgr() {return evMgr;} private final GfoEvMgr evMgr;
+ public void Search() {
+ if (!url_bar_api.Enabled()) return;
+ Xog_tab_itm active_tab = app.Gui_mgr().Browser_win().Tab_mgr().Active_tab(); if (active_tab == null) return;
+ Xow_wiki wiki = active_tab.Wiki();
+
+ String search_str = url_bar.Text();
+ url_bar.Text_fallback_(search_str);
+ // remove "en.wikipedia.org/wiki/"
+ // String url_bgn = wiki.Domain_str() + gplx.xowa.htmls.hrefs.Xoh_href_.Str__wiki;
+ // if (String_.Has_at_bgn(search_str, url_bgn))
+ // search_str = String_.Mid(search_str, String_.Len(url_bgn));
+ if (String_.Len_eq_0(search_str)) {
+ url_bar.Items__update(String_.Ary_empty);
+ return;
+ }
+
+ if (addon == null) {
+ addon = Srch_search_addon.Get(wiki);
+ }
+ else {
+ if (!Bry_.Eq(wiki.Domain_bry(), addon.Wiki_domain())) // NOTE: url_bar_api caches addon at wiki level; need to check if wiki has changed
+ addon = Srch_search_addon.Get(wiki);
+ }
+ if (addon.Db_mgr().Cfg().Version_id__needs_upgrade()) return; // exit early, else will flash "searching" message below; note that url-bar should not trigger upgrade;
+ url_bar.List_sel_idx_(0); // clear selected list item; EX: search "a" -> page down; sel is row #5 -> search "b" -> sel should not be #5; DATE:2016-03-24
+ if (!url_bar.List_visible()) url_bar.Items__size_to_fit(url_bar_api.Max_results()); // resize offscreen; handles 1st search when dropdown flashes briefly in middle of screen before being moved under bar; DATE:2016-03-24
+ Srch_search_qry qry = Srch_search_qry.New__url_bar(wiki, url_bar_api, Bry_.new_u8(search_str));
+ Srch_rslt_cbk__url_bar cbk = new Srch_rslt_cbk__url_bar(app, url_bar, url_bar_api);
+ Xoa_app_.Usr_dlg().Prog_one("", "", "searching (please wait): ~{0}", search_str);
+ addon.Search(qry, cbk);
+ }
+ public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
+ if (ctx.Match(k, Xoapi_url_bar.Evt__jump_len_changed)) {url_bar.Items__jump_len_(m.ReadInt("v"));}
+ else if (ctx.Match(k, Xoapi_url_bar.Evt__visible_rows_changed)) {url_bar.Items__visible_rows_(m.ReadInt("v"));}
+ else if (ctx.Match(k, Xoapi_url_bar.Evt__ns_ids_changed)) {if (addon != null) addon.Clear_rslts_cache();} // invalidate cache when ns changes; else ns_0 rslts will show up in ns_100; DATE:2016-03-24
+ return this;
+ }
+}
diff --git a/400_xowa/src/gplx/xowa/apps/apis/xowa/html/modules/Xoapi_popups.java b/400_xowa/src/gplx/xowa/apps/apis/xowa/html/modules/Xoapi_popups.java
index 4aabeef96..e96682613 100644
--- a/400_xowa/src/gplx/xowa/apps/apis/xowa/html/modules/Xoapi_popups.java
+++ b/400_xowa/src/gplx/xowa/apps/apis/xowa/html/modules/Xoapi_popups.java
@@ -182,7 +182,7 @@ public class Xoapi_popups implements GfoInvkAble, GfoEvMgrOwner {
, Evt_html_fmtr_wiki_changed = "html_fmtr_wiki_changed"
, Evt_html_fmtr_next_sect_changed = "html_fmtr_next_sect_changed"
;
- public static final byte[]
+ public static final byte[]
Dflt_xnde_ignore_ids = Bry_.new_a7("coordinates")
, Dflt_tmpl_keeplist = Bry_.new_a7("en.wikipedia.org|formatnum;age;age_in_days;age_in_years_and_days*;nts;number_table_sorting*;as_of;oldstyledatedy;gregorian_serial_date;currentminute;currentsecond;dmca;spaced_ndash;trim;month*;convert*;worldpop*;ipa*;lang*;nowrap*;h:*;mvar;math;vgy;audio;iso_639_name;transl;translate;linktext;zh;nihongo*;japanese_name;ko-hhrm;mp|\n")
, Dflt_html_fmtr_popup = Bry_.new_a7(String_.Concat_lines_nl_skip_last
@@ -204,7 +204,7 @@ public class Xoapi_popups implements GfoInvkAble, GfoEvMgrOwner {
, " }'>"
, " }'> "
, " }'>"
- , " }'>"
+ , " }'>" // HOME
, " "
, ""
))
@@ -212,13 +212,13 @@ public class Xoapi_popups implements GfoInvkAble, GfoEvMgrOwner {
, Dflt_html_fmtr_wiki = Bry_.new_a7("\n ~{<>msgs.get('api-xowa.html.modules.popups.msgs.wiki-name');<>}~{wiki_val}")
, Dflt_html_fmtr_next_sect = Bry_.new_a7("\n\n~{<>msgs.get('api-xowa.html.modules.popups.msgs.next_sect-name');<>}~{next_sect_val}")
;
- public static final String[]
+ public static final String[]
Dflt_html_fmtr_popup_keys = String_.Ary("content", "page_lang_ltr", "page_url", "page_title", "popup_id", "wiki_item", "page_size", "edit_time", "view_time_item", "xowa_root_dir")
, Dflt_html_fmtr_viewed_keys = String_.Ary("viewed_val")
, Dflt_html_fmtr_wiki_keys = String_.Ary("wiki_val")
, Dflt_html_fmtr_next_sect_keys = String_.Ary("next_sect_val")
;
- public static final byte[]
+ public static final byte[]
Dflt_ns_allowed = Bry_.Empty
;
public static final int
diff --git a/400_xowa/src/gplx/xowa/apps/apis/xowa/specials/Xoapi_search.java b/400_xowa/src/gplx/xowa/apps/apis/xowa/specials/Xoapi_search.java
index f267b3afb..4118cfb4a 100644
--- a/400_xowa/src/gplx/xowa/apps/apis/xowa/specials/Xoapi_search.java
+++ b/400_xowa/src/gplx/xowa/apps/apis/xowa/specials/Xoapi_search.java
@@ -18,15 +18,15 @@ along with this program. If not, see .
package gplx.xowa.apps.apis.xowa.specials; import gplx.*; import gplx.xowa.*; import gplx.xowa.apps.*; import gplx.xowa.apps.apis.*; import gplx.xowa.apps.apis.xowa.*;
import gplx.xowa.wikis.domains.*; import gplx.xowa.wikis.domains.crts.*;
public class Xoapi_search implements GfoInvkAble, GfoEvMgrOwner {
- private final Xow_domain_crt_kv_itm_mgr multi_wikis_mgr = new Xow_domain_crt_kv_itm_mgr(); private byte[] multi_wikis_bry = Dflt_multi_wikis_bry;
- private final Xow_domain_crt_kv_itm_mgr multi_sorts_mgr = new Xow_domain_crt_kv_itm_mgr(); private byte[] multi_sorts_bry = Dflt_multi_sorts_bry;
+ private final Xow_domain_crt_kv_itm_mgr multi_wikis_mgr = new Xow_domain_crt_kv_itm_mgr(); private byte[] multi_wikis_bry = Dflt_multi_wikis_bry;
+ private final Xow_domain_crt_kv_itm_mgr multi_sorts_mgr = new Xow_domain_crt_kv_itm_mgr(); private byte[] multi_sorts_bry = Dflt_multi_sorts_bry;
public Xoapi_search() {
this.evMgr = GfoEvMgr.new_(this);
multi_wikis_mgr.Parse_as_itms(multi_wikis_bry);
multi_sorts_mgr.Parse_as_arys(multi_sorts_bry);
}
public GfoEvMgr EvMgr() {return evMgr;} private GfoEvMgr evMgr;
- public int Results_per_page() {return results_per_page;} private int results_per_page = 20;
+ public int Results_per_page() {return results_per_page;} private int results_per_page = 100;
public boolean Async_db() {return async_db;} private boolean async_db = true;
public void Multi_wikis_bry_(byte[] v) {
if (!multi_wikis_mgr.Parse_as_itms(v)) return;
@@ -66,7 +66,7 @@ public class Xoapi_search implements GfoInvkAble, GfoEvMgrOwner {
Evt_multi_wikis_changed = "multi_wikis_changed"
, Evt_multi_sorts_changed = "multi_sorts_changed"
;
- public static final byte[]
+ public static final byte[]
Dflt_multi_wikis_bry = Bry_.new_a7("|")
, Dflt_multi_sorts_bry = Bry_.new_a7("|,*.wikipedia,*.wikivoyage,*.wiktionary,*.wikisource,*.wikiquote,*.wikibooks,*.wikiversity,*.wikinews")
;
diff --git a/400_xowa/src/gplx/xowa/apps/apis/xowa/startups/tabs/Xoapi_startup_tabs_tid_.java b/400_xowa/src/gplx/xowa/apps/apis/xowa/startups/tabs/Xoapi_startup_tabs_tid_.java
index 2e13cef20..263bf93fe 100644
--- a/400_xowa/src/gplx/xowa/apps/apis/xowa/startups/tabs/Xoapi_startup_tabs_tid_.java
+++ b/400_xowa/src/gplx/xowa/apps/apis/xowa/startups/tabs/Xoapi_startup_tabs_tid_.java
@@ -35,5 +35,5 @@ public class Xoapi_startup_tabs_tid_ {
else if (String_.Eq(s, Key_custom)) return Tid_custom;
else throw Err_.new_unimplemented();
}
- public static KeyVal[] Options__list = KeyVal_.Ary(KeyVal_.new_(Key_blank), KeyVal_.new_(Key_xowa), KeyVal_.new_(Key_previous), KeyVal_.new_(Key_custom));
+ public static Keyval[] Options__list = Keyval_.Ary(Keyval_.new_(Key_blank), Keyval_.new_(Key_xowa), Keyval_.new_(Key_previous), Keyval_.new_(Key_custom));
}
diff --git a/400_xowa/src/gplx/xowa/apps/apis/xowa/usrs/Xoapi_cache.java b/400_xowa/src/gplx/xowa/apps/apis/xowa/usrs/Xoapi_cache.java
index 261d66e6e..113948d9a 100644
--- a/400_xowa/src/gplx/xowa/apps/apis/xowa/usrs/Xoapi_cache.java
+++ b/400_xowa/src/gplx/xowa/apps/apis/xowa/usrs/Xoapi_cache.java
@@ -23,10 +23,10 @@ public class Xoapi_cache implements GfoInvkAble {
private String Info() {
cache_mgr.Page_bgn();
Bry_bfr bfr = Bry_bfr.new_(255);
- KeyVal[] ary = cache_mgr.Info();
+ Keyval[] ary = cache_mgr.Info();
int len = ary.length;
for (int i = 0; i < len; ++i) {
- KeyVal kv = ary[i];
+ Keyval kv = ary[i];
bfr.Add_str_a7(kv.Key()).Add_str_a7(": ").Add_str_u8(kv.Val_to_str_or_empty()).Add_byte_nl();
}
return bfr.To_str_and_clear();
diff --git a/400_xowa/src/gplx/xowa/apps/cfgs/Xoa_cfg_mgr_tst.java b/400_xowa/src/gplx/xowa/apps/cfgs/Xoa_cfg_mgr_tst.java
index da5a6e839..50488cd8d 100644
--- a/400_xowa/src/gplx/xowa/apps/cfgs/Xoa_cfg_mgr_tst.java
+++ b/400_xowa/src/gplx/xowa/apps/cfgs/Xoa_cfg_mgr_tst.java
@@ -43,7 +43,7 @@ public class Xoa_cfg_mgr_tst {
class Xoa_cfg_mgr_fxt {
public void Clear() {
// if (app == null) {
- app = Xoa_app_fxt.app_();
+ app = Xoa_app_fxt.Make__app__edit();
cfg_mgr = app.Cfg_mgr();
// }
} private Xoae_app app; Xoa_cfg_mgr cfg_mgr;
diff --git a/400_xowa/src/gplx/xowa/apps/cfgs/old/Xocfg_tab_new_mgr.java b/400_xowa/src/gplx/xowa/apps/cfgs/old/Xocfg_tab_new_mgr.java
index 4a5577c2f..06bb13389 100644
--- a/400_xowa/src/gplx/xowa/apps/cfgs/old/Xocfg_tab_new_mgr.java
+++ b/400_xowa/src/gplx/xowa/apps/cfgs/old/Xocfg_tab_new_mgr.java
@@ -46,5 +46,5 @@ class Xocfg_new_tab_pos {
default: throw Err_.new_unhandled(v);
}
}
- public static KeyVal[] Options__all = KeyVal_.Ary(KeyVal_.new_(Key_all_bgn), KeyVal_.new_(Key_all_end), KeyVal_.new_(Key_cur_prv), KeyVal_.new_(Key_cur_nxt));
+ public static Keyval[] Options__all = Keyval_.Ary(Keyval_.new_(Key_all_bgn), Keyval_.new_(Key_all_end), Keyval_.new_(Key_cur_prv), Keyval_.new_(Key_cur_nxt));
}
diff --git a/400_xowa/src/gplx/xowa/apps/fmtrs/Xoa_fmtr_itm_tst.java b/400_xowa/src/gplx/xowa/apps/fmtrs/Xoa_fmtr_itm_tst.java
index 06cd49607..be58cfcf1 100644
--- a/400_xowa/src/gplx/xowa/apps/fmtrs/Xoa_fmtr_itm_tst.java
+++ b/400_xowa/src/gplx/xowa/apps/fmtrs/Xoa_fmtr_itm_tst.java
@@ -28,8 +28,8 @@ public class Xoa_fmtr_itm_tst {
class Xoa_fmtr_itm_fxt {
private Xoae_app app; private Xoa_fmtr_itm itm;
public void Clear() {
- app = Xoa_app_fxt.app_();
- Xoa_app_fxt.wiki_tst_(app); // create enwiki
+ app = Xoa_app_fxt.Make__app__edit();
+ Xoa_app_fxt.Make__wiki__edit(app); // create enwiki
itm = new Xoa_fmtr_itm(app);
GfsCore.Instance.MsgParser_(gplx.langs.gfs.Gfs_msg_bldr.Instance);
}
diff --git a/400_xowa/src/gplx/xowa/apps/servers/http/File_retrieve_mode.java b/400_xowa/src/gplx/xowa/apps/servers/http/File_retrieve_mode.java
index 4fe563a8c..6a3f15039 100644
--- a/400_xowa/src/gplx/xowa/apps/servers/http/File_retrieve_mode.java
+++ b/400_xowa/src/gplx/xowa/apps/servers/http/File_retrieve_mode.java
@@ -32,5 +32,5 @@ class File_retrieve_mode {
else throw Err_.new_unimplemented();
}
public static final byte Mode_skip = 1, Mode_wait = 2, Mode_async_server = 3;
- public static KeyVal[] Options__list = KeyVal_.Ary(KeyVal_.new_("wait"), KeyVal_.new_("skip"), KeyVal_.new_("async_server", "async server"));
+ public static Keyval[] Options__list = Keyval_.Ary(Keyval_.new_("wait"), Keyval_.new_("skip"), Keyval_.new_("async_server", "async server"));
}
diff --git a/400_xowa/src/gplx/xowa/apps/servers/http/Http_server_wkr__tst.java b/400_xowa/src/gplx/xowa/apps/servers/http/Http_server_wkr__tst.java
index a601b00ab..84b6f1901 100644
--- a/400_xowa/src/gplx/xowa/apps/servers/http/Http_server_wkr__tst.java
+++ b/400_xowa/src/gplx/xowa/apps/servers/http/Http_server_wkr__tst.java
@@ -30,7 +30,7 @@ public class Http_server_wkr__tst {
class Http_server_wkr__fxt {
private Xoae_app app;
public void Clear() {
- this.app = Xoa_app_fxt.app_();
+ this.app = Xoa_app_fxt.Make__app__edit();
}
public void Init_wiki_main_page(String domain, String main_page) {
Xowe_wiki wiki = app.Wiki_mgr().Get_by_or_make(Bry_.new_u8(domain));
diff --git a/400_xowa/src/gplx/xowa/apps/servers/tcp/Xosrv_server_tst.java b/400_xowa/src/gplx/xowa/apps/servers/tcp/Xosrv_server_tst.java
index 7c8127487..834cdb268 100644
--- a/400_xowa/src/gplx/xowa/apps/servers/tcp/Xosrv_server_tst.java
+++ b/400_xowa/src/gplx/xowa/apps/servers/tcp/Xosrv_server_tst.java
@@ -29,7 +29,7 @@ public class Xosrv_server_tst {
}
class Xosrv_server_fxt {
public Xosrv_server_fxt Clear() {
- app = Xoa_app_fxt.app_();
+ app = Xoa_app_fxt.Make__app__edit();
Xoa_app_fxt.Init_gui(app, null); // NOTE: null wiki does not matter for test
return this;
} private Xoae_app app;
diff --git a/400_xowa/src/gplx/xowa/apps/site_cfgs/Xoa_site_cfg_mgr_tst.java b/400_xowa/src/gplx/xowa/apps/site_cfgs/Xoa_site_cfg_mgr_tst.java
index 7ac3cdf51..4e3956c59 100644
--- a/400_xowa/src/gplx/xowa/apps/site_cfgs/Xoa_site_cfg_mgr_tst.java
+++ b/400_xowa/src/gplx/xowa/apps/site_cfgs/Xoa_site_cfg_mgr_tst.java
@@ -74,9 +74,9 @@ class Xoa_site_cfg_mgr_fxt {
public Xoa_site_cfg_mgr_fxt() {
// Xoa_app_.Usr_dlg_(Xoa_app_.usr_dlg_console_());
Xoa_test_.Inet__init();
- this.app = Xoa_app_fxt.app_();
- this.wiki = Xoa_app_fxt.wiki_tst_(app);
- Xoa_test_.Db__init__mem(wiki);
+ this.app = Xoa_app_fxt.Make__app__edit();
+ this.wiki = Xoa_app_fxt.Make__wiki__edit(app);
+ Xoa_test_.Init__db__edit(wiki);
this.cfg_tbl = wiki.Data__core_mgr().Tbl__cfg();
this.site_cfg_mgr = app.Site_cfg_mgr();
}
diff --git a/400_xowa/src/gplx/xowa/apps/urls/Xoa_url__basic__tst.java b/400_xowa/src/gplx/xowa/apps/urls/Xoa_url__basic__tst.java
index e51c77a87..0019d3c39 100644
--- a/400_xowa/src/gplx/xowa/apps/urls/Xoa_url__basic__tst.java
+++ b/400_xowa/src/gplx/xowa/apps/urls/Xoa_url__basic__tst.java
@@ -18,13 +18,13 @@ along with this program. If not, see .
package gplx.xowa.apps.urls; import gplx.*; import gplx.xowa.*; import gplx.xowa.apps.*;
import org.junit.*;
public class Xoa_url__basic__tst {
- private final Xoa_url_fxt fxt = new Xoa_url_fxt();
+ private final Xoa_url_fxt fxt = new Xoa_url_fxt();
@Test public void Eq_page() {
fxt.Test_eq_page(Bool_.Y, "en.wikipedia.org/wiki/A?redirect=yes", "en.wikipedia.org/wiki/A?redirect=yes");
fxt.Test_eq_page(Bool_.N, "en.wikipedia.org/wiki/A?redirect=no" , "en.wikipedia.org/wiki/A?redirect=yes");
}
}
-class Xoa_url_fxt extends Xoa_url_parser_fxt { public void Test_eq_page(boolean expd, String lhs_str, String rhs_str) {
+class Xoa_url_fxt extends Xow_url_parser_fxt { public void Test_eq_page(boolean expd, String lhs_str, String rhs_str) {
Xoa_url lhs_url = parser.Parse(Bry_.new_u8(lhs_str));
Xoa_url rhs_url = parser.Parse(Bry_.new_u8(rhs_str));
Tfds.Eq_bool(expd, lhs_url.Eq_page(rhs_url), "Eq_page");
diff --git a/400_xowa/src/gplx/xowa/apps/urls/Xoa_url__to_str__tst.java b/400_xowa/src/gplx/xowa/apps/urls/Xoa_url__to_str__tst.java
index 0eb81583b..00dc03a3f 100644
--- a/400_xowa/src/gplx/xowa/apps/urls/Xoa_url__to_str__tst.java
+++ b/400_xowa/src/gplx/xowa/apps/urls/Xoa_url__to_str__tst.java
@@ -19,7 +19,7 @@ package gplx.xowa.apps.urls; import gplx.*; import gplx.xowa.*; import gplx.xowa
import org.junit.*; import gplx.xowa.htmls.hrefs.*;
import gplx.xowa.wikis.nss.*;
public class Xoa_url__to_str__tst {
- private final Xoa_url__to_str__fxt fxt = new Xoa_url__to_str__fxt();
+ private final Xoa_url__to_str__fxt fxt = new Xoa_url__to_str__fxt();
@Test public void Http() {fxt.Chk_to_str_href(Bool_.N, "http://a.org/b" , "http://a.org/b");}
@Test public void File() {fxt.Chk_to_str_href(Bool_.N, "file:///C/xowa/file/a.png" , "file:///C/xowa/file/a.png");}
@Test public void Abrv__page() {fxt.Chk_to_str_href(Bool_.N, "/wiki/A" , "A");}
@@ -46,11 +46,11 @@ public class Xoa_url__to_str__tst {
}
@Test public void Unknown() {fxt.Chk_to_str_href(Bool_.N, "/wiki/{{{extlink}}}" , "");} // {{{extlink}}} not a valid title; return empty
}
-class Xoa_url__to_str__fxt extends Xoa_url_parser_fxt { private final Xoh_href_parser href_parser = new Xoh_href_parser();
+class Xoa_url__to_str__fxt extends Xow_url_parser_fxt { private final Xoh_href_parser href_parser = new Xoh_href_parser();
public void Chk_to_str_href(boolean full, String raw, String expd) {Chk_to_str_href(cur_wiki, full, raw, expd);}
public void Chk_to_str_href(Xowe_wiki wiki, boolean full, String raw, String expd) {
href_parser.Parse_as_url(actl_url, Bry_.new_u8(raw), wiki, Bry__page);
this.Chk_to_str(full, expd);
}
- private static final byte[] Bry__page = Bry_.new_a7("Page_1");
+ private static final byte[] Bry__page = Bry_.new_a7("Page_1");
}
diff --git a/400_xowa/src/gplx/xowa/apps/urls/Xoa_url_parser.java b/400_xowa/src/gplx/xowa/apps/urls/Xow_url_parser.java
similarity index 93%
rename from 400_xowa/src/gplx/xowa/apps/urls/Xoa_url_parser.java
rename to 400_xowa/src/gplx/xowa/apps/urls/Xow_url_parser.java
index 6792683e3..1666371ec 100644
--- a/400_xowa/src/gplx/xowa/apps/urls/Xoa_url_parser.java
+++ b/400_xowa/src/gplx/xowa/apps/urls/Xow_url_parser.java
@@ -21,19 +21,19 @@ import gplx.xowa.htmls.hrefs.*;
import gplx.xowa.langs.*; import gplx.xowa.langs.vnts.*;
import gplx.xowa.wikis.nss.*;
import gplx.xowa.wikis.domains.*; import gplx.xowa.wikis.xwikis.*; import gplx.xowa.files.*;
-public class Xoa_url_parser {
- private final Gfo_url_encoder encoder;
- private final Bry_bfr tmp_bfr = Bry_bfr.reset_(255);
- private final Gfo_url_parser url_parser = new Gfo_url_parser(); private final Gfo_url gfo_url = new Gfo_url();
- private final Xoa_app app; private final Xow_wiki wiki; private final byte[] domain_bry;
+public class Xow_url_parser {
+ private final Gfo_url_encoder encoder;
+ private final Bry_bfr tmp_bfr = Bry_bfr.reset_(255);
+ private final Gfo_url_parser url_parser = new Gfo_url_parser(); private final Gfo_url gfo_url = new Gfo_url();
+ private final Xoa_app app; private final Xow_wiki wiki; private final byte[] domain_bry;
private byte tmp_protocol_tid;
private int tmp_tid;
private byte[] tmp_raw, tmp_wiki, tmp_page, tmp_anch, tmp_protocol_bry; private Gfo_qarg_itm[] tmp_qargs;
private byte[][] tmp_segs; private int tmp_segs_len;
private boolean tmp_protocol_is_relative, tmp_page_is_main, tmp_wiki_is_missing;
private byte[] tmp_vnt;
- private final Xol_vnt_mgr vnt_mgr;
- public Xoa_url_parser(Xow_wiki wiki) {
+ private final Xol_vnt_mgr vnt_mgr;
+ public Xow_url_parser(Xow_wiki wiki) {
this.app = wiki.App();
this.wiki = wiki; this.domain_bry = wiki.Domain_bry();
this.encoder = gplx.langs.htmls.encoders.Gfo_url_encoder_.Xourl;
@@ -53,6 +53,8 @@ public class Xoa_url_parser {
Xow_wiki wiki_itm = app.Wiki_mgri().Get_by_or_make_init_y(wiki_bry); // NOTE: must call Init to load Main_Page; only call if from url_bar, else all sister wikis will be loaded when parsing Sister_wikis panel
rv.Page_bry_(wiki_itm.Props().Main_page());
}
+ Xoa_ttl ttl = wiki.Ttl_parse(rv.Page_bry()); // parse to ttl to get proper casing; EX: "earth" -> "Earth" x> "earth"; DATE:2016-03-25
+ rv.Page_bry_(ttl.Full_db());
return rv;
}
public Gfo_url_parser Url_parser() {return url_parser;}
@@ -302,13 +304,13 @@ public class Xoa_url_parser {
if (v[pos + 2] != Byte_ascii.Dot) return v;
return Bry_.Add(Bry_.Mid(v, 0, pos), Bry_.Mid(v, pos + 2)); // skip ".m"
}
- private static final byte[] Qarg__title = Bry_.new_a7("title");
- private static final byte[]
+ private static final byte[] Qarg__title = Bry_.new_a7("title");
+ private static final byte[]
Bry_upload_wikimedia_org = Bry_.new_a7("upload.wikimedia.org")
, Bry_file = Bry_.new_a7("File:") // NOTE: File does not need i18n; is a canonical namespace
, Bry_wiki = Bry_.new_a7("wiki")
;
- public static final byte[]
+ public static final byte[]
Bry_dot_org = Bry_.new_a7(".org")
;
}
diff --git a/400_xowa/src/gplx/xowa/apps/urls/Xoa_url_parser__proto_tst.java b/400_xowa/src/gplx/xowa/apps/urls/Xow_url_parser__proto_tst.java
similarity index 93%
rename from 400_xowa/src/gplx/xowa/apps/urls/Xoa_url_parser__proto_tst.java
rename to 400_xowa/src/gplx/xowa/apps/urls/Xow_url_parser__proto_tst.java
index e907d91b5..9d5e8e10d 100644
--- a/400_xowa/src/gplx/xowa/apps/urls/Xoa_url_parser__proto_tst.java
+++ b/400_xowa/src/gplx/xowa/apps/urls/Xow_url_parser__proto_tst.java
@@ -17,8 +17,8 @@ along with this program. If not, see .
*/
package gplx.xowa.apps.urls; import gplx.*; import gplx.xowa.*; import gplx.xowa.apps.*;
import org.junit.*;
-public class Xoa_url_parser__proto_tst {
- private final Xoa_url_parser_fxt tstr = new Xoa_url_parser_fxt();
+public class Xow_url_parser__proto_tst {
+ private final Xow_url_parser_fxt tstr = new Xow_url_parser_fxt();
@Test public void Relative() {
tstr.Run_parse("//en.wikipedia.org/wiki/A").Chk_wiki("en.wikipedia.org").Chk_page("A");
}
diff --git a/400_xowa/src/gplx/xowa/apps/urls/Xoa_url_parser__qarg_tst.java b/400_xowa/src/gplx/xowa/apps/urls/Xow_url_parser__qarg_tst.java
similarity index 94%
rename from 400_xowa/src/gplx/xowa/apps/urls/Xoa_url_parser__qarg_tst.java
rename to 400_xowa/src/gplx/xowa/apps/urls/Xow_url_parser__qarg_tst.java
index ea928ef61..47ceff5b8 100644
--- a/400_xowa/src/gplx/xowa/apps/urls/Xoa_url_parser__qarg_tst.java
+++ b/400_xowa/src/gplx/xowa/apps/urls/Xow_url_parser__qarg_tst.java
@@ -17,8 +17,8 @@ along with this program. If not, see .
*/
package gplx.xowa.apps.urls; import gplx.*; import gplx.xowa.*; import gplx.xowa.apps.*;
import org.junit.*;
-public class Xoa_url_parser__qarg_tst {
- private final Xoa_url_parser_fxt tstr = new Xoa_url_parser_fxt();
+public class Xow_url_parser__qarg_tst {
+ private final Xow_url_parser_fxt tstr = new Xow_url_parser_fxt();
@Test public void Redirect() {
tstr.Run_parse("A?redirect=no").Chk_wiki("en.wikipedia.org").Chk_page("A").Chk_qargs("?redirect=no");
}
diff --git a/400_xowa/src/gplx/xowa/apps/urls/Xoa_url_parser__ttl_tst.java b/400_xowa/src/gplx/xowa/apps/urls/Xow_url_parser__ttl_tst.java
similarity index 94%
rename from 400_xowa/src/gplx/xowa/apps/urls/Xoa_url_parser__ttl_tst.java
rename to 400_xowa/src/gplx/xowa/apps/urls/Xow_url_parser__ttl_tst.java
index 3cc19ebc0..dc325a5fc 100644
--- a/400_xowa/src/gplx/xowa/apps/urls/Xoa_url_parser__ttl_tst.java
+++ b/400_xowa/src/gplx/xowa/apps/urls/Xow_url_parser__ttl_tst.java
@@ -17,8 +17,8 @@ along with this program. If not, see .
*/
package gplx.xowa.apps.urls; import gplx.*; import gplx.xowa.*; import gplx.xowa.apps.*;
import org.junit.*;
-public class Xoa_url_parser__ttl_tst {
- private final Xoa_url_parser_fxt tstr = new Xoa_url_parser_fxt();
+public class Xow_url_parser__ttl_tst {
+ private final Xow_url_parser_fxt tstr = new Xow_url_parser_fxt();
@Test public void Name() {
tstr.Run_parse("A").Chk_wiki("en.wikipedia.org").Chk_page("A");
}
diff --git a/400_xowa/src/gplx/xowa/apps/urls/Xoa_url_parser__url_bar_tst.java b/400_xowa/src/gplx/xowa/apps/urls/Xow_url_parser__url_bar_tst.java
similarity index 84%
rename from 400_xowa/src/gplx/xowa/apps/urls/Xoa_url_parser__url_bar_tst.java
rename to 400_xowa/src/gplx/xowa/apps/urls/Xow_url_parser__url_bar_tst.java
index 07e321ad7..19fe1ecad 100644
--- a/400_xowa/src/gplx/xowa/apps/urls/Xoa_url_parser__url_bar_tst.java
+++ b/400_xowa/src/gplx/xowa/apps/urls/Xow_url_parser__url_bar_tst.java
@@ -17,25 +17,25 @@ along with this program. If not, see .
*/
package gplx.xowa.apps.urls; import gplx.*; import gplx.xowa.*; import gplx.xowa.apps.*;
import org.junit.*;
-public class Xoa_url_parser__url_bar_tst {
- private final Xoa_url_parser_fxt tstr = new Xoa_url_parser_fxt();
+public class Xow_url_parser__url_bar_tst {
+ private final Xow_url_parser_fxt tstr = new Xow_url_parser_fxt();
@Test public void Basic() {
- tstr.Run_parse_from_url_bar("Page_1").Chk_to_str("en.wikipedia.org/wiki/Page_1"); // basic
+ tstr.Run_parse_from_url_bar("Page_1").Chk_to_str("en.wikipedia.org/wiki/Page_1"); // basic
}
@Test public void Lang() {
tstr.Prep_add_xwiki_to_user("uk", "uk.wikipedia.org");
- tstr.Run_parse_from_url_bar("uk").Chk_to_str("en.wikipedia.org/wiki/uk"); // lang-like page (uk=Ukraine) should not try to open wiki; DATE:2014-02-07
+ tstr.Run_parse_from_url_bar("uk").Chk_to_str("en.wikipedia.org/wiki/Uk"); // lang-like page (uk=Ukraine) should not try to open wiki; DATE:2014-02-07
}
@Test public void Lang_like() {
tstr.Prep_add_xwiki_to_user("uk", "uk.wikipedia.org", "http://~{1}.wikipedia.org"); // NOTE: fmt needed for Type_is_lang
- tstr.Run_parse_from_url_bar("uk/A").Chk_to_str("en.wikipedia.org/wiki/uk/A"); // uk/A should not try be interpreted as wiki="uk" page="A"; DATE:2014-04-26
+ tstr.Run_parse_from_url_bar("uk/A").Chk_to_str("en.wikipedia.org/wiki/Uk/A"); // uk/A should not try be interpreted as wiki="uk" page="A"; DATE:2014-04-26
}
@Test public void Macro() {
tstr.Prep_add_xwiki_to_user("fr.wikisource.org");
tstr.Run_parse_from_url_bar("fr.s:Auteur:Shakespeare").Chk_to_str("fr.wikisource.org/wiki/Auteur:Shakespeare"); // url_macros
}
@Test public void Main_page__home() {
- tstr.Run_parse_from_url_bar("home").Chk_to_str("en.wikipedia.org/wiki/home"); // home should go to current wiki's home; DATE:2014-02-09
+ tstr.Run_parse_from_url_bar("home").Chk_to_str("en.wikipedia.org/wiki/Home"); // home should go to current wiki's home; DATE:2014-02-09
tstr.Run_parse_from_url_bar("home/wiki/Main_Page").Chk_to_str("home/wiki/Main_Page"); // home Main_Page should go to home; DATE:2014-02-09
}
@Test public void Main_page__zhw() {
@@ -52,7 +52,7 @@ public class Xoa_url_parser__url_bar_tst {
tstr.Run_parse_from_url_bar("A." ).Chk_to_str("en.wikipedia.org/wiki/A."); // bounds-check: 1
tstr.Run_parse_from_url_bar("A.b" ).Chk_to_str("en.wikipedia.org/wiki/A.b"); // bounds-check: 2
tstr.Run_parse_from_url_bar("A.b.m." ).Chk_to_str("en.wikipedia.org/wiki/A.b.m."); // false-match
- tstr.Run_parse_from_url_bar("en.x.wikipedia.org/wiki/A" ).Chk_to_str("en.wikipedia.org/wiki/en.x.wikipedia.org/wiki/A"); // fail
+ tstr.Run_parse_from_url_bar("en.x.wikipedia.org/wiki/A" ).Chk_to_str("en.wikipedia.org/wiki/En.x.wikipedia.org/wiki/A"); // fail
}
@Test public void Missing_page() {
tstr.Run_parse_from_url_bar("http://a.org").Chk_is_null(); // unknown wiki; return null;
@@ -60,6 +60,9 @@ public class Xoa_url_parser__url_bar_tst {
}
@Test public void Invalid_names() {
tstr.Run_parse_from_url_bar("http://a/b/c").Chk_is_null(); // unknown url
- tstr.Run_parse_from_url_bar("war").Chk_to_str("en.wikipedia.org/wiki/war"); // word looks like lang, but is actually page; default to current
+ tstr.Run_parse_from_url_bar("war").Chk_to_str("en.wikipedia.org/wiki/War"); // word looks like lang, but is actually page; default to current
+ }
+ @Test public void Proper_case() {
+ tstr.Run_parse_from_url_bar("a" ).Chk_to_str("en.wikipedia.org/wiki/A"); // "a" -> "A" x> "a"
}
}
diff --git a/400_xowa/src/gplx/xowa/apps/urls/Xoa_url_parser__wiki_tst.java b/400_xowa/src/gplx/xowa/apps/urls/Xow_url_parser__wiki_tst.java
similarity index 93%
rename from 400_xowa/src/gplx/xowa/apps/urls/Xoa_url_parser__wiki_tst.java
rename to 400_xowa/src/gplx/xowa/apps/urls/Xow_url_parser__wiki_tst.java
index e17b3f610..c32ac95c0 100644
--- a/400_xowa/src/gplx/xowa/apps/urls/Xoa_url_parser__wiki_tst.java
+++ b/400_xowa/src/gplx/xowa/apps/urls/Xow_url_parser__wiki_tst.java
@@ -17,8 +17,8 @@ along with this program. If not, see .
*/
package gplx.xowa.apps.urls; import gplx.*; import gplx.xowa.*; import gplx.xowa.apps.*;
import org.junit.*;
-public class Xoa_url_parser__wiki_tst {
- private final Xoa_url_parser_fxt tstr = new Xoa_url_parser_fxt();
+public class Xow_url_parser__wiki_tst {
+ private final Xow_url_parser_fxt tstr = new Xow_url_parser_fxt();
@Test public void Basic() {
tstr.Run_parse("en.wikipedia.org/wiki/A").Chk_tid(Xoa_url_.Tid_page).Chk_wiki("en.wikipedia.org").Chk_page("A");
}
diff --git a/400_xowa/src/gplx/xowa/apps/urls/Xoa_url_parser__xcmd_tst.java b/400_xowa/src/gplx/xowa/apps/urls/Xow_url_parser__xcmd_tst.java
similarity index 90%
rename from 400_xowa/src/gplx/xowa/apps/urls/Xoa_url_parser__xcmd_tst.java
rename to 400_xowa/src/gplx/xowa/apps/urls/Xow_url_parser__xcmd_tst.java
index 6997c2e34..4affd34b6 100644
--- a/400_xowa/src/gplx/xowa/apps/urls/Xoa_url_parser__xcmd_tst.java
+++ b/400_xowa/src/gplx/xowa/apps/urls/Xow_url_parser__xcmd_tst.java
@@ -17,8 +17,8 @@ along with this program. If not, see .
*/
package gplx.xowa.apps.urls; import gplx.*; import gplx.xowa.*; import gplx.xowa.apps.*;
import org.junit.*;
-public class Xoa_url_parser__xcmd_tst {
- private final Xoa_url_parser_fxt tstr = new Xoa_url_parser_fxt();
+public class Xow_url_parser__xcmd_tst {
+ private final Xow_url_parser_fxt tstr = new Xow_url_parser_fxt();
@Test public void Basic() {
tstr.Run_parse("xowa-cmd:xowa.app.version").Chk_tid(Xoa_url_.Tid_xcmd).Chk_page("xowa.app.version");
}
diff --git a/400_xowa/src/gplx/xowa/apps/urls/Xoa_url_parser__xwiki_tst.java b/400_xowa/src/gplx/xowa/apps/urls/Xow_url_parser__xwiki_tst.java
similarity index 96%
rename from 400_xowa/src/gplx/xowa/apps/urls/Xoa_url_parser__xwiki_tst.java
rename to 400_xowa/src/gplx/xowa/apps/urls/Xow_url_parser__xwiki_tst.java
index 551e61d91..5e5a48792 100644
--- a/400_xowa/src/gplx/xowa/apps/urls/Xoa_url_parser__xwiki_tst.java
+++ b/400_xowa/src/gplx/xowa/apps/urls/Xow_url_parser__xwiki_tst.java
@@ -17,8 +17,8 @@ along with this program. If not, see .
*/
package gplx.xowa.apps.urls; import gplx.*; import gplx.xowa.*; import gplx.xowa.apps.*;
import org.junit.*; import gplx.xowa.wikis.nss.*;
-public class Xoa_url_parser__xwiki_tst {
- private final Xoa_url_parser_fxt tstr = new Xoa_url_parser_fxt();
+public class Xow_url_parser__xwiki_tst {
+ private final Xow_url_parser_fxt tstr = new Xow_url_parser_fxt();
@Test public void Commons() { // PURPOSE: "C" was being picked up as an xwiki to commons; PAGE:no.b:C/Variabler; DATE:2014-10-14
tstr.Prep_add_xwiki_to_user("c", "commons.wikimedia.org"); // add alias of "c"
tstr.Run_parse("C/D").Chk_tid(Xoa_url_.Tid_page).Chk_wiki("en.wikipedia.org").Chk_page("C/D"); // should use current wiki (enwiki), not xwiki to commons; also, page should be "C/D", not "D"
diff --git a/400_xowa/src/gplx/xowa/apps/urls/Xoa_url_parser_fxt.java b/400_xowa/src/gplx/xowa/apps/urls/Xow_url_parser_fxt.java
similarity index 58%
rename from 400_xowa/src/gplx/xowa/apps/urls/Xoa_url_parser_fxt.java
rename to 400_xowa/src/gplx/xowa/apps/urls/Xow_url_parser_fxt.java
index 072477cbf..32f5379e8 100644
--- a/400_xowa/src/gplx/xowa/apps/urls/Xoa_url_parser_fxt.java
+++ b/400_xowa/src/gplx/xowa/apps/urls/Xow_url_parser_fxt.java
@@ -17,12 +17,12 @@ along with this program. If not, see .
*/
package gplx.xowa.apps.urls; import gplx.*; import gplx.xowa.*; import gplx.xowa.apps.*;
import gplx.xowa.wikis.nss.*;
-public class Xoa_url_parser_fxt {
- protected final Xoae_app app; protected final Xowe_wiki cur_wiki;
- protected final Xoa_url_parser parser;
+public class Xow_url_parser_fxt {
+ protected final Xoae_app app; protected final Xowe_wiki cur_wiki;
+ protected final Xow_url_parser parser;
protected Xoa_url actl_url;
- public Xoa_url_parser_fxt() {
- this.app = Xoa_app_fxt.app_();
+ public Xow_url_parser_fxt() {
+ this.app = Xoa_app_fxt.Make__app__edit();
this.cur_wiki = Prep_create_wiki("en.wikipedia.org");
this.parser = cur_wiki.Utl__url_parser();
this.actl_url = Xoa_url.blank(); // default to blank for subclasses
@@ -30,53 +30,53 @@ public class Xoa_url_parser_fxt {
public Xoae_app App() {return app;}
public Xowe_wiki Wiki() {return cur_wiki;}
public Xowe_wiki Prep_create_wiki(String domain) {
- Xowe_wiki rv = Xoa_app_fxt.wiki_(app, domain);
+ Xowe_wiki rv = Xoa_app_fxt.Make__wiki__edit(app, domain);
Prep_add_xwiki_to_user(domain);
return rv;
}
- public Xoa_url_parser_fxt Prep_add_xwiki_to_wiki(String alias, String domain) {return Prep_xwiki(cur_wiki, alias, domain, null);}
- public Xoa_url_parser_fxt Prep_add_xwiki_to_wiki(String alias, String domain, String fmt) {return Prep_xwiki(cur_wiki, alias, domain, fmt);}
- public Xoa_url_parser_fxt Prep_add_xwiki_to_user(String domain) {return Prep_xwiki(app.Usere().Wiki(), domain, domain, null);}
- public Xoa_url_parser_fxt Prep_add_xwiki_to_user(String alias, String domain) {return Prep_xwiki(app.Usere().Wiki(), alias, domain, null);}
- public Xoa_url_parser_fxt Prep_add_xwiki_to_user(String alias, String domain, String fmt) {return Prep_xwiki(app.Usere().Wiki(), alias, domain, fmt);}
- public Xoa_url_parser_fxt Prep_xwiki(Xow_wiki wiki, String alias, String domain, String fmt) {
+ public Xow_url_parser_fxt Prep_add_xwiki_to_wiki(String alias, String domain) {return Prep_xwiki(cur_wiki, alias, domain, null);}
+ public Xow_url_parser_fxt Prep_add_xwiki_to_wiki(String alias, String domain, String fmt) {return Prep_xwiki(cur_wiki, alias, domain, fmt);}
+ public Xow_url_parser_fxt Prep_add_xwiki_to_user(String domain) {return Prep_xwiki(app.Usere().Wiki(), domain, domain, null);}
+ public Xow_url_parser_fxt Prep_add_xwiki_to_user(String alias, String domain) {return Prep_xwiki(app.Usere().Wiki(), alias, domain, null);}
+ public Xow_url_parser_fxt Prep_add_xwiki_to_user(String alias, String domain, String fmt) {return Prep_xwiki(app.Usere().Wiki(), alias, domain, fmt);}
+ public Xow_url_parser_fxt Prep_xwiki(Xow_wiki wiki, String alias, String domain, String fmt) {
wiki.Xwiki_mgr().Add_by_atrs(Bry_.new_u8(alias), Bry_.new_u8(domain), Bry_.new_u8_safe(fmt));
return this;
}
public Xow_ns_mgr Prep_get_ns_mgr_from_meta(String wiki) {
return app.Dbmeta_mgr().Ns__get_or_load(Bry_.new_u8(wiki));
}
- public Xoa_url_parser_fxt Run_parse(String actl_str) {return Run_parse(cur_wiki, actl_str);}
- public Xoa_url_parser_fxt Run_parse(Xow_wiki wiki, String actl_str) {
+ public Xow_url_parser_fxt Run_parse(String actl_str) {return Run_parse(cur_wiki, actl_str);}
+ public Xow_url_parser_fxt Run_parse(Xow_wiki wiki, String actl_str) {
this.actl_url = wiki.Utl__url_parser().Parse(Bry_.new_u8(actl_str));
return this;
}
- public Xoa_url_parser_fxt Run_parse_reuse(String actl_str) {
+ public Xow_url_parser_fxt Run_parse_reuse(String actl_str) {
this.actl_url = parser.Parse(Bry_.new_u8(actl_str));
return this;
}
- public Xoa_url_parser_fxt Run_parse_from_url_bar(String raw) {
+ public Xow_url_parser_fxt Run_parse_from_url_bar(String raw) {
this.actl_url = parser.Parse_by_urlbar_or_null(raw);
return this;
}
- public Xoa_url_parser_fxt Chk_tid(int v) {Tfds.Eq_int(v, actl_url.Tid() , "tid"); return this;}
- public Xoa_url_parser_fxt Chk_is_null() {Tfds.Eq_bool(true, actl_url == null); return this;}
- public Xoa_url_parser_fxt Chk_vnt(String v) {Tfds.Eq_str(v, actl_url.Vnt_bry() , "vnt"); return this;}
- public Xoa_url_parser_fxt Chk_wiki(String v) {Tfds.Eq_str(v, actl_url.Wiki_bry() , "wiki"); return this;}
- public Xoa_url_parser_fxt Chk_wiki_is_missing(boolean v) {Tfds.Eq_bool(v, actl_url.Wiki_is_missing(), "wiki_is_missing"); return this;}
- public Xoa_url_parser_fxt Chk_page(String v) {Tfds.Eq_str(v, actl_url.Page_bry() , "page"); return this;}
- public Xoa_url_parser_fxt Chk_qargs(String v) {Tfds.Eq_str(v, actl_url.Qargs_mgr().To_bry(), "qargs"); return this;}
- public Xoa_url_parser_fxt Chk_page_is_main_y() {return Chk_page_is_main(Bool_.Y);}
- public Xoa_url_parser_fxt Chk_page_is_main_n() {return Chk_page_is_main(Bool_.N);}
- public Xoa_url_parser_fxt Chk_page_is_main(boolean v) {Tfds.Eq_bool(v, actl_url.Page_is_main() , "page_is_main"); return this;}
- public Xoa_url_parser_fxt Chk_anch(String v) {Tfds.Eq_str(v, actl_url.Anch_bry(), "anch"); return this;}
- public Xoa_url_parser_fxt Chk_action_is_edit_y() {return Chk_action_is_edit_(Bool_.Y);}
- public Xoa_url_parser_fxt Chk_action_is_edit_n() {return Chk_action_is_edit_(Bool_.N);}
- private Xoa_url_parser_fxt Chk_action_is_edit_(boolean v) {Tfds.Eq_bool(v, actl_url.Qargs_mgr().Match(Xoa_url_.Qarg__action, Xoa_url_.Qarg__action__edit), "action_is_edit"); return this;}
- public Xoa_url_parser_fxt Chk_to_str(String v) {return Chk_to_str(Bool_.Y, v);}
- public Xoa_url_parser_fxt Chk_to_str(boolean full, String v) {Tfds.Eq_str(v, actl_url.To_bry(full, Bool_.Y), "To_bry"); return this;}
- public Xoa_url_parser_fxt Chk_build_str_is_same() {
- Xoa_url_parser parser = new Xoa_url_parser(cur_wiki);
+ public Xow_url_parser_fxt Chk_tid(int v) {Tfds.Eq_int(v, actl_url.Tid() , "tid"); return this;}
+ public Xow_url_parser_fxt Chk_is_null() {Tfds.Eq_bool(true, actl_url == null); return this;}
+ public Xow_url_parser_fxt Chk_vnt(String v) {Tfds.Eq_str(v, actl_url.Vnt_bry() , "vnt"); return this;}
+ public Xow_url_parser_fxt Chk_wiki(String v) {Tfds.Eq_str(v, actl_url.Wiki_bry() , "wiki"); return this;}
+ public Xow_url_parser_fxt Chk_wiki_is_missing(boolean v) {Tfds.Eq_bool(v, actl_url.Wiki_is_missing(), "wiki_is_missing"); return this;}
+ public Xow_url_parser_fxt Chk_page(String v) {Tfds.Eq_str(v, actl_url.Page_bry() , "page"); return this;}
+ public Xow_url_parser_fxt Chk_qargs(String v) {Tfds.Eq_str(v, actl_url.Qargs_mgr().To_bry(), "qargs"); return this;}
+ public Xow_url_parser_fxt Chk_page_is_main_y() {return Chk_page_is_main(Bool_.Y);}
+ public Xow_url_parser_fxt Chk_page_is_main_n() {return Chk_page_is_main(Bool_.N);}
+ public Xow_url_parser_fxt Chk_page_is_main(boolean v) {Tfds.Eq_bool(v, actl_url.Page_is_main() , "page_is_main"); return this;}
+ public Xow_url_parser_fxt Chk_anch(String v) {Tfds.Eq_str(v, actl_url.Anch_bry(), "anch"); return this;}
+ public Xow_url_parser_fxt Chk_action_is_edit_y() {return Chk_action_is_edit_(Bool_.Y);}
+ public Xow_url_parser_fxt Chk_action_is_edit_n() {return Chk_action_is_edit_(Bool_.N);}
+ private Xow_url_parser_fxt Chk_action_is_edit_(boolean v) {Tfds.Eq_bool(v, actl_url.Qargs_mgr().Match(Xoa_url_.Qarg__action, Xoa_url_.Qarg__action__edit), "action_is_edit"); return this;}
+ public Xow_url_parser_fxt Chk_to_str(String v) {return Chk_to_str(Bool_.Y, v);}
+ public Xow_url_parser_fxt Chk_to_str(boolean full, String v) {Tfds.Eq_str(v, actl_url.To_bry(full, Bool_.Y), "To_bry"); return this;}
+ public Xow_url_parser_fxt Chk_build_str_is_same() {
+ Xow_url_parser parser = new Xow_url_parser(cur_wiki);
Tfds.Eq_str(actl_url.Raw(), parser.Build_str(actl_url), "build_str");
return this;
}
diff --git a/400_xowa/src/gplx/xowa/bldrs/Db_mgr_fxt.java b/400_xowa/src/gplx/xowa/bldrs/Db_mgr_fxt.java
index 7ecffc030..f1cd3e61e 100644
--- a/400_xowa/src/gplx/xowa/bldrs/Db_mgr_fxt.java
+++ b/400_xowa/src/gplx/xowa/bldrs/Db_mgr_fxt.java
@@ -17,7 +17,7 @@ along with this program. If not, see .
*/
package gplx.xowa.bldrs; import gplx.*; import gplx.xowa.*;
import gplx.core.primitives.*; import gplx.core.strings.*;
-import gplx.dbs.*; import gplx.dbs.qrys.*; import gplx.xowa.wikis.dbs.*; import gplx.xowa.specials.search.*; import gplx.xowa.wikis.ctgs.*;
+import gplx.dbs.*; import gplx.dbs.qrys.*; import gplx.xowa.wikis.dbs.*; import gplx.xowa.wikis.ctgs.*;
import gplx.xowa.wikis.nss.*;
import gplx.xowa.wikis.data.*; import gplx.xowa.wikis.data.tbls.*; import gplx.xowa.bldrs.infos.*;
public class Db_mgr_fxt {
@@ -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(Xobd_wkr wkr) {bldr_fxt.Run(wkr); 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_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) {
@@ -65,13 +65,6 @@ public class Db_mgr_fxt {
wiki.Db_mgr_as_sql().Load_mgr().Load_page(actl.Id_(page_id), ns, false);
Tfds.Eq(expd, String_.new_a7(actl.Text()));
}
- public void Test_search(String search_word_str, int... expd) {
- Xowe_wiki wiki = bldr_fxt.Wiki();
- List_adp rv = List_adp_.new_();
- byte[] search_word_bry = Bry_.new_a7(search_word_str);
- wiki.Db_mgr_as_sql().Load_mgr().Load_search(Cancelable_.Never, rv, search_word_bry, 100);
- Tfds.Eq_ary(expd, Xto_int_ary(rv));
- }
int[] Xto_int_ary(List_adp rslts) {
int len = rslts.Count();
int[] rv = new int[len];
diff --git a/400_xowa/src/gplx/xowa/bldrs/Xob_base_fxt.java b/400_xowa/src/gplx/xowa/bldrs/Xob_base_fxt.java
index 8421fe8b5..5750b75e5 100644
--- a/400_xowa/src/gplx/xowa/bldrs/Xob_base_fxt.java
+++ b/400_xowa/src/gplx/xowa/bldrs/Xob_base_fxt.java
@@ -20,8 +20,8 @@ import gplx.core.ios.*; import gplx.xowa.bldrs.*; import gplx.xowa.wikis.data.tb
public class Xob_base_fxt {
public Xob_base_fxt Clear() {
if (app == null) {
- app = Xoa_app_fxt.app_();
- wiki = Xoa_app_fxt.wiki_tst_(app);
+ app = Xoa_app_fxt.Make__app__edit();
+ wiki = Xoa_app_fxt.Make__wiki__edit(app);
bldr = Xoa_app_fxt.bldr_(app);
}
this.Init_(bldr, wiki);
@@ -66,7 +66,7 @@ public class Xob_base_fxt {
cmd.Cmd_run();
cmd.Cmd_end();
}
- public static void Run_wkr(Xob_bldr bldr, Xobd_wkr wkr, Xowd_page_itm[] page_ary) {
+ public static void Run_wkr(Xob_bldr bldr, Xob_page_wkr wkr, Xowd_page_itm[] page_ary) {
wkr.Wkr_bgn(bldr);
int page_ary_len = page_ary.length;
for (int i = 0; i < page_ary_len; i++) {
diff --git a/400_xowa/src/gplx/xowa/bldrs/Xob_bldr.java b/400_xowa/src/gplx/xowa/bldrs/Xob_bldr.java
index 990a9a5bf..086dff5fd 100644
--- a/400_xowa/src/gplx/xowa/bldrs/Xob_bldr.java
+++ b/400_xowa/src/gplx/xowa/bldrs/Xob_bldr.java
@@ -26,8 +26,8 @@ public class Xob_bldr implements GfoInvkAble {
this.import_marker = new Xob_import_marker();
this.wiki_cfg_bldr = new Xob_wiki_cfg_bldr(this);
}
- public Xoae_app App() {return app;} private final Xoae_app app;
- public Xob_cmd_mgr Cmd_mgr() {return cmd_mgr;} private final Xob_cmd_mgr cmd_mgr;
+ public Xoae_app App() {return app;} private final Xoae_app app;
+ public Xob_cmd_mgr Cmd_mgr() {return cmd_mgr;} private final Xob_cmd_mgr cmd_mgr;
public Gfo_usr_dlg Usr_dlg() {return app.Usr_dlg();}
public int Sort_mem_len() {return sort_mem_len;} public Xob_bldr Sort_mem_len_(int v) {sort_mem_len = v; return this;} private int sort_mem_len = 16 * Io_mgr.Len_mb;
public int Dump_fil_len() {return dump_fil_len;} public Xob_bldr Dump_fil_len_(int v) {dump_fil_len = v; return this;} private int dump_fil_len = 1 * Io_mgr.Len_mb;
@@ -98,8 +98,9 @@ public class Xob_bldr implements GfoInvkAble {
private static final String
Invk_cmds = "cmds", Invk_wiki_cfg_bldr = "wiki_cfg_bldr"
, Invk_pause_at_end_ = "pause_at_end_", Invk_sort_mem_len_ = "sort_mem_len_", Invk_dump_fil_len_ = "dump_fil_len_", Invk_make_fil_len_ = "make_fil_len_"
- , Invk_run = "run", Invk_cancel = "cancel"
+ , Invk_cancel = "cancel"
;
+ public static final String Invk_run = "run";
}
/*
. make_fil_len: max size of made file; EX: /id/..../0000000001.csv will have max len of 64 KB
diff --git a/400_xowa/src/gplx/xowa/bldrs/Xob_cmd_keys.java b/400_xowa/src/gplx/xowa/bldrs/Xob_cmd_keys.java
index 1875ffd57..66830572d 100644
--- a/400_xowa/src/gplx/xowa/bldrs/Xob_cmd_keys.java
+++ b/400_xowa/src/gplx/xowa/bldrs/Xob_cmd_keys.java
@@ -32,7 +32,7 @@ public class Xob_cmd_keys {
, Key_wiki_image = "wiki.image" // "wiki.image"
, Key_wiki_page_dump_make = "wiki.page_dump.make" // "file.page_dump"
, Key_wiki_page_dump_drop = "wiki.page_dump.drop"
- , Key_wiki_pagelink = "wiki.pagelink"
+ , Key_wiki_page_link = "wiki.page_link"
, Key_file_lnki_temp = "file.lnki_temp"
, Key_file_lnki_regy = "file.lnki_regy"
, Key_file_page_regy = "file.page_regy"
@@ -50,6 +50,9 @@ public class Xob_cmd_keys {
, Key_util_download = "util.download" // "file.download"
, Key_util_xml_dump = "util.xml_dump"
, Key_util_random = "util.random"
+ , Key_util_sqlite_normalize = "util.sqlite.normalize"
+ , Key_util_alert = "util.alert"
+ , Key_util_delete = "util.delete"
, Key_wbase_json_dump = "wbase.json_dump"
, Key_wbase_qid = "wbase.qid" // "text.wdata.qid"
, Key_wbase_pid = "wbase.pid" // "text.wdata.pid"
@@ -58,6 +61,9 @@ public class Xob_cmd_keys {
, Key_diff_build = "diff.build"
, Key_diff_merge = "diff.merge"
, Key_text_delete_page = "text.delete_page"
+ , Key_search__page__page_score = "search.page__page_score"
+ , Key_search__link__link_score = "search.link__link_score"
+ , Key_search__word__link_count = "search.word__link_count"
, Key_tdb_text_init = "tdb.text.init" // "core.init"
, Key_tdb_make_page = "tdb.text.page" // "core.make_page"
diff --git a/400_xowa/src/gplx/xowa/bldrs/Xob_cmd_mgr.java b/400_xowa/src/gplx/xowa/bldrs/Xob_cmd_mgr.java
index 47fff3d4b..7a0495945 100644
--- a/400_xowa/src/gplx/xowa/bldrs/Xob_cmd_mgr.java
+++ b/400_xowa/src/gplx/xowa/bldrs/Xob_cmd_mgr.java
@@ -21,6 +21,7 @@ import gplx.xowa.wikis.*; import gplx.xowa.xtns.wdatas.imports.*;
import gplx.xowa.bldrs.cmds.texts.*; import gplx.xowa.bldrs.cmds.texts.sqls.*; import gplx.xowa.bldrs.cmds.texts.tdbs.*; import gplx.xowa.bldrs.cmds.files.*; import gplx.xowa.bldrs.cmds.ctgs.*; import gplx.xowa.bldrs.cmds.utils.*; import gplx.xowa.bldrs.cmds.wikis.*;
import gplx.xowa.bldrs.cmds.diffs.*;
import gplx.xowa.files.origs.*; import gplx.xowa.htmls.core.bldrs.*;
+import gplx.xowa.addons.searchs.dbs.bldrs.*;
public class Xob_cmd_mgr implements GfoInvkAble {
public Xob_cmd_mgr(Xob_bldr bldr) {this.bldr = bldr;} private Xob_bldr bldr;
public void Clear() {list.Clear(); dump_rdrs.Clear();}
@@ -31,8 +32,8 @@ 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 Xob_search_sql_wkr(bldr, wiki));
- else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_text_search_cmd)) return Add(new Xob_search_sql_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.searchs.dbs.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));
else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_text_cat_link)) return Add(new Xob_categorylinks_sql(bldr, wiki));
@@ -43,7 +44,7 @@ public class Xob_cmd_mgr implements GfoInvkAble {
else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_wiki_page_dump_drop)) return Add(new Xob_page_dump_cmd_drop(bldr, wiki));
else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_wiki_redirect)) return Add(new Xob_redirect_cmd(bldr, wiki));
else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_wiki_image)) return Add(new Xob_image_cmd(bldr, wiki));
- else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_wiki_pagelink)) return Add(new Xob_pagelinks_parser_cmd(bldr, wiki));
+ else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_wiki_page_link)) return Add(new gplx.xowa.addons.pagelinks.bldrs.Pglnk_bldr_cmd(bldr, wiki));
else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_file_lnki_temp)) return Add(new Xob_lnki_temp_wkr(bldr, wiki));
else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_file_lnki_regy)) return Add(new Xob_lnki_regy_cmd(bldr, wiki));
else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_file_page_regy)) return Add(new Xob_page_regy_cmd(bldr, wiki));
@@ -57,13 +58,19 @@ public class Xob_cmd_mgr implements GfoInvkAble {
else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_file_xfer_update)) return Add(new Xob_xfer_update_cmd(bldr, wiki));
else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_html_redlinks)) return Add(new Xob_redlink_mkr_cmd(bldr, wiki));
else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_util_cleanup)) return Add(new Xob_cleanup_cmd(bldr, wiki));
- else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_util_download)) return Add(new Xob_download_wkr(bldr, wiki));
+ else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_util_delete)) return Add(new Xob_delete_cmd(bldr, wiki));
+ 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_json_dump)) return Add(new Xob_wbase_json_dump_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_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));
+ else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_search__page__page_score)) return Add(new gplx.xowa.addons.searchs.dbs.bldrs.cmds.Srch__page__page_score(bldr, wiki));
+ else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_search__link__link_score)) return Add(new gplx.xowa.addons.searchs.dbs.bldrs.cmds.Srch__link__link_score(bldr, wiki));
+ else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_search__word__link_count)) return Add(new gplx.xowa.addons.searchs.dbs.bldrs.cmds.Srch__word__link_count(bldr, wiki));
+ else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_util_sqlite_normalize)) return Add(new gplx.xowa.addons.sqlite_utils.bldrs.Sqlite_percentile_cmd(bldr, wiki));
+
else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_tdb_text_init)) return Add(new Xob_init_tdb(bldr, wiki));
else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_tdb_make_page)) return Xml_rdr_direct_add(wiki, new Xob_page_txt(bldr, wiki));
else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_tdb_make_id)) return Xml_rdr_direct_add(wiki, new Xob_make_id_wkr(bldr, wiki));
@@ -86,21 +93,21 @@ public class Xob_cmd_mgr implements GfoInvkAble {
else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_deploy_copy)) return Add(new Xob_deploy_copy_cmd(bldr, wiki));
else throw Err_.new_unhandled(cmd_key);
}
- private Xobd_wkr Xml_rdr_direct_add(Xowe_wiki wiki, Xobd_wkr wkr) {
- Xobd_rdr dump_rdr = Xml_rdr_get(wiki);
+ private Xob_page_wkr Xml_rdr_direct_add(Xowe_wiki wiki, Xob_page_wkr wkr) {
+ Xob_page_wkr_cmd dump_rdr = Xml_rdr_get(wiki);
dump_rdr.Wkr_add(wkr);
return wkr;
}
private Xobd_parser_wkr Xml_rdr_parser_add(Xowe_wiki wiki, Xobd_parser_wkr wkr) {
- Xobd_rdr dump_rdr = Xml_rdr_get(wiki);
+ Xob_page_wkr_cmd dump_rdr = Xml_rdr_get(wiki);
dump_rdr.Page_parser_assert().Wkr_add(wkr);
return wkr;
}
- private Xobd_rdr Xml_rdr_get(Xowe_wiki wiki) {
+ private Xob_page_wkr_cmd Xml_rdr_get(Xowe_wiki wiki) {
byte[] wiki_key = wiki.Domain_bry();
- Xobd_rdr rv = (Xobd_rdr)dump_rdrs.Get_by(dump_rdrs_ref.Val_(wiki_key));
+ Xob_page_wkr_cmd rv = (Xob_page_wkr_cmd)dump_rdrs.Get_by(dump_rdrs_ref.Val_(wiki_key));
if (rv == null) {
- rv = new Xobd_rdr(bldr, wiki);
+ rv = new Xob_page_wkr_cmd(bldr, wiki);
dump_rdrs.Add(Bry_obj_ref.New(wiki_key), rv);
this.Add(rv);
}
@@ -130,7 +137,7 @@ public class Xob_cmd_mgr implements GfoInvkAble {
int args_len = m.Args_count();
String[] cmds = new String[args_len - 1]; // -1 b/c 1st arg is wiki
for (int i = 1; i < args_len; i++) {
- KeyVal kv = m.Args_getAt(i);
+ Keyval kv = m.Args_getAt(i);
cmds[i - 1] = kv.Val_to_str_or_empty();
}
return Add_many(wiki, cmds);
@@ -142,6 +149,11 @@ public class Xob_cmd_mgr implements GfoInvkAble {
rv = Add_cmd(wiki, cmds[i]);
return rv;
}
+ public void Add_cmd_ary(Xob_cmd... cmds_ary) {
+ int cmds_len = cmds_ary.length;
+ for (int i = 0; i < cmds_len; ++i)
+ this.Add(cmds_ary[i]);
+ }
private Xowe_wiki Wiki_get_or_make(GfoMsg m) {
byte[] wiki_key = m.ReadBry("v");
Xoae_wiki_mgr wiki_mgr = bldr.App().Wiki_mgr();
diff --git a/400_xowa/src/gplx/xowa/bldrs/Xob_db_file.java b/400_xowa/src/gplx/xowa/bldrs/Xob_db_file.java
index 9c912e870..4e777f80a 100644
--- a/400_xowa/src/gplx/xowa/bldrs/Xob_db_file.java
+++ b/400_xowa/src/gplx/xowa/bldrs/Xob_db_file.java
@@ -22,17 +22,17 @@ public class Xob_db_file {
this.url = url; this.conn = conn;
this.tbl__cfg = new Db_cfg_tbl(conn, "xowa_cfg");
}
- public Io_url Url() {return url;} private final Io_url url;
- public Db_conn Conn() {return conn;} private final Db_conn conn;
- public Db_cfg_tbl Tbl__cfg() {return tbl__cfg;} private final Db_cfg_tbl tbl__cfg;
-
- public static Xob_db_file new__file_make(Io_url dir) {return new_(dir, Name__file_make);}
- public static Xob_db_file new__page_regy(Io_url dir) {return new_(dir, Name__page_regy);}
- public static Xob_db_file new__wiki_image(Io_url dir) {return new_(dir, Name__wiki_image);}
- public static Xob_db_file new__wiki_redirect(Io_url dir) {return new_(dir, Name__wiki_redirect);}
- 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_(Io_url dir, String name) {
+ public Io_url Url() {return url;} private final Io_url url;
+ public Db_conn Conn() {return conn;} private final Db_conn conn;
+ public Db_cfg_tbl Tbl__cfg() {return tbl__cfg;} private final Db_cfg_tbl tbl__cfg;
+ public static Xob_db_file New__file_make(Io_url dir) {return New(dir, Name__file_make);}
+ public static Xob_db_file New__page_regy(Io_url dir) {return New(dir, Name__page_regy);}
+ public static Xob_db_file New__wiki_image(Io_url dir) {return New(dir, Name__wiki_image);}
+ public static Xob_db_file New__wiki_redirect(Io_url dir) {return New(dir, Name__wiki_redirect);}
+ 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(Io_url dir, String name) {
Io_url url = dir.GenSubFil(name);
Db_conn_bldr_data conn_data = Db_conn_bldr.Instance.Get_or_new(url);
Db_conn conn = conn_data.Conn();
@@ -45,5 +45,6 @@ public class Xob_db_file {
Name__wiki_image = "xowa.wiki.image.sqlite3", Name__wiki_redirect = "xowa.wiki.redirect.sqlite3"
, Name__file_make = "xowa.file.make.sqlite3", Name__temp_log = "xowa.temp.log.sqlite3"
, Name__page_regy = "xowa.file.page_regy.sqlite3", Name__redlink = "xowa.temp.redlink.sqlite3"
+ , Name__page_link = "xowa.wiki.pagelinks.sqlite3"
;
}
diff --git a/400_xowa/src/gplx/xowa/bldrs/Xob_fxt.java b/400_xowa/src/gplx/xowa/bldrs/Xob_fxt.java
index c121543a8..7bd474214 100644
--- a/400_xowa/src/gplx/xowa/bldrs/Xob_fxt.java
+++ b/400_xowa/src/gplx/xowa/bldrs/Xob_fxt.java
@@ -25,8 +25,8 @@ public class Xob_fxt {
}
public Xob_fxt Ctor(Io_url root_dir) {
Db_conn_bldr.Instance.Reg_default_sqlite();
- app = Xoa_app_fxt.app_("linux", root_dir);
- wiki = Xoa_app_fxt.wiki_tst_(app);
+ app = Xoa_app_fxt.Make__app__edit("linux", root_dir);
+ wiki = Xoa_app_fxt.Make__wiki__edit(app);
bldr = Xoa_app_fxt.bldr_(app);
return this;
}
@@ -73,7 +73,7 @@ public class Xob_fxt {
Run(wkr);
return this;
}
- private void Run_wkr(Xobd_wkr wkr) {
+ private void Run_wkr(Xob_page_wkr wkr) {
wkr.Wkr_bgn(bldr);
for (int i = 0; i < doc_ary.length; i++) {
Xowd_page_itm page = doc_ary[i];
@@ -111,10 +111,10 @@ public class Xob_fxt {
Run(parser_wkr);
return this;
}
- public Xob_fxt Run(Xobd_wkr... wkrs) {
+ public Xob_fxt Run(Xob_page_wkr... wkrs) {
int doc_ary_len = doc_ary.length;
for (int j = 0; j < wkrs.length; j++) {
- Xobd_wkr wkr = wkrs[j];
+ Xob_page_wkr wkr = wkrs[j];
wkr.Wkr_bgn(bldr);
for (int i = 0; i < doc_ary_len; i++) {
Xowd_page_itm page = doc_ary[i];
diff --git a/400_xowa/src/gplx/xowa/bldrs/Xob_ns_to_db_mgr.java b/400_xowa/src/gplx/xowa/bldrs/Xob_ns_to_db_mgr.java
index b143277f4..5ec298c95 100644
--- a/400_xowa/src/gplx/xowa/bldrs/Xob_ns_to_db_mgr.java
+++ b/400_xowa/src/gplx/xowa/bldrs/Xob_ns_to_db_mgr.java
@@ -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_at(db_id);
+ rv = db_mgr.Dbs__get_by_id(db_id);
long file_len = rv.File_len();
if (file_len + data_len > db_max) { // file is "full"
Term_tbl(rv);
diff --git a/400_xowa/src/gplx/xowa/bldrs/Xobd_wkr.java b/400_xowa/src/gplx/xowa/bldrs/Xob_page_wkr.java
similarity index 82%
rename from 400_xowa/src/gplx/xowa/bldrs/Xobd_wkr.java
rename to 400_xowa/src/gplx/xowa/bldrs/Xob_page_wkr.java
index 662a597ca..f31124b0b 100644
--- a/400_xowa/src/gplx/xowa/bldrs/Xobd_wkr.java
+++ b/400_xowa/src/gplx/xowa/bldrs/Xob_page_wkr.java
@@ -16,12 +16,9 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa.bldrs; import gplx.*; import gplx.xowa.*;
-import gplx.xowa.wikis.data.tbls.*;
-public interface Xobd_wkr extends GfoInvkAble {
+public interface Xob_page_wkr extends GfoInvkAble {
String Wkr_key();
- void Wkr_ini(Xob_bldr bldr);
void Wkr_bgn(Xob_bldr bldr);
- void Wkr_run(Xowd_page_itm page);
+ void Wkr_run(gplx.xowa.wikis.data.tbls.Xowd_page_itm page);
void Wkr_end();
- void Wkr_print();
}
diff --git a/400_xowa/src/gplx/xowa/bldrs/Xobd_rdr.java b/400_xowa/src/gplx/xowa/bldrs/Xob_page_wkr_cmd.java
similarity index 74%
rename from 400_xowa/src/gplx/xowa/bldrs/Xobd_rdr.java
rename to 400_xowa/src/gplx/xowa/bldrs/Xob_page_wkr_cmd.java
index b8ef25420..241414cab 100644
--- a/400_xowa/src/gplx/xowa/bldrs/Xobd_rdr.java
+++ b/400_xowa/src/gplx/xowa/bldrs/Xob_page_wkr_cmd.java
@@ -16,23 +16,15 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa.bldrs; import gplx.*; import gplx.xowa.*;
-import gplx.core.consoles.*;
-import gplx.core.ios.*;
-import gplx.xowa.wikis.nss.*;
-import gplx.xowa.bldrs.xmls.*; import gplx.xowa.wikis.data.tbls.*; import gplx.xowa.parsers.tmpls.*;
-public class Xobd_rdr implements Xob_cmd {
- private Xob_bldr bldr; private Xowe_wiki wiki;
- public Xobd_rdr(Xob_bldr bldr, Xowe_wiki wiki) {this.bldr = bldr; this.wiki = wiki;}
- public String Cmd_key() {return KEY;} public static final String KEY = "dump_mgr";
- public void Cmd_init(Xob_bldr bldr) {
- Xobd_wkr[] wkr_ary = (Xobd_wkr[])wkrs.To_ary(Xobd_wkr.class); int wkr_ary_len = wkr_ary.length;
- for (int i = 0; i < wkr_ary_len; i++)
- wkr_ary[i].Wkr_ini(bldr);
- }
- public void Cmd_bgn(Xob_bldr bldr) {}
- public void Cmd_end() {}
+import gplx.core.consoles.*; import gplx.core.ios.*;
+import gplx.xowa.wikis.nss.*; import gplx.xowa.wikis.data.tbls.*; import gplx.xowa.parsers.tmpls.*;
+import gplx.xowa.bldrs.xmls.*;
+public class Xob_page_wkr_cmd implements Xob_cmd {
+ private final Xob_bldr bldr; private final Xowe_wiki wiki;
+ public Xob_page_wkr_cmd(Xob_bldr bldr, Xowe_wiki wiki) {this.bldr = bldr; this.wiki = wiki;}
+ public String Cmd_key() {return KEY;} public static final String KEY = "dump_mgr";
public void Cmd_run() {
- Xobd_wkr[] wkr_ary = (Xobd_wkr[])wkrs.To_ary(Xobd_wkr.class); int wkr_ary_len = wkr_ary.length;
+ Xob_page_wkr[] wkr_ary = (Xob_page_wkr[])wkrs.To_ary(Xob_page_wkr.class); int wkr_ary_len = wkr_ary.length;
for (int i = 0; i < wkr_ary_len; i++)
wkr_ary[i].Wkr_bgn(bldr);
Io_buffer_rdr fil = Io_buffer_rdr.Null; Xowd_page_itm page = new Xowd_page_itm(); Xow_ns_mgr ns_mgr = wiki.Ns_mgr();
@@ -73,16 +65,15 @@ public class Xobd_rdr implements Xob_cmd {
}
finally {fil.Rls();}
bldr.Usr_dlg().Prog_none("", "", "reading completed: performing post-processing clean-up");
- for (int i = 0; i < wkr_ary_len; i++)
+ for (int i = wkr_ary_len - 1; i > -1; --i) // NOTE: release in reverse order; needed to make sure txns are released correctly
wkr_ary[i].Wkr_end();
}
- public void Cmd_term() {
- Xobd_wkr[] wkr_ary = (Xobd_wkr[])wkrs.To_ary(Xobd_wkr.class); int wkr_ary_len = wkr_ary.length;
- for (int i = 0; i < wkr_ary_len; i++)
- wkr_ary[i].Wkr_print();
- }
- public void Wkr_add(Xobd_wkr wkr) {wkrs.Add(wkr.Wkr_key(), wkr);} private Ordered_hash wkrs = Ordered_hash_.New();
- public Xobd_wkr Wkr_get(String key) {return (Xobd_wkr)wkrs.Get_by(key);}
+ public void Cmd_bgn(Xob_bldr bldr) {}
+ public void Cmd_init(Xob_bldr bldr) {}
+ public void Cmd_end() {}
+ public void Cmd_term() {}
+ public void Wkr_add(Xob_page_wkr wkr) {wkrs.Add(wkr.Wkr_key(), wkr);} private Ordered_hash wkrs = Ordered_hash_.New();
+ public Xob_page_wkr Wkr_get(String key) {return (Xob_page_wkr)wkrs.Get_by(key);}
public Xobd_parser Page_parser_assert() {
if (page_parser == null) {
page_parser = new Xobd_parser();
diff --git a/400_xowa/src/gplx/xowa/bldrs/Xobd_parser.java b/400_xowa/src/gplx/xowa/bldrs/Xobd_parser.java
index 3aace0108..5a2354f38 100644
--- a/400_xowa/src/gplx/xowa/bldrs/Xobd_parser.java
+++ b/400_xowa/src/gplx/xowa/bldrs/Xobd_parser.java
@@ -18,11 +18,10 @@ along with this program. If not, see .
package gplx.xowa.bldrs; import gplx.*; import gplx.xowa.*;
import gplx.core.btries.*;
import gplx.xowa.wikis.data.tbls.*;
-public class Xobd_parser implements Xobd_wkr {
+public class Xobd_parser implements Xob_page_wkr {
private Btrie_slim_mgr trie = Btrie_slim_mgr.ci_a7(); // NOTE:ci.ascii:MW_const.en; ctg.v1 assumes [[Category:
private List_adp wkr_list = List_adp_.new_();
public String Wkr_key() {return KEY;} static final String KEY = "page_parser";
- public void Wkr_ini(Xob_bldr bldr) {}
public void Wkr_add(Xobd_parser_wkr wkr) {wkr_list.Add(wkr);}
public void Wkr_bgn(Xob_bldr app) {
int wkr_list_len = wkr_list.Count();
@@ -57,7 +56,6 @@ public class Xobd_parser implements Xobd_wkr {
wkr.Wkr_end();
}
}
- public void Wkr_print() {}
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
throw Err_.new_unimplemented();
}
diff --git a/400_xowa/src/gplx/xowa/bldrs/cfgs/Xob_wiki_cfg_bldr_tst.java b/400_xowa/src/gplx/xowa/bldrs/cfgs/Xob_wiki_cfg_bldr_tst.java
index daa35261f..fffa42568 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cfgs/Xob_wiki_cfg_bldr_tst.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cfgs/Xob_wiki_cfg_bldr_tst.java
@@ -150,7 +150,7 @@ public class Xob_wiki_cfg_bldr_tst {
class Xob_wiki_cfg_bldr_fxt {
public Xob_wiki_cfg_bldr_fxt Clear() {
if (app == null) {
- app = Xoa_app_fxt.app_();
+ app = Xoa_app_fxt.Make__app__edit();
wiki_cfg_bldr = app.Bldr().Wiki_cfg_bldr();
}
wiki_cfg_bldr.Clear();
@@ -162,14 +162,14 @@ class Xob_wiki_cfg_bldr_fxt {
return this;
}
public Xob_wiki_cfg_bldr_fxt Expd_txt(String wiki, String text) {
- hash.Add(wiki, KeyVal_.new_(wiki, text));
+ hash.Add(wiki, Keyval_.new_(wiki, text));
return this;
}
public void Test() {
wiki_cfg_bldr.Exec();
int len = hash.Count();
for (int i = 0; i < len; i++) {
- KeyVal kv = (KeyVal)hash.Get_at(i);
+ Keyval kv = (Keyval)hash.Get_at(i);
String wiki = kv.Key();
String expd = (String)kv.Val();
String actl = Io_mgr.Instance.LoadFilStr(app.Fsys_mgr().Cfg_wiki_core_dir().GenSubFil(wiki + ".gfs"));
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/Xob_parse_all_src_sql.java b/400_xowa/src/gplx/xowa/bldrs/cmds/Xob_parse_all_src_sql.java
index adb4d84ea..82848a145 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/Xob_parse_all_src_sql.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/Xob_parse_all_src_sql.java
@@ -47,10 +47,10 @@ 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_at(text_db_idx);
+ Xowd_db_file text_db = db_mgr.Core_data_mgr().Dbs__get_by_id(text_db_idx);
Db_conn conn = text_db.Conn();
- String sql = String_.Format(Sql_select_itm, New_rdr__redirect_clause(redirect));
- text_stmt = conn.Stmt_new(Db_qry_sql.rdr_(sql));
+ String sql = String_.Format(Sql_select_clause, New_rdr__redirect_clause(redirect));
+ text_stmt = conn.Stmt_sql(sql);
}
return text_stmt.Clear().Val_int(prv_id).Val_int(cur_ns).Exec_select();
}
@@ -75,7 +75,7 @@ class Xob_dump_src_id {
default: throw Err_.new_unhandled(redirect);
}
}
- private static final String Sql_select_itm = 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"
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/ctgs/Uca_trie.java b/400_xowa/src/gplx/xowa/bldrs/cmds/ctgs/Uca_trie.java
index d3bcd9365..e5f03c447 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/ctgs/Uca_trie.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/ctgs/Uca_trie.java
@@ -1072,4 +1072,4 @@ Init_itm(1024, Bry_.New_by_ints(92,52,1,134,143,1,143,5));
if (trie.Match_bgn(uca, 0, uca.length) == null)
trie.Add_obj(uca, gplx.core.intls.Utf16_.Encode_int_to_bry(charAsInt));
}
-}
\ No newline at end of file
+}
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/ctgs/Xob_category_registry_sql.java b/400_xowa/src/gplx/xowa/bldrs/cmds/ctgs/Xob_category_registry_sql.java
index d45f666a8..5c1865b8d 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/ctgs/Xob_category_registry_sql.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/ctgs/Xob_category_registry_sql.java
@@ -32,7 +32,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 {
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/ctgs/Xob_ctg_v1_base_tst.java b/400_xowa/src/gplx/xowa/bldrs/cmds/ctgs/Xob_ctg_v1_base_tst.java
index 6f612beae..2189bcb00 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/ctgs/Xob_ctg_v1_base_tst.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/ctgs/Xob_ctg_v1_base_tst.java
@@ -33,8 +33,8 @@ class Xowd_page_wkr_ctg_fxt {
public Xowd_page_wkr_ctg_fxt ini_(String s) {src = Bry_.new_u8(s); return this;}
public Xowd_page_wkr_ctg_fxt tst_(String... expd) {
Xobd_parser mgr = new Xobd_parser();
- Xoae_app app = Xoa_app_fxt.app_();
- Xowe_wiki wiki = Xoa_app_fxt.wiki_tst_(app);
+ Xoae_app app = Xoa_app_fxt.Make__app__edit();
+ Xowe_wiki wiki = Xoa_app_fxt.Make__wiki__edit(app);
Xob_bldr bldr = Xoa_app_fxt.bldr_(app);
Xobd_parser_wkr_ctg_tstr wkr = (Xobd_parser_wkr_ctg_tstr)new Xobd_parser_wkr_ctg_tstr().Ctor(bldr, wiki);
byte[] bry = Bry_.new_a7("[[Category:");
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/ctgs/Xob_ctg_v1_sql_tst.java b/400_xowa/src/gplx/xowa/bldrs/cmds/ctgs/Xob_ctg_v1_sql_tst.java
index d6908a5ce..8bb2496ea 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/ctgs/Xob_ctg_v1_sql_tst.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/ctgs/Xob_ctg_v1_sql_tst.java
@@ -16,7 +16,7 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa.bldrs.cmds.ctgs; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.cmds.*;
-import org.junit.*; import gplx.dbs.*; import gplx.xowa.specials.search.*; import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.cmds.texts.*;
+import org.junit.*; import gplx.dbs.*; import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.cmds.texts.*;
import gplx.xowa.bldrs.cmds.texts.sqls.*;
public class Xob_ctg_v1_sql_tst {
@Before public void init() {if (Xoa_test_.Db_skip()) return; fxt.Ctor_fsys();} Db_mgr_fxt fxt = new Db_mgr_fxt();
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/ctgs/Xoctg_hiddencat_parser_txt.java b/400_xowa/src/gplx/xowa/bldrs/cmds/ctgs/Xoctg_hiddencat_parser_txt.java
index 9353084ff..e1e8fb473 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/ctgs/Xoctg_hiddencat_parser_txt.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/ctgs/Xoctg_hiddencat_parser_txt.java
@@ -16,8 +16,7 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
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.bldrs.sqls.*;
+import gplx.core.ios.*; import gplx.xowa.bldrs.sqls.*;
public class Xoctg_hiddencat_parser_txt extends Xoctg_hiddencat_parser_base {
public Xoctg_hiddencat_parser_txt(Xob_bldr bldr, Xowe_wiki wiki) {this.Ctor(bldr, wiki);}
@Override public String Cmd_key() {return Xob_cmd_keys.Key_tdb_cat_hidden_sql;}
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/diffs/Xob_diff_build_wkr.java b/400_xowa/src/gplx/xowa/bldrs/cmds/diffs/Xob_diff_build_wkr.java
index 177fa9b18..66c05bc0e 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/diffs/Xob_diff_build_wkr.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/diffs/Xob_diff_build_wkr.java
@@ -16,7 +16,7 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa.bldrs.cmds.diffs; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.cmds.*;
-import gplx.core.brys.*; import gplx.core.brys.fmtrs.*;
+import gplx.core.brys.*; import gplx.core.brys.fmts.*;
import gplx.dbs.*; import gplx.dbs.metas.*; import gplx.dbs.diffs.*; import gplx.dbs.diffs.builds.*; import gplx.dbs.diffs.itms.*;
import gplx.xowa.wikis.data.*; import gplx.xowa.wikis.data.tbls.*;
class Xob_diff_build_wkr {
@@ -40,12 +40,10 @@ class Xob_diff_build_wkr {
String made_by = wiki.App().User().Key();
Gdif_job_itm job_itm = dif_core.New_job(name, made_by);
Gdif_bldr_ctx ctx = new Gdif_bldr_ctx().Init(dif_core, job_itm);
-
Gfdb_diff_wkr__db dif_wkr = new Gfdb_diff_wkr__db();
Gdif_db dif_db = dif_core.Db();
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;
@@ -64,8 +62,8 @@ class Xob_diff_build_wkr {
// }
}
private void Compare(Gdif_bldr_ctx ctx) {
- Dbmeta_tbl_mgr old_tbl_mgr = old_conn.Meta_tbl_load_all();
- Dbmeta_tbl_mgr new_tbl_mgr = old_conn.Meta_tbl_load_all();
+ Dbmeta_tbl_mgr old_tbl_mgr = old_conn.Meta_load_all();
+ Dbmeta_tbl_mgr new_tbl_mgr = old_conn.Meta_load_all();
int new_tbl_len = new_tbl_mgr.Len();
for (int i = 0; i < new_tbl_len; ++i) {
Dbmeta_tbl_itm new_tbl = new_tbl_mgr.Get_at(i);
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_bin_db_itm.java b/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_bin_db_itm.java
index 5ebbb81dd..e7f18e1ff 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_bin_db_itm.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_bin_db_itm.java
@@ -38,20 +38,20 @@ class Xob_bin_db_itm {
public static Xob_bin_db_itm new_v1(Fsm_bin_fil fil) {
byte[] name = Bry_.new_u8(fil.Url_rel()); // EX: "fsdb.bin.0000.sqlite3"
int ns_id = 0; // assume v1 dbs are all in main ns
- int pt_id = Bry_.To_int_or(name, 9 , 13, Int_.Min_value); if (pt_id == Int_.Min_value) throw Err_.new_wo_type("bin_db_itm.parse: invalid pt_id", "name", fil.Url_rel(), "conn", fil.Conn().Conn_info().Xto_raw());
+ int pt_id = Bry_.To_int_or(name, 9 , 13, Int_.Min_value); if (pt_id == Int_.Min_value) throw Err_.new_wo_type("bin_db_itm.parse: invalid pt_id", "name", fil.Url_rel(), "conn", fil.Conn().Conn_info().Raw());
return new Xob_bin_db_itm(fil.Id(), fil.Url(), ns_id, pt_id);
}
public static Xob_bin_db_itm new_v2(Fsm_bin_fil fil) {
byte[] ns_bgn_tkn = Bry_.new_a7("file-ns."), ns_end_tkn = Bry_.new_a7("-db."), pt_end_tkn = Bry_.new_a7(".xowa");
int ns_bgn_tkn_len = ns_bgn_tkn.length, ns_end_tkn_len = ns_end_tkn.length;
byte[] name = Bry_.new_u8(fil.Url_rel()); // EX: en.wikipedia.org-file-ns.000-db.001.xowa
- int ns_bgn = Bry_find_.Find_fwd(name, ns_bgn_tkn, 0); if (ns_bgn == Bry_find_.Not_found) throw Err_.new_wo_type("bin_db_itm.parse: invalid ns_bgn", "name", fil.Url_rel(), "conn", fil.Conn().Conn_info().Xto_raw());
+ int ns_bgn = Bry_find_.Find_fwd(name, ns_bgn_tkn, 0); if (ns_bgn == Bry_find_.Not_found) throw Err_.new_wo_type("bin_db_itm.parse: invalid ns_bgn", "name", fil.Url_rel(), "conn", fil.Conn().Conn_info().Raw());
ns_bgn += ns_bgn_tkn_len;
- int ns_end = Bry_find_.Find_fwd(name, ns_end_tkn, ns_bgn); if (ns_end == Bry_find_.Not_found) throw Err_.new_wo_type("bin_db_itm.parse: invalid ns_end", "name", fil.Url_rel(), "conn", fil.Conn().Conn_info().Xto_raw());
+ int ns_end = Bry_find_.Find_fwd(name, ns_end_tkn, ns_bgn); if (ns_end == Bry_find_.Not_found) throw Err_.new_wo_type("bin_db_itm.parse: invalid ns_end", "name", fil.Url_rel(), "conn", fil.Conn().Conn_info().Raw());
int pt_bgn = ns_end + ns_end_tkn_len;
- int pt_end = Bry_find_.Find_fwd(name, pt_end_tkn, pt_bgn); if (pt_end == Bry_find_.Not_found) throw Err_.new_wo_type("bin_db_itm.parse: invalid pt_end", "name", fil.Url_rel(), "conn", fil.Conn().Conn_info().Xto_raw());
- int ns_id = Bry_.To_int_or(name, ns_bgn, ns_end, Int_.Min_value); if (ns_id == Int_.Min_value) throw Err_.new_wo_type("bin_db_itm.parse: invalid ns_id", "name", fil.Url_rel(), "conn", fil.Conn().Conn_info().Xto_raw());
- int pt_id = Bry_.To_int_or(name, pt_bgn, pt_end, Int_.Min_value); if (pt_id == Int_.Min_value) throw Err_.new_wo_type("bin_db_itm.parse: invalid pt_id", "name", fil.Url_rel(), "conn", fil.Conn().Conn_info().Xto_raw());
+ int pt_end = Bry_find_.Find_fwd(name, pt_end_tkn, pt_bgn); if (pt_end == Bry_find_.Not_found) throw Err_.new_wo_type("bin_db_itm.parse: invalid pt_end", "name", fil.Url_rel(), "conn", fil.Conn().Conn_info().Raw());
+ int ns_id = Bry_.To_int_or(name, ns_bgn, ns_end, Int_.Min_value); if (ns_id == Int_.Min_value) throw Err_.new_wo_type("bin_db_itm.parse: invalid ns_id", "name", fil.Url_rel(), "conn", fil.Conn().Conn_info().Raw());
+ int pt_id = Bry_.To_int_or(name, pt_bgn, pt_end, Int_.Min_value); if (pt_id == Int_.Min_value) throw Err_.new_wo_type("bin_db_itm.parse: invalid pt_id", "name", fil.Url_rel(), "conn", fil.Conn().Conn_info().Raw());
return new Xob_bin_db_itm(fil.Id(), fil.Url(), ns_id, pt_id);
}
}
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_diff_regy_exec_cmd_tst.java b/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_diff_regy_exec_cmd_tst.java
index 58420633f..7766be11a 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_diff_regy_exec_cmd_tst.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_diff_regy_exec_cmd_tst.java
@@ -25,8 +25,8 @@ public class Xob_diff_regy_exec_cmd_tst {
fxt.Test_parse_url("/file/enwiki-001-atr.sql", "enwiki", 1, Fsdb_db_tid_.Tid_atr);
}
// @Test public void Smoke() {
-// Xoae_app app = Xoa_app_fxt.app_(Io_url_.new_dir_("C:\\xowa\\"), "wnt");
-// Xowe_wiki wiki = Xoa_app_fxt.wiki_tst_(app);
+// Xoae_app app = Xoa_app_fxt.Make__app__edit(Io_url_.new_dir_("C:\\xowa\\"), "wnt");
+// Xowe_wiki wiki = Xoa_app_fxt.Make__wiki__edit(app);
// Xob_diff_regy_make_cmd cmd = new Xob_diff_regy_make_cmd(app.Bldr(), wiki);
// cmd.Cmd_run();
// }
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_diff_regy_make_cmd.java b/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_diff_regy_make_cmd.java
index 5c5d480d3..61eb4512c 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_diff_regy_make_cmd.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_diff_regy_make_cmd.java
@@ -28,15 +28,15 @@ public class Xob_diff_regy_make_cmd extends Xob_itm_basic_base implements Xob_cm
public void Cmd_end() {}
public void Cmd_term() {}
private void Exec_main() {
- Db_conn make_db_provider = Xob_db_file.new__file_make(wiki.Fsys_mgr().Root_dir()).Conn();
+ Db_conn make_db_provider = Xob_db_file.New__file_make(wiki.Fsys_mgr().Root_dir()).Conn();
this.Make_join_indexes(make_db_provider);
this.Make_diff_regy(make_db_provider);
this.Make_delete_sql(make_db_provider);
}
private void Make_join_indexes(Db_conn make_db_provider) {
try {
- make_db_provider.Ddl_create_idx(Dbmeta_idx_itm.new_normal_by_name("fsdb_regy", "fsdb_regy__join", "fsdb_name", "fsdb_is_orig", "fsdb_repo", "fsdb_w", "fsdb_time", "fsdb_page"));
- make_db_provider.Ddl_create_idx(Dbmeta_idx_itm.new_normal_by_name("xfer_regy", "xfer_regy__join", "lnki_ttl", "file_is_orig", "orig_repo", "file_w", "lnki_time", "lnki_page"));
+ make_db_provider.Meta_idx_create(Dbmeta_idx_itm.new_normal_by_name("fsdb_regy", "fsdb_regy__join", "fsdb_name", "fsdb_is_orig", "fsdb_repo", "fsdb_w", "fsdb_time", "fsdb_page"));
+ make_db_provider.Meta_idx_create(Dbmeta_idx_itm.new_normal_by_name("xfer_regy", "xfer_regy__join", "lnki_ttl", "file_is_orig", "orig_repo", "file_w", "lnki_time", "lnki_page"));
}
catch (Exception exc) {
app.Usr_dlg().Warn_many("", "", "error while making indexes: err=~{0}", Err_.Message_gplx_full(exc));
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_fsdb_make_cmd.java b/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_fsdb_make_cmd.java
index dee56eb25..29d6acea6 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_fsdb_make_cmd.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_fsdb_make_cmd.java
@@ -80,7 +80,7 @@ public class Xob_fsdb_make_cmd extends Xob_itm_basic_base implements Xob_cmd {
if (!trg_atr_fil.Conn().Eq(trg_cfg_mgr.Tbl().Conn())) // need to create txn for v1; DATE:2015-07-04
trg_cfg_mgr.Tbl().Conn().Txn_bgn("bldr__fsdb_make__trg_cfg_fil");
// bldr_db
- Xob_db_file bldr_db = Xob_db_file.new__file_make(wiki.Fsys_mgr().Root_dir());
+ Xob_db_file bldr_db = Xob_db_file.New__file_make(wiki.Fsys_mgr().Root_dir());
this.bldr_conn = bldr_db.Conn();
this.bldr_cfg_tbl = bldr_db.Tbl__cfg(); // NOTE: cfg and atr is in same db; use it
bldr_cfg_tbl.Conn().Txn_bgn("bldr__fsdb_make__bldr_cfg_tbl");
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_lnki_regy_cmd.java b/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_lnki_regy_cmd.java
index c04375684..6d2002b60 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_lnki_regy_cmd.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_lnki_regy_cmd.java
@@ -23,7 +23,7 @@ public class Xob_lnki_regy_cmd extends Xob_itm_basic_base implements Xob_cmd {
public String Cmd_key() {return Xob_cmd_keys.Key_file_lnki_regy;}
public void Cmd_init(Xob_bldr bldr) {}
public void Cmd_bgn(Xob_bldr bldr) {
- Db_conn conn = Xob_db_file.new__file_make(wiki.Fsys_mgr().Root_dir()).Conn();
+ Db_conn conn = Xob_db_file.New__file_make(wiki.Fsys_mgr().Root_dir()).Conn();
Xob_lnki_regy_tbl.Create_table(conn);
Xob_lnki_regy_tbl.Create_data(usr_dlg, conn, Xob_lnki_temp_wkr.Ns_file_is_case_match_all(wiki));
}
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_lnki_temp_tbl.java b/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_lnki_temp_tbl.java
index 320efdb30..d0290665a 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_lnki_temp_tbl.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_lnki_temp_tbl.java
@@ -39,7 +39,7 @@ class Xob_lnki_temp_tbl {
private Db_stmt stmt_insert;
public Xob_lnki_temp_tbl(Db_conn conn) {this.conn = conn;}
public Db_conn Conn() {return conn;} private final Db_conn conn;
- public void Create_tbl() {conn.Ddl_create_tbl(Dbmeta_tbl_itm.New(Tbl_name, flds));}
+ public void Create_tbl() {conn.Meta_tbl_create(Dbmeta_tbl_itm.New(Tbl_name, flds));}
public void Insert_bgn() {conn.Txn_bgn("bldr__lnki_temp"); stmt_insert = conn.Stmt_insert(Tbl_name, flds);}
public void Insert_commit() {conn.Txn_sav();}
public void Insert_end() {conn.Txn_end(); stmt_insert = Db_stmt_.Rls(stmt_insert);}
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_lnki_temp_wkr.java b/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_lnki_temp_wkr.java
index 4b2c1d3f6..ecc843c25 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_lnki_temp_wkr.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_lnki_temp_wkr.java
@@ -42,7 +42,7 @@ public class Xob_lnki_temp_wkr extends Xob_dump_mgr_base implements gplx.xowa.pa
}
@Override protected Db_conn Init_db_file() {
ctx.Lnki().File_logger_(this);
- Xob_db_file make_db = Xob_db_file.new__file_make(wiki.Fsys_mgr().Root_dir());
+ Xob_db_file make_db = Xob_db_file.New__file_make(wiki.Fsys_mgr().Root_dir());
Db_conn make_conn = make_db.Conn();
this.tbl = new Xob_lnki_temp_tbl(make_conn); tbl.Create_tbl();
this.gen_hdump = hdump_bldr.Init(wiki, make_conn);
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_lnki_temp_wkr_tst.java b/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_lnki_temp_wkr_tst.java
index 61e59f6d6..df0ad633a 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_lnki_temp_wkr_tst.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_lnki_temp_wkr_tst.java
@@ -23,7 +23,6 @@ public class Xob_lnki_temp_wkr_tst {
fxt.Init_Xto_commons(true);
fxt.Test_Xto_commons("a", "A");
fxt.Test_Xto_commons("A", null);
-
fxt.Init_Xto_commons(false);
fxt.Test_Xto_commons("a", null);
fxt.Test_Xto_commons("A", null);
@@ -33,12 +32,11 @@ class Xob_lnki_temp_wkr_fxt {
private boolean wiki_ns_file_is_case_match_all;
private Xowe_wiki commons_wiki;
public Xob_lnki_temp_wkr_fxt Init_Xto_commons(boolean wiki_ns_file_is_case_match_all) {
- Xoae_app app = Xoa_app_fxt.app_();
+ Xoae_app app = Xoa_app_fxt.Make__app__edit();
this.wiki_ns_file_is_case_match_all = wiki_ns_file_is_case_match_all;
- this.commons_wiki = Xoa_app_fxt.wiki_tst_(app); // commons_wiki will default to Xow_ns.Id_file of case_match_1st
+ this.commons_wiki = Xoa_app_fxt.Make__wiki__edit(app); // commons_wiki will default to Xow_ns.Id_file of case_match_1st
return this;
}
-
public void Test_Xto_commons(String ttl, String expd) {
Tfds.Eq(expd, String_.new_u8(Xob_lnki_temp_wkr.Xto_commons(wiki_ns_file_is_case_match_all, commons_wiki, Bry_.new_u8(ttl))));
}
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_orig_regy_cmd.java b/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_orig_regy_cmd.java
index 6cd1538ed..cc708dc08 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_orig_regy_cmd.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_orig_regy_cmd.java
@@ -25,7 +25,7 @@ public class Xob_orig_regy_cmd extends Xob_itm_basic_base implements Xob_cmd {
public String Cmd_key() {return Xob_cmd_keys.Key_file_orig_regy;}
public void Cmd_init(Xob_bldr bldr) {}
public void Cmd_bgn(Xob_bldr bldr) {
- Db_conn conn = Xob_db_file.new__file_make(wiki.Fsys_mgr().Root_dir()).Conn();
+ Db_conn conn = Xob_db_file.New__file_make(wiki.Fsys_mgr().Root_dir()).Conn();
Xob_orig_regy_tbl.Create_table(conn);
Xowe_wiki commons_wiki = bldr.App().Wiki_mgr().Get_by_or_make(Xow_domain_itm_.Bry__commons).Init_assert();
Xowe_wiki repo_0 = wiki, repo_1 = commons_wiki;
@@ -34,7 +34,7 @@ public class Xob_orig_regy_cmd extends Xob_itm_basic_base implements Xob_cmd {
repo_1 = wiki;
}
repo_0.Init_assert(); repo_1.Init_assert();
- Xob_db_file file_registry_db = Xob_db_file.new__page_regy(commons_wiki.Fsys_mgr().Root_dir());
+ Xob_db_file file_registry_db = Xob_db_file.New__page_regy(commons_wiki.Fsys_mgr().Root_dir());
Xob_orig_regy_tbl.Create_data(bldr.Usr_dlg(), conn, file_registry_db, repo_0_is_remote, repo_0, repo_1, Xob_lnki_temp_wkr.Ns_file_is_case_match_all(wiki));
}
public void Cmd_run() {}
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_orig_regy_tbl.java b/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_orig_regy_tbl.java
index 6813aeac3..ce861b208 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_orig_regy_tbl.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_orig_regy_tbl.java
@@ -57,11 +57,9 @@ class Xob_orig_regy_tbl {
String lnki_ttl_fld = wiki_has_cs_file ? "Coalesce(o.lnki_commons_ttl, o.lnki_ttl)" : "o.lnki_ttl"; // NOTE: use lnki_commons_ttl if [[File]] is cs PAGE:en.d:water EX:[[image:wikiquote-logo.png|50px|none|alt=]]; DATE:2014-09-05
if (wiki_has_cs_file)
Sqlite_engine_.Idx_create(usr_dlg, conn, "orig_regy", Idx_ttl_remote);
- Db_attach_cmd.new_(conn, "image_db", join)
- .Add_fmt("orig_regy:updating page" , Sql_update_repo_page, repo_tid, lnki_ttl_fld)
- .Add_fmt("orig_regy:updating redirect" , Sql_update_repo_redirect, repo_tid, lnki_ttl_fld)
- .Exec()
- ;
+ new Db_attach_mgr(conn, new Db_attach_itm("image_db", join))
+ .Exec_sql_w_msg("orig_regy:updating page" , Sql_update_repo_page, repo_tid, lnki_ttl_fld)
+ .Exec_sql_w_msg("orig_regy:updating redirect" , Sql_update_repo_redirect, repo_tid, lnki_ttl_fld);
}
private static void Create_data_for_cs(Gfo_usr_dlg usr_dlg, Db_conn p, Xowe_wiki local_wiki, Io_url repo_remote_dir) {
p.Exec_sql(Xob_orig_regy_tbl.Sql_cs_mark_dupes); // orig_regy: find dupes; see note in SQL
@@ -145,7 +143,7 @@ class Xob_orig_regy_tbl {
, ", i.img_minor_mime"
, ", i.img_timestamp"
, "FROM orig_regy o"
- , " JOIN image i ON {1} = i.img_name"
+ , " JOIN image i ON {1} = i.img_name"
, " JOIN page_db.page_regy m ON m.repo_id = {0} AND m.itm_tid = 0 AND {1} = m.src_ttl"
, "WHERE o.orig_file_ttl IS NULL" // NOTE: only insert if file doesn't exist; changed from timestamp b/c old images may exist in both wikis; EX:ar.n:File:Facebook.png; DATE:2014-08-20
// , "WHERE i.img_timestamp > o.orig_timestamp" // NOTE: this handles an image in local and remote by taking later version; DATE:2014-07-22
@@ -176,7 +174,7 @@ class Xob_orig_regy_tbl {
, ", i.img_timestamp"
, "FROM orig_regy o"
, " JOIN page_db.page_regy m ON m.repo_id = {0} AND m.itm_tid = 1 AND {1} = m.src_ttl"
- , " JOIN image i ON m.trg_ttl = i.img_name"
+ , " JOIN image i ON m.trg_ttl = i.img_name"
, "WHERE o.orig_file_ttl IS NULL" // NOTE: only insert if file doesn't exist; changed from timestamp b/c old images may exist in both wikis; EX:ar.n:File:Facebook.png; DATE:2014-08-20
// , "WHERE i.img_timestamp > o.orig_timestamp" // NOTE: this handles an image in local and remote by taking later version; DATE:2014-07-22
, "ORDER BY 1" // must order by lnki_id since it is PRIMARY KEY, else sqlite will spend hours shuffling rows in table
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_orig_regy_update_cmd.java b/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_orig_regy_update_cmd.java
index fd5d2ddba..d4623ad7e 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_orig_regy_update_cmd.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_orig_regy_update_cmd.java
@@ -25,7 +25,7 @@ public class Xob_orig_regy_update_cmd extends Xob_itm_basic_base implements Xob_
public void Cmd_init(Xob_bldr bldr) {}
public void Cmd_bgn(Xob_bldr bldr) {
// Xof_orig_mgr qry_mgr = new Xof_orig_mgr();
- Db_conn conn = Xob_db_file.new__file_make(wiki.Fsys_mgr().Root_dir()).Conn();
+ Db_conn conn = Xob_db_file.New__file_make(wiki.Fsys_mgr().Root_dir()).Conn();
Xob_orig_regy_update_bmk_mgr bmk = new Xob_orig_regy_update_bmk_mgr();
bmk.Init(conn, this.Cmd_key(), true, false, true);
bmk.Load();
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_page_regy_cmd.java b/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_page_regy_cmd.java
index 28ff30be2..69cede813 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_page_regy_cmd.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_page_regy_cmd.java
@@ -26,7 +26,7 @@ public class Xob_page_regy_cmd extends Xob_itm_basic_base implements Xob_cmd {
public void Cmd_init(Xob_bldr bldr) {}
public void Cmd_bgn(Xob_bldr bldr) {
Xowe_wiki commons_wiki = bldr.App().Wiki_mgr().Get_by_or_make(Xow_domain_itm_.Bry__commons).Init_assert();
- Db_conn page_regy_provider = Xob_db_file.new__page_regy(commons_wiki.Fsys_mgr().Root_dir()).Conn();
+ Db_conn page_regy_provider = Xob_db_file.New__page_regy(commons_wiki.Fsys_mgr().Root_dir()).Conn();
commons_wiki.Init_assert();
if (build_commons) {
Xob_page_regy_tbl.Reset_table(page_regy_provider);
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_xfer_regy_cmd.java b/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_xfer_regy_cmd.java
index 73468d7de..8a77c727b 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_xfer_regy_cmd.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_xfer_regy_cmd.java
@@ -24,7 +24,7 @@ public class Xob_xfer_regy_cmd extends Xob_itm_basic_base implements Xob_cmd {
public void Cmd_init(Xob_bldr bldr) {}
public void Cmd_bgn(Xob_bldr bldr) {}
public void Cmd_run() {
- Db_conn conn = Xob_db_file.new__file_make(wiki.Fsys_mgr().Root_dir()).Conn();
+ Db_conn conn = Xob_db_file.New__file_make(wiki.Fsys_mgr().Root_dir()).Conn();
conn.Txn_bgn("bldr__xfer_regy");
Xob_xfer_regy_tbl.Create_table(conn);
Xob_xfer_regy_tbl.Create_data(usr_dlg, conn);
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_xfer_regy_tbl.java b/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_xfer_regy_tbl.java
index b46214c72..41d1f69bd 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_xfer_regy_tbl.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_xfer_regy_tbl.java
@@ -42,10 +42,10 @@ public class Xob_xfer_regy_tbl {
;
return conn.Exec_qry_as_old_rdr(qry);
}
- public static Db_stmt Select_by_page_id_stmt(Db_conn p) {return p.Stmt_new(Db_qry_sql.rdr_(Sql_select_itm));}
+ public static Db_stmt Select_by_page_id_stmt(Db_conn p) {return p.Stmt_sql(Sql_select_clause);}
public static DataRdr Select_by_page_id(Db_stmt stmt, int page_id, int limit) {return stmt.Val_int(page_id).Val_int(limit).Exec_select();}
private static final String
- Sql_select_itm = String_.Concat_lines_nl
+ Sql_select_clause = String_.Concat_lines_nl
( "SELECT *"
, "FROM xfer_regy"
, "WHERE xfer_status = 0"
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_xfer_regy_update_cmd.java b/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_xfer_regy_update_cmd.java
index fd1a23107..9b0ae6d9e 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_xfer_regy_update_cmd.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_xfer_regy_update_cmd.java
@@ -28,7 +28,7 @@ public class Xob_xfer_regy_update_cmd extends Xob_itm_basic_base implements Xob_
public void Cmd_term() {}
private void Exec_main() {
wiki.Init_assert(); // NOTE: must init wiki to set up db_core; DATE:2015-08-17
- Db_conn make_db_provider = Xob_db_file.new__file_make(wiki.Fsys_mgr().Root_dir()).Conn();
+ Db_conn make_db_provider = Xob_db_file.New__file_make(wiki.Fsys_mgr().Root_dir()).Conn();
this.Copy_atrs_to_make_db(make_db_provider);
this.Update_status(make_db_provider);
}
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_xfer_temp_cmd_orig.java b/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_xfer_temp_cmd_orig.java
index ee5deeb14..0c855adde 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_xfer_temp_cmd_orig.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_xfer_temp_cmd_orig.java
@@ -26,11 +26,11 @@ public class Xob_xfer_temp_cmd_orig extends Xob_itm_basic_base implements Xob_cm
public String Cmd_key() {return Xob_cmd_keys.Key_file_xfer_temp_orig;}
public void Cmd_init(Xob_bldr bldr) {}
public void Cmd_bgn(Xob_bldr bldr) {
- Db_conn conn = Xob_db_file.new__file_make(wiki.Fsys_mgr().Root_dir()).Conn();
+ Db_conn conn = Xob_db_file.New__file_make(wiki.Fsys_mgr().Root_dir()).Conn();
Xob_xfer_temp_tbl.Create_table(conn);
Db_stmt trg_stmt = Xob_xfer_temp_tbl.Insert_stmt(conn);
conn.Txn_bgn("bldr__xfer_temp");
- DataRdr rdr = conn.Exec_sql_as_old_rdr(Sql_select_itm);
+ DataRdr rdr = conn.Exec_sql_as_old_rdr(Sql_select_clause);
long[] ext_maxs = Calc_ext_max();
while (rdr.MoveNextPeer()) {
int lnki_ext = rdr.ReadByte(Xob_lnki_regy_tbl.Fld_lnki_ext);
@@ -76,7 +76,7 @@ public class Xob_xfer_temp_cmd_orig extends Xob_itm_basic_base implements Xob_cm
public void Cmd_end() {}
public void Cmd_term() {}
private static final String
- Sql_select_itm = String_.Concat_lines_nl
+ Sql_select_clause = String_.Concat_lines_nl
( "SELECT DISTINCT"
, " l.lnki_id"
// , ", lnki_ttl"
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_xfer_temp_cmd_thumb.java b/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_xfer_temp_cmd_thumb.java
index 3570ab88c..5737eb4e4 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_xfer_temp_cmd_thumb.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_xfer_temp_cmd_thumb.java
@@ -24,11 +24,11 @@ public class Xob_xfer_temp_cmd_thumb extends Xob_itm_basic_base implements Xob_c
public String Cmd_key() {return Xob_cmd_keys.Key_file_xfer_temp_thumb;}
public void Cmd_init(Xob_bldr bldr) {}
public void Cmd_bgn(Xob_bldr bldr) {
- Db_conn conn = Xob_db_file.new__file_make(wiki.Fsys_mgr().Root_dir()).Conn();
+ Db_conn conn = Xob_db_file.New__file_make(wiki.Fsys_mgr().Root_dir()).Conn();
Xob_xfer_temp_tbl.Create_table(conn);
Db_stmt trg_stmt = Xob_xfer_temp_tbl.Insert_stmt(conn);
conn.Txn_bgn("bldr__xfer_temp_thumb");
- DataRdr rdr = conn.Exec_sql_as_old_rdr(Sql_select_itm);
+ DataRdr rdr = conn.Exec_sql_as_old_rdr(Sql_select_clause);
Xob_xfer_temp_itm temp_itm = new Xob_xfer_temp_itm();
Xof_img_size img_size = new Xof_img_size();
byte[] cur_ttl = Bry_.Empty; byte cur_repo = Byte_.Max_value_127;
@@ -52,7 +52,7 @@ public class Xob_xfer_temp_cmd_thumb extends Xob_itm_basic_base implements Xob_c
public void Cmd_end() {}
public void Cmd_term() {}
private static final String
- Sql_select_itm = String_.Concat_lines_nl
+ Sql_select_clause = String_.Concat_lines_nl
( "SELECT l.lnki_id"
, ", l.lnki_tier_id"
, ", l.lnki_page_id"
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_xfer_temp_itm_tst.java b/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_xfer_temp_itm_tst.java
index ea4c7ee1d..c81e0d78a 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_xfer_temp_itm_tst.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_xfer_temp_itm_tst.java
@@ -24,78 +24,75 @@ public class Xob_xfer_temp_itm_tst {
private Xob_xfer_temp_itm_fxt fxt = new Xob_xfer_temp_itm_fxt();
@Before public void init() {fxt.Reset();}
@Test public void Pass() {fxt.Test_pass().Test_itm_chk_fail_id_none();}
- @Test public void Missing_orig() {fxt.Test_fail(Xob_xfer_temp_itm.Chk_tid_orig_page_id_is_null , KeyVal_.new_(Xob_orig_regy_tbl.Fld_orig_page_id, null));}
- @Test public void File_is_audio() {fxt.Test_fail(Xob_xfer_temp_itm.Chk_tid_orig_media_type_is_audio , KeyVal_.new_(Xob_orig_regy_tbl.Fld_orig_media_type, Xof_media_type.Name_audio));}
+ @Test public void Missing_orig() {fxt.Test_fail(Xob_xfer_temp_itm.Chk_tid_orig_page_id_is_null , Keyval_.new_(Xob_orig_regy_tbl.Fld_orig_page_id, null));}
+ @Test public void File_is_audio() {fxt.Test_fail(Xob_xfer_temp_itm.Chk_tid_orig_media_type_is_audio , Keyval_.new_(Xob_orig_regy_tbl.Fld_orig_media_type, Xof_media_type.Name_audio));}
@Test public void File_is_mid() {
- fxt.Test_fail(Xob_xfer_temp_itm.Chk_tid_orig_media_type_is_audio , KeyVal_.new_(Xob_orig_regy_tbl.Fld_orig_file_ext, Xof_ext_.Id_mid));
+ fxt.Test_fail(Xob_xfer_temp_itm.Chk_tid_orig_media_type_is_audio , Keyval_.new_(Xob_orig_regy_tbl.Fld_orig_file_ext, Xof_ext_.Id_mid));
}
@Test public void Redirect_src_is_empty() { // orig_cmd sets all direct files to have "orig_join" == "lnki_ttl"
fxt.Test_bgn
- ( KeyVal_.new_(Xob_orig_regy_tbl.Fld_orig_file_ttl , "A.png")
- , KeyVal_.new_(Xob_orig_regy_tbl.Fld_lnki_ttl , "A.png")
+ ( Keyval_.new_(Xob_orig_regy_tbl.Fld_orig_file_ttl , "A.png")
+ , Keyval_.new_(Xob_orig_regy_tbl.Fld_lnki_ttl , "A.png")
);
fxt.Test_lnki_redirect_src(""); // confirm redirect_src set to ""
}
@Test public void Redirect_src_has_val() { // orig_cmd sets all redirect files to have "orig_join" = redirect and "lnki_ttl" as orig; EX: A.png redirects to B.png; orig_join will be B.png (the actual image) and redirect_src will be A.png (the original lnki)
fxt.Test_bgn
- ( KeyVal_.new_(Xob_orig_regy_tbl.Fld_orig_file_ttl , "B.png")
- , KeyVal_.new_(Xob_orig_regy_tbl.Fld_lnki_ttl , "A.png")
+ ( Keyval_.new_(Xob_orig_regy_tbl.Fld_orig_file_ttl , "B.png")
+ , Keyval_.new_(Xob_orig_regy_tbl.Fld_lnki_ttl , "A.png")
);
fxt.Test_lnki_redirect_src("A.png"); // confirm redirect_src set to ""
}
@Test public void Redirect_should_take_trg_ext() {// if "A.png" redirects to "B.jpg", ext_id should be ".jpg" (the actual file) not ".png (lnki_ext_id)
fxt.Test_bgn
- ( KeyVal_.new_(Xob_orig_regy_tbl.Fld_orig_file_ttl , "B.jpg")
- , KeyVal_.new_(Xob_orig_regy_tbl.Fld_lnki_ttl , "A.png")
- , KeyVal_.new_(Xob_orig_regy_tbl.Fld_orig_file_ext , Xof_ext_.Id_jpg) // .png b/c B.jpg
+ ( Keyval_.new_(Xob_orig_regy_tbl.Fld_orig_file_ttl , "B.jpg")
+ , Keyval_.new_(Xob_orig_regy_tbl.Fld_lnki_ttl , "A.png")
+ , Keyval_.new_(Xob_orig_regy_tbl.Fld_orig_file_ext , Xof_ext_.Id_jpg) // .png b/c B.jpg
);
fxt.Test_lnki_ext_id(Xof_ext_.Id_jpg); // confirm ext changed to .jpg
}
@Test public void Thumbtime_check() {// PURPOSE: one image actually had a thumbtime defined; EX: General_Dynamics_F-16_Fighting_Falcon; [[File:Crash.arp.600pix.jpg|thumb|thumbtime=2]]
fxt.Test_bgn
- ( KeyVal_.new_(Xob_orig_regy_tbl.Fld_orig_file_ext , Xof_ext_.Id_jpg)
- , KeyVal_.new_(Xob_lnki_regy_tbl.Fld_lnki_time , (double)3)
+ ( Keyval_.new_(Xob_orig_regy_tbl.Fld_orig_file_ext , Xof_ext_.Id_jpg)
+ , Keyval_.new_(Xob_lnki_regy_tbl.Fld_lnki_time , (double)3)
);
fxt.Test_lnki_thumbtime(Xof_lnki_time.Null);
-
fxt.Reset().Test_bgn
- ( KeyVal_.new_(Xob_orig_regy_tbl.Fld_orig_media_type , Xof_media_type.Name_video)
- , KeyVal_.new_(Xob_lnki_regy_tbl.Fld_lnki_time , (double)3)
+ ( Keyval_.new_(Xob_orig_regy_tbl.Fld_orig_media_type , Xof_media_type.Name_video)
+ , Keyval_.new_(Xob_lnki_regy_tbl.Fld_lnki_time , (double)3)
);
fxt.Test_lnki_thumbtime(3);
}
@Test public void Page_check() {
fxt.Test_bgn
- ( KeyVal_.new_(Xob_orig_regy_tbl.Fld_orig_file_ext , Xof_ext_.Id_jpg)
- , KeyVal_.new_(Xob_lnki_regy_tbl.Fld_lnki_page , 3)
+ ( Keyval_.new_(Xob_orig_regy_tbl.Fld_orig_file_ext , Xof_ext_.Id_jpg)
+ , Keyval_.new_(Xob_lnki_regy_tbl.Fld_lnki_page , 3)
);
fxt.Test_lnki_page(Xof_lnki_page.Null);
-
fxt.Reset().Test_bgn
- ( KeyVal_.new_(Xob_orig_regy_tbl.Fld_orig_file_ext , Xof_ext_.Id_pdf)
- , KeyVal_.new_(Xob_lnki_regy_tbl.Fld_lnki_page , 3)
+ ( Keyval_.new_(Xob_orig_regy_tbl.Fld_orig_file_ext , Xof_ext_.Id_pdf)
+ , Keyval_.new_(Xob_lnki_regy_tbl.Fld_lnki_page , 3)
);
fxt.Test_lnki_page(3);
-
fxt.Reset().Test_bgn
- ( KeyVal_.new_(Xob_orig_regy_tbl.Fld_orig_file_ext , Xof_ext_.Id_djvu)
- , KeyVal_.new_(Xob_lnki_regy_tbl.Fld_lnki_page , 3)
+ ( Keyval_.new_(Xob_orig_regy_tbl.Fld_orig_file_ext , Xof_ext_.Id_djvu)
+ , Keyval_.new_(Xob_lnki_regy_tbl.Fld_lnki_page , 3)
);
fxt.Test_lnki_page(3);
}
@Test public void Media_should_be_ignored() {// ignore [[Media:]] for xfer_thumb (needed for xfer_orig)
fxt.Test_bgn
- ( KeyVal_.new_(Xob_orig_regy_tbl.Fld_lnki_ttl , "A.png")
- , KeyVal_.new_(Xob_lnki_regy_tbl.Fld_lnki_src_tid , Xop_file_logger_.Tid__media)
+ ( Keyval_.new_(Xob_orig_regy_tbl.Fld_lnki_ttl , "A.png")
+ , Keyval_.new_(Xob_lnki_regy_tbl.Fld_lnki_src_tid , Xop_file_logger_.Tid__media)
);
fxt.Test_itm_chk_fail_id(Xob_xfer_temp_itm.Chk_tid_ns_is_media);
}
@Test public void Orig_width_is_0() {// PURPOSE: ignore files with an orig width of 0; note that ogg files that are sometimes flagged as VIDEO; EX:2009_10_08_Marc_Randazza_interview.ogg; DATE:2014-08-20
fxt.Test_bgn
- ( KeyVal_.new_(Xob_orig_regy_tbl.Fld_lnki_ttl , "A.ogg")
- , KeyVal_.new_(Xob_orig_regy_tbl.Fld_orig_media_type , Xof_media_type.Name_video) // VIDEO
- , KeyVal_.new_(Xob_orig_regy_tbl.Fld_orig_w , 0) // no width defined in image table
- , KeyVal_.new_(Xob_orig_regy_tbl.Fld_orig_h , 0)
+ ( Keyval_.new_(Xob_orig_regy_tbl.Fld_lnki_ttl , "A.ogg")
+ , Keyval_.new_(Xob_orig_regy_tbl.Fld_orig_media_type , Xof_media_type.Name_video) // VIDEO
+ , Keyval_.new_(Xob_orig_regy_tbl.Fld_orig_w , 0) // no width defined in image table
+ , Keyval_.new_(Xob_orig_regy_tbl.Fld_orig_h , 0)
);
fxt.Test_itm_chk_fail_id(Xob_xfer_temp_itm.Chk_tid_orig_w_is_0);
}
@@ -154,16 +151,16 @@ class Xob_xfer_temp_itm_fxt {
return this;
}
public Xob_xfer_temp_itm_fxt Test_pass() {return Test_bgn();}
- public Xob_xfer_temp_itm_fxt Test_fail(byte fail_tid, KeyVal... kvs) {
+ public Xob_xfer_temp_itm_fxt Test_fail(byte fail_tid, Keyval... kvs) {
Test_bgn(kvs);
this.Test_itm_chk_fail_id(fail_tid);
return this;
}
- public Xob_xfer_temp_itm_fxt Test_bgn(KeyVal... kvs) {
+ public Xob_xfer_temp_itm_fxt Test_bgn(Keyval... kvs) {
Init_rdr_image();
int len = kvs.length;
for (int i = 0; i < len; i++) {
- KeyVal kv = kvs[i];
+ Keyval kv = kvs[i];
Init_rdr(kv.Key(), kv.Val());
}
this.Exec_load();
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_xfer_update_cmd.java b/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_xfer_update_cmd.java
index ee3f93d4b..7d0660a61 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_xfer_update_cmd.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/files/Xob_xfer_update_cmd.java
@@ -24,12 +24,11 @@ public class Xob_xfer_update_cmd extends Xob_itm_basic_base implements Xob_cmd {
public String Cmd_key() {return Xob_cmd_keys.Key_file_xfer_update;}
public void Cmd_run() {
// init vars
- Xob_db_file cur_file = Xob_db_file.new__file_make(wiki.Fsys_mgr().Root_dir());
+ Xob_db_file cur_file = Xob_db_file.New__file_make(wiki.Fsys_mgr().Root_dir());
Db_conn conn = cur_file.Conn();
if (prv_url == null) {
prv_url = wiki.Appe().Fsys_mgr().File_dir().GenSubFil_nest(wiki.Domain_str(), "bldr", Xob_db_file.Name__file_make);
}
-
// run sql
Sqlite_engine_.Tbl_rename(conn, "xfer_regy", "xfer_regy_old");
Xob_xfer_regy_tbl.Create_table(conn);
@@ -38,7 +37,6 @@ public class Xob_xfer_update_cmd extends Xob_itm_basic_base implements Xob_cmd {
Sqlite_engine_.Db_detach(conn, "old_db");
Sqlite_engine_.Tbl_delete(conn, "xfer_regy_old");
Xob_xfer_regy_tbl.Create_index(usr_dlg, conn);
-
// // rotate db
// DateAdp wiki_date = wiki.Db_mgr().Dump_date_query();
// Io_url archive_url = prv_url.GenNewNameOnly("oimg_lnki_" + wiki_date.XtoStr_fmt("yyyyMMdd"));
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/sqls/Xob_page_cmd.java b/400_xowa/src/gplx/xowa/bldrs/cmds/texts/sqls/Xob_page_cmd.java
index 7575cf18b..a8b65282b 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/sqls/Xob_page_cmd.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/texts/sqls/Xob_page_cmd.java
@@ -22,7 +22,7 @@ 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.*;
-public class Xob_page_cmd extends Xob_itm_basic_base implements Xobd_wkr, GfoInvkAble {
+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;
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
@@ -72,7 +72,7 @@ public class Xob_page_cmd extends Xob_itm_basic_base implements Xobd_wkr, GfoInv
++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();
}
@@ -91,7 +91,7 @@ public class Xob_page_cmd extends Xob_itm_basic_base implements Xobd_wkr, GfoInv
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) {
@@ -102,6 +102,4 @@ public class Xob_page_cmd extends Xob_itm_basic_base implements Xobd_wkr, GfoInv
return this;
}
private static final String Invk_commit_interval_ = "commit_interval_", Invk_idx_mode_ = "idx_mode_", Invk_redirect_id_enabled_ = "redirect_id_enabled_";
- public void Wkr_ini(Xob_bldr bldr) {}
- public void Wkr_print() {}
}
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/sqls/Xob_page_cmd_tst.java b/400_xowa/src/gplx/xowa/bldrs/cmds/texts/sqls/Xob_page_cmd_tst.java
index e5736d938..57ef1cfeb 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/sqls/Xob_page_cmd_tst.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/texts/sqls/Xob_page_cmd_tst.java
@@ -16,7 +16,7 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
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 org.junit.*; import gplx.dbs.*; import gplx.xowa.specials.search.*; import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.cmds.ctgs.*; import gplx.xowa.wikis.nss.*;
+import org.junit.*; import gplx.dbs.*; import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.cmds.ctgs.*; import gplx.xowa.wikis.nss.*;
public class Xob_page_cmd_tst {
@Before public void init() {if (Xoa_test_.Db_skip()) return; fxt.Ctor_fsys();} Db_mgr_fxt fxt = new Db_mgr_fxt();
@After public void term() {if (Xoa_test_.Db_skip()) return; fxt.Rls();}
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/sqls/Xob_page_delete_cmd.java b/400_xowa/src/gplx/xowa/bldrs/cmds/texts/sqls/Xob_page_delete_cmd.java
index 55cdfadb0..17db703ea 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/sqls/Xob_page_delete_cmd.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/texts/sqls/Xob_page_delete_cmd.java
@@ -26,10 +26,9 @@ public class Xob_page_delete_cmd extends Xob_cmd_base {
Xowd_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");
if (!core_db_conn.Meta_tbl_exists("page_filter")) {
- core_db_conn.Ddl_create_tbl
+ core_db_conn.Meta_tbl_create
( Dbmeta_tbl_itm.New("page_filter", new Dbmeta_fld_itm[]
{ Dbmeta_fld_itm.new_int("page_id").Primary_y_()
, Dbmeta_fld_itm.new_int("page_text_db_id")
@@ -38,7 +37,6 @@ public class Xob_page_delete_cmd extends Xob_cmd_base {
, Dbmeta_idx_itm.new_normal_by_tbl("page_filter", "page_id", "page_id")
));
}
-
core_db_conn.Exec_sql_plog_ntx("finding missing redirects", String_.Concat_lines_nl_skip_last
( "INSERT INTO page_filter (page_id, page_text_db_id)"
, "SELECT ptr.page_id, ptr.page_text_db_id"
@@ -53,7 +51,6 @@ public class Xob_page_delete_cmd extends Xob_cmd_base {
, "AND ptr.page_redirect_id = -1"
, ";"
));
-
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;
@@ -69,9 +66,9 @@ public class Xob_page_delete_cmd extends Xob_cmd_base {
case Xowd_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 text WHERE page_id IN (SELECT page_id FROM page_filter WHERE page_text_db_id = {0});");
- if (db_file_is_cat) Run_sql(core_db_conn, db_file.Url(), db_id, "deleting cat: " + db_id, "DELETE FROM cat_link WHERE cl_from IN (SELECT page_id FROM page_filter);");
- if (db_file_is_search) Run_sql(core_db_conn, db_file.Url(), db_id, "deleting search:" + db_id, "DELETE FROM search_link WHERE page_id IN (SELECT page_id FROM page_filter);");
+ if (db_file_is_text) Run_sql(core_db_conn, db_file.Url(), db_id, "deleting text: " + db_id, "DELETE FROM text WHERE page_id IN (SELECT page_id FROM page_filter WHERE page_text_db_id = {0});");
+ if (db_file_is_cat) Run_sql(core_db_conn, db_file.Url(), db_id, "deleting cat: " + db_id, "DELETE FROM cat_link WHERE cl_from IN (SELECT page_id FROM page_filter);");
+ if (db_file_is_search) Run_sql(core_db_conn, db_file.Url(), db_id, "deleting search:" + db_id, "DELETE FROM search_link WHERE page_id IN (SELECT page_id FROM page_filter);");
if (db_file_is_text || db_file_is_cat || db_file_is_search)
db_file.Conn().Env_vacuum();
}
@@ -82,8 +79,7 @@ public class Xob_page_delete_cmd extends Xob_cmd_base {
usr_dlg.Plog_many("", "", "");
}
private void Run_sql(Db_conn core_db_conn, Io_url db_url, int db_id, String prog_msg, String sql) {
- Db_attach_cmd.new_(core_db_conn, "data_db", db_url)
- .Add_fmt(prog_msg , sql, db_id)
- .Exec();
+ new Db_attach_mgr(core_db_conn, new Db_attach_itm("data_db", db_url))
+ .Exec_sql_w_msg(prog_msg , sql, db_id);
}
}
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/sqls/Xob_pagelinks_parser_tst.java b/400_xowa/src/gplx/xowa/bldrs/cmds/texts/sqls/Xob_pagelinks_parser_tst.java
deleted file mode 100644
index a458d6849..000000000
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/sqls/Xob_pagelinks_parser_tst.java
+++ /dev/null
@@ -1,61 +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 .
-*/
-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 org.junit.*;
-public class Xob_pagelinks_parser_tst {
-// @Before public void init() {if (Xoa_test_.Db_skip()) return; fxt.Ctor_fsys();} Db_mgr_fxt fxt = new Db_mgr_fxt();
-// @After public void term() {if (Xoa_test_.Db_skip()) return; fxt.Rls();}
- @Test public void Basic() {
-// if (Xoa_test_.Db_skip()) return;
-// fxt.Init_db_sqlite();
-// fxt.Wiki().Db_mgr_as_sql().Core_data_mgr().Db__cat_core().Tbl__cat_core().Create_tbl();
-// Init_ctgs(1, 2, 3);
-// Io_url page_props_url = Xoa_test_.Url_root().GenSubFil_nest("root", "wiki", "en.wikipedia.org", "page_props.sql");
-// fxt .Init_fil(page_props_url, String_.Concat
-// ( "INSERT INTO `page_props` VALUES"
-// , " (1,'hiddencat','')"
-// , ",(2,'pageimage','A.png')"
-// , ",(3,'hiddencat','')"
-// , ";"
-// ))
-// .Exec_run(new Xoctg_hiddencat_parser_sql(fxt.Bldr(), fxt.Wiki()))
-// ;
-// Tst_ctg_hidden(Bool_.Y, 1, 3);
-// Tst_ctg_hidden(Bool_.N, 2);
- }
-// private void Init_ctgs(params int[] ctgs) {
-// int len = ctgs.length;
-// Xowd_cat_core_tbl tbl = fxt.Wiki().Db_mgr_as_sql().Core_data_mgr().Db__cat_core().Tbl__cat_core().Create_tbl();
-// tbl.Insert_bgn();
-// try {
-// for (int i = 0; i < len; i++) {
-// int ctg_id = ctgs[i];
-// tbl.Insert_cmd_by_batch(ctg_id, 0, 0, 0, Bool_.N_byte, 0);
-// }
-// } finally {tbl.Insert_end();}
-// }
-// private void Tst_ctg_hidden(boolean expd_hidden, params int[] ctgs) {
-// int len = ctgs.length;
-// Xowd_cat_core_tbl tbl = fxt.Wiki().Db_mgr_as_sql().Core_data_mgr().Db__cat_core().Tbl__cat_core();
-// for (int i = 0; i < len; i++) {
-// int ctg_id = ctgs[i];
-// Xowd_category_itm ctg_itm = tbl.Select(ctg_id);
-// Tfds.Eq(expd_hidden, ctg_itm.Hidden(), Int_.To_str(ctg_id));
-// }
-// }
-}
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/sqls/Xob_search_sql_cmd.java b/400_xowa/src/gplx/xowa/bldrs/cmds/texts/sqls/Xob_search_sql_cmd.java
deleted file mode 100644
index 3ae98a162..000000000
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/sqls/Xob_search_sql_cmd.java
+++ /dev/null
@@ -1,90 +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 .
-*/
-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.core.envs.*;
-import gplx.xowa.langs.*;
-import gplx.xowa.bldrs.wkrs.*;
-import gplx.xowa.wikis.data.*; import gplx.dbs.*; import gplx.dbs.engines.sqlite.*; import gplx.xowa.wikis.dbs.*; import gplx.xowa.wikis.data.tbls.*; import gplx.xowa.bldrs.*;
-public class Xob_search_sql_cmd extends Xob_itm_basic_base implements Xob_cmd { // search version 2; upgrade
- private int commit_interval = 100000, progress_interval = 10000;
- public Xob_search_sql_cmd(Xob_bldr bldr, Xowe_wiki wiki) {this.Cmd_ctor(bldr, wiki);}
- public String Cmd_key() {return Xob_cmd_keys.Key_text_search_cmd;}
- public void Cmd_init(Xob_bldr bldr) {}
- public void Cmd_bgn(Xob_bldr bldr) {}
- public void Cmd_run() {this.Exec(wiki);}
- public void Cmd_end() {}
- public void Cmd_term() {}
- public void Exec(Xowe_wiki wiki) {
- if (!Env_.Mode_testing()) wiki.Init_assert();
- Xowd_db_mgr db_mgr = wiki.Db_mgr_as_sql().Core_data_mgr();
- db_mgr.Dbs__delete_by_tid(Xowd_db_file_.Tid_search_core);
- Xowd_db_file search_db = Xob_search_sql_cmd.Dbs__get_or_make(db_mgr);
- Db_conn search_conn = search_db.Conn();
- Xowd_search_temp_tbl search_temp_tbl = new Xowd_search_temp_tbl(search_conn, db_mgr.Props().Schema_is_1());
- search_temp_tbl.Create_tbl();
- search_conn.Exec_delete_all(search_temp_tbl.Tbl_name());
- search_temp_tbl.Insert_bgn();
- Xowd_page_tbl page_tbl = db_mgr.Tbl__page();
- Db_rdr page_rdr = page_tbl.Select_all();
- try {
- Xol_lang_itm lang = wiki.Lang();
- Bry_bfr bfr = Bry_bfr.reset_(1024);
- Ordered_hash hash = Ordered_hash_.New();
- int page_count = 0;
- String fld_page_id = page_tbl.Fld_page_id(), fld_page_ttl = page_tbl.Fld_page_title();
- while (page_rdr.Move_next()) {
- int page_id = page_rdr.Read_int(fld_page_id);
- byte[] ttl = page_rdr.Read_bry_by_str(fld_page_ttl);
- byte[][] words = Xob_search_base.Split_ttl_into_words(lang, hash, bfr, ttl);
- int words_len = words.length;
- for (int i = 0; i < words_len; i++) {
- byte[] word = words[i];
- search_temp_tbl.Insert_cmd_by_batch(page_id, word);
- }
- ++page_count;
- if ((page_count % commit_interval) == 0)
- Commit(search_conn);
- else if ((page_count % progress_interval) == 0)
- usr_dlg.Prog_many("", "", "parse progress: count=~{0} last=~{1}", page_count, String_.new_u8(ttl));
- }
- this.Commit(search_conn);
- }
- finally {page_rdr.Rls();}
- search_conn.Txn_end();
- search_temp_tbl.Make_data(usr_dlg, db_mgr.Db__search().Tbl__search_link(), db_mgr.Db__search().Tbl__search_word());
- }
- private void Commit(Db_conn search_conn) {
- search_conn.Txn_sav();
- }
- @Override public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
- if (ctx.Match(k, Invk_commit_interval_)) commit_interval = m.ReadInt("v");
- else if (ctx.Match(k, Invk_progress_interval_)) progress_interval = m.ReadInt("v");
- else return GfoInvkAble_.Rv_unhandled;
- return this;
- } private static final String Invk_progress_interval_ = "progress_interval_", Invk_commit_interval_ = "commit_interval_";
- public static Xowd_db_file Dbs__get_or_make(Xowd_db_mgr db_mgr) {
- Xowd_db_file db = db_mgr.Props().Layout_text().Tid_is_all_or_few()
- ? db_mgr.Db__core()
- : db_mgr.Dbs__make_by_tid(Xowd_db_file_.Tid_search_core)
- ;
- db.Tbl__search_word().Ddl__page_count_y_();
- db.Tbl__search_word().Create_tbl();
- db.Tbl__search_link().Create_tbl();
- return db;
- }
-}
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/sqls/Xob_search_sql_cmd_tst.java b/400_xowa/src/gplx/xowa/bldrs/cmds/texts/sqls/Xob_search_sql_cmd_tst.java
deleted file mode 100644
index 1a8ada21e..000000000
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/sqls/Xob_search_sql_cmd_tst.java
+++ /dev/null
@@ -1,52 +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 .
-*/
-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 org.junit.*; import gplx.dbs.*; import gplx.xowa.specials.search.*; import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.cmds.texts.*; import gplx.xowa.bldrs.cmds.ctgs.*;
-import gplx.xowa.wikis.data.tbls.*;
-public class Xob_search_sql_cmd_tst {
- @Before public void init() {if (Xoa_test_.Db_skip()) return; fxt.Ctor_fsys();} private final Db_mgr_fxt fxt = new Db_mgr_fxt();
- @After public void term() {if (Xoa_test_.Db_skip()) return; fxt.Rls();}
- @Test public void Basic() {
- if (Xoa_test_.Db_skip()) return;
- fxt.Init_db_sqlite();
- fxt.doc_ary_
- ( fxt.doc_ttl_(2, "A b")
- , fxt.doc_ttl_(1, "B c")
- )
- .Exec_run(new Xob_page_cmd(fxt.Bldr(), fxt.Wiki()))
- .Exec_run(new Xob_search_sql_cmd(fxt.Bldr(), fxt.Wiki()))
- ;
- fxt.Test_search("a", 2);
- fxt.Test_search("b", 1, 2);
- fxt.Test_search("c", 1);
- fxt.Test_search("d");
- }
- @Test public void Wildcard() {
- if (Xoa_test_.Db_skip()) return;
- fxt.Init_db_sqlite();
- fxt.doc_ary_
- ( fxt.doc_ttl_(1, "A")
- , fxt.doc_ttl_(2, "A2")
- , fxt.doc_ttl_(3, "A3")
- )
- .Exec_run(new Xob_page_cmd(fxt.Bldr(), fxt.Wiki()))
- .Exec_run(new Xob_search_sql_cmd(fxt.Bldr(), fxt.Wiki()))
- ;
- fxt.Test_search("a*", 1, 2, 3);
- }
-}
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/sqls/Xob_search_sql_wkr.java b/400_xowa/src/gplx/xowa/bldrs/cmds/texts/sqls/Xob_search_sql_wkr.java
deleted file mode 100644
index e3a391899..000000000
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/sqls/Xob_search_sql_wkr.java
+++ /dev/null
@@ -1,97 +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 .
-*/
-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.core.ios.*; import gplx.core.encoders.*; import gplx.core.envs.*;
-import gplx.xowa.bldrs.wkrs.*;
-import gplx.xowa.langs.*;
-import gplx.xowa.wikis.data.*; import gplx.dbs.*; import gplx.dbs.engines.sqlite.*; import gplx.xowa.wikis.dbs.*; import gplx.xowa.wikis.data.tbls.*;
-public class Xob_search_sql_wkr extends Xob_search_base implements Io_make_cmd { // search version 2
- private Xowd_db_mgr db_mgr; private Xowd_search_link_tbl search_page_tbl; private Xowd_search_word_tbl search_word_tbl;
- private int search_id = 0; private byte[] prv_word = null; private int page_count;
- public Xob_search_sql_wkr(Xob_bldr bldr, Xowe_wiki wiki) {this.Cmd_ctor(bldr, wiki);}
- @Override public String Wkr_key() {return Xob_cmd_keys.Key_text_search_wkr;}
- @Override public gplx.core.ios.Io_make_cmd Make_cmd_site() {return this;}
- public Io_sort_cmd Make_dir_(Io_url v) {return this;} // noop
- public void Sort_bgn() {
- this.usr_dlg = Xoa_app_.Usr_dlg();
- this.db_mgr = wiki.Db_mgr_as_sql().Core_data_mgr();
- Xob_search_sql_cmd.Dbs__get_or_make(db_mgr);
- this.search_page_tbl = db_mgr.Db__search().Tbl__search_link();
- this.search_word_tbl = db_mgr.Db__search().Tbl__search_word();
- search_page_tbl.Insert_bgn(); search_word_tbl.Insert_bgn();
- }
- public void Sort_do(Io_line_rdr rdr) {Sort_do(rdr.Bfr(), rdr.Key_pos_bgn(), rdr.Key_pos_end());}
- public void Sort_do(byte[] line, int key_bgn, int key_end) {// EX: abc|123
- byte[] cur_word = Bry_.Mid(line, key_bgn, key_end);
- if (!Bry_.Eq(cur_word, prv_word)) { // if new_word, insert old one
- if (prv_word != null) // do not insert for 1st word
- search_word_tbl.Insert_cmd_by_batch(search_id, prv_word, page_count);
- ++search_id;
- prv_word = cur_word;
- page_count = 0;
- }
- search_page_tbl.Insert_cmd_by_batch(search_id, Base85_.To_int_by_bry(line, key_end + 1, key_end + 5)); // -1: ignore rdr_dlm
- ++page_count;
- if (search_id % 10000 == 0) usr_dlg.Prog_many("", "", "creating title index: count=~{0}", search_id);
- }
- public void Sort_end() {
- search_word_tbl.Insert_cmd_by_batch(search_id, prv_word, page_count);
- search_page_tbl.Insert_end(); search_word_tbl.Insert_end();
- Xowd_db_file search_db = db_mgr.Db__search();
- Xowd_search_temp_tbl search_temp_tbl = new Xowd_search_temp_tbl(search_db.Conn(), db_mgr.Props().Schema_is_1());
- search_temp_tbl.Create_idx(usr_dlg, search_page_tbl, search_word_tbl);
- search_word_tbl.Ddl__page_count__cfg(search_db.Tbl__cfg());
- }
-}
-class Xob_search_wkr extends Xob_itm_basic_base implements Xobd_wkr {
- private Xowd_db_file search_db; private Xowd_search_temp_tbl search_temp_tbl;
- private Xol_lang_itm lang; private final Bry_bfr tmp_bfr = Bry_bfr.new_(255); private final Ordered_hash list = Ordered_hash_.New_bry();
- public String Wkr_key() {return Xob_cmd_keys.Key_text_search_wkr;}
- public void Wkr_ini(Xob_bldr bldr) {}
- public void Wkr_bgn(Xob_bldr bldr) {
- if (!Env_.Mode_testing()) wiki.Init_assert();
- this.lang = wiki.Lang();
- Xowd_db_mgr db_mgr = wiki.Db_mgr_as_sql().Core_data_mgr();
- this.search_db = Xob_search_sql_cmd.Dbs__get_or_make(db_mgr);
- this.search_temp_tbl = new Xowd_search_temp_tbl(search_db.Conn(), db_mgr.Props().Schema_is_1());
- search_temp_tbl.Create_tbl();
- search_temp_tbl.Insert_bgn();
- }
- public void Wkr_run(Xowd_page_itm page) {
- try {
- int page_id = page.Id();
- byte[] ttl = page.Ttl_page_db();
- byte[][] words = Xob_search_base.Split_ttl_into_words(lang, list, tmp_bfr, ttl);
- int len = words.length;
- for (int i = 0; i < len; ++i) {
- byte[] word = words[i];
- search_temp_tbl.Insert_cmd_by_batch(page_id, word);
- }
- } catch (Exception e) {bldr.Usr_dlg().Warn_many("", "", "search_index:fatal error: err=~{0}", Err_.Message_gplx_full(e));} // never let single page crash entire import
- }
- public void Wkr_end() {
- search_temp_tbl.Make_data(usr_dlg, search_db.Tbl__search_link(), search_db.Tbl__search_word());
- search_temp_tbl.Insert_end();
- }
- public void Wkr_print() {}
- @Override public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
- if (ctx.Match(k, Invk_set)) {}
- else return GfoInvkAble_.Rv_unhandled;
- return this;
- } private static final String Invk_set = "set";
-}
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/sqls/Xob_search_sql_wkr_tst.java b/400_xowa/src/gplx/xowa/bldrs/cmds/texts/sqls/Xob_search_sql_wkr_tst.java
deleted file mode 100644
index 2be2b4949..000000000
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/sqls/Xob_search_sql_wkr_tst.java
+++ /dev/null
@@ -1,68 +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 .
-*/
-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 org.junit.*; import gplx.dbs.*; import gplx.xowa.wikis.data.tbls.*;
-public class Xob_search_sql_wkr_tst {
- private final Xob_search_sql_wkr_fxt fxt = new Xob_search_sql_wkr_fxt();
- @Test public void Basic() {
- fxt.Exec__sort
- ( "a|!!!!#"
- , "a|!!!!$"
- , "b|!!!!#"
- , "b|!!!!$"
- , "b|!!!!%"
- );
- fxt.Test__search_word
- ( "1|a|2"
- , "2|b|3"
- );
- fxt.Test__search_link
- ( "1|2"
- , "1|3"
- , "2|2"
- , "2|3"
- , "2|4"
- );
- }
-}
-class Xob_search_sql_wkr_fxt {
- private final Xob_search_sql_wkr wkr;
- private final Xowe_wiki wiki;
- private final Bry_bfr tmp_bfr = Bry_bfr.new_();
- public Xob_search_sql_wkr_fxt() {
- Xoae_app app = Xoa_app_fxt.app_();
- this.wiki = Xoa_app_fxt.wiki_tst_(app);
- Xoa_test_.Db__init__mem(wiki);
- wkr = new Xob_search_sql_wkr(app.Bldr(), wiki);
- }
- public void Exec__sort(String... lines_str) {
- byte[][] lines = Bry_.Ary(lines_str);
- wkr.Sort_bgn();
- for (byte[] line : lines)
- wkr.Sort_do(line, 0, Bry_find_.Find_fwd(line, Byte_ascii.Pipe));
- wkr.Sort_end();
- }
- public void Test__search_word(String... lines) {
- Xowd_search_word_tbl tbl = wiki.Data__core_mgr().Db__search().Tbl__search_word();
- Tfds.Eq_str_lines(String_.Concat_lines_nl(lines), Xoa_test_.Db__print_tbl_as_str(tmp_bfr, tbl.conn, tbl.Tbl_name(), tbl.Fld_id(), tbl.Fld_text(), tbl.Fld_page_count()));
- }
- public void Test__search_link(String... lines) {
- Xowd_search_link_tbl tbl = wiki.Data__core_mgr().Db__search().Tbl__search_link();
- Tfds.Eq_str_lines(String_.Concat_lines_nl(lines), Xoa_test_.Db__print_tbl_as_str(tmp_bfr, tbl.conn, tbl.Tbl_name(), tbl.Fld_word_id(), tbl.Fld_page_id()));
- }
-}
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/Xob_search_base.java b/400_xowa/src/gplx/xowa/bldrs/cmds/texts/tdbs/Srch_bldr_wkr_base.java
similarity index 85%
rename from 400_xowa/src/gplx/xowa/bldrs/cmds/texts/Xob_search_base.java
rename to 400_xowa/src/gplx/xowa/bldrs/cmds/texts/tdbs/Srch_bldr_wkr_base.java
index aa0f4fae1..d5fb3c317 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/Xob_search_base.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/texts/tdbs/Srch_bldr_wkr_base.java
@@ -15,18 +15,13 @@ 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 .
*/
-package gplx.xowa.bldrs.cmds.texts; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.cmds.*;
-import gplx.core.primitives.*;
-import gplx.xowa.bldrs.wkrs.*; import gplx.xowa.bldrs.wtrs.*;
-import gplx.core.ios.*;
-import gplx.xowa.langs.*;
-import gplx.xowa.wikis.nss.*;
-import gplx.xowa.wikis.data.*; import gplx.xowa.wikis.dbs.*; import gplx.xowa.wikis.tdbs.*; import gplx.xowa.wikis.data.tbls.*;
-public abstract class Xob_search_base extends Xob_itm_dump_base implements Xobd_wkr, GfoInvkAble {
+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.primitives.*; import gplx.core.ios.*;
+import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.wkrs.*; import gplx.xowa.bldrs.wtrs.*;
+import gplx.xowa.langs.*; import gplx.xowa.wikis.nss.*; import gplx.xowa.wikis.dbs.*; import gplx.xowa.wikis.tdbs.*; import gplx.xowa.wikis.data.tbls.*;
+public abstract class Srch_bldr_wkr_base extends Xob_itm_dump_base implements Xob_page_wkr {
private final Ordered_hash list = Ordered_hash_.New(); private Xol_lang_itm lang;
public abstract String Wkr_key();
- public abstract Io_make_cmd Make_cmd_site();
- public void Wkr_ini(Xob_bldr bldr) {}
public void Wkr_bgn(Xob_bldr bldr) {
make_dir = wiki.Tdb_fsys_mgr().Ns_dir();
this.Init_dump(this.Wkr_key(), make_dir);
@@ -36,7 +31,7 @@ public abstract class Xob_search_base extends Xob_itm_dump_base implements Xobd_
ns_main = wiki.Ns_mgr().Ns_main();
} private Xob_tmp_wtr_mgr tmp_wtr_mgr; private Xow_ns ns_main;
public void Wkr_run(Xowd_page_itm page) {
-// if (page.Ns_id() != Xow_ns_.Tid__main) return; // limit to main ns for now
+ // if (page.Ns_id() != Xow_ns_.Tid__main) return; // limit to main ns for now
try {
byte[] ttl = page.Ttl_page_db();
byte[][] words = Split_ttl_into_words(lang, list, dump_bfr, ttl);
@@ -63,8 +58,7 @@ public abstract class Xob_search_base extends Xob_itm_dump_base implements Xobd_
tmp_wtr_mgr.Rls_all();
if (delete_temp) Io_mgr.Instance.DeleteDirDeep(temp_dir);
}
- public void Wkr_print() {}
- // private static final int row_fixed_len = 5 + 1 + 1 + 1; // 5=rowId; 1=|; 1=NmsOrd; 1=|
+ public abstract Io_make_cmd Make_cmd_site();
public static byte[][] Split_ttl_into_words(Xol_lang_itm lang, Ordered_hash list, Bry_bfr bfr, byte[] ttl) {
if (lang != null) // null lang passed in by searcher
ttl = lang.Case_mgr().Case_build_lower(ttl);
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/tdbs/Xob_calc_stats_cmd.java b/400_xowa/src/gplx/xowa/bldrs/cmds/texts/tdbs/Xob_calc_stats_cmd.java
index 8d81b7add..db2f8ede7 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/tdbs/Xob_calc_stats_cmd.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/texts/tdbs/Xob_calc_stats_cmd.java
@@ -18,7 +18,7 @@ along with this program. If not, see .
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.bldrs.wkrs.*;
import gplx.xowa.wikis.nss.*;
-import gplx.xowa.wikis.metas.*; import gplx.xowa.wikis.data.tbls.*;
+import gplx.xowa.wikis.data.site_stats.*; import gplx.xowa.wikis.data.tbls.*;
import gplx.xowa.wikis.tdbs.*; import gplx.xowa.wikis.tdbs.hives.*; import gplx.xowa.wikis.tdbs.xdats.*;
public class Xob_calc_stats_cmd extends Xob_itm_basic_base implements Xob_cmd {
public Xob_calc_stats_cmd(Xob_bldr bldr, Xowe_wiki wiki) {this.Cmd_ctor(bldr, wiki);}
@@ -41,14 +41,14 @@ public class Xob_calc_stats_cmd extends Xob_itm_basic_base implements Xob_cmd {
int count_file = Calc_count_articles(wiki.Ns_mgr().Ns_file());
Bry_bfr bfr = Bry_bfr.new_();
Gen_call(Bool_.Y, bfr, Xowe_wiki.Invk_stats);
- Gen_call(Bool_.N, bfr, Xow_wiki_stats.Invk_number_of_articles_, count_main);
- Gen_call(Bool_.N, bfr, Xow_wiki_stats.Invk_number_of_files_, count_file);
- Gen_call(Bool_.N, bfr, Xow_wiki_stats.Invk_number_of_pages_, total);
+ 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);
+ Gen_call(Bool_.N, bfr, Xow_site_stats_mgr.Invk_number_of_pages_, total);
for (int i = 0; i < ns_len; i++) {
Xow_ns ns = wiki.Ns_mgr().Ords_ary()[i];
if (ns.Id() < 0) continue;
bfr.Add_byte_nl();
- Gen_call(Bool_.N, bfr, Xow_wiki_stats.Invk_number_of_articles_in_ns_, ns.Num_str(), Int_.To_str_pad_bgn_zero(ns.Count(), 10));
+ Gen_call(Bool_.N, bfr, Xow_site_stats_mgr.Invk_number_of_articles_in_ns_, ns.Num_str(), Int_.To_str_pad_bgn_zero(ns.Count(), 10));
}
bfr.Add_byte_nl().Add_byte(Byte_ascii.Semic).Add_byte_nl();
Io_url wiki_gfs = Wiki_gfs_url(wiki);
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/tdbs/Xob_init_base_tst.java b/400_xowa/src/gplx/xowa/bldrs/cmds/texts/tdbs/Xob_init_base_tst.java
index 2a9993444..9f84b00cd 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/tdbs/Xob_init_base_tst.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/texts/tdbs/Xob_init_base_tst.java
@@ -33,8 +33,8 @@ public class Xob_init_base_tst {
class Xob_init_base_fxt {
public void Clear() {
if (app == null) {
- app = Xoa_app_fxt.app_();
- wiki = Xoa_app_fxt.wiki_tst_(app);
+ app = Xoa_app_fxt.Make__app__edit();
+ wiki = Xoa_app_fxt.Make__wiki__edit(app);
}
Io_mgr.Instance.InitEngine_mem();
}
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/tdbs/Xob_make_id_wkr.java b/400_xowa/src/gplx/xowa/bldrs/cmds/texts/tdbs/Xob_make_id_wkr.java
index 7949edb5c..5680c2fd9 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/tdbs/Xob_make_id_wkr.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/texts/tdbs/Xob_make_id_wkr.java
@@ -18,10 +18,9 @@ along with this program. If not, see .
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 Xobd_wkr, GfoInvkAble {
+public class Xob_make_id_wkr extends Xob_itm_dump_base implements Xob_page_wkr, GfoInvkAble {
public Xob_make_id_wkr(Xob_bldr bldr, Xowe_wiki wiki) {this.Cmd_ctor(bldr, wiki);}
public String Wkr_key() {return KEY;} public static final String KEY = "core.make_id";
- public void Wkr_ini(Xob_bldr bldr) {}
public void Wkr_bgn(Xob_bldr bldr) {
this.Init_dump(KEY, wiki.Tdb_fsys_mgr().Site_dir().GenSubDir(Xotdb_dir_info_.Name_id));
}
@@ -34,6 +33,5 @@ public class Xob_make_id_wkr extends Xob_itm_dump_base implements Xobd_wkr, GfoI
this.Term_dump(new Xob_make_cmd_site(bldr.Usr_dlg(), make_dir, make_fil_len));
if (delete_temp) Io_mgr.Instance.DeleteDirDeep(temp_dir);
}
- public void Wkr_print() {}
static final int row_fixed_len = 25 + 1 + 7; // 25=5 base_85 flds; 1=Redirect; 7=dlm
}
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/tdbs/Xob_page_txt.java b/400_xowa/src/gplx/xowa/bldrs/cmds/texts/tdbs/Xob_page_txt.java
index 06484a8a6..009f71215 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/tdbs/Xob_page_txt.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/texts/tdbs/Xob_page_txt.java
@@ -21,10 +21,9 @@ 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 Xobd_wkr, GfoInvkAble {
+public class Xob_page_txt extends Xob_itm_dump_base implements Xob_page_wkr, GfoInvkAble {
public Xob_page_txt(Xob_bldr bldr, Xowe_wiki wiki) {this.Cmd_ctor(bldr, wiki);}
public String Wkr_key() {return Xob_cmd_keys.Key_tdb_make_page;}
- public void Wkr_ini(Xob_bldr bldr) {}
public void Wkr_bgn(Xob_bldr bldr) {
redirect_mgr = wiki.Redirect_mgr(); page_storage_type = wiki.Appe().Setup_mgr().Dump_mgr().Data_storage_format();
fsys_mgr = wiki.Tdb_fsys_mgr();
@@ -62,7 +61,6 @@ public class Xob_page_txt extends Xob_itm_dump_base implements Xobd_wkr, GfoInvk
ttl_wtr_mgr.Rls_all();
if (delete_temp) Io_mgr.Instance.DeleteDirDeep(temp_dir);
}
- public void Wkr_print() {bldr.Usr_dlg().Note_many(GRP_KEY, "print", "~{0}", stat_mgr.Print(wiki.Ns_mgr()));}
Xob_xdat_file_wtr Page_wtr_get(Xow_ns ns) {
Xob_xdat_file_wtr rv = page_wtr_regy[ns.Ord()];
if (rv == null) {
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/tdbs/Xob_parse_dump_templates_cmd.java b/400_xowa/src/gplx/xowa/bldrs/cmds/texts/tdbs/Xob_parse_dump_templates_cmd.java
index 6e06ba2cc..09559356a 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/tdbs/Xob_parse_dump_templates_cmd.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/texts/tdbs/Xob_parse_dump_templates_cmd.java
@@ -18,11 +18,10 @@ along with this program. If not, see .
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 Xobd_wkr, GfoInvkAble {
+public class Xob_parse_dump_templates_cmd extends Xob_itm_dump_base implements Xob_page_wkr, GfoInvkAble {
public Xob_parse_dump_templates_cmd(Xob_bldr bldr, Xowe_wiki wiki) {this.Cmd_ctor(bldr, wiki);}
public String 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
- public void Wkr_ini(Xob_bldr bldr) {}
public void Wkr_bgn(Xob_bldr bldr) {
Init_dump(KEY);
}
@@ -33,5 +32,4 @@ public class Xob_parse_dump_templates_cmd extends Xob_itm_dump_base implements X
Xotdb_page_itm_.Txt_page_save(dump_bfr, id, page.Modified_on(), title, text, true);
}
public void Wkr_end() {super.Flush_dump();}
- public void Wkr_print() {}
}
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/tdbs/Xob_search_base_tst.java b/400_xowa/src/gplx/xowa/bldrs/cmds/texts/tdbs/Xob_search_base_tst.java
index 273e7cba5..99c2511e4 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/tdbs/Xob_search_base_tst.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/texts/tdbs/Xob_search_base_tst.java
@@ -17,6 +17,7 @@ along with this program. If not, see .
*/
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.searchs.dbs.bldrs.*;
public class Xob_search_base_tst {
@Test public void Split() {
tst_Split("a", "a");
@@ -47,7 +48,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_();
- byte[][] actl_bry = Xob_search_base.Split_ttl_into_words(fxt.App().Lang_mgr().Lang_en(), list, bfr, Bry_.new_u8(raw));
+ 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++)
actl[i] = String_.new_u8(actl_bry[i]);
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/tdbs/Xob_search_tdb.java b/400_xowa/src/gplx/xowa/bldrs/cmds/texts/tdbs/Xob_search_tdb.java
index 843ccbead..6b6c93dd2 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/tdbs/Xob_search_tdb.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/texts/tdbs/Xob_search_tdb.java
@@ -16,7 +16,8 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
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.*;
-public class Xob_search_tdb extends Xob_search_base {
+import gplx.xowa.addons.searchs.dbs.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 Wkr_key() {return Xob_cmd_keys.Key_tdb_make_search_title;}
@Override public gplx.core.ios.Io_make_cmd Make_cmd_site() {
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/tdbs/Xob_tst.java b/400_xowa/src/gplx/xowa/bldrs/cmds/texts/tdbs/Xob_tst.java
index 606ed1c98..9b78cb72e 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/texts/tdbs/Xob_tst.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/texts/tdbs/Xob_tst.java
@@ -170,11 +170,11 @@ public class Xob_tst {
, "a", "b", "c");
}
private void tst_Parse(String raw, String... expd) {
- Xoae_app app = Xoa_app_fxt.app_(); // NOTE: resets mem file system, so must happen first
+ Xoae_app app = Xoa_app_fxt.Make__app__edit(); // NOTE: resets mem file system, so must happen first
Io_url url = Io_url_.mem_fil_("mem/raw_page.csv");
Io_mgr.Instance.SaveFilStr(url, raw);
Xotdb_page_raw_parser parser = new Xotdb_page_raw_parser();
- Xowe_wiki wiki = Xoa_app_fxt.wiki_tst_(app);
+ 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_();
Xowd_page_itm page = new Xowd_page_itm();
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/utils/Xob_alert_cmd.java b/400_xowa/src/gplx/xowa/bldrs/cmds/utils/Xob_alert_cmd.java
new file mode 100644
index 000000000..4e1e75d4c
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/utils/Xob_alert_cmd.java
@@ -0,0 +1,31 @@
+/*
+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 .
+*/
+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.*;
+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 = "developer forgot to include message";
+ @Override public String Cmd_key() {return Xob_cmd_keys.Key_util_alert;}
+ @Override public void Cmd_run() {
+ Gfui_kit kit = app.Gui_mgr().Kit();
+ if (kit.Tid() != Gfui_kit_.Swt_tid) return;
+ kit.Ask_ok("", "", msg);
+ }
+ @Override public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {return GfoInvkAble_.Rv_unhandled;}
+}
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/utils/Xob_cleanup_cmd.java b/400_xowa/src/gplx/xowa/bldrs/cmds/utils/Xob_cleanup_cmd.java
index b0c3a8f72..94c67af09 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/utils/Xob_cleanup_cmd.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/utils/Xob_cleanup_cmd.java
@@ -36,7 +36,7 @@ public class Xob_cleanup_cmd extends Xob_itm_basic_base implements Xob_cmd {
else if (String_.Eq(bz2_cmd, "move"))
Io_mgr.Instance.MoveFil(bz2_fil, bz2_fil.OwnerDir().OwnerDir().GenSubFil_nest("done", bz2_fil.NameAndExt()));
}
- if (delete_xml) Io_mgr.Instance.DeleteFil(Xobd_rdr.Find_fil_by(wiki_root_dir, "*.xml"));
+ if (delete_xml) Io_mgr.Instance.DeleteFil(Xob_page_wkr_cmd.Find_fil_by(wiki_root_dir, "*.xml"));
if (delete_tdb) {
usr_dlg.Note_many("", "", "bldr.wiki:deleting tdb wiki");
Delete_tdb(wiki_root_dir);
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/utils/Xob_delete_cmd.java b/400_xowa/src/gplx/xowa/bldrs/cmds/utils/Xob_delete_cmd.java
new file mode 100644
index 000000000..66834f1f2
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/utils/Xob_delete_cmd.java
@@ -0,0 +1,49 @@
+/*
+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 .
+*/
+package gplx.xowa.bldrs.cmds.utils; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.cmds.*;
+import gplx.dbs.*; import gplx.core.ios.*; import gplx.core.envs.*;
+import gplx.xowa.bldrs.wkrs.*; import gplx.xowa.bldrs.wms.dumps.*;
+public class Xob_delete_cmd extends Xob_cmd__base implements Xob_cmd {
+ private String[] patterns_ary = String_.Ary_empty;
+ public Xob_delete_cmd(Xob_bldr bldr, Xowe_wiki wiki) {super(bldr, wiki);}
+ public Xob_delete_cmd Patterns_ary_(String... v) {this.patterns_ary = v; return this;}
+ @Override public String Cmd_key() {return Xob_cmd_keys.Key_util_delete;}
+ @Override public void Cmd_run() {
+ int len = patterns_ary.length; if (len == 0) return;
+
+ // build filter EX: '*.xml|*.txt'
+ 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();
+ bfr.Add_str_u8(pattern);
+ }
+
+ // get files; iterate and delete
+ String file_pattern = bfr.To_str_and_clear();
+ Io_url[] files = Io_mgr.Instance.QueryDir_args(wiki.Fsys_mgr().Root_dir()).Recur_(Bool_.N).FilPath_(file_pattern).ExecAsUrlAry();
+ int files_len = files.length;
+ for (int i = 0; i < files_len; ++i) {
+ Io_url file = files[i];
+ if (file.Ext() == ".sqlite3")
+ Db_conn_bldr.Instance.Get_or_noop(file).Rls_conn();
+ Io_mgr.Instance.DeleteFil(file);
+ }
+ }
+ @Override public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {return GfoInvkAble_.Null;}
+}
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/utils/Xob_download_wkr.java b/400_xowa/src/gplx/xowa/bldrs/cmds/utils/Xob_download_cmd.java
similarity index 77%
rename from 400_xowa/src/gplx/xowa/bldrs/cmds/utils/Xob_download_wkr.java
rename to 400_xowa/src/gplx/xowa/bldrs/cmds/utils/Xob_download_cmd.java
index 65af5e23e..8ebcd85a6 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/utils/Xob_download_wkr.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/utils/Xob_download_cmd.java
@@ -17,19 +17,18 @@ along with this program. If not, see .
*/
package gplx.xowa.bldrs.cmds.utils; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.cmds.*;
import gplx.dbs.*; import gplx.core.ios.*; import gplx.core.envs.*;
-import gplx.xowa.bldrs.wkrs.*;
-import gplx.xowa.bldrs.wms.dumps.*;
-public class Xob_download_wkr extends Xob_itm_basic_base implements Xob_cmd {
- private String dump_date = "latest";
- private String dump_type = null;
- private String dump_src = null;
+import gplx.xowa.bldrs.wkrs.*; import gplx.xowa.bldrs.wms.dumps.*;
+public class Xob_download_cmd extends Xob_cmd__base implements Xob_cmd {
+ private String dump_date = "latest", dump_type = null, dump_src = null;
private Io_url dump_trg_zip = null, dump_trg_bin = null;
private boolean unzip = true;
- public Xob_download_wkr(Xob_bldr bldr, Xowe_wiki wiki) {this.Cmd_ctor(bldr, wiki);}
- public String Cmd_key() {return Xob_cmd_keys.Key_util_download;}
- public void Cmd_init(Xob_bldr bldr) {}
- public void Cmd_bgn(Xob_bldr bldr) {
- if (dump_type == null) throw Err_.new_wo_type("dump_type must be specified");
+ public Xob_download_cmd(Xob_bldr bldr, Xowe_wiki wiki) {super(bldr, wiki);}
+ public Xob_download_cmd Dump_type_(String v) {dump_type = v; return this;}
+ @Override public String Cmd_key() {return Xob_cmd_keys.Key_util_download;}
+ @Override public void Cmd_run() {
+ // init vars; if no explicit values, calc defaults;
+ if (dump_type == null) throw Err_.new_("bldr", "dump_type must be specified");
+ if (!gplx.core.ios.IoEngine_system.Web_access_enabled) return;
Xowm_dump_file dump_file = new Xowm_dump_file(wiki.Domain_str(), dump_date, dump_type);
if (dump_src == null) {
dump_file.Server_url_(app.Setup_mgr().Dump_mgr().Server_urls()[0]);
@@ -39,33 +38,29 @@ public class Xob_download_wkr extends Xob_itm_basic_base implements Xob_cmd {
dump_trg_zip = wiki.Fsys_mgr().Root_dir().GenSubFil(dump_file.File_name());
if (dump_trg_bin == null && unzip)
dump_trg_bin = dump_trg_zip.GenNewNameAndExt(dump_trg_zip.NameOnly()); // convert a.sql.gz -> a.sql
- }
- public void Cmd_run() {
+ // download
usr_dlg.Note_many("", "", "downloading file: now=~{0} src=~{1} trg=~{2}", DateAdp_.Now().XtoStr_fmt_yyyyMMdd_HHmmss(), dump_src, dump_trg_zip.OwnerDir());
IoEngine_xrg_downloadFil download_wkr = app.Wmf_mgr().Download_wkr().Download_xrg();
download_wkr.Src_last_modified_query_(false).Init(dump_src, dump_trg_zip);
if (!download_wkr.Exec())
usr_dlg.Warn_many("", "", "download failed: src=~{0} trg=~{1} err=~{2}", dump_src, dump_trg_zip.Raw(), Err_.Message_gplx_full(download_wkr.Rslt_err()));
- if (unzip) {
+ if (unzip) { // parsing unzipped file is faster, but takes up more storage space
usr_dlg.Note_many("", "", "unzipping file: now=~{0} trg=~{1}", DateAdp_.Now().XtoStr_fmt_yyyyMMdd_HHmmss(), dump_trg_bin.Raw());
Xob_unzip_wkr unzip_wkr = new Xob_unzip_wkr().Init(app).Process_run_mode_(Process_adp.Run_mode_sync_block);
unzip_wkr.Decompress(dump_trg_zip, dump_trg_bin);
}
}
- public void Cmd_end() {}
- public void Cmd_term() {}
@Override public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
if (String_.Eq(k, Invk_dump_date_)) dump_date = m.ReadStr("v");
else if (String_.Eq(k, Invk_dump_type_)) dump_type = m.ReadStr("v");
- else if (String_.Eq(k, Invk_unzip_)) unzip = m.ReadYn("v");
else if (String_.Eq(k, Invk_dump_src_)) dump_src = m.ReadStr("v");
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;
return this;
}
private static final String
Invk_dump_date_ = "dump_date_", Invk_dump_type_ = "dump_type_", Invk_unzip_ = "unzip_"
- , Invk_dump_src_ = "dump_src_", Invk_dump_trg_zip_ = "dump_trg_zip_", Invk_dump_trg_bin_ = "dump_trg_bin_"
- ;
+ , Invk_dump_src_ = "dump_src_", Invk_dump_trg_zip_ = "dump_trg_zip_", Invk_dump_trg_bin_ = "dump_trg_bin_";
}
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/utils/Xob_exec_sql_cmd.java b/400_xowa/src/gplx/xowa/bldrs/cmds/utils/Xob_exec_sql_cmd.java
index 5bbb91791..5d2860790 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/utils/Xob_exec_sql_cmd.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/utils/Xob_exec_sql_cmd.java
@@ -26,7 +26,7 @@ public class Xob_exec_sql_cmd implements Xob_cmd {
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_at(file_idx);
+ Xowd_db_file file = fsys_mgr.Dbs__get_by_id(file_idx);
app.Usr_dlg().Plog_many("", "", "exec_sql: running sql; file_idx=~{0} sql=~{1}", file_idx, sql);
file.Conn().Exec_sql(sql);
}
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/utils/Xob_site_meta_cmd.java b/400_xowa/src/gplx/xowa/bldrs/cmds/utils/Xob_site_meta_cmd.java
index 70322296e..4c3a04a61 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/utils/Xob_site_meta_cmd.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/utils/Xob_site_meta_cmd.java
@@ -21,7 +21,7 @@ import gplx.dbs.*; import gplx.xowa.bldrs.*;
import gplx.xowa.bldrs.wms.*; import gplx.xowa.bldrs.wms.sites.*;
import gplx.xowa.wikis.domains.*; import gplx.xowa.apps.site_cfgs.*;
public class Xob_site_meta_cmd implements Xob_cmd {
- private final Xob_bldr bldr;
+ private final Xob_bldr bldr;
private String[] wikis; private Io_url db_url; private DateAdp cutoff_time;
public Xob_site_meta_cmd(Xob_bldr bldr, Xow_wiki wiki) {this.bldr = bldr;}
public String Cmd_key() {return Xob_cmd_keys.Key_site_meta;}
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/wikis/Xob_image_cmd.java b/400_xowa/src/gplx/xowa/bldrs/cmds/wikis/Xob_image_cmd.java
index f7c49afb8..6d04dadbe 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/wikis/Xob_image_cmd.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/wikis/Xob_image_cmd.java
@@ -32,12 +32,11 @@ public class Xob_image_cmd extends Xob_itm_dump_base implements Xob_cmd, GfoInvk
wiki.Init_assert(); // NOTE: must init wiki for db_mgr_as_sql
Init_dump(Xob_cmd_keys.Key_wiki_image);
if (src_fil == null) {
- src_fil = Xobd_rdr.Find_fil_by(wiki.Fsys_mgr().Root_dir(), "*-image.sql");
+ src_fil = Xob_page_wkr_cmd.Find_fil_by(wiki.Fsys_mgr().Root_dir(), "*-image.sql");
if (src_fil == null) throw Err_.new_wo_type(".sql file not found in dir", "dir", wiki.Fsys_mgr().Root_dir());
}
parser.Src_fil_(src_fil).Trg_fil_gen_(dump_url_gen).Fld_cmd_(this).Flds_req_idx_(20, Fld_img_name, Fld_img_size, Fld_img_width, Fld_img_height, Fld_img_bits, Fld_img_media_type, Fld_img_minor_mime, Fld_img_timestamp);
-
- this.conn = Xob_db_file.new__wiki_image(wiki.Fsys_mgr().Root_dir()).Conn();
+ this.conn = Xob_db_file.New__wiki_image(wiki.Fsys_mgr().Root_dir()).Conn();
conn.Txn_bgn("bldr__image");
this.tbl_image = new Xob_image_tbl();
tbl_image.Create_table(conn);
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/wikis/Xob_image_cmd_tst.java b/400_xowa/src/gplx/xowa/bldrs/cmds/wikis/Xob_image_cmd_tst.java
index 496b6409f..ec7f29bd7 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/wikis/Xob_image_cmd_tst.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/wikis/Xob_image_cmd_tst.java
@@ -17,7 +17,7 @@ along with this program. If not, see .
*/
package gplx.xowa.bldrs.cmds.wikis; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.cmds.*;
import org.junit.*; import gplx.core.ios.*; import gplx.xowa.files.*;
-public class Xob_image_cmd_tst {
+public class Xob_image_cmd_tst {
private Xob_image_cmd_fxt fxt = new Xob_image_cmd_fxt();
@Test public void Basic() {fxt.Init_("A.png" , Xof_media_type.Name_bitmap , Xof_ext_.Bry_png, 220, 110) .Test(Xof_ext_.Id_png);} // A.png -> png
@Test public void Ogg_VIDEO() {fxt.Init_("A.ogg" , Xof_media_type.Name_video , Xof_ext_.Bry_ogg, 220, 110) .Test(Xof_ext_.Id_ogv);} // A.ogg and VIDEO -> ogv
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/wikis/Xob_page_dump_cmd_drop.java b/400_xowa/src/gplx/xowa/bldrs/cmds/wikis/Xob_page_dump_cmd_drop.java
index 5737e8a3b..cec4bf866 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/wikis/Xob_page_dump_cmd_drop.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/wikis/Xob_page_dump_cmd_drop.java
@@ -31,7 +31,7 @@ public class Xob_page_dump_cmd_drop extends Xob_itm_basic_base implements Xob_cm
case Xowd_db_file_.Tid_wiki_solo:
case Xowd_db_file_.Tid_text_solo:
case Xowd_db_file_.Tid_text:
- db_file.Conn().Ddl_delete_tbl(Xobd_page_dump_tbl.Tbl_name);
+ db_file.Conn().Meta_tbl_drop(Xobd_page_dump_tbl.Tbl_name);
break;
}
}
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/wikis/Xob_page_dump_tbl.java b/400_xowa/src/gplx/xowa/bldrs/cmds/wikis/Xob_page_dump_tbl.java
index fd5c58e20..7f727cd71 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/wikis/Xob_page_dump_tbl.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/wikis/Xob_page_dump_tbl.java
@@ -29,12 +29,11 @@ class Xobd_page_dump_tbl {
this.fld_is_redirect = flds.Add_int("page_is_redirect");
}
public void Create_data(Io_url page_db_url, int text_db_id) {
- conn.Ddl_create_tbl(Dbmeta_tbl_itm.New(Tbl_name, flds));
+ conn.Meta_tbl_create(Dbmeta_tbl_itm.New(Tbl_name, flds));
conn.Stmt_delete(Tbl_name).Exec_delete(); // always clear tables again; allows commands to be rerun; DATE:2015-08-04
- Db_attach_cmd.new_(conn, "page_db", page_db_url)
- .Add_fmt("text_db_prep.clone_page", Sql_insert_data, text_db_id)
- .Exec();
- conn.Ddl_create_idx(Dbmeta_idx_itm.new_unique_by_tbl(Tbl_name, "main", fld_id, fld_namespace, fld_is_redirect, fld_title));
+ new Db_attach_mgr(conn, new Db_attach_itm("page_db", page_db_url))
+ .Exec_sql_w_msg("text_db_prep.clone_page", Sql_insert_data, text_db_id);
+ conn.Meta_idx_create(Dbmeta_idx_itm.new_unique_by_tbl(Tbl_name, "main", fld_id, fld_namespace, fld_is_redirect, fld_title));
}
private static final String Sql_insert_data = String_.Concat_lines_nl
( "INSERT INTO page_dump (page_id, page_title, page_namespace, page_is_redirect)"
@@ -42,7 +41,7 @@ class Xobd_page_dump_tbl {
, ", p.page_title"
, ", p.page_namespace"
, ", p.page_is_redirect"
- , "FROM page p"
+ , "FROM page p"
, "WHERE p.page_text_db_id = {0};"
);
}
diff --git a/400_xowa/src/gplx/xowa/bldrs/cmds/wikis/Xob_redirect_tbl.java b/400_xowa/src/gplx/xowa/bldrs/cmds/wikis/Xob_redirect_tbl.java
index fa8ccd926..f544f9305 100644
--- a/400_xowa/src/gplx/xowa/bldrs/cmds/wikis/Xob_redirect_tbl.java
+++ b/400_xowa/src/gplx/xowa/bldrs/cmds/wikis/Xob_redirect_tbl.java
@@ -21,7 +21,7 @@ import gplx.langs.htmls.encoders.*;
public class Xob_redirect_tbl {
private Gfo_url_encoder encoder; private Db_stmt insert_stmt;
public Xob_redirect_tbl(Io_url root_dir, Gfo_url_encoder encoder) {
- this.db_file = Xob_db_file.new__wiki_redirect(root_dir);
+ this.db_file = Xob_db_file.New__wiki_redirect(root_dir);
this.conn = db_file.Conn();
this.encoder = encoder;
}
@@ -74,7 +74,7 @@ public class Xob_redirect_tbl {
private static final String
Fld_src_id = "src_id", Fld_src_ttl = "src_ttl", Fld_trg_id = "trg_id", Fld_trg_ns = "trg_ns", Fld_trg_ttl = "trg_ttl", Fld_trg_anchor = "trg_anchor"
, Fld_trg_is_redirect = "trg_is_redirect", Fld_redirect_count = "redirect_count";
- private static final String Tbl_sql = String_.Concat_lines_nl
+ private static final String Tbl_sql = String_.Concat_lines_nl
( "CREATE TABLE IF NOT EXISTS redirect"
, "( src_id integer NOT NULL PRIMARY KEY"
, ", src_ttl varchar(255) NOT NULL"
@@ -86,15 +86,15 @@ public class Xob_redirect_tbl {
, ", redirect_count integer NOT NULL"
, ");"
);
- private static final Db_idx_itm
+ private static final Db_idx_itm
Idx_trg_ttl = Db_idx_itm.sql_("CREATE INDEX IF NOT EXISTS redirect__trg_ttl ON redirect (trg_ttl);")
, Idx_trg_id = Db_idx_itm.sql_("CREATE INDEX IF NOT EXISTS redirect__trg_id ON redirect (trg_id);")
, Idx_trg_src = Db_idx_itm.sql_("CREATE INDEX IF NOT EXISTS redirect__trg_src ON redirect (src_id, trg_id);")
;
-// public static final String
+// public static final String
// Sql_ddl__page_redirect_id = "ALTER TABLE page ADD COLUMN page_redirect_id integer NOT NULL DEFAULT '-1'"
// ;
- private static final String
+ private static final String
Sql_get_page_data = String_.Concat_lines_nl // get data from page table for initial redirect dump
( "REPLACE INTO redirect "
, "SELECT t.src_id"
@@ -147,7 +147,7 @@ public class Xob_redirect_tbl {
)
, Sql_update_redirect_id = String_.Concat_lines_nl_skip_last
( "REPLACE INTO"
- , " page_db.page"
+ , " page_db.page (page_id, page_namespace, page_title, page_is_redirect, page_touched, page_len, page_random_int, page_text_db_id, page_html_db_id, page_redirect_id, page_score)"
, "SELECT p.page_id"
, ", p.page_namespace"
, ", p.page_title"
@@ -158,6 +158,7 @@ public class Xob_redirect_tbl {
, ", p.page_text_db_id"
, ", p.page_html_db_id"
, ", r.trg_id"
+ , ", p.page_score"
, "FROM redirect r"
, " JOIN page_db.page p ON r.src_id = p.page_id"
)
diff --git a/400_xowa/src/gplx/xowa/bldrs/css/Xob_url_fixer.java b/400_xowa/src/gplx/xowa/bldrs/css/Xob_url_fixer.java
index e7f209c93..57754501b 100644
--- a/400_xowa/src/gplx/xowa/bldrs/css/Xob_url_fixer.java
+++ b/400_xowa/src/gplx/xowa/bldrs/css/Xob_url_fixer.java
@@ -70,7 +70,6 @@ class Xob_url_fixer_tkn {
public byte[] Raw() {return raw;} private byte[] raw;
public int Raw_len() {return raw_len;} private int raw_len;
public static Xob_url_fixer_tkn new_(int tid, String raw) {return new Xob_url_fixer_tkn(tid, Bry_.new_u8(raw));}
-
private static void trie_add(Btrie_slim_mgr trie, int tid, String s) {trie.Add_obj(s, new_(tid, s));}
public static final int Tid_bgn_slash_1 = 1, Tid_bgn_slash_2 = 2, Tid_bgn_http = 3, Tid_bgn_https = 4;
private static Btrie_slim_mgr bgn_trie;
diff --git a/400_xowa/src/gplx/xowa/bldrs/filters/dansguardians/Dg_log_mgr.java b/400_xowa/src/gplx/xowa/bldrs/filters/dansguardians/Dg_log_mgr.java
index f443d3e85..867313783 100644
--- a/400_xowa/src/gplx/xowa/bldrs/filters/dansguardians/Dg_log_mgr.java
+++ b/400_xowa/src/gplx/xowa/bldrs/filters/dansguardians/Dg_log_mgr.java
@@ -55,7 +55,7 @@ class Dg_file_tbl {
Dbmeta_tbl_itm meta = Dbmeta_tbl_itm.New(tbl_name, flds
, Dbmeta_idx_itm.new_unique_by_tbl(tbl_name, "file_id", fld_file_id)
);
- conn.Ddl_create_tbl(meta);
+ conn.Meta_tbl_create(meta);
}
stmt_insert = null;
}
@@ -83,7 +83,7 @@ class Dg_rule_tbl implements Rls_able {
Dbmeta_tbl_itm meta = Dbmeta_tbl_itm.New(tbl_name, flds
, Dbmeta_idx_itm.new_unique_by_tbl(tbl_name, "pkey", fld_rule_id)
);
- conn.Ddl_create_tbl(meta);
+ conn.Meta_tbl_create(meta);
}
conn.Rls_reg(this);
}
@@ -119,7 +119,7 @@ class Dg_page_score_tbl implements Rls_able {
Dbmeta_tbl_itm meta = Dbmeta_tbl_itm.New(tbl_name, flds
, Dbmeta_idx_itm.new_unique_by_tbl(tbl_name, "pkey", fld_log_tid, fld_page_id)
);
- conn.Ddl_create_tbl(meta);
+ conn.Meta_tbl_create(meta);
}
stmt_insert = null;
conn.Rls_reg(this);
@@ -155,7 +155,7 @@ class Dg_page_rule_tbl implements Rls_able {
Dbmeta_tbl_itm meta = Dbmeta_tbl_itm.New(tbl_name, flds
, Dbmeta_idx_itm.new_unique_by_tbl(tbl_name, "pkey", fld_log_tid, fld_page_id, fld_rule_id)
);
- conn.Ddl_create_tbl(meta);
+ conn.Meta_tbl_create(meta);
}
stmt_insert = null;
conn.Rls_reg(this);
diff --git a/400_xowa/src/gplx/xowa/bldrs/installs/Xoi_cmd_base.java b/400_xowa/src/gplx/xowa/bldrs/installs/Xoi_cmd_base.java
index 16c849bb6..48fb93b19 100644
--- a/400_xowa/src/gplx/xowa/bldrs/installs/Xoi_cmd_base.java
+++ b/400_xowa/src/gplx/xowa/bldrs/installs/Xoi_cmd_base.java
@@ -103,11 +103,11 @@ 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);
- bldr.Cmd_mgr().Add_many(wiki, Xob_cmd_keys.Key_text_search_cmd);
+ gplx.xowa.addons.searchs.dbs.bldrs.Srch_bldr_mgr_.Setup(wiki);
}
}
@Override public void Process_async_done(Xoae_app app, Xowe_wiki wiki, Xob_bldr bldr) {
app.Usr_dlg().Prog_many("", "", "search2 setup done");
- wiki.Db_mgr().Search_version_refresh();
+ // wiki.Db_mgr().Search_version_refresh();
}
}
diff --git a/400_xowa/src/gplx/xowa/bldrs/installs/Xoi_cmd_mgr.java b/400_xowa/src/gplx/xowa/bldrs/installs/Xoi_cmd_mgr.java
index 95e711b66..939dd000e 100644
--- a/400_xowa/src/gplx/xowa/bldrs/installs/Xoi_cmd_mgr.java
+++ b/400_xowa/src/gplx/xowa/bldrs/installs/Xoi_cmd_mgr.java
@@ -50,7 +50,7 @@ public class Xoi_cmd_mgr implements GfoInvkAble {
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 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 Help:Import/Script.");
+ 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
return;
}
int cmds_len = cmds.Count();
@@ -75,7 +75,7 @@ public class Xoi_cmd_mgr implements GfoInvkAble {
String dump_type = m.Args_getAt(2).Val_to_str_or_empty();
Gfo_thread_cmd cmd = null;
for (int i = 3; i < args_len; i++) {
- KeyVal kv = m.Args_getAt(i);
+ Keyval kv = m.Args_getAt(i);
String kv_val = kv.Val_to_str_or_empty();
if (String_.Eq(kv_val, Wiki_cmd_custom))
return Dump_add_many_custom(wiki_key, wiki_date, dump_type, false);
@@ -117,8 +117,8 @@ public class Xoi_cmd_mgr implements GfoInvkAble {
else if (String_.Eq(cmd_key, Xoi_cmd_search2_build.KEY)) return new Xoi_cmd_search2_build(install_mgr, wiki_key).Owner_(this);
else throw Err_.new_unhandled(cmd_key);
}
- public static final String[] Wiki_cmds_valid = new String[] {Xoi_cmd_wiki_download.Key_wiki_download, Xoi_cmd_wiki_unzip.KEY_dump, Xoi_cmd_wiki_import.KEY, Xoi_cmd_wiki_zip.KEY, Xoi_cmd_category2_build.KEY, Xoi_cmd_category2_page_props.KEY_category2, Xoi_cmd_category2_categorylinks.KEY_category2};
- public static final String Wiki_cmd_custom = "wiki.custom", Wiki_cmd_dump_file = "wiki.dump_file";
+ public static final String[] Wiki_cmds_valid = new String[] {Xoi_cmd_wiki_download.Key_wiki_download, Xoi_cmd_wiki_unzip.KEY_dump, Xoi_cmd_wiki_import.KEY, Xoi_cmd_wiki_zip.KEY, Xoi_cmd_category2_build.KEY, Xoi_cmd_category2_page_props.KEY_category2, Xoi_cmd_category2_categorylinks.KEY_category2};
+ public static final String Wiki_cmd_custom = "wiki.custom", Wiki_cmd_dump_file = "wiki.dump_file";
public Gfo_thread_cmd Cmd_add(GfoMsg m) {Gfo_thread_cmd rv = Cmd_new(m); cmds.Add(rv); return rv;}
Gfo_thread_cmd Cmd_new(GfoMsg m) {
String cmd_key = m.ReadStr("v");
diff --git a/400_xowa/src/gplx/xowa/bldrs/installs/Xoi_cmd_wiki_import.java b/400_xowa/src/gplx/xowa/bldrs/installs/Xoi_cmd_wiki_import.java
index 642d63115..71be03c68 100644
--- a/400_xowa/src/gplx/xowa/bldrs/installs/Xoi_cmd_wiki_import.java
+++ b/400_xowa/src/gplx/xowa/bldrs/installs/Xoi_cmd_wiki_import.java
@@ -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.specials.search.Xows_page__search.Version_2)
- bldr.Cmd_mgr().Add_cmd(wiki, Xob_cmd_keys.Key_text_search_wkr);
+ if (wiki.Appe().Setup_mgr().Dump_mgr().Search_version() == gplx.xowa.addons.searchs.specials.Srch_special_page.Version_2)
+ gplx.xowa.addons.searchs.dbs.bldrs.Srch_bldr_mgr_.Setup(wiki);
bldr.Cmd_mgr().Add_cmd(wiki, Xob_cmd_keys.Key_text_term);
}
private void Process_async() {
diff --git a/400_xowa/src/gplx/xowa/bldrs/installs/Xoi_cmd_wiki_tst.java b/400_xowa/src/gplx/xowa/bldrs/installs/Xoi_cmd_wiki_tst.java
index dac07c253..f20c5de5c 100644
--- a/400_xowa/src/gplx/xowa/bldrs/installs/Xoi_cmd_wiki_tst.java
+++ b/400_xowa/src/gplx/xowa/bldrs/installs/Xoi_cmd_wiki_tst.java
@@ -33,7 +33,7 @@ public class Xoi_cmd_wiki_tst {
Bfr_arg__time time_fmtr = new Bfr_arg__time();
for (int i = 0; i < ary_len; i++)
Bld_import_list_itm2(bfr, parser, time_fmtr, ary, i);
- Io_mgr.Instance.SaveFilStr("C:\\temp.txt", bfr.To_str());
+ Io_mgr.Instance.SaveFilStr("C:\\xowa\\user\\temp.txt", bfr.To_str());
}
private void Bld_import_list_itm2(Bry_bfr bfr, Wmf_latest_parser parser, Bfr_arg__time time_fmtr, String[] ary, int i) {
String domain_str = ary[i];
@@ -124,6 +124,6 @@ public class Xoi_cmd_wiki_tst {
}
}
bfr.Add_str_a7("app.bldr.wiki_cfg_bldr.run;").Add_byte_nl();
- Io_mgr.Instance.SaveFilStr("C:\\xowa_build_cfg.gfs", bfr.To_str());
+ Io_mgr.Instance.SaveFilStr("C:\\user\\xowa_build_cfg.gfs", bfr.To_str());
}
}
diff --git a/400_xowa/src/gplx/xowa/bldrs/installs/Xoi_dump_mgr.java b/400_xowa/src/gplx/xowa/bldrs/installs/Xoi_dump_mgr.java
index de9c912b8..4da44a888 100644
--- a/400_xowa/src/gplx/xowa/bldrs/installs/Xoi_dump_mgr.java
+++ b/400_xowa/src/gplx/xowa/bldrs/installs/Xoi_dump_mgr.java
@@ -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.specials.search.Xows_page__search.Version_2;
+ public byte Search_version() {return search_version;} private byte search_version = gplx.xowa.addons.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);
@@ -77,9 +77,9 @@ public class Xoi_dump_mgr implements GfoInvkAble {
, Invk_search_version = "search_version", Invk_search_version_ = "search_version_", Invk_search_version_list = "search_version_list"
, Invk_import_bz2_by_stdout = "import_bz2_by_stdout", Invk_import_bz2_by_stdout_ = "import_bz2_by_stdout_"
;
- private static KeyVal[] Options_data_storage_format_list = KeyVal_.Ary(KeyVal_.new_(".xdat", "text"), KeyVal_.new_(".gz", "gzip"), KeyVal_.new_(".bz2", "bzip2")); // removed .zip; DATE:2014-05-13; updated aliases; DATE:2014-06-20
+ private static Keyval[] Options_data_storage_format_list = Keyval_.Ary(Keyval_.new_(".xdat", "text"), Keyval_.new_(".gz", "gzip"), Keyval_.new_(".bz2", "bzip2")); // removed .zip; DATE:2014-05-13; updated aliases; DATE:2014-06-20
static final byte Wiki_storage_type_xdat = 1, Wiki_storage_type_sqlite = 2;
- private static final KeyVal[] Options_storage_type_list = KeyVal_.Ary(KeyVal_.new_("sqlite"), KeyVal_.new_("xdat")); // DEPRECATED: KeyVal_.new_("xdat"); DATE:2015-03-30
+ private static final Keyval[] Options_storage_type_list = Keyval_.Ary(Keyval_.new_("sqlite"), Keyval_.new_("xdat")); // DEPRECATED: Keyval_.new_("xdat"); DATE:2015-03-30
public static String Wiki_storage_type_str(byte v) {
switch (v) {
case Xoi_dump_mgr.Wiki_storage_type_xdat : return "xdat";
@@ -92,7 +92,7 @@ public class Xoi_dump_mgr implements GfoInvkAble {
else if (String_.Eq(v, "sqlite")) return Xoi_dump_mgr.Wiki_storage_type_sqlite;
else throw Err_.new_unhandled(v);
}
- private static final KeyVal[] Options_search_version_list = KeyVal_.Ary(KeyVal_.new_("1"), KeyVal_.new_("2"));
+ private static final Keyval[] Options_search_version_list = Keyval_.Ary(Keyval_.new_("1"), Keyval_.new_("2"));
public static String Options_search_version_str(byte v) {return Byte_.To_str(v);}
public static byte Options_search_version_parse(String v) {return Byte_.parse(v);}
}
diff --git a/400_xowa/src/gplx/xowa/bldrs/installs/Xow_cfg_wiki_core_tst.java b/400_xowa/src/gplx/xowa/bldrs/installs/Xow_cfg_wiki_core_tst.java
index 65fadda0e..eac2fa11c 100644
--- a/400_xowa/src/gplx/xowa/bldrs/installs/Xow_cfg_wiki_core_tst.java
+++ b/400_xowa/src/gplx/xowa/bldrs/installs/Xow_cfg_wiki_core_tst.java
@@ -84,8 +84,8 @@ class Xow_cfg_wiki_core_fxt {
Xoae_app app; Xowe_wiki wiki;
public Xowe_wiki Wiki() {return wiki;}
public void Clear() {
- app = Xoa_app_fxt.app_();
- wiki = Xoa_app_fxt.wiki_tst_(app);
+ app = Xoa_app_fxt.Make__app__edit();
+ wiki = Xoa_app_fxt.Make__wiki__edit(app);
}
public void Save_tst(String bldr_version, String main_page, String siteinfo_misc, int ns_user_case_match, String ns_user_name, String expd) {
wiki.Props().Bldr_version_(Bry_.new_a7(bldr_version)).Main_page_(Bry_.new_a7(main_page)).Siteinfo_misc_(Bry_.new_a7(siteinfo_misc));
diff --git a/400_xowa/src/gplx/xowa/bldrs/setups/maints/Wmf_dump_itm.java b/400_xowa/src/gplx/xowa/bldrs/setups/maints/Wmf_dump_itm.java
index 2d9bde967..77dd905a5 100644
--- a/400_xowa/src/gplx/xowa/bldrs/setups/maints/Wmf_dump_itm.java
+++ b/400_xowa/src/gplx/xowa/bldrs/setups/maints/Wmf_dump_itm.java
@@ -34,4 +34,4 @@ public class Wmf_dump_itm implements gplx.CompareAble {
public int compareTo(Object obj) {Wmf_dump_itm comp = (Wmf_dump_itm)obj; return Bry_.Compare(wiki_abrv, comp.wiki_abrv);}
private static byte[] Status_msg_dump_complete = Bry_.new_a7("Dump complete"), Status_msg_dump_in_progress = Bry_.new_a7("Dump in progress");
public static final byte Status_tid_complete = 0, Status_tid_working = 1, Status_tid_error = 2;
-}
\ No newline at end of file
+}
diff --git a/400_xowa/src/gplx/xowa/bldrs/setups/maints/Wmf_dump_list_parser.java b/400_xowa/src/gplx/xowa/bldrs/setups/maints/Wmf_dump_list_parser.java
index 8ebfc07e4..d1bcd811e 100644
--- a/400_xowa/src/gplx/xowa/bldrs/setups/maints/Wmf_dump_list_parser.java
+++ b/400_xowa/src/gplx/xowa/bldrs/setups/maints/Wmf_dump_list_parser.java
@@ -41,7 +41,9 @@ public class Wmf_dump_list_parser {
byte[] href_bry = Bry_.Mid(src, href_bgn_pos + 1, href_end_pos);
int date_end = href_bry.length;
int date_bgn = Bry_find_.Find_bwd(href_bry, Byte_ascii.Slash); if (date_bgn == Bry_find_.Not_found) return false;
- byte[] date_bry = Bry_.Mid(href_bry, date_bgn + 1, date_end);
+ byte[] date_bry = Bry_.Mid(href_bry, date_bgn + 1, date_end); if (date_bry.length == 0) return false; // anchors like "/other_static_dumps" should be skipped
+ if (Bry_.Has(date_bry, Bry_.new_u8("legal.html"))) return false;
+ if (Bry_.Has(date_bry, Bry_.new_u8("Privacy_policy"))) return false;
DateAdp date = DateAdp_.parse_fmt(String_.new_a7(date_bry), "yyyyMMdd");
itm.Dump_date_(date);
int abrv_end = date_bgn;
diff --git a/400_xowa/src/gplx/xowa/bldrs/setups/maints/Wmf_dump_list_parser_tst.java b/400_xowa/src/gplx/xowa/bldrs/setups/maints/Wmf_dump_list_parser_tst.java
index 3f1f398a6..74ab2b5c9 100644
--- a/400_xowa/src/gplx/xowa/bldrs/setups/maints/Wmf_dump_list_parser_tst.java
+++ b/400_xowa/src/gplx/xowa/bldrs/setups/maints/Wmf_dump_list_parser_tst.java
@@ -41,7 +41,7 @@ public class Wmf_dump_list_parser_tst {
, fxt.itm("zh-classicalwiki", "20131128", Wmf_dump_itm.Status_tid_complete, "Dump complete", "2013-11-28 06:08:56")
);
}
-// @Test public void Update() { // MAINT:QUARTERLY:2015-08-23; must run C:\xowa\ and update dump status
+// @Test public void Update() { // MAINT:QUARTERLY:2016-03-17; must run C:\xowa\ and update dump status
// Hash_adp_bry excluded_domains = Hash_adp_bry.cs().Add_many_str
// ( "advisory.wikipedia.org", "beta.wikiversity.org", "donate.wikipedia.org", "login.wikipedia.org"
// , "nostalgia.wikipedia.org", "outreach.wikipedia.org", "quality.wikipedia.org", "sources.wikipedia.org"
@@ -80,7 +80,7 @@ public class Wmf_dump_list_parser_tst {
// .Add_byte(Byte_ascii.Apos)
// .Add_byte(Byte_ascii.Paren_end)
// .Add_byte(Byte_ascii.Comma)
-// .Add_str("--" + String_.new_u8(abrv))
+// .Add_str_u8("--" + String_.new_u8(abrv))
// .Add_byte_nl()
// ;
// bld_bfr
@@ -92,7 +92,7 @@ public class Wmf_dump_list_parser_tst {
// .Add_byte_nl()
// ;
// }
-// Io_url temp = Io_url_.new_fil_("C:\\import_update.txt");
+// Io_url temp = Io_url_.new_fil_("C:\\xowa\\user\\import_update.txt");
// Io_mgr.Instance.SaveFilBfr(temp, sql_bfr);
//// Io_mgr.Instance.AppendFilBfr(temp, bld_bfr);
// }
diff --git a/400_xowa/src/gplx/xowa/bldrs/setups/maints/Wmf_latest_itm.java b/400_xowa/src/gplx/xowa/bldrs/setups/maints/Wmf_latest_itm.java
index ca57f0f85..eadcb3d77 100644
--- a/400_xowa/src/gplx/xowa/bldrs/setups/maints/Wmf_latest_itm.java
+++ b/400_xowa/src/gplx/xowa/bldrs/setups/maints/Wmf_latest_itm.java
@@ -23,4 +23,4 @@ public class Wmf_latest_itm {
public byte[] Name() {return name;} private final byte[] name;
public DateAdp Date() {return date;} private final DateAdp date;
public long Size() {return size;} private final long size;
-}
\ No newline at end of file
+}
diff --git a/400_xowa/src/gplx/xowa/bldrs/setups/maints/Xow_maint_mgr.java b/400_xowa/src/gplx/xowa/bldrs/setups/maints/Xow_maint_mgr.java
index 350501bf4..981beba7f 100644
--- a/400_xowa/src/gplx/xowa/bldrs/setups/maints/Xow_maint_mgr.java
+++ b/400_xowa/src/gplx/xowa/bldrs/setups/maints/Xow_maint_mgr.java
@@ -34,6 +34,7 @@ public class Xow_maint_mgr implements GfoInvkAble {
} private DateAdp wiki_dump_date;
public boolean Wiki_update_needed() {
if (this.Wiki_dump_date() == null) return false; // will be null if a custom wiki (i.e.: not on http://dumps.wikimedia.org/backup-index.html)
+ if (this.Wmf_dump_date() == null) return false; // also null if custom wiki
return this.Wmf_dump_date().Diff(this.Wiki_dump_date()).Total_days().To_double() > 1;
}
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
diff --git a/400_xowa/src/gplx/xowa/bldrs/setups/upgrades/Upgrader_v00_02_01_tst.java b/400_xowa/src/gplx/xowa/bldrs/setups/upgrades/Upgrader_v00_02_01_tst.java
index d027b0d88..9718c2891 100644
--- a/400_xowa/src/gplx/xowa/bldrs/setups/upgrades/Upgrader_v00_02_01_tst.java
+++ b/400_xowa/src/gplx/xowa/bldrs/setups/upgrades/Upgrader_v00_02_01_tst.java
@@ -19,8 +19,8 @@ package gplx.xowa.bldrs.setups.upgrades; import gplx.*; import gplx.xowa.*; impo
import org.junit.*; import gplx.xowa.bldrs.installs.*;
public class Upgrader_v00_02_01_tst {
@Test public void Run() {
- Xoae_app app = Xoa_app_fxt.app_();
- Xowe_wiki wiki = Xoa_app_fxt.wiki_tst_(app);
+ Xoae_app app = Xoa_app_fxt.Make__app__edit();
+ Xowe_wiki wiki = Xoa_app_fxt.Make__wiki__edit(app);
Io_url cfg_dir = wiki.Fsys_mgr().Root_dir().GenSubDir("cfg");
Io_mgr.Instance.SaveFilStr(cfg_dir.GenSubFil("siteInfo.xml"), Str_siteinfo_xml);
Io_mgr.Instance.SaveFilStr(cfg_dir.GenSubFil("wiki.gfs"), Str_wikistats_gfs);
diff --git a/400_xowa/src/gplx/xowa/bldrs/setups/upgrades/Xoa_upgrade_mgr_tst.java b/400_xowa/src/gplx/xowa/bldrs/setups/upgrades/Xoa_upgrade_mgr_tst.java
index 651fc0a1b..053ca7ee2 100644
--- a/400_xowa/src/gplx/xowa/bldrs/setups/upgrades/Xoa_upgrade_mgr_tst.java
+++ b/400_xowa/src/gplx/xowa/bldrs/setups/upgrades/Xoa_upgrade_mgr_tst.java
@@ -19,7 +19,7 @@ package gplx.xowa.bldrs.setups.upgrades; import gplx.*; import gplx.xowa.*; impo
import org.junit.*;
public class Xoa_upgrade_mgr_tst {
@Test public void Run() {
- Xoae_app app = Xoa_app_fxt.app_();
+ Xoae_app app = Xoa_app_fxt.Make__app__edit();
Io_url old_history_dir = app.Usere().Fsys_mgr().App_data_dir();
Io_url new_history_dir = app.Usere().Fsys_mgr().App_data_dir().GenSubDir("history");
Io_mgr.Instance.SaveFilStr(old_history_dir.GenSubFil("page_history.csv"), "test");
diff --git a/400_xowa/src/gplx/xowa/bldrs/wiki_cfgs/Xoi_wiki_props_api_tst.java b/400_xowa/src/gplx/xowa/bldrs/wiki_cfgs/Xoi_wiki_props_api_tst.java
index d6addc149..ac88867d0 100644
--- a/400_xowa/src/gplx/xowa/bldrs/wiki_cfgs/Xoi_wiki_props_api_tst.java
+++ b/400_xowa/src/gplx/xowa/bldrs/wiki_cfgs/Xoi_wiki_props_api_tst.java
@@ -97,7 +97,7 @@ class Xoi_wiki_props_fxt {
class Xob_subpage_tst_fxt {
public Xob_subpage_tst_fxt Clear() {
if (app == null) {
- app = Xoa_app_fxt.app_();
+ app = Xoa_app_fxt.Make__app__edit();
mgr = app.Bldr().Wiki_cfg_bldr();
}
mgr.Clear();
@@ -110,7 +110,7 @@ class Xob_subpage_tst_fxt {
return this;
}
public Xob_subpage_tst_fxt Expd_txt(String wiki, String text) {
-// hash.Add(wiki, KeyVal_.new_(wiki, text));
+// hash.Add(wiki, Keyval_.new_(wiki, text));
return this;
}
private String_bldr sb = String_bldr_.new_();
diff --git a/400_xowa/src/gplx/xowa/bldrs/wkrs/Xob_cmd__base.java b/400_xowa/src/gplx/xowa/bldrs/wkrs/Xob_cmd__base.java
new file mode 100644
index 000000000..7aee88422
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/bldrs/wkrs/Xob_cmd__base.java
@@ -0,0 +1,29 @@
+/*
+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 .
+*/
+package gplx.xowa.bldrs.wkrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*;
+public abstract class Xob_cmd__base implements GfoInvkAble {
+ protected final Xoae_app app; protected final Xob_bldr bldr; protected final Xowe_wiki wiki; protected final Gfo_usr_dlg usr_dlg;
+ public Xob_cmd__base(Xob_bldr bldr, Xowe_wiki wiki) {this.bldr = bldr; this.wiki = wiki; this.app = bldr.App(); usr_dlg = bldr.Usr_dlg();}
+ public abstract String Cmd_key();
+ public abstract void Cmd_run();
+ @gplx.Virtual public void Cmd_init(Xob_bldr bldr) {}
+ @gplx.Virtual public void Cmd_bgn(Xob_bldr bldr) {}
+ @gplx.Virtual public void Cmd_end() {}
+ @gplx.Virtual public void Cmd_term() {}
+ public abstract Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m);
+}
diff --git a/400_xowa/src/gplx/xowa/bldrs/wkrs/Xob_idx_base.java b/400_xowa/src/gplx/xowa/bldrs/wkrs/Xob_idx_base.java
index b0211cbe9..126d8f184 100644
--- a/400_xowa/src/gplx/xowa/bldrs/wkrs/Xob_idx_base.java
+++ b/400_xowa/src/gplx/xowa/bldrs/wkrs/Xob_idx_base.java
@@ -36,4 +36,4 @@ public abstract class Xob_idx_base extends Xob_itm_basic_base implements Xob_cmd
Io_url[] fils = Io_mgr.Instance.QueryDir_fils(dir);
return new Io_line_rdr(bldr.Usr_dlg(), fils).Key_gen_(Io_line_rdr_key_gen_.first_pipe);
}
-}
\ No newline at end of file
+}
diff --git a/400_xowa/src/gplx/xowa/bldrs/wkrs/Xob_itm_basic_base.java b/400_xowa/src/gplx/xowa/bldrs/wkrs/Xob_itm_basic_base.java
index beb98be25..469b83c94 100644
--- a/400_xowa/src/gplx/xowa/bldrs/wkrs/Xob_itm_basic_base.java
+++ b/400_xowa/src/gplx/xowa/bldrs/wkrs/Xob_itm_basic_base.java
@@ -19,8 +19,7 @@ package gplx.xowa.bldrs.wkrs; import gplx.*; import gplx.xowa.*; import gplx.xow
public abstract class Xob_itm_basic_base implements GfoInvkAble {
protected Xoae_app app; protected Xob_bldr bldr; protected Xowe_wiki wiki; protected Gfo_usr_dlg usr_dlg;
public void Cmd_ctor(Xob_bldr bldr, Xowe_wiki wiki) {this.bldr = bldr; this.wiki = wiki; this.app = bldr.App(); usr_dlg = bldr.Usr_dlg(); this.Cmd_ctor_end(bldr, wiki);}
- @gplx.Virtual protected void Cmd_ctor_end(Xob_bldr bldr, Xowe_wiki wiki) {
- }
+ @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 GfoInvkAble_.Rv_unhandled;
diff --git a/400_xowa/src/gplx/xowa/bldrs/wkrs/Xob_sql_dump_base.java b/400_xowa/src/gplx/xowa/bldrs/wkrs/Xob_sql_dump_base.java
index ad7293044..fccecb9d6 100644
--- a/400_xowa/src/gplx/xowa/bldrs/wkrs/Xob_sql_dump_base.java
+++ b/400_xowa/src/gplx/xowa/bldrs/wkrs/Xob_sql_dump_base.java
@@ -19,7 +19,7 @@ package gplx.xowa.bldrs.wkrs; import gplx.*; import gplx.xowa.*; import gplx.xow
import gplx.core.flds.*; import gplx.core.ios.*; import gplx.xowa.wikis.tdbs.*;
import gplx.xowa.bldrs.sqls.*; import gplx.xowa.wikis.tdbs.bldrs.*;
public abstract class Xob_sql_dump_base extends Xob_itm_dump_base implements Xob_cmd, GfoInvkAble {
- private final Sql_file_parser parser = new Sql_file_parser(); private boolean fail = false;
+ private final Sql_file_parser parser = new Sql_file_parser(); protected boolean fail = false;
public abstract String Cmd_key();
public Io_url Src_fil() {return src_fil;} private Io_url src_fil;
public Io_url_gen Make_url_gen() {return make_url_gen;} private Io_url_gen make_url_gen;
diff --git a/400_xowa/src/gplx/xowa/bldrs/wms/apis/Xoapi_orig_base_tst.java b/400_xowa/src/gplx/xowa/bldrs/wms/apis/Xoapi_orig_base_tst.java
index c1b9540d2..5487037f2 100644
--- a/400_xowa/src/gplx/xowa/bldrs/wms/apis/Xoapi_orig_base_tst.java
+++ b/400_xowa/src/gplx/xowa/bldrs/wms/apis/Xoapi_orig_base_tst.java
@@ -39,8 +39,8 @@ public class Xoapi_orig_base_tst {
class Xoapi_orig_base_fxt {
private Xoae_app app; private Xowe_wiki wiki; private Xoapi_orig_rslts rv = new Xoapi_orig_rslts();
public void Clear() {
- this.app = Xoa_app_fxt.app_();
- this.wiki = Xoa_app_fxt.wiki_tst_(app);
+ this.app = Xoa_app_fxt.Make__app__edit();
+ this.wiki = Xoa_app_fxt.Make__wiki__edit(app);
}
public void Bld_api_url_tst(String ttl_str, int w, int h, String expd) {
String actl = Xoapi_orig_wmf.Bld_api_url(wiki.Domain_bry(), Bry_.new_u8(ttl_str), w, h);
diff --git a/400_xowa/src/gplx/xowa/bldrs/wms/dumps/Xowm_dump_file.java b/400_xowa/src/gplx/xowa/bldrs/wms/dumps/Xowm_dump_file.java
index b2ba657ae..0aa45bd61 100644
--- a/400_xowa/src/gplx/xowa/bldrs/wms/dumps/Xowm_dump_file.java
+++ b/400_xowa/src/gplx/xowa/bldrs/wms/dumps/Xowm_dump_file.java
@@ -91,7 +91,7 @@ public class Xowm_dump_file {
int dump_type_int = Xowm_dump_type_.parse_by_file(dump_type_bry);
byte[] dump_file_ext = Xowm_dump_file_.Ext_xml_bz2;
switch (dump_type_int) {
- case Xowm_dump_type_.Int__page_props: case Xowm_dump_type_.Int__categorylinks: case Xowm_dump_type_.Int__image:
+ case Xowm_dump_type_.Int__page_props: case Xowm_dump_type_.Int__categorylinks: case Xowm_dump_type_.Int__image: case Xowm_dump_type_.Int__pagelinks:
dump_file_ext = Xowm_dump_file_.Ext_sql_gz;
break;
}
diff --git a/400_xowa/src/gplx/xowa/bldrs/wms/dumps/Xowm_dump_type_.java b/400_xowa/src/gplx/xowa/bldrs/wms/dumps/Xowm_dump_type_.java
index 3719204c3..8128d30ac 100644
--- a/400_xowa/src/gplx/xowa/bldrs/wms/dumps/Xowm_dump_type_.java
+++ b/400_xowa/src/gplx/xowa/bldrs/wms/dumps/Xowm_dump_type_.java
@@ -23,9 +23,9 @@ public class Xowm_dump_type_ {
Object o = regy.Match_bgn(src, bgn, end); if (o == null) throw Err_.new_("wm.dump", "unknown dump file type", "src", src);
return ((Int_obj_val)o).Val();
}
- public static final int Int__pages_articles = 1, Int__pages_meta_current = 2, Int__categorylinks = 3, Int__page_props = 4, Int__image = 5;
+ public static final int Int__pages_articles = 1, Int__pages_meta_current = 2, Int__categorylinks = 3, Int__page_props = 4, Int__image = 5, Int__pagelinks = 6;
public static final String Str__pages_articles = "pages-articles", Str__pages_meta_current = "pages-meta-current"
- , Str__categorylinks = "categorylinks", Str__page_props = "page_props", Str__image = "image"
+ , Str__categorylinks = "categorylinks", Str__page_props = "page_props", Str__image = "image", Str__pagelinks = "pagelinks"
;
private static final Btrie_slim_mgr regy = Btrie_slim_mgr.ci_a7()
.Add_str_int(Str__pages_articles , Int__pages_articles)
@@ -33,6 +33,7 @@ public class Xowm_dump_type_ {
.Add_str_int(Str__categorylinks , Int__categorylinks)
.Add_str_int(Str__page_props , Int__page_props)
.Add_str_int(Str__image , Int__image)
+ .Add_str_int(Str__pagelinks , Int__pagelinks)
;
public static String To_str(byte v) {
switch (v) {
@@ -41,6 +42,7 @@ public class Xowm_dump_type_ {
case Int__categorylinks : return Str__categorylinks;
case Int__page_props : return Str__page_props;
case Int__image : return Str__image;
+ case Int__pagelinks : return Str__pagelinks;
default : throw Err_.new_unhandled(v);
}
}
diff --git a/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_core_db.java b/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_core_db.java
index 89b7ce75c..376adfa8a 100644
--- a/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_core_db.java
+++ b/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_core_db.java
@@ -21,24 +21,24 @@ import gplx.xowa.wikis.nss.*;
import gplx.xowa.wikis.domains.*; import gplx.xowa.wikis.xwikis.*; import gplx.xowa.wikis.xwikis.bldrs.*;
public class Site_core_db {
private Db_conn conn;
- private final Site_core_tbl tbl__core;
- private final Site_kv_tbl tbl__general;
- private final Site_namespace_tbl tbl__namespace;
- private final Site_statistic_tbl tbl__statistic;
- private final Site_interwikimap_tbl tbl__interwikimap;
- private final Site_namespacealias_tbl tbl__namespacealias;
- private final Site_specialpagealias_tbl tbl__specialpagealias;
- private final Site_library_tbl tbl__library;
- private final Site_extension_tbl tbl__extension;
- private final Site_skin_tbl tbl__skin;
- private final Site_magicword_tbl tbl__magicword;
- private final Site_val_tbl tbl__functionhook;
- private final Site_showhook_tbl tbl__showhook;
- private final Site_val_tbl tbl__extensiontag;
- private final Site_val_tbl tbl__protocol;
- private final Site_kv_tbl tbl__defaultoption;
- private final Site_language_tbl tbl__language;
- private final Db_tbl[] tbl_ary;
+ private final Site_core_tbl tbl__core;
+ private final Site_kv_tbl tbl__general;
+ private final Site_namespace_tbl tbl__namespace;
+ private final Site_statistic_tbl tbl__statistic;
+ private final Site_interwikimap_tbl tbl__interwikimap;
+ private final Site_namespacealias_tbl tbl__namespacealias;
+ private final Site_specialpagealias_tbl tbl__specialpagealias;
+ private final Site_library_tbl tbl__library;
+ private final Site_extension_tbl tbl__extension;
+ private final Site_skin_tbl tbl__skin;
+ private final Site_magicword_tbl tbl__magicword;
+ private final Site_val_tbl tbl__functionhook;
+ private final Site_showhook_tbl tbl__showhook;
+ private final Site_val_tbl tbl__extensiontag;
+ private final Site_val_tbl tbl__protocol;
+ private final Site_kv_tbl tbl__defaultoption;
+ private final Site_language_tbl tbl__language;
+ private final Db_tbl[] tbl_ary;
public Site_core_db(Io_url db_url) {
Db_conn_bldr_data conn_data = Db_conn_bldr.Instance.Get_or_new(db_url);
this.conn = conn_data.Conn(); boolean created = conn_data.Created();
@@ -120,7 +120,7 @@ public class Site_core_db {
int len = hash.Count();
for (int i = 0; i < len; ++i) {
Site_interwikimap_itm itm = (Site_interwikimap_itm)hash.Get_at(i);
- Xow_xwiki_itm xwiki_itm = Xow_xwiki_itm_bldr.Instance.Bld_mw(domain_itm, itm.Prefix(), itm.Url(), null);
+ Xow_xwiki_itm xwiki_itm = Xow_xwiki_itm_bldr.Instance.Bld_mw(domain_itm, itm.Prefix, itm.Url, null);
xwiki_mgr.Add_itm(xwiki_itm);
}
}
diff --git a/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_core_tbl.java b/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_core_tbl.java
index 203819cc7..f5cb4bc0f 100644
--- a/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_core_tbl.java
+++ b/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_core_tbl.java
@@ -32,7 +32,7 @@ public class Site_core_tbl implements Db_tbl {
conn.Rls_reg(this);
}
public Db_conn Conn() {return conn;}
- public void Create_tbl() {conn.Ddl_create_tbl(Dbmeta_tbl_itm.New(tbl_name, flds, Dbmeta_idx_itm.new_unique_by_name(tbl_name, Dbmeta_idx_itm.Bld_idx_name(tbl_name, "main"), fld_site_abrv)));}
+ public void Create_tbl() {conn.Meta_tbl_create(Dbmeta_tbl_itm.New(tbl_name, flds, Dbmeta_idx_itm.new_unique_by_name(tbl_name, Dbmeta_idx_itm.Bld_idx_name(tbl_name, "main"), fld_site_abrv)));}
public void Rls() {
stmt_select = Db_stmt_.Rls(stmt_select);
stmt_insert = Db_stmt_.Rls(stmt_insert);
diff --git a/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_extension_tbl.java b/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_extension_tbl.java
index 6066bdcc5..056e6a6eb 100644
--- a/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_extension_tbl.java
+++ b/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_extension_tbl.java
@@ -43,7 +43,7 @@ class Site_extension_tbl implements Db_tbl {
this.fld_credits = flds.Add_str("credits", 255);
conn.Rls_reg(this);
}
- public void Create_tbl() {conn.Ddl_create_tbl(Dbmeta_tbl_itm.New(tbl_name, flds, Dbmeta_idx_itm.new_unique_by_name(tbl_name, Dbmeta_idx_itm.Bld_idx_name(tbl_name, "main"), fld_site_abrv, fld_type, fld_name)));}
+ public void Create_tbl() {conn.Meta_tbl_create(Dbmeta_tbl_itm.New(tbl_name, flds, Dbmeta_idx_itm.new_unique_by_name(tbl_name, Dbmeta_idx_itm.Bld_idx_name(tbl_name, "main"), fld_site_abrv, fld_type, fld_name)));}
public void Delete_all() {conn.Stmt_delete(tbl_name, Dbmeta_fld_itm.Str_ary_empty).Exec_delete();}
public void Rls() {
stmt_select = Db_stmt_.Rls(stmt_select);
diff --git a/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_interwikimap_itm.java b/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_interwikimap_itm.java
index 9ce1c03e4..f74f61e7f 100644
--- a/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_interwikimap_itm.java
+++ b/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_interwikimap_itm.java
@@ -17,19 +17,27 @@ along with this program. If not, see .
*/
package gplx.xowa.bldrs.wms.sites; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.wms.*;
class Site_interwikimap_itm implements To_str_able {
- public Site_interwikimap_itm(byte[] prefix, boolean local, byte[] language, boolean localinterwiki, byte[] url, boolean protorel) {
- this.prefix = prefix;
- this.local = local;
- this.language = language;
- this.localinterwiki = localinterwiki;
- this.url = url;
- this.protorel = protorel;
+ public Site_interwikimap_itm(byte[] prefix, boolean local
+ , boolean extralanglink, byte[] linktext, byte[] sitename
+ , byte[] language, boolean localinterwiki, byte[] url, boolean protorel) {
+ this.Prefix = prefix;
+ this.Local = local;
+ this.Extralanglink = extralanglink;
+ this.Linktext = linktext;
+ this.Sitename = sitename;
+ this.Language = language;
+ this.Localinterwiki = localinterwiki;
+ this.Url = url;
+ this.Protorel = protorel;
}
- public byte[] Prefix() {return prefix;} private final byte[] prefix;
- public boolean Local() {return local;} private final boolean local;
- public byte[] Language() {return language;} private final byte[] language;
- public boolean Localinterwiki() {return localinterwiki;} private final boolean localinterwiki;
- public byte[] Url() {return url;} private final byte[] url;
- public boolean Protorel() {return protorel;} private final boolean protorel;
- public String To_str() {return String_.Concat_with_obj("|", prefix, local, language, url, protorel);}
+ public final byte[] Prefix;
+ public final boolean Local;
+ public final boolean Extralanglink;
+ public final byte[] Linktext;
+ public final byte[] Sitename;
+ public final byte[] Language;
+ public final boolean Localinterwiki;
+ public final byte[] Url;
+ public final boolean Protorel;
+ public String To_str() {return String_.Concat_with_obj("|", Prefix, Local, Extralanglink, Linktext, Sitename, Language, Localinterwiki, Url, Protorel);}
}
diff --git a/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_interwikimap_tbl.java b/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_interwikimap_tbl.java
index 564e8f610..efec497f8 100644
--- a/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_interwikimap_tbl.java
+++ b/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_interwikimap_tbl.java
@@ -18,22 +18,25 @@ along with this program. If not, see .
package gplx.xowa.bldrs.wms.sites; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.wms.*;
import gplx.dbs.*;
class Site_interwikimap_tbl implements Db_tbl {
- private static final String tbl_name = "site_interwikimap"; private final Dbmeta_fld_list flds = new Dbmeta_fld_list();
- private final String fld_site_abrv, fld_prefix, fld_local, fld_language, fld_localinterwiki, fld_url, fld_protorel;
- private final Db_conn conn;
+ private static final String tbl_name = "site_interwikimap"; private final Dbmeta_fld_list flds = new Dbmeta_fld_list();
+ private final String fld_site_abrv, fld_prefix, fld_local, fld_extralanglink, fld_linktext, fld_sitename, fld_language, fld_localinterwiki, fld_url, fld_protorel;
+ private final Db_conn conn;
private Db_stmt stmt_select, stmt_insert, stmt_delete;
public Site_interwikimap_tbl(Db_conn conn) {
this.conn = conn;
this.fld_site_abrv = flds.Add_str("site_abrv", 255);
this.fld_prefix = flds.Add_str("prefix", 255);
this.fld_local = flds.Add_bool("local");
+ this.fld_extralanglink = flds.Add_bool("extralanglink");
+ this.fld_linktext = flds.Add_str("linktext", 255);
+ this.fld_sitename = flds.Add_str("sitename", 255);
this.fld_language = flds.Add_str("language", 255);
this.fld_localinterwiki = flds.Add_bool("localinterwiki");
this.fld_url = flds.Add_str("url", 255);
this.fld_protorel = flds.Add_bool("protorel");
conn.Rls_reg(this);
}
- public void Create_tbl() {conn.Ddl_create_tbl(Dbmeta_tbl_itm.New(tbl_name, flds, Dbmeta_idx_itm.new_unique_by_name(tbl_name, Dbmeta_idx_itm.Bld_idx_name(tbl_name, "main"), fld_site_abrv, fld_prefix)));}
+ public void Create_tbl() {conn.Meta_tbl_create(Dbmeta_tbl_itm.New(tbl_name, flds, Dbmeta_idx_itm.new_unique_by_name(tbl_name, Dbmeta_idx_itm.Bld_idx_name(tbl_name, "main"), fld_site_abrv, fld_prefix)));}
public void Delete_all() {conn.Stmt_delete(tbl_name, Dbmeta_fld_itm.Str_ary_empty).Exec_delete();}
public void Rls() {
stmt_select = Db_stmt_.Rls(stmt_select);
@@ -49,12 +52,15 @@ class Site_interwikimap_tbl implements Db_tbl {
Site_interwikimap_itm itm = new Site_interwikimap_itm
( rdr.Read_bry_by_str(fld_prefix)
, rdr.Read_bool_by_byte(fld_local)
+ , rdr.Read_bool_by_byte(fld_extralanglink)
+ , rdr.Read_bry_by_str(fld_linktext)
+ , rdr.Read_bry_by_str(fld_sitename)
, rdr.Read_bry_by_str(fld_language)
, rdr.Read_bool_by_byte(fld_localinterwiki)
, rdr.Read_bry_by_str(fld_url)
, rdr.Read_bool_by_byte(fld_protorel)
);
- list.Add(itm.Prefix(), itm);
+ list.Add(itm.Prefix, itm);
}
}
finally {rdr.Rls();}
@@ -66,14 +72,17 @@ class Site_interwikimap_tbl implements Db_tbl {
int len = list.Count();
for (int i = 0; i < len; ++i) {
Site_interwikimap_itm itm = (Site_interwikimap_itm)list.Get_at(i);
- Insert(site_abrv, itm.Prefix(), itm.Local(), itm.Language(), itm.Localinterwiki(), itm.Url(), itm.Protorel());
+ Insert(site_abrv, itm.Prefix, itm.Local, itm.Extralanglink, itm.Linktext, itm.Sitename, itm.Language, itm.Localinterwiki, itm.Url, itm.Protorel);
}
}
- private void Insert(byte[] site_abrv, byte[] prefix, boolean local, byte[] language, boolean localinterwiki, byte[] url, boolean protorel) {
+ private void Insert(byte[] site_abrv, byte[] prefix, boolean local, boolean extralanglink, byte[] linktext, byte[] sitename, byte[] language, boolean localinterwiki, byte[] url, boolean protorel) {
stmt_insert.Clear()
.Val_bry_as_str(fld_site_abrv , site_abrv)
.Val_bry_as_str(fld_prefix , prefix)
.Val_bool_as_byte(fld_local , local)
+ .Val_bool_as_byte(fld_extralanglink , extralanglink)
+ .Val_bry_as_str(fld_linktext , linktext)
+ .Val_bry_as_str(fld_sitename , sitename)
.Val_bry_as_str(fld_language , language)
.Val_bool_as_byte(fld_localinterwiki , localinterwiki)
.Val_bry_as_str(fld_url , url)
diff --git a/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_json_parser_tst.java b/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_json_parser_tst.java
index d592bb165..fdb1b6b9d 100644
--- a/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_json_parser_tst.java
+++ b/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_json_parser_tst.java
@@ -18,7 +18,7 @@ along with this program. If not, see .
package gplx.xowa.bldrs.wms.sites; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.wms.*;
import org.junit.*; import gplx.langs.jsons.*; import gplx.xowa.wikis.nss.*;
public class Site_json_parser_tst {
- private final Site_json_parser_fxt fxt = new Site_json_parser_fxt();
+ private final Site_json_parser_fxt fxt = new Site_json_parser_fxt();
@Before public void init() {Gfo_usr_dlg_.Instance = Gfo_usr_dlg_.Test_console();}
@After public void term() {Gfo_usr_dlg_.Instance = Gfo_usr_dlg_.Noop;}
@Test public void General() {
@@ -44,7 +44,7 @@ public class Site_json_parser_tst {
, " }"
, "}"
));
- fxt.Test_general(KeyVal_.new_("mainpage", "Main Page"), KeyVal_.new_("imagewhitelistenabled", ""), KeyVal_.new_("timeoffset", "0"), KeyVal_.new_("thumblimits", "120|150"), KeyVal_.new_("imagelimits", "320=240|640=480"));
+ fxt.Test_general(Keyval_.new_("mainpage", "Main Page"), Keyval_.new_("imagewhitelistenabled", ""), Keyval_.new_("timeoffset", "0"), Keyval_.new_("thumblimits", "120|150"), Keyval_.new_("imagelimits", "320=240|640=480"));
}
@Test public void Namespace() {
fxt.Exec_parse(String_.Concat_lines_nl_skip_last
@@ -114,6 +114,9 @@ public class Site_json_parser_tst {
, " }"
, " , { 'prefix': 'ar'"
, " , 'local': ''"
+ , " , 'extralanglink': ''"
+ , " , 'linktext': 'More languages'"
+ , " , 'sitename': 'Multilingual Wikisource'"
, " , 'language': '\u0627\u0644\u0639\u0631\u0628\u064a\u0629'"
, " , 'url': 'https://ar.wikipedia.org/wiki/$1'"
, " , 'protorel': ''"
@@ -122,8 +125,8 @@ public class Site_json_parser_tst {
, "}"
));
fxt.Test_interwikimap
- ( fxt.Make_interwikimap("aquariumwiki" , Bool_.N, null , Bool_.N, "http://www.theaquariumwiki.com/$1" , Bool_.N)
- , fxt.Make_interwikimap("ar" , Bool_.Y, "العربية" , Bool_.N, "https://ar.wikipedia.org/wiki/$1" , Bool_.Y)
+ ( fxt.Make_interwikimap("aquariumwiki" , Bool_.N, Bool_.N, null , null , null , Bool_.N, "http://www.theaquariumwiki.com/$1" , Bool_.N)
+ , fxt.Make_interwikimap("ar" , Bool_.Y, Bool_.Y, "More languages", "Multilingual Wikisource" , "العربية" , Bool_.N, "https://ar.wikipedia.org/wiki/$1" , Bool_.Y)
);
}
@Test public void Namespacealias() {
@@ -343,7 +346,7 @@ public class Site_json_parser_tst {
, " }"
, "}"
));
- fxt.Test_defaultoption(KeyVal_.new_("globaluserpage", "true"), KeyVal_.new_("cols", "80"), KeyVal_.new_("echo-email-format", "html"));
+ fxt.Test_defaultoption(Keyval_.new_("globaluserpage", "true"), Keyval_.new_("cols", "80"), Keyval_.new_("echo-email-format", "html"));
}
@Test public void Language() {
fxt.Exec_parse(String_.Concat_lines_nl_skip_last
@@ -376,8 +379,8 @@ public class Site_json_parser_tst {
// }
}
class Site_json_parser_fxt {
- private final Json_parser json_parser = new Json_parser();
- private final Site_json_parser site_meta_parser;
+ private final Json_parser json_parser = new Json_parser();
+ private final Site_json_parser site_meta_parser;
private Site_meta_itm site_meta;
public Site_json_parser_fxt() {
this.site_meta_parser = new Site_json_parser(json_parser);
@@ -391,7 +394,9 @@ class Site_json_parser_fxt {
return new Site_namespace_itm(id, case_tid_is_cs ? Xow_ns_case_.Bry__all : Xow_ns_case_.Bry__1st, Bry_.new_u8_safe(canonical), Bry_.new_u8_safe(localized), subpages, content, Bry_.new_u8_safe(defaultcontentmodel));
}
public Site_statistic_itm Make_statistic(long pages, long articles, long edits, long images, long users, long activeusers, long admins, long jobs, long queued_massmessages) {return new Site_statistic_itm().Ctor(pages, articles, edits, images, users, activeusers, admins, jobs, queued_massmessages);}
- public Site_interwikimap_itm Make_interwikimap(String prefix, boolean local, String language, boolean localinterwiki, String url, boolean protorel) {return new Site_interwikimap_itm(Bry_.new_u8_safe(prefix), local, Bry_.new_u8_safe(language), localinterwiki, Bry_.new_u8_safe(url), protorel);}
+ public Site_interwikimap_itm Make_interwikimap(String prefix, boolean local, boolean extralanglink, String linktext, String sitename, String language, boolean localinterwiki, String url, boolean protorel) {
+ return new Site_interwikimap_itm(Bry_.new_u8_safe(prefix), local, extralanglink, Bry_.new_u8_safe(linktext), Bry_.new_u8_safe(sitename), Bry_.new_u8_safe(language), localinterwiki, Bry_.new_u8_safe(url), protorel);
+ }
public Site_namespacealias_itm Make_namespacealias(int id, String alias) {return new Site_namespacealias_itm(id, Bry_.new_u8_safe(alias));}
public Site_specialpagealias_itm Make_specialpagealias(String realname, String... aliases) {return new Site_specialpagealias_itm(Bry_.new_u8_safe(realname), Bry_.Ary(aliases));}
public Site_library_itm Make_library(String name, String version) {return new Site_library_itm(Bry_.new_u8_safe(name), Bry_.new_u8_safe(version));}
@@ -407,7 +412,7 @@ class Site_json_parser_fxt {
public Site_magicword_itm Make_magicword(String name, boolean case_match, String... aliases) {return new Site_magicword_itm(Bry_.new_u8_safe(name), case_match, Bry_.Ary(aliases));}
public Site_showhook_itm Make_showhook(String name, String scribunto, String... subscribers) {return new Site_showhook_itm(Bry_.new_u8_safe(name), Bry_.new_u8_safe(scribunto), Bry_.Ary(subscribers));}
public Site_language_itm Make_language(String code, String name) {return new Site_language_itm(Bry_.new_u8_safe(code), Bry_.new_u8_safe(name));}
- public void Test_general(KeyVal... expd) {Tfds.Eq_ary_str(expd, (KeyVal[])site_meta.General_list().To_ary(KeyVal.class));}
+ public void Test_general(Keyval... expd) {Tfds.Eq_ary_str(expd, (Keyval[])site_meta.General_list().To_ary(Keyval.class));}
public void Test_namespace(Site_namespace_itm... expd) {Tfds.Eq_ary_str(expd, (Site_namespace_itm[])site_meta.Namespace_list().To_ary(Site_namespace_itm.class));}
public void Test_statistic(Site_statistic_itm expd) {Tfds.Eq_str_intf(expd, site_meta.Statistic_itm());}
public void Test_interwikimap(Site_interwikimap_itm... expd) {Tfds.Eq_ary_str(expd, (Site_interwikimap_itm[])site_meta.Interwikimap_list().To_ary(Site_interwikimap_itm.class));}
@@ -421,6 +426,6 @@ class Site_json_parser_fxt {
public void Test_showhook(Site_showhook_itm... expd) {Tfds.Eq_ary_str(expd, (Site_showhook_itm[])site_meta.Showhook_list().To_ary(Site_showhook_itm.class));}
public void Test_extensiontag(String... expd) {Tfds.Eq_ary_str(expd, String_.Ary((byte[][])site_meta.Extensiontag_list().To_ary(byte[].class)));}
public void Test_protocol(String... expd) {Tfds.Eq_ary_str(expd, String_.Ary((byte[][])site_meta.Protocol_list().To_ary(byte[].class)));}
- public void Test_defaultoption(KeyVal... expd) {Tfds.Eq_ary_str(expd, (KeyVal[])site_meta.Defaultoption_list().To_ary(KeyVal.class));}
+ public void Test_defaultoption(Keyval... expd) {Tfds.Eq_ary_str(expd, (Keyval[])site_meta.Defaultoption_list().To_ary(Keyval.class));}
public void Test_language(Site_language_itm... expd) {Tfds.Eq_ary_str(expd, (Site_language_itm[])site_meta.Language_list().To_ary(Site_language_itm.class));}
}
diff --git a/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_kv_tbl.java b/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_kv_tbl.java
index a21f1065b..a8d9038e6 100644
--- a/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_kv_tbl.java
+++ b/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_kv_tbl.java
@@ -29,7 +29,7 @@ class Site_kv_tbl implements Db_tbl {
this.fld_val = flds.Add_str("val", 255);
conn.Rls_reg(this);
}
- public void Create_tbl() {conn.Ddl_create_tbl(Dbmeta_tbl_itm.New(tbl_name, flds, Dbmeta_idx_itm.new_unique_by_name(tbl_name, Dbmeta_idx_itm.Bld_idx_name(tbl_name, "main"), fld_site_abrv, fld_key)));}
+ public void Create_tbl() {conn.Meta_tbl_create(Dbmeta_tbl_itm.New(tbl_name, flds, Dbmeta_idx_itm.new_unique_by_name(tbl_name, Dbmeta_idx_itm.Bld_idx_name(tbl_name, "main"), fld_site_abrv, fld_key)));}
public void Delete_all() {conn.Stmt_delete(tbl_name, Dbmeta_fld_itm.Str_ary_empty).Exec_delete();}
public void Rls() {
stmt_select = Db_stmt_.Rls(stmt_select);
@@ -44,7 +44,7 @@ class Site_kv_tbl implements Db_tbl {
while (rdr.Move_next()) {
String key = rdr.Read_str(fld_key);
String val = rdr.Read_str(fld_val);
- list.Add(key, KeyVal_.new_(key, val));
+ list.Add(key, Keyval_.new_(key, val));
}
}
finally {rdr.Rls();}
@@ -55,7 +55,7 @@ class Site_kv_tbl implements Db_tbl {
stmt_delete.Clear().Crt_bry_as_str(fld_site_abrv, site_abrv).Exec_delete();
int len = list.Count();
for (int i = 0; i < len; ++i) {
- KeyVal itm = (KeyVal)list.Get_at(i);
+ Keyval itm = (Keyval)list.Get_at(i);
Insert(site_abrv, itm.Key(), itm.Val_to_str_or_empty());
}
}
diff --git a/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_language_tbl.java b/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_language_tbl.java
index 74abb67d7..276531890 100644
--- a/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_language_tbl.java
+++ b/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_language_tbl.java
@@ -29,7 +29,7 @@ class Site_language_tbl implements Db_tbl {
this.fld_name = flds.Add_str("name", 255);
conn.Rls_reg(this);
}
- public void Create_tbl() {conn.Ddl_create_tbl(Dbmeta_tbl_itm.New(tbl_name, flds, Dbmeta_idx_itm.new_unique_by_name(tbl_name, Dbmeta_idx_itm.Bld_idx_name(tbl_name, "main"), fld_site_abrv, fld_code)));}
+ public void Create_tbl() {conn.Meta_tbl_create(Dbmeta_tbl_itm.New(tbl_name, flds, Dbmeta_idx_itm.new_unique_by_name(tbl_name, Dbmeta_idx_itm.Bld_idx_name(tbl_name, "main"), fld_site_abrv, fld_code)));}
public void Delete_all() {conn.Stmt_delete(tbl_name, Dbmeta_fld_itm.Str_ary_empty).Exec_delete();}
public void Rls() {
stmt_select = Db_stmt_.Rls(stmt_select);
diff --git a/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_library_tbl.java b/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_library_tbl.java
index 7d051aed0..9376b5975 100644
--- a/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_library_tbl.java
+++ b/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_library_tbl.java
@@ -29,7 +29,7 @@ class Site_library_tbl implements Db_tbl {
this.fld_version = flds.Add_str("version", 255);
conn.Rls_reg(this);
}
- public void Create_tbl() {conn.Ddl_create_tbl(Dbmeta_tbl_itm.New(tbl_name, flds, Dbmeta_idx_itm.new_unique_by_name(tbl_name, Dbmeta_idx_itm.Bld_idx_name(tbl_name, "main"), fld_site_abrv, fld_name)));}
+ public void Create_tbl() {conn.Meta_tbl_create(Dbmeta_tbl_itm.New(tbl_name, flds, Dbmeta_idx_itm.new_unique_by_name(tbl_name, Dbmeta_idx_itm.Bld_idx_name(tbl_name, "main"), fld_site_abrv, fld_name)));}
public void Delete_all() {conn.Stmt_delete(tbl_name, Dbmeta_fld_itm.Str_ary_empty).Exec_delete();}
public void Rls() {
stmt_select = Db_stmt_.Rls(stmt_select);
diff --git a/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_magicword_tbl.java b/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_magicword_tbl.java
index e20756ab5..da47c2619 100644
--- a/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_magicword_tbl.java
+++ b/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_magicword_tbl.java
@@ -30,7 +30,7 @@ class Site_magicword_tbl implements Db_tbl {
this.fld_aliases = flds.Add_str("aliases", 2048);
conn.Rls_reg(this);
}
- public void Create_tbl() {conn.Ddl_create_tbl(Dbmeta_tbl_itm.New(tbl_name, flds, Dbmeta_idx_itm.new_unique_by_name(tbl_name, Dbmeta_idx_itm.Bld_idx_name(tbl_name, "main"), fld_site_abrv, fld_name)));}
+ public void Create_tbl() {conn.Meta_tbl_create(Dbmeta_tbl_itm.New(tbl_name, flds, Dbmeta_idx_itm.new_unique_by_name(tbl_name, Dbmeta_idx_itm.Bld_idx_name(tbl_name, "main"), fld_site_abrv, fld_name)));}
public void Delete_all() {conn.Stmt_delete(tbl_name, Dbmeta_fld_itm.Str_ary_empty).Exec_delete();}
public void Rls() {
stmt_select = Db_stmt_.Rls(stmt_select);
diff --git a/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_meta_parser__general.java b/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_meta_parser__general.java
index 4c147b91f..2a1063de0 100644
--- a/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_meta_parser__general.java
+++ b/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_meta_parser__general.java
@@ -18,9 +18,9 @@ along with this program. If not, see .
package gplx.xowa.bldrs.wms.sites; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.wms.*;
import gplx.core.primitives.*; import gplx.langs.jsons.*;
class Site_meta_parser__general extends Json_parser__list_nde__base {
- private final Site_meta_parser__general__kv parser__image = new Site_meta_parser__general__kv("imagelimits", "width", "height");
- private final Site_meta_parser__general__lone parser__fallback = new Site_meta_parser__general__lone("fallback", "code");
- private final Site_meta_parser__general__kv parser__variants = new Site_meta_parser__general__kv("variants", "code", "name");
+ private final Site_meta_parser__general__kv parser__image = new Site_meta_parser__general__kv("imagelimits", "width", "height");
+ private final Site_meta_parser__general__lone parser__fallback = new Site_meta_parser__general__lone("fallback", "code");
+ private final Site_meta_parser__general__kv parser__variants = new Site_meta_parser__general__kv("variants", "code", "name");
private String cur_context;
public void Parse(String context, Ordered_hash list, Json_nde nde) {
this.cur_context = context + ".general";
@@ -38,7 +38,7 @@ class Site_meta_parser__general extends Json_parser__list_nde__base {
}
}
private static final int Tid__fallback = 1, Tid__variants = 2, Tid__thumblimits = 3, Tid__imagelimits = 4, Tid__imagelimits__width = 5, Tid__imagelimits__height = 6;
- private static final Hash_adp_bry complex_props = Hash_adp_bry.cs()
+ private static final Hash_adp_bry complex_props = Hash_adp_bry.cs()
.Add_str_int("fallback" , Tid__fallback)
.Add_str_int("variants" , Tid__variants)
.Add_str_int("thumblimits" , Tid__thumblimits)
@@ -120,7 +120,7 @@ class Site_meta_parser__statistic extends Json_parser__list_nde__base {
class Site_meta_parser__interwikimap extends Json_parser__list_nde__base {
private Ordered_hash list;
public Site_meta_parser__interwikimap() {
- this.Ctor("prefix", "local", "language", "localinterwiki", "url", "protorel");
+ this.Ctor("prefix", "local", "extralanglink", "linktext", "sitename", "language", "localinterwiki", "url", "protorel");
}
public void Parse(String context, Ordered_hash list, Json_ary nde) {
this.list = list;
@@ -128,7 +128,10 @@ class Site_meta_parser__interwikimap extends Json_parser__list_nde__base {
}
@Override protected void Parse_hook_nde(Json_nde sub, Json_kv[] atrs) {
byte[] key = Kv__bry(atrs, 0);
- list.Add(key, new Site_interwikimap_itm(key, Kv__mw_bool(atrs, 1), Kv__bry_or_empty(atrs, 2), Kv__mw_bool(atrs, 3), Kv__bry(atrs, 4), Kv__mw_bool(atrs, 5)));
+ list.Add(key
+ , new Site_interwikimap_itm(key
+ , Kv__mw_bool(atrs, 1), Kv__mw_bool(atrs, 2), Kv__bry_or_empty(atrs, 3), Kv__bry_or_empty(atrs, 4)
+ , Kv__bry_or_empty(atrs, 5), Kv__mw_bool(atrs, 6), Kv__bry(atrs, 7), Kv__mw_bool(atrs, 8)));
}
}
class Site_meta_parser__namespacealias extends Json_parser__list_nde__base {
@@ -246,7 +249,7 @@ class Site_meta_parser__showhook extends Json_parser__list_nde__base {
}
list.Add(key, new Site_showhook_itm(key, scribunto, subscribers_bry_ary));
}
- private final static byte[] Key__scribunto = Bry_.new_a7("scribunto");
+ private final static byte[] Key__scribunto = Bry_.new_a7("scribunto");
}
class Site_meta_parser__language extends Json_parser__list_nde__base {
private Ordered_hash list;
diff --git a/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_namespace_tbl.java b/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_namespace_tbl.java
index 4d47bbf69..2fea84c4c 100644
--- a/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_namespace_tbl.java
+++ b/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_namespace_tbl.java
@@ -34,7 +34,7 @@ public class Site_namespace_tbl implements Db_tbl {
this.fld_defaultcontentmodel = flds.Add_str("defaultcontentmodel", 255);
conn.Rls_reg(this);
}
- public void Create_tbl() {conn.Ddl_create_tbl(Dbmeta_tbl_itm.New(tbl_name, flds, Dbmeta_idx_itm.new_unique_by_name(tbl_name, Dbmeta_idx_itm.Bld_idx_name(tbl_name, "main"), fld_site_abrv, fld_id)));}
+ public void Create_tbl() {conn.Meta_tbl_create(Dbmeta_tbl_itm.New(tbl_name, flds, Dbmeta_idx_itm.new_unique_by_name(tbl_name, Dbmeta_idx_itm.Bld_idx_name(tbl_name, "main"), fld_site_abrv, fld_id)));}
public void Delete_all() {conn.Stmt_delete(tbl_name, Dbmeta_fld_itm.Str_ary_empty).Exec_delete();}
public void Rls() {
stmt_select = Db_stmt_.Rls(stmt_select);
diff --git a/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_namespacealias_tbl.java b/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_namespacealias_tbl.java
index aaf68ad61..8e8f3454a 100644
--- a/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_namespacealias_tbl.java
+++ b/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_namespacealias_tbl.java
@@ -29,7 +29,7 @@ class Site_namespacealias_tbl implements Db_tbl {
this.fld_alias = flds.Add_str("alias", 2048);
conn.Rls_reg(this);
}
- public void Create_tbl() {conn.Ddl_create_tbl(Dbmeta_tbl_itm.New(tbl_name, flds, Dbmeta_idx_itm.new_normal_by_name(tbl_name, Dbmeta_idx_itm.Bld_idx_name(tbl_name, "main"), fld_site_abrv, fld_id, fld_alias)));} // NOTE: kk.w has duplicate entries in json
+ public void Create_tbl() {conn.Meta_tbl_create(Dbmeta_tbl_itm.New(tbl_name, flds, Dbmeta_idx_itm.new_normal_by_name(tbl_name, Dbmeta_idx_itm.Bld_idx_name(tbl_name, "main"), fld_site_abrv, fld_id, fld_alias)));} // NOTE: kk.w has duplicate entries in json
public void Delete_all() {conn.Stmt_delete(tbl_name, Dbmeta_fld_itm.Str_ary_empty).Exec_delete();}
public void Rls() {
stmt_select = Db_stmt_.Rls(stmt_select);
diff --git a/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_showhook_tbl.java b/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_showhook_tbl.java
index 9557ac6e4..21ed1f5b6 100644
--- a/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_showhook_tbl.java
+++ b/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_showhook_tbl.java
@@ -30,7 +30,7 @@ class Site_showhook_tbl implements Db_tbl {
this.fld_subscribers = flds.Add_str("subscribers", 2048);
conn.Rls_reg(this);
}
- public void Create_tbl() {conn.Ddl_create_tbl(Dbmeta_tbl_itm.New(tbl_name, flds, Dbmeta_idx_itm.new_unique_by_name(tbl_name, Dbmeta_idx_itm.Bld_idx_name(tbl_name, "main"), fld_site_abrv, fld_name)));}
+ public void Create_tbl() {conn.Meta_tbl_create(Dbmeta_tbl_itm.New(tbl_name, flds, Dbmeta_idx_itm.new_unique_by_name(tbl_name, Dbmeta_idx_itm.Bld_idx_name(tbl_name, "main"), fld_site_abrv, fld_name)));}
public void Delete_all() {conn.Stmt_delete(tbl_name, Dbmeta_fld_itm.Str_ary_empty).Exec_delete();}
public void Rls() {
stmt_select = Db_stmt_.Rls(stmt_select);
diff --git a/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_skin_tbl.java b/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_skin_tbl.java
index 5f453b641..73d5b6e55 100644
--- a/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_skin_tbl.java
+++ b/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_skin_tbl.java
@@ -31,7 +31,7 @@ class Site_skin_tbl implements Db_tbl {
this.fld_unusable = flds.Add_bool("unusable");
conn.Rls_reg(this);
}
- public void Create_tbl() {conn.Ddl_create_tbl(Dbmeta_tbl_itm.New(tbl_name, flds, Dbmeta_idx_itm.new_unique_by_name(tbl_name, Dbmeta_idx_itm.Bld_idx_name(tbl_name, "main"), fld_site_abrv, fld_code)));}
+ public void Create_tbl() {conn.Meta_tbl_create(Dbmeta_tbl_itm.New(tbl_name, flds, Dbmeta_idx_itm.new_unique_by_name(tbl_name, Dbmeta_idx_itm.Bld_idx_name(tbl_name, "main"), fld_site_abrv, fld_code)));}
public void Delete_all() {conn.Stmt_delete(tbl_name, Dbmeta_fld_itm.Str_ary_empty).Exec_delete();}
public void Rls() {
stmt_select = Db_stmt_.Rls(stmt_select);
diff --git a/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_specialpagealias_tbl.java b/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_specialpagealias_tbl.java
index e7fc5c978..3dff6b4ba 100644
--- a/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_specialpagealias_tbl.java
+++ b/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_specialpagealias_tbl.java
@@ -29,7 +29,7 @@ class Site_specialpagealias_tbl implements Db_tbl {
this.fld_aliases = flds.Add_str("aliases", 2048);
conn.Rls_reg(this);
}
- public void Create_tbl() {conn.Ddl_create_tbl(Dbmeta_tbl_itm.New(tbl_name, flds, Dbmeta_idx_itm.new_unique_by_name(tbl_name, Dbmeta_idx_itm.Bld_idx_name(tbl_name, Dbmeta_idx_itm.Bld_idx_name(tbl_name, "main")), fld_site_abrv, fld_realname)));}
+ public void Create_tbl() {conn.Meta_tbl_create(Dbmeta_tbl_itm.New(tbl_name, flds, Dbmeta_idx_itm.new_unique_by_name(tbl_name, Dbmeta_idx_itm.Bld_idx_name(tbl_name, Dbmeta_idx_itm.Bld_idx_name(tbl_name, "main")), fld_site_abrv, fld_realname)));}
public void Delete_all() {conn.Stmt_delete(tbl_name, Dbmeta_fld_itm.Str_ary_empty).Exec_delete();}
public void Rls() {
stmt_select = Db_stmt_.Rls(stmt_select);
diff --git a/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_statistic_tbl.java b/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_statistic_tbl.java
index 766072b2c..c14604667 100644
--- a/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_statistic_tbl.java
+++ b/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_statistic_tbl.java
@@ -36,7 +36,7 @@ class Site_statistic_tbl implements Db_tbl {
this.fld_queued_massmessages = flds.Add_long("queued_massmessages");
conn.Rls_reg(this);
}
- public void Create_tbl() {conn.Ddl_create_tbl(Dbmeta_tbl_itm.New(tbl_name, flds, Dbmeta_idx_itm.new_unique_by_name(tbl_name, Dbmeta_idx_itm.Bld_idx_name(tbl_name, "main"), fld_site_abrv)));}
+ public void Create_tbl() {conn.Meta_tbl_create(Dbmeta_tbl_itm.New(tbl_name, flds, Dbmeta_idx_itm.new_unique_by_name(tbl_name, Dbmeta_idx_itm.Bld_idx_name(tbl_name, "main"), fld_site_abrv)));}
public void Delete_all() {conn.Stmt_delete(tbl_name, Dbmeta_fld_itm.Str_ary_empty).Exec_delete();}
public void Rls() {
stmt_select = Db_stmt_.Rls(stmt_select);
diff --git a/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_val_tbl.java b/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_val_tbl.java
index a2b042594..46a28fbf1 100644
--- a/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_val_tbl.java
+++ b/400_xowa/src/gplx/xowa/bldrs/wms/sites/Site_val_tbl.java
@@ -29,7 +29,7 @@ class Site_val_tbl implements Db_tbl {
this.fld_val = flds.Add_str("val", 255);
conn.Rls_reg(this);
}
- public void Create_tbl() {conn.Ddl_create_tbl(Dbmeta_tbl_itm.New(tbl_name, flds, Dbmeta_idx_itm.new_unique_by_name(tbl_name, Dbmeta_idx_itm.Bld_idx_name(tbl_name, "main"), fld_site_abrv, fld_val)));}
+ public void Create_tbl() {conn.Meta_tbl_create(Dbmeta_tbl_itm.New(tbl_name, flds, Dbmeta_idx_itm.new_unique_by_name(tbl_name, Dbmeta_idx_itm.Bld_idx_name(tbl_name, "main"), fld_site_abrv, fld_val)));}
public void Delete_all() {conn.Stmt_delete(tbl_name, Dbmeta_fld_itm.Str_ary_empty).Exec_delete();}
public void Rls() {
stmt_select = Db_stmt_.Rls(stmt_select);
diff --git a/400_xowa/src/gplx/xowa/bldrs/xmls/Xob_xml_dumper_tst.java b/400_xowa/src/gplx/xowa/bldrs/xmls/Xob_xml_dumper_tst.java
index 40934a578..5344794b6 100644
--- a/400_xowa/src/gplx/xowa/bldrs/xmls/Xob_xml_dumper_tst.java
+++ b/400_xowa/src/gplx/xowa/bldrs/xmls/Xob_xml_dumper_tst.java
@@ -82,8 +82,8 @@ class Xob_xml_dumper_fxt {
private Xowe_wiki wiki;
private final Xob_xml_dumper export_wtr = new Xob_xml_dumper();
public void Clear() {
- Xoae_app app = Xoa_app_fxt.app_();
- this.wiki = Xoa_app_fxt.wiki_(app, "enwiki");
+ Xoae_app app = Xoa_app_fxt.Make__app__edit();
+ this.wiki = Xoa_app_fxt.Make__wiki__edit(app, "enwiki");
}
public Xowd_page_itm[] Make_ary(Xowd_page_itm... ary) {return ary;}
public Xowd_page_itm Make_page(int id, int ns_id, String ttl_str, String text) {
diff --git a/400_xowa/src/gplx/xowa/bldrs/xmls/Xob_xml_parser_tst.java b/400_xowa/src/gplx/xowa/bldrs/xmls/Xob_xml_parser_tst.java
index 7c7f9ed9f..1ce92b69b 100644
--- a/400_xowa/src/gplx/xowa/bldrs/xmls/Xob_xml_parser_tst.java
+++ b/400_xowa/src/gplx/xowa/bldrs/xmls/Xob_xml_parser_tst.java
@@ -21,7 +21,7 @@ import gplx.xowa.wikis.nss.*; import gplx.xowa.wikis.data.tbls.*;
public class Xob_xml_parser_tst {
@Before public void init() {
Io_mgr.Instance.InitEngine_mem();
- Xoae_app app = Xoa_app_fxt.app_();
+ Xoae_app app = Xoa_app_fxt.Make__app__edit();
bldr = new Xob_bldr(app);
} private Xow_ns_mgr ns_mgr = Xow_ns_mgr_.default_(gplx.xowa.langs.cases.Xol_case_mgr_.A7());
@Test public void Basic_docs_1() {
diff --git a/400_xowa/src/gplx/xowa/drds/Xod_app.java b/400_xowa/src/gplx/xowa/drds/Xod_app.java
index bedcc4e6e..dba1f620d 100644
--- a/400_xowa/src/gplx/xowa/drds/Xod_app.java
+++ b/400_xowa/src/gplx/xowa/drds/Xod_app.java
@@ -18,15 +18,19 @@ along with this program. If not, see .
package gplx.xowa.drds; import gplx.*; import gplx.xowa.*;
import gplx.xowa.drds.pages.*; import gplx.xowa.drds.files.*;
import gplx.xowa.apps.*; import gplx.xowa.wikis.data.tbls.*;
-import gplx.xowa.wikis.nss.*; import gplx.xowa.files.gui.*;
-import gplx.xowa.specials.search.*; import gplx.xowa.specials.randoms.*;
+import gplx.xowa.wikis.domains.*; import gplx.xowa.wikis.nss.*; import gplx.xowa.files.gui.*;
+import gplx.xowa.addons.searchs.searchers.rslts.*; import gplx.xowa.specials.randoms.*;
import gplx.langs.htmls.encoders.*; import gplx.xowa.htmls.hrefs.*;
+import gplx.xowa.addons.searchs.*; import gplx.xowa.addons.searchs.searchers.*;
+import gplx.xowa.langs.cases.*;
public class Xod_app {
- private final Xoav_app app;
- private final Xod_page_mgr page_mgr = new Xod_page_mgr();
- private final Xod_file_mgr file_mgr = new Xod_file_mgr();
+ private final Xoav_app app;
+ private final Xod_page_mgr page_mgr = new Xod_page_mgr();
+ private final Xod_file_mgr file_mgr = new Xod_file_mgr();
+ private final Srch_ns_mgr ns_mgr = new Srch_ns_mgr();
public Xod_app(Xoav_app app) {
this.app = app;
+ ns_mgr.Add_main_if_empty();
}
public Xow_wiki Wikis__get_by_domain(String wiki_domain) {
Xow_wiki rv = app.Wiki_mgri().Get_by_or_make_init_y(Bry_.new_u8(wiki_domain));
@@ -41,19 +45,10 @@ public class Xod_app {
Xoa_url url = wiki.Utl__url_parser().Parse(random_ttl_bry);
return Wiki__get_by_url(wiki, url);
}
-// public String[] Wiki__search(Cancelable cancelable, Srch_rslt_lnr rslt_lnr, Xow_wiki wiki, String search) {
-// Srch_db_wkr search_wkr = new Srch_db_wkr();
-// Srch_rslt_itm[] rows = search_wkr.Search_by_drd(cancelable, wiki, ui_async, Bry_.new_u8(search), 50);
-// int len = rows.length;
-// String[] rv = new String[len];
-// for (int i = 0; i < len; ++i) {
-// rv[i] = String_.new_u8(rows[i].page_ttl.Page_txt());
-// }
-// return rv;
-// }
- public void Wiki__search(Cancelable cancelable, Srch_rslt_lnr rslt_lnr, Xow_wiki wiki, String search, Xod_search_cmd[] cmds) {
- for (Xod_search_cmd cmd : cmds)
- cmd.Search(cancelable, rslt_lnr, wiki, search);
+ public void Wiki__search(Cancelable cxl, Srch_rslt_cbk cbk, Xow_wiki wiki, String search, int bgn, int end) {
+ Srch_search_addon addon = Get_addon(wiki);
+ Srch_search_qry qry = Srch_search_qry.New__drd(wiki, ns_mgr, Bry_.new_u8(search), bgn, end);
+ addon.Search(qry, cbk);
}
public void Page__load_files(Xow_wiki wiki, Xod_page_itm pg, Xog_js_wkr js_wkr) {
file_mgr.Load_files(wiki, pg, js_wkr);
@@ -67,4 +62,5 @@ public class Xod_app {
page_bry = Xoa_ttl.Replace_spaces(page_bry); // convert spaces to unders; canonical-url has spaces
return page_bry;
}
+ private Srch_search_addon Get_addon(Xow_wiki wiki) {return Srch_search_addon.Get(wiki);}
}
diff --git a/400_xowa/src/gplx/xowa/drds/Xod_app_tst.java b/400_xowa/src/gplx/xowa/drds/Xod_app_tst.java
index d99dc32e4..8b7ac24f4 100644
--- a/400_xowa/src/gplx/xowa/drds/Xod_app_tst.java
+++ b/400_xowa/src/gplx/xowa/drds/Xod_app_tst.java
@@ -41,7 +41,7 @@ class Xod_app_tstr {
this.app = Xoa_app_fxt.Make__app__view();
this.wiki = Xoa_app_fxt.Make__wiki__view(app);
data_mgr.Wiki_(wiki);
- Xoa_test_.Init__db__mem(wiki);
+ Xoa_test_.Init__db__view(wiki);
drd_provider = new Xod_app(app);
}
public Xowd_data_tstr Data_mgr() {return data_mgr;} private final Xowd_data_tstr data_mgr = new Xowd_data_tstr();
diff --git a/400_xowa/src/gplx/xowa/drds/Xod_search_cmd_.java b/400_xowa/src/gplx/xowa/drds/Xod_search_cmd_.java
deleted file mode 100644
index 7696109fd..000000000
--- a/400_xowa/src/gplx/xowa/drds/Xod_search_cmd_.java
+++ /dev/null
@@ -1,74 +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 .
-*/
-package gplx.xowa.drds; import gplx.*; import gplx.xowa.*;
-import gplx.xowa.specials.search.*;
-import gplx.xowa.wikis.data.tbls.*;
-public class Xod_search_cmd_ {
- public static final Xod_search_cmd
- New__page_eq = Xod_search_cmd__page_eq.Instance
- , New__page_like = Xod_search_cmd__page_like.Instance
- , New__word_eq = Xod_search_cmd__word_tbl.Instance_eq
- , New__word_like = Xod_search_cmd__word_tbl.Instance_like
- ;
-}
-class Xod_search_cmd__page_eq implements Xod_search_cmd {
- public void Search(Cancelable cancelable, Srch_rslt_lnr rslt_lnr, Xow_wiki wiki, String search) {
- Xowd_page_itm page_itm = new Xowd_page_itm();
- if (wiki.Data__core_mgr().Tbl__page().Select_by_ttl(page_itm, wiki.Ns_mgr().Ns_main(), Bry_.Ucase__1st(Bry_.new_u8(search)))) {
- Srch_rslt_itm search_itm = new Srch_rslt_itm(wiki.Domain_bry(), wiki.Ttl_parse(page_itm.Ttl_page_db()), page_itm.Id(), page_itm.Text_len());
- rslt_lnr.Notify_rslt_found(search_itm);
- }
- }
- public static final Xod_search_cmd__page_eq Instance = new Xod_search_cmd__page_eq(); Xod_search_cmd__page_eq() {}
-}
-class Xod_search_cmd__page_like implements Xod_search_cmd {// NOTE: slow; takes at least 10+ seconds
- public void Search(Cancelable cancelable, Srch_rslt_lnr rslt_lnr, Xow_wiki wiki, String search) {
- List_adp tmp_list = List_adp_.new_();
- wiki.Data__core_mgr().Tbl__page().Select_by_search(cancelable, tmp_list, Bry_.Ucase__1st(Bry_.new_u8(search + "*")), 50);
- int len = tmp_list.Count();
- for (int i = 0; i < len; ++i) {
- Xowd_page_itm page_itm = (Xowd_page_itm)tmp_list.Get_at(i);
- Srch_rslt_itm search_itm = new Srch_rslt_itm(wiki.Domain_bry(), wiki.Ttl_parse(page_itm.Ttl_page_db()), page_itm.Id(), page_itm.Text_len());
- rslt_lnr.Notify_rslt_found(search_itm);
- }
- }
- public static final Xod_search_cmd__page_like Instance = new Xod_search_cmd__page_like(); Xod_search_cmd__page_like() {}
-}
-class Xod_search_cmd__word_tbl implements Xod_search_cmd {
- private final boolean wildcard;
- private final int results_wanted;
- private final Srch_db_wkr search_wkr = new Srch_db_wkr();
- Xod_search_cmd__word_tbl(boolean wildcard, int results_wanted) {this.wildcard = wildcard; this.results_wanted = results_wanted;}
- public void Search(Cancelable cancelable, Srch_rslt_lnr rslt_lnr, Xow_wiki wiki, String search) {
- search_wkr.Search_by_drd(cancelable, rslt_lnr, wiki, Bry_.new_u8(Standardize_search(search, wildcard)), results_wanted);
- }
- public static final Xod_search_cmd__word_tbl Instance_eq = new Xod_search_cmd__word_tbl(Bool_.N, 10), Instance_like = new Xod_search_cmd__word_tbl(Bool_.Y, 50);
- private static String Standardize_search(String search, boolean wildcard) {
- String rv = "";
- String[] words = String_.Split(search, " ");
- int words_len = words.length;
- for (int i = 0; i < words_len; ++i) {
- String word = words[i];
- if (String_.Len(word) < 3) continue;
- if (String_.Len(rv) != 0) rv += " ";
- rv += word;
- if (wildcard) rv += "*";
- }
- return rv;
- }
-}
diff --git a/400_xowa/src/gplx/xowa/files/Xof_fsdb_itm.java b/400_xowa/src/gplx/xowa/files/Xof_fsdb_itm.java
index aa88f6eba..8a2c6e1cd 100644
--- a/400_xowa/src/gplx/xowa/files/Xof_fsdb_itm.java
+++ b/400_xowa/src/gplx/xowa/files/Xof_fsdb_itm.java
@@ -58,7 +58,6 @@ public class Xof_fsdb_itm implements Xof_file_itm {
public boolean Fsdb_insert() {return fsdb_insert;} public void Fsdb_insert_y_() {fsdb_insert = true;} private boolean fsdb_insert;
public int Xfer_idx() {return xfer_idx;} private int xfer_idx;
public int Xfer_len() {return xfer_len;} private int xfer_len;
-
public void Init_at_lnki(int exec_tid, byte[] wiki_abrv, byte[] lnki_ttl, byte lnki_type, double lnki_upright, int lnki_w, int lnki_h, double lnki_time, int lnki_page, int lnki_upright_patch) {
this.lnki_exec_tid = exec_tid; this.lnki_wiki_abrv = wiki_abrv;
this.lnki_type = lnki_type; this.lnki_upright = lnki_upright; this.lnki_upright_patch = lnki_upright_patch;
diff --git a/400_xowa/src/gplx/xowa/files/Xof_img_size.java b/400_xowa/src/gplx/xowa/files/Xof_img_size.java
index 4ce825147..d7366b4ae 100644
--- a/400_xowa/src/gplx/xowa/files/Xof_img_size.java
+++ b/400_xowa/src/gplx/xowa/files/Xof_img_size.java
@@ -58,7 +58,6 @@ public class Xof_img_size {
}
html_w = Upright_calc(upright_patch, lnki_upright, html_w, lnki_w, lnki_h, lnki_type);
if (orig_w == Null) return; // no orig_w; just use html_w and html_h (html_h will likely be -1 and wrong)
-
boolean ext_is_svg = orig_ext == Xof_ext_.Id_svg;
if (html_w == Xof_img_size.Null) {
if ( ext_is_svg // following strange MW logic; REF.MW:Linker.php|makeImageLink|If its a vector image, and user only specifies height, we don't want it to be limited by its "normal" width; DATE: 2013-11-26
@@ -159,16 +158,13 @@ MW calls the falling procs
. File.php|scaleHeight
Note that this proc is a selective culling of the w,h setting code in the above (the procs do a lot of other checks/building)
also, MW's if branching can be combined. for now, emulating MW and not enforcing matching if/else
-
NOTE_2: lnki_ratio > orig_ratio
REF.MW:media/MediaHandler.php|fitBoxWidth
COMMENT:"Height is the relative smaller dimension, so scale width accordingly"
-
consider file of 200,100 (2:1)
EX_1: view is 120,40 (3:1)
- dimensions are either (a) 120,80 or (b) 80,40
- use (b) 80,40
-
EX_2: view is 120,80 (1.5:1)
- dimensions are either (a) 120,60 or (b) 160,80
- use (a) 120,60
diff --git a/400_xowa/src/gplx/xowa/files/Xof_img_size_tst.java b/400_xowa/src/gplx/xowa/files/Xof_img_size_tst.java
index f9ed4f0ab..e354d700c 100644
--- a/400_xowa/src/gplx/xowa/files/Xof_img_size_tst.java
+++ b/400_xowa/src/gplx/xowa/files/Xof_img_size_tst.java
@@ -47,10 +47,8 @@ public class Xof_img_size_tst {
@Test public void Upright() {fxt.Lnki_upright_(1).Lnki_(-1, -1).Orig_(440, 400).Test_html(220, 200);}
@Test public void Upright_w_thumb() {fxt.Lnki_type_(Xop_lnki_type.Id_thumb).Lnki_upright_(2).Lnki_(-1, -1).Orig_(1500, 1125).Test_html(440, 330);}
@Test public void Upright_ignored_by_w() {fxt.Lnki_type_(Xop_lnki_type.Id_thumb).Lnki_upright_(3.2).Lnki_(900, -1).Orig_(4653, 854).Test_html(900, 165);}// PAGE: fr.w:Bogota; DATE:2014-05-22
-
@Test public void Explicit_ratio_large() {fxt.Lnki_(120, 40).Test_html( 80, 40);} // see NOTE_2: lnki_ratio > orig_ratio
@Test public void Explicit_ratio_small() {fxt.Lnki_(120, 80).Test_html(120, 60);} // see NOTE_2: lnki_ratio > orig_ratio
-
@Test public void Lnki_gt_orig_null_svg_example() { // EX:[[File:Crystal Clear app kedit.svg|50x40px]]
fxt.Lnki_ext_(Xof_ext_.Id_svg).Lnki_type_(Xop_lnki_type.Id_null).Lnki_( 50, 40).Orig_( 40, 40).Test_html( 40, 40);
}
diff --git a/400_xowa/src/gplx/xowa/files/bins/Xof_bin_wkr__http_wmf__tst.java b/400_xowa/src/gplx/xowa/files/bins/Xof_bin_wkr__http_wmf__tst.java
index 3c8ceeb4b..4174886cd 100644
--- a/400_xowa/src/gplx/xowa/files/bins/Xof_bin_wkr__http_wmf__tst.java
+++ b/400_xowa/src/gplx/xowa/files/bins/Xof_bin_wkr__http_wmf__tst.java
@@ -47,8 +47,8 @@ class Xof_bin_wkr__http_wmf__fxt {
private Io_stream_rdr get_as_rdr__rdr;
public Xof_fsdb_itm_fxt Fsdb_itm_mkr() {return fsdb_itm_mkr;} private final Xof_fsdb_itm_fxt fsdb_itm_mkr = new Xof_fsdb_itm_fxt();
public Xof_bin_wkr__http_wmf__fxt() {
- Xoae_app app = Xoa_app_fxt.app_();
- Xowe_wiki wiki = Xoa_app_fxt.wiki_tst_(app);
+ Xoae_app app = Xoa_app_fxt.Make__app__edit();
+ Xowe_wiki wiki = Xoa_app_fxt.Make__wiki__edit(app);
Xoa_app_fxt.repo2_(app, wiki);
this.download_mgr = Io_download_mgr_.new_memory();
this.wkr = Xof_bin_wkr__http_wmf.new_(wiki, download_mgr);
diff --git a/400_xowa/src/gplx/xowa/files/caches/Xofc_dir_tbl.java b/400_xowa/src/gplx/xowa/files/caches/Xofc_dir_tbl.java
index 01d12db62..4b21f8441 100644
--- a/400_xowa/src/gplx/xowa/files/caches/Xofc_dir_tbl.java
+++ b/400_xowa/src/gplx/xowa/files/caches/Xofc_dir_tbl.java
@@ -34,7 +34,7 @@ class Xofc_dir_tbl implements Rls_able {
Dbmeta_tbl_itm meta = Dbmeta_tbl_itm.New(tbl_name, flds
, Dbmeta_idx_itm.new_normal_by_tbl(tbl_name, "name", fld_name)
);
- conn.Ddl_create_tbl(meta);
+ conn.Meta_tbl_create(meta);
}
stmt_bldr.Conn_(conn, tbl_name, flds, fld_id);
conn.Rls_reg(this);
@@ -80,7 +80,7 @@ class Xofc_dir_tbl implements Rls_able {
}
finally {rdr.Rls();}
}
- public int Select_max_uid() {return Db_conn_.Select_fld0_as_int_or(conn, "SELECT Max(uid) AS MaxId FROM cache_dir;", -1);}
+ public int Select_max_uid() {return conn.Exec_select_as_int("SELECT Max(uid) AS MaxId FROM cache_dir;", -1);}
private Xofc_dir_itm new_itm(Db_rdr rdr) {
return new Xofc_dir_itm(rdr.Read_int(fld_id), rdr.Read_bry_by_str(fld_name), Db_cmd_mode.Tid_ignore);
}
diff --git a/400_xowa/src/gplx/xowa/files/caches/Xofc_fil_tbl.java b/400_xowa/src/gplx/xowa/files/caches/Xofc_fil_tbl.java
index 2fd8d1fa8..845e23606 100644
--- a/400_xowa/src/gplx/xowa/files/caches/Xofc_fil_tbl.java
+++ b/400_xowa/src/gplx/xowa/files/caches/Xofc_fil_tbl.java
@@ -49,7 +49,7 @@ class Xofc_fil_tbl implements Rls_able {
Dbmeta_tbl_itm meta = Dbmeta_tbl_itm.New(tbl_name, flds
, Dbmeta_idx_itm.new_normal_by_tbl(tbl_name, "fil", fld_name, fld_is_orig, fld_w, fld_h, fld_time, fld_cache_time, fld_uid)
);
- conn.Ddl_create_tbl(meta);
+ conn.Meta_tbl_create(meta);
}
select_itm_stmt = select_itm_v2_stmt = null;
stmt_bldr.Conn_(conn, tbl_name, flds, fld_uid);
@@ -135,7 +135,7 @@ class Xofc_fil_tbl implements Rls_able {
}
finally {rdr.Rls();}
}
- public int Select_max_uid() {return Db_conn_.Select_fld0_as_int_or(conn, "SELECT Max(uid) AS MaxId FROM cache_fil;", -1);}
+ public int Select_max_uid() {return conn.Exec_select_as_int("SELECT Max(uid) AS MaxId FROM cache_fil;", -1);}
private Xofc_fil_itm new_itm(Db_rdr rdr) {
return new Xofc_fil_itm
( rdr.Read_int(fld_uid)
diff --git a/400_xowa/src/gplx/xowa/files/caches/Xou_cache_mgr.java b/400_xowa/src/gplx/xowa/files/caches/Xou_cache_mgr.java
index 9e555b54b..f87316476 100644
--- a/400_xowa/src/gplx/xowa/files/caches/Xou_cache_mgr.java
+++ b/400_xowa/src/gplx/xowa/files/caches/Xou_cache_mgr.java
@@ -32,7 +32,7 @@ public class Xou_cache_mgr {
public long Fsys_size_cur() {return fsys_size_cur;} private long fsys_size_cur = 0;
public long Fsys_size_min() {return fsys_size_min;} public void Fsys_size_min_(long v) {fsys_size_min = v;} private long fsys_size_min = Io_mgr.Len_mb * 75;
public long Fsys_size_max() {return fsys_size_max;} public void Fsys_size_max_(long v) {fsys_size_max = v;} private long fsys_size_max = Io_mgr.Len_mb * 100;
- public KeyVal[] Info() {
+ public Keyval[] Info() {
long view_date = Long_.Max_value;
long fsys_size = 0;
int len = hash.Count();
@@ -41,11 +41,11 @@ public class Xou_cache_mgr {
fsys_size += itm.File_size();
if (itm.View_date() < view_date) view_date = itm.View_date();
}
- return KeyVal_.Ary
- ( KeyVal_.new_("cache folder", cache_dir.Xto_api())
- , KeyVal_.new_("space used", gplx.core.ios.Io_size_.To_str(fsys_size))
- , KeyVal_.new_("file count", len)
- , KeyVal_.new_("oldest file", view_date == Long_.Max_value ? "" : DateAdp_.unixtime_utc_seconds_(view_date).XtoStr_fmt_iso_8561())
+ return Keyval_.Ary
+ ( Keyval_.new_("cache folder", cache_dir.Xto_api())
+ , Keyval_.new_("space used", gplx.core.ios.Io_size_.To_str(fsys_size))
+ , Keyval_.new_("file count", len)
+ , Keyval_.new_("oldest file", view_date == Long_.Max_value ? "" : DateAdp_.unixtime_utc_seconds_(view_date).XtoStr_fmt_iso_8561())
);
}
public Xou_cache_itm Get_or_null(Xof_fsdb_itm fsdb) {return Get_or_null(fsdb.Lnki_wiki_abrv(), fsdb.Lnki_ttl(), fsdb.Lnki_type(), fsdb.Lnki_upright(), fsdb.Lnki_w(), fsdb.Lnki_h(), fsdb.Lnki_time(), fsdb.Lnki_page(), fsdb.User_thumb_w());}
diff --git a/400_xowa/src/gplx/xowa/files/caches/Xou_cache_mgr_tst.java b/400_xowa/src/gplx/xowa/files/caches/Xou_cache_mgr_tst.java
index da17f6ef6..bd26684f8 100644
--- a/400_xowa/src/gplx/xowa/files/caches/Xou_cache_mgr_tst.java
+++ b/400_xowa/src/gplx/xowa/files/caches/Xou_cache_mgr_tst.java
@@ -63,10 +63,10 @@ class Xou_cache_mgr_fxt {
Tfds.Now_set(DateAdp_.new_(1970, 1, 1, 0, 0, 0, 0));
Io_mgr.Instance.InitEngine_mem();
Db_conn_bldr.Instance.Reg_default_mem();
- Xoae_app app = Xoa_app_fxt.app_();
+ Xoae_app app = Xoa_app_fxt.Make__app__edit();
app.User().User_db_mgr().Init_by_app(Bool_.N, app.Fsys_mgr().Root_dir().GenSubFil_nest("user", "xowa.user.anonymous.sqlite3"));
- Xoa_app_fxt.repo_(app, Xoa_app_fxt.wiki_(app, "en.wikipedia.org"));
- Xoa_app_fxt.repo_(app, Xoa_app_fxt.wiki_(app, "fr.wikipedia.org"));
+ Xoa_app_fxt.repo_(app, Xoa_app_fxt.Make__wiki__edit(app, "en.wikipedia.org"));
+ Xoa_app_fxt.repo_(app, Xoa_app_fxt.Make__wiki__edit(app, "fr.wikipedia.org"));
this.mgr = new Xou_cache_mgr(app.Wiki_mgr(), app.Fsys_mgr().File_dir(), app.User().User_db_mgr().Db_file());
}
public void Init_delete(long min, long max) {
diff --git a/400_xowa/src/gplx/xowa/files/caches/Xou_cache_tbl.java b/400_xowa/src/gplx/xowa/files/caches/Xou_cache_tbl.java
index b6a6de47c..58f937546 100644
--- a/400_xowa/src/gplx/xowa/files/caches/Xou_cache_tbl.java
+++ b/400_xowa/src/gplx/xowa/files/caches/Xou_cache_tbl.java
@@ -70,7 +70,7 @@ public class Xou_cache_tbl implements Rls_able {
, Dbmeta_idx_itm.new_normal_by_tbl(tbl_name, "size", fld_file_size)
, Dbmeta_idx_itm.new_normal_by_tbl(tbl_name, "date", fld_view_date)
);
- conn.Ddl_create_tbl(meta);
+ conn.Meta_tbl_create(meta);
}
public Xou_cache_itm Select_one(byte[] lnki_wiki_abrv, byte[] lnki_ttl, int lnki_type, double lnki_upright, int lnki_w, int lnki_h, double lnki_time, int lnki_page, int user_thumb_w) {
if (select_stmt == null) select_stmt = conn.Stmt_select(tbl_name, flds, String_.Ary(fld_lnki_wiki_abrv, fld_lnki_ttl, fld_lnki_type, fld_lnki_upright, fld_lnki_w, fld_lnki_h, fld_lnki_time, fld_lnki_page, fld_user_thumb_w));
diff --git a/400_xowa/src/gplx/xowa/files/fsdb/fs_roots/Orig_fil_tbl.java b/400_xowa/src/gplx/xowa/files/fsdb/fs_roots/Orig_fil_tbl.java
index 71ab22e0b..344d90b1c 100644
--- a/400_xowa/src/gplx/xowa/files/fsdb/fs_roots/Orig_fil_tbl.java
+++ b/400_xowa/src/gplx/xowa/files/fsdb/fs_roots/Orig_fil_tbl.java
@@ -37,7 +37,7 @@ public class Orig_fil_tbl implements Rls_able {
Dbmeta_tbl_itm meta = Dbmeta_tbl_itm.New(tbl_name, flds
, Dbmeta_idx_itm.new_unique_by_tbl(tbl_name, "main", fld_name)
);
- conn.Ddl_create_tbl(meta);
+ conn.Meta_tbl_create(meta);
}
stmt_insert = stmt_select = null;
conn.Rls_reg(this);
diff --git a/400_xowa/src/gplx/xowa/files/fsdb/tsts/Xof_file_fxt.java b/400_xowa/src/gplx/xowa/files/fsdb/tsts/Xof_file_fxt.java
index 9369f28a1..ad9aaa7f7 100644
--- a/400_xowa/src/gplx/xowa/files/fsdb/tsts/Xof_file_fxt.java
+++ b/400_xowa/src/gplx/xowa/files/fsdb/tsts/Xof_file_fxt.java
@@ -30,8 +30,8 @@ class Xof_file_fxt {
Io_mgr.Instance.InitEngine_mem(); // NOTE: files are downloaded to mem_engine, regardless of Db being mem or sqlite; always reset
Io_url root_url = Xoa_test_.Url_root();
Xoa_test_.Db_init(root_url);
- app = Xoa_app_fxt.app_(Op_sys.Cur().Os_name(), root_url);
- wiki = Xoa_app_fxt.wiki_tst_(app);
+ app = Xoa_app_fxt.Make__app__edit(Op_sys.Cur().Os_name(), root_url);
+ wiki = Xoa_app_fxt.Make__wiki__edit(app);
wiki.File__fsdb_mode().Tid_v2_bld_y_();
this.fsdb_mgr = (Xof_fsdb_mgr__sql)wiki.File_mgr().Fsdb_mgr();
this.orig_mgr = wiki.File__orig_mgr();
diff --git a/400_xowa/src/gplx/xowa/files/origs/Xob_orig_tbl_bldr.java b/400_xowa/src/gplx/xowa/files/origs/Xob_orig_tbl_bldr.java
index 8723b4bfd..dd7ba7600 100644
--- a/400_xowa/src/gplx/xowa/files/origs/Xob_orig_tbl_bldr.java
+++ b/400_xowa/src/gplx/xowa/files/origs/Xob_orig_tbl_bldr.java
@@ -30,7 +30,7 @@ public class Xob_orig_tbl_bldr extends Xob_itm_basic_base implements Xob_cmd {
Fsdb_db_mgr db_core_mgr = Fsdb_db_mgr_.new_detect(wiki, wiki.Fsys_mgr().Root_dir(), wiki.Fsys_mgr().File_dir());
this.schema_1 = db_core_mgr.File__schema_is_1();
conn = db_core_mgr.File__orig_tbl_ary()[gplx.fsdb.meta.Fsm_mnt_mgr.Mnt_idx_main].Conn();
- Io_url make_db_url = Xob_db_file.new__file_make(wiki.Fsys_mgr().Root_dir()).Url();
+ Io_url make_db_url = Xob_db_file.New__file_make(wiki.Fsys_mgr().Root_dir()).Url();
Sqlite_engine_.Db_attach(conn, "make_db", make_db_url.Raw());
}
public void Cmd_run() {Exec();}
diff --git a/400_xowa/src/gplx/xowa/files/origs/Xof_orig_tbl.java b/400_xowa/src/gplx/xowa/files/origs/Xof_orig_tbl.java
index 042bbe6f5..1f83e1473 100644
--- a/400_xowa/src/gplx/xowa/files/origs/Xof_orig_tbl.java
+++ b/400_xowa/src/gplx/xowa/files/origs/Xof_orig_tbl.java
@@ -40,7 +40,7 @@ public class Xof_orig_tbl implements Rls_able {
conn.Rls_reg(this);
}
public void Rls() {}
- public void Create_tbl() {conn.Ddl_create_tbl(Dbmeta_tbl_itm.New(tbl_name, flds, Dbmeta_idx_itm.new_normal_by_tbl(tbl_name, "main", fld_ttl)));}
+ public void Create_tbl() {conn.Meta_tbl_create(Dbmeta_tbl_itm.New(tbl_name, flds, Dbmeta_idx_itm.new_normal_by_tbl(tbl_name, "main", fld_ttl)));}
public void Select_by_list(Ordered_hash rv, List_adp itms) {select_in_wkr.Init(rv, itms).Select_in(Cancelable_.Never, conn, 0, itms.Count());}
public Xof_orig_itm Select_itm(byte[] ttl) {
Xof_orig_itm rv = Xof_orig_itm.Null;
diff --git a/400_xowa/src/gplx/xowa/files/origs/Xof_orig_wkr_.java b/400_xowa/src/gplx/xowa/files/origs/Xof_orig_wkr_.java
index ef9abfb9d..92024f4b2 100644
--- a/400_xowa/src/gplx/xowa/files/origs/Xof_orig_wkr_.java
+++ b/400_xowa/src/gplx/xowa/files/origs/Xof_orig_wkr_.java
@@ -30,7 +30,6 @@ public class Xof_orig_wkr_ {
rv.Add(fsdb_ttl, orig);
}
}
-
public static final byte
Tid_xowa_db = 1
, Tid_wmf_api = 2
diff --git a/400_xowa/src/gplx/xowa/files/xfers/Xof_xfer_queue_base_fxt.java b/400_xowa/src/gplx/xowa/files/xfers/Xof_xfer_queue_base_fxt.java
index 7729d6939..2fda1e738 100644
--- a/400_xowa/src/gplx/xowa/files/xfers/Xof_xfer_queue_base_fxt.java
+++ b/400_xowa/src/gplx/xowa/files/xfers/Xof_xfer_queue_base_fxt.java
@@ -26,9 +26,9 @@ public class Xof_xfer_queue_base_fxt {
@gplx.Virtual public void Clear(boolean src_repo_is_wmf) {
Io_mgr.Instance.InitEngine_mem();
if (app == null) {
- app = Xoa_app_fxt.app_();
- en_wiki = Xoa_app_fxt.wiki_(app, Xow_domain_itm_.Str__enwiki);
- commons = Xoa_app_fxt.wiki_(app, Xow_domain_itm_.Str__commons);
+ app = Xoa_app_fxt.Make__app__edit();
+ en_wiki = Xoa_app_fxt.Make__wiki__edit(app, Xow_domain_itm_.Str__enwiki);
+ commons = Xoa_app_fxt.Make__wiki__edit(app, Xow_domain_itm_.Str__commons);
app.Wiki_mgr().Add(commons);
app.Wiki_mgr().Add(en_wiki);
diff --git a/400_xowa/src/gplx/xowa/guis/Xoa_gui_mgr.java b/400_xowa/src/gplx/xowa/guis/Xoa_gui_mgr.java
index 3f3d5ac71..82b42e991 100644
--- a/400_xowa/src/gplx/xowa/guis/Xoa_gui_mgr.java
+++ b/400_xowa/src/gplx/xowa/guis/Xoa_gui_mgr.java
@@ -17,10 +17,10 @@ along with this program. If not, see .
*/
package gplx.xowa.guis; import gplx.*; import gplx.xowa.*;
import gplx.core.brys.fmtrs.*; import gplx.core.envs.*;
-import gplx.gfui.*; import gplx.xowa.specials.search.*; import gplx.xowa.guis.menus.*; import gplx.xowa.guis.cmds.*; import gplx.xowa.apps.cfgs.gui.*; import gplx.xowa.users.*;
+import gplx.gfui.*; import gplx.xowa.addons.searchs.*; import gplx.xowa.guis.menus.*; import gplx.xowa.guis.cmds.*; import gplx.xowa.apps.cfgs.gui.*; import gplx.xowa.users.*;
import gplx.xowa.langs.*;
import gplx.xowa.guis.bnds.*; import gplx.xowa.guis.views.*; import gplx.xowa.guis.urls.url_macros.*;
-import gplx.xowa.guis.views.boots.*;
+import gplx.xowa.guis.views.boots.*;
public class Xoa_gui_mgr implements GfoEvObj, GfoInvkAble {
public Xoa_gui_mgr(Xoae_app app) {
this.ev_mgr = GfoEvMgr.new_(this);
@@ -30,7 +30,7 @@ public class Xoa_gui_mgr implements GfoEvObj, GfoInvkAble {
win_cfg = new Xocfg_win(app);
html_mgr = new Xog_html_mgr(app);
menu_mgr = new Xog_menu_mgr(this);
- search_suggest_mgr = new Xog_search_suggest_mgr(this);
+ search_cfg = new Srch_search_cfg(app);
}
public GfoEvMgr EvMgr() {return ev_mgr;} private GfoEvMgr ev_mgr;
public Xoae_app App() {return app;} private Xoae_app app;
@@ -42,12 +42,12 @@ public class Xoa_gui_mgr implements GfoEvObj, GfoInvkAble {
public Xocfg_win Win_cfg() {return win_cfg;} private Xocfg_win win_cfg;
public Xog_layout Layout() {return layout;} private Xog_layout layout = new Xog_layout();
public Xog_html_mgr Html_mgr() {return html_mgr;} private Xog_html_mgr html_mgr;
- public Xog_search_suggest_mgr Search_suggest_mgr() {return search_suggest_mgr;} private Xog_search_suggest_mgr search_suggest_mgr;
+ public Srch_search_cfg Search_cfg() {return search_cfg;} private Srch_search_cfg search_cfg;
public Xog_menu_mgr Menu_mgr() {return menu_mgr;} private Xog_menu_mgr menu_mgr;
public Xog_url_macro_mgr Url_macro_mgr() {return url_macro_mgr;} private Xog_url_macro_mgr url_macro_mgr = new Xog_url_macro_mgr();
public void Show_prog() {
GfuiWin memo_win = kit.New_win_utl("memo_win", browser_win.Win_box());
- GfuiTextBox memo_txt = kit.New_text_box("memo_txt", memo_win, KeyVal_.new_(GfuiTextBox_.Ctor_Memo, true));
+ GfuiTextBox memo_txt = kit.New_text_box("memo_txt", memo_win, Keyval_.new_(GfuiTextBox_.Ctor_Memo, true));
RectAdp prog_box_rect = browser_win.Prog_box().Rect();
memo_win.Rect_set(RectAdp_.new_(prog_box_rect.X(), prog_box_rect.Y() - 75, prog_box_rect.Width(), 100));
memo_txt.Size_(memo_win.Size().Op_add(-8, -30));
@@ -90,7 +90,7 @@ public class Xoa_gui_mgr implements GfoEvObj, GfoInvkAble {
else if (ctx.Match(k, Invk_win_opts)) return win_cfg;
else if (ctx.Match(k, Invk_layout)) return layout;
else if (ctx.Match(k, Invk_html)) return html_mgr;
- else if (ctx.Match(k, Invk_search_suggest)) return search_suggest_mgr;
+ else if (ctx.Match(k, Invk_search_suggest)) return search_cfg;
else if (ctx.Match(k, Invk_menus)) return menu_mgr;
else if (ctx.Match(k, Invk_cmds)) return cmd_mgr;
else if (ctx.Match(k, Invk_url_macros)) return url_macro_mgr;
diff --git a/400_xowa/src/gplx/xowa/guis/Xog_resizer.java b/400_xowa/src/gplx/xowa/guis/Xog_resizer.java
index f149d6ec1..f45536447 100644
--- a/400_xowa/src/gplx/xowa/guis/Xog_resizer.java
+++ b/400_xowa/src/gplx/xowa/guis/Xog_resizer.java
@@ -23,7 +23,8 @@ public class Xog_resizer {
Xog_layout layout = app.Gui_mgr().Layout();
Xog_win_itm main_win = app.Gui_mgr().Browser_win();
GfuiBtn go_bwd_btn = main_win.Go_bwd_btn(), go_fwd_btn = main_win.Go_fwd_btn(), url_exec_btn = main_win.Url_exec_btn(), search_exec_btn = main_win.Search_exec_btn(), find_fwd_btn = main_win.Find_fwd_btn(), find_bwd_btn = main_win.Find_bwd_btn(), find_close_btn = main_win.Find_close_btn();
- GfuiTextBox url_box = main_win.Url_box(), search_box = main_win.Search_box(), find_box = main_win.Find_box(), prog_box = main_win.Prog_box(), note_box = main_win.Info_box();
+ GfuiComboBox url_box = main_win.Url_box();
+ GfuiTextBox search_box = main_win.Search_box(), find_box = main_win.Find_box(), prog_box = main_win.Prog_box(), note_box = main_win.Info_box();
Gfui_tab_mgr tab_mgr = main_win.Tab_mgr().Tab_mgr();
int txt_dim = layout.Box_height_calc(app.Gui_mgr().Kit(), url_box);
int btn_dim = 25; // txt_dim + 1;
@@ -81,6 +82,12 @@ public class Xog_resizer {
cur_box.Margins_set(0, txt_margin_v, 0, txt_margin_v);
} catch (Exception e) {Err_.Noop(e);}
}
+ else if (Type_adp_.Eq_typeSafe(cur_elem, GfuiComboBox.class)) {
+ try {
+ GfuiComboBox cur_box = (GfuiComboBox)cur_elem;
+ cur_box.Margins_set(0, txt_margin_v, 0, txt_margin_v);
+ } catch (Exception e) {Err_.Noop(e);}
+ }
if (box.Mode() == Xog_layout_box.Mode_abs) // absolute mode; set dimensions manually
cur_elem_rect.X_(box.X_abs()).Y_(box.Y_abs()).W_(box.W_abs()).H_(box.H_abs());
else {
diff --git a/400_xowa/src/gplx/xowa/guis/bnds/Xog_bnd_itm_srl_tst.java b/400_xowa/src/gplx/xowa/guis/bnds/Xog_bnd_itm_srl_tst.java
index 16a9f9746..88c2b72ed 100644
--- a/400_xowa/src/gplx/xowa/guis/bnds/Xog_bnd_itm_srl_tst.java
+++ b/400_xowa/src/gplx/xowa/guis/bnds/Xog_bnd_itm_srl_tst.java
@@ -30,7 +30,7 @@ public class Xog_bnd_itm_srl_tst {
class Xog_bnd_itm_srl_fxt {
private Xoae_app app;
public void Reset() {
- app = Xoa_app_fxt.app_();
+ app = Xoa_app_fxt.Make__app__edit();
}
public Xog_bnd_itm bnd_(int box, IptArg ipt) {return new Xog_bnd_itm("test.key", true, "test.cmd", box, ipt);}
public void Test_src_get(Xog_bnd_itm bnd, String expd) {
diff --git a/400_xowa/src/gplx/xowa/guis/bnds/Xog_bnd_mgr.java b/400_xowa/src/gplx/xowa/guis/bnds/Xog_bnd_mgr.java
index 0feef9866..dda7a1a37 100644
--- a/400_xowa/src/gplx/xowa/guis/bnds/Xog_bnd_mgr.java
+++ b/400_xowa/src/gplx/xowa/guis/bnds/Xog_bnd_mgr.java
@@ -88,39 +88,32 @@ public class Xog_bnd_mgr {
public void Init() {
regy.Clear(); // clear regy, else 1 test will fail
Init_itm(Xog_cmd_itm_.Key_app_exit , Xog_bnd_box_.Tid_browser , "mod.c+key.q");
-
Init_itm(Xog_cmd_itm_.Key_nav_go_bwd , Xog_bnd_box_.Tid_browser , "mod.a+key.left");
Init_itm(Xog_cmd_itm_.Key_nav_go_fwd , Xog_bnd_box_.Tid_browser , "mod.a+key.right");
-
Init_itm(Xog_cmd_itm_.Key_nav_cfg_main , Xog_bnd_box_.Tid_browser , "");
Init_itm(Xog_cmd_itm_.Key_nav_cfg_menu , Xog_bnd_box_.Tid_browser , "");
-
Init_itm(Xog_cmd_itm_.Key_nav_wiki_main_page , Xog_bnd_box_.Tid_browser , "");
Init_itm(Xog_cmd_itm_.Key_nav_wiki_random , Xog_bnd_box_.Tid_browser , "mod.cs+key.r");
Init_itm(Xog_cmd_itm_.Key_nav_wiki_sandbox , Xog_bnd_box_.Tid_browser , "mod.cs+key.g,mod.cs+key.s", "mod.c+key.f1");
-
Init_itm(Xog_cmd_itm_.Key_nav_help_help , Xog_bnd_box_.Tid_browser , "key.f1");
Init_itm(Xog_cmd_itm_.Key_nav_help_change_log , Xog_bnd_box_.Tid_browser , "");
Init_itm(Xog_cmd_itm_.Key_nav_help_diagnostics , Xog_bnd_box_.Tid_browser , "");
Init_itm(Xog_cmd_itm_.Key_nav_help_about , Xog_bnd_box_.Tid_browser , "");
Init_itm(Xog_cmd_itm_.Key_nav_help_xowa_main , Xog_bnd_box_.Tid_browser , "");
-
+ Init_itm(Xog_cmd_itm_.Key_nav_help_xowa_blog , Xog_bnd_box_.Tid_browser , "");
Init_itm(Xog_cmd_itm_.Key_nav_setup_import_from_list , Xog_bnd_box_.Tid_browser , "");
Init_itm(Xog_cmd_itm_.Key_nav_setup_import_from_script , Xog_bnd_box_.Tid_browser , "");
Init_itm(Xog_cmd_itm_.Key_nav_setup_maintenance , Xog_bnd_box_.Tid_browser , "");
Init_itm(Xog_cmd_itm_.Key_nav_setup_download , Xog_bnd_box_.Tid_browser , "");
-
Init_itm(Xog_cmd_itm_.Key_nav_system_data_log_session , Xog_bnd_box_.Tid_browser , "");
Init_itm(Xog_cmd_itm_.Key_nav_system_data_cfg_app , Xog_bnd_box_.Tid_browser , "");
Init_itm(Xog_cmd_itm_.Key_nav_system_data_cfg_lang , Xog_bnd_box_.Tid_browser , "");
Init_itm(Xog_cmd_itm_.Key_nav_system_data_cfg_user , Xog_bnd_box_.Tid_browser , "");
Init_itm(Xog_cmd_itm_.Key_nav_system_data_cfg_custom , Xog_bnd_box_.Tid_browser , "");
Init_itm(Xog_cmd_itm_.Key_nav_system_data_usr_history , Xog_bnd_box_.Tid_browser , "");
-
Init_itm(Xog_cmd_itm_.Key_gui_font_increase , Xog_bnd_box_.Tid_browser , "mod.c+key.equal");
Init_itm(Xog_cmd_itm_.Key_gui_font_decrease , Xog_bnd_box_.Tid_browser , "mod.c+key.minus");
Init_itm(Xog_cmd_itm_.Key_gui_font_reset , Xog_bnd_box_.Tid_browser , "mod.c+key.d0");
-
Init_itm(Xog_cmd_itm_.Key_gui_page_view_mode_read , Xog_bnd_box_.Tid_browser , "mod.c+key.m,mod.c+key.r");
Init_itm(Xog_cmd_itm_.Key_gui_page_view_mode_edit , Xog_bnd_box_.Tid_browser , "mod.c+key.m,mod.c+key.e");
Init_itm(Xog_cmd_itm_.Key_gui_page_view_mode_html , Xog_bnd_box_.Tid_browser , "mod.c+key.m,mod.c+key.h", "mod.c+key.u");
@@ -128,11 +121,9 @@ public class Xog_bnd_mgr {
Init_itm(Xog_cmd_itm_.Key_gui_page_view_refresh , Xog_bnd_box_.Tid_browser , "mod.s+key.f5");
Init_itm(Xog_cmd_itm_.Key_gui_page_view_save_as , Xog_bnd_box_.Tid_browser , "");
Init_itm(Xog_cmd_itm_.Key_gui_page_view_print , Xog_bnd_box_.Tid_browser , "");
-
Init_itm(Xog_cmd_itm_.Key_gui_page_selection_select_all , Xog_bnd_box_.Tid_browser , "");
Init_itm(Xog_cmd_itm_.Key_gui_page_selection_copy , Xog_bnd_box_.Tid_browser , "");
Init_itm(Xog_cmd_itm_.Key_gui_page_selection_save_file_as , Xog_bnd_box_.Tid_browser , "");
-
Init_itm(Xog_cmd_itm_.Key_gui_edit_save , Xog_bnd_box_.Tid_browser , "mod.as+key.s");
Init_itm(Xog_cmd_itm_.Key_gui_edit_save_draft , Xog_bnd_box_.Tid_browser , "mod.c+key.s");
Init_itm(Xog_cmd_itm_.Key_gui_edit_focus_edit_box , Xog_bnd_box_.Tid_browser , "mod.as+key.comma");
@@ -140,7 +131,6 @@ public class Xog_bnd_mgr {
Init_itm(Xog_cmd_itm_.Key_gui_edit_dbg_tmpl , Xog_bnd_box_.Tid_browser , "mod.c+key.e,mod.c+key.e", "mod.as+key.d,mod.as+key.d");
Init_itm(Xog_cmd_itm_.Key_gui_edit_dbg_html , Xog_bnd_box_.Tid_browser , "mod.c+key.e,mod.c+key.h");
Init_itm(Xog_cmd_itm_.Key_gui_edit_exec , Xog_bnd_box_.Tid_browser , "mod.c+key.e,mod.c+key.g");
-
Init_itm(Xog_cmd_itm_.Key_gui_browser_url_focus , Xog_bnd_box_.Tid_browser , "mod.a+key.d", "mod.c+key.l");
Init_itm(Xog_cmd_itm_.Key_gui_browser_url_exec , Xog_bnd_box_.Tid_browser_url , "key.enter", "key.keypad_enter");
Init_itm(Xog_cmd_itm_.Key_gui_browser_url_exec_new_tab_by_paste , Xog_bnd_box_.Tid_browser_url , "mod.c+key.enter", "mod.c+key.keypad_enter");
@@ -187,15 +177,11 @@ public class Xog_bnd_mgr {
Init_itm(Xog_cmd_itm_.Key_gui_browser_info_focus , Xog_bnd_box_.Tid_browser , "mod.ca+key.i");
Init_itm(Xog_cmd_itm_.Key_gui_browser_info_clear , Xog_bnd_box_.Tid_browser , "mod.ca+key.c");
Init_itm(Xog_cmd_itm_.Key_gui_browser_prog_log_show , Xog_bnd_box_.Tid_browser_prog , "mouse.middle", "mod.cs+key.p");
-
Init_itm(Xog_cmd_itm_.Key_html_tidy_toggle , Xog_bnd_box_.Tid_browser , "key.f7");
-
Init_itm(Xog_cmd_itm_.Key_usr_bookmarks_add , Xog_bnd_box_.Tid_browser , "");
Init_itm(Xog_cmd_itm_.Key_usr_bookmarks_show , Xog_bnd_box_.Tid_browser , "key.f3");
-
Init_itm(Xog_cmd_itm_.Key_usr_history_goto_recent , Xog_bnd_box_.Tid_browser , "mod.cs+key.l");
Init_itm(Xog_cmd_itm_.Key_usr_history_show , Xog_bnd_box_.Tid_browser , "mod.cs+key.h");
-
Init_itm(Xog_cmd_itm_.Key_net_enabled_n_ , Xog_bnd_box_.Tid_browser , "");
Init_itm(Xog_cmd_itm_.Key_net_enabled_y_ , Xog_bnd_box_.Tid_browser , "");
Init_itm(Xog_cmd_itm_.Key_net_enabled_x_ , Xog_bnd_box_.Tid_browser , "");
@@ -216,14 +202,15 @@ public class Xog_bnd_mgr {
}
private void Add_system_bnds() {
IptCfg null_cfg = IptCfg_.Null; IptEventType btn_event_type = IptEventType_.add_(IptEventType_.MouseUp, IptEventType_.KeyDown); IptArg[] btn_args = IptArg_.Ary(IptMouseBtn_.Left, IptKey_.Enter, IptKey_.Space);
- IptBnd_.ipt_to_(null_cfg , win.Go_bwd_btn() , invk_mgr, Xog_cmd_itm_.Key_nav_go_bwd , btn_event_type, btn_args);
- IptBnd_.ipt_to_(null_cfg , win.Go_fwd_btn() , invk_mgr, Xog_cmd_itm_.Key_nav_go_fwd , btn_event_type, btn_args);
+ IptBnd_.ipt_to_(null_cfg , win.Go_bwd_btn() , invk_mgr, Xog_cmd_itm_.Key_nav_go_bwd , btn_event_type, btn_args);
+ IptBnd_.ipt_to_(null_cfg , win.Go_fwd_btn() , invk_mgr, Xog_cmd_itm_.Key_nav_go_fwd , btn_event_type, btn_args);
IptBnd_.ipt_to_(null_cfg , win.Url_exec_btn() , invk_mgr, Xog_cmd_itm_.Key_gui_browser_url_exec , btn_event_type, btn_args);
IptBnd_.ipt_to_(null_cfg , win.Search_exec_btn() , invk_mgr, Xog_cmd_itm_.Key_gui_browser_search_exec , btn_event_type, btn_args);
IptBnd_.ipt_to_(null_cfg , win.Find_close_btn() , invk_mgr, Xog_cmd_itm_.Key_gui_browser_find_hide , btn_event_type, btn_args);
IptBnd_.ipt_to_(null_cfg , win.Find_fwd_btn() , invk_mgr, Xog_cmd_itm_.Key_gui_browser_find_find_fwd , btn_event_type, btn_args);
IptBnd_.ipt_to_(null_cfg , win.Find_bwd_btn() , invk_mgr, Xog_cmd_itm_.Key_gui_browser_find_find_bwd , btn_event_type, btn_args);
- IptBnd_.ipt_to_(null_cfg , win.Find_box() , invk_mgr, Xog_cmd_itm_.Key_gui_browser_find_type , IptEventType_.KeyUp, IptKey_.printableKeys_(IptKey_.Ary(IptKey_.Back, IptKey_.Escape), IptKey_.Ary()));
+ IptBnd_.ipt_to_(null_cfg , win.Find_box() , invk_mgr, Xog_cmd_itm_.Key_gui_browser_find_type , IptEventType_.KeyUp, IptKey_.printableKeys_(IptKey_.Ary(IptKey_.Back, IptKey_.Escape, IptKey_.Ctrl.Add(IptKey_.V)), IptKey_.Ary()));
+ IptBnd_.ipt_to_(null_cfg , win.Url_box() , invk_mgr, Xog_cmd_itm_.Key_gui_browser_url_type , IptEventType_.KeyUp, IptKey_.printableKeys_(IptKey_.Ary(IptKey_.Back, IptKey_.Escape, IptKey_.Ctrl.Add(IptKey_.X), IptKey_.Ctrl.Add(IptKey_.V)), IptKey_.Ary()));
}
private void Add_custom_bnds() { // NOTE: custom bnds are stored in cfg; cfg executes before Init_by_kit when all windows elements are null; run cfg now, while Init_by_kit is called and elems are now created
int len = startup_itms.Count();
diff --git a/400_xowa/src/gplx/xowa/guis/bnds/Xog_bnd_mgr_srl.java b/400_xowa/src/gplx/xowa/guis/bnds/Xog_bnd_mgr_srl.java
index b7de8834e..4f9f11fb8 100644
--- a/400_xowa/src/gplx/xowa/guis/bnds/Xog_bnd_mgr_srl.java
+++ b/400_xowa/src/gplx/xowa/guis/bnds/Xog_bnd_mgr_srl.java
@@ -52,7 +52,6 @@ public class Xog_bnd_mgr_srl extends Dsv_wkr_base {
if (uid == -1) throw parser.Err_row_bgn("bnd missing uid", pos);
if (box_bry == null) throw parser.Err_row_bgn("bnd missing box", pos);
if (ipt_bry == null) throw parser.Err_row_bgn("bnd missing ipt", pos);
-
if (uids == null) Init();
Xog_bnd_itm bnd = (Xog_bnd_itm)uids.Get_by(Int_obj_val.new_(uid));
int box = Xog_bnd_box_.Xby_gui_str(String_.new_u8(box_bry));
@@ -66,4 +65,4 @@ public class Xog_bnd_mgr_srl extends Dsv_wkr_base {
String cfg_key = String_.Concat("app.cfg.get.gui.bnds.init('", bnd.Key(), "').src");
app.Cfg_mgr().Set_by_app(cfg_key, src);
}
-}
\ No newline at end of file
+}
diff --git a/400_xowa/src/gplx/xowa/guis/cmds/Xog_cmd_itm_.java b/400_xowa/src/gplx/xowa/guis/cmds/Xog_cmd_itm_.java
index 45d95d92d..a4e0d93a9 100644
--- a/400_xowa/src/gplx/xowa/guis/cmds/Xog_cmd_itm_.java
+++ b/400_xowa/src/gplx/xowa/guis/cmds/Xog_cmd_itm_.java
@@ -17,30 +17,31 @@ along with this program. If not, see .
*/
package gplx.xowa.guis.cmds; import gplx.*; import gplx.xowa.*; import gplx.xowa.guis.*;
public class Xog_cmd_itm_ {
- private static final Ordered_hash regy = Ordered_hash_.New(); // NOTE: must be defined at top
- public static final String
+ private static final Ordered_hash regy = Ordered_hash_.New(); // NOTE: must be defined at top
+ public static final String
Key_app_exit = new_dflt_(Xog_ctg_itm_.Tid_app , "xowa.app.exit")
, Key_nav_go_bwd = new_dflt_(Xog_ctg_itm_.Tid_nav , "xowa.nav.go_bwd")
, Key_nav_go_fwd = new_dflt_(Xog_ctg_itm_.Tid_nav , "xowa.nav.go_fwd")
- , Key_nav_cfg_main = new_page_(Xog_ctg_itm_.Tid_nav , "xowa.nav.cfg.main" , "home/wiki/Help:Options")
- , Key_nav_cfg_menu = new_page_(Xog_ctg_itm_.Tid_nav , "xowa.nav.cfg.menus" , "home/wiki/Help:Options/Menus")
+ , Key_nav_cfg_main = new_page_(Xog_ctg_itm_.Tid_nav , "xowa.nav.cfg.main" , "home/wiki/Options") // HOME
+ , Key_nav_cfg_menu = new_page_(Xog_ctg_itm_.Tid_nav , "xowa.nav.cfg.menus" , "home/wiki/Options/Menus") // HOME
, Key_nav_wiki_main_page = new_dflt_(Xog_ctg_itm_.Tid_nav , "xowa.nav.wiki.main_page")
, Key_nav_wiki_sandbox = new_dflt_(Xog_ctg_itm_.Tid_nav , "xowa.nav.wiki.sandbox")
, Key_nav_wiki_random = new_dflt_(Xog_ctg_itm_.Tid_nav , "xowa.nav.wiki.random")
- , Key_nav_help_help = new_page_(Xog_ctg_itm_.Tid_nav_pages , "xowa.nav.help.help" , "home/wiki/Help:Contents")
- , Key_nav_help_about = new_page_(Xog_ctg_itm_.Tid_nav_pages , "xowa.nav.help.about" , "home/wiki/Help:About")
- , Key_nav_help_change_log = new_page_(Xog_ctg_itm_.Tid_nav_pages , "xowa.nav.help.change_log" , "home/wiki/Help:Change_log")
- , Key_nav_help_diagnostics = new_page_(Xog_ctg_itm_.Tid_nav_pages , "xowa.nav.help.diagnostics" , "home/wiki/Help:Diagnostics")
- , Key_nav_help_xowa_main = new_page_(Xog_ctg_itm_.Tid_nav_pages , "xowa.nav.help.xowa_main" , "home/wiki/Main_Page")
+ , Key_nav_help_help = new_page_(Xog_ctg_itm_.Tid_nav_pages , "xowa.nav.help.help" , "home/wiki/Help/Contents") // HOME
+ , Key_nav_help_about = new_page_(Xog_ctg_itm_.Tid_nav_pages , "xowa.nav.help.about" , "home/wiki/Help/About") // HOME
+ , Key_nav_help_change_log = new_page_(Xog_ctg_itm_.Tid_nav_pages , "xowa.nav.help.change_log" , "home/wiki/Change_log") // HOME
+ , Key_nav_help_diagnostics = new_page_(Xog_ctg_itm_.Tid_nav_pages , "xowa.nav.help.diagnostics" , "home/wiki/Diagnostics") // HOME
+ , Key_nav_help_xowa_main = new_page_(Xog_ctg_itm_.Tid_nav_pages , "xowa.nav.help.xowa_main" , "home/wiki/Main_Page") // HOME
+ , Key_nav_help_xowa_blog = new_page_(Xog_ctg_itm_.Tid_nav_pages , "xowa.nav.help.xowa_blog" , "home/wiki/Blog") // HOME
- , Key_nav_setup_import_from_list = new_page_(Xog_ctg_itm_.Tid_nav_pages , "xowa.nav.setup.import_from_list" , "home/wiki/Help:Import/List")
- , Key_nav_setup_import_from_script = new_page_(Xog_ctg_itm_.Tid_nav_pages , "xowa.nav.setup.import_from_script" , "home/wiki/Help:Import/Script")
- , Key_nav_setup_maintenance = new_page_(Xog_ctg_itm_.Tid_nav_pages , "xowa.nav.setup.maintenance" , "home/wiki/Help:Wiki_maintenance")
- , Key_nav_setup_download = new_page_(Xog_ctg_itm_.Tid_nav_pages , "xowa.nav.setup.download" , "home/wiki/Help:Download")
+ , Key_nav_setup_import_from_list = new_page_(Xog_ctg_itm_.Tid_nav_pages , "xowa.nav.setup.import_from_list" , "home/wiki/Dashboard/Import/Online") // HOME
+ , Key_nav_setup_import_from_script = new_page_(Xog_ctg_itm_.Tid_nav_pages , "xowa.nav.setup.import_from_script" , "home/wiki/Dashboard/Import/Offline") // HOME
+ , Key_nav_setup_maintenance = new_page_(Xog_ctg_itm_.Tid_nav_pages , "xowa.nav.setup.maintenance" , "home/wiki/Dashboard/Wiki_maintenance") // HOME
+ , Key_nav_setup_download = new_page_(Xog_ctg_itm_.Tid_nav_pages , "xowa.nav.setup.download" , "home/wiki/Dashboard/Image_databases") // HOME
, Key_nav_system_data_log_session = new_page_(Xog_ctg_itm_.Tid_nav_pages , "xowa.nav.system_data.log_session" , "Special:XowaSystemData?type=log_session")
, Key_nav_system_data_cfg_app = new_page_(Xog_ctg_itm_.Tid_nav_pages , "xowa.nav.system_data.cfg_app" , "Special:XowaSystemData?type=cfg_app")
@@ -78,6 +79,8 @@ public class Xog_cmd_itm_ {
, Key_gui_browser_url_exec_by_paste = new_dflt_(Xog_ctg_itm_.Tid_browser , "xowa.gui.browser.url.exec_by_paste")
, Key_gui_browser_url_exec_new_tab_by_paste = new_dflt_(Xog_ctg_itm_.Tid_browser , "xowa.gui.browser.url.exec_new_tab_by_paste")
, Key_gui_browser_url_restore = new_dflt_(Xog_ctg_itm_.Tid_browser , "xowa.gui.browser.url.restore")
+ , Key_gui_browser_url_type = new_dflt_(Xog_ctg_itm_.Tid_browser , "xowa.gui.browser.url.type")
+
, Key_gui_browser_search_focus = new_dflt_(Xog_ctg_itm_.Tid_browser , "xowa.gui.browser.search.focus")
, Key_gui_browser_search_exec = new_dflt_(Xog_ctg_itm_.Tid_browser , "xowa.gui.browser.search.exec")
, Key_gui_browser_tabs_new_dflt__at_dflt__focus_y = new_dflt_(Xog_ctg_itm_.Tid_tabs , "xowa.gui.browser.tabs.new_dflt__at_dflt__focus_y")
@@ -160,7 +163,7 @@ public class Xog_cmd_itm_ {
public static Xog_cmd_itm Regy_get_at(int i) {return (Xog_cmd_itm)regy.Get_at(i);}
public static Xog_cmd_itm Regy_get_or_null(String key) {return (Xog_cmd_itm)regy.Get_by(key);}
public static void Regy_add(Xog_cmd_itm itm) {regy.Add(itm.Key(), itm);}
- public static final byte[]
+ public static final byte[]
Msg_pre_api = Bry_.new_a7("api-")
, Msg_pre_ctg = Bry_.new_a7("api.ctg-")
, Msg_suf_name = Bry_.new_a7("-name")
diff --git a/400_xowa/src/gplx/xowa/guis/history/Xog_history_stack_tst.java b/400_xowa/src/gplx/xowa/guis/history/Xog_history_stack_tst.java
index 4ac035435..aa0643cce 100644
--- a/400_xowa/src/gplx/xowa/guis/history/Xog_history_stack_tst.java
+++ b/400_xowa/src/gplx/xowa/guis/history/Xog_history_stack_tst.java
@@ -42,8 +42,8 @@ class Xog_history_stack_fxt {
public Xog_history_stack_fxt Clear() {
stack.Clear();
if (app == null) {
- app = Xoa_app_fxt.app_();
- wiki = Xoa_app_fxt.wiki_tst_(app);
+ app = Xoa_app_fxt.Make__app__edit();
+ wiki = Xoa_app_fxt.Make__wiki__edit(app);
}
return this;
} private Xoae_app app; private Xowe_wiki wiki; private Xog_history_stack stack = new Xog_history_stack();
diff --git a/400_xowa/src/gplx/xowa/guis/menus/Xog_menu_mnu_src.java b/400_xowa/src/gplx/xowa/guis/menus/Xog_menu_mnu_src.java
index 490f34f43..45622d8a1 100644
--- a/400_xowa/src/gplx/xowa/guis/menus/Xog_menu_mnu_src.java
+++ b/400_xowa/src/gplx/xowa/guis/menus/Xog_menu_mnu_src.java
@@ -18,7 +18,7 @@ along with this program. If not, see .
package gplx.xowa.guis.menus; import gplx.*; import gplx.xowa.*; import gplx.xowa.guis.*;
import gplx.xowa.guis.cmds.*;
class Xog_menu_mgr_src {
- public static final String Browser_win
+ public static final String Browser_win
= Xog_menu_bldr.Instance
. Add_grp_bgn(Xog_cmd_itm_.Key_gui_menus_group_file)
. Add_btn(Xog_cmd_itm_.Key_gui_browser_tabs_new_dflt__at_dflt__focus_y)
@@ -71,6 +71,7 @@ class Xog_menu_mgr_src {
. Add_grp_bgn(Xog_cmd_itm_.Key_gui_menus_group_help)
. Add_btn(Xog_cmd_itm_.Key_nav_help_help)
. Add_btn(Xog_cmd_itm_.Key_nav_help_xowa_main)
+ . Add_btn(Xog_cmd_itm_.Key_nav_help_xowa_blog)
. Add_btn(Xog_cmd_itm_.Key_nav_help_change_log)
. Add_btn(Xog_cmd_itm_.Key_nav_help_diagnostics)
. Add_btn(Xog_cmd_itm_.Key_nav_cfg_menu)
@@ -87,7 +88,7 @@ class Xog_menu_mgr_src {
. Add_btn(Xog_cmd_itm_.Key_nav_help_about)
. Add_grp_end()
. Gen_str();
- public static final String Html_page
+ public static final String Html_page
= Xog_menu_bldr.Instance
. Add_btn(Xog_cmd_itm_.Key_nav_go_bwd)
. Add_btn(Xog_cmd_itm_.Key_nav_go_fwd)
@@ -150,6 +151,7 @@ class Xog_menu_mgr_src {
. Add_grp_bgn(Xog_cmd_itm_.Key_gui_menus_group_help)
. Add_btn(Xog_cmd_itm_.Key_nav_help_help)
. Add_btn(Xog_cmd_itm_.Key_nav_help_xowa_main)
+ . Add_btn(Xog_cmd_itm_.Key_nav_help_xowa_blog)
. Add_btn(Xog_cmd_itm_.Key_nav_help_change_log)
. Add_btn(Xog_cmd_itm_.Key_nav_help_diagnostics)
. Add_btn(Xog_cmd_itm_.Key_nav_cfg_menu)
@@ -158,7 +160,7 @@ class Xog_menu_mgr_src {
. Add_grp_end()
. Gen_str();
- public static final String Html_link
+ public static final String Html_link
= Xog_menu_bldr.Instance
. Add_btn(Xog_cmd_itm_.Key_gui_browser_tabs_new_link__at_dflt__focus_n)
. Add_btn(Xog_cmd_itm_.Key_gui_browser_tabs_new_link__at_dflt__focus_y)
@@ -166,14 +168,14 @@ class Xog_menu_mgr_src {
. Add_btn(Xog_cmd_itm_.Key_gui_page_selection_copy)
. Add_btn(Xog_cmd_itm_.Key_gui_browser_find_show_by_paste)
. Gen_str();
- public static final String Html_file
+ public static final String Html_file
= Xog_menu_bldr.Instance
. Add_btn(Xog_cmd_itm_.Key_gui_browser_tabs_new_link__at_dflt__focus_n)
. Add_btn(Xog_cmd_itm_.Key_gui_browser_tabs_new_link__at_dflt__focus_y)
. Add_spr()
. Add_btn(Xog_cmd_itm_.Key_gui_page_selection_save_file_as)
. Gen_str();
- public static final String Tabs_btns
+ public static final String Tabs_btns
= Xog_menu_bldr.Instance
. Add_btn(Xog_cmd_itm_.Key_gui_browser_tabs_new_dflt__at_dflt__focus_y)
. Add_btn(Xog_cmd_itm_.Key_gui_browser_tabs_new_dupe__at_dflt__focus_y)
@@ -191,11 +193,11 @@ class Xog_menu_mgr_src {
. Add_spr()
. Add_btn(Xog_cmd_itm_.Key_gui_browser_tabs_close_undo)
. Gen_str();
- public static final String Prog
+ public static final String Prog
= Xog_menu_bldr.Instance
. Add_btn(Xog_cmd_itm_.Key_gui_browser_prog_log_show)
. Gen_str();
- public static final String Info = String_.Concat_lines_nl
+ public static final String Info = String_.Concat_lines_nl
( ""
);
}
@@ -235,7 +237,7 @@ class Xog_menu_bldr {
bfr.Add(Const_itm_btn_bgn_rhs);
return this;
}
- private static final byte[]
+ private static final byte[]
Const_spr = Bry_.new_a7("add_spr;\n")
, Const_itm_btn_bgn_lhs = Bry_.new_a7("add_btn_default('")
, Const_itm_btn_bgn_rhs = Bry_.new_a7("');\n")
@@ -243,5 +245,5 @@ class Xog_menu_bldr {
, Const_itm_grp_bgn_rhs = Bry_.new_a7("') {\n")
, Const_itm_grp_end = Bry_.new_a7("}\n")
;
- public static final Xog_menu_bldr Instance = new Xog_menu_bldr(); Xog_menu_bldr() {}
+ public static final Xog_menu_bldr Instance = new Xog_menu_bldr(); Xog_menu_bldr() {}
}
diff --git a/400_xowa/src/gplx/xowa/guis/menus/dom/Xog_mnu_grp.java b/400_xowa/src/gplx/xowa/guis/menus/dom/Xog_mnu_grp.java
index e343c7384..90842b5c6 100644
--- a/400_xowa/src/gplx/xowa/guis/menus/dom/Xog_mnu_grp.java
+++ b/400_xowa/src/gplx/xowa/guis/menus/dom/Xog_mnu_grp.java
@@ -71,7 +71,7 @@ public class Xog_mnu_grp extends Xog_mnu_base {
}
Xog_mnu_bldr bldr = gui_mgr.Menu_mgr().Menu_bldr();
bldr.Build(under_mnu, this);
- Xog_mnu_base.Update_grp_by_lang(bldr, app.Usere().Lang(), this); // NOTE: always set lang after rebuild; else changes in Help:Options/Menus will show blank captions; DATE:2014-06-05
+ Xog_mnu_base.Update_grp_by_lang(bldr, app.Usere().Lang(), this); // NOTE: always set lang after rebuild; else changes in home/wiki/Options/Menus will show blank captions; DATE:2014-06-05
if (mnu_is_popup) {
boolean rebind_to_win = false;
if (String_.Eq(key, Xog_popup_mnu_mgr.Root_key_tabs_btns)) {
diff --git a/400_xowa/src/gplx/xowa/guis/views/Xog_tab_itm.java b/400_xowa/src/gplx/xowa/guis/views/Xog_tab_itm.java
index b3dd52ef1..386ff8aab 100644
--- a/400_xowa/src/gplx/xowa/guis/views/Xog_tab_itm.java
+++ b/400_xowa/src/gplx/xowa/guis/views/Xog_tab_itm.java
@@ -86,8 +86,8 @@ public class Xog_tab_itm implements GfoInvkAble {
tab_box.Tab_tip_text_(page.Url().To_str());
}
public void Tab_name_() {
- byte[] tab_name = page.Html_data().Custom_tab_name(); // Custom_tab_name set by Special:Default_tab or variants; DATE:2015-10-05
- if (tab_name == null) tab_name = page.Ttl().Full_txt(); // no custom_tab_name; use ttl's text
+ byte[] tab_name = page.Html_data().Custom_tab_name(); // Custom_tab_name set by Special:Default_tab or variants; DATE:2015-10-05
+ if (tab_name == null) tab_name = page.Ttl().Full_txt_w_ttl_case(); // no custom_tab_name; use ttl's text
Tab_name_(String_.new_u8(tab_name));
}
public void Tab_name_(String tab_name) {
@@ -104,12 +104,12 @@ public class Xog_tab_itm implements GfoInvkAble {
Xoae_app app = win.App(); Gfo_usr_dlg usr_dlg = app.Usr_dlg();
if ( url.Anch_str() != null // url has anchor
&& url.Eq_page(page.Url()) // url has same page_name as existing page
- && url.Qargs_ary().length == 0) { // url has no args; needed for Category:A?from=b#mw-pages
+ && url.Qargs_ary().length == 0) { // url has no args; needed for Category:A?from=b#mw-pages
html_itm.Scroll_page_by_id_gui(url.Anch_str()); // skip page_load and jump to anchor
return;
}
if (win.Page__async__working(url)) return;
- app.Gui_mgr().Search_suggest_mgr().Cancel(); // cancel pending search_suggest calls
+ app.Gui_mgr().Search_cfg().Cancel(); // cancel pending search_suggest calls
if (page != null) page.Tab_data().Close_mgr().When_close(this, url); // cancel any current search cmds
app.Log_wtr().Queue_enabled_(true);
usr_dlg.Gui_wkr().Clear();
@@ -118,7 +118,7 @@ public class Xog_tab_itm implements GfoInvkAble {
if (url.Vnt_bry() != null) Cur_vnt_(wiki, url.Vnt_bry());
Xoa_ttl ttl = Xoa_ttl.parse(wiki, url.Page_bry());
if (ttl == null) {usr_dlg.Prog_one("", "", "title is invalid: ~{0}", String_.new_u8(url.Raw())); return;}
- Tab_name_(String_.new_u8(ttl.Full_txt()));
+ Tab_name_(String_.new_u8(ttl.Full_txt_w_ttl_case()));
usr_dlg.Prog_one("", "", "loading: ~{0}", String_.new_u8(ttl.Raw()));
if (app.Api_root().Html().Modules().Popups().Enabled())
this.Html_box().Html_js_eval_script("if (window.xowa_popups_hide_all != null) window.xowa_popups_hide_all();"); // should be more configurable; DATE:2014-07-09
@@ -152,7 +152,7 @@ public class Xog_tab_itm implements GfoInvkAble {
usr_dlg.Prog_many("", "", "could not find: ~{0} (redirected from ~{1})", String_.new_u8(page.Url().Page_bry()), String_.new_u8((byte[])page.Redirected_ttls().Get_at(0)));
else {
if (ttl.Ns().Id_is_file())
- usr_dlg.Prog_one("", "", "commons.wikimedia.org must be installed in order to view the file. See [[Help:Wikis/Commons]]: ~{0}", String_.new_u8(url.Raw()));
+ usr_dlg.Prog_one("", "", "commons.wikimedia.org must be installed in order to view the file. See [[App/Wiki_types/Commons]]: ~{0}", String_.new_u8(url.Raw()));// HOME
else
usr_dlg.Prog_one("", "", "could not find: ~{0}", String_.new_u8(url.Raw()));
}
diff --git a/400_xowa/src/gplx/xowa/guis/views/Xog_tab_itm_edit_mgr.java b/400_xowa/src/gplx/xowa/guis/views/Xog_tab_itm_edit_mgr.java
index 3ab49d539..1b4e9b809 100644
--- a/400_xowa/src/gplx/xowa/guis/views/Xog_tab_itm_edit_mgr.java
+++ b/400_xowa/src/gplx/xowa/guis/views/Xog_tab_itm_edit_mgr.java
@@ -25,7 +25,8 @@ public class Xog_tab_itm_edit_mgr {
Xoae_page page = tab.Page(); Xowe_wiki wiki = tab.Wiki(); Xog_win_itm win_itm = tab.Tab_mgr().Win();
byte[] new_text = Get_new_text(tab);
if (page.Edit_mode() == Xoa_page_.Edit_mode_create) {
- wiki.Db_mgr().Save_mgr().Data_create(page.Ttl(), new_text);
+ int page_id = wiki.Db_mgr().Save_mgr().Data_create(page.Ttl(), new_text);
+ page.Revision_data().Id_(page_id);
page.Edit_mode_update_(); // set to update so that next save does not try to create
}
else {
diff --git a/400_xowa/src/gplx/xowa/guis/views/Xog_tab_itm_read_mgr.java b/400_xowa/src/gplx/xowa/guis/views/Xog_tab_itm_read_mgr.java
index 31fd124f7..469954a95 100644
--- a/400_xowa/src/gplx/xowa/guis/views/Xog_tab_itm_read_mgr.java
+++ b/400_xowa/src/gplx/xowa/guis/views/Xog_tab_itm_read_mgr.java
@@ -63,12 +63,12 @@ public class Xog_tab_itm_read_mgr {
String url_str = "", win_str = Win_text_blank;
if (url != null && ttl != null) {
url_str = url.To_str();
- win_str = String_.new_u8(Bry_.Add(ttl.Full_txt(), Win_text_suffix_page));
+ win_str = String_.new_u8(Bry_.Add(ttl.Full_txt_w_ttl_case(), Win_text_suffix_page));
}
win.Url_box().Text_(url_str);
win.Win_box().Text_(win_str);
}
- private static final byte[] Win_text_suffix_page = Bry_.new_a7(" - XOWA"); private static final String Win_text_blank = "XOWA";
+ private static final byte[] Win_text_suffix_page = Bry_.new_a7(" - XOWA"); private static final String Win_text_blank = "XOWA";
public static void Show_page_err(Xog_win_itm win, Xog_tab_itm tab, Xowe_wiki wiki, Xoa_url url, Xoa_ttl ttl, Exception e) {
String err_msg = String_.Format("page_load fail: page={0} err={1}", String_.new_u8(url.Raw()), Err_.Message_gplx_full(e));
win.Usr_dlg().Warn_many("", "", err_msg);
diff --git a/400_xowa/src/gplx/xowa/guis/views/Xog_win_itm.java b/400_xowa/src/gplx/xowa/guis/views/Xog_win_itm.java
index aaf54db20..f603463ad 100644
--- a/400_xowa/src/gplx/xowa/guis/views/Xog_win_itm.java
+++ b/400_xowa/src/gplx/xowa/guis/views/Xog_win_itm.java
@@ -24,6 +24,7 @@ import gplx.xowa.htmls.hrefs.*;
import gplx.xowa.parsers.lnkis.redlinks.*; import gplx.xowa.specials.*; import gplx.xowa.xtns.math.*;
public class Xog_win_itm implements GfoInvkAble, GfoEvObj {
private GfoInvkAble sync_cmd;
+ private Xog_url_box__selection_changed url_box__selection_changed;
public Xog_win_itm(Xoae_app app, Xoa_gui_mgr gui_mgr) {
this.app = app; this.gui_mgr = gui_mgr;
this.tab_mgr = new Xog_tab_mgr(this);
@@ -33,7 +34,7 @@ public class Xog_win_itm implements GfoInvkAble, GfoEvObj {
public GfuiWin Win_box() {return win_box;} private GfuiWin win_box;
public GfuiBtn Go_bwd_btn() {return go_bwd_btn;} private GfuiBtn go_bwd_btn;
public GfuiBtn Go_fwd_btn() {return go_fwd_btn;} private GfuiBtn go_fwd_btn;
- public GfuiTextBox Url_box() {return url_box;} private GfuiTextBox url_box;
+ public GfuiComboBox Url_box() {return url_box;} private GfuiComboBox url_box;
public GfuiBtn Url_exec_btn() {return url_exec_btn;} private GfuiBtn url_exec_btn;
public GfuiTextBox Search_box() {return search_box;} private GfuiTextBox search_box;
public GfuiBtn Search_exec_btn() {return search_exec_btn;} private GfuiBtn search_exec_btn;
@@ -188,7 +189,7 @@ public class Xog_win_itm implements GfoInvkAble, GfoEvObj {
if (new_page.Ttl().Ns().Id_is_special()) // if Special, reload page; needed for Special:Search (DATE:2015-04-19; async loading) and Special:XowaBookmarks DATE:2015-10-05
new_page = new_page.Wikie().Data_mgr().Load_page_by_ttl(new_page.Url(), new_page.Ttl()); // NOTE: must reparse page if (a) Edit -> Read; or (b) "Options" save
byte history_nav_type = fwd ? Xog_history_stack.Nav_fwd : Xog_history_stack.Nav_bwd;
- boolean new_page_is_same = Bry_.Eq(cur_page.Ttl().Full_txt(), new_page.Ttl().Full_txt());
+ boolean new_page_is_same = Bry_.Eq(cur_page.Ttl().Full_txt_by_orig(), new_page.Ttl().Full_txt_by_orig());
Xog_tab_itm_read_mgr.Show_page(tab, new_page, true, new_page_is_same, false, history_nav_type);
Page__async__bgn(tab);
}
@@ -277,7 +278,7 @@ public class Xog_win_itm implements GfoInvkAble, GfoEvObj {
FontAdp ui_font = app.Gui_mgr().Win_cfg().Font().XtoFontAdp();
go_bwd_btn = Xog_win_itm_.new_btn(app, kit, win_box, img_dir, "go_bwd_btn", "go_bwd.png" );
go_fwd_btn = Xog_win_itm_.new_btn(app, kit, win_box, img_dir, "go_fwd_btn", "go_fwd.png" );
- url_box = Xog_win_itm_.new_txt(app, kit, win_box, ui_font, "url_box" , true);
+ url_box = Xog_win_itm_.new_cbo(app, kit, win_box, ui_font, "url_box" , true);
url_exec_btn = Xog_win_itm_.new_btn(app, kit, win_box, img_dir, "url_exec_btn", "url_exec.png" );
search_box = Xog_win_itm_.new_txt(app, kit, win_box, ui_font, "search_box" , true);
search_exec_btn = Xog_win_itm_.new_btn(app, kit, win_box, img_dir, "search_exec_btn", "search_exec.png" );
@@ -292,10 +293,43 @@ public class Xog_win_itm implements GfoInvkAble, GfoEvObj {
GfoEvMgr_.SubSame_many(this, this, Gfui_html.Evt_location_changed, Gfui_html.Evt_location_changing, Gfui_html.Evt_link_hover);
GfoEvMgr_.SubSame(win_box, Gfui_html.Evt_win_resized, this);
- GfoEvMgr_.Sub(app.Gui_mgr().Win_cfg().Font(), Xol_font_info.Font_changed, this, Invk_window_font_changed);
+ GfoEvMgr_.Sub(app.Gui_mgr().Win_cfg().Font(), Xol_font_info.Font_changed, this, Invk_window_font_changed);
+ url_box__selection_changed = new Xog_url_box__selection_changed(app, url_box);
+ GfoEvMgr_.SubSame(url_box, GfuiComboBox.Evt__selected_changed, url_box__selection_changed);
+ GfoEvMgr_.SubSame(url_box, GfuiComboBox.Evt__selected_accepted, url_box__selection_changed);
if ( !Env_.Mode_testing()
&& app.Mode().Tid_is_gui()) // only run for gui; do not run for tcp/http server; DATE:2014-05-03
app.Usr_dlg().Gui_wkr_(new Gfo_usr_dlg__gui__swt(kit, prog_box, info_box, info_box, app.Api_root().Gui().Browser().Info()));
}
+ public static String Remove_redirect_if_exists(String text) {
+ // remove redirect target; EX: "A -> B" -> "A"
+ int redirect_pos = String_.FindFwd(text, gplx.xowa.addons.searchs.searchers.rslts.Srch_rslt_row.Str__redirect__text);
+ if (redirect_pos != Bry_find_.Not_found) {
+ text = String_.Mid(text, 0, redirect_pos);
+ }
+ return text;
+ }
+}
+class Xog_url_box__selection_changed implements GfoEvObj {
+ private final GfuiComboBox url_box;
+ private final Xoae_app app;
+ public Xog_url_box__selection_changed(Xoae_app app, GfuiComboBox url_box) {this.app = app; this.url_box = url_box; this.ev_mgr = GfoEvMgr.new_(this);}
+ public GfoEvMgr EvMgr() {return ev_mgr;} private final GfoEvMgr ev_mgr;
+ private void On_selection_changed() {
+ String text = url_box.Text();
+ text = Xog_win_itm.Remove_redirect_if_exists(text);
+ // always move cursor to end; emulates firefox url_bar behavior
+ url_box.Text_(text);
+ url_box.Sel_(String_.Len(text), String_.Len(text));
+ }
+ private void On_selection_accepted() {
+ app.Api_root().Nav().Goto(url_box.Text());
+ }
+ public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
+ if (ctx.Match(k, GfuiComboBox.Evt__selected_changed)) On_selection_changed();
+ else if (ctx.Match(k, GfuiComboBox.Evt__selected_accepted)) On_selection_accepted();
+ else return GfoInvkAble_.Rv_unhandled;
+ return this;
+ }
}
diff --git a/400_xowa/src/gplx/xowa/guis/views/Xog_win_itm_.java b/400_xowa/src/gplx/xowa/guis/views/Xog_win_itm_.java
index f8beef786..72fef97f6 100644
--- a/400_xowa/src/gplx/xowa/guis/views/Xog_win_itm_.java
+++ b/400_xowa/src/gplx/xowa/guis/views/Xog_win_itm_.java
@@ -36,8 +36,13 @@ public class Xog_win_itm_ {
rv.Btn_img_(kit.New_img_load(img_dir.GenSubFil(file)));
return rv;
}
+ public static GfuiComboBox new_cbo(Xoae_app app, Gfui_kit kit, GfuiWin win, FontAdp ui_font, String id, boolean border_on) {
+ GfuiComboBox rv = kit.New_combo(id, win, Keyval_.new_(GfuiTextBox.CFG_border_on_, border_on));
+ rv.TextMgr().Font_(ui_font);
+ return rv;
+ }
public static GfuiTextBox new_txt(Xoae_app app, Gfui_kit kit, GfuiWin win, FontAdp ui_font, String id, boolean border_on) {
- GfuiTextBox rv = kit.New_text_box(id, win, KeyVal_.new_(GfuiTextBox.CFG_border_on_, border_on));
+ GfuiTextBox rv = kit.New_text_box(id, win, Keyval_.new_(GfuiTextBox.CFG_border_on_, border_on));
rv.TextMgr().Font_(ui_font);
return rv;
}
diff --git a/400_xowa/src/gplx/xowa/htmls/Xoh_page.java b/400_xowa/src/gplx/xowa/htmls/Xoh_page.java
index b15c1a3ba..cf288bae8 100644
--- a/400_xowa/src/gplx/xowa/htmls/Xoh_page.java
+++ b/400_xowa/src/gplx/xowa/htmls/Xoh_page.java
@@ -34,7 +34,6 @@ public class Xoh_page implements Xoa_page {
public byte[] Sidebar_div() {return sidebar_div;} private byte[] sidebar_div;
public Xoh_section_mgr Section_mgr() {return section_mgr;} private final Xoh_section_mgr section_mgr = new Xoh_section_mgr();
public Xoh_img_mgr Img_mgr() {return img_mgr;} private Xoh_img_mgr img_mgr = new Xoh_img_mgr();
-
public Ordered_hash Redlink_uids() {return redlink_uids;} private final Ordered_hash redlink_uids = Ordered_hash_.New();
public Xohd_img_itm__base[] Img_itms() {return img_itms;} public void Img_itms_(Xohd_img_itm__base[] v) {this.img_itms = v;} private Xohd_img_itm__base[] img_itms = Xohd_img_itm__base.Ary_empty;
public Ordered_hash Gallery_itms() {return gallery_itms;} private Ordered_hash gallery_itms = Ordered_hash_.New();
diff --git a/400_xowa/src/gplx/xowa/htmls/Xoh_page_wtr_mgr_tst.java b/400_xowa/src/gplx/xowa/htmls/Xoh_page_wtr_mgr_tst.java
index f9006d58a..a374fa6af 100644
--- a/400_xowa/src/gplx/xowa/htmls/Xoh_page_wtr_mgr_tst.java
+++ b/400_xowa/src/gplx/xowa/htmls/Xoh_page_wtr_mgr_tst.java
@@ -21,8 +21,8 @@ import gplx.xowa.guis.*; import gplx.xowa.htmls.*; import gplx.xowa.htmls.portal
public class Xoh_page_wtr_mgr_tst {
@Before public void init() {}
@Test public void Logo_has_correct_main_page() { // PURPOSE: Logo href should be "/site/en.wikipedia.org/wiki/", not "/wiki/Main_Page"
- Xoae_app app = Xoa_app_fxt.app_();
- Xowe_wiki wiki = Xoa_app_fxt.wiki_tst_(app);
+ Xoae_app app = Xoa_app_fxt.Make__app__edit();
+ Xowe_wiki wiki = Xoa_app_fxt.Make__wiki__edit(app);
Xow_portal_mgr portal_mgr = wiki.Html_mgr().Portal_mgr();
GfoInvkAble_.InvkCmd_val(portal_mgr, Xow_portal_mgr.Invk_div_logo_, Bry_.new_a7("~{portal_nav_main_href}"));
portal_mgr.Init_assert();
diff --git a/400_xowa/src/gplx/xowa/htmls/Xoh_page_wtr_wkr.java b/400_xowa/src/gplx/xowa/htmls/Xoh_page_wtr_wkr.java
index b1f0a3834..4ab15d686 100644
--- a/400_xowa/src/gplx/xowa/htmls/Xoh_page_wtr_wkr.java
+++ b/400_xowa/src/gplx/xowa/htmls/Xoh_page_wtr_wkr.java
@@ -22,9 +22,9 @@ import gplx.xowa.wikis.pages.*; import gplx.xowa.wikis.pages.skins.*;
import gplx.xowa.wikis.nss.*; import gplx.xowa.wikis.*; import gplx.xowa.wikis.domains.*; import gplx.xowa.parsers.*; import gplx.xowa.xtns.wdatas.*;
import gplx.xowa.apps.gfs.*; import gplx.xowa.htmls.portal.*;
public class Xoh_page_wtr_wkr {
- private final Bry_bfr tmp_bfr = Bry_bfr.reset_(255); private final Object thread_lock_1 = new Object(), thread_lock_2 = new Object();
- private final Xoh_page_wtr_mgr mgr; private final byte page_mode;
- private final Wdata_xwiki_link_wtr wdata_lang_wtr = new Wdata_xwiki_link_wtr(); // In other languages
+ private final Bry_bfr tmp_bfr = Bry_bfr.reset_(255); private final Object thread_lock_1 = new Object(), thread_lock_2 = new Object();
+ private final Xoh_page_wtr_mgr mgr; private final byte page_mode;
+ private final Wdata_xwiki_link_wtr wdata_lang_wtr = new Wdata_xwiki_link_wtr(); // In other languages
private Xoae_app app; private Xowe_wiki wiki; private Xop_ctx ctx; private Xoae_page page; private byte[] root_dir_bry;
public Xoh_page_wtr_wkr(Xoh_page_wtr_mgr mgr, byte page_mode) {this.mgr = mgr; this.page_mode = page_mode;}
public Xoh_page_wtr_wkr Ctgs_enabled_(boolean v) {ctgs_enabled = v; return this;} private boolean ctgs_enabled = true;
@@ -69,7 +69,6 @@ public class Xoh_page_wtr_wkr {
// if custom_html, use it and exit; needed for Default_tab
byte[] custom_html = page.Html_data().Custom_html();
if (custom_html != null) {bfr.Add(custom_html); return;}
-
// temp variables
if (root_dir_bry == null) this.root_dir_bry = app.Fsys_mgr().Root_dir().To_http_file_bry();
Xoa_ttl page_ttl = page.Ttl(); int page_ns_id = page_ttl.Ns().Id();
@@ -121,7 +120,7 @@ public class Xoh_page_wtr_wkr {
case Xow_page_tid.Tid_js:
case Xow_page_tid.Tid_css:
case Xow_page_tid.Tid_lua: Write_body_pre (bfr, app, wiki, data_raw, tmp_bfr); page_tid_uses_pre = true; break;
- case Xow_page_tid.Tid_json: app.Wiki_mgr().Wdata_mgr().Write_json_as_html(bfr, page_ttl.Page_db(), data_raw); break;
+ case Xow_page_tid.Tid_json: app.Wiki_mgr().Wdata_mgr().Write_json_as_html(bfr, page_ttl.Full_db(), data_raw); break;
case Xow_page_tid.Tid_wikitext: Write_body_wikitext (bfr, app, wiki, data_raw, hctx, page, page_tid, page_ns_id); break;
}
}
@@ -138,26 +137,21 @@ public class Xoh_page_wtr_wkr {
bfr.Add(hdump_data);
return;
}
-
// dump and exit if MediaWiki message;
if (ns_id == Xow_ns_.Tid__mediawiki) { // if MediaWiki and wikitext, must be a message; convert args back to php; DATE:2014-06-13
bfr.Add(Xoa_gfs_php_mgr.Xto_php(tmp_bfr, Bool_.N, data_raw));
return;
}
-
// if [[File]], add boilerplate header; note that html is XOWA-generated so does not need to be tidied
if (ns_id == Xow_ns_.Tid__file) app.Ns_file_page_mgr().Bld_html(wiki, ctx, page, bfr, page.Ttl(), wiki.Cfg_file_page(), page.File_queue());
-
// get separate bfr; note that bfr already has and written to it, so this can't be passed to tidy; DATE:2014-06-11
Bry_bfr tidy_bfr = app.Utl__bfr_mkr().Get_m001();
-
// write wikitext
if (page.Root() != null) // NOTE: will be null if blank; occurs for one test: Logo_has_correct_main_page; DATE:2015-09-29
wiki.Html_mgr().Html_wtr().Write_all(tidy_bfr, page.Wikie().Parser_mgr().Ctx(), hctx, page.Root().Data_mid(), page.Root());
// if [[Category]], render rest of html (Subcategories; Pages; Files); note that a category may have other html which requires wikitext processing
if (ns_id == Xow_ns_.Tid__category) wiki.Html_mgr().Ns_ctg().Bld_html(wiki, page, hctx, tidy_bfr);
-
// tidy html
gplx.xowa.htmls.core.htmls.tidy.Xoh_tidy_mgr tidy_mgr = app.Html_mgr().Tidy_mgr();
if (tidy_mgr.Enabled()) tidy_mgr.Run_tidy_html(page, tidy_bfr, !hctx.Mode_is_hdump());
@@ -165,7 +159,6 @@ public class Xoh_page_wtr_wkr {
// add back to main bfr
bfr.Add_bfr_and_clear(tidy_bfr);
tidy_bfr.Mkr_rls();
-
// handle Categories at bottom of page; note that html is XOWA-generated so does not need to be tidied
int ctgs_len = page.Category_list().length;
if ( ctgs_enabled
@@ -178,7 +171,6 @@ public class Xoh_page_wtr_wkr {
else
wiki.Html_mgr().Ctg_mgr().Bld(bfr, page, ctgs_len);
}
-
// translate if variants are enabled
Xol_vnt_mgr vnt_mgr = wiki.Lang().Vnt_mgr();
if (vnt_mgr.Enabled()) bfr.Add(vnt_mgr.Convert_lang().Parse_page(vnt_mgr.Cur_itm(), page.Revision_data().Id(), bfr.To_bry_and_clear()));
@@ -201,5 +193,5 @@ public class Xoh_page_wtr_wkr {
if (data_raw_len > 0) // do not add nl if empty String
bfr.Add_byte_nl(); // per MW:EditPage.php: "Ensure there's a newline at the end, otherwise adding lines is awkward."
}
- private static final byte[] Content_editable_bry = Bry_.new_a7(" contenteditable=\"true\"");
+ private static final byte[] Content_editable_bry = Bry_.new_a7(" contenteditable=\"true\"");
}
diff --git a/400_xowa/src/gplx/xowa/htmls/Xoh_page_wtr_wkr_.java b/400_xowa/src/gplx/xowa/htmls/Xoh_page_wtr_wkr_.java
index efa46fbb7..1e698ddbc 100644
--- a/400_xowa/src/gplx/xowa/htmls/Xoh_page_wtr_wkr_.java
+++ b/400_xowa/src/gplx/xowa/htmls/Xoh_page_wtr_wkr_.java
@@ -33,7 +33,7 @@ public class Xoh_page_wtr_wkr_ {
return tmp_bfr.To_bry_and_clear();
}
else
- return ttl.Full_txt(); // NOTE: include ns with ttl as per defect d88a87b3
+ return ttl.Full_txt_w_ttl_case(); // NOTE: include ns with ttl as per defect d88a87b3
}
public static void Bld_head_end(Bry_bfr html_bfr, Xoae_page page) {
byte[] head_end = page.Html_data().Custom_head_end();
diff --git a/400_xowa/src/gplx/xowa/htmls/Xoh_page_wtr_wkr_tst.java b/400_xowa/src/gplx/xowa/htmls/Xoh_page_wtr_wkr_tst.java
index c6b44c748..dc6f35f65 100644
--- a/400_xowa/src/gplx/xowa/htmls/Xoh_page_wtr_wkr_tst.java
+++ b/400_xowa/src/gplx/xowa/htmls/Xoh_page_wtr_wkr_tst.java
@@ -43,8 +43,8 @@ public class Xoh_page_wtr_wkr_tst {
class Xoh_page_wtr_fxt {
public void Clear() {
if (app == null) {
- app = Xoa_app_fxt.app_();
- wiki = Xoa_app_fxt.wiki_tst_(app);
+ app = Xoa_app_fxt.Make__app__edit();
+ wiki = Xoa_app_fxt.Make__wiki__edit(app);
}
} private Bry_bfr tmp_bfr = Bry_bfr.reset_(255); private Xowe_wiki wiki;
public Xoae_app App() {return app;} private Xoae_app app;
diff --git a/400_xowa/src/gplx/xowa/htmls/Xohp_ctg_grp_mgr_tst.java b/400_xowa/src/gplx/xowa/htmls/Xohp_ctg_grp_mgr_tst.java
index efe2d8440..9a7b77509 100644
--- a/400_xowa/src/gplx/xowa/htmls/Xohp_ctg_grp_mgr_tst.java
+++ b/400_xowa/src/gplx/xowa/htmls/Xohp_ctg_grp_mgr_tst.java
@@ -40,8 +40,8 @@ public class Xohp_ctg_grp_mgr_tst {
}
class Xoh_ctg_mgr_fxt {
public Xoh_ctg_mgr_fxt Clear() {
- app = Xoa_app_fxt.app_();
- wiki = Xoa_app_fxt.wiki_tst_(app);
+ app = Xoa_app_fxt.Make__app__edit();
+ wiki = Xoa_app_fxt.Make__wiki__edit(app);
ctg_grp_mgr = new Xohp_ctg_grp_mgr();
return this;
} private Xohp_ctg_grp_mgr ctg_grp_mgr; Xoae_app app; Xowe_wiki wiki; Bry_bfr tmp_bfr = Bry_bfr.new_();
diff --git a/400_xowa/src/gplx/xowa/htmls/core/Xow_hdump_mgr__load.java b/400_xowa/src/gplx/xowa/htmls/core/Xow_hdump_mgr__load.java
index 4616b177b..5eec90c1f 100644
--- a/400_xowa/src/gplx/xowa/htmls/core/Xow_hdump_mgr__load.java
+++ b/400_xowa/src/gplx/xowa/htmls/core/Xow_hdump_mgr__load.java
@@ -50,7 +50,7 @@ public class Xow_hdump_mgr__load {
hpg.Body_(page_override);
return true;
}
- Xowd_db_file html_db = wiki.Data__core_mgr().Dbs__get_at(tmp_dbpg.Html_db_id());
+ Xowd_db_file html_db = wiki.Data__core_mgr().Dbs__get_by_id(tmp_dbpg.Html_db_id());
if (!html_db.Tbl__html().Select_by_page(hpg)) return Load__fail(hpg); // nothing in "html" table
byte[] src = Parse(hpg, hpg.Body_zip_tid(), hpg.Body_hzip_tid(), hpg.Body());
hpg.Body_(src);
diff --git a/400_xowa/src/gplx/xowa/htmls/core/Xow_hdump_mgr__save.java b/400_xowa/src/gplx/xowa/htmls/core/Xow_hdump_mgr__save.java
index 555329166..dd3577c9c 100644
--- a/400_xowa/src/gplx/xowa/htmls/core/Xow_hdump_mgr__save.java
+++ b/400_xowa/src/gplx/xowa/htmls/core/Xow_hdump_mgr__save.java
@@ -68,7 +68,7 @@ public class Xow_hdump_mgr__save {
core_data_mgr.Tbl__page().Update__html_db_id(page.Revision_data().Id(), html_db_id);
}
else {
- rv = core_data_mgr.Dbs__get_at(html_db_id);
+ rv = core_data_mgr.Dbs__get_by_id(html_db_id);
}
return rv;
}
diff --git a/400_xowa/src/gplx/xowa/htmls/core/bldrs/Xob_hdump_img_cmd.java b/400_xowa/src/gplx/xowa/htmls/core/bldrs/Xob_hdump_img_cmd.java
index 39ef1f777..1609b47f4 100644
--- a/400_xowa/src/gplx/xowa/htmls/core/bldrs/Xob_hdump_img_cmd.java
+++ b/400_xowa/src/gplx/xowa/htmls/core/bldrs/Xob_hdump_img_cmd.java
@@ -30,8 +30,8 @@ class Xob_hdump_img_cmd extends Xob_itm_basic_base implements Xob_cmd {
public void Cmd_term() {}
private void Exec_main() {
Bry_bfr bfr = Bry_bfr.reset_(Io_mgr.Len_mb);
- Db_conn conn = Xob_db_file.new__file_make(wiki.Fsys_mgr().Root_dir()).Conn();
- Db_rdr rdr = conn.Stmt_new(gplx.dbs.qrys.Db_qry_sql.rdr_(Sql_select_itm)).Exec_select__rls_auto();
+ Db_conn conn = Xob_db_file.New__file_make(wiki.Fsys_mgr().Root_dir()).Conn();
+ Db_rdr rdr = conn.Stmt_sql(Sql_select_clause).Exec_select__rls_auto();
// html_tbl = new Xowd_html_tbl(conn, wiki.Db_mgr_as_sql().Core_data_mgr().Props().Zip_tid_text());
int cur_page_id = -1;
while (rdr.Move_next()) {
@@ -57,7 +57,7 @@ class Xob_hdump_img_cmd extends Xob_itm_basic_base implements Xob_cmd {
if (page_id == -1 || data.length == 0) return;
// html_tbl.Insert(page_id, Xohd_img_tid.Tid_img, data);
}
- private static final String Sql_select_itm = String_.Concat_lines_nl_skip_last
+ private static final String Sql_select_clause = String_.Concat_lines_nl_skip_last
( "SELECT lt.lnki_page_id"
, ", lt.html_uid"
, ", lt.lnki_ttl"
diff --git a/400_xowa/src/gplx/xowa/htmls/core/bldrs/Xob_link_dump_cmd.java b/400_xowa/src/gplx/xowa/htmls/core/bldrs/Xob_link_dump_cmd.java
index 134061e76..138b485d4 100644
--- a/400_xowa/src/gplx/xowa/htmls/core/bldrs/Xob_link_dump_cmd.java
+++ b/400_xowa/src/gplx/xowa/htmls/core/bldrs/Xob_link_dump_cmd.java
@@ -32,8 +32,8 @@ public class Xob_link_dump_cmd {
tbl.Insert_end();
tbl.Create_idx_1();
Db_conn conn = tbl.Conn();
- Db_attach_cmd.new_(conn, "page_db", page_db_url)
- .Add_fmt("update trg_page_id", String_.Concat_lines_nl_skip_last
+ new Db_attach_mgr(conn, new Db_attach_itm("page_db", page_db_url))
+ .Exec_sql_w_msg("update trg_page_id", String_.Concat_lines_nl_skip_last
( "REPLACE INTO link_dump"
, "SELECT r.uid"
, ", r.src_page_id"
@@ -42,10 +42,9 @@ public class Xob_link_dump_cmd {
, ", r.trg_ns"
, ", r.trg_ttl"
, "FROM link_dump r"
- , " LEFT JOIN page_db.page p ON r.trg_ns = p.page_namespace AND r.trg_ttl = p.page_title"
+ , " LEFT JOIN page p ON r.trg_ns = p.page_namespace AND r.trg_ttl = p.page_title"
, ";"
- ))
- .Exec();
+ ));;
conn.Exec_sql("UPDATE link_dump SET trg_ns = -1 AND trg_ttl = '' WHERE trg_page_id != -1;");
tbl.Create_idx_2();
conn.Env_vacuum();
diff --git a/400_xowa/src/gplx/xowa/htmls/core/bldrs/Xob_link_dump_tbl.java b/400_xowa/src/gplx/xowa/htmls/core/bldrs/Xob_link_dump_tbl.java
index 50d7a3157..2bea9ad27 100644
--- a/400_xowa/src/gplx/xowa/htmls/core/bldrs/Xob_link_dump_tbl.java
+++ b/400_xowa/src/gplx/xowa/htmls/core/bldrs/Xob_link_dump_tbl.java
@@ -33,15 +33,15 @@ class Xob_link_dump_tbl implements Rls_able {
conn.Rls_reg(this);
}
public Db_conn Conn() {return conn;} private final Db_conn conn;
- public void Create_tbl() {conn.Ddl_create_tbl(Dbmeta_tbl_itm.New(Tbl_name, flds));}
+ public void Create_tbl() {conn.Meta_tbl_create(Dbmeta_tbl_itm.New(Tbl_name, flds));}
public void Create_idx_1() {
- conn.Ddl_create_idx
+ conn.Meta_idx_create
( Dbmeta_idx_itm.new_normal_by_tbl(Tbl_name, "src", Fld_src_page_id, Fld_src_html_uid)
, Dbmeta_idx_itm.new_normal_by_tbl(Tbl_name, "trg_temp", Fld_trg_ns, Fld_trg_ttl)
);
}
public void Create_idx_2() {
- conn.Ddl_create_idx
+ conn.Meta_idx_create
( Dbmeta_idx_itm.new_normal_by_tbl(Tbl_name, "trg", Fld_trg_page_id, Fld_src_page_id, Fld_src_html_uid)
);
}
diff --git a/400_xowa/src/gplx/xowa/htmls/core/bldrs/Xob_ns_to_db_wkr__html.java b/400_xowa/src/gplx/xowa/htmls/core/bldrs/Xob_ns_to_db_wkr__html.java
index 035980f31..23b7cd3a7 100644
--- a/400_xowa/src/gplx/xowa/htmls/core/bldrs/Xob_ns_to_db_wkr__html.java
+++ b/400_xowa/src/gplx/xowa/htmls/core/bldrs/Xob_ns_to_db_wkr__html.java
@@ -19,7 +19,7 @@ package gplx.xowa.htmls.core.bldrs; import gplx.*; import gplx.xowa.*; import gp
import gplx.dbs.*; import gplx.xowa.bldrs.*;
import gplx.xowa.wikis.data.*; import gplx.xowa.wikis.data.tbls.*; import gplx.xowa.htmls.core.dbs.*;
class Xob_ns_to_db_wkr__html implements Xob_ns_to_db_wkr {
- private final Xowd_db_file page_db;
+ private final Xowd_db_file page_db;
public Xob_ns_to_db_wkr__html(Xowd_db_file page_db) {this.page_db = page_db;}
public byte Db_tid() {return Xowd_db_file_.Tid_html_data;}
public void Tbl_init(Xowd_db_file db) {
@@ -30,13 +30,12 @@ class Xob_ns_to_db_wkr__html implements Xob_ns_to_db_wkr {
public void Tbl_term(Xowd_db_file db) {
db.Tbl__text().Insert_end();
Db_conn db_conn = db.Conn();
- Db_attach_cmd.new_(page_db.Conn(), "html_db", db.Url())
- .Add_fmt("hdump.update page.html_db_id", Sql_update_page_html_db_id, db.Id())
- .Exec();
+ new Db_attach_mgr(page_db.Conn(), new Db_attach_itm("html_db", db.Url()))
+ .Exec_sql_w_msg("hdump.update page.html_db_id", Sql_update_page_html_db_id, db.Id());
db_conn.Rls_conn();
}
- private static final String Sql_update_page_html_db_id = String_.Concat_lines_nl_skip_last
- ( "REPLACE INTO page (page_id, page_namespace, page_title, page_is_redirect, page_touched, page_len, page_random_int, page_text_db_id, page_html_db_id, page_redirect_id)"
+ private static final String Sql_update_page_html_db_id = String_.Concat_lines_nl_skip_last
+ ( "REPLACE INTO page (page_id, page_namespace, page_title, page_is_redirect, page_touched, page_len, page_random_int, page_text_db_id, page_html_db_id, page_redirect_id, page_score)"
, "SELECT p.page_id"
, ", p.page_namespace"
, ", p.page_title"
@@ -47,7 +46,8 @@ class Xob_ns_to_db_wkr__html implements Xob_ns_to_db_wkr {
, ", p.page_text_db_id"
, ", {0}"
, ", p.page_redirect_id"
+ , ", p.page_score"
, "FROM page p"
- , " JOIN html h ON p.page_id = h.page_id"
+ , " JOIN html h ON p.page_id = h.page_id"
);
}
diff --git a/400_xowa/src/gplx/xowa/htmls/core/bldrs/Xob_redlink_mkr_cmd.java b/400_xowa/src/gplx/xowa/htmls/core/bldrs/Xob_redlink_mkr_cmd.java
index 5f83b6644..61de7bd06 100644
--- a/400_xowa/src/gplx/xowa/htmls/core/bldrs/Xob_redlink_mkr_cmd.java
+++ b/400_xowa/src/gplx/xowa/htmls/core/bldrs/Xob_redlink_mkr_cmd.java
@@ -29,20 +29,21 @@ public class Xob_redlink_mkr_cmd extends Xob_itm_basic_base implements Xob_cmd {
Bry_bfr bfr = Bry_bfr.reset_(255);
wiki.Init_assert();
Xowd_db_file core_db = wiki.Data__core_mgr().Db__core();
- Xob_db_file link_dump_db = Xob_db_file.new__redlink(wiki.Fsys_mgr().Root_dir());
- Db_attach_rdr attach_rdr = new Db_attach_rdr(link_dump_db.Conn(), "page_db", core_db.Url());
- attach_rdr.Attach();
+ Xob_db_file link_dump_db = Xob_db_file.New__redlink(wiki.Fsys_mgr().Root_dir());
+ Db_attach_mgr attach_mgr = new Db_attach_mgr(link_dump_db.Conn(), new Db_attach_itm("page_db", wiki.Data__core_mgr().Db__core().Conn()));
+ String attach_sql = attach_mgr.Resolve_sql(Sql_select_clause);
+ attach_mgr.Attach();
Xowd_page_tbl page_tbl = core_db.Tbl__page();
int cur_html_db_id = -1, cur_page_id = -1;
- Xoh_redlink_tbl redlink_tbl = new Xoh_redlink_tbl(page_tbl.Conn());
- Db_rdr rdr = attach_rdr.Exec_as_rdr(Sql_select_itm);
+ Xoh_redlink_tbl redlink_tbl = new Xoh_redlink_tbl(page_tbl.conn);
+ Db_rdr rdr = link_dump_db.Conn().Exec_rdr(attach_sql);
try {
while (rdr.Move_next()) {
// switch html_db if needed
int html_db_id = rdr.Read_int(page_tbl.Fld_html_db_id());
if (html_db_id != cur_html_db_id) {
if (redlink_tbl != null) redlink_tbl.Conn().Txn_end();
- // redlink_tbl = wiki.Data__core_mgr().Dbs__get_at(html_db_id).Tbl__html_redlink();
+ // redlink_tbl = wiki.Data__core_mgr().Dbs__get_by_id(html_db_id).Tbl__html_redlink();
redlink_tbl.Conn().Txn_bgn("bldr__redlink");
cur_html_db_id = html_db_id;
}
@@ -61,7 +62,7 @@ public class Xob_redlink_mkr_cmd extends Xob_itm_basic_base implements Xob_cmd {
finally {rdr.Rls();}
Commit(redlink_tbl, cur_page_id, bfr); // commit cur page
redlink_tbl.Conn().Txn_end(); // close cur tbl
- attach_rdr.Detach();
+ attach_mgr.Detach();
}
private void Commit(Xoh_redlink_tbl redlink_tbl, int cur_page_id, Bry_bfr bfr) {
redlink_tbl.Insert(cur_page_id, bfr.To_bry_and_clear());
@@ -69,12 +70,12 @@ public class Xob_redlink_mkr_cmd extends Xob_itm_basic_base implements Xob_cmd {
if ((commit_count % commit_interval ) == 0)
redlink_tbl.Conn().Txn_sav();
}
- private static final String Sql_select_itm = String_.Concat_lines_nl_skip_last
+ private static final String Sql_select_clause = String_.Concat_lines_nl_skip_last
( "SELECT p.page_html_db_id"
, ", p.page_id"
, ", ld.src_html_uid"
, "FROM link_dump ld"
- , " JOIN page p ON p.page_id = ld.src_page_id "
+ , " JOIN page p ON p.page_id = ld.src_page_id "
, "WHERE ld.trg_page_id = -1"
, "ORDER BY p.page_html_db_id, p.page_id"
, ";"
diff --git a/400_xowa/src/gplx/xowa/htmls/core/dbs/Xoh_page_tbl.java b/400_xowa/src/gplx/xowa/htmls/core/dbs/Xoh_page_tbl.java
index fe0ca285f..d82b4c632 100644
--- a/400_xowa/src/gplx/xowa/htmls/core/dbs/Xoh_page_tbl.java
+++ b/400_xowa/src/gplx/xowa/htmls/core/dbs/Xoh_page_tbl.java
@@ -34,7 +34,7 @@ public class Xoh_page_tbl implements Rls_able {
conn.Rls_reg(this);
}
public Db_conn Conn() {return conn;}
- public void Create_tbl() {conn.Ddl_create_tbl(Dbmeta_tbl_itm.New(tbl_name, flds));}
+ public void Create_tbl() {conn.Meta_tbl_create(Dbmeta_tbl_itm.New(tbl_name, flds));}
public void Insert_bgn() {conn.Txn_bgn("html__insert"); stmt_insert = conn.Stmt_insert(tbl_name, flds);}
public void Insert_end() {conn.Txn_end(); stmt_insert = Db_stmt_.Rls(stmt_insert);}
public void Insert(Xoh_page hpg, int zip_tid, int hzip_tid, byte[] body) {Insert(hpg.Page_id(), hpg.Head_mgr().Flag(), zip_tid, hzip_tid, hpg.Display_ttl(), hpg.Content_sub(), hpg.Sidebar_div(), body);}
diff --git a/400_xowa/src/gplx/xowa/htmls/core/dbs/Xoh_redlink_tbl.java b/400_xowa/src/gplx/xowa/htmls/core/dbs/Xoh_redlink_tbl.java
index 83fd703d5..9a7759c5f 100644
--- a/400_xowa/src/gplx/xowa/htmls/core/dbs/Xoh_redlink_tbl.java
+++ b/400_xowa/src/gplx/xowa/htmls/core/dbs/Xoh_redlink_tbl.java
@@ -28,7 +28,7 @@ public class Xoh_redlink_tbl implements Rls_able {
conn.Rls_reg(this);
}
public Db_conn Conn() {return conn;}
- public void Create_tbl() {conn.Ddl_create_tbl(Dbmeta_tbl_itm.New(tbl_name, flds));}
+ public void Create_tbl() {conn.Meta_tbl_create(Dbmeta_tbl_itm.New(tbl_name, flds));}
public void Insert_bgn() {conn.Txn_bgn("html_redlink__insert"); stmt_insert = conn.Stmt_insert(tbl_name, flds);}
public void Insert_end() {conn.Txn_end(); stmt_insert = Db_stmt_.Rls(stmt_insert);}
public void Insert(int page_id, byte[] redlink_uids) {
diff --git a/400_xowa/src/gplx/xowa/htmls/core/htmls/Xoh_html_wtr.java b/400_xowa/src/gplx/xowa/htmls/core/htmls/Xoh_html_wtr.java
index 8c30f247e..1a2313a24 100644
--- a/400_xowa/src/gplx/xowa/htmls/core/htmls/Xoh_html_wtr.java
+++ b/400_xowa/src/gplx/xowa/htmls/core/htmls/Xoh_html_wtr.java
@@ -240,37 +240,37 @@ public class Xoh_html_wtr {
Xop_xnde_tag tag = xnde.Tag();
int tag_id = tag.Id();
switch (tag_id) {
- case Xop_xnde_tag_.Tid_br:
+ case Xop_xnde_tag_.Tid__br:
if (xnde.Src_end() - xnde.Src_bgn() < 4
|| xnde.Src_bgn() == -1)
bfr.Add(Tag_br); else bfr.Add_mid(src, xnde.Src_bgn(), xnde.Src_end()); break;
- case Xop_xnde_tag_.Tid_hr: bfr.Add(Tag_hr); break;
- case Xop_xnde_tag_.Tid_includeonly: // NOTE: do not write tags or content
+ case Xop_xnde_tag_.Tid__hr: bfr.Add(Tag_hr); break;
+ case Xop_xnde_tag_.Tid__includeonly: // NOTE: do not write tags or content
break;
- case Xop_xnde_tag_.Tid_noinclude: // NOTE: do not write tags
- case Xop_xnde_tag_.Tid_onlyinclude:
+ case Xop_xnde_tag_.Tid__noinclude: // NOTE: do not write tags
+ case Xop_xnde_tag_.Tid__onlyinclude:
Xnde_subs_escape(ctx, hctx, bfr, src, xnde, false, false);
break;
- case Xop_xnde_tag_.Tid_nowiki:
+ case Xop_xnde_tag_.Tid__nowiki:
Xnde_subs_escape(ctx, hctx, bfr, src, xnde, false, false);
break;
- case Xop_xnde_tag_.Tid_b: case Xop_xnde_tag_.Tid_strong:
- case Xop_xnde_tag_.Tid_i: case Xop_xnde_tag_.Tid_em: case Xop_xnde_tag_.Tid_cite: case Xop_xnde_tag_.Tid_dfn: case Xop_xnde_tag_.Tid_var:
- case Xop_xnde_tag_.Tid_u: case Xop_xnde_tag_.Tid_ins: case Xop_xnde_tag_.Tid_abbr:
- case Xop_xnde_tag_.Tid_strike: case Xop_xnde_tag_.Tid_s: case Xop_xnde_tag_.Tid_del:
- case Xop_xnde_tag_.Tid_sub: case Xop_xnde_tag_.Tid_sup: case Xop_xnde_tag_.Tid_big: case Xop_xnde_tag_.Tid_small:
- case Xop_xnde_tag_.Tid_code: case Xop_xnde_tag_.Tid_tt: case Xop_xnde_tag_.Tid_kbd: case Xop_xnde_tag_.Tid_samp: case Xop_xnde_tag_.Tid_blockquote:
- case Xop_xnde_tag_.Tid_font: case Xop_xnde_tag_.Tid_center:
- case Xop_xnde_tag_.Tid_p: case Xop_xnde_tag_.Tid_span: case Xop_xnde_tag_.Tid_div:
- case Xop_xnde_tag_.Tid_h1: case Xop_xnde_tag_.Tid_h2: case Xop_xnde_tag_.Tid_h3: case Xop_xnde_tag_.Tid_h4: case Xop_xnde_tag_.Tid_h5: case Xop_xnde_tag_.Tid_h6:
- case Xop_xnde_tag_.Tid_dt: case Xop_xnde_tag_.Tid_dd: case Xop_xnde_tag_.Tid_ol: case Xop_xnde_tag_.Tid_ul: case Xop_xnde_tag_.Tid_dl:
- case Xop_xnde_tag_.Tid_table: case Xop_xnde_tag_.Tid_tr: case Xop_xnde_tag_.Tid_td: case Xop_xnde_tag_.Tid_th: case Xop_xnde_tag_.Tid_caption: case Xop_xnde_tag_.Tid_tbody:
- case Xop_xnde_tag_.Tid_ruby: case Xop_xnde_tag_.Tid_rt: case Xop_xnde_tag_.Tid_rb: case Xop_xnde_tag_.Tid_rp:
- case Xop_xnde_tag_.Tid_time: case Xop_xnde_tag_.Tid_bdi: case Xop_xnde_tag_.Tid_data: case Xop_xnde_tag_.Tid_mark: case Xop_xnde_tag_.Tid_wbr: case Xop_xnde_tag_.Tid_bdo: // HTML 5: write literally and let browser handle them
- case Xop_xnde_tag_.Tid_q:
+ case Xop_xnde_tag_.Tid__b: case Xop_xnde_tag_.Tid__strong:
+ case Xop_xnde_tag_.Tid__i: case Xop_xnde_tag_.Tid__em: case Xop_xnde_tag_.Tid__cite: case Xop_xnde_tag_.Tid__dfn: case Xop_xnde_tag_.Tid__var:
+ case Xop_xnde_tag_.Tid__u: case Xop_xnde_tag_.Tid__ins: case Xop_xnde_tag_.Tid__abbr:
+ case Xop_xnde_tag_.Tid__strike: case Xop_xnde_tag_.Tid__s: case Xop_xnde_tag_.Tid__del:
+ case Xop_xnde_tag_.Tid__sub: case Xop_xnde_tag_.Tid__sup: case Xop_xnde_tag_.Tid__big: case Xop_xnde_tag_.Tid__small:
+ case Xop_xnde_tag_.Tid__code: case Xop_xnde_tag_.Tid__tt: case Xop_xnde_tag_.Tid__kbd: case Xop_xnde_tag_.Tid__samp: case Xop_xnde_tag_.Tid__blockquote:
+ case Xop_xnde_tag_.Tid__font: case Xop_xnde_tag_.Tid__center:
+ case Xop_xnde_tag_.Tid__p: case Xop_xnde_tag_.Tid__span: case Xop_xnde_tag_.Tid__div:
+ case Xop_xnde_tag_.Tid__h1: case Xop_xnde_tag_.Tid__h2: case Xop_xnde_tag_.Tid__h3: case Xop_xnde_tag_.Tid__h4: case Xop_xnde_tag_.Tid__h5: case Xop_xnde_tag_.Tid__h6:
+ case Xop_xnde_tag_.Tid__dt: case Xop_xnde_tag_.Tid__dd: case Xop_xnde_tag_.Tid__ol: case Xop_xnde_tag_.Tid__ul: case Xop_xnde_tag_.Tid__dl:
+ case Xop_xnde_tag_.Tid__table: case Xop_xnde_tag_.Tid__tr: case Xop_xnde_tag_.Tid__td: case Xop_xnde_tag_.Tid__th: case Xop_xnde_tag_.Tid__caption: case Xop_xnde_tag_.Tid__tbody:
+ case Xop_xnde_tag_.Tid__ruby: case Xop_xnde_tag_.Tid__rt: case Xop_xnde_tag_.Tid__rb: case Xop_xnde_tag_.Tid__rp:
+ case Xop_xnde_tag_.Tid__time: case Xop_xnde_tag_.Tid__bdi: case Xop_xnde_tag_.Tid__data: case Xop_xnde_tag_.Tid__mark: case Xop_xnde_tag_.Tid__wbr: case Xop_xnde_tag_.Tid__bdo: // HTML 5: write literally and let browser handle them
+ case Xop_xnde_tag_.Tid__q:
Write_xnde(bfr, ctx, hctx, xnde, tag, tag_id, src);
break;
- case Xop_xnde_tag_.Tid_pre: {
+ case Xop_xnde_tag_.Tid__pre: {
if (xnde.Tag_open_end() == xnde.Tag_close_bgn()) return; // ignore empty tags, else blank pre line will be printed; DATE:2014-03-12
byte[] name = tag.Name_bry();
bfr.Add_byte(Byte_ascii.Angle_bgn).Add(name);
@@ -280,7 +280,7 @@ public class Xoh_html_wtr {
bfr.Add(Tag__end_bgn).Add(name).Add_byte(Byte_ascii.Angle_end);
break;
}
- case Xop_xnde_tag_.Tid_li: {
+ case Xop_xnde_tag_.Tid__li: {
byte[] name = tag.Name_bry();
int bfr_len = bfr.Len();
if (bfr_len > 0 && bfr.Bfr()[bfr_len - 1] != Byte_ascii.Nl) bfr.Add_byte_nl(); // NOTE: always add nl before li else some lists will merge and force long horizontal bar; EX:w:Music
@@ -294,49 +294,52 @@ public class Xoh_html_wtr {
bfr.Add(Tag__end_bgn).Add(name).Add_byte(Byte_ascii.Angle_end); // NOTE: inline is never written as ; will be written as ; SEE: NOTE_1
break;
}
- case Xop_xnde_tag_.Tid_timeline: {
+ case Xop_xnde_tag_.Tid__timeline: {
bfr.Add_str_a7("
");
Xox_mgr_base.Xtn_write_escape(app, bfr, src, xnde.Tag_open_end(), xnde.Tag_close_bgn()); // NOTE: do not embed tag inside pre, else timeline will render in black; EX:
a
will fail; DATE:2014-05-22
bfr.Add_str_a7("
");
break;
}
- case Xop_xnde_tag_.Tid_gallery:
- case Xop_xnde_tag_.Tid_poem:
- case Xop_xnde_tag_.Tid_hiero:
- case Xop_xnde_tag_.Tid_score:
- case Xop_xnde_tag_.Tid_ref:
- case Xop_xnde_tag_.Tid_references:
- case Xop_xnde_tag_.Tid_inputBox:
- case Xop_xnde_tag_.Tid_imageMap:
- case Xop_xnde_tag_.Tid_pages:
- case Xop_xnde_tag_.Tid_pagequality:
- case Xop_xnde_tag_.Tid_pagelist:
- case Xop_xnde_tag_.Tid_section:
- case Xop_xnde_tag_.Tid_translate:
- case Xop_xnde_tag_.Tid_dynamicPageList:
- case Xop_xnde_tag_.Tid_languages:
- case Xop_xnde_tag_.Tid_templateData:
- case Xop_xnde_tag_.Tid_source: // DATE:2015-09-29
- case Xop_xnde_tag_.Tid_syntaxHighlight:
- case Xop_xnde_tag_.Tid_listing_buy:
- case Xop_xnde_tag_.Tid_listing_do:
- case Xop_xnde_tag_.Tid_listing_drink:
- case Xop_xnde_tag_.Tid_listing_eat:
- case Xop_xnde_tag_.Tid_listing_listing:
- case Xop_xnde_tag_.Tid_listing_see:
- case Xop_xnde_tag_.Tid_listing_sleep:
- case Xop_xnde_tag_.Tid_xowa_cmd:
- case Xop_xnde_tag_.Tid_rss:
- case Xop_xnde_tag_.Tid_quiz:
- case Xop_xnde_tag_.Tid_math:
- case Xop_xnde_tag_.Tid_indicator:
- case Xop_xnde_tag_.Tid_xowa_html:
- case Xop_xnde_tag_.Tid_graph:
+ case Xop_xnde_tag_.Tid__gallery:
+ case Xop_xnde_tag_.Tid__poem:
+ case Xop_xnde_tag_.Tid__hiero:
+ case Xop_xnde_tag_.Tid__score:
+ case Xop_xnde_tag_.Tid__ref:
+ case Xop_xnde_tag_.Tid__references:
+ case Xop_xnde_tag_.Tid__inputBox:
+ case Xop_xnde_tag_.Tid__imageMap:
+ case Xop_xnde_tag_.Tid__pages:
+ case Xop_xnde_tag_.Tid__pagequality:
+ case Xop_xnde_tag_.Tid__pagelist:
+ case Xop_xnde_tag_.Tid__section:
+ case Xop_xnde_tag_.Tid__translate:
+ case Xop_xnde_tag_.Tid__dynamicPageList:
+ case Xop_xnde_tag_.Tid__languages:
+ case Xop_xnde_tag_.Tid__templateData:
+ case Xop_xnde_tag_.Tid__source: // DATE:2015-09-29
+ case Xop_xnde_tag_.Tid__syntaxHighlight:
+ case Xop_xnde_tag_.Tid__listing_buy:
+ case Xop_xnde_tag_.Tid__listing_do:
+ case Xop_xnde_tag_.Tid__listing_drink:
+ case Xop_xnde_tag_.Tid__listing_eat:
+ case Xop_xnde_tag_.Tid__listing_listing:
+ case Xop_xnde_tag_.Tid__listing_see:
+ case Xop_xnde_tag_.Tid__listing_sleep:
+ case Xop_xnde_tag_.Tid__xowa_cmd:
+ case Xop_xnde_tag_.Tid__rss:
+ case Xop_xnde_tag_.Tid__quiz:
+ case Xop_xnde_tag_.Tid__math:
+ case Xop_xnde_tag_.Tid__indicator:
+ case Xop_xnde_tag_.Tid__xowa_html:
+ case Xop_xnde_tag_.Tid__graph:
+ case Xop_xnde_tag_.Tid__random_selection:
+ case Xop_xnde_tag_.Tid__tabber:
+ case Xop_xnde_tag_.Tid__tabview:
Xox_xnde xtn = xnde.Xnde_xtn();
xtn.Xtn_write(bfr, app, ctx, this, hctx, xnde, src);
break;
- case Xop_xnde_tag_.Tid_xowa_tag_bgn:
- case Xop_xnde_tag_.Tid_xowa_tag_end:
+ case Xop_xnde_tag_.Tid__xowa_tag_bgn:
+ case Xop_xnde_tag_.Tid__xowa_tag_end:
break;
default: // unknown tag
if (tag.Restricted()) { // a; img; script; etc..
@@ -460,9 +463,9 @@ public class Xoh_html_wtr {
case Xop_tkn_itm_.Tid_xnde:
Xop_xnde_tkn sub_xnde = (Xop_xnde_tkn)sub;
switch (sub_xnde.Tag().Id()) {
- case Xop_xnde_tag_.Tid_noinclude:
- case Xop_xnde_tag_.Tid_onlyinclude:
- case Xop_xnde_tag_.Tid_includeonly:
+ case Xop_xnde_tag_.Tid__noinclude:
+ case Xop_xnde_tag_.Tid__onlyinclude:
+ case Xop_xnde_tag_.Tid__includeonly:
break;
default:
byte[] tag_name = sub_xnde.Tag().Name_bry();
diff --git a/400_xowa/src/gplx/xowa/htmls/core/htmls/Xoh_html_wtr_escaper.java b/400_xowa/src/gplx/xowa/htmls/core/htmls/Xoh_html_wtr_escaper.java
index f995e00dd..904cd12dc 100644
--- a/400_xowa/src/gplx/xowa/htmls/core/htmls/Xoh_html_wtr_escaper.java
+++ b/400_xowa/src/gplx/xowa/htmls/core/htmls/Xoh_html_wtr_escaper.java
@@ -30,7 +30,7 @@ public class Xoh_html_wtr_escaper {
switch (b) {
case Byte_ascii.Lt:
if (nowiki_skip) {
- byte[] nowiki_name = Xop_xnde_tag_.Tag_nowiki.Name_bry();
+ byte[] nowiki_name = Xop_xnde_tag_.Tag__nowiki.Name_bry();
int nowiki_name_len = nowiki_name.length;
if (Bry_.Eq(src, i + 1, i + 1 + nowiki_name_len, nowiki_name)) { // .
*/
package gplx.xowa.htmls.core.hzips; import gplx.*; import gplx.xowa.*; import gplx.xowa.htmls.*; import gplx.xowa.htmls.core.*;
public class Xoh_hzip_dict {
-
}
diff --git a/400_xowa/src/gplx/xowa/htmls/core/hzips/Xoh_stat_tbl.java b/400_xowa/src/gplx/xowa/htmls/core/hzips/Xoh_stat_tbl.java
index 912571877..0725118c5 100644
--- a/400_xowa/src/gplx/xowa/htmls/core/hzips/Xoh_stat_tbl.java
+++ b/400_xowa/src/gplx/xowa/htmls/core/hzips/Xoh_stat_tbl.java
@@ -36,7 +36,7 @@ public class Xoh_stat_tbl implements Rls_able {
conn.Stmt_delete(tbl_name).Exec_delete(); // always zap table
conn.Rls_reg(this);
}
- public void Create_tbl() {conn.Ddl_create_tbl(Dbmeta_tbl_itm.New(tbl_name, flds, Dbmeta_idx_itm.new_unique_by_tbl(tbl_name, "pkey", fld_page_id)));}
+ public void Create_tbl() {conn.Meta_tbl_create(Dbmeta_tbl_itm.New(tbl_name, flds, Dbmeta_idx_itm.new_unique_by_tbl(tbl_name, "pkey", fld_page_id)));}
public void Rls() {
stmt_insert = Db_stmt_.Rls(stmt_insert);
}
diff --git a/400_xowa/src/gplx/xowa/htmls/core/makes/Xoh_make_mgr_fxt.java b/400_xowa/src/gplx/xowa/htmls/core/makes/Xoh_make_mgr_fxt.java
index c30580875..d225b87a6 100644
--- a/400_xowa/src/gplx/xowa/htmls/core/makes/Xoh_make_mgr_fxt.java
+++ b/400_xowa/src/gplx/xowa/htmls/core/makes/Xoh_make_mgr_fxt.java
@@ -22,8 +22,8 @@ class Xoh_make_mgr_fxt {
private final Xoh_page hpg = new Xoh_page();
private Xoh_make_mgr hswap_mgr; private Xowe_wiki wiki;
public void Clear() {
- Xoae_app app = Xoa_app_fxt.app_();
- this.wiki = Xoa_app_fxt.wiki_tst_(app);
+ Xoae_app app = Xoa_app_fxt.Make__app__edit();
+ this.wiki = Xoa_app_fxt.Make__wiki__edit(app);
this.wiki.Init_by_wiki();
this.hswap_mgr = wiki.Html__hdump_mgr().Load_mgr().Make_mgr();
}
diff --git a/400_xowa/src/gplx/xowa/htmls/core/wkrs/Xoh_hdoc_ctx.java b/400_xowa/src/gplx/xowa/htmls/core/wkrs/Xoh_hdoc_ctx.java
index b57fd9e8f..2742ac74f 100644
--- a/400_xowa/src/gplx/xowa/htmls/core/wkrs/Xoh_hdoc_ctx.java
+++ b/400_xowa/src/gplx/xowa/htmls/core/wkrs/Xoh_hdoc_ctx.java
@@ -29,17 +29,17 @@ public class Xoh_hdoc_ctx {
public Xoa_app App() {return app;} private Xoa_app app;
public byte[] Wiki__domain_bry() {return wiki__domain_bry;} private byte[] wiki__domain_bry;
public Xow_ttl_parser Wiki__ttl_parser() {return wiki__ttl_parser;} private Xow_ttl_parser wiki__ttl_parser;
- public Xoa_url_parser Wiki__url_parser() {return wiki__url_parser;} private Xoa_url_parser wiki__url_parser;
+ public Xow_url_parser Wiki__url_parser() {return wiki__url_parser;} private Xow_url_parser wiki__url_parser;
public boolean Xwiki_mgr__missing(byte[] domain){return app.Xwiki_mgr__missing(domain);}
public Xou_cache_finder File__mgr() {return file__mgr;} private Xou_cache_finder file__mgr = Xou_cache_finder_.Noop;
- public Xof_url_bldr File__url_bldr() {return file__url_bldr;} private final Xof_url_bldr file__url_bldr = new Xof_url_bldr();
+ public Xof_url_bldr File__url_bldr() {return file__url_bldr;} private final Xof_url_bldr file__url_bldr = new Xof_url_bldr();
public byte[] Page__url() {return page__url;} private byte[] page__url;
- public Xoh_pool_mgr__hzip Pool_mgr__hzip() {return pool_mgr__hzip;} private final Xoh_pool_mgr__hzip pool_mgr__hzip = new Xoh_pool_mgr__hzip();
- public Xoh_pool_mgr__data Pool_mgr__data() {return pool_mgr__data;} private final Xoh_pool_mgr__data pool_mgr__data = new Xoh_pool_mgr__data();
- public Xoh_pool_mgr__wtr Pool_mgr__wtr() {return pool_mgr__wtr;} private final Xoh_pool_mgr__wtr pool_mgr__wtr = new Xoh_pool_mgr__wtr();
- public Xoh_stat_itm Hzip__stat() {return hzip__stat;} private final Xoh_stat_itm hzip__stat = new Xoh_stat_itm();
- public Xohz_tag_regy Hzip__xnde__regy() {return hzip__xnde__regy;} private final Xohz_tag_regy hzip__xnde__regy = Xohz_tag_regy_.New_dflt();
- public Xoh_xnde_dict_reg Hzip__xnde__dict() {return hzip__xnde__dict;} private final Xoh_xnde_dict_reg hzip__xnde__dict = new Xoh_xnde_dict_reg();
+ public Xoh_pool_mgr__hzip Pool_mgr__hzip() {return pool_mgr__hzip;} private final Xoh_pool_mgr__hzip pool_mgr__hzip = new Xoh_pool_mgr__hzip();
+ public Xoh_pool_mgr__data Pool_mgr__data() {return pool_mgr__data;} private final Xoh_pool_mgr__data pool_mgr__data = new Xoh_pool_mgr__data();
+ public Xoh_pool_mgr__wtr Pool_mgr__wtr() {return pool_mgr__wtr;} private final Xoh_pool_mgr__wtr pool_mgr__wtr = new Xoh_pool_mgr__wtr();
+ public Xoh_stat_itm Hzip__stat() {return hzip__stat;} private final Xoh_stat_itm hzip__stat = new Xoh_stat_itm();
+ public Xohz_tag_regy Hzip__xnde__regy() {return hzip__xnde__regy;} private final Xohz_tag_regy hzip__xnde__regy = Xohz_tag_regy_.New_dflt();
+ public Xoh_xnde_dict_reg Hzip__xnde__dict() {return hzip__xnde__dict;} private final Xoh_xnde_dict_reg hzip__xnde__dict = new Xoh_xnde_dict_reg();
public int Uid__lnki_nxt() {return ++uid__lnki;} private int uid__lnki;
public int Uid__gly__nxt() {return ++uid__gly;} private int uid__gly;
public boolean Mode_is_diff() {return mode_is_diff;} private boolean mode_is_diff; public void Mode_is_diff_(boolean v) {mode_is_diff = v;}
@@ -69,5 +69,5 @@ public class Xoh_hdoc_ctx {
this.uid__gly = -1;
}
public static final int Invalid = -1;
- private static final byte[] Fsys__res__drd = Bry_.new_a7("file:///android_asset/xowa/");
+ private static final byte[] Fsys__res__drd = Bry_.new_a7("file:///android_asset/xowa/");
}
diff --git a/400_xowa/src/gplx/xowa/htmls/core/wkrs/Xoh_hzip_fxt.java b/400_xowa/src/gplx/xowa/htmls/core/wkrs/Xoh_hzip_fxt.java
index d3b8f6e08..e3f2686a9 100644
--- a/400_xowa/src/gplx/xowa/htmls/core/wkrs/Xoh_hzip_fxt.java
+++ b/400_xowa/src/gplx/xowa/htmls/core/wkrs/Xoh_hzip_fxt.java
@@ -16,8 +16,7 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa.htmls.core.wkrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.htmls.*; import gplx.xowa.htmls.core.*;
-import gplx.langs.htmls.*;
-import gplx.xowa.htmls.core.hzips.*;
+import gplx.langs.htmls.*; import gplx.xowa.htmls.core.hzips.*;
public class Xoh_hzip_fxt {
private final Xowe_wiki wiki;
private final Xop_fxt parser_fxt = new Xop_fxt();
@@ -26,7 +25,6 @@ public class Xoh_hzip_fxt {
private final Xoh_page hpg = new Xoh_page();
private boolean mode_is_b256;
public Xoh_hzip_fxt() {
- gplx.core.envs.Op_sys.Cur_is_drd_(); // force drd mode; needed for img_bare
this.wiki = parser_fxt.Wiki();
Xoa_app_fxt.repo2_(parser_fxt.App(), wiki); // needed else will be old "mem/wiki/repo/trg/thumb/" instead of standard "mem/file/en.wikipedia.org/thumb/"
wiki.Html__hdump_mgr().Init_by_db(parser_fxt.Wiki());
@@ -39,7 +37,7 @@ public class Xoh_hzip_fxt {
public void Clear() {hpg.Clear();}
public void Init_wiki_installed(String domain) {parser_fxt.Init_xwiki_add_user_(domain);}
public Xowe_wiki Init_wiki_alias(String alias, String domain) {
- Xowe_wiki rv = Xoa_app_fxt.wiki_(parser_fxt.App(), domain);
+ Xowe_wiki rv = Xoa_app_fxt.Make__wiki__edit(parser_fxt.App(), domain);
parser_fxt.Wiki().Xwiki_mgr().Add_by_atrs(Bry_.new_u8(alias), Bry_.new_u8(domain), null);
return rv;
}
diff --git a/400_xowa/src/gplx/xowa/htmls/core/wkrs/Xoh_itm_parser_fxt.java b/400_xowa/src/gplx/xowa/htmls/core/wkrs/Xoh_itm_parser_fxt.java
index a84d38a9c..32e0aa01b 100644
--- a/400_xowa/src/gplx/xowa/htmls/core/wkrs/Xoh_itm_parser_fxt.java
+++ b/400_xowa/src/gplx/xowa/htmls/core/wkrs/Xoh_itm_parser_fxt.java
@@ -25,8 +25,8 @@ public abstract class Xoh_itm_parser_fxt {
protected byte[] src; protected int src_len;
protected final Xoh_hdoc_ctx hctx = new Xoh_hdoc_ctx();
public Xoh_itm_parser_fxt() {
- this.app = Xoa_app_fxt.app_();
- this.wiki = Xoa_app_fxt.wiki_tst_(app);
+ this.app = Xoa_app_fxt.Make__app__edit();
+ this.wiki = Xoa_app_fxt.Make__wiki__edit(app);
hctx.Init_by_app(app);
}
private Xoh_itm_parser Parser() {return Parser_get();}
diff --git a/400_xowa/src/gplx/xowa/htmls/core/wkrs/bfr_args/Bfr_arg__href.java b/400_xowa/src/gplx/xowa/htmls/core/wkrs/bfr_args/Bfr_arg__href.java
index fb447bd7b..aed6944d1 100644
--- a/400_xowa/src/gplx/xowa/htmls/core/wkrs/bfr_args/Bfr_arg__href.java
+++ b/400_xowa/src/gplx/xowa/htmls/core/wkrs/bfr_args/Bfr_arg__href.java
@@ -17,36 +17,36 @@ along with this program. If not, see .
*/
//namespace gplx.xowa.htmls.core.wkrs.bfr_args {
// using gplx.xowa.htmls.hrefs; using gplx.xowa.wikis.nss;
-// public class Bfr_arg__href : gplx.core.brys.Bfr_arg_clearable {
-// private byte[] val; private int val_bgn, val_end;
-// private int href_type;
-//// public void Clear() {
-//// href_type = Tid__null;
-//// }
-// public void Set_by_atr(gplx.langs.htmls.docs.Gfh_atr atr) {Set_by_mid(atr.Src(), atr.Val_bgn(), atr.Val_end());}
-// public void Set_by_mid(byte[] v, int bgn, int end) {this.val = v; this.href_type = Tid__mid; this.val_bgn = bgn; this.val_end = end;}
-// public void Set_by_raw(byte[] v) {this.val = v; this.href_type = Tid__raw;}
-// public void Set_by_page(byte[] v) {this.val = v; this.href_type = Tid__page;}
-// public void Set_by_file(byte[] v) {this.val = v; this.href_type = Tid__file;}
-// public void Bfr_arg__add(Bry_bfr bfr) {
-// if (val == null) return;
-// switch (href_type) {
-// case Tid__raw:
-// bfr.Add(val);
-// break;
-// case Tid__mid:
-// bfr.Add_mid(val, val_bgn, val_end);
-// break;
-// case Tid__page:
-// bfr.Add(Xoh_href_.Bry__wiki); // '/wiki/'
-// bfr.Add(val); // 'File:A.png'
-// break;
-// case Tid__file:
-// bfr.Add(Xoh_href_.Bry__wiki).Add(Xow_ns_.Bry__file).Add_byte_colon();
-// bfr.Add(val);
-// break;
-// }
-// }
-// private static final int Tid__null = 0, Tid__raw = 1, Tid__page = 2, Tid__file = 3, Tid__mid = 4;
-// }
+// public class Bfr_arg__href : gplx.core.brys.Bfr_arg_clearable {
+// private byte[] val; private int val_bgn, val_end;
+// private int href_type;
+//// public void Clear() {
+//// href_type = Tid__null;
+//// }
+// public void Set_by_atr(gplx.langs.htmls.docs.Gfh_atr atr) {Set_by_mid(atr.Src(), atr.Val_bgn(), atr.Val_end());}
+// public void Set_by_mid(byte[] v, int bgn, int end) {this.val = v; this.href_type = Tid__mid; this.val_bgn = bgn; this.val_end = end;}
+// public void Set_by_raw(byte[] v) {this.val = v; this.href_type = Tid__raw;}
+// public void Set_by_page(byte[] v) {this.val = v; this.href_type = Tid__page;}
+// public void Set_by_file(byte[] v) {this.val = v; this.href_type = Tid__file;}
+// public void Bfr_arg__add(Bry_bfr bfr) {
+// if (val == null) return;
+// switch (href_type) {
+// case Tid__raw:
+// bfr.Add(val);
+// break;
+// case Tid__mid:
+// bfr.Add_mid(val, val_bgn, val_end);
+// break;
+// case Tid__page:
+// bfr.Add(Xoh_href_.Bry__wiki); // '/wiki/'
+// bfr.Add(val); // 'File:A.png'
+// break;
+// case Tid__file:
+// bfr.Add(Xoh_href_.Bry__wiki).Add(Xow_ns_.Bry__file).Add_byte_colon();
+// bfr.Add(val);
+// break;
+// }
+// }
+// private static final int Tid__null = 0, Tid__raw = 1, Tid__page = 2, Tid__file = 3, Tid__mid = 4;
+// }
//}
diff --git a/400_xowa/src/gplx/xowa/htmls/core/wkrs/glys/Xoh_gly_grp_wtr.java b/400_xowa/src/gplx/xowa/htmls/core/wkrs/glys/Xoh_gly_grp_wtr.java
index aea5decf1..d0f050fa1 100644
--- a/400_xowa/src/gplx/xowa/htmls/core/wkrs/glys/Xoh_gly_grp_wtr.java
+++ b/400_xowa/src/gplx/xowa/htmls/core/wkrs/glys/Xoh_gly_grp_wtr.java
@@ -106,4 +106,4 @@ class Bfr_arg__hatr_gly_style implements Bfr_arg {
, Style__frag_2 = Bry_.new_a7("_width:")
, Style__frag_3 = Bry_.new_a7("px;")
;
-}
\ No newline at end of file
+}
diff --git a/400_xowa/src/gplx/xowa/htmls/core/wkrs/glys/Xoh_gly_hzip.java b/400_xowa/src/gplx/xowa/htmls/core/wkrs/glys/Xoh_gly_hzip.java
index 7d1d8e197..ad8545f2f 100644
--- a/400_xowa/src/gplx/xowa/htmls/core/wkrs/glys/Xoh_gly_hzip.java
+++ b/400_xowa/src/gplx/xowa/htmls/core/wkrs/glys/Xoh_gly_hzip.java
@@ -36,7 +36,6 @@ public class Xoh_gly_hzip implements Xoh_hzip_wkr, Gfo_poolable_itm {
boolean xtra_style = flag_bldr.Set_as_bool(Flag__ul__xtra_style , data.Xtra_style_exists());
flag_bldr.Set(Flag__gly_tid, data.Gly_tid());
int itms_len = data.Itms__len();
-
bfr.Add(hook);
Gfo_hzip_int_.Encode(1, bfr, flag_bldr.Encode());
Gfo_hzip_int_.Encode(1, bfr, ul_style_max_w);
diff --git a/400_xowa/src/gplx/xowa/htmls/core/wkrs/imgs/Xoh_img_bare_hzip.java b/400_xowa/src/gplx/xowa/htmls/core/wkrs/imgs/Xoh_img_bare_hzip.java
index cb0cc9896..c27c730b4 100644
--- a/400_xowa/src/gplx/xowa/htmls/core/wkrs/imgs/Xoh_img_bare_hzip.java
+++ b/400_xowa/src/gplx/xowa/htmls/core/wkrs/imgs/Xoh_img_bare_hzip.java
@@ -25,7 +25,6 @@ public class Xoh_img_bare_hzip implements Xoh_hzip_wkr, Gfo_poolable_itm {
public Gfo_poolable_itm Encode1(Xoh_hzip_bfr bfr, Xoh_hdoc_wkr hdoc_wkr, Xoh_hdoc_ctx hctx, Xoh_page hpg, boolean wkr_is_root, byte[] src, Object data_obj) {
Xoh_img_bare_data data = (Xoh_img_bare_data)data_obj;
int img_tid = flag_bldr.Set_as_int(Flag__img_tid , data.Img_tid());
-
bfr.Add(hook);
Gfo_hzip_int_.Encode(1, bfr, flag_bldr.Encode());
switch (img_tid) {
@@ -38,10 +37,8 @@ public class Xoh_img_bare_hzip implements Xoh_hzip_wkr, Gfo_poolable_itm {
}
public void Decode1(Bry_bfr bfr, Xoh_hdoc_wkr hdoc_wkr, Xoh_hdoc_ctx hctx, Xoh_page hpg, Bry_rdr rdr, byte[] src, int src_bgn, int src_end, Xoh_data_itm data_itm) {
Xoh_img_bare_data data = (Xoh_img_bare_data)data_itm; data.Clear();
-
int flag = rdr.Read_hzip_int(1); flag_bldr.Decode(flag);
int dir_tid = flag_bldr.Get_as_int(Flag__img_tid);
-
switch (dir_tid) {
case Xoh_img_bare_data.Img_tid__hiero:
int tag_0_bgn = rdr.Pos(), tag_0_end = rdr.Find_fwd_lr();
diff --git a/400_xowa/src/gplx/xowa/htmls/core/wkrs/imgs/Xoh_img_bare_hzip__tst.java b/400_xowa/src/gplx/xowa/htmls/core/wkrs/imgs/Xoh_img_bare_hzip__tst.java
index f7a18f1c0..24afd33fb 100644
--- a/400_xowa/src/gplx/xowa/htmls/core/wkrs/imgs/Xoh_img_bare_hzip__tst.java
+++ b/400_xowa/src/gplx/xowa/htmls/core/wkrs/imgs/Xoh_img_bare_hzip__tst.java
@@ -16,10 +16,18 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa.htmls.core.wkrs.imgs; import gplx.*; import gplx.xowa.*; import gplx.xowa.htmls.*; import gplx.xowa.htmls.core.*; import gplx.xowa.htmls.core.wkrs.*;
-import org.junit.*; import gplx.xowa.htmls.core.hzips.*;
+import org.junit.*; import gplx.core.envs.*; import gplx.xowa.htmls.core.hzips.*;
public class Xoh_img_bare_hzip__tst {
private final Xoh_hzip_fxt fxt = new Xoh_hzip_fxt().Init_mode_diff_y_();
- @Before public void Clear() {fxt.Clear();}
+ private int prv_os_tid = -1;
+ @Before public void init() {
+ fxt.Clear();
+ prv_os_tid = Op_sys.Cur().Tid();
+ Op_sys.Cur_(Op_sys.Drd.Tid()); // force drd mode; needed for img_bare
+ }
+ @After public void term() {
+ Op_sys.Cur_(prv_os_tid); // revert back to previous mode; otherwise global Op_sys is set to Drd which will cause other tests to fail (notably tidy)
+ }
@Test public void Hiero() {
fxt.Test__bicode
( "~(!~"
diff --git a/400_xowa/src/gplx/xowa/htmls/core/wkrs/imgs/Xoh_img_hzip.java b/400_xowa/src/gplx/xowa/htmls/core/wkrs/imgs/Xoh_img_hzip.java
index be065e38f..ce29d443b 100644
--- a/400_xowa/src/gplx/xowa/htmls/core/wkrs/imgs/Xoh_img_hzip.java
+++ b/400_xowa/src/gplx/xowa/htmls/core/wkrs/imgs/Xoh_img_hzip.java
@@ -45,7 +45,6 @@ public class Xoh_img_hzip implements Xoh_hzip_wkr, Gfo_poolable_itm {
boolean img__alt_diff_from_anch_title = data.Img_alt__diff__anch_title();
boolean file__src_exists = !img_xoimg.Val_dat_exists();
boolean anch_href_diff_file = !img_wo_anch && !Bry_.Match(anch_page.Val(), anch_page.Val_bgn(), anch_page.Val_end(), anch_href.Ttl_page_db());
-
boolean img__imap_exists = flag_bldr.Set_as_bool(Flag__img__imap_exists , data.Img_imap_idx() != -1);
flag_bldr.Set(Flag__img__wo_anch , img_wo_anch);
flag_bldr.Set(Flag__img__is_vid , data.Img_is_vid());
@@ -65,7 +64,6 @@ public class Xoh_img_hzip implements Xoh_hzip_wkr, Gfo_poolable_itm {
flag_bldr.Set(Flag__img__cls_tid , img_cls.Cls_tid());
flag_bldr.Set(Flag__anch__href_tid , anch_href.Tid());
// Tfds.Dbg(flag_bldr.Encode(), Array_.To_str(flag_bldr.Val_ary()));
-
if (wkr_is_root) bfr.Add(hook);
Gfo_hzip_int_.Encode(2, bfr, flag_bldr.Encode());
if (img_wo_anch) bfr.Add_hzip_mid(anch_page.Val(), anch_page.Val_bgn(), anch_page.Val_end());
@@ -116,7 +114,6 @@ public class Xoh_img_hzip implements Xoh_hzip_wkr, Gfo_poolable_itm {
}
public void Decode1(Bry_bfr bfr, Xoh_hdoc_wkr hdoc_wkr, Xoh_hdoc_ctx hctx, Xoh_page hpg, Bry_rdr rdr, byte[] src, int src_bgn, int src_end, Xoh_data_itm data_itm) {
Xoh_img_data data = (Xoh_img_data)data_itm; data.Clear();
-
int flag = rdr.Read_hzip_int(2); flag_bldr.Decode(flag);
boolean img_imap_exists = flag_bldr.Get_as_bool(Flag__img__imap_exists);
boolean img_wo_anch = flag_bldr.Get_as_bool(Flag__img__wo_anch);
@@ -154,7 +151,6 @@ public class Xoh_img_hzip implements Xoh_hzip_wkr, Gfo_poolable_itm {
byte[] ns_custom_bry = null;
if (anch__ns_is_custom) ns_custom_bry = rdr.Read_bry_to();
int img_w = -1, img_h = -1, file_time = -1, file_page = -1;
-
if (file__src_exists) {
img_w = rdr.Read_hzip_int(2) - Gfo_hzip_int_.Neg_1_adj;
img_h = rdr.Read_hzip_int(2) - Gfo_hzip_int_.Neg_1_adj;
@@ -181,7 +177,6 @@ public class Xoh_img_hzip implements Xoh_hzip_wkr, Gfo_poolable_itm {
img_cls_other_end = rdr.Find_fwd_lr();
}
int img_imap_idx = img_imap_exists ? rdr.Read_hzip_int(1) : -1;
-
// transform values
boolean anch_rel_is_nofollow = false;
if (anch__href_tid == Xoh_anch_href_data.Tid__inet) {// external links should get rel=nofollow
@@ -225,7 +220,6 @@ public class Xoh_img_hzip implements Xoh_hzip_wkr, Gfo_poolable_itm {
}
}
this.anch_href_bry = tmp_bfr.To_bry_and_clear();
-
// NOTE: src must go underneath ttl
Xof_url_bldr url_bldr = hctx.File__url_bldr();
url_bldr.Init_by_root(file__repo_is_local ? hctx.Fsys__file__wiki() : hctx.Fsys__file__comm(), Byte_ascii.Slash, false, false, Md5_depth);
diff --git a/400_xowa/src/gplx/xowa/htmls/core/wkrs/lnkes/Xoh_lnke_hzip.java b/400_xowa/src/gplx/xowa/htmls/core/wkrs/lnkes/Xoh_lnke_hzip.java
index 80441b7fa..4dea6aaf4 100644
--- a/400_xowa/src/gplx/xowa/htmls/core/wkrs/lnkes/Xoh_lnke_hzip.java
+++ b/400_xowa/src/gplx/xowa/htmls/core/wkrs/lnkes/Xoh_lnke_hzip.java
@@ -27,13 +27,11 @@ public class Xoh_lnke_hzip implements Xoh_hzip_wkr, Gfo_poolable_itm {
boolean auto_exists = flag_bldr.Set_as_bool(Flag__auto_exists , data.Auto_exists());
boolean capt_exists = flag_bldr.Set_as_bool(Flag__capt_exists , data.Capt_exists());
byte lnke_tid = flag_bldr.Set_as_byte(Flag__lnke_tid , data.Lnke_tid());
-
bfr.Add(hook);
bfr.Add_hzip_int(1, flag_bldr.Encode()); // add flag
bfr.Add_hzip_mid(src, data.Href_bgn(), data.Href_end()); // add href
if (auto_exists) bfr.Add_hzip_int(1, data.Auto_id()); // add autonumber
if (capt_exists) bfr.Add_hzip_mid(src, data.Capt_bgn(), data.Capt_end()); // add caption
-
hctx.Hzip__stat().Lnke_add(lnke_tid);
return this;
}
@@ -42,12 +40,10 @@ public class Xoh_lnke_hzip implements Xoh_hzip_wkr, Gfo_poolable_itm {
boolean auto_exists = flag_bldr.Get_as_bool(Flag__auto_exists);
boolean capt_exists = flag_bldr.Get_as_bool(Flag__capt_exists);
byte lnke_tid = flag_bldr.Get_as_byte(Flag__lnke_tid);
-
int href_bgn = rdr.Pos(); int href_end = rdr.Find_fwd_lr();
int auto_id = -1, capt_bgn = -1, capt_end = -1;
if (auto_exists) auto_id = rdr.Read_hzip_int(1);
if (capt_exists) {capt_bgn = rdr.Pos(); capt_end = rdr.Find_fwd_lr();}
-
Xoh_lnke_data data = (Xoh_lnke_data)data_itm;
data.Init_by_decode(lnke_tid, auto_id, href_bgn, href_end, capt_bgn, capt_end, capt_exists);
}
diff --git a/400_xowa/src/gplx/xowa/htmls/core/wkrs/lnkes/atrs/Xoh_href_hzip.java b/400_xowa/src/gplx/xowa/htmls/core/wkrs/lnkes/atrs/Xoh_href_hzip.java
index fab8adfec..4e62b79b1 100644
--- a/400_xowa/src/gplx/xowa/htmls/core/wkrs/lnkes/atrs/Xoh_href_hzip.java
+++ b/400_xowa/src/gplx/xowa/htmls/core/wkrs/lnkes/atrs/Xoh_href_hzip.java
@@ -18,83 +18,83 @@ along with this program. If not, see .
//namespace gplx.xowa.htmls.core.hzips.wkrs {
// using gplx.core.btries;
// using gplx.xowa.htmls.core.hzips;
-// public class Xoh_hzip_href {
-// public void Save(Bry_bfr bfr, Xoh_stat_itm stats, byte[] src, int src_len, int bgn, int pos, byte bgn_quote) {
-//// // ignore anchors; EX: "#a"
-//// int proto_bgn = pos;
-//// int proto_end = Bry_find_.Find_fwd(src, Byte_ascii.Colon, proto_bgn, src_len);
-//// byte proto_tid = Tid_proto_other;
-//// if (proto_end != Bry_find_.Not_found) {
-//// Object proto_obj = proto_trie.Match_exact(src, pos, proto_bgn);
-//// if (proto_obj != null)
-//// proto_tid = ((Byte_obj_val)proto_obj).Val();
-//// pos = Bry_find_.Find_fwd_while(src, proto_bgn + 1, src_len, Byte_ascii.Slash); // eat /; EX: http:// should position after /
-//// }
-//// // stats.Lnke_proto_reg(proto_tid, src, proto_bgn, proto_end);
-////
-//// int domain_bgn = pos;
-//// int domain_end = Bry_find_.Find_fwd(src, Byte_ascii.Slash, domain_bgn, src_len);
-//// if (domain_end == Bry_find_.Not_found) // href has no slash; assume entire String is domain EX: "www.a.org"
-//// domain_end = Bry_find_.Find_fwd(src, bgn_quote, pos, src_len);
-////
-//// int tld_pos = Bry_find_.Find_bwd(src, Byte_ascii.Dot, domain_bgn, src_len);
-//// byte tld_tid = Tid_tld_other;
-//// if (tld_pos != Bry_find_.Not_found) {
-//// Object tld_obj = tld_trie.Match_exact(src, domain_bgn, domain_end);
-//// if (tld_obj != null)
-//// tld_tid = ((Byte_obj_val)tld_obj).Val();
-//// pos = Bry_find_.Find_fwd_while(src, domain_bgn + 1, src_len, Byte_ascii.Slash); // eat /; EX: http:// should position after /
-//// }
-//// // stats.Lnke_tld_reg(tld_tid, src, domain_bgn, domain_end);
-// }
-// public static final byte // 2
-// Tid_proto_other = 0
-// , Tid_proto_http = 1
-// , Tid_proto_https = 2
-// ;
-// public static final byte // 3
-// Tid_tld_other = 0
-// , Tid_tld_com = 1
-// , Tid_tld_org = 2
-// , Tid_tld_net = 3
-// , Tid_tld_gov = 4
-// ;
-// public static final byte // 3
-// Tid_ext_other = 0
-// , Tid_ext_none = 1
-// , Tid_ext_htm = 2
-// , Tid_ext_html = 3
-// , Tid_ext_php = 4
-// , Tid_ext_jsp = 5
-// , Tid_ext_asp = 6
-// , Tid_ext_aspx = 7
-// ;
-//// private static final Btrie_slim_mgr proto_trie = Btrie_slim_mgr.ci_a7()
-//// .Add_str_byte("http", Tid_proto_http)
-//// .Add_str_byte("https", Tid_proto_http)
-//// ;
-//// private static final Btrie_slim_mgr tld_trie = Btrie_slim_mgr.ci_a7()
-//// .Add_str_byte("com", Tid_tld_com)
-//// .Add_str_byte("org", Tid_tld_org)
-//// .Add_str_byte("net", Tid_tld_net)
-//// .Add_str_byte("gov", Tid_tld_gov)
-//// ;
-//// private static final Btrie_slim_mgr ext_trie = Btrie_slim_mgr.ci_a7()
-//// .Add_str_byte("htm", Tid_ext_htm)
-//// .Add_str_byte("html", Tid_ext_html)
-//// .Add_str_byte("php", Tid_ext_php)
-//// .Add_str_byte("jsp", Tid_ext_jsp)
-//// .Add_str_byte("asp", Tid_ext_asp)
-//// .Add_str_byte("aspx", Tid_ext_aspx)
-//// ;
-// // e // xwiki [[simple:xx
-// // "Descriptor Terms (Feature Types)"
-// /*
-// 0: proto,tld,ext
-// 1-n: domain
-// n: 0: domain_end
-// n: url remainder
-// n: 0: url_end
-// */
-// }
+// public class Xoh_hzip_href {
+// public void Save(Bry_bfr bfr, Xoh_stat_itm stats, byte[] src, int src_len, int bgn, int pos, byte bgn_quote) {
+//// // ignore anchors; EX: "#a"
+//// int proto_bgn = pos;
+//// int proto_end = Bry_find_.Find_fwd(src, Byte_ascii.Colon, proto_bgn, src_len);
+//// byte proto_tid = Tid_proto_other;
+//// if (proto_end != Bry_find_.Not_found) {
+//// Object proto_obj = proto_trie.Match_exact(src, pos, proto_bgn);
+//// if (proto_obj != null)
+//// proto_tid = ((Byte_obj_val)proto_obj).Val();
+//// pos = Bry_find_.Find_fwd_while(src, proto_bgn + 1, src_len, Byte_ascii.Slash); // eat /; EX: http:// should position after /
+//// }
+//// // stats.Lnke_proto_reg(proto_tid, src, proto_bgn, proto_end);
+////
+//// int domain_bgn = pos;
+//// int domain_end = Bry_find_.Find_fwd(src, Byte_ascii.Slash, domain_bgn, src_len);
+//// if (domain_end == Bry_find_.Not_found) // href has no slash; assume entire String is domain EX: "www.a.org"
+//// domain_end = Bry_find_.Find_fwd(src, bgn_quote, pos, src_len);
+////
+//// int tld_pos = Bry_find_.Find_bwd(src, Byte_ascii.Dot, domain_bgn, src_len);
+//// byte tld_tid = Tid_tld_other;
+//// if (tld_pos != Bry_find_.Not_found) {
+//// Object tld_obj = tld_trie.Match_exact(src, domain_bgn, domain_end);
+//// if (tld_obj != null)
+//// tld_tid = ((Byte_obj_val)tld_obj).Val();
+//// pos = Bry_find_.Find_fwd_while(src, domain_bgn + 1, src_len, Byte_ascii.Slash); // eat /; EX: http:// should position after /
+//// }
+//// // stats.Lnke_tld_reg(tld_tid, src, domain_bgn, domain_end);
+// }
+// public static final byte // 2
+// Tid_proto_other = 0
+// , Tid_proto_http = 1
+// , Tid_proto_https = 2
+// ;
+// public static final byte // 3
+// Tid_tld_other = 0
+// , Tid_tld_com = 1
+// , Tid_tld_org = 2
+// , Tid_tld_net = 3
+// , Tid_tld_gov = 4
+// ;
+// public static final byte // 3
+// Tid_ext_other = 0
+// , Tid_ext_none = 1
+// , Tid_ext_htm = 2
+// , Tid_ext_html = 3
+// , Tid_ext_php = 4
+// , Tid_ext_jsp = 5
+// , Tid_ext_asp = 6
+// , Tid_ext_aspx = 7
+// ;
+//// private static final Btrie_slim_mgr proto_trie = Btrie_slim_mgr.ci_a7()
+//// .Add_str_byte("http", Tid_proto_http)
+//// .Add_str_byte("https", Tid_proto_http)
+//// ;
+//// private static final Btrie_slim_mgr tld_trie = Btrie_slim_mgr.ci_a7()
+//// .Add_str_byte("com", Tid_tld_com)
+//// .Add_str_byte("org", Tid_tld_org)
+//// .Add_str_byte("net", Tid_tld_net)
+//// .Add_str_byte("gov", Tid_tld_gov)
+//// ;
+//// private static final Btrie_slim_mgr ext_trie = Btrie_slim_mgr.ci_a7()
+//// .Add_str_byte("htm", Tid_ext_htm)
+//// .Add_str_byte("html", Tid_ext_html)
+//// .Add_str_byte("php", Tid_ext_php)
+//// .Add_str_byte("jsp", Tid_ext_jsp)
+//// .Add_str_byte("asp", Tid_ext_asp)
+//// .Add_str_byte("aspx", Tid_ext_aspx)
+//// ;
+// // e // xwiki [[simple:xx
+// // "Descriptor Terms (Feature Types)"
+// /*
+// 0: proto,tld,ext
+// 1-n: domain
+// n: 0: domain_end
+// n: url remainder
+// n: 0: url_end
+// */
+// }
//}
diff --git a/400_xowa/src/gplx/xowa/htmls/core/wkrs/lnkis/Xoh_lnki_hzip.java b/400_xowa/src/gplx/xowa/htmls/core/wkrs/lnkis/Xoh_lnki_hzip.java
index e409dca4b..1c305d255 100644
--- a/400_xowa/src/gplx/xowa/htmls/core/wkrs/lnkis/Xoh_lnki_hzip.java
+++ b/400_xowa/src/gplx/xowa/htmls/core/wkrs/lnkis/Xoh_lnki_hzip.java
@@ -40,7 +40,6 @@ public class Xoh_lnki_hzip implements Xoh_hzip_wkr, Gfo_poolable_itm {
flag_bldr.Set_as_int(Flag__capt_cs0_tid , data.Capt_itm().Cs0_tid());
byte text_type = flag_bldr.Set_as_byte(Flag__text_type , data.Text_tid());
// Tfds.Dbg(flag_bldr.Encode(), Array_.To_str(flag_bldr.Val_ary()), text_type);
-
int bfr_bgn = bfr.Len();
int flag = flag_bldr.Encode();
bfr.Add(hook);
@@ -60,7 +59,6 @@ public class Xoh_lnki_hzip implements Xoh_hzip_wkr, Gfo_poolable_itm {
break;
}
if (title_tid == Xoh_lnki_data.Title__diff) bfr.Add_hzip_mid(src, data.Title_bgn(), data.Title_end());
-
hctx.Hzip__stat().Lnki_add(data.Src_end() - data.Src_bgn(), bfr.Len() - bfr_bgn, flag);
return this;
}
@@ -77,7 +75,6 @@ public class Xoh_lnki_hzip implements Xoh_hzip_wkr, Gfo_poolable_itm {
int capt_cs0_tid = flag_bldr.Get_as_int(Flag__capt_cs0_tid);
byte text_type = flag_bldr.Get_as_byte(Flag__text_type);
// Tfds.Dbg(cls_tid, title_missing_ns, ttl_is_main_page, ns_custom_exists, title_tid, capt_has_ns, ns_is_not_main, href_type, capt_cs0_tid, text_type);
-
int site_bgn = -1, site_end = -1; if (href_type == Xoh_anch_href_data.Tid__site) {site_bgn = rdr.Pos(); site_end = rdr.Find_fwd_lr();}
int ns_id = ns_is_not_main ? Xoh_lnki_dict_.Ns_decode(rdr) : Xow_ns_.Tid__main;
byte[] ns_custom_bry = ns_custom_exists ? rdr.Read_bry_to() : null;
@@ -143,7 +140,6 @@ public class Xoh_lnki_hzip implements Xoh_hzip_wkr, Gfo_poolable_itm {
break;
}
}
-
// gen html
bfr.Add(Gfh_bldr_.Bry__a_lhs_w_href);
switch (href_type) {
diff --git a/400_xowa/src/gplx/xowa/htmls/core/wkrs/lnkis/anchs/Xoh_anch_capt_itm_tst.java b/400_xowa/src/gplx/xowa/htmls/core/wkrs/lnkis/anchs/Xoh_anch_capt_itm_tst.java
index 2a8e647cf..70b47d9bc 100644
--- a/400_xowa/src/gplx/xowa/htmls/core/wkrs/lnkis/anchs/Xoh_anch_capt_itm_tst.java
+++ b/400_xowa/src/gplx/xowa/htmls/core/wkrs/lnkis/anchs/Xoh_anch_capt_itm_tst.java
@@ -36,8 +36,8 @@ class Xoh_anch_capt_itm_fxt {
private final Xoh_anch_capt_itm matcher = new Xoh_anch_capt_itm();
private final Bry_rdr rdr = new Bry_rdr();
public Xoh_anch_capt_itm_fxt() {
- Xoae_app app = Xoa_app_fxt.app_();
- this.wiki = Xoa_app_fxt.wiki_tst_(app);
+ Xoae_app app = Xoa_app_fxt.Make__app__edit();
+ this.wiki = Xoa_app_fxt.Make__wiki__edit(app);
}
public Xow_wiki Wiki() {return wiki;} private Xow_wiki wiki;
public void Test__match(String page_str, String capt_str, int expd_tid) {Test__match(page_str, capt_str, expd_tid, -1);}
diff --git a/400_xowa/src/gplx/xowa/htmls/core/wkrs/lnkis/htmls/Xoh_file_wtr__image__tst.java b/400_xowa/src/gplx/xowa/htmls/core/wkrs/lnkis/htmls/Xoh_file_wtr__image__tst.java
index b5644a35e..b39b4d62c 100644
--- a/400_xowa/src/gplx/xowa/htmls/core/wkrs/lnkis/htmls/Xoh_file_wtr__image__tst.java
+++ b/400_xowa/src/gplx/xowa/htmls/core/wkrs/lnkis/htmls/Xoh_file_wtr__image__tst.java
@@ -293,7 +293,7 @@ public class Xoh_file_wtr__image__tst {
( ""
));
}
- @Test public void Link__lc() { // links to items in same namespace should automatically title-case words; DATE:2016-01-11
+ @Test public void Link__lc() { // links to items in same Srch_rslt_cbk should automatically title-case words; DATE:2016-01-11
fxt.Init_xwiki_add_wiki_and_user_("en", "en.wikipedia.org");
fxt.Test_parse_page_wiki_str
( "[[File:A.png|11px|link=en:Help:a?b=c#d|abc]]", String_.Concat_lines_nl_skip_last
diff --git a/400_xowa/src/gplx/xowa/htmls/core/wkrs/lnkis/htmls/Xoh_lnki_title_fmtr.java b/400_xowa/src/gplx/xowa/htmls/core/wkrs/lnkis/htmls/Xoh_lnki_title_fmtr.java
index b9d104a13..7ebcc1462 100644
--- a/400_xowa/src/gplx/xowa/htmls/core/wkrs/lnkis/htmls/Xoh_lnki_title_fmtr.java
+++ b/400_xowa/src/gplx/xowa/htmls/core/wkrs/lnkis/htmls/Xoh_lnki_title_fmtr.java
@@ -48,7 +48,7 @@ public class Xoh_lnki_title_fmtr implements gplx.core.brys.Bfr_arg {
default: // all other tkns, just iterate over subs for txt tkns
if (tkn.Tkn_tid() == Xop_tkn_itm_.Tid_xnde) {
Xop_xnde_tkn xnde = (Xop_xnde_tkn)tkn;
- if (xnde.Tag().Id() == Xop_xnde_tag_.Tid_ref) { // if ref, disable tkn
+ if (xnde.Tag().Id() == Xop_xnde_tag_.Tid__ref) { // if ref, disable tkn
gplx.xowa.xtns.cites.Ref_nde ref_xnde = (gplx.xowa.xtns.cites.Ref_nde)xnde.Xnde_xtn();
ref_xnde.Exists_in_lnki_title_(true); // ref found during html_title_wkr's generation; mark ref; will be ignored by references_html_wtr later; DATE:2014-03-05
}
diff --git a/400_xowa/src/gplx/xowa/htmls/core/wkrs/lnkis/htmls/Xoh_lnki_wtr.java b/400_xowa/src/gplx/xowa/htmls/core/wkrs/lnkis/htmls/Xoh_lnki_wtr.java
index 8adea471d..29c86c7ed 100644
--- a/400_xowa/src/gplx/xowa/htmls/core/wkrs/lnkis/htmls/Xoh_lnki_wtr.java
+++ b/400_xowa/src/gplx/xowa/htmls/core/wkrs/lnkis/htmls/Xoh_lnki_wtr.java
@@ -88,7 +88,7 @@ public class Xoh_lnki_wtr {
private void Write_plain(Bry_bfr bfr, Xoh_wtr_ctx hctx, byte[] src, Xop_lnki_tkn lnki, Xoa_ttl lnki_ttl, Xop_lnki_caption_wtr caption_wkr) {
byte[] ttl_bry = lnki.Ttl_ary();
if (Bry_.Len_eq_0(ttl_bry)) ttl_bry = lnki_ttl.Full_txt_raw(); // NOTE: handles ttls like [[fr:]] and [[:fr;]] which have an empty Page_txt, but a valued Full_txt_raw
- if (Bry_.Eq(lnki_ttl.Full_txt(), page.Ttl().Full_txt())) { // lnki is same as pagename; bold; SEE: Month widget on day pages will bold current day; PAGE:en.w:January 1
+ if (Bry_.Eq(lnki_ttl.Full_txt_by_orig(), page.Ttl().Full_txt_by_orig())) { // lnki is same as pagename; bold; SEE: Month widget on day pages will bold current day; PAGE:en.w:January 1
if (lnki_ttl.Anch_bgn() == -1 && Bry_.Eq(lnki_ttl.Wik_txt(), page.Ttl().Wik_txt())) { // only bold if lnki is not pointing to anchor on same page; PAGE:en.w:Comet; [[Comet#Physical characteristics|ion tail]]
bfr.Add(Gfh_tag_.B_lhs);
Write_caption(bfr, ctx, hctx, src, lnki, ttl_bry, true, caption_wkr);
@@ -109,13 +109,19 @@ public class Xoh_lnki_wtr {
.Add_int_variable(lnki_html_id); // '1234'
}
if (cfg.Lnki__title()) {
- byte[] title_bry = lnki_ttl.Full_txt(); // NOTE: use Full_txt to (a) replace underscores with spaces; (b) get title casing; EX:[[roman_empire]] -> Roman empire; (c) include ns_name; EX: Help:A -> "title='Help:A'" not "title='A'"; DATE:2015-11-16
+ byte[] title_bry = lnki_ttl.Full_txt_w_ttl_case(); // NOTE: use Full_txt to (a) replace underscores with spaces; (b) get title casing; EX:[[roman_empire]] -> Roman empire; (c) include ns_name; EX: Help:A -> "title='Help:A'" not "title='A'"; DATE:2015-11-16
int title_len = title_bry.length;
if (title_len > 0) {
bfr .Add(Gfh_bldr_.Bry__title__nth); // '" title=\"'
Gfh_utl.Escape_html_to_bfr(bfr, title_bry, 0, title_len, Bool_.N, Bool_.N, Bool_.N, Bool_.Y, Bool_.N); // escape title; DATE:2014-10-27
}
}
+ if (wiki.Domain_tid() == gplx.xowa.wikis.domains.Xow_domain_tid_.Int__other) {
+ if (lnki.Target != null) {
+ bfr.Add_str_a7("\" target=\"");
+ bfr.Add(lnki.Target);
+ }
+ }
if (!hctx.Mode_is_hdump()) { // don't write visited for hdump
if (cfg.Lnki__visited()
&& history_mgr.Has(wiki.Domain_bry(), ttl_bry))
@@ -172,8 +178,8 @@ public class Xoh_lnki_wtr {
}
public static byte[] Lnki_cls_visited(gplx.xowa.users.history.Xou_history_mgr history_mgr, byte[] wiki_key, byte[] page_ttl) {
return history_mgr.Has(wiki_key, page_ttl) ? Lnki_cls_visited_bry : Bry_.Empty;
- } private static final byte[] Lnki_cls_visited_bry = Bry_.new_a7(" class=\"xowa-visited\"");
- private static final byte[] Bry_xowa_visited = Bry_.new_a7("\" class=\"xowa-visited");
+ } private static final byte[] Lnki_cls_visited_bry = Bry_.new_a7(" class=\"xowa-visited\"");
+ private static final byte[] Bry_xowa_visited = Bry_.new_a7("\" class=\"xowa-visited");
public static final int Lnki_id_ignore = 0, Lnki_id_min = 1;
}
interface Xop_lnki_caption_wtr {
diff --git a/400_xowa/src/gplx/xowa/htmls/core/wkrs/thms/Xoh_thm_hzip.java b/400_xowa/src/gplx/xowa/htmls/core/wkrs/thms/Xoh_thm_hzip.java
index a4daae48b..c8e108cb4 100644
--- a/400_xowa/src/gplx/xowa/htmls/core/wkrs/thms/Xoh_thm_hzip.java
+++ b/400_xowa/src/gplx/xowa/htmls/core/wkrs/thms/Xoh_thm_hzip.java
@@ -61,7 +61,6 @@ public class Xoh_thm_hzip implements Xoh_hzip_wkr, Gfo_poolable_itm {
capt_1.Mid_(src, capt_1_bgn, capt_1_end);
byte[] capt_2_bry = capt_2_exists ? rdr.Read_bry_to() : Bry_.Empty;
byte[] capt_3_bry = capt_3_exists ? rdr.Read_bry_to() : Bry_.Empty;
-
Xoh_img_data img_data = (Xoh_img_data)hctx.Pool_mgr__data().Get_by_tid(Xoh_hzip_dict_.Tid__img);
img_hzip.Decode1(bfr, hdoc_wkr, hctx, hpg, rdr, src, rdr.Pos(), src_end, img_data);
img_hzip.Wtr().Init_by_decode(hpg, hctx, src, img_data);
diff --git a/400_xowa/src/gplx/xowa/htmls/core/wkrs/thms/Xoh_thm_hzip_tst.java b/400_xowa/src/gplx/xowa/htmls/core/wkrs/thms/Xoh_thm_hzip_tst.java
index 3f13417de..5a75478b8 100644
--- a/400_xowa/src/gplx/xowa/htmls/core/wkrs/thms/Xoh_thm_hzip_tst.java
+++ b/400_xowa/src/gplx/xowa/htmls/core/wkrs/thms/Xoh_thm_hzip_tst.java
@@ -302,16 +302,16 @@ public class Xoh_thm_hzip_tst {
, ""
));
}
- @Test public void Dump() {
- Xowe_wiki en_d = fxt.Init_wiki_alias("wikt", "en.wiktionary.org");
- gplx.xowa.wikis.nss.Xow_ns_mgr ns_mgr = en_d.Ns_mgr();
- ns_mgr.Ns_main().Case_match_(gplx.xowa.wikis.nss.Xow_ns_case_.Tid__all);
-
- fxt.Wiki().Ns_mgr().Aliases_add(gplx.xowa.wikis.nss.Xow_ns_.Tid__portal, "WP");
- fxt.Wiki().Ns_mgr().Init();
-
- fxt.Init_mode_is_b256_(Bool_.N);
- fxt.Exec_write_to_fsys(Io_url_.new_dir_("J:\\xowa\\research\\html\\"), "debug.html");
- fxt.Init_mode_is_b256_(Bool_.N);
- }
+// @Test public void Dump() {
+// Xowe_wiki en_d = fxt.Init_wiki_alias("wikt", "en.wiktionary.org");
+// gplx.xowa.wikis.nss.Xow_ns_mgr ns_mgr = en_d.Ns_mgr();
+// ns_mgr.Ns_main().Case_match_(gplx.xowa.wikis.nss.Xow_ns_case_.Tid__all);
+//
+// fxt.Wiki().Ns_mgr().Aliases_add(gplx.xowa.wikis.nss.Xow_ns_.Tid__portal, "WP");
+// fxt.Wiki().Ns_mgr().Init();
+//
+// fxt.Init_mode_is_b256_(Bool_.N);
+// fxt.Exec_write_to_fsys(Io_url_.new_dir_("J:\\xowa\\research\\html\\"), "debug.html");
+// fxt.Init_mode_is_b256_(Bool_.N);
+// }
}
diff --git a/400_xowa/src/gplx/xowa/htmls/core/wkrs/thms/divs/Xoh_thm_caption_data.java b/400_xowa/src/gplx/xowa/htmls/core/wkrs/thms/divs/Xoh_thm_caption_data.java
index 499822c62..33a15097f 100644
--- a/400_xowa/src/gplx/xowa/htmls/core/wkrs/thms/divs/Xoh_thm_caption_data.java
+++ b/400_xowa/src/gplx/xowa/htmls/core/wkrs/thms/divs/Xoh_thm_caption_data.java
@@ -72,4 +72,4 @@ public class Xoh_thm_caption_data {
}
public void Capt_3_(int bgn, int end) {this.capt_3_bgn = bgn; this.capt_3_end = end;}
public static final byte[] Bry__div_1_tail_bgn = Bry_.new_a7("\n");
-}
\ No newline at end of file
+}
diff --git a/400_xowa/src/gplx/xowa/htmls/core/wkrs/thms/divs/Xoh_thm_magnify_data.java b/400_xowa/src/gplx/xowa/htmls/core/wkrs/thms/divs/Xoh_thm_magnify_data.java
index 8dd7dc8bc..8cfa3c367 100644
--- a/400_xowa/src/gplx/xowa/htmls/core/wkrs/thms/divs/Xoh_thm_magnify_data.java
+++ b/400_xowa/src/gplx/xowa/htmls/core/wkrs/thms/divs/Xoh_thm_magnify_data.java
@@ -43,4 +43,4 @@ public class Xoh_thm_magnify_data {
return true;
}
private static final byte[] Cls__magnify = Bry_.new_a7("magnify");
-}
\ No newline at end of file
+}
diff --git a/400_xowa/src/gplx/xowa/htmls/heads/Xoh_head_mgr.java b/400_xowa/src/gplx/xowa/htmls/heads/Xoh_head_mgr.java
index a395e83ff..cd897247a 100644
--- a/400_xowa/src/gplx/xowa/htmls/heads/Xoh_head_mgr.java
+++ b/400_xowa/src/gplx/xowa/htmls/heads/Xoh_head_mgr.java
@@ -62,7 +62,7 @@ public class Xoh_head_mgr implements gplx.core.brys.Bfr_arg {
if (page.Hdr_mgr().Toc_enabled()) itm__toc.Enabled_y_();
if (wiki.Html_mgr().Head_mgr().Itm__top_icon().Enabled_y()) itm__top_icon.Enabled_y_();
if (wiki.Html_mgr().Head_mgr().Itm__title_rewrite().Enabled_y()) itm__title_rewrite.Enabled_y_();
- if (app.Gui_mgr().Search_suggest_mgr().Enabled()) itm__search_suggest.Enabled_y_();
+ if (app.Gui_mgr().Search_cfg().Enabled()) itm__search_suggest.Enabled_y_();
itm__css.Enabled_y_();
itm__globals.Enabled_y_(); // for now, always mark this and rest as exists; DATE:2014-06-09
itm__collapsible.Enabled_y_();
diff --git a/400_xowa/src/gplx/xowa/htmls/heads/Xow_fragment_mgr_tst.java b/400_xowa/src/gplx/xowa/htmls/heads/Xow_fragment_mgr_tst.java
index 5712ce8ee..5b6d058aa 100644
--- a/400_xowa/src/gplx/xowa/htmls/heads/Xow_fragment_mgr_tst.java
+++ b/400_xowa/src/gplx/xowa/htmls/heads/Xow_fragment_mgr_tst.java
@@ -43,8 +43,8 @@ public class Xow_fragment_mgr_tst {
class Xow_fragment_mgr_fxt {
public void Clear() {
if (wiki == null) {
- Xoae_app app = Xoa_app_fxt.app_();
- wiki = Xoa_app_fxt.wiki_tst_(app);
+ Xoae_app app = Xoa_app_fxt.Make__app__edit();
+ wiki = Xoa_app_fxt.Make__wiki__edit(app);
}
} private Xowe_wiki wiki;
public Xol_lang_itm Make_lang(String key) {return wiki.Appe().Lang_mgr().Get_by_or_new(Bry_.new_a7(key));}
@@ -54,4 +54,4 @@ class Xow_fragment_mgr_fxt {
byte[] actl = (byte[])GfoInvkAble_.InvkCmd(wiki.Fragment_mgr(), key);
Tfds.Eq_str_lines(expd, String_.new_u8(actl));
}
-}
\ No newline at end of file
+}
diff --git a/400_xowa/src/gplx/xowa/htmls/hrefs/Xoh_href_parser.java b/400_xowa/src/gplx/xowa/htmls/hrefs/Xoh_href_parser.java
index 06a047232..40183df83 100644
--- a/400_xowa/src/gplx/xowa/htmls/hrefs/Xoh_href_parser.java
+++ b/400_xowa/src/gplx/xowa/htmls/hrefs/Xoh_href_parser.java
@@ -64,7 +64,7 @@ public class Xoh_href_parser {
if (ttl == null) // invalid ttl; null out page;
tmp_page = Bry_.Empty;
else
- tmp_page = ttl.Full_txt();
+ tmp_page = ttl.Full_txt_w_ttl_case();
}
}
}
@@ -73,7 +73,7 @@ public class Xoh_href_parser {
}
}
private static final byte Seg_wiki_tid = 0, Seg_site_tid = 1, Seg_xcmd_tid = 2;
- private static final Btrie_slim_mgr btrie = Btrie_slim_mgr.ci_a7() // NOTE:ci.ascii:XO_const.en; /wiki/, /site/ etc.
+ private static final Btrie_slim_mgr btrie = Btrie_slim_mgr.ci_a7() // NOTE:ci.ascii:XO_const.en; /wiki/, /site/ etc.
.Add_bry_tid(Xoh_href_.Bry__wiki, Seg_wiki_tid)
.Add_bry_tid(Xoh_href_.Bry__site, Seg_site_tid)
.Add_bry_tid(Xoh_href_.Bry__xcmd, Seg_xcmd_tid);
diff --git a/400_xowa/src/gplx/xowa/htmls/hrefs/Xoh_href_parser_tst.java b/400_xowa/src/gplx/xowa/htmls/hrefs/Xoh_href_parser_tst.java
index 8eb2fb7c8..163944cee 100644
--- a/400_xowa/src/gplx/xowa/htmls/hrefs/Xoh_href_parser_tst.java
+++ b/400_xowa/src/gplx/xowa/htmls/hrefs/Xoh_href_parser_tst.java
@@ -18,7 +18,7 @@ along with this program. If not, see .
package gplx.xowa.htmls.hrefs; import gplx.*; import gplx.xowa.*; import gplx.xowa.htmls.*;
import org.junit.*; import gplx.xowa.apps.urls.*; import gplx.xowa.wikis.nss.*;
public class Xoh_href_parser_tst {
- private final Xoh_href_parser_fxt fxt = new Xoh_href_parser_fxt();
+ private final Xoh_href_parser_fxt fxt = new Xoh_href_parser_fxt();
@Test public void Wiki__basic() {
fxt.Run_parse_by_href("/wiki/A").Chk_tid(Xoa_url_.Tid_page).Chk_to_str("en.wikipedia.org/wiki/A").Chk_wiki("en.wikipedia.org").Chk_page("A");
}
@@ -115,10 +115,10 @@ public class Xoh_href_parser_tst {
// ;
// }
}
-class Xoh_href_parser_fxt extends Xoa_url_parser_fxt { private final Xoh_href_parser href_parser = new Xoh_href_parser();
+class Xoh_href_parser_fxt extends Xow_url_parser_fxt { private final Xoh_href_parser href_parser = new Xoh_href_parser();
public Xoh_href_parser_fxt Run_parse_by_href(String raw) {
href_parser.Parse_as_url(actl_url, Bry_.new_u8(raw), cur_wiki, Bry__page_1);
return this;
}
- private static final byte[] Bry__page_1 = Bry_.new_a7("Page 1");
+ private static final byte[] Bry__page_1 = Bry_.new_a7("Page 1");
}
diff --git a/400_xowa/src/gplx/xowa/htmls/hrefs/Xoh_href_wtr_tst.java b/400_xowa/src/gplx/xowa/htmls/hrefs/Xoh_href_wtr_tst.java
index 9e8373ee5..a14a0cf29 100644
--- a/400_xowa/src/gplx/xowa/htmls/hrefs/Xoh_href_wtr_tst.java
+++ b/400_xowa/src/gplx/xowa/htmls/hrefs/Xoh_href_wtr_tst.java
@@ -39,8 +39,8 @@ class Xoh_href_wtr_fxt {
private final Bry_bfr tmp_bfr = Bry_bfr.reset_(255);
private final Xoh_href_wtr href_wtr = new Xoh_href_wtr();
public Xoh_href_wtr_fxt() {
- this.app = Xoa_app_fxt.app_();
- this.wiki = Xoa_app_fxt.wiki_tst_(app);
+ this.app = Xoa_app_fxt.Make__app__edit();
+ this.wiki = Xoa_app_fxt.Make__wiki__edit(app);
wiki.Xwiki_mgr().Add_by_csv(Bry_.new_a7("1|wikt|en.wiktionary.org"));
app.Usere().Wiki().Xwiki_mgr().Add_by_csv(Bry_.new_a7("1|en.wiktionary.org|en.wiktionary.org"));
}
diff --git a/400_xowa/src/gplx/xowa/htmls/js/Xoh_js_cbk.java b/400_xowa/src/gplx/xowa/htmls/js/Xoh_js_cbk.java
index 403061b3b..63e206a14 100644
--- a/400_xowa/src/gplx/xowa/htmls/js/Xoh_js_cbk.java
+++ b/400_xowa/src/gplx/xowa/htmls/js/Xoh_js_cbk.java
@@ -25,7 +25,7 @@ public class Xoh_js_cbk implements GfoInvkAble {
private Xoae_app app;
private Xog_html_itm html_itm;
private Xop_root_tkn root = new Xop_root_tkn();
- private final Bry_bfr bfr = Bry_bfr.reset_(255);
+ private final Bry_bfr bfr = Bry_bfr.reset_(255);
public Xoh_js_cbk(Xog_html_itm html_itm) {this.html_itm = html_itm; this.app = html_itm.Owner_tab().Tab_mgr().Win().App();}
private String Xowa_exec_test(GfoMsg m) { // concat args with pipe; EX: xowa_exec('proc', 'arg0', 'arg1'); -> proc|arg0|arg1
bfr.Clear();
@@ -91,7 +91,7 @@ public class Xoh_js_cbk implements GfoInvkAble {
wiki.Db_mgr().Load_mgr().Load_by_ttl(tmp_page, ttl.Ns(), ttl.Page_db());
}
return String_.Ary(tmp_page.Exists() ? "1" : "0", Int_.To_str(tmp_page.Id()), Int_.To_str(tmp_page.Ns_id()), String_.new_u8(tmp_page.Ttl_page_db()), Bool_.To_str_lower(tmp_page.Redirected()), tmp_page.Modified_on().XtoStr_fmt("yyyy-MM-dd HH:mm:ss"), Int_.To_str(tmp_page.Text_len()));
- } private static final Xowd_page_itm tmp_page = Xowd_page_itm.new_tmp();
+ } private static final Xowd_page_itm tmp_page = Xowd_page_itm.new_tmp();
private String[][] Get_titles_meta(GfoMsg m) {
Xowe_wiki wiki = html_itm.Owner_tab().Wiki();
try {
@@ -125,7 +125,9 @@ public class Xoh_js_cbk implements GfoInvkAble {
Xowe_wiki wiki = html_itm.Owner_tab().Wiki();
byte[] search_str = Bry_.new_u8((String)m.ReadValAt(0));
byte[] cbk_func = Bry_.new_u8((String)m.ReadValAt(1));
- app.Gui_mgr().Search_suggest_mgr().Search(wiki, search_str, cbk_func);
+
+
+ app.Gui_mgr().Search_cfg().Search(wiki, search_str, cbk_func);
return "";
}
private String[] Wikidata_get_label(GfoMsg m) {
@@ -141,7 +143,7 @@ public class Xoh_js_cbk implements GfoInvkAble {
for (int i = 1; i < len; i++) {
try {
byte[] ttl_bry = m.Args_getAt(i).Val_to_bry();
- gplx.xowa.xtns.wdatas.Wdata_doc page = wdata_mgr.Pages_get(ttl_bry); if (page == null) continue;
+ gplx.xowa.xtns.wdatas.Wdata_doc page = wdata_mgr.Doc_mgr.Get_by_xid_or_null(ttl_bry); if (page == null) continue;
for (int j = 0; j < langs_len; j++) {
byte[] lang_key = langs[j];
if (Bry_.Eq(lang_key, Wikidata_get_label_xowa_ui_lang))
@@ -170,7 +172,7 @@ public class Xoh_js_cbk implements GfoInvkAble {
catch (Exception e) {Err_.Noop(e); return null;}
return Object_.Xto_str_strict_or_empty(rv);
}
- private static final byte[] Wikidata_get_label_xowa_ui_lang = Bry_.new_a7("xowa_ui_lang"), Wikidata_get_label_xowa_title = Bry_.new_a7("xowa_title");
+ private static final byte[] Wikidata_get_label_xowa_ui_lang = Bry_.new_a7("xowa_ui_lang"), Wikidata_get_label_xowa_title = Bry_.new_a7("xowa_title");
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
if (ctx.Match(k, Invk_parse_to_html)) return Parse_to_html(m);
else if (ctx.Match(k, Invk_wikidata_get_label)) return Wikidata_get_label(m);
@@ -188,7 +190,7 @@ public class Xoh_js_cbk implements GfoInvkAble {
else if (ctx.Match(k, Invk_exec_json)) return app.Html__bridge_mgr().Cmd_mgr().Exec(m);
else return GfoInvkAble_.Rv_unhandled;
}
- public static final String Invk_parse_to_html = "parse_to_html", Invk_wikidata_get_label = "wikidata_get_label", Invk_get_page = "get_page", Invk_cmd = "cmd", Invk_scripts_exec = "scripts_exec"
+ public static final String Invk_parse_to_html = "parse_to_html", Invk_wikidata_get_label = "wikidata_get_label", Invk_get_page = "get_page", Invk_cmd = "cmd", Invk_scripts_exec = "scripts_exec"
, Invk_get_search_suggestions = "get_search_suggestions", Invk_get_titles_meta = "get_titles_meta", Invk_get_titles_exists = "get_titles_exists", Invk_get_current_url = "get_current_url"
, Invk_xowa_exec_test = "xowa_exec_test", Invk_xowa_exec_test_as_array = "xowa_exec_test_as_array"
, Invk_popups_get_async_bgn = "popups_get_async_bgn"
diff --git a/400_xowa/src/gplx/xowa/htmls/js/Xoh_js_cbk_wdata_labels_tst.java b/400_xowa/src/gplx/xowa/htmls/js/Xoh_js_cbk_wdata_labels_tst.java
index 0ee72fea2..fce0e75cd 100644
--- a/400_xowa/src/gplx/xowa/htmls/js/Xoh_js_cbk_wdata_labels_tst.java
+++ b/400_xowa/src/gplx/xowa/htmls/js/Xoh_js_cbk_wdata_labels_tst.java
@@ -18,15 +18,15 @@ along with this program. If not, see .
package gplx.xowa.htmls.js; import gplx.*; import gplx.xowa.*; import gplx.xowa.htmls.*;
import org.junit.*; import gplx.langs.jsons.*; import gplx.xowa.xtns.wdatas.*;
public class Xoh_js_cbk_wdata_labels_tst {
- @Before public void init() {fxt.Init();} private final Wdata_wiki_mgr_fxt fxt = new Wdata_wiki_mgr_fxt();
+ @Before public void init() {fxt.Init();} private final Wdata_wiki_mgr_fxt fxt = new Wdata_wiki_mgr_fxt();
@Test public void Basic() {
- fxt.Init_pages_add(fxt.Wdoc_bldr("q1").Add_label("en", "en_q1").Xto_wdoc());
- fxt.Init_pages_add(fxt.Wdoc_bldr("q2").Add_label("en", "en_q2").Xto_wdoc());
- fxt.Init_pages_add(fxt.Wdoc_bldr("Property:P1").Add_label("en", "en_property_p1").Xto_wdoc());
+ fxt.Init__docs__add(fxt.Wdoc_bldr("q1").Add_label("en", "en_q1").Xto_wdoc());
+ fxt.Init__docs__add(fxt.Wdoc_bldr("q2").Add_label("en", "en_q2").Xto_wdoc());
+ fxt.Init__docs__add(fxt.Wdoc_bldr("Property:P1").Add_label("en", "en_property_p1").Xto_wdoc());
Tst_wikidata_label_get(String_.Ary("en", "q1", "q2", "Property:P1"), String_.Ary("en_q1", "en_q2", "en_property_p1"));
}
@Test public void Outliers() {
- fxt.Init_pages_add(fxt.Wdoc_bldr("q1").Add_label("en", "en_q1").Add_label("de", "de_q1").Xto_wdoc());
+ fxt.Init__docs__add(fxt.Wdoc_bldr("q1").Add_label("en", "en_q1").Add_label("de", "de_q1").Xto_wdoc());
Tst_wikidata_label_get(String_.Ary("fr", "q1"), String_.Ary((String)null));
Tst_wikidata_label_get(String_.Ary("de", "q1"), String_.Ary("de_q1"));
Tst_wikidata_label_get(String_.Ary("xowa_title", "q1"), String_.Ary("q1"));
@@ -41,12 +41,12 @@ public class Xoh_js_cbk_wdata_labels_tst {
, " }"
, "}"
));
- fxt.Init_pages_add(d);
+ fxt.Init__docs__add(d);
Tst_wikidata_label_get(String_.Ary("en", "q1"), String_.Ary("\ta"));
}
private Wdata_doc doc_(String qid, String src) {
Json_doc jdoc = fxt.Make_json(src);
- Xoae_app app = Xoa_app_fxt.app_();
+ Xoae_app app = Xoa_app_fxt.Make__app__edit();
Wdata_doc rv = new Wdata_doc(Bry_.new_a7(qid), app.Wiki_mgr().Wdata_mgr(), jdoc);
return rv;
}
diff --git a/400_xowa/src/gplx/xowa/htmls/js/Xoh_js_cleaner.java b/400_xowa/src/gplx/xowa/htmls/js/Xoh_js_cleaner.java
index c2516c812..f5a32d121 100644
--- a/400_xowa/src/gplx/xowa/htmls/js/Xoh_js_cleaner.java
+++ b/400_xowa/src/gplx/xowa/htmls/js/Xoh_js_cleaner.java
@@ -26,7 +26,7 @@ public class Xoh_js_cleaner {
if (cleaned != null) {
bfr.Del_by(end - bgn);
bfr.Add(cleaned);
- app.Usr_dlg().Log_many("", "", "javascript detected: wiki=~{0} ~{1}", wiki.Domain_str(), String_.new_u8(ttl.Full_txt()));
+ app.Usr_dlg().Log_many("", "", "javascript detected: wiki=~{0} ~{1}", wiki.Domain_str(), String_.new_u8(ttl.Full_txt_w_ttl_case()));
}
}
public byte[] Clean(Xowe_wiki wiki, byte[] src, int bgn, int end) {
diff --git a/400_xowa/src/gplx/xowa/htmls/js/Xoh_js_cleaner_tst.java b/400_xowa/src/gplx/xowa/htmls/js/Xoh_js_cleaner_tst.java
index 6bfd88c46..9d479f2ec 100644
--- a/400_xowa/src/gplx/xowa/htmls/js/Xoh_js_cleaner_tst.java
+++ b/400_xowa/src/gplx/xowa/htmls/js/Xoh_js_cleaner_tst.java
@@ -28,8 +28,8 @@ public class Xoh_js_cleaner_tst {
class Xoh_js_cleaner_fxt {
public void Init() {
if (mgr == null) {
- app = Xoa_app_fxt.app_();
- wiki = Xoa_app_fxt.wiki_tst_(app);
+ app = Xoa_app_fxt.Make__app__edit();
+ wiki = Xoa_app_fxt.Make__wiki__edit(app);
mgr = app.Html_mgr().Js_cleaner();
}
} private Xoae_app app; Xowe_wiki wiki; Xoh_js_cleaner mgr;
diff --git a/400_xowa/src/gplx/xowa/htmls/modules/popups/Xow_popup_html_mkr.java b/400_xowa/src/gplx/xowa/htmls/modules/popups/Xow_popup_html_mkr.java
index eac75611e..bd0fa016b 100644
--- a/400_xowa/src/gplx/xowa/htmls/modules/popups/Xow_popup_html_mkr.java
+++ b/400_xowa/src/gplx/xowa/htmls/modules/popups/Xow_popup_html_mkr.java
@@ -43,7 +43,7 @@ public class Xow_popup_html_mkr {
, hdom_bry
, wiki.Lang().Dir_ltr_bry()
, page_url
- , String_.new_u8(page.Ttl().Full_txt())
+ , String_.new_u8(page.Ttl().Full_txt_w_ttl_case())
, popup_itm.Popup_id()
, Xow_popup_html_bldr_.Bld_fmtr_wiki(fmtr_wiki, wrdx_bfr, cur_wiki.Domain_bry(), page.Wiki().Domain_bry()) // NOTE: use cur_wiki, not page_wiki; DATE:2014-06-28
, gplx.core.ios.Io_size_.To_str(page.Data_raw().length)
@@ -62,7 +62,7 @@ class Xow_popup_html_bldr_ {
}
public static byte[] Bld_fmtr_viewed(Bry_fmtr fmtr, Xoae_app app, Xowe_wiki wiki, Bry_bfr wrdx_bfr, Xoa_ttl ttl) {
byte[] view_time_item = Bry_.Empty;
- gplx.xowa.users.history.Xou_history_itm history_itm = app.Usere().History_mgr().Get_or_null(wiki.Domain_bry(), ttl.Full_txt());
+ gplx.xowa.users.history.Xou_history_itm history_itm = app.Usere().History_mgr().Get_or_null(wiki.Domain_bry(), ttl.Full_txt_w_ttl_case());
if (history_itm != null)
view_time_item = fmtr.Bld_bry_many(wrdx_bfr, history_itm.View_end().XtoStr_fmt_yyyy_MM_dd_HH_mm_ss());
return view_time_item;
diff --git a/400_xowa/src/gplx/xowa/htmls/modules/popups/Xow_popup_itm.java b/400_xowa/src/gplx/xowa/htmls/modules/popups/Xow_popup_itm.java
index 11c19c9a2..f57488c23 100644
--- a/400_xowa/src/gplx/xowa/htmls/modules/popups/Xow_popup_itm.java
+++ b/400_xowa/src/gplx/xowa/htmls/modules/popups/Xow_popup_itm.java
@@ -25,7 +25,6 @@ public class Xow_popup_itm implements Cancelable {
}
public boolean Canceled() {return canceled;} private boolean canceled = false;
public void Cancel() {canceled = true;}
- public void Cancel_reset() {canceled = false;}
public byte Mode() {return mode;} private byte mode = Mode_tid_init;
public Xow_popup_itm Mode_more_(int more_words) {
mode = Mode_tid_more;
diff --git a/400_xowa/src/gplx/xowa/htmls/modules/popups/Xow_popup_mgr.java b/400_xowa/src/gplx/xowa/htmls/modules/popups/Xow_popup_mgr.java
index caf1c55d6..e49aa3761 100644
--- a/400_xowa/src/gplx/xowa/htmls/modules/popups/Xow_popup_mgr.java
+++ b/400_xowa/src/gplx/xowa/htmls/modules/popups/Xow_popup_mgr.java
@@ -21,7 +21,7 @@ import gplx.core.js.*;
import gplx.xowa.wikis.nss.*;
import gplx.xowa.guis.views.*;
import gplx.xowa.htmls.hrefs.*;
-import gplx.xowa.specials.*; import gplx.xowa.specials.search.*;
+import gplx.xowa.specials.*;
import gplx.xowa.apps.apis.xowa.html.modules.*;
public class Xow_popup_mgr implements GfoInvkAble, GfoEvObj {
private Xoae_app app; private Xowe_wiki wiki; private Js_wtr js_wtr = new Js_wtr();
diff --git a/400_xowa/src/gplx/xowa/htmls/modules/popups/Xow_popup_parser_tst.java b/400_xowa/src/gplx/xowa/htmls/modules/popups/Xow_popup_parser_tst.java
index 37fe7c58e..f77002325 100644
--- a/400_xowa/src/gplx/xowa/htmls/modules/popups/Xow_popup_parser_tst.java
+++ b/400_xowa/src/gplx/xowa/htmls/modules/popups/Xow_popup_parser_tst.java
@@ -460,8 +460,8 @@ class Xop_popup_parser_fxt {
private Xow_popup_parser parser; private Xowe_wiki wiki;
private int word_min = 2;
public void Clear() {
- Xoae_app app = Xoa_app_fxt.app_();
- this.wiki = Xoa_app_fxt.wiki_(app, "en.wiki");
+ Xoae_app app = Xoa_app_fxt.Make__app__edit();
+ this.wiki = Xoa_app_fxt.Make__wiki__edit(app, "en.wiki");
parser = wiki.Html_mgr().Head_mgr().Popup_mgr().Parser();
parser.Init_by_wiki(wiki);
parser.Cfg().Tmpl_read_len_(4);
diff --git a/400_xowa/src/gplx/xowa/htmls/modules/popups/Xow_popup_wrdx_mkr.java b/400_xowa/src/gplx/xowa/htmls/modules/popups/Xow_popup_wrdx_mkr.java
index e5bce4828..590bd67a1 100644
--- a/400_xowa/src/gplx/xowa/htmls/modules/popups/Xow_popup_wrdx_mkr.java
+++ b/400_xowa/src/gplx/xowa/htmls/modules/popups/Xow_popup_wrdx_mkr.java
@@ -53,20 +53,20 @@ public class Xow_popup_wrdx_mkr {
case Xop_tkn_itm_.Tid_xnde:
xnde = (Xop_xnde_tkn)tkn;
switch (xnde.Tag().Id()) {
- case Xop_xnde_tag_.Tid_div:
- case Xop_xnde_tag_.Tid_table: case Xop_xnde_tag_.Tid_tr: case Xop_xnde_tag_.Tid_td: case Xop_xnde_tag_.Tid_th:
- case Xop_xnde_tag_.Tid_caption: case Xop_xnde_tag_.Tid_thead: case Xop_xnde_tag_.Tid_tfoot: case Xop_xnde_tag_.Tid_tbody:
- case Xop_xnde_tag_.Tid_ref: case Xop_xnde_tag_.Tid_gallery: case Xop_xnde_tag_.Tid_imageMap: case Xop_xnde_tag_.Tid_timeline:
- case Xop_xnde_tag_.Tid_xowa_html: // needed for Help:Options, else \n at top of doc; DATE:2014-06-22
+ case Xop_xnde_tag_.Tid__div:
+ case Xop_xnde_tag_.Tid__table: case Xop_xnde_tag_.Tid__tr: case Xop_xnde_tag_.Tid__td: case Xop_xnde_tag_.Tid__th:
+ case Xop_xnde_tag_.Tid__caption: case Xop_xnde_tag_.Tid__thead: case Xop_xnde_tag_.Tid__tfoot: case Xop_xnde_tag_.Tid__tbody:
+ case Xop_xnde_tag_.Tid__ref: case Xop_xnde_tag_.Tid__gallery: case Xop_xnde_tag_.Tid__imageMap: case Xop_xnde_tag_.Tid__timeline:
+ case Xop_xnde_tag_.Tid__xowa_html: // needed for Help:Options, else \n at top of doc; DATE:2014-06-22
add_tkn = add_subs = false; // skip tblxs
xnde = null;
break;
- case Xop_xnde_tag_.Tid_math: // add