"
@@ -224,7 +224,7 @@ class Wdata_fmtr__ref_tbl implements Bry_fmtr_arg {
private Bry_fmtr fmtr = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
( ""
// , "
"
+ , "
"
, "
"
, "
" // OMIT: wb-referenceview-8e7d51e38606193465d2a1e9d41ba490e06682a6
, "
"
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_fmtr__json.java b/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_fmtr__json.java
index b72038861..1b43dac24 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_fmtr__json.java
+++ b/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_fmtr__json.java
@@ -40,7 +40,9 @@ class Wdata_fmtr__json implements Bry_fmtr_arg {
private final Bry_fmtr fmtr = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
( ""
, "
~{hdr_text}~{toggle_btn}
"
+ , "
"
, "
~{json}"
, "
"
+ , "
"
), "hdr_href", "hdr_text", "toggle_btn", "toggle_hdr", "json");
}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_fmtr__langtext.java b/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_fmtr__langtext.java
index b09b45112..c2e165a12 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_fmtr__langtext.java
+++ b/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_fmtr__langtext.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.xtns.wdatas.hwtrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
-import gplx.html.*; import gplx.xowa.wikis.*; import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.apis.xowa.html.*;
+import gplx.html.*;
+import gplx.xowa.langs.*; import gplx.xowa.wikis.*; import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.apis.xowa.html.*;
class Wdata_fmtr__langtext_tbl implements Bry_fmtr_arg {
private Wdata_toc_data toc_data; private Wdata_lang_sorter lang_sorter; private Xoapi_toggle_itm toggle_itm; private Wdata_fmtr__langtext_row fmtr_row;
private byte[] col_hdr_lang_name, col_hdr_lang_code, col_hdr_text; private int list_len;
@@ -45,22 +46,10 @@ class Wdata_fmtr__langtext_tbl implements Bry_fmtr_arg {
, "
"
, "
~{hdr_text}~{toggle_btn}
"
, " "
- , "
"
- , " "
- , " "
- , " "
- , " "
- , " "
- , " "
- , " "
- , " ~{hdr_lang_name} | "
- , " ~{hdr_lang_code} | "
- , " ~{hdr_page} | "
- , "
"
- , " "
- , " ~{rows}"
- , " "
- , "
"
+ , "
"
, "
"
), "hdr_href", "hdr_text", "hdr_lang_name", "hdr_lang_code", "hdr_page", "toggle_btn", "toggle_hdr", "rows"
);
@@ -76,21 +65,35 @@ class Wdata_fmtr__langtext_row_base implements Wdata_fmtr__langtext_row {
for (int i = 0; i < len; ++i) {
Wdata_langtext_itm itm = (Wdata_langtext_itm)list.FetchAt(i);
Xol_lang_itm lang_itm = Xol_lang_itm_.Get_by_key_or_intl(itm.Lang());
- row_fmtr.Bld_bfr_many(bfr, itm.Lang(), Html_utl.Escape_html_as_bry(lang_itm.Local_name()), Html_utl.Escape_html_as_bry(itm.Text()));
+ row_fmtr.Bld_bfr_many(bfr, itm.Lang(), Html_utl.Escape_html_as_bry(lang_itm.Localized_name()), Html_utl.Escape_html_as_bry(itm.Text()));
}
}
private final Bry_fmtr row_fmtr = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
( ""
- , "
"
- , " ~{lang_name} | "
- , " ~{lang_code} | "
- , " ~{text} | "
- , "
"
+ , "
"
+ , " "
+ , " ~{lang_code}"
+ , " "
+ , " ~{text}"
+ , " "
), "lang_code", "lang_name", "text"
);
+// , "
" // wikibase-sitelinkview-~{wmf_key} data-wb-siteid='~{wmf_key}'
+// , " "
+// , " ~{wmf_key}"
+// , " "
+// , " "
+// , " " // wikibase-sitelinkview-link-~{wmf_key}
+// , " "
+// , " ~{page_name}"
+// , " "
+// , " ~{badges}"
+// , " "
+// , " "
+// , " "
}
class Wdata_fmtr__alias_row implements Wdata_fmtr__langtext_row {
- private final Bry_bfr tmp_bfr = Bry_bfr.reset_(255); private OrderedHash list;
+ private OrderedHash list;
public void Init_by_page(OrderedHash list) {this.list = list;}
public void XferAry(Bry_bfr bfr, int idx) {
int len = list.Count();
@@ -100,20 +103,26 @@ class Wdata_fmtr__alias_row implements Wdata_fmtr__langtext_row {
int vals_len = vals_ary.length;
for (int j = 0; j < vals_len; ++j) {
byte[] val = vals_ary[j];
- if (j != 0) tmp_bfr.Add(Html_tag_.Br_inl);
- tmp_bfr.Add(Html_utl.Escape_html_as_bry(val));
+ Xol_lang_itm lang_itm = Xol_lang_itm_.Get_by_key_or_intl(itm.Lang());
+ byte[] lang_code = Byte_ascii.Dash_bry;
+ byte[] lang_code_style = lang_code_style_n;
+ if (j == 0) {
+ lang_code = lang_itm.Key();
+ lang_code_style = Bry_.Empty;
+ }
+ row_fmtr.Bld_bfr_many(bfr, lang_code, lang_code_style, Html_utl.Escape_html_as_bry(val));
}
- Xol_lang_itm lang_itm = Xol_lang_itm_.Get_by_key_or_intl(itm.Lang());
- row_fmtr.Bld_bfr_many(bfr, lang_itm.Key(), Html_utl.Escape_html_as_bry(lang_itm.Local_name()), tmp_bfr.Xto_bry_and_clear());
}
}
+ private static final byte[] lang_code_style_n = Bry_.new_ascii_("border:1px solid white;background:none;");
private final Bry_fmtr row_fmtr = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
( ""
- , "
"
- , " ~{lang_name} | "
- , " ~{lang_code} | "
- , " ~{text} | "
- , "
"
- ), "lang_code", "lang_name", "text"
+ , "
"
+ , " ~{lang_code}"
+ , " "
+ , " ~{text}"
+ , " "
+ ), "lang_code", "lang_code_style", "text"
);
}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_fmtr__slink.java b/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_fmtr__slink.java
index 3038c3ef2..8301cacdb 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_fmtr__slink.java
+++ b/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_fmtr__slink.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.xtns.wdatas.hwtrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
-import gplx.html.*; import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.wikis.*; import gplx.xowa.apis.xowa.html.*; import gplx.xowa.wikis.xwikis.*;
+import gplx.html.*;
+import gplx.xowa.langs.*; import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.wikis.*; import gplx.xowa.apis.xowa.html.*; import gplx.xowa.wikis.xwikis.*;
class Wdata_fmtr__slink_grp implements Bry_fmtr_arg {
private final Wdata_fmtr__slink_tbl fmtr_tbl = new Wdata_fmtr__slink_tbl(); private boolean is_empty;
public void Init_by_ctor(Wdata_lang_sorter lang_sorter, Xoapi_toggle_mgr toggle_mgr, Wdata_lbl_mgr lbl_regy, Url_encoder href_encoder, Wdata_fmtr__toc_div fmtr_toc, Xow_xwiki_mgr xwiki_mgr) {
@@ -88,22 +89,10 @@ class Wdata_fmtr__slink_tbl implements Bry_fmtr_arg {
, "
"
, "
~{hdr_text}~{toggle_btn}
"
, " "
- , "
"
- , " "
- , " "
- , " "
- , " "
- , " "
- , " "
- , " "
- , " ~{hdr_lang} | "
- , " ~{hdr_wiki} | "
- , " ~{hdr_page} | "
- , "
"
- , " "
- , " ~{rows}"
- , " "
- , "
"
+ , "
"
, "
"
), "hdr_href", "hdr_text", "hdr_lang", "hdr_wiki", "hdr_page", "toggle_btn", "toggle_hdr", "rows"
);
@@ -120,11 +109,11 @@ class Wdata_fmtr__slink_row implements Bry_fmtr_arg {
int len = list.Count();
for (int i = 0; i < len; ++i) {
Wdata_sitelink_itm itm = (Wdata_sitelink_itm)list.FetchAt(i);
- Xow_wiki_domain domain_info = itm.Domain_info();
+ Xow_domain domain_info = itm.Domain_info();
byte[] wmf_key = domain_info.Wmf_key();
Xol_lang_itm lang_itm = domain_info.Lang_itm();
byte[] lang_key = lang_itm.Key();
- byte[] lang_name = lang_itm.Local_name();
+ byte[] lang_name = lang_itm.Localized_name();
byte[] domain_bry = domain_info.Domain_bry();
byte[] page_name = itm.Name();
fmtr_badges.Init_by_itm(itm.Badges());
@@ -135,17 +124,19 @@ class Wdata_fmtr__slink_row implements Bry_fmtr_arg {
private static final byte[] Href_site_xowa = Bry_.new_ascii_("/site/"), Href_site_http = Bry_.new_ascii_("https://");
private final Bry_fmtr fmtr_row = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
( ""
- , "
" // wikibase-sitelinkview-~{wmf_key} data-wb-siteid='~{wmf_key}'
- , " ~{lang_name} | " // wikibase-sitelinkview-sitename-~{wmf_key}
- , " ~{wmf_key} | " // wikibase-sitelinkview-siteid-~{wmf_key}
- , " " // wikibase-sitelinkview-link-~{wmf_key}
- , " ~{badges}"
+ , " " // wikibase-sitelinkview-~{wmf_key} data-wb-siteid='~{wmf_key}'
+ , " "
+ , " ~{lang_code}"
, " "
+ , " "
+ , " " // wikibase-sitelinkview-link-~{wmf_key}
, " "
, " ~{page_name}"
, " "
- , " | "
- , "
"
+ , "
~{badges}"
+ , " "
+ , " "
+ , " "
), "lang_name", "lang_code", "wmf_key", "href_site", "href_domain", "href_page", "page_name", "badges"
);
}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_hwtr_mgr.java b/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_hwtr_mgr.java
index 5fc699446..341f69423 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_hwtr_mgr.java
+++ b/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_hwtr_mgr.java
@@ -72,14 +72,18 @@ public class Wdata_hwtr_mgr {
fmtr_descr.Init_by_wdoc(wdoc.Descr_list());
fmtr_alias.Init_by_wdoc(wdoc.Alias_list());
bfr.Add_str("
");
+ bfr.Add_str("
");
fmtr_main.Bld_bfr_many(bfr, fmtr_oview, "", "", "", "", "", "", "");
bfr.Add_str("
");
+ bfr.Add_str("
");
return bfr.Xto_bry_and_clear();
}
public byte[] Write(Wdata_doc wdoc) {
bfr.Add_str("
");
+ bfr.Add_str("
");
fmtr_main.Bld_bfr_many(bfr, fmtr_oview, fmtr_toc, fmtr_claim, fmtr_slink, fmtr_label, fmtr_descr, fmtr_alias, fmtr_json);
bfr.Add_str("
");
+ bfr.Add_str("
");
return bfr.Xto_bry_and_clear();
}
public static void Write_link_wikidata(Bry_bfr bfr, byte[] href, byte[] text) {
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_hwtr_msgs.java b/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_hwtr_msgs.java
index 082141148..e39524674 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_hwtr_msgs.java
+++ b/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_hwtr_msgs.java
@@ -85,14 +85,14 @@ public class Wdata_hwtr_msgs {
geo_meters = brys[offset + 7];
Bry_fmtr fmtr = Bry_fmtr.new_( slink_tbl_hdr_fmt, "wiki_type");
Bry_bfr bfr = Bry_bfr.new_(64);
- slink_tbl_hdr_w = fmtr.Bld_bry_many(bfr, Xow_wiki_domain_.Name_wikipedia_bry);
- slink_tbl_hdr_d = fmtr.Bld_bry_many(bfr, Xow_wiki_domain_.Name_wiktionary_bry);
- slink_tbl_hdr_s = fmtr.Bld_bry_many(bfr, Xow_wiki_domain_.Name_wikisource_bry);
- slink_tbl_hdr_v = fmtr.Bld_bry_many(bfr, Xow_wiki_domain_.Name_wikivoyage_bry);
- slink_tbl_hdr_q = fmtr.Bld_bry_many(bfr, Xow_wiki_domain_.Name_wikiquote_bry);
- slink_tbl_hdr_b = fmtr.Bld_bry_many(bfr, Xow_wiki_domain_.Name_wikibooks_bry);
- slink_tbl_hdr_u = fmtr.Bld_bry_many(bfr, Xow_wiki_domain_.Name_wikiversity_bry);
- slink_tbl_hdr_n = fmtr.Bld_bry_many(bfr, Xow_wiki_domain_.Name_wikinews_bry);
+ slink_tbl_hdr_w = fmtr.Bld_bry_many(bfr, Name_(Xow_domain_.Tid_bry_wikipedia));
+ slink_tbl_hdr_d = fmtr.Bld_bry_many(bfr, Name_(Xow_domain_.Tid_bry_wiktionary));
+ slink_tbl_hdr_s = fmtr.Bld_bry_many(bfr, Name_(Xow_domain_.Tid_bry_wikisource));
+ slink_tbl_hdr_v = fmtr.Bld_bry_many(bfr, Name_(Xow_domain_.Tid_bry_wikivoyage));
+ slink_tbl_hdr_q = fmtr.Bld_bry_many(bfr, Name_(Xow_domain_.Tid_bry_wikiquote));
+ slink_tbl_hdr_b = fmtr.Bld_bry_many(bfr, Name_(Xow_domain_.Tid_bry_wikibooks));
+ slink_tbl_hdr_u = fmtr.Bld_bry_many(bfr, Name_(Xow_domain_.Tid_bry_wikiversity));
+ slink_tbl_hdr_n = fmtr.Bld_bry_many(bfr, Name_(Xow_domain_.Tid_bry_wikinews));
slink_tbl_hdr_x = fmtr.Bld_bry_many(bfr, slink_tbl_hdr_fmt_other);
}
public byte[][] Ary() {return ary;} private final byte[][] ary;
@@ -223,4 +223,5 @@ public class Wdata_hwtr_msgs {
rv[i] = gplx.html.Html_utl.Escape_html_as_bry(msg_mgr.Val_by_key_obj(ids[i]));
return rv;
}
+ private static byte[] Name_(byte[] v) {return Bry_.Upper_1st(Bry_.Copy(v));}
}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_slink_grp.java b/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_slink_grp.java
index 0a2bddb99..fac6c133a 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_slink_grp.java
+++ b/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_slink_grp.java
@@ -32,20 +32,20 @@ class Wdata_slink_grp {
int list_len = list.Count();
for (int i = 0; i < list_len; ++i) {
Wdata_sitelink_itm itm = (Wdata_sitelink_itm)list.FetchAt(i);
- int idx = Idx_by_tid(itm.Domain_info().Wiki_tid());
+ int idx = Idx_by_tid(itm.Domain_info().Domain_tid());
rv[idx].Rows().Add(itm.Site(), itm);
}
}
public static int Idx_by_tid(int tid) {
switch (tid) {
- case Xow_wiki_domain_.Tid_wikipedia: return Idx_w;
- case Xow_wiki_domain_.Tid_wiktionary: return Idx_d;
- case Xow_wiki_domain_.Tid_wikisource: return Idx_s;
- case Xow_wiki_domain_.Tid_wikivoyage: return Idx_v;
- case Xow_wiki_domain_.Tid_wikiquote: return Idx_q;
- case Xow_wiki_domain_.Tid_wikibooks: return Idx_b;
- case Xow_wiki_domain_.Tid_wikiversity: return Idx_u;
- case Xow_wiki_domain_.Tid_wikinews: return Idx_n;
+ case Xow_domain_.Tid_int_wikipedia: return Idx_w;
+ case Xow_domain_.Tid_int_wiktionary: return Idx_d;
+ case Xow_domain_.Tid_int_wikisource: return Idx_s;
+ case Xow_domain_.Tid_int_wikivoyage: return Idx_v;
+ case Xow_domain_.Tid_int_wikiquote: return Idx_q;
+ case Xow_domain_.Tid_int_wikibooks: return Idx_b;
+ case Xow_domain_.Tid_int_wikiversity: return Idx_u;
+ case Xow_domain_.Tid_int_wikinews: return Idx_n;
default: return Idx_x;
}
}
@@ -65,14 +65,14 @@ class Wdata_slink_grp {
}
public static byte[] Name_by_tid(int idx) {
switch (idx) {
- case Idx_w: return Xow_wiki_domain_.Key_wikipedia_bry;
- case Idx_d: return Xow_wiki_domain_.Key_wiktionary_bry;
- case Idx_s: return Xow_wiki_domain_.Key_wikisource_bry;
- case Idx_v: return Xow_wiki_domain_.Key_wikivoyage_bry;
- case Idx_q: return Xow_wiki_domain_.Key_wikiquote_bry;
- case Idx_b: return Xow_wiki_domain_.Key_wikibooks_bry;
- case Idx_u: return Xow_wiki_domain_.Key_wikiversity_bry;
- case Idx_n: return Xow_wiki_domain_.Key_wikinews_bry;
+ case Idx_w: return Xow_domain_.Tid_bry_wikipedia;
+ case Idx_d: return Xow_domain_.Tid_bry_wiktionary;
+ case Idx_s: return Xow_domain_.Tid_bry_wikisource;
+ case Idx_v: return Xow_domain_.Tid_bry_wikivoyage;
+ case Idx_q: return Xow_domain_.Tid_bry_wikiquote;
+ case Idx_b: return Xow_domain_.Tid_bry_wikibooks;
+ case Idx_u: return Xow_domain_.Tid_bry_wikiversity;
+ case Idx_n: return Xow_domain_.Tid_bry_wikinews;
case Idx_x: return Name_special;
default: throw Err_.unhandled(idx);
}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Wdata_idx_mgr_base.java b/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Wdata_idx_mgr_base.java
index 72ff03899..d4f6c75af 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Wdata_idx_mgr_base.java
+++ b/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Wdata_idx_mgr_base.java
@@ -19,9 +19,9 @@ package gplx.xowa.xtns.wdatas.imports; import gplx.*; import gplx.xowa.*; import
import gplx.json.*; import gplx.ios.*;
import gplx.xowa.xtns.wdatas.imports.*;
abstract class Wdata_idx_mgr_base {
- public void Ctor(Xob_itm_dump_base wkr, Xob_bldr bldr, Xow_wiki wiki, int dump_fil_len) {
+ public void Ctor(Xob_itm_dump_base wkr, Xob_bldr bldr, Xowe_wiki wiki, int dump_fil_len) {
this.wkr = wkr; this.wiki = wiki; this.bldr = bldr; this.dump_fil_len = dump_fil_len;
- } Xob_itm_dump_base wkr; protected Xow_wiki wiki; Xob_bldr bldr; Xol_csv_parser csv_parser = Xol_csv_parser._; protected OrderedHash hash = OrderedHash_.new_(); protected int dump_fil_len;
+ } Xob_itm_dump_base wkr; protected Xowe_wiki wiki; Xob_bldr bldr; Xol_csv_parser csv_parser = Xol_csv_parser._; protected OrderedHash hash = OrderedHash_.new_(); protected int dump_fil_len;
public void Flush() {
int len = hash.Count();
for (int i = 0; i < len; i++) {
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Wdata_idx_wtr.java b/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Wdata_idx_wtr.java
index 893a00ab0..b81e318b6 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Wdata_idx_wtr.java
+++ b/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Wdata_idx_wtr.java
@@ -34,20 +34,20 @@ class Wdata_idx_wtr {
public void Make(Gfo_usr_dlg usr_dlg, int make_fil_len) {
Xobdc_merger.Basic(usr_dlg, dump_url_gen, dump_dir.OwnerDir().GenSubDir("sort"), dump_fil_max, Io_line_rdr_key_gen_.first_pipe, new Xob_make_cmd_site(usr_dlg, make_dir, make_fil_len));
}
- public static Wdata_idx_wtr new_qid_(Xow_wiki wdata_wiki, String wiki_str, String ns_num, int dump_fil_max) {
+ public static Wdata_idx_wtr new_qid_(Xowe_wiki wdata_wiki, String wiki_str, String ns_num, int dump_fil_max) {
Io_url dump_dir = wdata_wiki.Fsys_mgr().Tmp_dir().GenSubDir_nest(Xob_wdata_qid_txt.KEY, "qid", wiki_str, ns_num, "dump"); // /xowa/wiki/www.wikidata.org/tmp/wdata_qid/ + enwiki/000/dump/
Io_url make_dir = dir_qid_(wdata_wiki, wiki_str, ns_num); // /xowa/wiki/www.wikidata.org/site/data/qid/ + enwiki/000/
return new Wdata_idx_wtr(dump_dir, dump_fil_max, make_dir);
}
- public static Wdata_idx_wtr new_pid_(Xow_wiki wdata_wiki, String lang_key, int dump_fil_max) {
+ public static Wdata_idx_wtr new_pid_(Xowe_wiki wdata_wiki, String lang_key, int dump_fil_max) {
Io_url dump_dir = wdata_wiki.Fsys_mgr().Tmp_dir().GenSubDir_nest(Xob_wdata_pid_txt.KEY, "pid", lang_key, "dump"); // /xowa/wiki/www.wikidata.org/tmp/wdata_pid/ + en/
Io_url make_dir = dir_pid_(wdata_wiki, lang_key); // /xowa/wiki/www.wikidata.org/site/data/pid/ + en/
return new Wdata_idx_wtr(dump_dir, dump_fil_max, make_dir);
}
- public static Io_url dir_qid_(Xow_wiki wiki, String wiki_str, String ns_num) {
- return wiki.Fsys_mgr().Site_dir().GenSubDir_nest("data", "qid", wiki_str, ns_num); // /xowa/wiki/www.wikidata.org/site/data/ + qid/enwiki/000/
+ public static Io_url dir_qid_(Xowe_wiki wiki, String wiki_str, String ns_num) {
+ return wiki.Tdb_fsys_mgr().Site_dir().GenSubDir_nest("data", "qid", wiki_str, ns_num); // /xowa/wiki/www.wikidata.org/site/data/ + qid/enwiki/000/
}
- public static Io_url dir_pid_(Xow_wiki wiki, String lang_key) {
- return wiki.Fsys_mgr().Site_dir().GenSubDir_nest("data", "pid", lang_key); // /xowa/wiki/www.wikidata.org/site/data/ + pid/en/
+ public static Io_url dir_pid_(Xowe_wiki wiki, String lang_key) {
+ return wiki.Tdb_fsys_mgr().Site_dir().GenSubDir_nest("data", "pid", lang_key); // /xowa/wiki/www.wikidata.org/site/data/ + pid/en/
}
}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_db_cmd.java b/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_db_cmd.java
index 58bb693db..edb199969 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_db_cmd.java
+++ b/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_db_cmd.java
@@ -16,14 +16,14 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see
.
*/
package gplx.xowa.xtns.wdatas.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
-import gplx.dbs.*; import gplx.xowa.bldrs.*; import gplx.xowa.files.fsdb.*; import gplx.xowa.files.qrys.*;
+import gplx.dbs.*; import gplx.dbs.engines.sqlite.*; import gplx.xowa.bldrs.*; import gplx.xowa.files.fsdb.*; import gplx.xowa.files.origs.*;
import gplx.json.*; import gplx.xowa.xtns.wdatas.*; import gplx.xowa.xtns.wdatas.core.*;
import gplx.xowa.bldrs.oimgs.*;
public class Xob_wdata_db_cmd extends Xob_dump_mgr_base implements Xob_cmd {
private Wdata_tbl_mgr tbl_mgr = new Wdata_tbl_mgr();
private Wdata_wiki_mgr wdata_mgr; private Json_parser json_parser;
private byte[] lang_key = Xol_lang_.Key_en;
- public Xob_wdata_db_cmd(Xob_bldr bldr, Xow_wiki wiki) {this.Cmd_ctor(bldr, wiki);}
+ public Xob_wdata_db_cmd(Xob_bldr bldr, Xowe_wiki wiki) {this.Cmd_ctor(bldr, wiki);}
@Override public String Cmd_key() {return KEY_oimg;} public static final String KEY_oimg = "wiki.wdata_db";
@Override public byte Init_redirect() {return Bool_.N_byte;} // json will never be found in a redirect
@Override public int[] Init_ns_ary() {return Int_.Ary(Xow_ns_.Id_main, Wdata_wiki_mgr.Ns_property);}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_pid_base.java b/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_pid_base.java
index 89c21c42a..0cd90ec5c 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_pid_base.java
+++ b/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_pid_base.java
@@ -18,14 +18,14 @@ along with this program. If not, see
.
package gplx.xowa.xtns.wdatas.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
import gplx.json.*; import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.xtns.wdatas.parsers.*;
public abstract class Xob_wdata_pid_base extends Xob_itm_dump_base implements Xobd_wkr, GfoInvkAble {
- public Xob_wdata_pid_base Ctor(Xob_bldr bldr, Xow_wiki wiki) {this.Cmd_ctor(bldr, wiki); return this;}
+ public Xob_wdata_pid_base Ctor(Xob_bldr bldr, Xowe_wiki wiki) {this.Cmd_ctor(bldr, wiki); return this;}
public abstract String Wkr_key();
public abstract void Pid_bgn();
public abstract void Pid_add(byte[] src_lang, byte[] src_ttl, byte[] trg_ttl);
public abstract void Pid_end();
public void Wkr_ini(Xob_bldr bldr) {}
public void Wkr_bgn(Xob_bldr bldr) {
- this.Init_dump(this.Wkr_key(), wiki.Fsys_mgr().Site_dir().GenSubDir_nest("data", "pid")); // NOTE: must pass in correct make_dir in order to delete earlier version (else make_dirs will append)
+ this.Init_dump(this.Wkr_key(), wiki.Tdb_fsys_mgr().Site_dir().GenSubDir_nest("data", "pid")); // NOTE: must pass in correct make_dir in order to delete earlier version (else make_dirs will append)
parser = bldr.App().Wiki_mgr().Wdata_mgr().Jdoc_parser();
this.Pid_bgn();
} Json_parser parser;
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_pid_base_tst.java b/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_pid_base_tst.java
index 16040c5dd..7d80b8593 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_pid_base_tst.java
+++ b/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_pid_base_tst.java
@@ -17,13 +17,13 @@ along with this program. If not, see
.
*/
package gplx.xowa.xtns.wdatas.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
import org.junit.*;
-import gplx.xowa.wikis.*;
+import gplx.xowa.wikis.*; import gplx.xowa.tdbs.*;
public class Xob_wdata_pid_base_tst {
gplx.xowa.bldrs.Xob_fxt fxt = new gplx.xowa.bldrs.Xob_fxt().Ctor_mem();
- Io_url reg_(Xow_wiki wdata, String wiki) {return Wdata_idx_wtr.dir_pid_(wdata, wiki).GenSubFil(Xow_dir_info_.Name_reg_fil);}
- Io_url ttl_(Xow_wiki wdata, String wiki, int fil_id) {
+ Io_url reg_(Xowe_wiki wdata, String wiki) {return Wdata_idx_wtr.dir_pid_(wdata, wiki).GenSubFil(Xotdb_dir_info_.Name_reg_fil);}
+ Io_url ttl_(Xowe_wiki wdata, String wiki, int fil_id) {
Io_url root = Wdata_idx_wtr.dir_pid_(wdata, wiki);
- return Xow_fsys_mgr.Url_fil(root, fil_id, Xow_dir_info_.Bry_xdat);
+ return Xotdb_fsys_mgr.Url_fil(root, fil_id, Xotdb_dir_info_.Bry_xdat);
}
@Test public void Basic() {
fxt.Wiki().Ns_mgr().Add_new(Wdata_wiki_mgr.Ns_property, "Property");
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_pid_sql.java b/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_pid_sql.java
index 1844c290e..337a196eb 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_pid_sql.java
+++ b/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_pid_sql.java
@@ -33,7 +33,7 @@ public class Xob_wdata_pid_sql extends Xob_wdata_pid_base {
@Override public void Pid_end() {
conn.Txn_mgr().Txn_end_all();
stmt.Rls();
- db_mgr.Fsys_mgr().Index_create(wiki.App().Usr_dlg(), Byte_.Ary(Xodb_file_tid.Tid_core, Xodb_file_tid.Tid_wikidata), Index_wdata_pids);
+ db_mgr.Fsys_mgr().Index_create(wiki.Appe().Usr_dlg(), Byte_.Ary(Xodb_file_tid.Tid_core, Xodb_file_tid.Tid_wikidata), Index_wdata_pids);
}
private static final Db_idx_itm Index_wdata_pids = Db_idx_itm.sql_("CREATE INDEX IF NOT EXISTS wdata_pids__src ON wdata_pids (wp_src_lang, wp_src_ttl);");
}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_pid_txt.java b/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_pid_txt.java
index fc1fa10bf..817a1508a 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_pid_txt.java
+++ b/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_pid_txt.java
@@ -30,7 +30,7 @@ public class Xob_wdata_pid_txt extends Xob_wdata_pid_base {
}
}
class Wdata_idx_bldr_pid extends Wdata_idx_mgr_base {
- public Wdata_idx_bldr_pid(Xob_itm_dump_base wkr, Xob_bldr bldr, Xow_wiki wiki, int dump_fil_len) {this.Ctor(wkr, bldr, wiki, dump_fil_len);}
+ public Wdata_idx_bldr_pid(Xob_itm_dump_base wkr, Xob_bldr bldr, Xowe_wiki wiki, int dump_fil_len) {this.Ctor(wkr, bldr, wiki, dump_fil_len);}
public void Add(byte[] lang, byte[] prop_key, byte[] pid) {
Wdata_idx_wtr wtr = Get_or_new(lang);
wtr.Write(prop_key, pid);
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_qid_base.java b/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_qid_base.java
index d2fe0e630..e98559b55 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_qid_base.java
+++ b/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_qid_base.java
@@ -18,14 +18,14 @@ along with this program. If not, see
.
package gplx.xowa.xtns.wdatas.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
import gplx.json.*; import gplx.ios.*; import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.xtns.wdatas.parsers.*;
public abstract class Xob_wdata_qid_base extends Xob_itm_dump_base implements Xobd_wkr, GfoInvkAble {
- public Xob_wdata_qid_base Ctor(Xob_bldr bldr, Xow_wiki wiki) {this.Cmd_ctor(bldr, wiki); return this;}
+ public Xob_wdata_qid_base Ctor(Xob_bldr bldr, Xowe_wiki wiki) {this.Cmd_ctor(bldr, wiki); return this;}
public abstract String Wkr_key();
public abstract void Qid_bgn();
public abstract void Qid_add(byte[] wiki_key, Xow_ns ns, byte[] ttl, byte[] qid);
public abstract void Qid_end();
public void Wkr_ini(Xob_bldr bldr) {}
public void Wkr_bgn(Xob_bldr bldr) {
- this.Init_dump(this.Wkr_key(), wiki.Fsys_mgr().Site_dir().GenSubDir_nest("data", "qid")); // NOTE: must pass in correct make_dir in order to delete earlier version (else make_dirs will append)
+ this.Init_dump(this.Wkr_key(), wiki.Tdb_fsys_mgr().Site_dir().GenSubDir_nest("data", "qid")); // NOTE: must pass in correct make_dir in order to delete earlier version (else make_dirs will append)
parser = bldr.App().Wiki_mgr().Wdata_mgr().Jdoc_parser();
this.Qid_bgn();
} private Json_parser parser;
@@ -83,7 +83,7 @@ public abstract class Xob_wdata_qid_base extends Xob_itm_dump_base implements Xo
private static final String GRP_KEY = "xowa.wdata.qid_wkr";
}
class Wdata_idx_bldr_qid extends Wdata_idx_mgr_base {
- public Wdata_idx_bldr_qid Ctor(Xob_wdata_qid_base wkr, Xob_bldr bldr, Xow_wiki wiki, int dump_fil_len) {super.Ctor(wkr, bldr, wiki, dump_fil_len); return this;}
+ public Wdata_idx_bldr_qid Ctor(Xob_wdata_qid_base wkr, Xob_bldr bldr, Xowe_wiki wiki, int dump_fil_len) {super.Ctor(wkr, bldr, wiki, dump_fil_len); return this;}
public void Add(String wiki_key, Xow_ns ns, byte[] ttl, byte[] qid) {
Wdata_idx_wtr wtr = Get_or_new(wiki_key, ns);
wtr.Write(ttl, qid);
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_qid_base_tst.java b/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_qid_base_tst.java
index 021782bfd..1299ed3b6 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_qid_base_tst.java
+++ b/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_qid_base_tst.java
@@ -17,7 +17,7 @@ along with this program. If not, see
.
*/
package gplx.xowa.xtns.wdatas.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
import org.junit.*;
-import gplx.xowa.wikis.*;
+import gplx.xowa.wikis.*; import gplx.xowa.tdbs.*;
public class Xob_wdata_qid_base_tst {
@Before public void init() {fxt = new gplx.xowa.bldrs.Xob_fxt().Ctor_mem();} gplx.xowa.bldrs.Xob_fxt fxt; // NOTE: reset memory instance (don't just call clear)
@Test public void Basic() {
@@ -123,11 +123,11 @@ public class Xob_wdata_qid_base_tst {
.Run(new Xob_wdata_qid_txt().Ctor(fxt.Bldr(), this.fxt.Wiki()))
;
}
- public static Io_url reg_(Xow_wiki wdata, String wiki, String ns_id) {
- return Wdata_idx_wtr.dir_qid_(wdata, wiki, ns_id).GenSubFil(Xow_dir_info_.Name_reg_fil);
+ public static Io_url reg_(Xowe_wiki wdata, String wiki, String ns_id) {
+ return Wdata_idx_wtr.dir_qid_(wdata, wiki, ns_id).GenSubFil(Xotdb_dir_info_.Name_reg_fil);
}
- public static Io_url ttl_(Xow_wiki wdata, String wiki, String ns_id, int fil_id) {
+ public static Io_url ttl_(Xowe_wiki wdata, String wiki, String ns_id, int fil_id) {
Io_url root = Wdata_idx_wtr.dir_qid_(wdata, wiki, ns_id);
- return Xow_fsys_mgr.Url_fil(root, fil_id, Xow_dir_info_.Bry_xdat);
+ return Xotdb_fsys_mgr.Url_fil(root, fil_id, Xotdb_dir_info_.Bry_xdat);
}
}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_qid_sql.java b/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_qid_sql.java
index d00e3660d..185dcb2d7 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_qid_sql.java
+++ b/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_qid_sql.java
@@ -23,7 +23,7 @@ public class Xob_wdata_qid_sql extends Xob_wdata_qid_base {
@Override public void Qid_bgn() {
db_mgr = wiki.Db_mgr_as_sql();
tbl = db_mgr.Tbl_wdata_qids();
- long wikidata_max = wiki.App().Setup_mgr().Dump_mgr().Db_wikidata_max();
+ long wikidata_max = wiki.Appe().Setup_mgr().Dump_mgr().Db_wikidata_max();
if (wikidata_max > 0) {
Xodb_file wdata_file = db_mgr.Fsys_mgr().Make(Xodb_file_tid.Tid_wikidata);
db_mgr.Fsys_mgr().Conn_wdata_(wdata_file);
@@ -38,7 +38,7 @@ public class Xob_wdata_qid_sql extends Xob_wdata_qid_base {
@Override public void Qid_end() {
conn.Txn_mgr().Txn_end_all();
stmt.Rls();
- db_mgr.Fsys_mgr().Index_create(wiki.App().Usr_dlg(), Byte_.Ary(Xodb_file_tid.Tid_core, Xodb_file_tid.Tid_wikidata), Index_wdata_qids);
+ db_mgr.Fsys_mgr().Index_create(wiki.Appe().Usr_dlg(), Byte_.Ary(Xodb_file_tid.Tid_core, Xodb_file_tid.Tid_wikidata), Index_wdata_qids);
}
private static final Db_idx_itm Index_wdata_qids = Db_idx_itm.sql_("CREATE INDEX IF NOT EXISTS wdata_qids__src ON wdata_qids (wq_src_wiki, wq_src_ns, wq_src_ttl);");
}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/parsers/Wdata_claims_parser_v2.java b/400_xowa/src/gplx/xowa/xtns/wdatas/parsers/Wdata_claims_parser_v2.java
index 4b04fc4ca..2b368f33f 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/parsers/Wdata_claims_parser_v2.java
+++ b/400_xowa/src/gplx/xowa/xtns/wdatas/parsers/Wdata_claims_parser_v2.java
@@ -82,6 +82,7 @@ class Wdata_claims_parser_v2 {
}
public Wdata_claim_grp_list Parse_qualifiers(byte[] qid, Json_itm_nde qualifiers_nde) {
Wdata_claim_grp_list rv = new Wdata_claim_grp_list();
+ if (qualifiers_nde == null) return rv; // NOTE:sometimes references can have 0 snaks; return back an empty Wdata_claim_grp_list, not null; PAGE:Птичкин,_Евгений_Николаевич; DATE:2015-02-16
int len = qualifiers_nde.Subs_len();
for (int i = 0; i < len; ++i) {
Json_itm_kv qualifier_kv = Json_itm_kv.cast_(qualifiers_nde.Subs_get_at(i));
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/parsers/Wdata_doc_parser_v2_tst.java b/400_xowa/src/gplx/xowa/xtns/wdatas/parsers/Wdata_doc_parser_v2_tst.java
index 17ff66792..2869fc185 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/parsers/Wdata_doc_parser_v2_tst.java
+++ b/400_xowa/src/gplx/xowa/xtns/wdatas/parsers/Wdata_doc_parser_v2_tst.java
@@ -365,4 +365,17 @@ public class Wdata_doc_parser_v2_tst {
), Int_.Ary(2, 3), fxt.Make_claim_entity(2, 21), fxt.Make_claim_entity(3, 31))
;
}
+ @Test public void References_empty() { // PURPOSE:sometimes references can have 0 snaks; return back an empty Wdata_claim_grp_list, not null; PAGE:Птичкин,_Евгений_Николаевич; DATE:2015-02-16
+ fxt.Test_references(String_.Concat_lines_nl_skip_last
+ ( "{ 'references':"
+ , " [ "
+ , " { 'hash':'8e7d51e38606193465d2a1e9d41ba490e06682a6'"
+ , " , 'snaks':[]"
+ , " , 'snaks-order':[]"
+ , " }"
+ , " ]"
+ , "}"
+ ), Int_.Ary_empty)
+ ;
+ }
}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_pf_noExternalLangLinks_tst.java b/400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_pf_noExternalLangLinks_tst.java
index 118836664..e63479bfb 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_pf_noExternalLangLinks_tst.java
+++ b/400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_pf_noExternalLangLinks_tst.java
@@ -42,7 +42,7 @@ class Wdata_pf_noExternalLangLinks_fxt {
expd_langs = null;
data.Reset();
return this;
- } private Xop_fxt parser_fxt; Xoa_app app; Xow_wiki wiki; Wdata_external_lang_links_data data;
+ } private Xop_fxt parser_fxt; Xoae_app app; Xowe_wiki wiki; Wdata_external_lang_links_data data;
public Wdata_pf_noExternalLangLinks_fxt Expd_enabled_(boolean v) {expd_enabled = v ? Bool_.Y_byte : Bool_.N_byte; return this;} private byte expd_enabled;
public Wdata_pf_noExternalLangLinks_fxt Expd_sort_(boolean v) {expd_sort = v ? Bool_.Y_byte : Bool_.N_byte; return this;} private byte expd_sort;
public Wdata_pf_noExternalLangLinks_fxt Expd_langs_(String... v) {expd_langs = v; return this;} private String[] expd_langs;
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_pf_property.java b/400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_pf_property.java
index fb809194d..cc9a62a4f 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_pf_property.java
+++ b/400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_pf_property.java
@@ -29,10 +29,10 @@ public class Wdata_pf_property extends Pf_func_base {
if (!property_wkr.Eval_bgn(ctx.Cur_page(), id)) return;
}
- Xoa_app app = ctx.App();
+ Xoae_app app = ctx.App();
Wdata_wiki_mgr wdata_mgr = app.Wiki_mgr().Wdata_mgr();
if (!wdata_mgr.Enabled()) return;
- Xow_wiki wiki = ctx.Wiki();
+ Xowe_wiki wiki = ctx.Wiki();
Xoa_ttl ttl = ctx.Cur_page().Ttl();
Wdata_pf_property_data data = new Wdata_pf_property_data();
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_pf_property_tst.java b/400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_pf_property_tst.java
index 84dda8c09..6450f4ef6 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_pf_property_tst.java
+++ b/400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_pf_property_tst.java
@@ -127,14 +127,14 @@ class Wdata_pf_property_data_fxt {
expd_id_int = -1;
expd_q = expd_of = null;
return this;
- } private Xoa_app app; private Wdata_wiki_mgr wdata_mgr; private Xop_fxt parser_fxt;
+ } private Xoae_app app; private Wdata_wiki_mgr wdata_mgr; private Xop_fxt parser_fxt;
public Wdata_pf_property_data_fxt Expd_id_int_(int v) {expd_id_int = v; return this;} private int expd_id_int;
public Wdata_pf_property_data_fxt Expd_q_(String v) {expd_q = Bry_.new_ascii_(v); return this;} private byte[] expd_q;
public Wdata_pf_property_data_fxt Expd_of_(String v) {expd_of = Bry_.new_ascii_(v); return this;} private byte[] expd_of;
public void Test_parse(String raw) {
Wdata_pf_property_data actl = new Wdata_pf_property_data();
byte[] raw_bry = Bry_.new_utf8_(raw);
- Xow_wiki wiki = parser_fxt.Wiki(); Xop_ctx ctx = wiki.Ctx();
+ Xowe_wiki wiki = parser_fxt.Wiki(); Xop_ctx ctx = wiki.Ctx();
Xop_tkn_mkr tkn_mkr = app.Tkn_mkr();
Wdata_pf_property pfunc = new Wdata_pf_property();
Xop_root_tkn root = tkn_mkr.Root(raw_bry);
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/specials/Wdata_itemByTitle_page.java b/400_xowa/src/gplx/xowa/xtns/wdatas/specials/Wdata_itemByTitle_page.java
index 36d974220..ef524fdb4 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/specials/Wdata_itemByTitle_page.java
+++ b/400_xowa/src/gplx/xowa/xtns/wdatas/specials/Wdata_itemByTitle_page.java
@@ -22,10 +22,10 @@ public class Wdata_itemByTitle_page implements Xows_page {
private static final byte[] Arg_site = Bry_.new_ascii_("site"), Arg_page = Bry_.new_ascii_("page");
public Bry_fmtr Html_fmtr() {return html_fmtr;}
private Wdata_itemByTitle_cfg cfg;
- public void Special_gen(Xoa_url calling_url, Xoa_page page, Xow_wiki wiki, Xoa_ttl ttl) {
- if (cfg == null) cfg = (Wdata_itemByTitle_cfg)wiki.App().Special_mgr().Get_or_null(Wdata_itemByTitle_cfg.Key);
+ public void Special_gen(Xoa_url calling_url, Xoae_page page, Xowe_wiki wiki, Xoa_ttl ttl) {
+ if (cfg == null) cfg = (Wdata_itemByTitle_cfg)wiki.Appe().Special_mgr().Get_or_null(Wdata_itemByTitle_cfg.Key);
// Special:ItemByTitle/enwiki/Earth -> www.wikidata.org/wiki/Q2
- Gfo_usr_dlg usr_dlg = wiki.App().Usr_dlg();
+ Gfo_usr_dlg usr_dlg = wiki.Appe().Usr_dlg();
byte[] site_bry = cfg.Site_default();
byte[] page_bry = Bry_.Empty;
byte[] raw_bry = ttl.Full_txt_wo_qarg(); // EX: enwiki/Earth
@@ -44,7 +44,7 @@ public class Wdata_itemByTitle_page implements Xows_page {
page_bry = Bry_.Mid(raw_bry, page_bgn + 1, raw_bry_len);
}
}
- Xoa_app app = wiki.App();
+ Xoae_app app = wiki.Appe();
if (Bry_.Len_gt_0(site_bry) && Bry_.Len_gt_0(page_bry))
if (Navigate(usr_dlg, app, app.Wiki_mgr().Wdata_mgr(), page, site_bry, page_bry)) return;
Bry_bfr tmp_bfr = wiki.Utl_bry_bfr_mkr().Get_k004();
@@ -52,14 +52,14 @@ public class Wdata_itemByTitle_page implements Xows_page {
page.Data_raw_(tmp_bfr.Mkr_rls().Xto_bry_and_clear());
page.Html_data().Html_restricted_n_(); // [[Special:]] pages allow all HTML
}
- private static boolean Navigate(Gfo_usr_dlg usr_dlg, Xoa_app app, Wdata_wiki_mgr wdata_mgr, Xoa_page page, byte[] site_bry, byte[] page_bry) {
- page_bry = app.Encoder_mgr().Url().Decode(page_bry); // NOTE: space is converted to + on postback to url; decode
+ private static boolean Navigate(Gfo_usr_dlg usr_dlg, Xoae_app app, Wdata_wiki_mgr wdata_mgr, Xoae_page page, byte[] site_bry, byte[] page_bry) {
+ page_bry = Xoa_app_.Utl_encoder_mgr().Url().Decode(page_bry); // NOTE: space is converted to + on postback to url; decode
byte[] wiki_domain = Xow_wiki_alias.Parse_wmf_key(site_bry); if (wiki_domain == null) {usr_dlg.Warn_many("", "", "site_bry parse failed; site_bry:~{0}", String_.new_utf8_(site_bry)); return false;}
- Xow_wiki wiki = app.Wiki_mgr().Get_by_key_or_make(wiki_domain); if (wiki == null) {usr_dlg.Warn_many("", "", "wiki_domain does not exist; wiki_domain:~{0}", String_.new_utf8_(wiki_domain)); return false;}
+ Xowe_wiki wiki = app.Wiki_mgr().Get_by_key_or_make(wiki_domain); if (wiki == null) {usr_dlg.Warn_many("", "", "wiki_domain does not exist; wiki_domain:~{0}", String_.new_utf8_(wiki_domain)); return false;}
Xoa_ttl wdata_ttl = Xoa_ttl.parse_(wiki, page_bry); if (wdata_ttl == null) {usr_dlg.Warn_many("", "", "ttl is invalid; ttl:~{0}", String_.new_utf8_(page_bry)); return false;}
Wdata_doc doc = wdata_mgr.Pages_get(wiki, wdata_ttl); if (doc == null) {usr_dlg.Warn_many("", "", "ttl cannot be found in wikidata; ttl:~{0}", String_.new_utf8_(wdata_ttl.Raw())); return false;}
byte[] qid_bry = doc.Qid();
- Xoa_page qid_page = wdata_mgr.Wdata_wiki().Data_mgr().Redirect(page, qid_bry); if (qid_page.Missing()) {usr_dlg.Warn_many("", "", "qid cannot be found in wikidata; qid:~{0}", String_.new_utf8_(qid_bry)); return false;}
+ Xoae_page qid_page = wdata_mgr.Wdata_wiki().Data_mgr().Redirect(page, qid_bry); if (qid_page.Missing()) {usr_dlg.Warn_many("", "", "qid cannot be found in wikidata; qid:~{0}", String_.new_utf8_(qid_bry)); return false;}
return true;
}
private static Bry_fmtr html_fmtr = Bry_fmtr.new_(String_.Concat_lines_nl
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/specials/Wdata_itemByTitle_page_tst.java b/400_xowa/src/gplx/xowa/xtns/wdatas/specials/Wdata_itemByTitle_page_tst.java
index 6974e8aff..e43bc1a2e 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/specials/Wdata_itemByTitle_page_tst.java
+++ b/400_xowa/src/gplx/xowa/xtns/wdatas/specials/Wdata_itemByTitle_page_tst.java
@@ -49,7 +49,7 @@ class Wdata_itemByTitle_page_fxt {
wiki = parser_fxt.Wiki();
special_page = wiki.Special_mgr().Page_itemByTitle();
wdata_fxt = new Wdata_wiki_mgr_fxt().Init(parser_fxt, true);
- } private Xop_fxt parser_fxt; private Xoa_app app; private Wdata_itemByTitle_page special_page; private Xow_wiki wiki;
+ } private Xop_fxt parser_fxt; private Xoae_app app; private Wdata_itemByTitle_page special_page; private Xowe_wiki wiki;
Wdata_wiki_mgr_fxt wdata_fxt;
public void Init_wdata_page(String qid_ttl, String text) {
Wdata_doc doc = wdata_fxt.Wdoc_bldr(qid_ttl).Xto_wdoc();
@@ -57,10 +57,10 @@ class Wdata_itemByTitle_page_fxt {
parser_fxt.Init_page_create(app.Wiki_mgr().Wdata_mgr().Wdata_wiki(), qid_ttl, text);
}
public void Init_wdata_label(String wmf_key_str, String wdata_label, String qid) {
- wdata_fxt.Init_qids_add("en", Xow_wiki_domain_.Tid_wikipedia, wdata_label, qid);
+ wdata_fxt.Init_qids_add("en", Xow_domain_.Tid_int_wikipedia, wdata_label, qid);
}
public void Test_open(String link, String expd) {
- Xoa_page page = wiki.Ctx().Cur_page();
+ Xoae_page page = wiki.Ctx().Cur_page();
Xoa_url url = Xoa_url_parser.Parse_url(app, wiki, link);
page.Url_(url);
Xoa_ttl ttl = Xoa_ttl.parse_(wiki, Bry_.new_ascii_(link));
diff --git a/400_xowa/src/gplx/xowa/xtns/xowa_cmds/Xop_xowa_cmd.java b/400_xowa/src/gplx/xowa/xtns/xowa_cmds/Xop_xowa_cmd.java
index 1006bf2a2..f2874a3a9 100644
--- a/400_xowa/src/gplx/xowa/xtns/xowa_cmds/Xop_xowa_cmd.java
+++ b/400_xowa/src/gplx/xowa/xtns/xowa_cmds/Xop_xowa_cmd.java
@@ -20,7 +20,7 @@ import gplx.xowa.html.*;
public class Xop_xowa_cmd implements Xox_xnde {
public Xop_root_tkn Xtn_root() {throw Err_.not_implemented_msg_("xowa_cmd.xtn_root should not be called");}
public byte[] Xtn_html() {return xtn_html;} private byte[] xtn_html;
- public void Xtn_parse(Xow_wiki wiki, Xop_ctx ctx, Xop_root_tkn root, byte[] src, Xop_xnde_tkn xnde) {
+ public void Xtn_parse(Xowe_wiki wiki, Xop_ctx ctx, Xop_root_tkn root, byte[] src, Xop_xnde_tkn xnde) {
int itm_bgn = xnde.Tag_open_end(), itm_end = xnde.Tag_close_bgn();
if (itm_bgn == src.length) return; // NOTE: handle inline where there is no content to parse; EX:
if (src[itm_bgn] == Byte_ascii.NewLine) ++itm_bgn; // ignore 1st \n;
@@ -28,7 +28,7 @@ public class Xop_xowa_cmd implements Xox_xnde {
byte[] raw = Bry_.Mid(src, itm_bgn, itm_end);
byte[] xtn_src = raw;
if (wiki.Sys_cfg().Xowa_cmd_enabled()) { // only exec if enabled for wiki
- Object rslt = wiki.App().Gfs_mgr().Run_str(String_.new_utf8_(raw));
+ Object rslt = wiki.Appe().Gfs_mgr().Run_str(String_.new_utf8_(raw));
xtn_src = Bry_.new_utf8_(Object_.Xto_str_strict_or_null_mark(rslt));
}
Xop_tkn_mkr tkn_mkr = ctx.Tkn_mkr();
@@ -36,7 +36,7 @@ public class Xop_xowa_cmd implements Xox_xnde {
Xop_root_tkn sub_root = tkn_mkr.Root(xtn_src);
xtn_html = wiki.Parser().Parse_text_to_wtxt(sub_root, sub_ctx, ctx.Tkn_mkr(), xtn_src);
}
- public void Xtn_write(Bry_bfr bfr, Xoa_app app, Xop_ctx ctx, Xoh_html_wtr html_wtr, Xoh_wtr_ctx hctx, Xop_xnde_tkn xnde, byte[] src) {
+ public void Xtn_write(Bry_bfr bfr, Xoae_app app, Xop_ctx ctx, Xoh_html_wtr html_wtr, Xoh_wtr_ctx hctx, Xop_xnde_tkn xnde, byte[] src) {
throw Err_.not_implemented_msg_("xowa_cmd.xtn_write should not be called");
}
}
diff --git a/400_xowa/src/gplx/xowa/xtns/xowa_cmds/Xop_xowa_cmd_tst.java b/400_xowa/src/gplx/xowa/xtns/xowa_cmds/Xop_xowa_cmd_tst.java
index 6917f28ad..20f1427e4 100644
--- a/400_xowa/src/gplx/xowa/xtns/xowa_cmds/Xop_xowa_cmd_tst.java
+++ b/400_xowa/src/gplx/xowa/xtns/xowa_cmds/Xop_xowa_cmd_tst.java
@@ -24,7 +24,7 @@ public class Xop_xowa_cmd_tst {
fxt.Reset();
} private Xop_fxt fxt = new Xop_fxt();
@Test public void Basic() {
- GfsCore._.AddCmd(fxt.App(), Xoa_app.Invk_app);
+ GfsCore._.AddCmd(fxt.App(), Xoae_app.Invk_app);
fxt.Wiki().Sys_cfg().Xowa_cmd_enabled_(false);
fxt.Test_parse_page_all_str(String_.Concat_lines_nl_skip_last
( "
"
diff --git a/400_xowa/src/gplx/xowa/xtns/xowa_cmds/Xop_xowa_func_tst.java b/400_xowa/src/gplx/xowa/xtns/xowa_cmds/Xop_xowa_func_tst.java
index 0c8e39d1c..0fe8302bf 100644
--- a/400_xowa/src/gplx/xowa/xtns/xowa_cmds/Xop_xowa_func_tst.java
+++ b/400_xowa/src/gplx/xowa/xtns/xowa_cmds/Xop_xowa_func_tst.java
@@ -23,7 +23,7 @@ public class Xop_xowa_func_tst {
Xoa_gfs_mgr.Msg_parser_init();
} private Xop_fxt fxt = new Xop_fxt();
@Test public void Template() {
- GfsCore._.AddCmd(fxt.App(), Xoa_app.Invk_app);
+ GfsCore._.AddCmd(fxt.App(), Xoae_app.Invk_app);
fxt.Wiki().Sys_cfg().Xowa_cmd_enabled_(true);
fxt.Init_defn_add("A", "{{#xowa|{{{1}}}}}");
fxt.Test_parse_page_all_str("{{A|app.users.get('anonymous').name;}}", "anonymous");
diff --git a/400_xowa/src/gplx/xowa/xtns/xowa_cmds/Xox_xowa_html_cmd.java b/400_xowa/src/gplx/xowa/xtns/xowa_cmds/Xox_xowa_html_cmd.java
index bd207f52f..5e2c0ed4e 100644
--- a/400_xowa/src/gplx/xowa/xtns/xowa_cmds/Xox_xowa_html_cmd.java
+++ b/400_xowa/src/gplx/xowa/xtns/xowa_cmds/Xox_xowa_html_cmd.java
@@ -21,7 +21,7 @@ public class Xox_xowa_html_cmd implements Xox_xnde, Xop_xnde_atr_parser {
private byte pos_val = Pos_head_end;
public Xop_root_tkn Xtn_root() {throw Err_.not_implemented_msg_("xowa_html_cmd.xtn_root should not be called");}
public byte[] Xtn_html() {throw Err_.not_implemented_msg_("xowa_html_cmd.xtn_html should not be called");}
- public void Xatr_parse(Xow_wiki wiki, byte[] src, Xop_xatr_itm xatr, Object xatr_key_obj) {
+ public void Xatr_parse(Xowe_wiki wiki, byte[] src, Xop_xatr_itm xatr, Object xatr_key_obj) {
if (xatr_key_obj == null) return;
Byte_obj_val xatr_key = (Byte_obj_val)xatr_key_obj;
switch (xatr_key.Val()) {
@@ -29,12 +29,12 @@ public class Xox_xowa_html_cmd implements Xox_xnde, Xop_xnde_atr_parser {
default: throw Err_.unhandled(xatr_key.Val());
}
}
- public void Xtn_parse(Xow_wiki wiki, Xop_ctx ctx, Xop_root_tkn root, byte[] src, Xop_xnde_tkn xnde) {
+ public void Xtn_parse(Xowe_wiki wiki, Xop_ctx ctx, Xop_root_tkn root, byte[] src, Xop_xnde_tkn xnde) {
if (!wiki.Sys_cfg().Xowa_cmd_enabled()) { // not allowed; warn and exit
- wiki.App().Usr_dlg().Warn_many("", "", "xowa_html command only allowed in xowa_home");
+ wiki.Appe().Usr_dlg().Warn_many("", "", "xowa_html command only allowed in xowa_home");
return;
}
- Xop_xatr_itm.Xatr_parse(wiki.App(), this, atr_hash, wiki, src, xnde);
+ Xop_xatr_itm.Xatr_parse(wiki.Appe(), this, atr_hash, wiki, src, xnde);
int itm_bgn = xnde.Tag_open_end(), itm_end = xnde.Tag_close_bgn();
if (src[itm_bgn] == Byte_ascii.NewLine) ++itm_bgn; // ignore 1st \n;
// if (src[itm_end - 1] == Byte_ascii.NewLine) --itm_end; // ignore last \n;
@@ -44,7 +44,7 @@ public class Xox_xowa_html_cmd implements Xox_xnde, Xop_xnde_atr_parser {
else
ctx.Cur_page().Html_data().Custom_html_end_concat(raw);
}
- public void Xtn_write(Bry_bfr bfr, Xoa_app app, Xop_ctx ctx, Xoh_html_wtr html_wtr, Xoh_wtr_ctx hctx, Xop_xnde_tkn xnde, byte[] src) {}
+ public void Xtn_write(Bry_bfr bfr, Xoae_app app, Xop_ctx ctx, Xoh_html_wtr html_wtr, Xoh_wtr_ctx hctx, Xop_xnde_tkn xnde, byte[] src) {}
private static byte Pos_val(byte[] bry) {
Object o = pos_val_hash.Get_by_bry(bry);
if (o == null) throw Err_.new_("unknown pos:{0}", String_.new_utf8_(bry));
diff --git a/400_xowa/src/gplx/xowa/xtns/xowa_cmds/Xox_xowa_html_cmd_tst.java b/400_xowa/src/gplx/xowa/xtns/xowa_cmds/Xox_xowa_html_cmd_tst.java
index ef19ccd3f..fa935be81 100644
--- a/400_xowa/src/gplx/xowa/xtns/xowa_cmds/Xox_xowa_html_cmd_tst.java
+++ b/400_xowa/src/gplx/xowa/xtns/xowa_cmds/Xox_xowa_html_cmd_tst.java
@@ -36,7 +36,7 @@ public class Xox_xowa_html_cmd_tst {
class Xox_xowa_html_cmd_fxt {
private Bry_bfr bfr = Bry_bfr.reset_(16);
private Xop_fxt fxt = new Xop_fxt();
- private Xow_wiki wiki; private Xow_html_mgr html_mgr;
+ private Xowe_wiki wiki; private Xow_html_mgr html_mgr;
public void Clear() {
this.wiki = fxt.Wiki();
html_mgr = wiki.Html_mgr();
diff --git a/400_xowa/src/gplx/xowa2/apps/Xoav_app.java b/400_xowa/src/gplx/xowa2/apps/Xoav_app.java
index 4018f7f07..292a29e2f 100644
--- a/400_xowa/src/gplx/xowa2/apps/Xoav_app.java
+++ b/400_xowa/src/gplx/xowa2/apps/Xoav_app.java
@@ -17,14 +17,22 @@ along with this program. If not, see .
*/
package gplx.xowa2.apps; import gplx.*; import gplx.xowa2.*;
import gplx.dbs.*; import gplx.xowa.apps.fsys.*; import gplx.xowa.parsers.amps.*; import gplx.xowa.langs.cases.*; import gplx.intl.*; import gplx.xowa.users.data.*;
-import gplx.xowa2.apps.urls.*; import gplx.xowa2.users.*;
-public class Xoav_app {
- public Xoav_app() {
- this.fsys_mgr = new Xoa_fsys_mgr();
+import gplx.xowa.*;
+import gplx.xowa2.apps.urls.*; import gplx.xowa2.users.*; import gplx.xowa.files.caches.*; import gplx.xowa.files.imgs.*;
+import gplx.xowa.wmfs.*;
+public class Xoav_app implements Xoa_app {
+ public Xoav_app(Gfo_usr_dlg usr_dlg, String plat_name, Io_url root_dir) {
+ this.fsys_mgr = new Xoa_fsys_mgr(plat_name, root_dir);
+ this.file_mgr__cache_mgr = new Xof_cache_mgr(usr_dlg, null, null);
+ this.file_mgr__img_mgr = new Xof_img_mgr();
this.wiki_mgr = new Xoav_wiki_mgr(this, utl_case_mgr);
this.utl_msg_log = Gfo_msg_log.Test();
}
- public Xoa_fsys_mgr Fsys_mgr() {return fsys_mgr;} private Xoa_fsys_mgr fsys_mgr;
+ public Xoa_fsys_mgr Fsys_mgr() {return fsys_mgr;} private final Xoa_fsys_mgr fsys_mgr;
+ public Xof_cache_mgr File_mgr__cache_mgr() {return file_mgr__cache_mgr;} private final Xof_cache_mgr file_mgr__cache_mgr;
+ public Xof_img_mgr File_mgr__img_mgr() {return file_mgr__img_mgr;} private final Xof_img_mgr file_mgr__img_mgr;
+ public Xowmf_mgr Wmf_mgr() {return wmf_mgr;} private final Xowmf_mgr wmf_mgr = new Xowmf_mgr();
+
public Xoav_wiki_mgr Wiki_mgr() {return wiki_mgr;} private final Xoav_wiki_mgr wiki_mgr;
public Xoud_data_mgr User_data_mgr() {return user_data_mgr;} private Xoud_data_mgr user_data_mgr = new Xoud_data_mgr();
@@ -36,7 +44,4 @@ public class Xoav_app {
public Gfo_msg_log Utl_msg_log() {return utl_msg_log;} private Gfo_msg_log utl_msg_log;
public Xoav_url_parser Utl_url_parser_xo() {return utl_url_parser_xo;} private Xoav_url_parser utl_url_parser_xo = new Xoav_url_parser();
public Gfo_url_parser Utl_url_parser_gfo() {return utl_url_parser_gfo;} private final Gfo_url_parser utl_url_parser_gfo = new Gfo_url_parser();
- public void Init_by_boot(String plat_name, Io_url root_dir) {
- fsys_mgr.Init_by_boot(plat_name, root_dir);
- }
}
diff --git a/400_xowa/src/gplx/xowa2/files/Xof_orig_mgr.java b/400_xowa/src/gplx/xowa2/files/Xof_orig_mgr.java
deleted file mode 100644
index d9201ed2c..000000000
--- a/400_xowa/src/gplx/xowa2/files/Xof_orig_mgr.java
+++ /dev/null
@@ -1,22 +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.xowa2.files; import gplx.*; import gplx.xowa2.*;
-import gplx.xowa2.files.orig_regy.*;
-public interface Xof_orig_mgr {
- Xof_orig_regy_itm Get_by_ttl(byte[] ttl);
-}
diff --git a/400_xowa/src/gplx/xowa2/files/Xofv_file_itm.java b/400_xowa/src/gplx/xowa2/files/Xofv_file_itm.java
index 3dc543924..018310919 100644
--- a/400_xowa/src/gplx/xowa2/files/Xofv_file_itm.java
+++ b/400_xowa/src/gplx/xowa2/files/Xofv_file_itm.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.xowa2.files; import gplx.*; import gplx.xowa2.*;
-import gplx.xowa.*; import gplx.xowa.files.*; import gplx.xowa2.files.orig_regy.*;
+import gplx.xowa.*; import gplx.xowa.files.*; import gplx.xowa.files.repos.*; import gplx.xowa.files.origs.*;
public class Xofv_file_itm {
Xofv_file_itm(byte[] file_repo, byte[] file_ttl, byte[] file_md5, Xof_ext file_ext, Io_url file_url, int html_uid, int html_w, int html_h, byte lnki_exec_tid, boolean lnki_is_orig, double lnki_time, int lnki_page) {
this.file_repo = file_repo; this.file_ttl = file_ttl; this.file_md5 = file_md5; this.file_ext = file_ext; this.file_url = file_url;
@@ -36,10 +36,10 @@ public class Xofv_file_itm {
public boolean Lnki_is_orig() {return lnki_is_orig;} private final boolean lnki_is_orig;
public double Lnki_time() {return lnki_time;} private final double lnki_time;
public int Lnki_page() {return lnki_page;} private final int lnki_page;
- public static Xofv_file_itm new_(Xof_xfer_itm xfer, Xof_orig_regy_itm orig, Xofv_repo_mgr repo_mgr, Xof_img_size img_size, Xof_url_bldr url_bldr) {
- Xofv_repo_itm repo = repo_mgr.Get_by_tid(orig.Repo_tid());
+ public static Xofv_file_itm new_(Xof_xfer_itm xfer, Xof_orig_itm orig, Xofv_repo_mgr repo_mgr, Xof_img_size img_size, Xof_url_bldr url_bldr) {
+ Xofv_repo_itm repo = repo_mgr.Get_by_tid(orig.Repo());
byte[] file_repo = repo.Key();
- byte[] file_ttl = orig.Orig_redirect(); if (file_ttl == null) file_ttl = orig.Ttl();
+ byte[] file_ttl = orig.Redirect(); if (Bry_.Len_eq_0(file_ttl)) file_ttl = orig.Page();
byte[] file_md5 = Xof_xfer_itm_.Md5_(file_ttl);
Xof_ext file_ext = Xof_ext_.new_by_ttl_(file_ttl);
byte lnki_exec_tid = xfer.Lnki_exec_tid();
@@ -49,7 +49,7 @@ public class Xofv_file_itm {
int html_uid = xfer.Html_uid();
img_size.Html_size_calc
( xfer.Lnki_exec_tid(), xfer.Lnki_w(), xfer.Lnki_h(), xfer.Lnki_type(), Xof_patch_upright_tid_.Tid_all, xfer.Lnki_upright()
- , file_ext.Id(), orig.Orig_w(), orig.Orig_h(), Xof_img_size.Thumb_width_img);
+ , file_ext.Id(), orig.W(), orig.H(), Xof_img_size.Thumb_width_img);
int html_w = img_size.Html_w();
int html_h = img_size.Html_h();
byte repo_mode = 0; byte[] repo_dir_sub = null;
diff --git a/400_xowa/src/gplx/xowa2/files/Xofv_file_mgr.java b/400_xowa/src/gplx/xowa2/files/Xofv_file_mgr.java
index 34fbad020..83d0ded70 100644
--- a/400_xowa/src/gplx/xowa2/files/Xofv_file_mgr.java
+++ b/400_xowa/src/gplx/xowa2/files/Xofv_file_mgr.java
@@ -16,31 +16,35 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa2.files; import gplx.*; import gplx.xowa2.*;
-import gplx.xowa.*; import gplx.xowa.files.*; import gplx.xowa.files.wiki_orig.*;
-import gplx.xowa2.files.orig_regy.*;
+import gplx.dbs.*;
+import gplx.xowa.*; import gplx.xowa.files.*; import gplx.xowa.files.caches.*;
+import gplx.xowa.files.origs.*; import gplx.xowa.wmfs.apis.*;
public class Xofv_file_mgr {
private final Xop_xfer_itm_hash lnki_hash = new Xop_xfer_itm_hash();
private final Xofv_file_itm_list html_list = new Xofv_file_itm_list();
private final Xof_url_bldr url_bldr = Xof_url_bldr.new_v2_(); private final Xof_img_size img_size = new Xof_img_size();
- public Xofv_file_mgr(byte[] wiki_bry) {this.wiki_bry = wiki_bry;}
+ public Xofv_file_mgr(byte[] wiki_bry) {
+ this.wiki_bry = wiki_bry;
+ this.cache_mgr = new Xof_cache_mgr(Gfo_usr_dlg_._, null, null);
+ }
public byte[] Wiki_bry() {return wiki_bry;} private final byte[] wiki_bry;
public Xofv_repo_mgr Repo_mgr() {return repo_mgr;} private final Xofv_repo_mgr repo_mgr = new Xofv_repo_mgr();
- public Xof_orig_mgr Orig_mgr() {return orig_mgr;} public Xofv_file_mgr Orig_mgr_(Xof_orig_mgr v) {orig_mgr = v; return this;} private Xof_orig_mgr orig_mgr;
+ public Xof_orig_wkr__orig_db Orig_wkr() {return orig_wkr;} private Xof_orig_wkr__orig_db orig_wkr = new Xof_orig_wkr__orig_db();
public Xof_fsdb_mgr Fsdb_mgr() {return fsdb_mgr;} public Xofv_file_mgr Fsdb_mgr_(Xof_fsdb_mgr v) {fsdb_mgr = v; return this;} private Xof_fsdb_mgr fsdb_mgr;
- public Xou_cache_mgr Cache_mgr() {return cache_mgr;} public Xofv_file_mgr Cache_mgr_(Xou_cache_mgr v) {cache_mgr = v; return this;} private Xou_cache_mgr cache_mgr;
+ public Xof_cache_mgr Cache_mgr() {return cache_mgr;} private final Xof_cache_mgr cache_mgr;
public void Clear() {lnki_hash.Clear();}
public void Reg(Xof_xfer_itm xfer_itm) {lnki_hash.Add(xfer_itm);}
public void Process_lnki() {
while (true) {
Xof_xfer_itm xfer = lnki_hash.Pop_at_or_null(0); if (xfer == null) break; // no more items; stop
- Xof_orig_regy_itm orig = orig_mgr.Get_by_ttl(xfer.Lnki_ttl());
- if (orig == null) {
+ Xof_orig_itm orig = orig_wkr.Find_as_itm(xfer.Lnki_ttl());
+ if (orig == Xof_orig_itm.Null) {
Gfo_usr_dlg_._.Warn_many("", "", "orig not found for lnki; lnki_ttl=~{0}", xfer.Lnki_ttl());
continue;
}
boolean fsdb_download = true; // default download to true
Xofv_file_itm itm = Xofv_file_itm.new_(xfer, orig, repo_mgr, img_size, url_bldr);
- Xou_cache_fil cache_fil = cache_mgr.Fil__get_or_null(itm.File_repo(), itm.File_ttl(), itm.Lnki_is_orig(), itm.Html_w(), itm.Lnki_time(), itm.Lnki_page());
+ Xofc_fil_itm cache_fil = cache_mgr.Fil__get_or_null(itm.File_repo(), itm.File_ttl(), itm.Lnki_is_orig(), itm.Html_w(), itm.Lnki_time(), itm.Lnki_page());
if (cache_fil != null) {
if (Io_mgr._.ExistsFil(itm.File_url()))
fsdb_download = false; // cache exists and itm exists; don't download file
@@ -51,11 +55,13 @@ public class Xofv_file_mgr {
continue;
}
}
- if (cache_fil == null)
- cache_fil = new Xou_cache_fil(1, 1, itm.File_repo(), itm.File_ttl(), Xof_ext_.new_by_ttl_(itm.File_ttl()).Id(), itm.Lnki_is_orig(), itm.Html_w(), itm.Html_w(), itm.Lnki_time(), itm.Lnki_page(), itm.File_size(), 0);
+ if (cache_fil == null) {
+ cache_fil = cache_mgr.Fil__make(itm.File_repo(), itm.File_ttl(), itm.Lnki_is_orig(), itm.Html_w(), itm.Html_w(), itm.Lnki_time(), itm.Lnki_page(), itm.File_size());
+ }
cache_mgr.Fil__update(cache_fil);
html_list.Add(itm);
}
+ cache_mgr.Db_save();
}
@gplx.Internal protected void Process_html(Xog_html_gui html_gui) {
while (true) {
diff --git a/400_xowa/src/gplx/xowa2/files/Xofv_file_mgr_tst.java b/400_xowa/src/gplx/xowa2/files/Xofv_file_mgr_tst.java
index 606c4ab2a..95aac9c0f 100644
--- a/400_xowa/src/gplx/xowa2/files/Xofv_file_mgr_tst.java
+++ b/400_xowa/src/gplx/xowa2/files/Xofv_file_mgr_tst.java
@@ -16,11 +16,12 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa2.files; import gplx.*; import gplx.xowa2.*;
-import org.junit.*; import gplx.core.primitives.*;
-import gplx.xowa.*; import gplx.xowa.files.*; import gplx.xowa.files.fsdb.*; import gplx.xowa.files.fsdb.caches.*; import gplx.xowa.files.wiki_orig.*;
-import gplx.xowa2.apps.*; import gplx.xowa2.wikis.*; import gplx.xowa2.files.orig_regy.*;
+import org.junit.*; import gplx.core.primitives.*; import gplx.dbs.*;
+import gplx.xowa.*; import gplx.xowa.files.*; import gplx.xowa.files.fsdb.*; import gplx.xowa.files.caches.*;
+import gplx.xowa2.apps.*; import gplx.xowa2.wikis.*; import gplx.xowa.files.origs.*;
public class Xofv_file_mgr_tst {
- @Before public void init() {fxt.Clear();} private Xofv_file_mgr_fxt fxt = new Xofv_file_mgr_fxt();
+ @Before public void init() {fxt.Clear();} private final Xofv_file_mgr_fxt fxt = new Xofv_file_mgr_fxt();
+ @After public void term() {Gfo_usr_dlg_._ = Gfo_usr_dlg_.Null;}
@Test public void Thumb() {
fxt .Init_orig_add(fxt.Mkr_orig().Init_comm("A.png", 440, 400))
.Init_fsdb_add(fxt.Mkr_fsdb().Init_comm_thum("A.png", 220, 200))
@@ -83,20 +84,21 @@ public class Xofv_file_mgr_tst {
}
class Xofv_file_mgr_fxt {
private Xofv_file_mgr file_mgr;
- private final Xof_orig_mgr__test orig_mgr = new Xof_orig_mgr__test(); private final Xou_cache_mgr__test cache_mgr = new Xou_cache_mgr__test();
private final Xof_fsdb_mgr__test fsdb_mgr = new Xof_fsdb_mgr__test(); private final Xog_html_gui__test html_gui = new Xog_html_gui__test();
public Xof_xfer_mkr Mkr_xfer() {return mkr_xfer;} private final Xof_xfer_mkr mkr_xfer = new Xof_xfer_mkr();
- public Xofv_orig_mkr Mkr_orig() {return mkr_orig;} private final Xofv_orig_mkr mkr_orig = new Xofv_orig_mkr();
+ public Xof_orig_itm_mkr Mkr_orig() {return mkr_orig;} private final Xof_orig_itm_mkr mkr_orig = new Xof_orig_itm_mkr();
public Xof_fsdb_mkr Mkr_fsdb() {return mkr_fsdb;} private final Xof_fsdb_mkr mkr_fsdb = new Xof_fsdb_mkr();
public Xog_html_rsc_mkr Mkr_html() {return mkr_html;} private final Xog_html_rsc_mkr mkr_html = new Xog_html_rsc_mkr();
- public Xou_cache_mgr_itm_mkr Mkr_cache() {return mkr_cache;} private final Xou_cache_mgr_itm_mkr mkr_cache = new Xou_cache_mgr_itm_mkr();
+ public Xou_cache_itm_mkr Mkr_cache() {return mkr_cache;} private final Xou_cache_itm_mkr mkr_cache = new Xou_cache_itm_mkr();
public void Clear() {
file_mgr = new Xofv_file_mgr(Bry_.new_ascii_("enwiki"));
- orig_mgr.Clear();
- cache_mgr.Clear();
+ Db_conn_bldr.I.Reg_default_mem();
+ Db_conn conn = Db_conn_bldr.I.New("", Io_url_.mem_fil_("mem/file/cache.db")); boolean created = Bool_.Y; boolean version_is_1 = Bool_.N;
+ file_mgr.Cache_mgr().Init_for_db(conn, created, version_is_1);
+ file_mgr.Orig_wkr().Conn_(conn, created, version_is_1);
fsdb_mgr.Clear();
html_gui.Clear();
- file_mgr.Orig_mgr_(orig_mgr).Cache_mgr_(cache_mgr).Fsdb_mgr_(fsdb_mgr);
+ file_mgr.Fsdb_mgr_(fsdb_mgr);
Clear_repos();
}
private void Clear_repos() {
@@ -109,9 +111,9 @@ class Xofv_file_mgr_fxt {
mkr_fsdb.Setup_repos(Bry_.new_ascii_("comm"), Bry_.new_ascii_("wiki"));
}
public Xofv_file_mgr_fxt Init_xfer_add(Xof_xfer_mkr mkr) {file_mgr.Reg(mkr.Make()); return this;}
- public Xofv_file_mgr_fxt Init_orig_add(Xofv_orig_mkr mkr) {orig_mgr.Add(mkr.Make()); return this;}
+ public Xofv_file_mgr_fxt Init_orig_add(Xof_orig_itm_mkr mkr) {mkr.Make(file_mgr.Orig_wkr()); return this;}
public Xofv_file_mgr_fxt Init_fsdb_add(Xof_fsdb_mkr mkr) {fsdb_mgr.Add(mkr.Make()); return this;}
- public Xofv_file_mgr_fxt Init_cache_add(Xou_cache_mgr_itm_mkr mkr) {cache_mgr.Fil__update(mkr.Make()); return this;}
+ public Xofv_file_mgr_fxt Init_cache_add(Xou_cache_itm_mkr mkr) {mkr.Make(file_mgr.Cache_mgr()); return this;}
public Xofv_file_mgr_fxt Init_fsys_add(String s) {Io_mgr._.SaveFilStr(s, ""); return this;}
public Xofv_file_mgr_fxt Exec_process_lnki() {file_mgr.Process_lnki(); return this;}
public Xofv_file_mgr_fxt Test_fsys_get(String path) {
@@ -179,29 +181,28 @@ class Xof_xfer_mkr {
return rv;
}
}
-class Xofv_orig_mkr {
+class Xof_orig_itm_mkr {
private byte[] ttl_bry; private int ext, orig_w, orig_h; private Xofv_repo_itm repo;
private byte[] redirect_bry;
private Xofv_repo_itm repo_comm, repo_wiki;
- public Xofv_orig_mkr() {this.Reset();}
+ public Xof_orig_itm_mkr() {this.Reset();}
private void Reset() {
- redirect_bry = null;
+ redirect_bry = Bry_.Empty;
}
public void Setup_repos(Xofv_repo_itm repo_comm, Xofv_repo_itm repo_wiki) {this.repo_comm = repo_comm; this.repo_wiki = repo_wiki;}
- public Xofv_orig_mkr Init_comm_redirect(String src, String trg, int orig_w, int orig_h) {return Init(Bool_.Y, src, trg, orig_w, orig_h);}
- public Xofv_orig_mkr Init_comm(String ttl_str, int orig_w, int orig_h) {return Init(Bool_.Y, ttl_str, null, orig_w, orig_h);}
- public Xofv_orig_mkr Init_wiki(String ttl_str, int orig_w, int orig_h) {return Init(Bool_.N, ttl_str, null, orig_w, orig_h);}
- private Xofv_orig_mkr Init(boolean repo_is_comm, String ttl_str, String redirect_str, int orig_w, int orig_h) {
+ public Xof_orig_itm_mkr Init_comm_redirect(String src, String trg, int orig_w, int orig_h) {return Init(Bool_.Y, src, trg, orig_w, orig_h);}
+ public Xof_orig_itm_mkr Init_comm(String ttl_str, int orig_w, int orig_h) {return Init(Bool_.Y, ttl_str, null, orig_w, orig_h);}
+ public Xof_orig_itm_mkr Init_wiki(String ttl_str, int orig_w, int orig_h) {return Init(Bool_.N, ttl_str, null, orig_w, orig_h);}
+ private Xof_orig_itm_mkr Init(boolean repo_is_comm, String ttl_str, String redirect_str, int orig_w, int orig_h) {
repo = repo_is_comm ? repo_comm : repo_wiki;
this.ttl_bry = Bry_.new_utf8_(ttl_str); this.orig_w = orig_w; this.orig_h = orig_h;
- this.redirect_bry = redirect_str == null ? null : Bry_.new_utf8_(redirect_str);
+ this.redirect_bry = redirect_str == null ? Bry_.Empty : Bry_.new_utf8_(redirect_str);
this.ext = Xof_ext_.new_by_ttl_(ttl_bry).Id();
return this;
}
- public Xof_orig_regy_itm Make() {
- Xof_orig_regy_itm rv = new Xof_orig_regy_itm(ttl_bry, Xof_wiki_orig_wkr_.Tid_null, repo.Tid(), orig_w, orig_h, ext, redirect_bry);
+ public void Make(Xof_orig_wkr wkr) {
+ wkr.Add_orig(repo.Tid(), ttl_bry, ext, orig_w, orig_h, redirect_bry);
this.Reset();
- return rv;
}
}
class Xof_fsdb_mkr {
@@ -227,54 +228,32 @@ class Xof_fsdb_mkr {
}
public Xof_fsdb_itm Make() {
Xof_fsdb_itm rv = new Xof_fsdb_itm();
- rv.Init_by_lnki(ttl_bry, ext, md5, lnki_type, file_w, file_h, Xof_patch_upright_tid_.Tid_all, upright, thumbtime, page);
- rv.Orig_wiki_(repo);
+ rv.Ctor_by_lnki(ttl_bry, ext, md5, lnki_type, file_w, file_h, Xof_patch_upright_tid_.Tid_all, upright, thumbtime, page);
+ rv.Orig_repo_name_(repo);
rv.File_is_orig_(file_is_orig);
this.Reset();
return rv;
}
}
-class Xou_cache_mgr_itm_mkr {
- private byte[] dir; private byte[] ttl; private boolean is_orig; private int w; private double time; private int page;
- public Xou_cache_mgr_itm_mkr() {this.Reset();}
+class Xou_cache_itm_mkr {
+ private byte[] dir; private byte[] ttl; private boolean is_orig; private int w, h; private double time; private int page; private long size;
+ public Xou_cache_itm_mkr() {this.Reset();}
private void Reset() {
this.time = Xof_doc_thumb.Null;
this.page = Xof_doc_page.Null;
+ this.h = 200;
+ this.size = 1;
}
- public Xou_cache_mgr_itm_mkr Init(String dir_str, String ttl_str, boolean is_orig, int w) {
+ public Xou_cache_itm_mkr Init(String dir_str, String ttl_str, boolean is_orig, int w) {
this.dir = Bry_.new_utf8_(dir_str);
this.ttl = Bry_.new_utf8_(ttl_str);
this.is_orig = is_orig;
this.w = w;
return this;
}
- public Xou_cache_fil Make() {
- Xou_cache_fil rv = new Xou_cache_fil(1, 1, dir, ttl, Xof_ext_.new_by_ttl_(ttl).Id(), is_orig, w, 200, time, page, 1, 0);
+ public void Make(Xof_cache_mgr cache_mgr) {
+ cache_mgr.Fil__make(dir, ttl, is_orig, w, h, time, page, size);
this.Reset();
- return rv;
- }
-}
-class Xof_orig_mgr__test implements Xof_orig_mgr {
- private Hash_adp_bry hash = Hash_adp_bry.cs_();
- public void Add(Xof_orig_regy_itm itm) {
- hash.Add_bry_obj(itm.Ttl(), itm);
- }
- public void Clear() {hash.Clear();}
- public Xof_orig_regy_itm Get_by_ttl(byte[] ttl) {return (Xof_orig_regy_itm)hash.Get_by_bry(ttl);}
-}
-class Xou_cache_mgr__test implements Xou_cache_mgr {
- private Hash_adp_bry hash = Hash_adp_bry.cs_(); private Bry_bfr tmp_bfr = Bry_bfr.reset_(255);
- public void Clear() {hash.Clear();}
- public Xou_cache_fil Fil__get_or_null(byte[] dir_name, byte[] fil_name, boolean doc_is_orig, int doc_w, double doc_time, int doc_page) {
- byte[] key = Xou_cache_fil.Key_bld(tmp_bfr, dir_name, fil_name, doc_is_orig, doc_w, doc_time, doc_page);
- return (Xou_cache_fil)hash.Get_by_bry(key);
- }
- public void Dir__clear() {}
- public void Dir__add(Xou_cache_dir dir) {}
- public byte[] Dir__get_by_id(int id) {return null;}
- public void Fil__update(Xou_cache_fil fil) {
- byte[] key = fil.Key(tmp_bfr);
- hash.AddReplace(key, fil);
}
}
class Xof_fsdb_mgr__test implements Xof_fsdb_mgr {
@@ -284,7 +263,7 @@ class Xof_fsdb_mgr__test implements Xof_fsdb_mgr {
public Xof_fsdb_mgr__test() {this.Clear();}
public int Download_count() {return download_count;}
public void Add(Xof_fsdb_itm itm) {
- byte[] key = Xof_fsdb_itm.Bld_key_to_bry(tmp_bfr, itm.Orig_wiki(), itm.Lnki_ttl(), itm.File_is_orig(), itm.Lnki_w(), itm.Lnki_thumbtime(), itm.Lnki_page());
+ byte[] key = Bld_key_to_bry(tmp_bfr, itm.Orig_repo_name(), itm.Lnki_ttl(), itm.File_is_orig(), itm.Lnki_w(), itm.Lnki_time(), itm.Lnki_page());
// Tfds.Write("add:" + String_.new_utf8_(key));
hash.Add(key, itm);
}
@@ -294,7 +273,7 @@ class Xof_fsdb_mgr__test implements Xof_fsdb_mgr {
hash.Clear();
}
public boolean Download(Xofv_file_itm itm) {
- byte[] key = Xof_fsdb_itm.Bld_key_to_bry(tmp_bfr, itm.File_repo(), itm.File_ttl(), itm.Lnki_is_orig(), itm.Html_w(), itm.Lnki_time(), itm.Lnki_page());
+ byte[] key = Bld_key_to_bry(tmp_bfr, itm.File_repo(), itm.File_ttl(), itm.Lnki_is_orig(), itm.Html_w(), itm.Lnki_time(), itm.Lnki_page());
// Tfds.Write("down:" + String_.new_utf8_(key));
if (!hash.Has(key)) {
return false;
@@ -303,6 +282,16 @@ class Xof_fsdb_mgr__test implements Xof_fsdb_mgr {
++download_count;
return true;
}
+ private static byte[] Bld_key_to_bry(Bry_bfr bfr, byte[] dir, byte[] name, boolean is_orig, int w, double time, int page) {
+ bfr .Add(dir).Add_byte_pipe()
+ .Add(name).Add_byte_pipe()
+ .Add_int_bool(is_orig).Add_byte_pipe()
+ .Add_int_variable(w).Add_byte_pipe()
+ .Add_double(time).Add_byte_pipe()
+ .Add_int_variable(page).Add_byte_pipe()
+ ;
+ return bfr.Xto_bry_and_clear();
+ }
}
class Xog_html_gui__test implements Xog_html_gui {
private HashAdp hash = HashAdp_.new_();
diff --git a/400_xowa/src/gplx/xowa2/files/Xou_cache_dir_tbl.java b/400_xowa/src/gplx/xowa2/files/Xou_cache_dir_tbl.java
deleted file mode 100644
index d1cafc56f..000000000
--- a/400_xowa/src/gplx/xowa2/files/Xou_cache_dir_tbl.java
+++ /dev/null
@@ -1,72 +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.xowa2.files; import gplx.*; import gplx.xowa2.*;
-import gplx.dbs.*; import gplx.xowa.files.*;
-class Xou_cache_dir_tbl {
- private Db_conn conn; private Db_stmt_bldr stmt_bldr;
- public void Init(Db_conn conn) {this.conn = conn;}
- public void Select_all(Xou_cache_mgr cache_mgr) {
- Db_stmt stmt = Db_stmt_.new_select_as_rdr(conn, Db_qry__select_in_tbl.new_(Tbl_name, String_.Ary_empty, Flds_all));
- Db_rdr rdr = Db_rdr_.Null;
- try {
- rdr = stmt.Clear().Exec_select_as_rdr();
- while (rdr.Move_next()) {
- Xou_cache_dir dir = Make(rdr);
- cache_mgr.Dir__add(dir);
- }
- }
- catch (Exception e) {stmt = null; throw Db_stmt_.err_(e, Tbl_name, "Select_by_key");}
- finally {rdr.Rls();}
- }
- public String Commit(Xou_cache_dir itm) {
- try {
- if (stmt_bldr == null) stmt_bldr = new Db_stmt_bldr(Tbl_name, String_.Ary(Fld_dir_id), Fld_dir_name).Init(conn);
- Db_stmt stmt = stmt_bldr.Get(itm.Cmd_mode());
- switch (itm.Cmd_mode()) {
- case Db_cmd_mode.Create: stmt.Clear().Val_int(itm.Dir_id()); Commit_stmt_args(stmt, itm); stmt.Exec_insert(); break;
- case Db_cmd_mode.Update: stmt.Clear(); Commit_stmt_args(stmt, itm); stmt.Val_int(itm.Dir_id()).Exec_update(); break;
- case Db_cmd_mode.Delete: stmt.Clear().Val_int(itm.Dir_id()); stmt.Exec_delete(); break;
- case Db_cmd_mode.Ignore: break;
- default: throw Err_.unhandled(itm.Cmd_mode());
- }
- itm.Cmd_mode_(Db_cmd_mode.Ignore);
- return null;
- } catch (Exception e) {
- stmt_bldr = null; // null out bldr, else bad stmt will lead to other failures
- return Err_.Message_gplx_brief(e);
- }
- }
- private void Commit_stmt_args(Db_stmt stmt, Xou_cache_dir itm) {
- stmt.Val_bry_as_str(itm.Dir_name());
- }
- private Xou_cache_dir Make(Db_rdr rdr) {
- return new Xou_cache_dir
- ( rdr.Read_int(Ord_dir_id)
- , rdr.Read_bry_by_str(Ord_dir_name)
- );
- }
-// private static final String Tbl_sql = String_.Concat_lines_nl
-// ( "CREATE TABLE user_cache_dir"
-// , "( dir_id integer NOT NULL PRIMARY KEY AUTOINCREMENT"
-// , ", dir_name varchar(255) NOT NULL"
-// , ");"
-// );
- public static final String Tbl_name = "user_cache_dir", Fld_dir_id = "dir_id", Fld_dir_name = "fil_name";
- private static final String[] Flds_all = new String[] {Fld_dir_id, Fld_dir_name};
- private static final int Ord_dir_id = 0, Ord_dir_name = 1;
-}
diff --git a/400_xowa/src/gplx/xowa2/files/Xou_cache_fil.java b/400_xowa/src/gplx/xowa2/files/Xou_cache_fil.java
deleted file mode 100644
index 9918e8118..000000000
--- a/400_xowa/src/gplx/xowa2/files/Xou_cache_fil.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.xowa2.files; import gplx.*; import gplx.xowa2.*;
-import gplx.xowa.files.*;
-public class Xou_cache_fil {
- public Xou_cache_fil(int uid, int dir_id, byte[] dir_name, byte[] fil_name, int fil_ext, boolean fil_is_orig, int fil_w, int fil_h, double fil_time, int fil_page, long fil_size, long fil_view_time) {
- this.uid = uid;
- this.dir_id = dir_id; this.dir_name = dir_name;
- this.fil_name = fil_name; this.fil_ext = fil_ext; this.fil_is_orig = fil_is_orig;
- this.fil_w = fil_w; this.fil_h = fil_h; this.fil_time = fil_time; this.fil_page = fil_page;
- this.fil_size = fil_size; this.fil_view_time = fil_view_time;
- }
- public int Dir_id() {return dir_id;} private final int dir_id;
- public byte[] Dir_name() {return dir_name;} private final byte[] dir_name;
- public byte[] Fil_name() {return fil_name;} private final byte[] fil_name;
- public int Fil_ext() {return fil_ext;} private final int fil_ext;
- public boolean Fil_is_orig() {return fil_is_orig;} private final boolean fil_is_orig;
- public int Fil_w() {return fil_w;} private final int fil_w;
- public int Fil_h() {return fil_h;} private final int fil_h;
- public double Fil_time() {return fil_time;} private final double fil_time;
- public int Fil_page() {return fil_page;} private final int fil_page;
- public long Fil_size() {return fil_size;} private final long fil_size;
- public long Fil_view_time() {return fil_view_time;} public void Fil_view_time_(long v) {fil_view_time = v;} private long fil_view_time;
- public int Uid() {return uid;} public void Uid_(int v) {uid = v;} private int uid;
- public byte Cmd_mode() {return cmd_mode;} public void Cmd_mode_(byte v) {cmd_mode = v;} private byte cmd_mode = gplx.dbs.Db_cmd_mode.Ignore;
- public byte[] Key(Bry_bfr bfr) {return Key_bld(bfr, dir_name, fil_name, fil_is_orig, fil_w, fil_time, fil_page);}
- public static byte[] Key_bld(Bry_bfr bfr, byte[] dir_name, byte[] fil_name, boolean fil_is_orig, int fil_w, double fil_time, int fil_page) {
- bfr .Add(dir_name).Add_byte_pipe()
- .Add(fil_name).Add_byte_pipe()
- .Add_yn(fil_is_orig).Add_byte_pipe()
- .Add_int_variable(fil_w).Add_byte_pipe()
- .Add_double(Xof_doc_thumb.Db_save_double(fil_time))
- .Add_int_variable(Xof_doc_page.Db_save_int(fil_page))
- ;
- return bfr.Xto_bry_and_clear();
- }
-}
diff --git a/400_xowa/src/gplx/xowa2/files/Xou_cache_fil_tbl.java b/400_xowa/src/gplx/xowa2/files/Xou_cache_fil_tbl.java
deleted file mode 100644
index 82999a444..000000000
--- a/400_xowa/src/gplx/xowa2/files/Xou_cache_fil_tbl.java
+++ /dev/null
@@ -1,117 +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.xowa2.files; import gplx.*; import gplx.xowa2.*;
-import gplx.dbs.*; import gplx.xowa.files.*;
-class Xou_cache_fil_tbl {
- private Db_conn conn; private Db_stmt_bldr stmt_bldr;
- public void Init(Db_conn conn) {this.conn = conn;}
- public Xou_cache_fil Select_by_key(Xou_cache_mgr cache_mgr, int dir_id, byte[] fil_name, boolean fil_is_orig, int fil_w, double fil_time, int fil_page) {
- String[] flds_where = String_.Ary(Fld_dir_id, Fld_fil_name, Fld_fil_is_orig, Fld_fil_w, Fld_fil_time, Fld_fil_page);
- Db_stmt stmt = Db_stmt_.new_select_as_rdr(conn, Db_qry__select_in_tbl.new_(Tbl_name, flds_where, Flds_all));
- Db_rdr rdr = Db_rdr_.Null;
- try {
- rdr = stmt.Clear()
- .Val_int(dir_id)
- .Val_bry_as_str(fil_name)
- .Val_bool_as_byte(fil_is_orig)
- .Val_int(fil_w)
- .Val_int(Xof_doc_thumb.Db_save_int(fil_time))
- .Val_int(Xof_doc_page.Db_save_int(fil_page))
- .Exec_select_as_rdr()
- ;
- return rdr.Move_next() ? Make(cache_mgr, rdr) : null;
- }
- catch (Exception e) {stmt = null; throw Db_stmt_.err_(e, Tbl_name, "Select_by_key");}
- finally {rdr.Rls();}
- }
- public String Commit(Xou_cache_fil itm) {
- try {
- if (stmt_bldr == null) stmt_bldr = new Db_stmt_bldr(Tbl_name, String_.Ary(Fld_uid), Fld_dir_id, Fld_fil_name, Fld_fil_ext, Fld_fil_is_orig, Fld_fil_w, Fld_fil_h, Fld_fil_time, Fld_fil_page, Fld_fil_size, Fld_fil_view_time).Init(conn);
- Db_stmt stmt = stmt_bldr.Get(itm.Cmd_mode());
- switch (itm.Cmd_mode()) {
- case Db_cmd_mode.Create: stmt.Clear().Val_int(itm.Uid()); Commit_stmt_args(stmt, itm); stmt.Exec_insert(); break;
- case Db_cmd_mode.Update: stmt.Clear(); Commit_stmt_args(stmt, itm); stmt.Val_int(itm.Uid()).Exec_update(); break;
- case Db_cmd_mode.Delete: stmt.Clear().Val_int(itm.Uid()); stmt.Exec_delete(); break;
- case Db_cmd_mode.Ignore: break;
- default: throw Err_.unhandled(itm.Cmd_mode());
- }
- itm.Cmd_mode_(Db_cmd_mode.Ignore);
- return null;
- } catch (Exception e) {
- stmt_bldr = null; // null out bldr, else bad stmt will lead to other failures
- return Err_.Message_gplx_brief(e);
- }
- }
- private void Commit_stmt_args(Db_stmt stmt, Xou_cache_fil itm) {
- stmt.Val_int(itm.Dir_id())
- .Val_bry_as_str(itm.Fil_name())
- .Val_int(itm.Fil_ext())
- .Val_bool_as_byte(itm.Fil_is_orig())
- .Val_int(itm.Fil_w())
- .Val_int(itm.Fil_h())
- .Val_int(Xof_doc_thumb.Db_save_int(itm.Fil_time()))
- .Val_int(Xof_doc_page.Db_save_int(itm.Fil_page()))
- .Val_long(itm.Fil_size())
- .Val_long(itm.Fil_view_time())
- ;
- }
- private Xou_cache_fil Make(Xou_cache_mgr cache_mgr, Db_rdr rdr) {
- int dir_id = rdr.Read_int(Ord_dir_id);
- return new Xou_cache_fil
- ( rdr.Read_int(Ord_uid)
- , dir_id
- , cache_mgr.Dir__get_by_id(dir_id)
- , rdr.Read_bry_by_str(Ord_fil_name)
- , rdr.Read_int(Ord_fil_ext)
- , rdr.Read_bool_by_byte(Ord_fil_is_orig)
- , rdr.Read_int(Ord_fil_w)
- , rdr.Read_int(Ord_fil_h)
- , Xof_doc_thumb.Db_load_int(rdr, Ord_fil_time)
- , Xof_doc_page.Db_load_int(rdr, Ord_fil_page)
- , rdr.Read_long(Ord_fil_size)
- , rdr.Read_long(Ord_fil_view_time)
- );
- }
-// private static final String Tbl_sql = String_.Concat_lines_nl
-// ( "CREATE TABLE user_cache_fil"
-// , "( uid integer NOT NULL PRIMARY KEY AUTOINCREMENT"
-// , ", dir_id integer NOT NULL"
-// , ", fil_name varchar(255) NOT NULL"
-// , ", fil_ext integer NOT NULL"
-// , ", fil_is_orig tinyint NOT NULL"
-// , ", fil_w integer NOT NULL"
-// , ", fil_h integer NOT NULL"
-// , ", fil_time integer NOT NULL"
-// , ", fil_page integer NOT NULL"
-// , ", fil_size bigint NOT NULL"
-// , ", fil_view_time bigint NOT NULL"
-// , ");"
-// );
-// private static final Db_idx_itm
-// Idx_key = Db_idx_itm.sql_("CREATE INDEX IF NOT EXISTS user_cache_fil__key ON user_cache_fil (dir_id, file_name, fil_is_orig, fil_w, fil_time, fil_page);")
-// ;
- public static final String Tbl_name = "user_cache_fil"
- , Fld_uid = "uid", Fld_dir_id = "dir_id", Fld_fil_name = "fil_name", Fld_fil_ext = "fil_ext", Fld_fil_is_orig = "fil_is_orig"
- , Fld_fil_w = "fil_w", Fld_fil_h = "fil_h", Fld_fil_time = "fil_time", Fld_fil_page = "fil_page"
- , Fld_fil_size = "fil_size", Fld_fil_view_time = "fil_view_time"
- ;
- private static final String[] Flds_all = new String[] {Fld_uid, Fld_dir_id, Fld_fil_name, Fld_fil_ext, Fld_fil_is_orig, Fld_fil_w, Fld_fil_h, Fld_fil_time, Fld_fil_page, Fld_fil_size, Fld_fil_view_time};
- private static final int Ord_uid = 0, Ord_dir_id = 1, Ord_fil_name = 2, Ord_fil_ext = 3, Ord_fil_is_orig = 4, Ord_fil_w = 5, Ord_fil_h = 5
- , Ord_fil_time = 6, Ord_fil_page = 7, Ord_fil_size = 9, Ord_fil_view_time = 10
- ;
-}
diff --git a/400_xowa/src/gplx/xowa2/files/Xou_cache_mgr.java b/400_xowa/src/gplx/xowa2/files/Xou_cache_mgr.java
deleted file mode 100644
index cbb86e07c..000000000
--- a/400_xowa/src/gplx/xowa2/files/Xou_cache_mgr.java
+++ /dev/null
@@ -1,76 +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.xowa2.files; import gplx.*; import gplx.xowa2.*;
-import gplx.core.primitives.*;
-import gplx.dbs.*; import gplx.xowa.files.fsdb.caches.*;
-public interface Xou_cache_mgr {
- Xou_cache_fil Fil__get_or_null(byte[] dir_name, byte[] fil_name, boolean fil_is_orig, int fil_w, double fil_time, int fil_page);
- void Fil__update(Xou_cache_fil fil);
- void Dir__clear();
- void Dir__add(Xou_cache_dir dir);
- byte[] Dir__get_by_id(int id);
-}
-class Xou_cache_mgr__basic implements Xou_cache_mgr {
- private final HashAdp dir_id_regy = HashAdp_.new_(); private final Int_obj_ref dir_id_regy_key = Int_obj_ref.neg1_();
- private final Hash_adp_bry dir_name_regy = Hash_adp_bry.cs_();
- private final OrderedHash fil_regy = OrderedHash_.new_bry_();
- private final Xou_cache_fil_tbl fil_tbl = new Xou_cache_fil_tbl();
- private final Xou_cache_dir_tbl dir_tbl = new Xou_cache_dir_tbl();
- private final Bry_bfr tmp_bfr = Bry_bfr.reset_(255);
- public void Init() {
- dir_tbl.Select_all(this);
- }
- public void Dir__clear() {dir_id_regy.Clear();}
- public void Dir__add(Xou_cache_dir dir) {
- dir_id_regy.Add(Int_obj_ref.new_(dir.Dir_id()), dir);
- dir_name_regy.Add(dir.Dir_name(), dir);
- }
- public byte[] Dir__get_by_id(int id) {
- Xou_cache_dir rv = (Xou_cache_dir)dir_id_regy.Fetch(dir_id_regy_key.Val_(id));
- return rv == null ? null : rv.Dir_name();
- }
- public int Dir__get_by_name(byte[] name) {
- Xou_cache_dir rv = (Xou_cache_dir)dir_name_regy.Get_by_bry(name);
- return rv == null ? -1 : rv.Dir_id();
- }
- public void Fil__update(Xou_cache_fil fil) {
- if (fil.Cmd_mode() == Db_cmd_mode.Create) {
- byte[] key = fil.Key(tmp_bfr);
- fil_regy.Add(key, fil); // add to cache
- }
- fil_tbl.Commit(fil);
- byte[] dir_name = fil.Dir_name();
- if (Dir__get_by_name(dir_name) == -1) { // not in dir_cache
- Xou_cache_dir dir = new Xou_cache_dir(Fixme, dir_name);
- this.Dir__add(dir);
- dir_tbl.Commit(dir);
- }
- }
- public Xou_cache_fil Fil__get_or_null(byte[] dir_name, byte[] fil_name, boolean fil_is_orig, int fil_w, double fil_time, int fil_page) {
- byte[] key = Xou_cache_fil.Key_bld(tmp_bfr, dir_name, fil_name, fil_is_orig, fil_w, fil_time, fil_page);
- Xou_cache_fil rv = (Xou_cache_fil)fil_regy.Fetch(key);
- if (rv == null) { // not in mem
- int dir_id = Dir__get_by_name(dir_name);
- rv = fil_tbl.Select_by_key(this, dir_id, fil_name, fil_is_orig, fil_w, fil_time, fil_page);
- if (rv != null) // found in db
- fil_regy.Add(key, rv); // add to cache
- }
- return rv;
- }
- public static final int Fixme = -1;
-}
diff --git a/400_xowa/src/gplx/xowa2/files/commons/Xof_commons_image_tbl.java b/400_xowa/src/gplx/xowa2/files/commons/Xof_commons_image_tbl.java
index 05be86b66..878b845ee 100644
--- a/400_xowa/src/gplx/xowa2/files/commons/Xof_commons_image_tbl.java
+++ b/400_xowa/src/gplx/xowa2/files/commons/Xof_commons_image_tbl.java
@@ -17,55 +17,55 @@ along with this program. If not, see .
*/
package gplx.xowa2.files.commons; import gplx.*; import gplx.xowa2.*; import gplx.xowa2.files.*;
import gplx.dbs.*;
-public class Xof_commons_image_tbl implements Db_conn_itm {
- private Db_stmt stmt_insert, stmt_select_itm;
- public Db_conn Conn() {return conn;} public void Conn_(Db_conn v) {conn = Db_conn_.Reg_itm(this, conn, v);} private Db_conn conn;
- public void Conn_term() {
- stmt_insert = Db_stmt_.Rls(stmt_insert);
- stmt_select_itm = Db_stmt_.Rls(stmt_select_itm);
- }
+public class Xof_commons_image_tbl {
+ private Db_stmt stmt_insert;
+ public Db_conn Conn() {return conn;}
+ public void Conn_(Db_conn v) {
+ conn = v;
+ stmt_insert = null;
+ } private Db_conn conn;
public void Insert(String ttl, String media_type, String minor_mime, int size, int w, int h, int bits, int ext_id, String img_timestamp) {
- if (stmt_insert == null) stmt_insert = conn.New_stmt_insert(Tbl_name, Flds.To_str_ary());
+ if (stmt_insert == null) stmt_insert = conn.Rls_reg(conn.Stmt_insert(tbl_name, flds.To_str_ary()));
stmt_insert.Clear()
.Val_str(ttl).Val_str(media_type).Val_str(minor_mime)
.Val_int(size).Val_int(w).Val_int(h).Val_int(bits).Val_int(ext_id).Val_str(img_timestamp)
.Exec_insert();
}
public Xof_commons_image_itm Select(byte[] ttl) {
- Db_stmt stmt = conn.New_stmt_select_all_where(Tbl_name, Flds.To_str_ary(), Fld_img_name);
+ Db_stmt stmt = conn.Stmt_select(tbl_name, flds.To_str_ary(), fld_img_name);
Db_rdr rdr = Db_rdr_.Null;
try {
rdr = stmt.Clear().Val_bry_as_str(ttl).Exec_select_as_rdr();
if (!rdr.Move_next()) return null;
return new Xof_commons_image_itm
- ( rdr.Read_str(Fld_img_name)
- , rdr.Read_str(Fld_img_media_type)
- , rdr.Read_str(Fld_img_minor_mime)
- , rdr.Read_int(Fld_img_size)
- , rdr.Read_int(Fld_img_width)
- , rdr.Read_int(Fld_img_height)
- , rdr.Read_int(Fld_img_bits)
- , rdr.Read_int(Fld_img_ext_id)
- , rdr.Read_str(Fld_img_timestamp)
+ ( rdr.Read_str(fld_img_name)
+ , rdr.Read_str(fld_img_media_type)
+ , rdr.Read_str(fld_img_minor_mime)
+ , rdr.Read_int(fld_img_size)
+ , rdr.Read_int(fld_img_width)
+ , rdr.Read_int(fld_img_height)
+ , rdr.Read_int(fld_img_bits)
+ , rdr.Read_int(fld_img_ext_id)
+ , rdr.Read_str(fld_img_timestamp)
);
} finally {rdr.Rls();}
}
- private static final String Tbl_name = "image";
- private static final Db_meta_fld_list Flds = Db_meta_fld_list.new_();
+ private static final String tbl_name = "image";
+ private static final Db_meta_fld_list flds = Db_meta_fld_list.new_();
private static final String
- Fld_img_name = Flds.Add_str("img_name", 255) // varbinary(255)
- , Fld_img_media_type = Flds.Add_str("img_media_type", 255) // enum('UNKNOWN','BITMAP','DRAWING','AUDIO','VIDEO','MULTIMEDIA','OFFICE','TEXT','EXECUTABLE','ARCHIVE')"
- , Fld_img_minor_mime = Flds.Add_str("img_minor_mime", 255) // DEFAULT 'unknown'"
- , Fld_img_size = Flds.Add_int("img_size") // int(8) unsigned
- , Fld_img_width = Flds.Add_int("img_width") // int(5)
- , Fld_img_height = Flds.Add_int("img_height") // int(5)
- , Fld_img_bits = Flds.Add_short("img_bits") // int(3)
- , Fld_img_ext_id = Flds.Add_int("img_ext_id") // xowa
- , Fld_img_timestamp = Flds.Add_str("img_timestamp", 255) // 20140101155749
+ fld_img_name = flds.Add_str("img_name", 255) // varbinary(255)
+ , fld_img_media_type = flds.Add_str("img_media_type", 255) // enum('UNKNOWN','BITMAP','DRAWING','AUDIO','VIDEO','MULTIMEDIA','OFFICE','TEXT','EXECUTABLE','ARCHIVE')"
+ , fld_img_minor_mime = flds.Add_str("img_minor_mime", 255) // DEFAULT 'unknown'"
+ , fld_img_size = flds.Add_int("img_size") // int(8) unsigned
+ , fld_img_width = flds.Add_int("img_width") // int(5)
+ , fld_img_height = flds.Add_int("img_height") // int(5)
+ , fld_img_bits = flds.Add_short("img_bits") // int(3)
+ , fld_img_ext_id = flds.Add_int("img_ext_id") // xowa
+ , fld_img_timestamp = flds.Add_str("img_timestamp", 255) // 20140101155749
;
public static Db_meta_tbl new_meta() {
- return Db_meta_tbl.new_(Tbl_name, Flds.To_fld_ary()
- , Db_meta_idx.new_normal(Tbl_name, "name", Fld_img_name, Fld_img_timestamp)
+ return Db_meta_tbl.new_(tbl_name, flds.To_fld_ary()
+ , Db_meta_idx.new_normal_by_tbl(tbl_name, "name", fld_img_name, fld_img_timestamp)
);
}
}
diff --git a/400_xowa/src/gplx/xowa2/files/metas/Xof_file_meta_itm.java b/400_xowa/src/gplx/xowa2/files/metas/Xof_file_meta_itm.java
deleted file mode 100644
index a2af4cf00..000000000
--- a/400_xowa/src/gplx/xowa2/files/metas/Xof_file_meta_itm.java
+++ /dev/null
@@ -1,25 +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.xowa2.files.metas; import gplx.*; import gplx.xowa2.*; import gplx.xowa2.files.*;
-public class Xof_file_meta_itm {
- public Xof_file_meta_itm(boolean repo_is_commons, byte[] ttl, int w, int h) {this.repo_is_commons = repo_is_commons; this.ttl = ttl; this.w = w; this.h = h;}
- public boolean Repo_is_commons() {return repo_is_commons;} private final boolean repo_is_commons;
- public byte[] Ttl() {return ttl;} private final byte[] ttl;
- public int W() {return w;} private final int w;
- public int H() {return h;} private final int h;
-}
diff --git a/400_xowa/src/gplx/xowa2/files/metas/Xof_file_meta_wkr.java b/400_xowa/src/gplx/xowa2/files/metas/Xof_file_meta_wkr.java
deleted file mode 100644
index 881da0e8c..000000000
--- a/400_xowa/src/gplx/xowa2/files/metas/Xof_file_meta_wkr.java
+++ /dev/null
@@ -1,21 +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.xowa2.files.metas; import gplx.*; import gplx.xowa2.*; import gplx.xowa2.files.*;
-public interface Xof_file_meta_wkr {
- Xof_file_meta_itm Get_or_null(byte[] ttl);
-}
diff --git a/400_xowa/src/gplx/xowa2/files/metas/Xof_file_meta_wkr__db_image.java b/400_xowa/src/gplx/xowa2/files/metas/Xof_file_meta_wkr__db_image.java
deleted file mode 100644
index c2df65d89..000000000
--- a/400_xowa/src/gplx/xowa2/files/metas/Xof_file_meta_wkr__db_image.java
+++ /dev/null
@@ -1,37 +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.xowa2.files.metas; import gplx.*; import gplx.xowa2.*; import gplx.xowa2.files.*;
-import gplx.dbs.*; import gplx.xowa.files.wiki_orig.*;
-import gplx.xowa2.files.commons.*;
-public class Xof_file_meta_wkr__db_image implements Xof_file_meta_wkr {
- private final Xof_commons_image_tbl tbl_wiki = new Xof_commons_image_tbl(), tbl_comm = new Xof_commons_image_tbl();
- public Xof_file_meta_wkr__db_image(Db_conn conn_wiki, Db_conn conn_comm) {
- tbl_wiki.Conn_(conn_wiki);
- tbl_comm.Conn_(conn_comm);
- }
- public Xof_file_meta_itm Get_or_null(byte[] ttl) {
- Xof_commons_image_itm itm = tbl_wiki.Select(ttl);
- boolean repo_is_commons = false;
- if (itm == null) {
- itm = tbl_comm.Select(ttl);
- if (itm == null) return null;
- repo_is_commons = true;
- }
- return new Xof_file_meta_itm(repo_is_commons, ttl, itm.Width(), itm.Height());
- }
-}
diff --git a/400_xowa/src/gplx/xowa2/files/orig_regy/Xof_orig_regy_itm.java b/400_xowa/src/gplx/xowa2/files/orig_regy/Xof_orig_regy_itm.java
deleted file mode 100644
index 69b26a721..000000000
--- a/400_xowa/src/gplx/xowa2/files/orig_regy/Xof_orig_regy_itm.java
+++ /dev/null
@@ -1,58 +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.xowa2.files.orig_regy; import gplx.*; import gplx.xowa2.*; import gplx.xowa2.files.*;
-import gplx.dbs.*; import gplx.xowa.files.wiki_orig.*;
-public class Xof_orig_regy_itm {
- public Xof_orig_regy_itm(byte[] ttl, byte status, byte repo_tid, int orig_w, int orig_h, int orig_ext, byte[] orig_redirect) {
- this.ttl = ttl; this.status = status;
- this.repo_tid = repo_tid;
- this.orig_w = orig_w; this.orig_h = orig_h; this.orig_ext = orig_ext; this.orig_redirect = orig_redirect;
- }
- public byte[] Ttl() {return ttl;} private final byte[] ttl;
- public byte Status() {return status;} private final byte status;
- public byte Repo_tid() {return repo_tid;} private final byte repo_tid;
- public int Orig_w() {return orig_w;} private final int orig_w;
- public int Orig_h() {return orig_h;} private final int orig_h;
- public int Orig_ext() {return orig_ext;} private final int orig_ext;
- public byte[] Orig_redirect() {return orig_redirect;} private final byte[] orig_redirect;
- public static Xof_orig_regy_itm load_(DataRdr rdr) {
- Xof_orig_regy_itm rv = new Xof_orig_regy_itm
- ( rdr.ReadBryByStr(Xof_wiki_orig_tbl.Fld_orig_ttl)
- , rdr.ReadByte(Xof_wiki_orig_tbl.Fld_status)
- , rdr.ReadByte(Xof_wiki_orig_tbl.Fld_orig_repo)
- , rdr.ReadInt(Xof_wiki_orig_tbl.Fld_orig_w)
- , rdr.ReadInt(Xof_wiki_orig_tbl.Fld_orig_h)
- , rdr.ReadInt(Xof_wiki_orig_tbl.Fld_orig_ext)
- , rdr.ReadBryByStr(Xof_wiki_orig_tbl.Fld_orig_redirect)
- );
- return rv;
- }
- public static Xof_orig_regy_itm load_(Db_rdr rdr) {
- Xof_orig_regy_itm rv = new Xof_orig_regy_itm
- ( rdr.Read_bry_by_str(Xof_wiki_orig_tbl.Ord_orig_ttl)
- , rdr.Read_byte(Xof_wiki_orig_tbl.Ord_status)
- , rdr.Read_byte(Xof_wiki_orig_tbl.Ord_orig_repo)
- , rdr.Read_int(Xof_wiki_orig_tbl.Ord_orig_w)
- , rdr.Read_int(Xof_wiki_orig_tbl.Ord_orig_h)
- , rdr.Read_int(Xof_wiki_orig_tbl.Ord_orig_ext)
- , rdr.Read_bry_by_str(Xof_wiki_orig_tbl.Ord_orig_redirect)
- );
- return rv;
- }
- public static final Xof_orig_regy_itm Null = null;
-}
diff --git a/400_xowa/src/gplx/xowa2/files/orig_regy/Xof_orig_regy_tbl.java b/400_xowa/src/gplx/xowa2/files/orig_regy/Xof_orig_regy_tbl.java
deleted file mode 100644
index cac232c31..000000000
--- a/400_xowa/src/gplx/xowa2/files/orig_regy/Xof_orig_regy_tbl.java
+++ /dev/null
@@ -1,135 +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.xowa2.files.orig_regy; import gplx.*; import gplx.xowa2.*; import gplx.xowa2.files.*;
-import gplx.dbs.*; import gplx.xowa.dbs.*; import gplx.xowa.files.fsdb.*; import gplx.xowa.files.wiki_orig.*;
-public class Xof_orig_regy_tbl implements Db_conn_itm {
- private Xof_orig_regy_tbl__in_wkr select_in_wkr;
- public void Conn_term() {}
- public Xof_orig_regy_tbl() {
- tbl_name = "wiki_orig";
- Fld_orig_repo = flds.Add_byte("orig_repo");
- flds.Add_byte("orig_status");
- fld_orig_ttl = flds.Add_str("orig_ttl", 1024);
- Fld_orig_ext = flds.Add_int("orig_ext");
- Fld_orig_w = flds.Add_int("orig_w");
- Fld_orig_h = flds.Add_int("orig_h");
- Fld_orig_redirect = flds.Add_str("orig_redirect", 1024);
- meta = Db_meta_tbl.new_(tbl_name, flds.To_fld_ary()
- , Db_meta_idx.new_unique(tbl_name, "key" , fld_orig_ttl)
- );
- select_in_wkr = new Xof_orig_regy_tbl__in_wkr(this);
- }
- public Db_conn Conn() {return conn;} public Xof_orig_regy_tbl Conn_(Db_conn v) {conn = v; conn.Itms_add(this); return this;} private Db_conn conn;
- public void Select_list(OrderedHash rv, ListAdp itms, Cancelable cancelable) {
- select_in_wkr.Init(rv, itms).Select_in(cancelable, Xodb_ctx.Null, conn, 0, itms.Count());
- }
- public boolean Select_itm_exists(byte[] ttl) {return Select_itm(ttl) != Xof_orig_regy_itm.Null;}
- public Xof_orig_regy_itm Select_itm(byte[] ttl) {
- Xof_orig_regy_itm rv = Xof_orig_regy_itm.Null;
- Db_rdr rdr = Db_rdr_.Null;
- try {
- Db_stmt stmt = conn.New_stmt_select_all_where(tbl_name, flds.To_str_ary(), fld_orig_ttl);
- rdr = stmt.Clear().Crt_bry_as_str(fld_orig_ttl, ttl).Exec_select_as_rdr();
- if (rdr.Move_next())
- rv = Make_itm(rdr);
- }
- catch (Exception e) {
- Tfds.WriteText(Err_.Message_gplx(e));
- }
- finally {rdr.Rls();}
- return rv;
- }
- public void Insert(byte repo, byte[] ttl, int ext, int w, int h, byte[] redirect) {
- Db_stmt stmt = Db_stmt_.Null;
- try {
- stmt = conn.New_stmt_insert(tbl_name, flds.To_str_ary());
- stmt.Clear()
- .Val_byte(repo).Val_byte(Xof_wiki_orig_wkr_.Tid_found_orig).Val_bry_as_str(ttl).Val_int(ext).Val_int(w).Val_int(h).Val_bry_as_str(redirect)
- .Exec_insert();
- } finally {stmt.Rls();}
- }
- public String Tbl_name() {return tbl_name;} private String tbl_name = "file_orig_regy";
- public String Fld_orig_ttl() {return fld_orig_ttl;}
- private String Fld_orig_repo, fld_orig_ttl, Fld_orig_ext, Fld_orig_w, Fld_orig_h, Fld_orig_redirect;
- public Db_meta_fld_list Flds() {return flds;} private final Db_meta_fld_list flds = Db_meta_fld_list.new_();
- public Db_meta_tbl Meta() {return meta;} private final Db_meta_tbl meta;
- public Xof_orig_regy_itm Make_itm(Db_rdr rdr) {
- Xof_orig_regy_itm rv = new Xof_orig_regy_itm
- ( rdr.Read_bry_by_str(fld_orig_ttl)
- , Xof_wiki_orig_wkr_.Tid_found_orig
- , rdr.Read_byte(Fld_orig_repo)
- , rdr.Read_int(Fld_orig_w)
- , rdr.Read_int(Fld_orig_h)
- , rdr.Read_int(Fld_orig_ext)
- , rdr.Read_bry_by_str(Fld_orig_redirect)
- );
- return rv;
- }
-}
-abstract class Db_in_wkr__base {
- protected abstract int Interval();
- protected abstract Db_qry Make_qry (Object db_ctx, int bgn, int end);
- protected abstract void Fill_stmt (Db_stmt stmt, int bgn, int end);
- protected abstract void Read_data (Cancelable cancelable, Object db_ctx, Db_rdr rdr);
- public void Select_in(Cancelable cancelable, Object db_ctx, Db_conn conn, int full_bgn, int full_end) {
- Db_rdr rdr = Db_rdr_.Null; Db_stmt stmt = Db_stmt_.Null;
- int part_len = Interval();
- for (int part_bgn = full_bgn; part_bgn < full_end; part_bgn += part_len) {
- int part_end = part_bgn + part_len;
- if (part_end > full_end) part_end = full_end;
- try {
- stmt = conn.New_stmt(Make_qry(db_ctx, part_bgn, part_end));
- Fill_stmt(stmt, part_bgn, part_end);
- rdr = stmt.Exec_select_as_rdr();
- Read_data(cancelable, db_ctx, rdr);
- }
- finally {rdr.Rls(); stmt.Rls();}
- }
- }
- public static Object[] In_ary(int len) {
- Object[] rv = new Object[len];
- for (int i = 0; i < len; i++)
- rv[i] = "";
- return rv;
- }
-}
-class Xof_orig_regy_tbl__in_wkr extends Db_in_wkr__base {
- private Xof_orig_regy_tbl tbl; private ListAdp itms; private OrderedHash rv;
- public Xof_orig_regy_tbl__in_wkr(Xof_orig_regy_tbl tbl) {this.tbl = tbl;}
- public Xof_orig_regy_tbl__in_wkr Init(OrderedHash rv, ListAdp itms) {this.itms = itms; this.rv = rv; return this;}
- @Override protected int Interval() {return Sqlite_engine_.Stmt_arg_max;}
- @Override protected Db_qry Make_qry(Object db_ctx, int bgn, int end) {
- Object[] part_ary = In_ary(end - bgn);
- return Db_qry_.select_cols_(tbl.Tbl_name(), Db_crt_.in_(tbl.Fld_orig_ttl(), part_ary), tbl.Flds().To_str_ary());
- }
- @Override protected void Fill_stmt(Db_stmt stmt, int bgn, int end) {
- for (int i = bgn; i < end; i++) {
- byte[] ttl = (byte[])itms.FetchAt(i);
- stmt.Crt_bry_as_str(tbl.Fld_orig_ttl(), ttl);
- }
- }
- @Override protected void Read_data(Cancelable cancelable, Object db_ctx, Db_rdr rdr) {
- while (rdr.Move_next()) {
- if (cancelable.Canceled()) return;
- Xof_orig_regy_itm itm = tbl.Make_itm(rdr);
- byte[] itm_ttl = itm.Ttl();
- if (!rv.Has(itm_ttl)) // guard against dupes (shouldn't happen)
- rv.Add(itm_ttl, itm);
- }
- }
-}
diff --git a/400_xowa/src/gplx/xowa2/files/orig_regy/Xof_orig_regy_tbl_tst.java b/400_xowa/src/gplx/xowa2/files/orig_regy/Xof_orig_regy_tbl_tst.java
deleted file mode 100644
index 8594f2b09..000000000
--- a/400_xowa/src/gplx/xowa2/files/orig_regy/Xof_orig_regy_tbl_tst.java
+++ /dev/null
@@ -1,65 +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.xowa2.files.orig_regy; import gplx.*; import gplx.xowa2.*; import gplx.xowa2.files.*;
-import org.junit.*;
-import gplx.dbs.*; import gplx.xowa.*; import gplx.xowa.files.wiki_orig.*;
-public class Xof_orig_regy_tbl_tst {
- @Before public void init() {fxt.Clear();} private Xof_orig_regy_tbl_fxt fxt = new Xof_orig_regy_tbl_fxt();
- @Test public void Select_in() {
- Xof_orig_regy_itm itm_1 = fxt.Exec_insert("A.png", 220, 330);
- fxt.Exec_insert("B.png", 220, 330);
- Xof_orig_regy_itm itm_3 = fxt.Exec_insert("C.png", 220, 330);
- fxt.Test_select_in(String_.Ary("A.png", "C.png"), itm_1, itm_3);
- }
-}
-class Xof_orig_regy_tbl_fxt {
- private Xof_orig_regy_tbl tbl = new Xof_orig_regy_tbl();
- public void Clear() {
- String test_url = "test/file/en.wikipedia.org/file/orig_regy";
- Db_conn conn = Db_conn_pool.I.Set_mem(test_url, tbl.Meta());
- tbl = new Xof_orig_regy_tbl();
- tbl.Conn_(conn);
- }
- public Xof_orig_regy_itm Exec_insert(String ttl, int w, int h) {
- byte[] ttl_bry = Bry_.new_utf8_(ttl);
- Xof_orig_regy_itm rv = new Xof_orig_regy_itm(ttl_bry, Xof_wiki_orig_wkr_.Tid_found_orig, Xof_repo_itm.Repo_local, w, h, Xof_ext_.new_by_ttl_(ttl_bry).Id(), Bry_.Empty);
- tbl.Insert(rv.Repo_tid(), rv.Ttl(), rv.Orig_ext(), rv.Orig_w(), rv.Orig_h(), rv.Orig_redirect());
- return rv;
- }
- public void Test_select_in(String[] itms, Xof_orig_regy_itm... expd) {
- OrderedHash rv = OrderedHash_.new_();
- tbl.Select_list(rv, ListAdp_.new_ary_(Bry_.Ary(itms)), Cancelable_.Never);
- Tfds.Eq_str_lines(To_str_ary(expd), To_str_ary((Xof_orig_regy_itm[])rv.Xto_ary(Xof_orig_regy_itm.class)));
- }
- private static String To_str_ary(Xof_orig_regy_itm... ary) {
- Bry_bfr bfr = Bry_bfr.reset_(255);
- int len = ary.length;
- for (int i = 0; i < len; ++i) {
- Xof_orig_regy_itm itm = ary[i];
- bfr .Add_byte(itm.Repo_tid()).Add_byte_pipe()
- .Add(itm.Ttl()).Add_byte_pipe()
- .Add_int_variable(itm.Orig_ext()).Add_byte_pipe()
- .Add_int_variable(itm.Orig_w()).Add_byte_pipe()
- .Add_int_variable(itm.Orig_h()).Add_byte_pipe()
- .Add(itm.Orig_redirect()).Add_byte_pipe()
- ;
- bfr.Add_byte_nl();
- }
- return bfr.Xto_str_and_clear();
- }
-}
diff --git a/400_xowa/src/gplx/xowa2/gui/Xog_page.java b/400_xowa/src/gplx/xowa2/gui/Xog_page.java
index df7493f2a..cf3276ab0 100644
--- a/400_xowa/src/gplx/xowa2/gui/Xog_page.java
+++ b/400_xowa/src/gplx/xowa2/gui/Xog_page.java
@@ -42,7 +42,7 @@ public class Xog_page {
gly_itms.Clear();
return this;
}
- public void Init(Bry_bfr tmp_bfr, Xoa_page page) {
+ public void Init(Bry_bfr tmp_bfr, Xoae_page page) {
page_id = page.Revision_data().Id();
page_body = page.Hdump_data().Body();
Xopg_html_data html_data = page.Html_data();
@@ -52,7 +52,7 @@ public class Xog_page {
content_sub = html_data.Content_sub();
sidebar_div = Save_sidebars(tmp_bfr, page, html_data);
}
- private static byte[] Save_sidebars(Bry_bfr tmp_bfr, Xoa_page page, Xopg_html_data html_data) {
+ private static byte[] Save_sidebars(Bry_bfr tmp_bfr, Xoae_page page, Xopg_html_data html_data) {
Xopg_xtn_skin_mgr mgr = html_data.Xtn_skin_mgr();
int len = mgr.Count();
boolean sidebar_exists = false;
diff --git a/400_xowa/src/gplx/xowa2/users/data/Xoud_site_mgr.java b/400_xowa/src/gplx/xowa2/users/data/Xoud_site_mgr.java
index c162679c3..240d58e67 100644
--- a/400_xowa/src/gplx/xowa2/users/data/Xoud_site_mgr.java
+++ b/400_xowa/src/gplx/xowa2/users/data/Xoud_site_mgr.java
@@ -19,13 +19,10 @@ package gplx.xowa2.users.data; import gplx.*; import gplx.xowa2.*; import gplx.x
import gplx.dbs.*;
public class Xoud_site_mgr {
private Xoud_site_tbl regy_tbl = new Xoud_site_tbl();
- private int user_id = 1;
- public void Init(Db_conn conn) {
- regy_tbl.Conn_(conn);
- }
- public Xoud_site_row[] Get_all() {return regy_tbl.Select_all(user_id);}
+ public void Conn_(Db_conn conn, boolean created, int user_id) {regy_tbl.Conn_(conn, created, user_id);}
+ public Xoud_site_row[] Get_all() {return regy_tbl.Select_all();}
public void Import(String domain, String name, String path, String xtn) { // insert or update wiki
- Xoud_site_row[] ary = regy_tbl.Select_by_domain(user_id, domain);
+ Xoud_site_row[] ary = regy_tbl.Select_by_domain(domain);
int len = ary.length, update_id = -1, priority = 0;
for (int i = 0; i < len; ++i) {
Xoud_site_row itm = ary[i];
@@ -36,8 +33,8 @@ public class Xoud_site_mgr {
}
}
if (update_id == -1)
- regy_tbl.Insert(user_id, 1, priority, domain, name, path, xtn);
+ regy_tbl.Insert(1, priority, domain, name, path, xtn);
else
- regy_tbl.Update(user_id, update_id, priority, domain, name, path, xtn);
+ regy_tbl.Update(update_id, priority, domain, name, path, xtn);
}
}
diff --git a/400_xowa/src/gplx/xowa2/users/data/Xoud_site_tbl.java b/400_xowa/src/gplx/xowa2/users/data/Xoud_site_tbl.java
index b31e8faf8..8083f53c7 100644
--- a/400_xowa/src/gplx/xowa2/users/data/Xoud_site_tbl.java
+++ b/400_xowa/src/gplx/xowa2/users/data/Xoud_site_tbl.java
@@ -18,50 +18,62 @@ along with this program. If not, see .
package gplx.xowa2.users.data; import gplx.*; import gplx.xowa2.*; import gplx.xowa2.users.*;
import gplx.dbs.*;
public class Xoud_site_tbl {
- public Db_conn Conn() {return conn;} public Xoud_site_tbl Conn_(Db_conn v) {this.Rls_all(); conn = v; return this;} private Db_conn conn;
- @gplx.Virtual public void Insert(int user_id, int site_id, int priority, String domain, String name, String path, String xtn) {
- Db_stmt stmt = conn.New_stmt_insert(Tbl_name, Flds);
- try {
- stmt .Val_int(Fld_user_id, user_id)
- .Val_int(Fld_site_id, site_id).Val_int(Fld_site_priority, priority).Val_str(Fld_site_domain, domain).Val_str(Fld_site_name, name).Val_str(Fld_site_path, path).Val_str(Fld_site_xtn, xtn)
- .Exec_insert();
+ private String tbl_name = "user_site_regy"; private final Db_meta_fld_list flds = Db_meta_fld_list.new_();
+ private String fld_user_id, fld_site_id, fld_site_priority, fld_site_domain, fld_site_name, fld_site_path, fld_site_xtn;
+ private Db_conn conn; private int user_id;
+ public void Conn_(Db_conn new_conn, boolean created, int user_id) {
+ this.conn = new_conn; flds.Clear(); this.user_id = user_id;
+ fld_user_id = flds.Add_int("user_id");
+ fld_site_id = flds.Add_int("site_id");
+ fld_site_priority = flds.Add_int("site_priority"); // EX: 0=default; 1+ is order if 0 is unavailable
+ fld_site_domain = flds.Add_str("site_domain", 255); // EX: en.wikipedia.org; NOTE: no protocol (https:)
+ fld_site_name = flds.Add_str("site_name", 255); // EX: English Wikipedia
+ fld_site_path = flds.Add_str("site_path", 255); // EX: ~{xowa_root}/wiki/en.wikipedia.org/
+ fld_site_xtn = flds.Add_text("site_xtn");
+ if (created) {
+ Db_meta_tbl meta = Db_meta_tbl.new_(tbl_name, flds
+ , Db_meta_idx.new_unique_by_tbl(tbl_name, "pkey", fld_user_id, fld_site_id)
+ );
+ conn.Exec_create_tbl_and_idx(meta);
}
- catch (Exception exc) {throw Db_stmt_.err_(exc, stmt, "Insert");}
}
- @gplx.Virtual public void Update(int user_id, int site_id, int priority, String domain, String name, String path, String xtn) {
- Db_stmt stmt = conn.New_stmt_update_by_meta(Tbl_name, Flds, Fld_user_id, Fld_site_id);
- try {
- stmt .Val_int(Fld_site_priority, priority).Val_str(Fld_site_domain, domain).Val_str(Fld_site_name, name).Val_str(Fld_site_path, path).Val_str(Fld_site_xtn, xtn)
- .Crt_int(Fld_user_id, user_id).Crt_int(Fld_site_id, site_id)
- .Exec_update();
- }
- catch (Exception exc) {throw Db_stmt_.err_(exc, stmt, "Update");}
+ @gplx.Virtual public void Insert(int site_id, int priority, String domain, String name, String path, String xtn) {
+ Db_stmt stmt = conn.Stmt_insert(tbl_name, flds);
+ stmt.Val_int(fld_user_id, user_id).Val_int(fld_site_id, site_id)
+ .Val_int(fld_site_priority, priority).Val_str(fld_site_domain, domain).Val_str(fld_site_name, name).Val_str(fld_site_path, path).Val_str(fld_site_xtn, xtn)
+ .Exec_insert();
}
- @gplx.Virtual public void Delete(int user_id, int site_id) {
- Db_stmt stmt = conn.New_stmt_delete(Tbl_name, Fld_user_id, Fld_site_id);
- try {stmt.Crt_int(Fld_user_id, user_id).Crt_int(Fld_site_id, site_id).Exec_delete();}
- catch (Exception exc) {throw Db_stmt_.err_(exc, stmt, "Delete");}
+ @gplx.Virtual public void Update(int site_id, int priority, String domain, String name, String path, String xtn) {
+ Db_stmt stmt = conn.Stmt_update_exclude(tbl_name, flds, fld_user_id, fld_site_id);
+ stmt.Val_int(fld_site_priority, priority).Val_str(fld_site_domain, domain).Val_str(fld_site_name, name).Val_str(fld_site_path, path).Val_str(fld_site_xtn, xtn)
+ .Crt_int(fld_user_id, user_id).Crt_int(fld_site_id, site_id)
+ .Exec_update();
}
- @gplx.Virtual public Xoud_site_row[] Select_all(int user_id) {
- ListAdp rv = ListAdp_.new_();
- Db_stmt stmt = conn.New_stmt_select_all_where(Tbl_name, Flds, Fld_user_id);
- try {
- Db_rdr rdr = stmt.Crt_int(Fld_user_id, user_id).Exec_select_as_rdr();
- while (rdr.Move_next()) {
- Xoud_site_row row = Make_row(rdr);
- rv.Add(row);
- }
- rdr.Rls();
- return (Xoud_site_row[])rv.Xto_ary_and_clear(Xoud_site_row.class);
- }
- catch (Exception exc) {throw Db_stmt_.err_(exc, stmt, "Select_all");}
+ @gplx.Virtual public void Delete(int site_id) {
+ Db_stmt stmt = conn.Stmt_delete(tbl_name, fld_user_id, fld_site_id);
+ stmt.Crt_int(fld_user_id, user_id).Crt_int(fld_site_id, site_id)
+ .Exec_delete();
}
- public Xoud_site_row[] Select_by_domain(int user_id, String domain) {
+ public Xoud_site_row[] Select_all() {
ListAdp rv = ListAdp_.new_();
Db_stmt stmt = Db_stmt_.Null; Db_rdr rdr = Db_rdr_.Null;
try {
- stmt = conn.New_stmt_select_all_where(Tbl_name, Flds, Fld_user_id, Fld_site_domain);
- rdr = stmt.Crt_int(Fld_user_id, user_id).Crt_str(Fld_site_domain, domain).Exec_select_as_rdr();
+ stmt = conn.Stmt_select(tbl_name, flds, fld_user_id);
+ rdr = stmt.Crt_int(fld_user_id, user_id).Exec_select_as_rdr();
+ while (rdr.Move_next()) {
+ Xoud_site_row row = Make_row(rdr);
+ rv.Add(row);
+ }
+ return (Xoud_site_row[])rv.Xto_ary_and_clear(Xoud_site_row.class);
+ }
+ finally {rdr.Rls();}
+ }
+ public Xoud_site_row[] Select_by_domain(String domain) {
+ ListAdp rv = ListAdp_.new_();
+ Db_stmt stmt = Db_stmt_.Null; Db_rdr rdr = Db_rdr_.Null;
+ try {
+ stmt = conn.Stmt_select(tbl_name, flds, fld_user_id, fld_site_domain);
+ rdr = stmt.Crt_int(fld_user_id, user_id).Crt_str(fld_site_domain, domain).Exec_select_as_rdr();
while (rdr.Move_next()) {
Xoud_site_row row = Make_row(rdr);
rv.Add(row);
@@ -69,33 +81,17 @@ public class Xoud_site_tbl {
rdr.Rls();
return (Xoud_site_row[])rv.Xto_ary_and_clear(Xoud_site_row.class);
}
- catch (Exception exc) {throw Db_stmt_.err_(exc, stmt, "Select_by_domain");}
- finally {rdr.Rls(); stmt.Rls();}
+ finally {rdr.Rls();}
}
private Xoud_site_row Make_row(Db_rdr rdr) {
return new Xoud_site_row
- ( rdr.Read_int(Fld_user_id)
- , rdr.Read_int(Fld_site_id)
- , rdr.Read_int(Fld_site_priority)
- , rdr.Read_str(Fld_site_domain)
- , rdr.Read_str(Fld_site_name)
- , rdr.Read_str(Fld_site_path)
- , rdr.Read_str(Fld_site_xtn)
+ ( rdr.Read_int(fld_user_id)
+ , rdr.Read_int(fld_site_id)
+ , rdr.Read_int(fld_site_priority)
+ , rdr.Read_str(fld_site_domain)
+ , rdr.Read_str(fld_site_name)
+ , rdr.Read_str(fld_site_path)
+ , rdr.Read_str(fld_site_xtn)
);
}
- public void Rls_all() {}
- private static final String Tbl_name = "user_site_regy";
- private static final Db_meta_fld_list Flds = Db_meta_fld_list.new_();
- private static final String
- Fld_user_id = Flds.Add_int("user_id")
- , Fld_site_id = Flds.Add_int("site_id")
- , Fld_site_priority = Flds.Add_int("site_priority") // EX: 0=default; 1+ is order if 0 is unavailable
- , Fld_site_domain = Flds.Add_str("site_domain", 255) // EX: en.wikipedia.org; NOTE: no protocol (https:)
- , Fld_site_name = Flds.Add_str("site_name", 255) // EX: English Wikipedia
- , Fld_site_path = Flds.Add_str("site_path", 255) // EX: ~{xowa_root}/wiki/en.wikipedia.org/
- , Fld_site_xtn = Flds.Add_text("site_xtn")
- ;
-// private static final Db_meta_tbl meta = Db_meta_tbl.new_(Tbl_name, Flds.To_fld_ary()
-// , Db_meta_idx.new_unique(Tbl_name, "pkey", Fld_user_id, Fld_site_id)
-// );
}
diff --git a/400_xowa/src/gplx/xowa2/wikis/Xowv_repo_mgr.java b/400_xowa/src/gplx/xowa2/wikis/Xowv_repo_mgr.java
new file mode 100644
index 000000000..2ceacb08e
--- /dev/null
+++ b/400_xowa/src/gplx/xowa2/wikis/Xowv_repo_mgr.java
@@ -0,0 +1,40 @@
+/*
+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.xowa2.wikis; import gplx.*; import gplx.xowa2.*;
+import gplx.xowa.files.repos.*;
+public class Xowv_repo_mgr implements Xow_repo_mgr {
+ private final ListAdp repos = ListAdp_.new_();
+ public Xof_repo_pair Repos_get_by_wiki(byte[] wiki) {
+ int len = repos.Count();
+ for (int i = 0; i < len; i++) {
+ Xof_repo_pair pair = (Xof_repo_pair)repos.FetchAt(i);
+ if (Bry_.Eq(wiki, pair.Wiki_domain()))
+ return pair;
+ }
+ return null;
+ }
+ public Xof_repo_pair Repos_get_at(int i) {return (Xof_repo_pair)repos.FetchAt(i);}
+ public Xof_repo_pair Repos_get_by_id(int id) {
+ int len = repos.Count();
+ for (int i = 0; i < len; i++) {
+ Xof_repo_pair pair = (Xof_repo_pair)repos.FetchAt(i);
+ if (pair.Repo_idx() == id) return pair;
+ }
+ return null;
+ }
+}
diff --git a/400_xowa/src/gplx/xowa2/wikis/Xowv_wiki.java b/400_xowa/src/gplx/xowa2/wikis/Xowv_wiki.java
index 58eb5d2ae..c54533201 100644
--- a/400_xowa/src/gplx/xowa2/wikis/Xowv_wiki.java
+++ b/400_xowa/src/gplx/xowa2/wikis/Xowv_wiki.java
@@ -16,29 +16,41 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa2.wikis; import gplx.*; import gplx.xowa2.*;
-import gplx.xowa.*; import gplx.xowa.wikis.xwikis.*; import gplx.xowa.langs.cases.*; import gplx.xowa.apps.ttls.*; import gplx.xowa.html.hzips.*;
-import gplx.xowa.dbs.tbls.*; import gplx.dbs.*; import gplx.xowa.hdumps.*;
+import gplx.xowa.*; import gplx.xowa.wikis.xwikis.*; import gplx.xowa.langs.cases.*; import gplx.xowa.wikis.ttls.*; import gplx.xowa.html.hzips.*;
+import gplx.xowa.dbs.tbls.*; import gplx.dbs.*; import gplx.xowa.hdumps.*; import gplx.xowa.wikis.*; import gplx.xowa.files.repos.*;
import gplx.xowa2.apps.*; import gplx.xowa2.wikis.specials.*; import gplx.xowa2.wikis.data.*; import gplx.xowa2.gui.*;
-public class Xowv_wiki implements Xoa_ttl_parser {
+public class Xowv_wiki implements Xow_wiki, Xow_ttl_parser {
public Xowv_wiki(Xoav_app app, byte[] domain_bry, Io_url wiki_root_dir) {
this.app = app;
- this.domain_bry = domain_bry; this.domain_str = String_.new_utf8_(domain_bry);
+ this.domain_bry = domain_bry; this.domain_str = String_.new_utf8_(domain_bry);
+ this.domain_itm = Xow_domain_.parse(domain_bry);
+ this.domain_tid = domain_itm.Domain_tid();
+ this.domain_abrv = Xow_wiki_alias.Build_alias(Xow_domain_.parse(domain_bry));
this.ns_mgr = Xow_ns_mgr_.default_(app.Utl_case_mgr()); // new Xow_ns_mgr(app.Utl_case_mgr()); // FIXME
this.data_mgr = new Xowd_data_mgr(domain_str, wiki_root_dir, ns_mgr);
this.hdump_mgr = new Xowd_hdump_mgr(app, this);
this.xwiki_mgr = new Xow_xwiki_mgr();
this.hzip_mgr = new Xow_hzip_mgr(app.Usr_dlg(), this);
this.special_mgr = new Xosp_special_mgr(this);
+ this.fsys_mgr = new Xow_fsys_mgr(wiki_root_dir, wiki_root_dir);
}
- public byte[] Domain_bry() {return domain_bry;} private final byte[] domain_bry;
- public String Domain_str() {return domain_str;} private final String domain_str;
- public Xow_ns_mgr Ns_mgr() {return ns_mgr;} private final Xow_ns_mgr ns_mgr;
- public Xoav_app App() {return app;} private final Xoav_app app;
+ public Xoa_app App() {return app;}
+ public byte[] Domain_bry() {return domain_bry;} private final byte[] domain_bry;
+ public String Domain_str() {return domain_str;} private final String domain_str;
+ public Xow_domain Domain_itm() {return domain_itm;} private final Xow_domain domain_itm;
+ public int Domain_tid() {return domain_tid;} private final int domain_tid;
+ public byte[] Domain_abrv() {return domain_abrv;} private final byte[] domain_abrv;
+ public Xow_ns_mgr Ns_mgr() {return ns_mgr;} private final Xow_ns_mgr ns_mgr;
+ public Xow_fsys_mgr Fsys_mgr() {return fsys_mgr;} private Xow_fsys_mgr fsys_mgr;
+ public boolean File_mgr__version_is_1() {return Bool_.Y;}
+ public Xow_repo_mgr File_mgr__repo_mgr() {return file_mgr__repo_mgr;} private Xowv_repo_mgr file_mgr__repo_mgr = new Xowv_repo_mgr();
+ public Xol_lang Lang() {throw Err_.not_implemented_();}
public Xosp_special_mgr Special_mgr() {return special_mgr;} private Xosp_special_mgr special_mgr;
public Xowd_data_mgr Db_mgr() {return data_mgr;} private final Xowd_data_mgr data_mgr;
public Xowd_hdump_mgr Hdump_mgr() {return hdump_mgr;} private final Xowd_hdump_mgr hdump_mgr;
public Xow_hzip_mgr Hzip_mgr() {return hzip_mgr;} private Xow_hzip_mgr hzip_mgr;
public Xow_xwiki_mgr Xwiki_mgr() {return xwiki_mgr;} private Xow_xwiki_mgr xwiki_mgr;
+ public Xoav_app Appv() {return app;} private final Xoav_app app;
public void Pages_get(Xog_page rv, Gfo_url url, Xoa_ttl ttl) {
data_mgr.Init_assert();
if (ttl.Ns().Id_special())
diff --git a/400_xowa/src/gplx/xowa2/wikis/data/Xowd_data_mgr.java b/400_xowa/src/gplx/xowa2/wikis/data/Xowd_data_mgr.java
index 1692407a2..812c9c0c5 100644
--- a/400_xowa/src/gplx/xowa2/wikis/data/Xowd_data_mgr.java
+++ b/400_xowa/src/gplx/xowa2/wikis/data/Xowd_data_mgr.java
@@ -26,34 +26,26 @@ public class Xowd_data_mgr {
public Xowd_page_regy_tbl Tbl__page() {return tbl__page;} private final Xowd_page_regy_tbl tbl__page = new Xowd_page_regy_tbl();
public Xowd_ns_regy_tbl Tbl__ns() {return tbl__ns;} private final Xowd_ns_regy_tbl tbl__ns = new Xowd_ns_regy_tbl();
public Xowd_db_regy_tbl Tbl__db() {return tbl__db;} private final Xowd_db_regy_tbl tbl__db = new Xowd_db_regy_tbl();
- public Db_url Url_by_idx(int idx) {if (!Int_.Between(idx, 0, db_keys_len)) throw Err_.new_("database does not exist: idx={0}", idx); return db_keys[idx];}
- private Xodb_file[] db_files; private Db_url[] db_keys; private int db_keys_len;
+ public Db_url Url_by_idx(int idx) {if (!Int_.Between(idx, 0, db_urls_len)) throw Err_.new_("database does not exist: idx={0}", idx); return db_urls[idx];}
+ private Xodb_file[] db_files; private Db_url[] db_urls; private int db_urls_len;
private boolean init_done = false;
public void Init_assert() {
if (init_done) return;
init_done = true;
if (String_.Eq(domain_str, "xowa")) return;
- Db_url core_url = Db_url__sqlite.load_(wiki_root_dir.GenSubFil_ary(domain_str, ".000.sqlite3"));
- Db_conn core_conn = Db_conn_pool.I.Get_or_new(core_url);
+ Db_url core_url = Sqlite_url.load_(wiki_root_dir.GenSubFil_ary(domain_str, ".000.sqlite3"));
+ Db_conn_bldr_data conn_data = Db_conn_bldr.I.Get_or_new("", core_url);
+ Db_conn core_conn = conn_data.Conn(); boolean created = conn_data.Created();
int wiki_id = 0;
boolean version_is_1 = Bool_.N;
tbl__db.Conn_(core_conn, version_is_1);
tbl__ns.Conn_(core_conn, version_is_1);
- tbl__page.Conn_(core_conn, version_is_1);
- db_files = tbl__db.Select_all(wiki_root_dir);
- db_keys = Db_keys_make(db_files);
- db_keys_len = db_keys.length;
+ tbl__page.Conn_(core_conn, created, version_is_1);
+ db_files = tbl__db.Select_all(wiki_root_dir);
+ db_urls_len = db_files.length;
+ db_urls = new Db_url[db_urls_len];
+ for (int i = 0; i < db_urls_len; ++i)
+ db_urls[i] = Db_url_.sqlite_(db_files[i].Url());
tbl__ns.Select_all(wiki_id, ns_mgr);
- return;
- }
- private static Db_url[] Db_keys_make(Xodb_file[] ary) {
- int len = ary.length;
- Db_url[] rv = new Db_url[len];
- for (int i = 0; i < len; ++i) {
- Xodb_file itm = ary[i];
- Io_url itm_url = itm.Url();
- rv[i] = Db_url_.sqlite_(itm_url);
- }
- return rv;
}
}
diff --git a/400_xowa/src/gplx/xowa2/wikis/data/Xowd_db_regy_tbl.java b/400_xowa/src/gplx/xowa2/wikis/data/Xowd_db_regy_tbl.java
index 41c99a4bb..124b5ea46 100644
--- a/400_xowa/src/gplx/xowa2/wikis/data/Xowd_db_regy_tbl.java
+++ b/400_xowa/src/gplx/xowa2/wikis/data/Xowd_db_regy_tbl.java
@@ -18,34 +18,33 @@ along with this program. If not, see .
package gplx.xowa2.wikis.data; import gplx.*; import gplx.xowa2.*; import gplx.xowa2.wikis.*;
import gplx.lists.*;
import gplx.dbs.*; import gplx.xowa.dbs.*;
-public class Xowd_db_regy_tbl implements Db_conn_itm {
- private String Tbl_name = "wiki_db_regy";
- private final Db_meta_fld_list Flds = Db_meta_fld_list.new_();
- private String Fld_id, Fld_type, Fld_url;
+public class Xowd_db_regy_tbl {
+ private String tbl_name = "wiki_db_regy";
+ private final Db_meta_fld_list flds = Db_meta_fld_list.new_();
+ private String fld_id, fld_type, fld_url;
private Db_conn conn;
public void Conn_(Db_conn new_conn, boolean version_is_1) {
- this.conn = Db_conn_.Reg_itm(this, conn, new_conn);
+ this.conn = new_conn; flds.Clear();
String name_prefix = "";
if (version_is_1) {
- Tbl_name = "xowa_db";
+ tbl_name = "xowa_db";
name_prefix = "db_";
}
else {
- //Fld_wiki_id = Flds.Add_int("wiki_id");
+ //fld_db_id = flds.Add_int("db_id");
}
- Fld_id = Flds.Add_int (name_prefix + "id");
- Fld_type = Flds.Add_byte (name_prefix + "type");
- Fld_url = Flds.Add_str (name_prefix + "url", 512);
+ fld_id = flds.Add_int (name_prefix + "id");
+ fld_type = flds.Add_byte (name_prefix + "type");
+ fld_url = flds.Add_str (name_prefix + "url", 512);
}
- public void Conn_term() {}
public Xodb_file[] Select_all(Io_url wiki_root_dir) {
Db_rdr rdr = Db_rdr_.Null;
ListAdp list = ListAdp_.new_();
try {
- Db_stmt stmt = conn.New_stmt_select_all_where(Tbl_name, Flds, Db_meta_fld.Ary_empy);
+ Db_stmt stmt = conn.Stmt_select(tbl_name, flds, Db_meta_fld.Ary_empy);
rdr = stmt.Exec_select_as_rdr();
while (rdr.Move_next()) {
- Xodb_file db = Xodb_file.load_(rdr.Read_int(Fld_id), rdr.Read_byte(Fld_type), rdr.Read_str(Fld_url));
+ Xodb_file db = Xodb_file.load_(rdr.Read_int(fld_id), rdr.Read_byte(fld_type), rdr.Read_str(fld_url));
db.Url_(wiki_root_dir.GenSubFil(db.Url_rel()));
list.Add(db);
}
diff --git a/400_xowa/src/gplx/xowa2/wikis/data/Xowd_ns_regy_tbl.java b/400_xowa/src/gplx/xowa2/wikis/data/Xowd_ns_regy_tbl.java
index 8bfdf4ad4..054239348 100644
--- a/400_xowa/src/gplx/xowa2/wikis/data/Xowd_ns_regy_tbl.java
+++ b/400_xowa/src/gplx/xowa2/wikis/data/Xowd_ns_regy_tbl.java
@@ -17,65 +17,66 @@ along with this program. If not, see .
*/
package gplx.xowa2.wikis.data; import gplx.*; import gplx.xowa2.*; import gplx.xowa2.wikis.*;
import gplx.dbs.*; import gplx.xowa.*;
-public class Xowd_ns_regy_tbl implements Db_conn_itm {
- private String Tbl_name = "xowa_ns";
- private final Db_meta_fld_list Flds = Db_meta_fld_list.new_();
- private String Fld_wiki_id = "", Fld_ns_id, Fld_ns_name, Fld_ns_case, Fld_ns_count, Fld_ns_is_alias;
+public class Xowd_ns_regy_tbl {
+ private String tbl_name = "xowa_ns";
+ private final Db_meta_fld_list flds = Db_meta_fld_list.new_();
+ private String fld_db_id, fld_ns_id, fld_ns_name, fld_ns_case, fld_ns_count, fld_ns_is_alias;
private String[] where_cols;
private boolean version_is_1;
private Db_conn conn;
public void Conn_(Db_conn new_conn, boolean version_is_1) {
- this.conn = Db_conn_.Reg_itm(this, conn, new_conn);
+ this.conn = new_conn; flds.Clear();
this.version_is_1 = version_is_1;
if (version_is_1) {
- where_cols = String_.Ary(Fld_ns_id);
+ where_cols = String_.Ary(fld_ns_id);
+ fld_db_id = Db_meta_fld.Key_null;
}
else {
- where_cols = String_.Ary(Fld_wiki_id, Fld_ns_id);
- Tbl_name = "wiki_ns_regy";
- Fld_wiki_id = Flds.Add_int("wiki_id");
+ where_cols = String_.Ary(fld_db_id, fld_ns_id);
+ tbl_name = "wiki_ns_regy";
+ fld_db_id = flds.Add_int("db_id");
}
- Fld_ns_id = Flds.Add_int("ns_id");
- Fld_ns_name = Flds.Add_str("ns_name", 255);
- Fld_ns_case = Flds.Add_byte("ns_case");
- Fld_ns_is_alias = Flds.Add_bool("ns_is_alias");
- Fld_ns_count = Flds.Add_int("ns_count");
+ fld_ns_id = flds.Add_int("ns_id");
+ fld_ns_name = flds.Add_str("ns_name", 255);
+ fld_ns_case = flds.Add_byte("ns_case");
+ fld_ns_is_alias = flds.Add_bool("ns_is_alias");
+ fld_ns_count = flds.Add_int("ns_count");
}
- public void Conn_term() {}
- public void Insert(int wiki_id, Xow_ns_mgr ns_mgr) {
+ public void Insert(int db_id, Xow_ns_mgr ns_mgr) {
Db_stmt stmt = Db_stmt_.Null;
try {
- stmt = conn.New_stmt_insert(Tbl_name, Flds);
+ stmt = conn.Stmt_insert(tbl_name, flds);
int len = ns_mgr.Ids_len();
for (int i = 0; i < len; i++) {
Xow_ns ns = ns_mgr.Ids_get_at(i);
- stmt.Clear();
- if (!version_is_1) stmt.Val_int(Fld_wiki_id, wiki_id);
- stmt.Val_int(Fld_ns_id, ns.Id())
- .Val_str(Fld_ns_name, ns.Name_str())
- .Val_byte(Fld_ns_case, ns.Case_match())
- .Val_bool_as_byte(Fld_ns_is_alias, ns.Is_alias())
- .Val_int(Fld_ns_count, ns.Count())
+ stmt.Clear()
+ .Val_int(fld_db_id, db_id)
+ .Val_int(fld_ns_id, ns.Id())
+ .Val_str(fld_ns_name, ns.Name_str())
+ .Val_byte(fld_ns_case, ns.Case_match())
+ .Val_bool_as_byte(fld_ns_is_alias, ns.Is_alias())
+ .Val_int(fld_ns_count, ns.Count())
.Exec_insert();
;
}
} finally {stmt.Rls();}
}
- public void Select_all(int wiki_id, Xow_ns_mgr ns_mgr) {
+ public void Select_all(int db_id, Xow_ns_mgr ns_mgr) {
Db_rdr rdr = Db_rdr_.Null; Db_stmt stmt = Db_stmt_.Null;
try {
- String[] where = version_is_1 ? Db_meta_fld.Ary_empy : String_.Ary(Fld_wiki_id);
- stmt = conn.New_stmt_select_all_where(Tbl_name, Flds, where);
- stmt.Clear();
- if (!version_is_1) stmt.Crt_int(Fld_wiki_id, wiki_id);
- rdr = stmt.Exec_select_as_rdr();
+ String[] where = version_is_1 ? Db_meta_fld.Ary_empy : String_.Ary(fld_db_id);
+ stmt = conn.Stmt_select(tbl_name, flds, where);
+ rdr = stmt.Clear()
+ .Crt_int(fld_db_id, db_id)
+ .Exec_select_as_rdr()
+ ;
ns_mgr.Clear();
while (rdr.Move_next()) {
- int ns_id = rdr.Read_int(Fld_ns_id);
- byte[] ns_name = rdr.Read_bry_by_str(Fld_ns_name);
- byte ns_case_match = rdr.Read_byte(Fld_ns_case);
- int ns_count = rdr.Read_int(Fld_ns_count);
- boolean ns_is_alias = rdr.Read_bool_by_byte(Fld_ns_is_alias);
+ int ns_id = rdr.Read_int(fld_ns_id);
+ byte[] ns_name = rdr.Read_bry_by_str(fld_ns_name);
+ byte ns_case_match = rdr.Read_byte(fld_ns_case);
+ int ns_count = rdr.Read_int(fld_ns_count);
+ boolean ns_is_alias = rdr.Read_bool_by_byte(fld_ns_is_alias);
ns_mgr.Add_new(ns_id, ns_name, ns_case_match, ns_is_alias);
if (ns_id < 0) continue; // don't load counts for Special / Media
Xow_ns ns = ns_mgr.Ids_get_or_null(ns_id);
@@ -85,29 +86,25 @@ public class Xowd_ns_regy_tbl implements Db_conn_itm {
ns_mgr.Init();
} finally {rdr.Rls(); stmt.Rls();}
}
- public int Select_ns_count(int wiki_id, int ns_id) {
- Db_stmt stmt = conn.New_stmt_select_all_where(Tbl_name, where_cols, Fld_ns_count);
+ public int Select_ns_count(int db_id, int ns_id) {
+ Db_stmt stmt = conn.Stmt_select(tbl_name, where_cols, fld_ns_count);
Db_rdr rdr = Db_rdr_.Null;
try {
- rdr = Init_stmt(stmt, wiki_id).Crt_int(Fld_ns_id, ns_id).Exec_select_as_rdr();
- return rdr.Move_next() ? rdr.Read_int(Fld_ns_count) : 0;
+ rdr = stmt.Crt_int(fld_db_id, db_id).Crt_int(fld_ns_id, ns_id).Exec_select_as_rdr();
+ return rdr.Move_next() ? rdr.Read_int(fld_ns_count) : 0;
}
finally {
rdr.Rls();
}
}
- public void Update_ns_count(int wiki_id, int ns_id, int ns_count) {
- Db_stmt stmt = conn.New_stmt_update(Tbl_name, where_cols, Fld_ns_count);
- stmt.Clear();
- if (!version_is_1) stmt.Crt_int(Fld_wiki_id, wiki_id);
- stmt.Crt_int(Fld_ns_id, ns_id).Val_int(Fld_ns_count, ns_count).Exec_update();
+ public void Update_ns_count(int db_id, int ns_id, int ns_count) {
+ Db_stmt stmt = conn.Stmt_update(tbl_name, where_cols, fld_ns_count);
+ stmt.Clear()
+ .Crt_int(fld_db_id, db_id)
+ .Crt_int(fld_ns_id, ns_id).Val_int(fld_ns_count, ns_count)
+ .Exec_update();
}
- private Db_stmt Init_stmt(Db_stmt stmt, int wiki_id) {
- stmt.Clear();
- if (!version_is_1) stmt.Crt_int(Fld_wiki_id, wiki_id);
- return stmt;
- }
-// private static final Db_meta_tbl meta = Db_meta_tbl.new_(Tbl_name, Flds
-// , Db_meta_idx.new_unique(Tbl_name, "pkey", Fld_wiki_id, Fld_ns_id)
+// private static final Db_meta_tbl meta = Db_meta_tbl.new_(tbl_name, flds
+// , Db_meta_idx.new_unique(tbl_name, "pkey", fld_db_id, fld_ns_id)
// );
}
diff --git a/400_xowa/src/gplx/xowa2/wikis/data/Xowd_page_regy_tbl.java b/400_xowa/src/gplx/xowa2/wikis/data/Xowd_page_regy_tbl.java
index 558b430f1..a93588e4d 100644
--- a/400_xowa/src/gplx/xowa2/wikis/data/Xowd_page_regy_tbl.java
+++ b/400_xowa/src/gplx/xowa2/wikis/data/Xowd_page_regy_tbl.java
@@ -16,98 +16,102 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa2.wikis.data; import gplx.*; import gplx.xowa2.*; import gplx.xowa2.wikis.*;
-import gplx.dbs.*; import gplx.xowa.*;
-public class Xowd_page_regy_tbl implements Db_conn_itm {
+import gplx.dbs.*; import gplx.xowa.*; import gplx.xowa.dbs.*;
+public class Xowd_page_regy_tbl {
private String tbl_name = "wiki_page_regy";
- private String Fld_page_id, Fld_page_ns, Fld_page_title, Fld_page_is_redirect, Fld_page_touched, Fld_page_len, Fld_page_random_int, Fld_page_text_db_id, Fld_page_html_db_id, Fld_page_redirect_id;
- public Db_meta_fld_list Flds() {return flds;} private final Db_meta_fld_list flds = Db_meta_fld_list.new_();
- private String[] Flds_select() {return String_.Ary(Fld_page_id, Fld_page_ns, Fld_page_title, Fld_page_touched, Fld_page_is_redirect, Fld_page_len, Fld_page_text_db_id, Fld_page_html_db_id, Fld_page_redirect_id);}
- public Db_meta_tbl new_meta() {
- return Db_meta_tbl.new_(tbl_name, flds.To_fld_ary()
- , Db_meta_idx.new_normal(tbl_name, "title" , Fld_page_ns, Fld_page_title, Fld_page_id, Fld_page_len, Fld_page_is_redirect)
- , Db_meta_idx.new_normal(tbl_name, "random" , Fld_page_ns, Fld_page_random_int)
- );
- }
- private Db_conn conn; private Db_stmt stmt_select_by_ttl, stmt_select_by_id, stmt_insert;
- public void Conn_(Db_conn new_conn, boolean version_is_1) {
- this.conn = Db_conn_.Reg_itm(this, conn, new_conn);
- conn.Itms_add(this);
+ private String fld_page_id, fld_page_ns, fld_page_title, fld_page_is_redirect, fld_page_touched, fld_page_len, fld_page_random_int, fld_page_text_db_id, fld_page_html_db_id, fld_page_redirect_id;
+ private final Db_meta_fld_list flds = Db_meta_fld_list.new_();
+ private String[] flds_select() {return String_.Ary(fld_page_id, fld_page_ns, fld_page_title, fld_page_touched, fld_page_is_redirect, fld_page_len, fld_page_text_db_id, fld_page_html_db_id, fld_page_redirect_id);}
+ private Db_conn conn; private Db_stmt stmt_select_all_by_ttl, stmt_select_all_by_id, stmt_select_id_by_ttl, stmt_insert;
+ public void Conn_(Db_conn new_conn, boolean created, boolean version_is_1) {
+ this.conn = new_conn;
String page_text_db_id_key = "page_text_db_id";
if (version_is_1) {
tbl_name = "page";
page_text_db_id_key = "page_file_idx";
+ fld_page_html_db_id = Db_meta_fld.Key_null;
+ fld_page_redirect_id = Db_meta_fld.Key_null;
}
- Fld_page_id = flds.Add_int_pkey("page_id"); // int(10); unsigned -- MW:same
- Fld_page_ns = flds.Add_int("page_namespace"); // int(11); -- MW:same
- Fld_page_title = flds.Add_str("page_title", 255); // varbinary(255); -- MW:blob
- Fld_page_is_redirect = flds.Add_int("page_is_redirect"); // tinyint(3); -- MW:same
- Fld_page_touched = flds.Add_str("page_touched", 14); // binary(14); -- MW:blob; NOTE: should be revision!rev_timestamp, but needs extra join
- Fld_page_len = flds.Add_int("page_len"); // int(10); unsigned -- MW:same except NULL REF: WikiPage.php!updateRevisionOn;"
- Fld_page_random_int = flds.Add_int("page_random_int"); // MW:XOWA
- Fld_page_text_db_id = flds.Add_int(page_text_db_id_key); // MW:XOWA
- Fld_page_html_db_id = flds.Add_int("page_html_db_id"); // MW:XOWA
- Fld_page_redirect_id = flds.Add_int("page_redirect_id"); // MW:XOWA
- }
- public void Conn_term() {
- if (stmt_select_by_ttl != null) {stmt_select_by_ttl.Rls(); stmt_select_by_ttl = null;}
- if (stmt_select_by_id != null) {stmt_select_by_id.Rls(); stmt_select_by_id = null;}
- if (stmt_insert != null) {stmt_insert.Rls(); stmt_insert = null;}
+ else {
+ }
+ fld_page_id = flds.Add_int_pkey("page_id"); // int(10); unsigned -- MW:same
+ fld_page_ns = flds.Add_int("page_namespace"); // int(11); -- MW:same
+ fld_page_title = flds.Add_str("page_title", 255); // varbinary(255); -- MW:blob
+ fld_page_is_redirect = flds.Add_int("page_is_redirect"); // tinyint(3); -- MW:same
+ fld_page_touched = flds.Add_str("page_touched", 14); // binary(14); -- MW:blob; NOTE: should be revision!rev_timestamp, but needs extra join
+ fld_page_len = flds.Add_int("page_len"); // int(10); unsigned -- MW:same except NULL REF: WikiPage.php!updateRevisionOn;"
+ fld_page_random_int = flds.Add_int("page_random_int"); // MW:XOWA
+ fld_page_text_db_id = flds.Add_int(page_text_db_id_key); // MW:XOWA
+ fld_page_html_db_id = flds.Add_int("page_html_db_id"); // MW:XOWA
+ fld_page_redirect_id = flds.Add_int("page_redirect_id"); // MW:XOWA
+ if (created) {
+ Db_meta_tbl meta_tbl = Db_meta_tbl.new_(tbl_name, flds.To_fld_ary()
+ , Db_meta_idx.new_normal_by_tbl(tbl_name, "title" , fld_page_ns, fld_page_title, fld_page_id, fld_page_len, fld_page_is_redirect)
+ , Db_meta_idx.new_normal_by_tbl(tbl_name, "random" , fld_page_ns, fld_page_random_int)
+ );
+ conn.Exec_create_tbl_and_idx(meta_tbl);
+ }
+ stmt_insert = stmt_select_all_by_ttl = stmt_select_all_by_id = stmt_select_id_by_ttl = null;
}
public boolean Select_by_ttl(Xodb_page rv, Xow_ns ns, byte[] ttl) {
Db_rdr rdr = Db_rdr_.Null;
try {
- if (stmt_select_by_ttl == null) stmt_select_by_ttl = conn.New_stmt_select_all_where(tbl_name, flds.To_str_ary(), Fld_page_ns, Fld_page_title);
- rdr = stmt_select_by_ttl.Clear().Val_int(ns.Id()).Val_str(String_.new_utf8_(ttl)).Exec_select_as_rdr();
+ if (stmt_select_all_by_ttl == null) stmt_select_all_by_ttl = conn.Rls_reg(conn.Stmt_select(tbl_name, flds.To_str_ary(), fld_page_ns, fld_page_title));
+ rdr = stmt_select_all_by_ttl.Clear().Val_int(ns.Id()).Val_str(String_.new_utf8_(ttl)).Exec_select_as_rdr();
if (rdr.Move_next()) {
Read_page__all(rv, rdr);
return true;
}
}
- catch (Exception exc) {stmt_select_by_ttl = null; throw Err_.err_(exc, "stmt failed");} // must reset stmt, else next call will fail
+ catch (Exception exc) {stmt_select_all_by_ttl = null; throw Err_.err_(exc, "stmt failed");} // must reset stmt, else next call will fail
finally {rdr.Rls();}
return false;
}
public boolean Select_by_id(Xodb_page rv, int page_id) {
Db_rdr rdr = Db_rdr_.Null;
try {
- if (stmt_select_by_id == null) stmt_select_by_id = conn.New_stmt_select_all_where(tbl_name, Flds_select(), Fld_page_id);
- rdr = stmt_select_by_id.Clear().Val_int(page_id).Exec_select_as_rdr();
+ if (stmt_select_all_by_id == null) stmt_select_all_by_id = conn.Rls_reg(conn.Stmt_select(tbl_name, flds_select(), fld_page_id));
+ rdr = stmt_select_all_by_id.Clear().Val_int(page_id).Exec_select_as_rdr();
if (rdr.Move_next()) {
Read_page__all(rv, rdr);
return true;
}
}
- catch (Exception exc) {stmt_select_by_id = null; throw Err_.err_(exc, "stmt failed");} // must reset stmt, else next call will fail
+ catch (Exception exc) {stmt_select_all_by_id = null; throw Err_.err_(exc, "stmt failed");} // must reset stmt, else next call will fail
finally {rdr.Rls();}
return false;
}
- public void Insert(int page_id, int ns_id, byte[] ttl_wo_ns, boolean page_is_redirect, DateAdp modified_on, int page_len, int random_int, int file_idx, int html_db_id) {
+ public int Select_id(int ns_id, byte[] ttl) {
+ Db_rdr rdr = Db_rdr_.Null;
+ if (stmt_select_id_by_ttl == null) stmt_select_id_by_ttl = conn.Rls_reg(conn.Stmt_select(tbl_name, flds_select(), fld_page_ns, fld_page_title));
try {
- if (stmt_insert == null) stmt_insert = conn.New_stmt_insert(tbl_name, flds.To_str_ary());
- stmt_insert.Clear()
- .Val_int(page_id)
- .Val_int(ns_id)
- .Val_str(String_.new_utf8_(ttl_wo_ns))
- .Val_byte((byte)(page_is_redirect ? 1 : 0))
- .Val_str(modified_on.XtoStr_fmt(Page_touched_fmt))
- .Val_int(page_len)
- .Val_int(random_int)
- .Val_int(file_idx)
- .Exec_insert();
- }
- catch (Exception exc) {stmt_select_by_ttl = null; throw Err_.err_(exc, "stmt failed");} // must reset stmt, else next call will fail
- finally {}
+ rdr = stmt_select_id_by_ttl.Crt_int(fld_page_ns, ns_id).Crt_bry_as_str(fld_page_title, ttl).Exec_select_as_rdr();
+ return rdr.Move_next() ? rdr.Read_int(fld_page_id) : Xodb_mgr_sql.Page_id_null;
+ } finally {rdr.Rls();}
+ }
+ public void Insert(int page_id, int ns_id, byte[] ttl_wo_ns, boolean page_is_redirect, DateAdp modified_on, int page_len, int random_int, int file_idx, int html_db_id) {
+ if (stmt_insert == null) stmt_insert = conn.Rls_reg(conn.Stmt_insert(tbl_name, flds.To_str_ary()));
+ stmt_insert.Clear()
+ .Val_int(page_id)
+ .Val_int(ns_id)
+ .Val_str(String_.new_utf8_(ttl_wo_ns))
+ .Val_byte((byte)(page_is_redirect ? 1 : 0))
+ .Val_str(modified_on.XtoStr_fmt(Page_touched_fmt))
+ .Val_int(page_len)
+ .Val_int(random_int)
+ .Val_int(file_idx)
+ .Exec_insert();
}
private void Read_page__all(Xodb_page page, Db_rdr rdr) {
- page.Id_ (rdr.Read_int(Fld_page_id));
- page.Ns_id_ (rdr.Read_int(Fld_page_ns));
- page.Ttl_wo_ns_ (rdr.Read_bry_by_str(Fld_page_title));
- page.Modified_on_ (DateAdp_.parse_fmt(rdr.Read_str(Fld_page_touched), Page_touched_fmt));
- page.Type_redirect_ (rdr.Read_bool_by_byte(Fld_page_is_redirect));
- page.Text_len_ (rdr.Read_int(Fld_page_len));
- page.Text_db_id_ (rdr.Read_int(Fld_page_text_db_id));
- page.Html_db_id_ (rdr.Read_int(Fld_page_html_db_id));
- page.Redirect_id_ (rdr.Read_int(Fld_page_redirect_id));
+ page.Id_ (rdr.Read_int(fld_page_id));
+ page.Ns_id_ (rdr.Read_int(fld_page_ns));
+ page.Ttl_wo_ns_ (rdr.Read_bry_by_str(fld_page_title));
+ page.Modified_on_ (DateAdp_.parse_fmt(rdr.Read_str(fld_page_touched), Page_touched_fmt));
+ page.Type_redirect_ (rdr.Read_bool_by_byte(fld_page_is_redirect));
+ page.Text_len_ (rdr.Read_int(fld_page_len));
+ page.Text_db_id_ (rdr.Read_int(fld_page_text_db_id));
+ page.Html_db_id_ (rdr.Read_int(fld_page_html_db_id));
+ page.Redirect_id_ (rdr.Read_int(fld_page_redirect_id));
}
private static final String Page_touched_fmt = "yyyyMMddHHmmss";
}
diff --git a/400_xowa/src/gplx/xowa2/wikis/specials/Xosp_special_mgr.java b/400_xowa/src/gplx/xowa2/wikis/specials/Xosp_special_mgr.java
index ca28ed4e0..c41e396db 100644
--- a/400_xowa/src/gplx/xowa2/wikis/specials/Xosp_special_mgr.java
+++ b/400_xowa/src/gplx/xowa2/wikis/specials/Xosp_special_mgr.java
@@ -22,7 +22,7 @@ public class Xosp_special_mgr {
private final Xowv_wiki wiki;
public Xosp_special_mgr(Xowv_wiki wiki) {this.wiki = wiki;}
public void Get_by_ttl(Xog_page rv, Gfo_url url, Xoa_ttl ttl) {
- Xosp_fbrow_rslt rslt = Xosp_fbrow_special.Gen(url.Args(), wiki.App().Wiki_mgr());
+ Xosp_fbrow_rslt rslt = Xosp_fbrow_special.Gen(url.Args(), wiki.Appv().Wiki_mgr());
rv.Init(-1, null, ttl);
rv.Page_body_(rslt.Html_body());
rv.Html_head_xtn_(rslt.Html_head());
diff --git a/400_xowa/src_100_app/gplx/xowa/Xoa_cur.java b/400_xowa/src_100_app/gplx/xowa/Xoa_cur.java
index 4bc3f9fca..b1fb1b659 100644
--- a/400_xowa/src_100_app/gplx/xowa/Xoa_cur.java
+++ b/400_xowa/src_100_app/gplx/xowa/Xoa_cur.java
@@ -18,11 +18,11 @@ along with this program. If not, see .
package gplx.xowa; import gplx.*;
import gplx.xowa.gui.views.*;
public class Xoa_cur implements GfoInvkAble {
- public Xoa_cur(Xoa_app app) {this.app = app;} private Xoa_app app;
+ public Xoa_cur(Xoae_app app) {this.app = app;} private Xoae_app app;
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
if (ctx.Match(k, Invk_wiki)) {
Xog_win_itm win = app.Gui_mgr().Browser_win();
- return win.Active_tab() == null ? GfoInvkAble_.Null : win.Active_page().Wiki(); // null check when called from mass html gen; DATE:2014-06-04
+ return win.Active_tab() == null ? GfoInvkAble_.Null : win.Active_page().Wikie(); // null check when called from mass html gen; DATE:2014-06-04
}
else if (ctx.Match(k, Invk_win)) return app.Gui_mgr().Browser_win();
else if (ctx.Match(k, Invk_user)) return app.User();
diff --git a/400_xowa/src_100_app/gplx/xowa/Xoa_hive_mgr.java b/400_xowa/src_100_app/gplx/xowa/Xoa_hive_mgr.java
index 800dc7191..1e16df70d 100644
--- a/400_xowa/src_100_app/gplx/xowa/Xoa_hive_mgr.java
+++ b/400_xowa/src_100_app/gplx/xowa/Xoa_hive_mgr.java
@@ -16,12 +16,12 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa; import gplx.*;
-import gplx.core.primitives.*;
+import gplx.core.primitives.*; import gplx.xowa.tdbs.*;
public class Xoa_hive_mgr {
- public Xoa_hive_mgr(Xoa_app app) {this.app = app;} private Xoa_app app;
+ public Xoa_hive_mgr(Xoae_app app) {this.app = app;} private Xoae_app app;
public Xob_xdat_itm Itm() {return xdat_itm;}
public int Find_fil(Io_url hive_root, byte[] ttl) {
- Io_url hive_url = hive_root.GenSubFil(Xow_dir_info_.Name_reg_fil);
+ Io_url hive_url = hive_root.GenSubFil(Xotdb_dir_info_.Name_reg_fil);
if (!hive_url.Eq(regy_mgr.Fil()))
regy_mgr.Init(hive_url);
return regy_mgr.Files_find(ttl);
@@ -30,7 +30,7 @@ public class Xoa_hive_mgr {
public Xob_xdat_file Get_rdr(Io_url hive_root, byte[] fil_ext_bry, int fil_idx) {
Bry_bfr tmp_bfr = app.Utl_bry_bfr_mkr().Get_m001();
byte[] tmp_bry = tmp_bfr.Bfr(); bry_len.Val_zero_();
- Io_url file = Xow_fsys_mgr.Url_fil(hive_root, fil_idx, fil_ext_bry);
+ Io_url file = Xotdb_fsys_mgr.Url_fil(hive_root, fil_idx, fil_ext_bry);
tmp_bry = Io_mgr._.LoadFilBry_reuse(file, tmp_bry, bry_len);
xdat_rdr.Clear().Parse(tmp_bry, bry_len.Val(), file);
tmp_bfr.Mkr_rls().Clear();
diff --git a/400_xowa/src_100_app/gplx/xowa/Xoa_sys_cfg.java b/400_xowa/src_100_app/gplx/xowa/Xoa_sys_cfg.java
index 963ccae36..b670e3e0b 100644
--- a/400_xowa/src_100_app/gplx/xowa/Xoa_sys_cfg.java
+++ b/400_xowa/src_100_app/gplx/xowa/Xoa_sys_cfg.java
@@ -16,9 +16,10 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa; import gplx.*;
+import gplx.xowa.langs.*;
public class Xoa_sys_cfg implements GfoInvkAble {
- private Xoa_app app;
- public Xoa_sys_cfg(Xoa_app app) {this.app = app;}
+ private Xoae_app app;
+ public Xoa_sys_cfg(Xoae_app app) {this.app = app;}
public byte[] Lang() {return lang_key;}
public Xoa_sys_cfg Lang_(byte[] v) {
lang_key = Xol_lang_itm_.Get_by_key_or_en(v).Key();
@@ -58,7 +59,7 @@ class Options_list_lang_ {
if (translated.Has(itm.Key())) continue;
untranslated.Add(itm);
}
- untranslated.SortBy(Xol_lang_itm_.Comparer_code);
+ untranslated.SortBy(Xol_lang_itm_.Comparer_key);
KeyVal[] rv = new KeyVal[len];
int translated_max = translated.Count();
@@ -71,7 +72,7 @@ class Options_list_lang_ {
}
private static KeyVal new_itm(Xol_lang_itm itm) {
String key_str = String_.new_utf8_(itm.Key());
- String name_str = String_.new_utf8_(itm.Local_name());
+ String name_str = String_.new_utf8_(itm.Localized_name());
return KeyVal_.new_(key_str, name_str + " [" + key_str + "]");
}
private static void Add_itm_many(OrderedHash translated, int... langs) {
diff --git a/400_xowa/src_100_app/gplx/xowa/Xoa_url_alias_mgr.java b/400_xowa/src_100_app/gplx/xowa/Xoa_url_alias_mgr.java
index 79c58f261..c124c91f6 100644
--- a/400_xowa/src_100_app/gplx/xowa/Xoa_url_alias_mgr.java
+++ b/400_xowa/src_100_app/gplx/xowa/Xoa_url_alias_mgr.java
@@ -18,7 +18,7 @@ along with this program. If not, see .
//namespace gplx.xowa {
// public class Xoa_url_alias_mgr : GfoInvkAble {
// private Hash_adp_bry hash = Hash_adp_bry.cs_(); private Bry_fmtr fmtr = Bry_fmtr.new_("", "");
-// public Xoa_url_alias_mgr(Xoa_app app) {this.app = app;} private Xoa_app app;
+// public Xoa_url_alias_mgr(Xoae_app app) {this.app = app;} private Xoae_app app;
// public byte[] Fmt_or_null(byte[] raw) {
// int colon_pos = Bry_finder.Find_fwd(raw, Byte_ascii.Colon); if (colon_pos == Bry_.NotFound) return null;
// byte[] fmt = (byte[])hash.Get_by_mid(raw, 0, colon_pos); if (fmt == null) return null;
diff --git a/400_xowa/src_100_app/gplx/xowa/Xoa_url_alias_mgr_tst.java b/400_xowa/src_100_app/gplx/xowa/Xoa_url_alias_mgr_tst.java
index 9999555e7..1a7fb4b7d 100644
--- a/400_xowa/src_100_app/gplx/xowa/Xoa_url_alias_mgr_tst.java
+++ b/400_xowa/src_100_app/gplx/xowa/Xoa_url_alias_mgr_tst.java
@@ -26,7 +26,7 @@ along with this program. If not, see .
// ), KeyVal_.new_("w:Earth", "en.wikipedia.org/wiki/Earth"), KeyVal_.new_("d:Earth", "en.wiktionary.org/wiki/Earth"), KeyVal_.new_("x:Earth", null));
// }
// private void Add_bulk_tst(String raw_str, params KeyVal[] expd_ary) {
-// Xoa_app app = Xoa_app_fxt.app_();
+// Xoae_app app = Xoa_app_fxt.app_();
// Xoa_url_alias_mgr mgr = new Xoa_url_alias_mgr(app);
// byte[] raw_bry = Bry_.new_ascii_(raw_str);
// mgr.Add_bulk(raw_bry);
diff --git a/400_xowa/src_100_app/gplx/xowa/Xoac_lang_grp_tst.java b/400_xowa/src_100_app/gplx/xowa/Xoac_lang_grp_tst.java
index 0d0aecb7e..9a40acf89 100644
--- a/400_xowa/src_100_app/gplx/xowa/Xoac_lang_grp_tst.java
+++ b/400_xowa/src_100_app/gplx/xowa/Xoac_lang_grp_tst.java
@@ -83,7 +83,7 @@ public class Xoac_lang_grp_tst {
class Xoac_lang_grp_fxt {
Xoa_lang_mgr lang_mgr; Tst_mgr tst_mgr = new Tst_mgr();
public void Clear() {
- Xoa_app app = Xoa_app_fxt.app_();
+ Xoae_app app = Xoa_app_fxt.app_();
lang_mgr = app.Lang_mgr();
}
public Xoac_lang_itm_chkr itm_(String key) {return new Xoac_lang_itm_chkr(key);}
diff --git a/400_xowa/src_100_app/gplx/xowa/Xoac_wiki_grp_tst.java b/400_xowa/src_100_app/gplx/xowa/Xoac_wiki_grp_tst.java
index e6ed5bd0e..d0e2b9825 100644
--- a/400_xowa/src_100_app/gplx/xowa/Xoac_wiki_grp_tst.java
+++ b/400_xowa/src_100_app/gplx/xowa/Xoac_wiki_grp_tst.java
@@ -42,7 +42,7 @@ public class Xoac_wiki_grp_tst {
class Xoac_wiki_grp_fxt {
Xoa_wiki_mgr wiki_mgr; Tst_mgr tst_mgr = new Tst_mgr();
public void Clear() {
- Xoa_app app = Xoa_app_fxt.app_();
+ Xoae_app app = Xoa_app_fxt.app_();
wiki_mgr = app.Wiki_mgr();
}
public Xoac_wiki_itm_chkr itm_(String key) {return new Xoac_wiki_itm_chkr(key);}
diff --git a/400_xowa/src_120_wiki/gplx/xowa/Bfmtr_eval_wiki.java b/400_xowa/src_120_wiki/gplx/xowa/Bfmtr_eval_wiki.java
index 94ccfe686..528e832c3 100644
--- a/400_xowa/src_120_wiki/gplx/xowa/Bfmtr_eval_wiki.java
+++ b/400_xowa/src_120_wiki/gplx/xowa/Bfmtr_eval_wiki.java
@@ -17,7 +17,7 @@ along with this program. If not, see .
*/
package gplx.xowa; import gplx.*;
public class Bfmtr_eval_wiki implements Bry_fmtr_eval_mgr {
- public Bfmtr_eval_wiki(Xow_wiki wiki) {this.wiki = wiki;} private Xow_wiki wiki;
+ public Bfmtr_eval_wiki(Xowe_wiki wiki) {this.wiki = wiki;} private Xowe_wiki wiki;
public boolean Enabled() {return enabled;} public void Enabled_(boolean v) {enabled = v;} private boolean enabled = true;
public byte[] Eval(byte[] cmd) {
Object rslt = GfsCore._.Exec_bry(cmd, wiki);
diff --git a/400_xowa/src_120_wiki/gplx/xowa/Xow_dir_info.java b/400_xowa/src_120_wiki/gplx/xowa/Xow_dir_info.java
deleted file mode 100644
index 11a0fc1d9..000000000
--- a/400_xowa/src_120_wiki/gplx/xowa/Xow_dir_info.java
+++ /dev/null
@@ -1,33 +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; import gplx.*;
-public class Xow_dir_info {
- public Xow_dir_info(boolean ns_root, byte id, String name) {this.ns_root = ns_root; this.id = id; this.name = name;}
- public byte Id() {return id;} private byte id;
- public String Name() {return name;} private String name;
- public boolean Ns_root() {return ns_root;} private boolean ns_root;
- public String Ext() {return ext_str;} private String ext_str = Xow_fsys_mgr.Wtr_xdat_str;
- public byte[] Ext_bry() {return ext_bry;} private byte[] ext_bry = Xow_fsys_mgr.Wtr_xdat_bry;
- public byte Ext_tid() {return ext_tid;}
- public Xow_dir_info Ext_tid_(byte v) {
- ext_tid = v;
- ext_bry = Xow_fsys_mgr.Wtr_ext(v);
- ext_str = String_.new_ascii_(ext_bry);
- return this;
- } byte ext_tid = gplx.ios.Io_stream_.Tid_file;
-}
diff --git a/400_xowa/src_120_wiki/gplx/xowa/Xow_fragment_mgr.java b/400_xowa/src_120_wiki/gplx/xowa/Xow_fragment_mgr.java
index 6eaed3d23..8a6fdef7c 100644
--- a/400_xowa/src_120_wiki/gplx/xowa/Xow_fragment_mgr.java
+++ b/400_xowa/src_120_wiki/gplx/xowa/Xow_fragment_mgr.java
@@ -18,7 +18,7 @@ along with this program. If not, see .
package gplx.xowa; import gplx.*;
import gplx.xowa.langs.numbers.*;
public class Xow_fragment_mgr implements GfoInvkAble {
- public Xow_fragment_mgr(Xow_wiki wiki) {this.wiki = wiki;} private Xow_wiki wiki;
+ public Xow_fragment_mgr(Xowe_wiki wiki) {this.wiki = wiki;} private Xowe_wiki wiki;
public byte[] Html_js_edit_toolbar() {return html_js_edit_toolbar;} private byte[] html_js_edit_toolbar;
private Bry_fmtr html_js_edit_toolbar_fmtr = Bry_fmtr.new_(String_.Concat_lines_nl
( " var xowa_edit_i18n = {"
@@ -44,8 +44,8 @@ public class Xow_fragment_mgr implements GfoInvkAble {
}
public static final String Invk_html_js_edit_toolbar_fmt_ = "html_js_edit_toolbar_fmt_", Invk_html_js_edit_toolbar = "html_js_edit_toolbar";
public void Evt_lang_changed(Xol_lang lang) {
- Bry_bfr bfr = lang.App().Utl_bry_bfr_mkr().Get_b512();
- Xow_msg_mgr msg_mgr = wiki.App().User().Msg_mgr();
+ Bry_bfr bfr = Xoa_app_.Utl_bry_bfr_mkr().Get_b512();
+ Xow_msg_mgr msg_mgr = wiki.Appe().User().Msg_mgr();
html_js_edit_toolbar = html_js_edit_toolbar_fmtr.Bld_bry_many(bfr
, msg_mgr.Val_by_id(Xol_msg_itm_.Id_edit_toolbar_bold_tip)
, msg_mgr.Val_by_id(Xol_msg_itm_.Id_edit_toolbar_bold_sample)
diff --git a/400_xowa/src_120_wiki/gplx/xowa/Xow_fragment_mgr_tst.java b/400_xowa/src_120_wiki/gplx/xowa/Xow_fragment_mgr_tst.java
index 5566fe9a9..995576206 100644
--- a/400_xowa/src_120_wiki/gplx/xowa/Xow_fragment_mgr_tst.java
+++ b/400_xowa/src_120_wiki/gplx/xowa/Xow_fragment_mgr_tst.java
@@ -43,11 +43,11 @@ public class Xow_fragment_mgr_tst {
class Xow_fragment_mgr_fxt {
public void Clear() {
if (wiki == null) {
- Xoa_app app = Xoa_app_fxt.app_();
+ Xoae_app app = Xoa_app_fxt.app_();
wiki = Xoa_app_fxt.wiki_tst_(app);
}
- } private Xow_wiki wiki;
- public Xol_lang Make_lang(String key) {return wiki.App().Lang_mgr().Get_by_key_or_new(Bry_.new_ascii_(key));}
+ } private Xowe_wiki wiki;
+ public Xol_lang Make_lang(String key) {return wiki.Appe().Lang_mgr().Get_by_key_or_new(Bry_.new_ascii_(key));}
public void Test_fragment(String key, String expd) {Test_fragment(wiki.Lang(), key, expd);}
public void Test_fragment(Xol_lang lang, String key, String expd) {
wiki.Fragment_mgr().Evt_lang_changed(lang);
diff --git a/400_xowa/src_120_wiki/gplx/xowa/Xow_fsys_mgr.java b/400_xowa/src_120_wiki/gplx/xowa/Xow_fsys_mgr.java
deleted file mode 100644
index 7dc9ddebb..000000000
--- a/400_xowa/src_120_wiki/gplx/xowa/Xow_fsys_mgr.java
+++ /dev/null
@@ -1,118 +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; import gplx.*;
-public class Xow_fsys_mgr {
- public Xow_fsys_mgr(Xow_wiki wiki, Io_url root_dir) {
- this.wiki = wiki; this.root_dir = root_dir;
- ns_dir = root_dir.GenSubDir(Xow_dir_info_.Name_ns);
- site_dir = root_dir.GenSubDir(Xow_dir_info_.Name_site);
- tmp_dir = root_dir.GenSubDir("tmp");
- file_dir = wiki.App().Fsys_mgr().File_dir().GenSubDir_nest(wiki.Domain_str());
- file_dir_bry_len = file_dir.To_http_file_bry().length;
- } private Xow_wiki wiki;
- public Io_url Root_dir() {return root_dir;} private Io_url root_dir;
- public Io_url Ns_dir() {return ns_dir;} private Io_url ns_dir;
- public Io_url Site_dir() {return site_dir;} private Io_url site_dir;
- public Io_url File_dir() {return file_dir;} private Io_url file_dir;
- public int File_dir_bry_len() {return file_dir_bry_len;} private int file_dir_bry_len;
- public Io_url Tmp_dir() {return tmp_dir;} public void Tmp_dir_(Io_url v) {tmp_dir = v;} Io_url tmp_dir;
- public Io_url Cfg_wiki_core_fil() {return root_dir.GenSubFil_nest(Const_url_cfg, "wiki_core.gfs");}
- public Io_url Cfg_wiki_stats_fil() {return root_dir.GenSubFil_nest(Const_url_cfg, "wiki_stats.gfs");}
- public Xow_dir_info[] Dir_regy() {return dir_regy;} private Xow_dir_info[] dir_regy = Xow_dir_info_.regy_();
- public Io_url Url_ns_dir(String ns_num, byte tid) {return ns_dir.GenSubDir_nest(ns_num, Xow_dir_info_.Tid_name(tid));}
- public Io_url Url_ns_reg(String ns_num, byte tid) {return ns_dir.GenSubFil_nest (ns_num , Xow_dir_info_.Tid_name(tid) , Xow_dir_info_.Name_reg_fil);}
- public Io_url Url_ns_fil(byte tid, int ns_id, int fil_idx) {
- Xow_dir_info dir_info = dir_regy[tid];
- String dir_name = dir_info.Name() + Xow_fsys_mgr.Wtr_dir(dir_info.Ext_tid());
- return Xow_fsys_mgr.Url_fil(ns_dir.GenSubDir_nest(Int_.Xto_str_pad_bgn(ns_id, 3), dir_name), fil_idx, dir_regy[tid].Ext_bry());
- }
- public Io_url Url_site_fil(byte tid, int fil_idx) {return Xow_fsys_mgr.Url_fil(Url_site_dir(tid), fil_idx, Xow_dir_info_.Bry_xdat);}
- public Io_url Url_site_reg(byte tid) {return Url_site_dir(tid).GenSubFil(Xow_dir_info_.Name_reg_fil);}
- public Io_url Url_site_dir(byte tid) {
- switch (tid) {
- case Xow_dir_info_.Tid_category2_link: return site_dir.GenSubDir_nest(Xow_dir_info_.Name_category2, Xow_dir_info_.Name_category2_link);
- case Xow_dir_info_.Tid_category2_main: return site_dir.GenSubDir_nest(Xow_dir_info_.Name_category2, Xow_dir_info_.Name_category2_main);
- default: return site_dir.GenSubDir_nest(Xow_dir_info_.Tid_name(tid));
- }
- }
- public void Scan_dirs() {
- Scan_dirs_zip(this, Xow_dir_info_.Tid_page);
- Scan_dirs_ns(ns_dir, wiki.Ns_mgr());
- }
- private static void Scan_dirs_zip(Xow_fsys_mgr fsys_mgr, byte id) {
- Io_url[] dirs = Io_mgr._.QueryDir_args(fsys_mgr.Ns_dir().GenSubDir_nest("000")).FilPath_("*page*").DirOnly_().Recur_(false).ExecAsUrlAry();
- int len = dirs.length;
- byte tid = gplx.ios.Io_stream_.Tid_file; // needed for Xoa_xowa_exec_tst
- for (int i = 0; i < len; i++) {
- Io_url dir = dirs[i];
- String dir_name = dir.NameOnly();
- if (String_.Eq(dir_name, "page")) {tid = gplx.ios.Io_stream_.Tid_file; break;}
- else if (String_.Eq(dir_name, "page_zip")) tid = gplx.ios.Io_stream_.Tid_zip;
- else if (String_.Eq(dir_name, "page_gz")) tid = gplx.ios.Io_stream_.Tid_gzip;
- else if (String_.Eq(dir_name, "page_bz2")) tid = gplx.ios.Io_stream_.Tid_bzip2;
-// else throw Err_.unhandled(dir_name);
- }
- fsys_mgr.Dir_regy()[id].Ext_tid_(tid);
- }
- private static HashAdp Scan_dirs_ns(Io_url ns_dir, Xow_ns_mgr ns_mgr) {
- Io_url[] ns_dirs = Io_mgr._.QueryDir_args(ns_dir).Recur_(false).DirOnly_().ExecAsUrlAry();
- int len = ns_dirs.length;
- HashAdp rv = HashAdp_.new_();
- for (int i = 0; i < len; i++) {
- int ns_int = Int_.parse_or_(ns_dirs[i].NameOnly(), Int_.MinValue); if (ns_int == Int_.MinValue) continue;
- Xow_ns ns = ns_mgr.Ids_get_or_null(ns_int); if (ns == null) continue;
- ns.Exists_(true);
- }
- return rv;
- }
- public static Io_url Url_fil(Io_url root_dir, int fil_idx, byte[] ext) {return Xos_url_gen.bld_fil_(root_dir, fil_idx, ext);}
- static final String Const_url_cfg = "cfg";
- public static Io_url Find_file_or_fail(Io_url dir, String file_name, String file_ext_0, String file_ext_1) {
- Io_url url = Find_file_or_null(dir, file_name, file_ext_0, file_ext_1);
- if (url == null) throw Err_mgr._.fmt_("", "", "could not find file: dir=~{0} name=~{1} ext_0=~{2} ext_1=~{3}", dir.Raw(), file_name, file_ext_0, file_ext_1);
- return url;
- }
- public static Io_url Find_file_or_null(Io_url dir, String file_name, String file_ext_0, String file_ext_1) {
- Io_url url = Xobd_rdr.Find_fil_by(dir, file_name + file_ext_0);
- if (url == null) {
- url = Xobd_rdr.Find_fil_by(dir, file_name + file_ext_1);
- if (url == null) return null;
- }
- return url;
- }
- public static String Wtr_dir(byte v) {
- switch (v) {
- case gplx.ios.Io_stream_.Tid_file : return "";
- case gplx.ios.Io_stream_.Tid_zip : return "_zip";
- case gplx.ios.Io_stream_.Tid_gzip : return "_gz";
- case gplx.ios.Io_stream_.Tid_bzip2 : return "_bz2";
- default : throw Err_.unhandled(v);
- }
- }
- public static byte[] Wtr_ext(byte v) {
- switch (v) {
- case gplx.ios.Io_stream_.Tid_file : return Wtr_xdat_bry;
- case gplx.ios.Io_stream_.Tid_zip : return Wtr_zip_bry;
- case gplx.ios.Io_stream_.Tid_gzip : return Wtr_gz_bry;
- case gplx.ios.Io_stream_.Tid_bzip2 : return Wtr_bz2_bry;
- default : throw Err_.unhandled(v);
- }
- }
- public static final String Wtr_xdat_str = ".xdat", Wtr_zip_str = ".zip", Wtr_gz_str = ".gz", Wtr_bz2_str = ".bz2";
- public static final byte[] Wtr_xdat_bry = Bry_.new_ascii_(Wtr_xdat_str), Wtr_zip_bry = Bry_.new_ascii_(Wtr_zip_str), Wtr_gz_bry = Bry_.new_ascii_(Wtr_gz_str), Wtr_bz2_bry = Bry_.new_ascii_(Wtr_bz2_str);
-}
diff --git a/400_xowa/src_120_wiki/gplx/xowa/Xow_html_util.java b/400_xowa/src_120_wiki/gplx/xowa/Xow_html_util.java
index e0a57d866..7a9402b3e 100644
--- a/400_xowa/src_120_wiki/gplx/xowa/Xow_html_util.java
+++ b/400_xowa/src_120_wiki/gplx/xowa/Xow_html_util.java
@@ -17,19 +17,19 @@ along with this program. If not, see .
*/
package gplx.xowa; import gplx.*;
public class Xow_html_util implements GfoInvkAble {
- public Xow_html_util(Xow_wiki wiki) {this.wiki = wiki;} private Xow_wiki wiki;
+ public Xow_html_util(Xowe_wiki wiki) {this.wiki = wiki;} private Xowe_wiki wiki;
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
if (ctx.Match(k, Invk_if_bool)) return If_bool(m.ReadStr("expr"), m.ReadStr("true_val"), m.ReadStr("false_val"));
else if (ctx.Match(k, Invk_if_yn)) return If_yn(m.ReadStr("expr"), m.ReadStr("true_val"), m.ReadStr("false_val"));
else return GfoInvkAble_.Rv_unhandled;
} private static final String Invk_if_bool = "if_bool", Invk_if_yn = "if_yn";
String If_bool(String expr, String true_val, String false_val) {
- Object o = wiki.App().Gfs_mgr().Run_str(expr);
+ Object o = wiki.Appe().Gfs_mgr().Run_str(expr);
try {return Bool_.cast_(o) ? true_val : false_val;}
catch (Exception e) {Err_.Noop(e); return "expr failed: " + expr;}
}
String If_yn(String expr, String true_val, String false_val) {
- String o = String_.as_(wiki.App().Gfs_mgr().Run_str(expr));
+ String o = String_.as_(wiki.Appe().Gfs_mgr().Run_str(expr));
try {return Yn.parse_(o) ? true_val : false_val;}
catch (Exception e) {Err_.Noop(e); return "expr failed: " + expr;}
}
diff --git a/400_xowa/src_120_wiki/gplx/xowa/Xow_mainpage_finder.java b/400_xowa/src_120_wiki/gplx/xowa/Xow_mainpage_finder.java
index d0ba1ae54..d6e79acc4 100644
--- a/400_xowa/src_120_wiki/gplx/xowa/Xow_mainpage_finder.java
+++ b/400_xowa/src_120_wiki/gplx/xowa/Xow_mainpage_finder.java
@@ -18,7 +18,7 @@ along with this program. If not, see .
package gplx.xowa; import gplx.*;
import gplx.xowa.langs.msgs.*;
public class Xow_mainpage_finder {
- public static byte[] Find_or(Xow_wiki wiki, byte[] or) {
+ public static byte[] Find_or(Xowe_wiki wiki, byte[] or) {
Bry_bfr tmp_bfr = wiki.Utl_bry_bfr_mkr().Get_b512();
Xol_msg_itm msg_itm = Xol_msg_mgr_.Get_msg_itm(tmp_bfr, wiki, wiki.Lang(), Msg_mainpage);
byte[] rv = msg_itm.Src_is_missing()
diff --git a/400_xowa/src_120_wiki/gplx/xowa/Xow_msg_mgr.java b/400_xowa/src_120_wiki/gplx/xowa/Xow_msg_mgr.java
index e7ae7c061..2ea0cd4b6 100644
--- a/400_xowa/src_120_wiki/gplx/xowa/Xow_msg_mgr.java
+++ b/400_xowa/src_120_wiki/gplx/xowa/Xow_msg_mgr.java
@@ -18,8 +18,8 @@ along with this program. If not, see .
package gplx.xowa; import gplx.*;
import gplx.xowa.html.sidebar.*; import gplx.xowa.langs.msgs.*;
public class Xow_msg_mgr implements GfoInvkAble {
- private Xow_wiki wiki; private Xol_lang lang; private Xol_msg_mgr msg_mgr;
- public Xow_msg_mgr(Xow_wiki wiki, Xol_lang lang) {
+ private final Xowe_wiki wiki; private Xol_lang lang; private final Xol_msg_mgr msg_mgr;
+ public Xow_msg_mgr(Xowe_wiki wiki, Xol_lang lang) {
this.wiki = wiki;
this.lang = lang;
this.msg_mgr = new Xol_msg_mgr(wiki, false);
@@ -35,7 +35,7 @@ public class Xow_msg_mgr implements GfoInvkAble {
Xol_msg_itm itm = msg_mgr.Itm_by_id_or_null(id);
if (itm == null)
itm = lang.Msg_mgr().Itm_by_id_or_null(id);
- Bry_bfr tmp_bfr = wiki.Utl_bry_bfr_mkr().Get_b512();
+ Bry_bfr tmp_bfr = Xoa_app_.Utl_bry_bfr_mkr().Get_b512();
byte[] rv = Val_by_itm(tmp_bfr, itm, args);
tmp_bfr.Mkr_rls();
return rv;
@@ -45,7 +45,7 @@ public class Xow_msg_mgr implements GfoInvkAble {
public Xol_msg_itm Find_or_null(byte[] key) {
Xol_msg_itm itm = msg_mgr.Itm_by_key_or_null(key);
if (itm == null) {
- Bry_bfr tmp_bfr = wiki.Utl_bry_bfr_mkr().Get_b512();
+ Bry_bfr tmp_bfr = Xoa_app_.Utl_bry_bfr_mkr().Get_b512();
itm = Xol_msg_mgr_.Get_msg_itm(tmp_bfr, wiki, lang, key);
if (itm.Src_is_missing()) itm = null;
tmp_bfr.Mkr_rls();
@@ -57,7 +57,7 @@ public class Xow_msg_mgr implements GfoInvkAble {
public byte[] Val_by_key_obj(byte[] key) {return Val_by_key(key, null);}
private byte[] Val_by_key(byte[] key, Object[] args) {
Xol_msg_itm itm = msg_mgr.Itm_by_key_or_null(key);
- Bry_bfr tmp_bfr = wiki.Utl_bry_bfr_mkr().Get_b512();
+ Bry_bfr tmp_bfr = Xoa_app_.Utl_bry_bfr_mkr().Get_b512();
if (itm == null)
itm = Xol_msg_mgr_.Get_msg_itm(tmp_bfr, wiki, lang, key);
if (itm.Src_is_missing()) {
@@ -75,7 +75,7 @@ public class Xow_msg_mgr implements GfoInvkAble {
return rv;
}
public byte[] Val_html_accesskey_and_title(byte[] id) {
- Bry_bfr bfr = wiki.Utl_bry_bfr_mkr().Get_b512();
+ Bry_bfr bfr = Xoa_app_.Utl_bry_bfr_mkr().Get_b512();
byte[] rv = Val_html_accesskey_and_title(id, bfr, null);
bfr.Mkr_rls();
return rv;
diff --git a/400_xowa/src_120_wiki/gplx/xowa/Xow_ns_mgr.java b/400_xowa/src_120_wiki/gplx/xowa/Xow_ns_mgr.java
index 865678905..1f684c680 100644
--- a/400_xowa/src_120_wiki/gplx/xowa/Xow_ns_mgr.java
+++ b/400_xowa/src_120_wiki/gplx/xowa/Xow_ns_mgr.java
@@ -27,7 +27,7 @@ public class Xow_ns_mgr implements GfoInvkAble, gplx.lists.ComparerAble {
name_hash = Hash_adp_bry.ci_utf8_(case_mgr);
tmpl_hash = Hash_adp_bry.ci_utf8_(case_mgr);
}
- public void Clear() {
+ public Xow_ns_mgr Clear() {
name_hash.Clear();
id_hash.Clear();
tmpl_hash.Clear();
@@ -36,6 +36,7 @@ public class Xow_ns_mgr implements GfoInvkAble, gplx.lists.ComparerAble {
ords_len = 0;
ns_count = 0;
ns_file = null;
+ return this;
}
public Btrie_slim_mgr Category_trie() {return category_trie;} private Btrie_slim_mgr category_trie;
public Xow_ns Ns_main() {return ns_main;} private Xow_ns ns_main;
diff --git a/400_xowa/src_120_wiki/gplx/xowa/Xow_script_mgr.java b/400_xowa/src_120_wiki/gplx/xowa/Xow_script_mgr.java
index 485415081..89cc9c2d3 100644
--- a/400_xowa/src_120_wiki/gplx/xowa/Xow_script_mgr.java
+++ b/400_xowa/src_120_wiki/gplx/xowa/Xow_script_mgr.java
@@ -23,25 +23,25 @@ public class Xow_script_mgr implements GfoInvkAble {
else return GfoInvkAble_.Rv_unhandled;
return this;
} private static final String Invk_set = "set";
- public void Exec(Xow_wiki wiki) {
+ public void Exec(Xowe_wiki wiki) {
int len = hash.Count();
Bry_bfr bfr = wiki.Utl_bry_bfr_mkr().Get_k004();
for (int i = 0; i < len; i++) {
Xow_script_itm itm = (Xow_script_itm)hash.FetchAt(i);
- byte wiki_tid = wiki.Domain_tid();
- if (Byte_.In(wiki_tid, itm.Wiki_tids())) // wiki_tid matches itm
- itm.Fmtr().Bld_bfr_many(bfr, wiki.Domain_bry(), Xow_wiki_domain_.Key_by_tid(wiki_tid), wiki.Lang().Key_bry());
+ int wiki_tid = wiki.Domain_tid();
+ if (Int_.In(wiki_tid, itm.Wiki_tids())) // wiki_tid matches itm
+ itm.Fmtr().Bld_bfr_many(bfr, wiki.Domain_bry(), Xow_domain_.Tid__get_bry(wiki_tid), wiki.Lang().Key_bry());
}
String gfs_script = String_.Replace(bfr.Xto_str_and_clear(), Op_sys.Wnt.Nl_str(), Op_sys.Lnx.Nl_str());
- wiki.App().Gfs_mgr().Run_str(gfs_script);
+ wiki.Appe().Gfs_mgr().Run_str(gfs_script);
bfr.Mkr_rls();
}
public void Set(byte[] key, byte[] wiki_types_raw, byte[] script) {
byte[][] wiki_tid_names = Bry_.Split(wiki_types_raw, Byte_ascii.Tilde);
int len = wiki_tid_names.length;
- byte[] wiki_tids = new byte[len];
+ int[] wiki_tids = new int[len];
for (int i = 0; i < len; i++)
- wiki_tids[i] = Xow_wiki_domain_.Tid_by_key(wiki_tid_names[i]);
+ wiki_tids[i] = Xow_domain_.Tid__get_int(wiki_tid_names[i]);
Xow_script_itm itm = new Xow_script_itm(key, wiki_tids, script);
hash.AddReplace(itm.Key(), itm);
@@ -49,10 +49,10 @@ public class Xow_script_mgr implements GfoInvkAble {
public OrderedHash hash = OrderedHash_.new_bry_();
}
class Xow_script_itm {
- public Xow_script_itm(byte[] key, byte[] wiki_tids, byte[] script) {
+ public Xow_script_itm(byte[] key, int[] wiki_tids, byte[] script) {
this.key = key; this.wiki_tids = wiki_tids; this.fmtr = Bry_fmtr.new_bry_(script, "wiki_key", "wiki_type_name", "wiki_lang");
}
public byte[] Key() {return key;} private byte[] key;
- public byte[] Wiki_tids() {return wiki_tids;} private byte[] wiki_tids;
+ public int[] Wiki_tids() {return wiki_tids;} private int[] wiki_tids;
public Bry_fmtr Fmtr() {return fmtr;} Bry_fmtr fmtr;
}
diff --git a/400_xowa/src_120_wiki/gplx/xowa/Xow_sys_cfg.java b/400_xowa/src_120_wiki/gplx/xowa/Xow_sys_cfg.java
index 332d38528..1183a03e9 100644
--- a/400_xowa/src_120_wiki/gplx/xowa/Xow_sys_cfg.java
+++ b/400_xowa/src_120_wiki/gplx/xowa/Xow_sys_cfg.java
@@ -17,7 +17,7 @@ along with this program. If not, see .
*/
package gplx.xowa; import gplx.*;
public class Xow_sys_cfg implements GfoInvkAble {
- public Xow_sys_cfg(Xow_wiki wiki) {}
+ public Xow_sys_cfg(Xowe_wiki wiki) {}
public boolean Xowa_cmd_enabled() {return xowa_cmd_enabled;} public Xow_sys_cfg Xowa_cmd_enabled_(boolean v) {xowa_cmd_enabled = v; return this;} private boolean xowa_cmd_enabled;
public boolean Xowa_proto_enabled() {return xowa_proto_enabled;} public Xow_sys_cfg Xowa_proto_enabled_(boolean v) {xowa_proto_enabled = v; return this;} private boolean xowa_proto_enabled;
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
diff --git a/400_xowa/src_120_wiki/gplx/xowa/Xow_utl_mgr.java b/400_xowa/src_120_wiki/gplx/xowa/Xow_utl_mgr.java
index 6850c75bf..daaa1178b 100644
--- a/400_xowa/src_120_wiki/gplx/xowa/Xow_utl_mgr.java
+++ b/400_xowa/src_120_wiki/gplx/xowa/Xow_utl_mgr.java
@@ -18,7 +18,7 @@ along with this program. If not, see .
package gplx.xowa; import gplx.*;
import gplx.xowa.parsers.apos.*; import gplx.xowa.parsers.amps.*; import gplx.xowa.parsers.lnkes.*; import gplx.xowa.parsers.paras.*;
public class Xow_utl_mgr {
- public Xow_utl_mgr(Xow_wiki wiki) {this.wiki = wiki;} private Xow_wiki wiki;
+ public Xow_utl_mgr(Xowe_wiki wiki) {this.wiki = wiki;} private Xowe_wiki wiki;
public Xop_parser Anchor_encode_parser() {
if (anchor_encode_parser == null) {
anchor_encode_parser = new Xop_parser(wiki, wiki.Parser().Tmpl_lxr_mgr(), Anchor_encode_lxr_mgr);
diff --git a/400_xowa/src_120_wiki/gplx/xowa/Xow_wiki.java b/400_xowa/src_120_wiki/gplx/xowa/Xow_wiki.java
index 051a85614..4d2815485 100644
--- a/400_xowa/src_120_wiki/gplx/xowa/Xow_wiki.java
+++ b/400_xowa/src_120_wiki/gplx/xowa/Xow_wiki.java
@@ -16,274 +16,17 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa; import gplx.*;
-import gplx.core.primitives.*; import gplx.xowa.apps.*;
-import gplx.xowa.wikis.*; import gplx.xowa.users.*; import gplx.xowa.html.*; import gplx.xowa.users.history.*; import gplx.xowa.specials.*; import gplx.xowa.xtns.*; import gplx.xowa.dbs.*; import gplx.xowa.files.*; import gplx.xowa.apps.ttls.*;
-import gplx.xowa.langs.vnts.*; import gplx.xowa.gui.views.*; import gplx.xowa.wikis.xwikis.*;
-import gplx.xowa.setup.maints.*; import gplx.xowa.wikis.caches.*;
-import gplx.xowa.bldrs.imports.*; import gplx.xowa.xtns.pfuncs.*;
-public class Xow_wiki implements GfoInvkAble, Xoa_ttl_parser {
- private Xow_html_util util; private boolean hdump_enabled;
- public Xow_wiki(Xoa_app app, Io_url wiki_dir, Xow_ns_mgr ns_mgr, Xol_lang lang) {
- this.app = app; this.ns_mgr = ns_mgr; this.lang = lang;
- domain_str = wiki_dir.NameOnly(); domain_bry = Bry_.new_utf8_(domain_str);
- domain_itm = Xow_wiki_domain_.parse_by_domain(domain_bry);
- domain_tid = domain_itm.Wiki_tid();
- xwiki_domain_tid = Xow_wiki_domain_.Xwiki_tid(domain_tid);
- fsys_mgr = new Xow_fsys_mgr(this, wiki_dir);
- redirect_mgr = new Xop_redirect_mgr(this);
- data_mgr = new Xow_data_mgr(this);
- file_mgr = new Xow_file_mgr(this);
- utl_mgr = new Xow_utl_mgr(this);
- parser = Xop_parser.new_wiki_(this);
- cfg_parser = new Xowc_parser(this);
- ctx = Xop_ctx.new_(this);
- props.SiteName_(domain_tid).ServerName_(domain_bry);
- props.ContentLanguage_(lang.Key_bry());
- Pf_func_.Reg(lang.Func_regy(), lang);
- special_mgr = new Xows_mgr(this, lang);
- stats = new Xow_wiki_stats(this);
- xwiki_mgr = new Xow_xwiki_mgr(this, app.Url_parser().Url_parser(), domain_tid);
- xwiki_mgr.Add_full(domain_bry, domain_bry); // add full name to xwiki_mgr; needed for lookup in home ns; EX: [[en.wikipedia.org:Earth]]
- html_mgr = new Xow_html_mgr(this);
- sys_cfg = new Xow_sys_cfg(this);
- hive_mgr = new Xob_hive_mgr(this);
- util = new Xow_html_util(this);
- cfg_wiki_core = new Xow_cfg_wiki_core(this);
- import_cfg = new Xob_import_cfg(this);
- msg_mgr = new Xow_msg_mgr(this, lang);
- eval_mgr = new Bfmtr_eval_wiki(this);
- fragment_mgr = new Xow_fragment_mgr(this);
- xtn_mgr = new Xow_xtn_mgr().Ctor_by_wiki(this);
- if (domain_tid == Xow_wiki_domain_.Tid_home) {
- wdata_wiki_tid = Xow_wiki_domain_.Tid_wikipedia;
- wdata_wiki_lang = Xol_lang_.Key_en;
- }
- else {
- wdata_wiki_tid = domain_tid;
- wdata_wiki_lang = domain_itm.Lang_orig_key(); // NOTE: must use orig_key for nowiki; "no" not "nb" DATE:2014-10-07
- }
- Wdata_wiki_abrv_();
- db_mgr = new gplx.xowa.dbs.Xodb_mgr_txt(this, data_mgr);
- domain_abrv = Xow_wiki_alias.Build_alias(Xow_wiki_domain_.parse_by_domain(domain_bry));
- maint_mgr = new Xow_maint_mgr(this);
- cache_mgr = new Xow_cache_mgr(this);
- }
- public Xoa_app App() {return app;} private Xoa_app app;
- public byte[] Domain_bry() {return domain_bry;} private byte[] domain_bry;
- public String Domain_str() {return domain_str;} private String domain_str;
- public byte Domain_tid() {return domain_tid;} private byte domain_tid;
- public byte[] Domain_abrv() {return domain_abrv;} private byte[] domain_abrv;
- public Xow_wiki_domain Domain_itm() {return domain_itm;} private Xow_wiki_domain domain_itm;
- public byte Xwiki_domain_tid() {return xwiki_domain_tid;} private byte xwiki_domain_tid;
- public Xol_lang Lang() {return lang;} private Xol_lang lang;
- public Xow_fsys_mgr Fsys_mgr() {return fsys_mgr;} private Xow_fsys_mgr fsys_mgr;
- public Xow_utl_mgr Utl_mgr() {return utl_mgr;} private Xow_utl_mgr utl_mgr;
- public Xow_ns_mgr Ns_mgr() {return ns_mgr;} public void Ns_mgr_(Xow_ns_mgr v) {ns_mgr = v;} private Xow_ns_mgr ns_mgr;
- public Xow_gui_mgr Gui_mgr() {return gui_mgr;} private Xow_gui_mgr gui_mgr = new Xow_gui_mgr();
- public Xow_user User() {return user;} private Xow_user user = new Xow_user();
- public Xow_data_mgr Data_mgr() {return data_mgr;} private Xow_data_mgr data_mgr;
- public Xodb_mgr Db_mgr() {return db_mgr;} private Xodb_mgr db_mgr;
- public Xodb_mgr_sql Db_mgr_as_sql() {return (Xodb_mgr_sql)db_mgr;}
- public Xows_mgr Special_mgr() {return special_mgr;} private Xows_mgr special_mgr;
- public Xow_html_mgr Html_mgr() {return html_mgr;} private Xow_html_mgr html_mgr;
- public Xow_xtn_mgr Xtn_mgr() {return xtn_mgr;} private Xow_xtn_mgr xtn_mgr;
- public Xow_cache_mgr Cache_mgr() {return cache_mgr;} private Xow_cache_mgr cache_mgr;
-
- public byte[] Commons_wiki_key() {return commons_wiki_key;} private byte[] commons_wiki_key = Xow_wiki_.Domain_commons_bry;
- public Xob_hive_mgr Hive_mgr() {return hive_mgr;} private Xob_hive_mgr hive_mgr;
- public Xow_msg_mgr Msg_mgr() {return msg_mgr;} private Xow_msg_mgr msg_mgr;
- public Xow_fragment_mgr Fragment_mgr() {return fragment_mgr;} private Xow_fragment_mgr fragment_mgr;
- public Bfmtr_eval_wiki Eval_mgr() {return eval_mgr;} private Bfmtr_eval_wiki eval_mgr;
- public Bry_bfr_mkr Utl_bry_bfr_mkr() {return app.Utl_bry_bfr_mkr();}
-// public byte Wdata_wiki_tid() {return wdata_wiki_tid;}
- public byte[] Wdata_wiki_lang() {return wdata_wiki_lang;} private byte[] wdata_wiki_lang;
- public void Wdata_wiki_lang_(byte[] v) {this.wdata_wiki_lang = v; Wdata_wiki_abrv_();} // TEST:
- public byte[] Wdata_wiki_abrv() {return wdata_wiki_abrv;} private byte[] wdata_wiki_abrv; private byte wdata_wiki_tid;
- private void Wdata_wiki_abrv_() {
- Bry_bfr bfr = app.Utl_bry_bfr_mkr().Get_b128();
- Xow_wiki_alias.Build_alias_by_lang_tid(bfr, wdata_wiki_lang, Byte_obj_ref.new_(wdata_wiki_tid));
- wdata_wiki_abrv = bfr.Mkr_rls().Xto_bry_and_clear();
- }
- public Xoa_ttl Ttl_parse(byte[] ttl) {return Xoa_ttl.parse_(this, ttl);}
- public Xoa_ttl Ttl_parse(int ns_id, byte[] ttl) {return Xoa_ttl.parse_(this, ns_id, ttl);}
-
- public boolean Init_needed() {return init_needed;} public Xow_wiki Init_needed_(boolean v) {init_needed = v; return this;} private boolean init_needed = true;
-
- public Xop_parser Parser() {return parser;} private Xop_parser parser;
- public Xop_redirect_mgr Redirect_mgr() {return redirect_mgr;} private Xop_redirect_mgr redirect_mgr;
- public Xop_ctx Ctx() {return ctx;} private Xop_ctx ctx;
- public ListAdp Rls_list() {if (rls_list == null) rls_list = ListAdp_.new_(); return rls_list;} private ListAdp rls_list;
-
- public Xow_xwiki_mgr Xwiki_mgr() {return xwiki_mgr;} private Xow_xwiki_mgr xwiki_mgr;
- public Xow_file_mgr File_mgr() {return file_mgr;} private Xow_file_mgr file_mgr;
- public Xow_cfg_wiki_core Cfg_wiki_core() {return cfg_wiki_core;} private Xow_cfg_wiki_core cfg_wiki_core;
- public Xob_import_cfg Import_cfg() {return import_cfg;} private Xob_import_cfg import_cfg;
-
- public Xow_wiki_stats Stats() {return stats;} private Xow_wiki_stats stats;
- public Xow_wiki_props Props() {return props;} private Xow_wiki_props props = new Xow_wiki_props();
- public Xou_history_cfg Cfg_history() {return cfg_history;} private Xou_history_cfg cfg_history = new Xou_history_cfg();
- public Xoh_cfg_gallery Cfg_gallery() {return cfg_gallery;} private Xoh_cfg_gallery cfg_gallery = new Xoh_cfg_gallery();
- public Xoh_file_page Cfg_file_page() {return cfg_file_page;} private Xoh_file_page cfg_file_page = new Xoh_file_page();
- public Xow_sys_cfg Sys_cfg() {return sys_cfg;} private Xow_sys_cfg sys_cfg;
- public Xowc_parser Cfg_parser() {return cfg_parser;} private Xowc_parser cfg_parser;
- public boolean Cfg_parser_lnki_xwiki_repos_enabled() {return cfg_parser_lnki_xwiki_repos_enabled;} public Xow_wiki Cfg_parser_lnki_xwiki_repos_enabled_(boolean v) {cfg_parser_lnki_xwiki_repos_enabled = v; return this;} private boolean cfg_parser_lnki_xwiki_repos_enabled;
- public Xoi_dump_mgr Import_mgr() {return import_mgr;} private Xoi_dump_mgr import_mgr = new Xoi_dump_mgr();
- public Xow_maint_mgr Maint_mgr() {return maint_mgr;} private Xow_maint_mgr maint_mgr;
- public void Clear_for_tests() { // NOTE: these are structures that cache items for PERF; need to be cleared out for multiple test runs
- file_mgr.Meta_mgr().Clear();
- db_mgr.Load_mgr().Clear();
- }
- public Xoa_page GetPageByTtl(Xoa_url url, Xoa_ttl ttl) {return GetPageByTtl(url, ttl, lang, app.Gui_mgr().Browser_win().Active_tab(), true);}
- public Xoa_page GetPageByTtl(Xoa_url url, Xoa_ttl ttl, Xog_tab_itm tab) {return GetPageByTtl(url, ttl, lang, tab, true);}
- public Xoa_page GetPageByTtl(Xoa_url url, Xoa_ttl ttl, Xol_lang lang, Xog_tab_itm tab, boolean parse_page) {
- if (init_needed) Init_wiki(app.User());
- Xoa_page page = data_mgr.Get_page(url, ttl, false, false); // get page from data_mgr
- if (page.Missing()) { // page doesn't exist
- if (ttl.Ns().Id_file()) {
- Xow_wiki commons_wiki = app.Wiki_mgr().Get_by_key_or_null(commons_wiki_key);
- if (commons_wiki != null
- && !Bry_.Eq(domain_bry, commons_wiki.Domain_bry())) // if file, check commons wiki; note that !Bry_.Eq is recursion guard
- return commons_wiki.GetPageByTtl(url, ttl, this.lang, tab, true);
- }
- else
- return page.Missing_();
- }
- if (page.Missing()) return page; // NOTE: commons can return null page
- page.Tab_(tab);
- page.Lang_(lang);
- if (parse_page)
- ParsePage(page, false); // NOTE: do not clear page b/c reused for search
- return page;
- }
- public void ParsePage_root(Xoa_page page, boolean clear) {ParsePage(page, clear);}
- public void ParsePage(Xoa_page page, boolean clear) {
- if (init_needed && !Env_.Mode_testing()) Init_wiki(app.User());
- gplx.xowa.xtns.scribunto.Scrib_core.Core_page_changed(page); // notify scribunto about page changed
- ctx.Cur_page_(page);
- Xop_root_tkn root = ctx.Tkn_mkr().Root(page.Data_raw());
- if (clear) {page.Clear();}
- Xoa_ttl ttl = page.Ttl();
- if (Xow_page_tid.Identify(domain_tid, ttl.Ns().Id(), ttl.Page_db()) == Xow_page_tid.Tid_wikitext) // only parse page if wikitext; skip .js, .css, Module; DATE:2013-11-10
- parser.Parse_text_to_wdom(root, ctx, app.Tkn_mkr(), page.Data_raw(), Xop_parser_.Doc_bgn_bos);
- page.Root_(root);
- root.Data_htm_(root.Root_src());
- }
- public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
- if (ctx.Match(k, Invk_files)) return file_mgr;
- else if (ctx.Match(k, Invk_xwikis)) return xwiki_mgr;
- else if (ctx.Match(k, Invk_stats)) return stats;
- else if (ctx.Match(k, Invk_props)) return props;
- else if (ctx.Match(k, Invk_cfg_gallery_)) return cfg_gallery;
- else if (ctx.Match(k, Invk_commons_wiki_)) commons_wiki_key = m.ReadBry("v");
- else if (ctx.Match(k, Invk_lang)) return lang;
- else if (ctx.Match(k, Invk_lang_)) lang = app.Lang_mgr().Get_by_key_or_new(m.ReadBry("v"));
- else if (ctx.Match(k, Invk_html)) return html_mgr;
- else if (ctx.Match(k, Invk_gui)) return gui_mgr;
- else if (ctx.Match(k, Invk_cfg_history)) return cfg_history;
- else if (ctx.Match(k, Invk_user)) return user;
- else if (ctx.Match(k, Invk_data_mgr)) return data_mgr;
- else if (ctx.Match(k, Invk_ns_mgr)) return ns_mgr;
- else if (ctx.Match(k, Invk_sys_cfg)) return sys_cfg;
- else if (ctx.Match(k, Invk_special)) return special_mgr;
- else if (ctx.Match(k, Invk_parser)) return cfg_parser;
- else if (ctx.Match(k, Invk_msgs)) return msg_mgr;
- else if (ctx.Match(k, Invk_util)) return util;
- else if (ctx.Match(k, Invk_app)) return app;
- else if (ctx.Match(k, Invk_data_storage_format_))db_mgr.Data_storage_format_(m.ReadByte("v"));
- else if (ctx.Match(k, Invk_db_mgr)) return db_mgr;
- else if (ctx.Match(k, Invk_db_mgr_to_sql_)) this.Db_mgr_create_as_sql();
- else if (ctx.Match(k, Invk_import_mgr)) return import_mgr;
- else if (ctx.Match(k, Invk_maint)) return maint_mgr;
- else if (ctx.Match(k, Invk_domain)) return domain_str;
- else if (ctx.Match(k, Invk_xtns)) return xtn_mgr;
- else if (ctx.Match(k, Invk_hdump_enabled_)) hdump_enabled = m.ReadYn("v");
- else return GfoInvkAble_.Rv_unhandled;
- return this;
- }
- public static final String
- Invk_ZipDirs = "zip_dirs_", Invk_files = "files", Invk_xwikis = "xwikis", Invk_cfg_gallery_ = "cfg_gallery_", Invk_commons_wiki_ = "commons_wiki_", Invk_stats = "stats"
- , Invk_lang = "lang", Invk_lang_ = "lang_", Invk_html = "html", Invk_gui = "gui", Invk_cfg_history = "cfg_history", Invk_user = "user", Invk_data_mgr = "data_mgr", Invk_sys_cfg = "sys_cfg", Invk_ns_mgr = "ns_mgr"
- , Invk_special = "special"
- , Invk_props = "props", Invk_parser = "parser"
- , Invk_msgs = "msgs", Invk_app = "app", Invk_util = "util"
- , Invk_xtns = "xtns", Invk_data_storage_format_ = "data_storage_format_", Invk_import_mgr = "import"
- , Invk_db_mgr = "db_mgr", Invk_db_mgr_to_sql_ = "db_mgr_to_sql_"
- , Invk_domain = "domain", Invk_maint = "maint", Invk_hdump_enabled_ = "hdump_enabled_"
- ;
- public Xodb_mgr_sql Db_mgr_create_as_sql() {Xodb_mgr_sql rv = new Xodb_mgr_sql(this); db_mgr = rv; return rv;}
- public Xow_wiki Init_assert() {if (init_needed) Init_wiki(app.User()); return this;}
- private boolean init_in_process = false;
- private void Init_wiki(Xou_user user) { // NOTE: (a) one-time initialization for all wikis; (b) not called by tests
- if (init_in_process) {
- app.Usr_dlg().Log_many("", "", "wiki.init: circular call canceled: ~{0}", domain_str);
- return; // NOTE: may be called multiple times due to "if (app.Stage() == Xoa_stage_.Tid_launch) init_needed = false;"; TODO: call this only once; DATE:2014-06-07
- }
- init_in_process = true;
- if (app.Stage() == Xoa_stage_.Tid_launch) init_needed = false; // NOTE: only mark inited if app fully launched; otherwise statements in xowa.gfs can fire and prematurely set home to inited; DATE:2013-03-24
- Gfo_log_bfr log_bfr = app.Log_bfr();
- log_bfr.Add("wiki.init.bgn: " + domain_str);
- app.Cfg_mgr().Init(this);
- file_mgr.Cfg_download().Enabled_(app.File_mgr().Download_mgr().Enabled()); // default download to app global; can be overriden below
- Io_url sqlite_url = Xodb_mgr_sql.Find_core_url(this);
- if (sqlite_url != null) {
- Xodb_mgr_sql db_mgr_sql = this.Db_mgr_create_as_sql();
- db_mgr_sql.Init_load(gplx.dbs.Db_url_.sqlite_(sqlite_url));
- db_mgr_sql.Html_db_enabled_(hdump_enabled);
- }
- if (!Xob_import_marker.Check(this)) {app.Wiki_mgr().Del(domain_bry); init_needed = false; return;} // NOTE: must call after Db_mgr_create_as_sql(); also, must delete wiki from mgr; DATE:2014-08-24
- db_mgr.Load_mgr().Load_init(this);
- app.Gfs_mgr().Run_url_for(this, fsys_mgr.Cfg_wiki_core_fil());
- gplx.xowa.utls.upgrades.Xoa_upgrade_mgr.Check(this);
- app.Gfs_mgr().Run_url_for(this, fsys_mgr.Cfg_wiki_stats_fil());
- app.Gfs_mgr().Run_url_for(this, app.Fsys_mgr().Cfg_wiki_core_dir().GenSubFil(domain_str + ".gfs")); // run cfg for wiki by user ; EX: /xowa/user/anonymous/wiki/en.wikipedia.org/cfg/user_wiki.gfs
- fsys_mgr.Scan_dirs();
- if (lang.Init_by_load()) {
- if (domain_tid == Xow_wiki_domain_.Tid_wikipedia) // NOTE: if type is wikipedia, add "Wikipedia" as an alias; PAGE:en.w:pt.wikipedia.org/wiki/Página principal which redirects to Wikipedia:Página principal
- ns_mgr.Aliases_add(Xow_ns_.Id_project, Xow_ns_.Ns_name_wikipedia);
- }
- cfg_parser.Xtns().Itm_pages().Init(ns_mgr); // init ns_mgr for Page / Index ns just before rebuild; usually set by #cfg file
- Xow_ns_mgr_.rebuild_(lang, ns_mgr); // always rebuild; may be changed by user_wiki.gfs; different lang will change namespaces; EX: de.wikisource.org will have Seite for File and none of {{#lst}} will work
- fragment_mgr.Evt_lang_changed(lang);
- parser.Init_by_lang(lang);
- html_mgr.Init_by_lang(lang);
- lang.Vnt_mgr().Init_by_wiki(this);
- Bry_fmtr.Null.Eval_mgr().Enabled_(false);
- app.Wiki_mgr().Scripts().Exec(this);
- Bry_fmtr.Null.Eval_mgr().Enabled_(true);
- app.Wiki_mgr().Css_installer().Install_assert(this, user.Fsys_mgr().Wiki_html_dir(domain_str));
- html_mgr.Init_by_wiki(this);
- this.Copy_cfg(app.User().Wiki());
- File_repos_assert(app, this);
- xtn_mgr.Init_by_wiki(this);
- log_bfr.Add("wiki.init.end");
- app.Log_wtr().Log_msg_to_session_direct(log_bfr.Xto_str());
- init_in_process = false;
- }
- public void Rls() {
- if (rls_list == null) return;
- int len = rls_list.Count();
- for (int i = 0; i < len; i++) {
- RlsAble rls = (RlsAble)rls_list.FetchAt(i);
- rls.Rls();
- }
- }
- private void Copy_cfg(Xow_wiki wiki) {html_mgr.Copy_cfg(wiki.Html_mgr());}
- private static void File_repos_assert(Xoa_app app, Xow_wiki wiki) {
- byte[] wiki_key = wiki.Domain_bry();
- Xoa_repo_mgr repo_mgr = app.File_mgr().Repo_mgr();
- Xof_repo_itm repo_itm = repo_mgr.Get_by(wiki_key);
- if (repo_itm == null) {
- repo_itm = new Xof_repo_itm(repo_mgr, wiki_key).Wiki_key_(wiki_key);
- repo_mgr.Add(repo_itm);
- }
- Xow_repo_mgr pair_mgr = wiki.File_mgr().Repo_mgr();
- if (pair_mgr.Repos_len() == 0) {
- Xof_repo_itm repo_src = repo_mgr.Get_by(File_repo_xowa_null);
- if (repo_src == null) {
- repo_itm = new Xof_repo_itm(repo_mgr, File_repo_xowa_null).Wiki_key_(Xow_wiki_domain_.Key_home_bry);
- repo_mgr.Add(repo_itm);
- }
- pair_mgr.Add_repo(File_repo_xowa_null, wiki_key);
- }
- } static byte[] File_repo_xowa_null = Bry_.new_ascii_("xowa_repo_null");
+import gplx.xowa.wikis.*; import gplx.xowa.wikis.ttls.*;
+import gplx.xowa.files.repos.*;
+public interface Xow_wiki extends Xow_ttl_parser {
+ byte[] Domain_bry(); // EX: en.wikipedia.org
+ String Domain_str();
+ int Domain_tid(); // Xow_domain_.Tid_int_wikipedia
+ byte[] Domain_abrv(); // enwiki
+ Xow_domain Domain_itm();
+ Xow_fsys_mgr Fsys_mgr();
+ Xoa_app App();
+ Xol_lang Lang();
+ Xow_repo_mgr File_mgr__repo_mgr();
+ boolean File_mgr__version_is_1();
}
diff --git a/400_xowa/src_120_wiki/gplx/xowa/Xow_wiki_props.java b/400_xowa/src_120_wiki/gplx/xowa/Xow_wiki_props.java
index 3fbf3e0f0..26c3066d4 100644
--- a/400_xowa/src_120_wiki/gplx/xowa/Xow_wiki_props.java
+++ b/400_xowa/src_120_wiki/gplx/xowa/Xow_wiki_props.java
@@ -18,7 +18,7 @@ along with this program. If not, see .
package gplx.xowa; import gplx.*;
import gplx.xowa.wikis.*;
public class Xow_wiki_props implements GfoInvkAble {
- public byte[] SiteName() {return siteName;} public Xow_wiki_props SiteName_(byte v) {siteName = Bry_.new_ascii_(String_.UpperFirst(String_.new_ascii_(Xow_wiki_domain_.Key_by_tid(v)))); return this;} private byte[] siteName = Bry_.Empty;
+ public byte[] SiteName() {return siteName;} public Xow_wiki_props SiteName_(int v) {siteName = Bry_.new_ascii_(String_.UpperFirst(String_.new_ascii_(Xow_domain_.Tid__get_bry(v)))); return this;} private byte[] siteName = Bry_.Empty;
public byte[] ServerName() {return serverName;} public Xow_wiki_props ServerName_(byte[] v) {serverName = v; server = Bry_.Add(bry_http, v); return this;} private byte[] serverName = Bry_.new_ascii_("localhost");
public byte[] Server() {return server;} private byte[] server = Bry_.new_ascii_("http://localhost"); static final byte[] bry_http = Bry_.new_ascii_("http://");
public byte[] ArticlePath() {return articlePath;} public Xow_wiki_props ArticlePath_(byte[] v) {articlePath = v; return this;} private byte[] articlePath = Xoh_href_parser.Href_wiki_bry;
@@ -34,7 +34,7 @@ public class Xow_wiki_props implements GfoInvkAble {
public byte[] Siteinfo_misc() {return siteinfo_misc;}
public byte[] Siteinfo_mainpage() {return siteinfo_mainpage;} private byte[] siteinfo_mainpage = Bry_.Empty;
public DateAdp Modified_latest() {return modified_latest;} private DateAdp modified_latest;
- public void Main_page_update(Xow_wiki wiki) {
+ public void Main_page_update(Xowe_wiki wiki) {
siteinfo_mainpage = main_page; // note that main_page came from ; store old value for record's sake
main_page = Xow_mainpage_finder.Find_or(wiki, siteinfo_mainpage); // get new main_page from mainpage_finder
}
diff --git a/400_xowa/src_120_wiki/gplx/xowa/Xow_wiki_stats.java b/400_xowa/src_120_wiki/gplx/xowa/Xow_wiki_stats.java
index 133dfcba8..b6f0c46f5 100644
--- a/400_xowa/src_120_wiki/gplx/xowa/Xow_wiki_stats.java
+++ b/400_xowa/src_120_wiki/gplx/xowa/Xow_wiki_stats.java
@@ -17,7 +17,7 @@ along with this program. If not, see .
*/
package gplx.xowa; import gplx.*;
public class Xow_wiki_stats implements GfoInvkAble {
- public Xow_wiki_stats(Xow_wiki wiki) {this.wiki = wiki;} private Xow_wiki wiki;
+ public Xow_wiki_stats(Xowe_wiki wiki) {this.wiki = wiki;} private Xowe_wiki wiki;
public int NumPages() {return num_pages;} public Xow_wiki_stats NumPages_(int v) {num_pages = v; return this;} private int num_pages; // in entire wiki: 28,433,596
public int NumArticles() {return num_articles;} public Xow_wiki_stats NumArticles_(int v) {num_articles = v; return this;} private int num_articles; // in main ns: 4,074,996
public int NumFiles() {return num_files;} public Xow_wiki_stats NumFiles_(int v) {num_files = v; return this;} private int num_files;
diff --git a/400_xowa/src_120_wiki/gplx/xowa/Xow_wiki_tst.java b/400_xowa/src_120_wiki/gplx/xowa/Xow_wiki_tst.java
index 347e7ad57..1cb3619a0 100644
--- a/400_xowa/src_120_wiki/gplx/xowa/Xow_wiki_tst.java
+++ b/400_xowa/src_120_wiki/gplx/xowa/Xow_wiki_tst.java
@@ -30,11 +30,11 @@ class Xow_wiki_fxt {
}
public Xop_fxt Fxt() {return fxt;} private Xop_fxt fxt;
public void Test_getPageByTtl(String ttl_str, String expd) {
- Xow_wiki wiki = fxt.Wiki();
+ Xowe_wiki wiki = fxt.Wiki();
byte[] ttl_bry = Bry_.new_ascii_(ttl_str);
Xoa_url url = Xoa_url.blank_().Raw_(ttl_bry);
Xoa_ttl ttl = Xoa_ttl.parse_(wiki, ttl_bry);
- Xoa_page actl = fxt.Wiki().GetPageByTtl(url, ttl);
+ Xoae_page actl = fxt.Wiki().GetPageByTtl(url, ttl);
if (expd == null) Tfds.Eq_true(actl.Missing());
else Tfds.Eq(expd, String_.new_utf8_(actl.Ttl().Raw()));
}
diff --git a/400_xowa/src_120_wiki/gplx/xowa/Xowc_parser.java b/400_xowa/src_120_wiki/gplx/xowa/Xowc_parser.java
index 1655fd149..897c16486 100644
--- a/400_xowa/src_120_wiki/gplx/xowa/Xowc_parser.java
+++ b/400_xowa/src_120_wiki/gplx/xowa/Xowc_parser.java
@@ -18,7 +18,7 @@ along with this program. If not, see .
package gplx.xowa; import gplx.*;
import gplx.xowa.parsers.lnkis.cfgs.*;
public class Xowc_parser implements GfoInvkAble {
- public Xowc_parser(Xow_wiki wiki) {
+ public Xowc_parser(Xowe_wiki wiki) {
lnki_cfg = new Xoc_lnki_cfg(wiki);
}
public Xoc_lnki_cfg Lnki_cfg() {return lnki_cfg;} private Xoc_lnki_cfg lnki_cfg;
diff --git a/400_xowa/src_120_wiki/gplx/xowa/Xowe_wiki.java b/400_xowa/src_120_wiki/gplx/xowa/Xowe_wiki.java
new file mode 100644
index 000000000..a4ff7657f
--- /dev/null
+++ b/400_xowa/src_120_wiki/gplx/xowa/Xowe_wiki.java
@@ -0,0 +1,312 @@
+/*
+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; import gplx.*;
+import gplx.core.primitives.*; import gplx.xowa.apps.*; import gplx.xowa.apps.fsys.*; import gplx.xowa.files.exts.*;
+import gplx.xowa.wikis.*; import gplx.xowa.users.*; import gplx.xowa.html.*; import gplx.xowa.users.history.*; import gplx.xowa.specials.*; import gplx.xowa.xtns.*; import gplx.xowa.dbs.*; import gplx.xowa.wikis.ttls.*;
+import gplx.xowa.files.*; import gplx.xowa.files.repos.*;
+import gplx.xowa.langs.vnts.*; import gplx.xowa.gui.views.*; import gplx.xowa.wikis.xwikis.*;
+import gplx.xowa.setup.maints.*; import gplx.xowa.wikis.caches.*;
+import gplx.xowa.bldrs.imports.*; import gplx.xowa.xtns.pfuncs.*;
+import gplx.xowa.tdbs.*;
+public class Xowe_wiki implements Xow_wiki, GfoInvkAble {
+ private Xow_html_util util; private boolean hdump_enabled;
+ public Xowe_wiki(Xoae_app app, Io_url wiki_dir, Xow_ns_mgr ns_mgr, Xol_lang lang) {
+ this.app = app; this.ns_mgr = ns_mgr; this.lang = lang;
+ domain_str = wiki_dir.NameOnly(); domain_bry = Bry_.new_utf8_(domain_str);
+ domain_itm = Xow_domain_.parse(domain_bry);
+ domain_tid = domain_itm.Domain_tid();
+ domain_abrv = Xow_wiki_alias.Build_alias(Xow_domain_.parse(domain_bry));
+ fsys_mgr = new Xow_fsys_mgr(wiki_dir, app.Fsys_mgr().File_dir().GenSubDir(domain_str));
+ xwiki_mgr = new Xow_xwiki_mgr(this, app.Url_parser().Url_parser());
+ xwiki_mgr.Add_full(domain_bry, domain_bry); // add full name to xwiki_mgr; needed for lookup in home ns; EX: [[en.wikipedia.org:Earth]]
+
+ tdb_fsys_mgr = new Xotdb_fsys_mgr(wiki_dir, ns_mgr);
+ xwiki_domain_tid = Xwiki_tid(domain_tid);
+ redirect_mgr = new Xop_redirect_mgr(this);
+ data_mgr = new Xow_data_mgr(this);
+ file_mgr = new Xow_file_mgr(this);
+ utl_mgr = new Xow_utl_mgr(this);
+ parser = Xop_parser.new_wiki_(this);
+ cfg_parser = new Xowc_parser(this);
+ ctx = Xop_ctx.new_(this);
+ props.SiteName_(domain_tid).ServerName_(domain_bry);
+ props.ContentLanguage_(lang.Key_bry());
+ Pf_func_.Reg(lang.Func_regy(), lang);
+ special_mgr = new Xows_mgr(this, lang);
+ stats = new Xow_wiki_stats(this);
+ html_mgr = new Xow_html_mgr(this);
+ sys_cfg = new Xow_sys_cfg(this);
+ hive_mgr = new Xob_hive_mgr(this);
+ util = new Xow_html_util(this);
+ cfg_wiki_core = new Xow_cfg_wiki_core(this);
+ import_cfg = new Xob_import_cfg(this);
+ msg_mgr = new Xow_msg_mgr(this, lang);
+ eval_mgr = new Bfmtr_eval_wiki(this);
+ fragment_mgr = new Xow_fragment_mgr(this);
+ xtn_mgr = new Xow_xtn_mgr().Ctor_by_wiki(this);
+ if (domain_tid == Xow_domain_.Tid_int_home) {
+ wdata_wiki_tid = Xow_domain_.Tid_int_wikipedia;
+ wdata_wiki_lang = Xol_lang_.Key_en;
+ }
+ else {
+ wdata_wiki_tid = domain_tid;
+ wdata_wiki_lang = domain_itm.Lang_orig_key(); // NOTE: must use orig_key for nowiki; "no" not "nb" DATE:2014-10-07
+ }
+ Wdata_wiki_abrv_();
+ db_mgr = new gplx.xowa.dbs.Xodb_mgr_txt(this, data_mgr);
+ maint_mgr = new Xow_maint_mgr(this);
+ cache_mgr = new Xow_cache_mgr(this);
+ }
+ public byte[] Domain_bry() {return domain_bry;} private final byte[] domain_bry;
+ public String Domain_str() {return domain_str;} private final String domain_str;
+ public int Domain_tid() {return domain_tid;} private final int domain_tid;
+ public byte[] Domain_abrv() {return domain_abrv;} private final byte[] domain_abrv;
+ public Xow_domain Domain_itm() {return domain_itm;} private final Xow_domain domain_itm;
+ public Xol_lang Lang() {return lang;} private final Xol_lang lang;
+ public Xow_ns_mgr Ns_mgr() {return ns_mgr;} private final Xow_ns_mgr ns_mgr;
+ public Xow_fsys_mgr Fsys_mgr() {return fsys_mgr;} private final Xow_fsys_mgr fsys_mgr;
+ public Xoa_ttl Ttl_parse(byte[] ttl) {return Xoa_ttl.parse_(this, ttl);}
+ public Xoa_ttl Ttl_parse(int ns_id, byte[] ttl) {return Xoa_ttl.parse_(this, ns_id, ttl);}
+ public Xow_repo_mgr File_mgr__repo_mgr() {return file_mgr.Repo_mgr();}
+ public boolean File_mgr__version_is_1() {return true;}
+ public Xoa_app App() {return app;}
+
+ public Xow_xwiki_mgr Xwiki_mgr() {return xwiki_mgr;} private final Xow_xwiki_mgr xwiki_mgr;
+ public int Xwiki_domain_tid() {return xwiki_domain_tid;} private int xwiki_domain_tid;
+ public Xoae_app Appe() {return app;} private Xoae_app app;
+ public Xow_utl_mgr Utl_mgr() {return utl_mgr;} private Xow_utl_mgr utl_mgr;
+ public Xow_gui_mgr Gui_mgr() {return gui_mgr;} private Xow_gui_mgr gui_mgr = new Xow_gui_mgr();
+ public Xow_user User() {return user;} private Xow_user user = new Xow_user();
+ public Xow_data_mgr Data_mgr() {return data_mgr;} private Xow_data_mgr data_mgr;
+ public Xodb_mgr Db_mgr() {return db_mgr;} private Xodb_mgr db_mgr;
+ public Xodb_mgr_sql Db_mgr_as_sql() {return (Xodb_mgr_sql)db_mgr;}
+ public Xows_mgr Special_mgr() {return special_mgr;} private Xows_mgr special_mgr;
+ public Xow_html_mgr Html_mgr() {return html_mgr;} private Xow_html_mgr html_mgr;
+ public Xow_xtn_mgr Xtn_mgr() {return xtn_mgr;} private Xow_xtn_mgr xtn_mgr;
+ public Xow_cache_mgr Cache_mgr() {return cache_mgr;} private Xow_cache_mgr cache_mgr;
+
+ public byte[] Commons_wiki_key() {return commons_wiki_key;} private byte[] commons_wiki_key = Xow_domain_.Domain_bry_commons;
+ public Xob_hive_mgr Hive_mgr() {return hive_mgr;} private Xob_hive_mgr hive_mgr;
+ public Xow_msg_mgr Msg_mgr() {return msg_mgr;} private Xow_msg_mgr msg_mgr;
+ public Xow_fragment_mgr Fragment_mgr() {return fragment_mgr;} private Xow_fragment_mgr fragment_mgr;
+ public Bfmtr_eval_wiki Eval_mgr() {return eval_mgr;} private Bfmtr_eval_wiki eval_mgr;
+ public Bry_bfr_mkr Utl_bry_bfr_mkr() {return app.Utl_bry_bfr_mkr();}
+ public byte[] Wdata_wiki_lang() {return wdata_wiki_lang;} private byte[] wdata_wiki_lang;
+ public void Wdata_wiki_lang_(byte[] v) {this.wdata_wiki_lang = v; Wdata_wiki_abrv_();} // TEST:
+ public byte[] Wdata_wiki_abrv() {return wdata_wiki_abrv;} private byte[] wdata_wiki_abrv; private int wdata_wiki_tid;
+ private void Wdata_wiki_abrv_() {
+ Bry_bfr bfr = app.Utl_bry_bfr_mkr().Get_b128();
+ Xow_wiki_alias.Build_alias_by_lang_tid(bfr, wdata_wiki_lang, Int_obj_ref.new_(wdata_wiki_tid));
+ wdata_wiki_abrv = bfr.Mkr_rls().Xto_bry_and_clear();
+ }
+
+ public boolean Init_needed() {return init_needed;} public Xowe_wiki Init_needed_(boolean v) {init_needed = v; return this;} private boolean init_needed = true;
+
+ public Xop_parser Parser() {return parser;} private Xop_parser parser;
+ public Xop_redirect_mgr Redirect_mgr() {return redirect_mgr;} private Xop_redirect_mgr redirect_mgr;
+ public Xop_ctx Ctx() {return ctx;} private Xop_ctx ctx;
+ public ListAdp Rls_list() {if (rls_list == null) rls_list = ListAdp_.new_(); return rls_list;} private ListAdp rls_list;
+
+ public Xow_file_mgr File_mgr() {return file_mgr;} private Xow_file_mgr file_mgr;
+ public Xow_cfg_wiki_core Cfg_wiki_core() {return cfg_wiki_core;} private Xow_cfg_wiki_core cfg_wiki_core;
+ public Xob_import_cfg Import_cfg() {return import_cfg;} private Xob_import_cfg import_cfg;
+
+ public Xotdb_fsys_mgr Tdb_fsys_mgr() {return tdb_fsys_mgr;} private final Xotdb_fsys_mgr tdb_fsys_mgr;
+
+ public Xow_wiki_stats Stats() {return stats;} private Xow_wiki_stats stats;
+ public Xow_wiki_props Props() {return props;} private Xow_wiki_props props = new Xow_wiki_props();
+ public Xou_history_cfg Cfg_history() {return cfg_history;} private Xou_history_cfg cfg_history = new Xou_history_cfg();
+ public Xoh_cfg_gallery Cfg_gallery() {return cfg_gallery;} private Xoh_cfg_gallery cfg_gallery = new Xoh_cfg_gallery();
+ public Xoh_file_page Cfg_file_page() {return cfg_file_page;} private Xoh_file_page cfg_file_page = new Xoh_file_page();
+ public Xow_sys_cfg Sys_cfg() {return sys_cfg;} private Xow_sys_cfg sys_cfg;
+ public Xowc_parser Cfg_parser() {return cfg_parser;} private Xowc_parser cfg_parser;
+ public boolean Cfg_parser_lnki_xwiki_repos_enabled() {return cfg_parser_lnki_xwiki_repos_enabled;} public Xowe_wiki Cfg_parser_lnki_xwiki_repos_enabled_(boolean v) {cfg_parser_lnki_xwiki_repos_enabled = v; return this;} private boolean cfg_parser_lnki_xwiki_repos_enabled;
+ public Xoi_dump_mgr Import_mgr() {return import_mgr;} private Xoi_dump_mgr import_mgr = new Xoi_dump_mgr();
+ public Xow_maint_mgr Maint_mgr() {return maint_mgr;} private Xow_maint_mgr maint_mgr;
+ public void Clear_for_tests() { // NOTE: these are structures that cache items for PERF; need to be cleared out for multiple test runs
+ file_mgr.Meta_mgr().Clear();
+ db_mgr.Load_mgr().Clear();
+ }
+ public Xoae_page GetPageByTtl(Xoa_url url, Xoa_ttl ttl) {return GetPageByTtl(url, ttl, lang, app.Gui_mgr().Browser_win().Active_tab(), true);}
+ public Xoae_page GetPageByTtl(Xoa_url url, Xoa_ttl ttl, Xog_tab_itm tab) {return GetPageByTtl(url, ttl, lang, tab, true);}
+ public Xoae_page GetPageByTtl(Xoa_url url, Xoa_ttl ttl, Xol_lang lang, Xog_tab_itm tab, boolean parse_page) {
+ if (init_needed) Init_wiki(app.User());
+ Xoae_page page = data_mgr.Get_page(url, ttl, false, false); // get page from data_mgr
+ if (page.Missing()) { // page doesn't exist
+ if (ttl.Ns().Id_file()) {
+ Xowe_wiki commons_wiki = app.Wiki_mgr().Get_by_key_or_null(commons_wiki_key);
+ if (commons_wiki != null
+ && !Bry_.Eq(domain_bry, commons_wiki.Domain_bry())) // if file, check commons wiki; note that !Bry_.Eq is recursion guard
+ return commons_wiki.GetPageByTtl(url, ttl, this.lang, tab, true);
+ }
+ else
+ return page.Missing_();
+ }
+ if (page.Missing()) return page; // NOTE: commons can return null page
+ page.Tab_(tab);
+ page.Lang_(lang);
+ if (parse_page)
+ ParsePage(page, false); // NOTE: do not clear page b/c reused for search
+ return page;
+ }
+ public void ParsePage_root(Xoae_page page, boolean clear) {ParsePage(page, clear);}
+ public void ParsePage(Xoae_page page, boolean clear) {
+ if (init_needed && !Env_.Mode_testing()) Init_wiki(app.User());
+ gplx.xowa.xtns.scribunto.Scrib_core.Core_page_changed(page); // notify scribunto about page changed
+ ctx.Cur_page_(page);
+ Xop_root_tkn root = ctx.Tkn_mkr().Root(page.Data_raw());
+ if (clear) {page.Clear();}
+ Xoa_ttl ttl = page.Ttl();
+ if (Xow_page_tid.Identify(domain_tid, ttl.Ns().Id(), ttl.Page_db()) == Xow_page_tid.Tid_wikitext) // only parse page if wikitext; skip .js, .css, Module; DATE:2013-11-10
+ parser.Parse_text_to_wdom(root, ctx, app.Tkn_mkr(), page.Data_raw(), Xop_parser_.Doc_bgn_bos);
+ page.Root_(root);
+ root.Data_htm_(root.Root_src());
+ }
+ public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
+ if (ctx.Match(k, Invk_files)) return file_mgr;
+ else if (ctx.Match(k, Invk_xwikis)) return xwiki_mgr;
+ else if (ctx.Match(k, Invk_stats)) return stats;
+ else if (ctx.Match(k, Invk_props)) return props;
+ else if (ctx.Match(k, Invk_cfg_gallery_)) return cfg_gallery;
+ else if (ctx.Match(k, Invk_commons_wiki_)) commons_wiki_key = m.ReadBry("v");
+ else if (ctx.Match(k, Invk_lang)) return lang;
+ else if (ctx.Match(k, Invk_lang_)) throw Err_.deprecated("wiki.lang_");
+ else if (ctx.Match(k, Invk_html)) return html_mgr;
+ else if (ctx.Match(k, Invk_gui)) return gui_mgr;
+ else if (ctx.Match(k, Invk_cfg_history)) return cfg_history;
+ else if (ctx.Match(k, Invk_user)) return user;
+ else if (ctx.Match(k, Invk_data_mgr)) return data_mgr;
+ else if (ctx.Match(k, Invk_ns_mgr)) return ns_mgr;
+ else if (ctx.Match(k, Invk_sys_cfg)) return sys_cfg;
+ else if (ctx.Match(k, Invk_special)) return special_mgr;
+ else if (ctx.Match(k, Invk_parser)) return cfg_parser;
+ else if (ctx.Match(k, Invk_msgs)) return msg_mgr;
+ else if (ctx.Match(k, Invk_util)) return util;
+ else if (ctx.Match(k, Invk_app)) return app;
+ else if (ctx.Match(k, Invk_data_storage_format_))db_mgr.Data_storage_format_(m.ReadByte("v"));
+ else if (ctx.Match(k, Invk_db_mgr)) return db_mgr;
+ else if (ctx.Match(k, Invk_db_mgr_to_sql_)) this.Db_mgr_create_as_sql();
+ else if (ctx.Match(k, Invk_import_mgr)) return import_mgr;
+ else if (ctx.Match(k, Invk_maint)) return maint_mgr;
+ else if (ctx.Match(k, Invk_domain)) return domain_str;
+ else if (ctx.Match(k, Invk_xtns)) return xtn_mgr;
+ else if (ctx.Match(k, Invk_hdump_enabled_)) hdump_enabled = m.ReadYn("v");
+ else return GfoInvkAble_.Rv_unhandled;
+ return this;
+ }
+ public static final String
+ Invk_ZipDirs = "zip_dirs_", Invk_files = "files", Invk_xwikis = "xwikis", Invk_cfg_gallery_ = "cfg_gallery_", Invk_commons_wiki_ = "commons_wiki_", Invk_stats = "stats"
+ , Invk_lang = "lang", Invk_html = "html", Invk_gui = "gui", Invk_cfg_history = "cfg_history", Invk_user = "user", Invk_data_mgr = "data_mgr", Invk_sys_cfg = "sys_cfg", Invk_ns_mgr = "ns_mgr"
+ , Invk_special = "special"
+ , Invk_props = "props", Invk_parser = "parser"
+ , Invk_msgs = "msgs", Invk_app = "app", Invk_util = "util"
+ , Invk_xtns = "xtns", Invk_data_storage_format_ = "data_storage_format_", Invk_import_mgr = "import"
+ , Invk_db_mgr = "db_mgr", Invk_db_mgr_to_sql_ = "db_mgr_to_sql_"
+ , Invk_domain = "domain", Invk_maint = "maint", Invk_hdump_enabled_ = "hdump_enabled_"
+ ;
+ public static final String Invk_lang_ = "lang_";
+ public Xodb_mgr_sql Db_mgr_create_as_sql() {Xodb_mgr_sql rv = new Xodb_mgr_sql(this); db_mgr = rv; return rv;}
+ public Xowe_wiki Init_assert() {if (init_needed) Init_wiki(app.User()); return this;}
+ private boolean init_in_process = false;
+ private void Init_wiki(Xou_user user) { // NOTE: (a) one-time initialization for all wikis; (b) not called by tests
+ if (init_in_process) {
+ app.Usr_dlg().Log_many("", "", "wiki.init: circular call canceled: ~{0}", domain_str);
+ return; // NOTE: may be called multiple times due to "if (app.Stage() == Xoa_stage_.Tid_launch) init_needed = false;"; TODO: call this only once; DATE:2014-06-07
+ }
+ init_in_process = true;
+ if (app.Stage() == Xoa_stage_.Tid_launch) init_needed = false; // NOTE: only mark inited if app fully launched; otherwise statements in xowa.gfs can fire and prematurely set home to inited; DATE:2013-03-24
+ Gfo_log_bfr log_bfr = app.Log_bfr();
+ log_bfr.Add("wiki.init.bgn: " + domain_str);
+ app.Cfg_mgr().Init(this);
+ file_mgr.Cfg_download().Enabled_(app.File_mgr().Wmf_mgr().Enabled()); // default download to app global; can be overriden below
+ Io_url sqlite_url = Xodb_mgr_sql.Find_core_url(this);
+ if (sqlite_url != null) {
+ Xodb_mgr_sql db_mgr_sql = this.Db_mgr_create_as_sql();
+ db_mgr_sql.Init_load(gplx.dbs.Db_url_.sqlite_(sqlite_url));
+ db_mgr_sql.Html_db_enabled_(hdump_enabled);
+ }
+ if (!Xob_import_marker.Check(this)) {app.Wiki_mgr().Del(domain_bry); init_needed = false; return;} // NOTE: must call after Db_mgr_create_as_sql(); also, must delete wiki from mgr; DATE:2014-08-24
+ db_mgr.Load_mgr().Load_init(this);
+ app.Gfs_mgr().Run_url_for(this, tdb_fsys_mgr.Cfg_wiki_core_fil());
+ gplx.xowa.utls.upgrades.Xoa_upgrade_mgr.Check(this);
+ app.Gfs_mgr().Run_url_for(this, tdb_fsys_mgr.Cfg_wiki_stats_fil());
+ app.Gfs_mgr().Run_url_for(this, app.Fsys_mgr().Cfg_wiki_core_dir().GenSubFil(domain_str + ".gfs")); // run cfg for wiki by user ; EX: /xowa/user/anonymous/wiki/en.wikipedia.org/cfg/user_wiki.gfs
+ tdb_fsys_mgr.Scan_dirs();
+ if (lang.Init_by_load()) {
+ if (domain_tid == Xow_domain_.Tid_int_wikipedia) // NOTE: if type is wikipedia, add "Wikipedia" as an alias; PAGE:en.w:pt.wikipedia.org/wiki/Página principal which redirects to Wikipedia:Página principal
+ ns_mgr.Aliases_add(Xow_ns_.Id_project, Xow_ns_.Ns_name_wikipedia);
+ }
+ cfg_parser.Xtns().Itm_pages().Init(ns_mgr); // init ns_mgr for Page / Index ns just before rebuild; usually set by #cfg file
+ Xow_ns_mgr_.rebuild_(lang, ns_mgr); // always rebuild; may be changed by user_wiki.gfs; different lang will change namespaces; EX: de.wikisource.org will have Seite for File and none of {{#lst}} will work
+ fragment_mgr.Evt_lang_changed(lang);
+ parser.Init_by_lang(lang);
+ html_mgr.Init_by_lang(lang);
+ lang.Vnt_mgr().Init_by_wiki(this);
+ Bry_fmtr.Null.Eval_mgr().Enabled_(false);
+ app.Wiki_mgr().Scripts().Exec(this);
+ Bry_fmtr.Null.Eval_mgr().Enabled_(true);
+ app.Wiki_mgr().Css_installer().Install_assert(this, user.Fsys_mgr().Wiki_html_dir(domain_str));
+ html_mgr.Init_by_wiki(this);
+ this.Copy_cfg(app.User().Wiki());
+ File_repos_assert(app, this);
+ xtn_mgr.Init_by_wiki(this);
+ log_bfr.Add("wiki.init.end");
+ app.Log_wtr().Log_msg_to_session_direct(log_bfr.Xto_str());
+ init_in_process = false;
+ }
+ public void Rls() {
+ if (rls_list == null) return;
+ int len = rls_list.Count();
+ for (int i = 0; i < len; i++) {
+ RlsAble rls = (RlsAble)rls_list.FetchAt(i);
+ rls.Rls();
+ }
+ }
+ private void Copy_cfg(Xowe_wiki wiki) {html_mgr.Copy_cfg(wiki.Html_mgr());}
+ private static void File_repos_assert(Xoae_app app, Xowe_wiki wiki) {
+ byte[] wiki_key = wiki.Domain_bry();
+ Xoa_repo_mgr repo_mgr = app.File_mgr().Repo_mgr();
+ Xof_repo_itm repo_itm = repo_mgr.Get_by(wiki_key);
+ Xoa_fsys_mgr app_fsys_mgr = app.Fsys_mgr();
+ Xof_rule_mgr ext_rule_mgr = app.File_mgr().Ext_rules();
+ if (repo_itm == null) {
+ repo_itm = new Xof_repo_itm(wiki_key, app_fsys_mgr, ext_rule_mgr).Wiki_key_(wiki_key);
+ repo_mgr.Add(repo_itm);
+ }
+ Xowe_repo_mgr pair_mgr = wiki.File_mgr().Repo_mgr();
+ if (pair_mgr.Repos_len() == 0) {
+ Xof_repo_itm repo_src = repo_mgr.Get_by(File_repo_xowa_null);
+ if (repo_src == null) {
+ repo_itm = new Xof_repo_itm(File_repo_xowa_null, app_fsys_mgr, ext_rule_mgr).Wiki_key_(Xow_domain_.Tid_bry_home);
+ repo_mgr.Add(repo_itm);
+ }
+ pair_mgr.Add_repo(File_repo_xowa_null, wiki_key);
+ }
+ } static byte[] File_repo_xowa_null = Bry_.new_ascii_("xowa_repo_null");
+ private static int Xwiki_tid(int tid) {
+ switch (tid) {
+ case Xow_domain_.Tid_int_commons:
+ case Xow_domain_.Tid_int_species:
+ case Xow_domain_.Tid_int_incubator:
+ case Xow_domain_.Tid_int_mediawiki:
+ case Xow_domain_.Tid_int_wikimediafoundation:
+ case Xow_domain_.Tid_int_home: return Xow_domain_.Tid_int_wikipedia; // set xwiki_tid to wikipedia; allows [[da:Page]] to point to da.wikipedia.org; PAGE:species:Puccinia; DATE:2014-09-14
+ default: return tid;
+ }
+ }
+}
diff --git a/400_xowa/src_121_wiki_data/gplx/xowa/Xob_hive_mgr.java b/400_xowa/src_121_wiki_data/gplx/xowa/Xob_hive_mgr.java
index 84321fdb3..cc949740c 100644
--- a/400_xowa/src_121_wiki_data/gplx/xowa/Xob_hive_mgr.java
+++ b/400_xowa/src_121_wiki_data/gplx/xowa/Xob_hive_mgr.java
@@ -16,12 +16,12 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa; import gplx.*;
-import gplx.xowa.specials.*; import gplx.xowa.specials.allPages.*;
+import gplx.xowa.specials.*; import gplx.xowa.specials.allPages.*; import gplx.xowa.tdbs.*;
public class Xob_hive_mgr {
- public Xob_hive_mgr(Xow_wiki wiki) {this.wiki = wiki; this.fsys_mgr = wiki.Fsys_mgr();} private Xow_wiki wiki; Xow_fsys_mgr fsys_mgr;
+ public Xob_hive_mgr(Xowe_wiki wiki) {this.wiki = wiki; this.fsys_mgr = wiki.Tdb_fsys_mgr();} private Xowe_wiki wiki; Xotdb_fsys_mgr fsys_mgr;
public void Clear() {regy.Clear(); xdat.Clear();}
public void Special_allpages_query(Xows_page_allpages mgr, Xow_ns ns, byte[] key, int count, boolean include_redirects) {
- byte dir_tid = Xow_dir_info_.Tid_ttl;
+ byte dir_tid = Xotdb_dir_info_.Tid_ttl;
int xdat_idx = Regy__find_file_ns(key, dir_tid, ns.Num_str());
Xob_xdat_file xdat_main = new Xob_xdat_file();
xdat_main = xdat_load_(xdat_main, dir_tid, ns, xdat_idx);
@@ -107,7 +107,7 @@ public class Xob_hive_mgr {
mgr.Rslt_prv_(prv_itm);
}
public void Find_bgn(ListAdp list, Xow_ns ns, byte[] key, int count, boolean include_redirects) {
- byte dir_tid = Xow_dir_info_.Tid_ttl;
+ byte dir_tid = Xotdb_dir_info_.Tid_ttl;
int xdat_idx = Regy__find_file_ns(key, dir_tid, ns.Num_str());
Io_url xdat_url = fsys_mgr.Url_ns_fil(dir_tid, ns.Id(), xdat_idx);
byte[] xdat_bry = gplx.ios.Io_stream_rdr_.Load_all(xdat_url);
@@ -177,7 +177,7 @@ public class Xob_hive_mgr {
Xdat__create_row(dir_tid, key, row, xdat_idx);
}
int Regy__find_file(byte[] key, byte dir_tid) {return Regy__find_file_by_url(key, fsys_mgr.Url_site_reg(dir_tid));}
- int Regy__find_file_ns(byte[] key, byte dir_tid, String ns_num) {return Regy__find_file_by_url(key, fsys_mgr.Url_ns_reg(ns_num, Xow_dir_info_.Tid_ttl));}
+ int Regy__find_file_ns(byte[] key, byte dir_tid, String ns_num) {return Regy__find_file_by_url(key, fsys_mgr.Url_ns_reg(ns_num, Xotdb_dir_info_.Tid_ttl));}
int Regy__find_file_by_url(byte[] key, Io_url regy_url) {regy.Init(regy_url); return regy.Files_find(key);} private Xowd_regy_mgr regy = new Xowd_regy_mgr();
private void Xdat__create_row(byte dir_tid, byte[] key, byte[] row, int xdat_idx) {
Io_url xdat_url = fsys_mgr.Url_site_fil(dir_tid, xdat_idx);
diff --git a/400_xowa/src_121_wiki_data/gplx/xowa/Xow_data_mgr.java b/400_xowa/src_121_wiki_data/gplx/xowa/Xow_data_mgr.java
index 5c755e914..c81403d82 100644
--- a/400_xowa/src_121_wiki_data/gplx/xowa/Xow_data_mgr.java
+++ b/400_xowa/src_121_wiki_data/gplx/xowa/Xow_data_mgr.java
@@ -21,13 +21,14 @@ import gplx.xowa.dbs.*; import gplx.xowa.wikis.*; import gplx.xowa.langs.msgs.*;
public class Xow_data_mgr implements GfoInvkAble {
private Xop_redirect_mgr redirect_mgr;
private Xoa_url tmp_url = Xoa_url.blank_();
- public Xow_data_mgr(Xow_wiki wiki) {this.wiki = wiki; this.redirect_mgr = wiki.Redirect_mgr();}
- public Xow_wiki Wiki() {return wiki;} private Xow_wiki wiki;
- public Xoa_page Get_page(Xoa_ttl ttl, boolean called_from_tmpl) {wiki.App().Url_parser().Parse(tmp_url, ttl.Raw()); return Get_page(tmp_url, ttl, called_from_tmpl, false);}
- public Xoa_page Get_page_from_msg(Xoa_ttl ttl) {wiki.App().Url_parser().Parse(tmp_url, ttl.Raw()); return Get_page(tmp_url, ttl, false, true);}
- public Xoa_page Get_page(Xoa_url url, Xoa_ttl ttl, boolean called_from_tmpl, boolean called_from_msg) {
+ public Xow_data_mgr(Xowe_wiki wiki) {this.wiki = wiki; this.redirect_mgr = wiki.Redirect_mgr();}
+ public Xowe_wiki Wiki() {return wiki;} private Xowe_wiki wiki;
+ public boolean Version_is_1() {return Bool_.Y;}
+ public Xoae_page Get_page(Xoa_ttl ttl, boolean called_from_tmpl) {wiki.Appe().Url_parser().Parse(tmp_url, ttl.Raw()); return Get_page(tmp_url, ttl, called_from_tmpl, false);}
+ public Xoae_page Get_page_from_msg(Xoa_ttl ttl) {wiki.Appe().Url_parser().Parse(tmp_url, ttl.Raw()); return Get_page(tmp_url, ttl, false, true);}
+ public Xoae_page Get_page(Xoa_url url, Xoa_ttl ttl, boolean called_from_tmpl, boolean called_from_msg) {
Xow_ns ns = ttl.Ns();
- Xoa_page rv = Xoa_page.new_(wiki, ttl); rv.Url_(url); // NOTE: must update page.Url(); should combine with Xoa_page.new_()
+ Xoae_page rv = Xoae_page.new_(wiki, ttl); rv.Url_(url); // NOTE: must update page.Url(); should combine with Xoae_page.new_()
switch (ns.Id()) {
case Xow_ns_.Id_special:
wiki.Special_mgr().Special_gen(url, rv, wiki, ttl);
@@ -49,14 +50,14 @@ public class Xow_data_mgr implements GfoInvkAble {
}
return Get_page(rv, ns, ttl, called_from_tmpl, url.Redirect_force());
}
- public Xoa_page Get_page(Xoa_page rv, Xow_ns ns, Xoa_ttl ttl, boolean called_from_tmpl, boolean redirect_force) {
+ public Xoae_page Get_page(Xoae_page rv, Xow_ns ns, Xoa_ttl ttl, boolean called_from_tmpl, boolean redirect_force) {
int redirects = 0;
Xodb_page db_page = Xodb_page.tmp_();
while (true) {
boolean exists = wiki.Db_mgr().Load_mgr().Load_by_ttl(db_page, ns, ttl.Page_db());
if (!exists) return rv.Missing_();
- if (wiki.App().Mode() == Xoa_app_.Mode_gui) // NOTE: must check if gui, else will write during mass build; DATE:2014-05-03
- wiki.App().Gui_wtr().Prog_many(GRP_KEY, "file_load", "loading page for ~{0}", String_.new_utf8_(ttl.Raw()));
+ if (wiki.Appe().Mode() == Xoa_app_.Mode_gui) // NOTE: must check if gui, else will write during mass build; DATE:2014-05-03
+ wiki.Appe().Usr_dlg().Prog_many(GRP_KEY, "file_load", "loading page for ~{0}", String_.new_utf8_(ttl.Raw()));
wiki.Db_mgr().Load_mgr().Load_page(db_page, ns, !called_from_tmpl);
byte[] bry = db_page.Text();
rv.Data_raw_(bry).Revision_data().Modified_on_(db_page.Modified_on()).Id_(db_page.Id()).Html_db_id_(db_page.Html_db_id());
@@ -73,7 +74,7 @@ public class Xow_data_mgr implements GfoInvkAble {
}
return rv;
}
- public Xoa_page Redirect(Xoa_page page, byte[] page_bry) {
+ public Xoae_page Redirect(Xoae_page page, byte[] page_bry) {
Xoa_ttl trg_ttl = Xoa_ttl.parse_(wiki, page_bry);
Xoa_url trg_url = Xoa_url.new_(wiki.Domain_bry(), page_bry);
page.Ttl_(trg_ttl).Url_(trg_url).Redirected_(true);
diff --git a/400_xowa/src_121_wiki_data/gplx/xowa/Xow_data_mgr_tst.java b/400_xowa/src_121_wiki_data/gplx/xowa/Xow_data_mgr_tst.java
index ed2a80441..80ecb11e9 100644
--- a/400_xowa/src_121_wiki_data/gplx/xowa/Xow_data_mgr_tst.java
+++ b/400_xowa/src_121_wiki_data/gplx/xowa/Xow_data_mgr_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; import gplx.*;
-import org.junit.*;
+import org.junit.*; import gplx.xowa.tdbs.*;
public class Xow_data_mgr_tst {
Xow_data_mgr_fxt fxt = new Xow_data_mgr_fxt();
@Before public void init() {fxt.Clear(); Tfds.Now_enabled_y_();}
@@ -123,8 +123,8 @@ public class Xow_data_mgr_tst {
}
}
class Xow_data_mgr_fxt {
- Xoa_app app;
- public Xow_wiki Wiki() {return wiki;} private Xow_wiki wiki;
+ Xoae_app app;
+ public Xowe_wiki Wiki() {return wiki;} private Xowe_wiki wiki;
public void Clear() {
app = Xoa_app_fxt.app_();
wiki = Xoa_app_fxt.wiki_tst_(app);
@@ -137,26 +137,26 @@ class Xow_data_mgr_fxt {
}
public Xow_data_mgr_fxt Update(String ttl_str, String data) {
Xoa_ttl ttl = Xoa_ttl.parse_(wiki, Bry_.new_utf8_(ttl_str));
- Xoa_page page = Xoa_page.test_(wiki, ttl);
+ Xoae_page page = Xoae_page.test_(wiki, ttl);
wiki.Db_mgr().Save_mgr().Data_update(page, Bry_.new_utf8_(data));
return this;
}
public Xow_data_mgr_fxt Rename(String old_ttl, String new_ttl) {
Xoa_ttl ttl = Xoa_ttl.parse_(wiki, Bry_.new_utf8_(old_ttl));
- Xoa_page page = Xoa_page.test_(wiki, ttl);
+ Xoae_page page = Xoae_page.test_(wiki, ttl);
wiki.Db_mgr().Save_mgr().Data_rename(page, ttl.Ns().Id(), Bry_.new_utf8_(new_ttl));
return this;
}
- public Xow_data_mgr_fxt Tst_regy_title(String expd) {return Tst_regy(Xow_dir_info_.Name_title, expd);}
+ public Xow_data_mgr_fxt Tst_regy_title(String expd) {return Tst_regy(Xotdb_dir_info_.Name_title, expd);}
Xow_data_mgr_fxt Tst_regy(String name, String expd) {
Io_url file_orig = Io_url_.mem_fil_("mem/xowa/wiki/en.wikipedia.org/ns/000/" + name + "/reg.csv");
Tfds.Eq_str_lines(expd, Io_mgr._.LoadFilStr(file_orig));
return this;
}
- public Xow_data_mgr_fxt Tst_data_page(String expd) {return Tst_data(Xow_dir_info_.Tid_page , Xow_ns_.Id_main, 0, expd);}
- public Xow_data_mgr_fxt Tst_data_title(String expd) {return Tst_data(Xow_dir_info_.Tid_ttl, Xow_ns_.Id_main, 0, expd);}
+ public Xow_data_mgr_fxt Tst_data_page(String expd) {return Tst_data(Xotdb_dir_info_.Tid_page , Xow_ns_.Id_main, 0, expd);}
+ public Xow_data_mgr_fxt Tst_data_title(String expd) {return Tst_data(Xotdb_dir_info_.Tid_ttl, Xow_ns_.Id_main, 0, expd);}
public Xow_data_mgr_fxt Tst_data(byte dir_tid, int ns_id, int fil, String expd) {
- Io_url url = wiki.Fsys_mgr().Url_ns_fil(dir_tid, ns_id, fil);
+ Io_url url = wiki.Tdb_fsys_mgr().Url_ns_fil(dir_tid, ns_id, fil);
Tfds.Eq_str_lines(expd, Io_mgr._.LoadFilStr(url));
return this;
}
diff --git a/400_xowa/src_121_wiki_data/gplx/xowa/Xow_hive_mgr_fxt.java b/400_xowa/src_121_wiki_data/gplx/xowa/Xow_hive_mgr_fxt.java
index b8a3d8ba8..950566490 100644
--- a/400_xowa/src_121_wiki_data/gplx/xowa/Xow_hive_mgr_fxt.java
+++ b/400_xowa/src_121_wiki_data/gplx/xowa/Xow_hive_mgr_fxt.java
@@ -16,6 +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; import gplx.*;
+import gplx.xowa.tdbs.*;
public class Xow_hive_mgr_fxt {
public void Clear() {
if (hive_mgr == null) {
@@ -25,8 +26,8 @@ public class Xow_hive_mgr_fxt {
}
hive_mgr.Clear();
Io_mgr._.InitEngine_mem();
- } private Xob_hive_mgr hive_mgr; Xoa_app app;
- public Xow_wiki Wiki() {return wiki;} private Xow_wiki wiki;
+ } private Xob_hive_mgr hive_mgr; Xoae_app app;
+ public Xowe_wiki Wiki() {return wiki;} private Xowe_wiki wiki;
public void Find_nearby(String key, int count, boolean include_redirects, String... expd) {
ListAdp list = ListAdp_.new_();
wiki.Hive_mgr().Find_bgn(list, wiki.Ns_mgr().Ns_main(), Bry_.new_ascii_(key), count, include_redirects);
@@ -38,13 +39,13 @@ public class Xow_hive_mgr_fxt {
}
Tfds.Eq_ary_str(expd, actl);
}
- public static void Ttls_create_rng(Xow_wiki wiki, int files, int ttls_per_file) {Ttls_create_rng(wiki, wiki.Ns_mgr().Ns_main(), files, ttls_per_file);}
- public static void Ttls_create_rng(Xow_wiki wiki, Xow_ns ns, int files, int ttls_per_file) {
+ public static void Ttls_create_rng(Xowe_wiki wiki, int files, int ttls_per_file) {Ttls_create_rng(wiki, wiki.Ns_mgr().Ns_main(), files, ttls_per_file);}
+ public static void Ttls_create_rng(Xowe_wiki wiki, Xow_ns ns, int files, int ttls_per_file) {
Xob_reg_wtr reg_wtr = new Xob_reg_wtr();
- byte dir_tid = Xow_dir_info_.Tid_ttl;
+ byte dir_tid = Xotdb_dir_info_.Tid_ttl;
int id = 0;
int ttl_bry_len = Int_.DigitCount(ttls_per_file);
- Xob_xdat_file_wtr xdat_wtr = Xob_xdat_file_wtr.new_file_(ttls_per_file * 8, wiki.Fsys_mgr().Url_ns_dir(ns.Num_str(), Xow_dir_info_.Tid_ttl));
+ Xob_xdat_file_wtr xdat_wtr = Xob_xdat_file_wtr.new_file_(ttls_per_file * 8, wiki.Tdb_fsys_mgr().Url_ns_dir(ns.Num_str(), Xotdb_dir_info_.Tid_ttl));
Bry_bfr tmp_bfr = Bry_bfr.new_();
byte ltr = Byte_ascii.Ltr_A; byte[] ttl_0 = Bry_.Empty, ttl_n = Bry_.Empty;
for (int fil_idx = 0; fil_idx < files; fil_idx++) {
@@ -56,14 +57,14 @@ public class Xow_hive_mgr_fxt {
Xodb_page_.Txt_ttl_save(xdat_wtr.Bfr(), id++, 0, ttl_idx, ttl_idx % 2 == 1, 1, ttl_bry);
xdat_wtr.Add_idx(Byte_ascii.Nil);
}
- xdat_wtr.Flush(wiki.App().Usr_dlg());
+ xdat_wtr.Flush(wiki.Appe().Usr_dlg());
reg_wtr.Add(ttl_0, ttl_n, ttls_per_file);
++ltr;
}
- reg_wtr.Flush(wiki.Fsys_mgr().Url_ns_reg(ns.Num_str(), dir_tid));
+ reg_wtr.Flush(wiki.Tdb_fsys_mgr().Url_ns_reg(ns.Num_str(), dir_tid));
}
public Xow_hive_mgr_fxt Create_ctg(String key_str, int... pages) {Create_ctg(app, hive_mgr, key_str, pages); return this;}
- public static void Create_ctg(Xoa_app app, Xob_hive_mgr hive_mgr, String key_str, int... pages) {
+ public static void Create_ctg(Xoae_app app, Xob_hive_mgr hive_mgr, String key_str, int... pages) {
byte[] key_bry = Bry_.new_ascii_(key_str);
Bry_bfr bfr = app.Utl_bry_bfr_mkr().Get_b512();
bfr.Add(key_bry);
@@ -72,10 +73,10 @@ public class Xow_hive_mgr_fxt {
bfr.Add_byte_pipe().Add_base85_len_5(pages[i]);
bfr.Add_byte_nl();
byte[] row = bfr.Mkr_rls().Xto_bry_and_clear();
- hive_mgr.Create(Xow_dir_info_.Tid_category, key_bry, row);
+ hive_mgr.Create(Xotdb_dir_info_.Tid_category, key_bry, row);
}
public Xow_hive_mgr_fxt Create_id(int id, int fil_idx, int row_idx, boolean type_redirect, int itm_len, int ns_id, String ttl) {Create_id(app, hive_mgr, id, fil_idx, row_idx, type_redirect, itm_len, ns_id, ttl); return this;}
- public static void Create_id(Xoa_app app, Xob_hive_mgr hive_mgr, int id, int fil_idx, int row_idx, boolean type_redirect, int itm_len, int ns_id, String ttl) {
+ public static void Create_id(Xoae_app app, Xob_hive_mgr hive_mgr, int id, int fil_idx, int row_idx, boolean type_redirect, int itm_len, int ns_id, String ttl) {
Bry_bfr bfr = app.Utl_bry_bfr_mkr().Get_b512();
byte[] key_bry = Base85_utl.XtoStrByAry(id, 5);
bfr .Add(key_bry) .Add_byte_pipe()
@@ -87,7 +88,7 @@ public class Xow_hive_mgr_fxt {
.Add_str(ttl) .Add_byte_nl();
byte[] row = bfr.Xto_bry_and_clear();
bfr.Mkr_rls();
- hive_mgr.Create(Xow_dir_info_.Tid_id, key_bry, row);
+ hive_mgr.Create(Xotdb_dir_info_.Tid_id, key_bry, row);
}
public Xow_hive_mgr_fxt Load(String url, String... expd) {
String actl = Io_mgr._.LoadFilStr(url);
diff --git a/400_xowa/src_121_wiki_data/gplx/xowa/Xowd_hive_mgr.java b/400_xowa/src_121_wiki_data/gplx/xowa/Xowd_hive_mgr.java
index bdf2d47c8..d1297b66c 100644
--- a/400_xowa/src_121_wiki_data/gplx/xowa/Xowd_hive_mgr.java
+++ b/400_xowa/src_121_wiki_data/gplx/xowa/Xowd_hive_mgr.java
@@ -16,11 +16,12 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa; import gplx.*;
+import gplx.xowa.tdbs.*;
public class Xowd_hive_mgr {
- public Xowd_hive_mgr(Xow_wiki wiki, byte dir_tid) {
- this.wiki = wiki; fsys_mgr = wiki.Fsys_mgr(); this.dir_tid = dir_tid;
- dir_tid_reg = dir_tid == Xow_dir_info_.Tid_page ? Xow_dir_info_.Tid_ttl : dir_tid;
- } Xow_wiki wiki; Xow_fsys_mgr fsys_mgr; Xowd_regy_mgr reg_mgr; byte dir_tid;
+ public Xowd_hive_mgr(Xowe_wiki wiki, byte dir_tid) {
+ this.wiki = wiki; fsys_mgr = wiki.Tdb_fsys_mgr(); this.dir_tid = dir_tid;
+ dir_tid_reg = dir_tid == Xotdb_dir_info_.Tid_page ? Xotdb_dir_info_.Tid_ttl : dir_tid;
+ } Xowe_wiki wiki; Xotdb_fsys_mgr fsys_mgr; Xowd_regy_mgr reg_mgr; byte dir_tid;
byte dir_tid_reg;
public void Create(Xow_ns ns, byte[] key, byte[] data, gplx.lists.ComparerAble comparer) {
if (reg_mgr == null) reg_mgr = new Xowd_regy_mgr(fsys_mgr.Url_ns_reg(ns.Num_str(), dir_tid_reg));
@@ -71,7 +72,7 @@ public class Xowd_hive_mgr {
reg_mgr.Save();
}
public void Update(Xow_ns ns, byte[] old_key, byte[] new_key, byte[] data, int lkp_bgn, byte lkp_dlm, boolean exact, boolean sort) {
- if (reg_mgr == null) reg_mgr = new Xowd_regy_mgr(fsys_mgr.Url_ns_reg(ns.Num_str(), Xow_dir_info_.Tid_ttl));
+ if (reg_mgr == null) reg_mgr = new Xowd_regy_mgr(fsys_mgr.Url_ns_reg(ns.Num_str(), Xotdb_dir_info_.Tid_ttl));
int fil_idx = reg_mgr.Files_find(old_key);
boolean reg_save = false;
if (new_key != null)
diff --git a/400_xowa/src_121_wiki_data/gplx/xowa/Xowd_hive_mgr_tst.java b/400_xowa/src_121_wiki_data/gplx/xowa/Xowd_hive_mgr_tst.java
index b3bdca798..432b0905f 100644
--- a/400_xowa/src_121_wiki_data/gplx/xowa/Xowd_hive_mgr_tst.java
+++ b/400_xowa/src_121_wiki_data/gplx/xowa/Xowd_hive_mgr_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; import gplx.*;
-import org.junit.*;
+import org.junit.*; import gplx.xowa.tdbs.*;
public class Xowd_hive_mgr_tst {
Xowd_hive_mgr_fxt fxt = new Xowd_hive_mgr_fxt();
@Before public void init() {fxt.Clear();}
@@ -62,11 +62,11 @@ public class Xowd_hive_mgr_tst {
}
}
class Xowd_hive_mgr_fxt {
- Xoa_app app; Xow_wiki wiki; Xowd_hive_mgr mgr;
+ Xoae_app app; Xowe_wiki wiki; Xowd_hive_mgr mgr;
public void Clear() {
app = Xoa_app_fxt.app_();
wiki = Xoa_app_fxt.wiki_tst_(app);
- mgr = new Xowd_hive_mgr(wiki, Xow_dir_info_.Tid_page);
+ mgr = new Xowd_hive_mgr(wiki, Xotdb_dir_info_.Tid_page);
}
public Xowd_hive_mgr_fxt Tst_reg(String expd) {
Io_url file_orig = Io_url_.mem_fil_("mem/xowa/wiki/en.wikipedia.org/ns/000/title/reg.csv");
@@ -74,7 +74,7 @@ class Xowd_hive_mgr_fxt {
return this;
}
public Xowd_hive_mgr_fxt Tst_fil(int fil, String expd) {
- Io_url url = wiki.Fsys_mgr().Url_ns_fil(Xow_dir_info_.Tid_page, Xow_ns_.Id_main, fil);
+ Io_url url = wiki.Tdb_fsys_mgr().Url_ns_fil(Xotdb_dir_info_.Tid_page, Xow_ns_.Id_main, fil);
Tfds.Eq_str_lines(expd, Io_mgr._.LoadFilStr(url));
return this;
}
diff --git a/400_xowa/src_140_lang/gplx/xowa/Xol_kwd_grp.java b/400_xowa/src_140_lang/gplx/xowa/Xol_kwd_grp.java
index eef614b3b..389e4ed35 100644
--- a/400_xowa/src_140_lang/gplx/xowa/Xol_kwd_grp.java
+++ b/400_xowa/src_140_lang/gplx/xowa/Xol_kwd_grp.java
@@ -18,9 +18,9 @@ along with this program. If not, see .
package gplx.xowa; import gplx.*;
public class Xol_kwd_grp {// REF.MW: Messages_en.php; EX: 'redirect' => array( 0, '#REDIRECT' )
public Xol_kwd_grp(byte[] key) {this.key = key;}
- public byte[] Key() {return key;} private byte[] key;
+ public byte[] Key() {return key;} private final byte[] key;
public boolean Case_match() {return case_match;} private boolean case_match;
- public Xol_kwd_itm[] Itms() {return itms;} private Xol_kwd_itm[] itms;
+ public Xol_kwd_itm[] Itms() {return itms;} private Xol_kwd_itm[] itms = Xol_kwd_itm.Ary_empty;
public void Srl_load(boolean case_match, byte[][] words) {
this.case_match = case_match;
int words_len = words.length;
diff --git a/400_xowa/src_140_lang/gplx/xowa/Xol_kwd_itm.java b/400_xowa/src_140_lang/gplx/xowa/Xol_kwd_itm.java
index 7d11481ac..6ebe6c304 100644
--- a/400_xowa/src_140_lang/gplx/xowa/Xol_kwd_itm.java
+++ b/400_xowa/src_140_lang/gplx/xowa/Xol_kwd_itm.java
@@ -20,4 +20,5 @@ public class Xol_kwd_itm {// NOTE: keeping as separate class b/c may include fmt
public Xol_kwd_itm(byte[] val) {this.val = val;}
public byte[] Val() {return val;} private byte[] val;
public void Val_(byte[] v) {val = v;} // should only be called by lang
+ public static final Xol_kwd_itm[] Ary_empty = new Xol_kwd_itm[0];
}
diff --git a/400_xowa/src_140_lang/gplx/xowa/Xol_kwd_mgr.java b/400_xowa/src_140_lang/gplx/xowa/Xol_kwd_mgr.java
index 3d0a518cf..70a690786 100644
--- a/400_xowa/src_140_lang/gplx/xowa/Xol_kwd_mgr.java
+++ b/400_xowa/src_140_lang/gplx/xowa/Xol_kwd_mgr.java
@@ -20,6 +20,11 @@ import gplx.core.btries.*;
public class Xol_kwd_mgr implements GfoInvkAble {
public Xol_kwd_mgr(Xol_lang lang) {this.lang = lang;} private Xol_lang lang; Xol_kwd_grp[] grps = new Xol_kwd_grp[Xol_kwd_grp_.Id__max];
public int Len() {return grps.length;}
+ public void Clear() {
+ int len = grps.length;
+ for (int i = 0; i < len; ++i)
+ grps[i] = null;
+ }
public Btrie_slim_mgr Trie_raw() {if (trie_raw == null) trie_raw = Xol_kwd_mgr.trie_(this, Xol_kwd_grp_.Id_str_rawsuffix); return trie_raw;} private Btrie_slim_mgr trie_raw;
public Btrie_slim_mgr Trie_nosep() {if (trie_nosep == null) trie_nosep = Xol_kwd_mgr.trie_(this, Xol_kwd_grp_.Id_nocommafysuffix); return trie_nosep;} private Btrie_slim_mgr trie_nosep;
public void Kwd_default_match_reset() {kwd_default_init_needed = true;} // TEST:
diff --git a/400_xowa/src_140_lang/gplx/xowa/Xol_lang.java b/400_xowa/src_140_lang/gplx/xowa/Xol_lang.java
index 40b422828..cab3c8820 100644
--- a/400_xowa/src_140_lang/gplx/xowa/Xol_lang.java
+++ b/400_xowa/src_140_lang/gplx/xowa/Xol_lang.java
@@ -16,15 +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; import gplx.*;
-import gplx.xowa.apps.*; import gplx.xowa.langs.*; import gplx.intl.*; import gplx.xowa.xtns.lst.*; import gplx.xowa.wikis.caches.*;
+import gplx.xowa.apps.*; import gplx.xowa.apps.fsys.*; import gplx.xowa.langs.*; import gplx.intl.*; import gplx.xowa.xtns.lst.*; import gplx.xowa.wikis.caches.*;
import gplx.xowa.langs.cases.*; import gplx.xowa.langs.cnvs.*; import gplx.xowa.langs.grammars.*; import gplx.xowa.langs.plurals.*; import gplx.xowa.langs.vnts.*; import gplx.xowa.langs.numbers.*; import gplx.xowa.langs.durations.*;
import gplx.xowa.parsers.lnkis.*;
public class Xol_lang implements GfoInvkAble {
- public Xol_lang(Xoa_app app, byte[] key_bry) {
- this.app = app; this.key_bry = key_bry; this.key_str = String_.new_utf8_(key_bry);
+ private Xoa_lang_mgr lang_mgr;
+ public Xoa_lang_mgr Lang_mgr() {return lang_mgr;}
+ public Xol_lang(Xoa_lang_mgr lang_mgr, byte[] key_bry) {
+ this.key_bry = key_bry; this.key_str = String_.new_utf8_(key_bry);
Xol_lang_itm lang_itm = Xol_lang_itm_.Get_by_key(key_bry); if (lang_itm == null) throw Err_.new_fmt_("unknown lang_key: {0}", String_.new_utf8_(key_bry));
lang_id = lang_itm.Id();
- func_regy = new Xol_func_name_regy(this);
+ this.lang_mgr = lang_mgr;
+ func_regy = new Xol_func_name_regy(lang_mgr, this);
ns_names = new Xol_ns_grp(this); ns_aliases = new Xol_ns_grp(this);
keyword_mgr = new Xol_kwd_mgr(this);
message_mgr = new Xol_msg_mgr(this, true);
@@ -39,16 +42,15 @@ public class Xol_lang implements GfoInvkAble {
vnt_mgr = new Xol_vnt_mgr(this);
cnv_mgr = new Xol_cnv_mgr(this);
}
- public Xoa_app App() {return app;} private Xoa_app app;
- public byte[] Key_bry() {return key_bry;} private byte[] key_bry; public String Key_str() {return key_str;} private String key_str;
- public int Lang_id() {return lang_id;} private int lang_id;
+ public byte[] Key_bry() {return key_bry;} private final byte[] key_bry;
+ public String Key_str() {return key_str;} private final String key_str;
+ public int Lang_id() {return lang_id;} private final int lang_id;
public boolean Dir_ltr() {return dir_ltr;}
public void Dir_ltr_(boolean v) {
dir_ltr = v;
img_thumb_halign_default = dir_ltr ? Xop_lnki_align_h.Right : Xop_lnki_align_h.Left;
} private boolean dir_ltr = true;
- public byte[] Dir_bry() {return dir_ltr ? Dir_bry_ltr : Dir_bry_rtl;}
- public byte[] X_axis_end() {return dir_ltr ? X_axis_end_right : X_axis_end_left;}
+ public byte[] Dir_ltr_bry() {return dir_ltr ? Dir_bry_ltr : Dir_bry_rtl;}
public Xol_ns_grp Ns_names() {return ns_names;} private Xol_ns_grp ns_names;
public Xol_ns_grp Ns_aliases() {return ns_aliases;} private Xol_ns_grp ns_aliases;
public Xol_kwd_mgr Kwd_mgr() {return keyword_mgr;} private Xol_kwd_mgr keyword_mgr;
@@ -57,6 +59,7 @@ public class Xol_lang implements GfoInvkAble {
public void Case_mgr_utf8_() {case_mgr = Xol_case_mgr_.Utf8();} // TEST:
public Xol_font_info Gui_font() {return gui_font;} private Xol_font_info gui_font = new Xol_font_info(null, 0, gplx.gfui.FontStyleAdp_.Plain);
public byte[] Fallback_bry() {return fallback_bry;}
+ private byte[] X_axis_end() {return dir_ltr ? X_axis_end_right : X_axis_end_left;}
public Xol_lang Fallback_bry_(byte[] v) {
fallback_bry = v;
fallback_bry_ary = Fallbacy_bry_ary__bld(v);
@@ -71,7 +74,6 @@ public class Xol_lang implements GfoInvkAble {
public Xol_duration_mgr Duration_mgr() {return duration_mgr;} private Xol_duration_mgr duration_mgr;
public Xol_lnki_trail_mgr Lnki_trail_mgr() {return lnki_trail_mgr;} private Xol_lnki_trail_mgr lnki_trail_mgr;
public Xol_specials_mgr Specials_mgr() {return specials_mgr;} private Xol_specials_mgr specials_mgr;
-
public Xop_lnki_arg_parser Lnki_arg_parser() {return lnki_arg_parser;} private Xop_lnki_arg_parser lnki_arg_parser = new Xop_lnki_arg_parser();
public Xol_func_name_regy Func_regy() {return func_regy;} private Xol_func_name_regy func_regy;
public byte Img_thumb_halign_default() {return img_thumb_halign_default;} private byte img_thumb_halign_default = Xop_lnki_align_h.Right;
@@ -90,14 +92,14 @@ public class Xol_lang implements GfoInvkAble {
else if (ctx.Match(k, Invk_converts)) return cnv_mgr;
else if (ctx.Match(k, Invk_variants)) return vnt_mgr;
else if (ctx.Match(k, Invk_dir_rtl_)) Dir_ltr_(!m.ReadYn("v"));
- else if (ctx.Match(k, Invk_dir_str)) return Dir_bry();
+ else if (ctx.Match(k, Invk_dir_str)) return Dir_ltr_bry();
else if (ctx.Match(k, Invk_gui_font_)) gui_font.Name_(m.ReadStr("name")).Size_(m.ReadFloatOr("size", 8));
else if (ctx.Match(k, Invk_fallback_load)) Exec_fallback_load(m.ReadBry("v"));
else if (ctx.Match(k, Invk_numbers)) return num_mgr;
else if (ctx.Match(k, Invk_link_trail)) return lnki_trail_mgr;
else if (ctx.Match(k, Invk_x_axis_end)) return String_.new_utf8_(X_axis_end());
else if (ctx.Match(k, Invk_this)) return this;
- else if (ctx.Match(k, Xoa_app.Invk_app)) return app;
+ else if (ctx.Match(k, Xoae_app.Invk_app)) return Xoa_app_.Gfs_mgr().Root_invk();
else return GfoInvkAble_.Rv_unhandled;
return this;
}
@@ -111,7 +113,7 @@ public class Xol_lang implements GfoInvkAble {
public Xol_lang Init_by_load_assert() {if (!loaded) Init_by_load(); return this;}
public boolean Init_by_load() {
if (this.loaded) return false;
- app.Lang_mgr().Fallback_regy().Clear();
+ lang_mgr.Fallback_regy().Clear();
this.loaded = true;
boolean lang_is_en = lang_id == Xol_lang_itm_.Id_en;
if (!lang_is_en) Xol_lang_.Lang_init(this);
@@ -123,15 +125,16 @@ public class Xol_lang implements GfoInvkAble {
}
private void Exec_fallback_load(byte[] fallback_lang) {
Fallback_bry_(fallback_lang);
- if (app.Lang_mgr().Fallback_regy().Has(fallback_lang)) return; // fallback_lang loaded; avoid recursive loop; EX: zh with fallback of zh-hans which has fallback of zh
+ if (lang_mgr.Fallback_regy().Has(fallback_lang)) return; // fallback_lang loaded; avoid recursive loop; EX: zh with fallback of zh-hans which has fallback of zh
if (Bry_.Eq(fallback_lang, Xoa_lang_mgr.Fallback_false)) return; // fallback_lang is "none" exit
- app.Lang_mgr().Fallback_regy().Add(fallback_lang, fallback_lang);
+ lang_mgr.Fallback_regy().Add(fallback_lang, fallback_lang);
Load_lang(fallback_lang);
- app.Lang_mgr().Fallback_regy().Del(fallback_lang);
+ lang_mgr.Fallback_regy().Del(fallback_lang);
}
private void Load_lang(byte[] v) {
- app.Gfs_mgr().Run_url_for(this, Xol_lang_.xo_lang_fil_(app, String_.new_ascii_(v)));
- app.Gfs_mgr().Run_url_for(app, Xol_cnv_mgr.Bld_url(app, key_str));
+ Xoa_gfs_mgr gfs_mgr = Xoa_app_.Gfs_mgr(); Xoa_fsys_mgr app_fsys_mgr = gfs_mgr.App_fsys_mgr();
+ gfs_mgr.Run_url_for(this, Xol_lang_.xo_lang_fil_(app_fsys_mgr, String_.new_ascii_(v)));
+ gfs_mgr.Run_url_for(gfs_mgr.Root_invk(), Xol_cnv_mgr.Bld_url(app_fsys_mgr, key_str));
}
private static final byte[]
Dir_bry_ltr = Bry_.new_ascii_("ltr"), Dir_bry_rtl = Bry_.new_ascii_("rtl")
diff --git a/400_xowa/src_140_lang/gplx/xowa/Xol_lang_.java b/400_xowa/src_140_lang/gplx/xowa/Xol_lang_.java
index df71806ea..fb8ad77bd 100644
--- a/400_xowa/src_140_lang/gplx/xowa/Xol_lang_.java
+++ b/400_xowa/src_140_lang/gplx/xowa/Xol_lang_.java
@@ -17,8 +17,9 @@ along with this program. If not, see .
*/
package gplx.xowa; import gplx.*;
import gplx.intl.*; import gplx.xowa.xtns.cite.*; import gplx.xowa.xtns.gallery.*; import gplx.xowa.bldrs.langs.*; import gplx.xowa.langs.numbers.*;
+import gplx.xowa.apps.fsys.*;
public class Xol_lang_ {
- public static Io_url xo_lang_fil_(Xoa_app app, String lang_key) {return app.Fsys_mgr().Cfg_lang_core_dir().GenSubFil(lang_key + ".gfs");}
+ public static Io_url xo_lang_fil_(Xoa_fsys_mgr app_fsys_mgr, String lang_key) {return app_fsys_mgr.Cfg_lang_core_dir().GenSubFil(lang_key + ".gfs");}
public static final byte Char_tid_ltr_l = 0, Char_tid_ltr_u = 1, Char_tid_num = 2, Char_tid_ws = 3, Char_tid_sym = 4, Char_tid_misc = 5;
public static byte Char_tid(byte b) {
switch (b) {
diff --git a/400_xowa/src_140_lang/gplx/xowa/Xol_lang_srl_tst.java b/400_xowa/src_140_lang/gplx/xowa/Xol_lang_srl_tst.java
index 941c125c7..c301b3248 100644
--- a/400_xowa/src_140_lang/gplx/xowa/Xol_lang_srl_tst.java
+++ b/400_xowa/src_140_lang/gplx/xowa/Xol_lang_srl_tst.java
@@ -112,7 +112,7 @@ public class Xol_lang_srl_tst {
fxt.Run_save_msg_mgr(msg_mgr, Xol_lang.Invk_messages, raw);
}
@Test public void Fallback() {
- Io_mgr._.SaveFilStr(Xol_lang_.xo_lang_fil_(fxt.App(), "zh-hans"), String_.Concat_lines_nl
+ Io_mgr._.SaveFilStr(Xol_lang_.xo_lang_fil_(fxt.App().Fsys_mgr(), "zh-hans"), String_.Concat_lines_nl
( "this"
, ".keywords"
, " .load_text("
@@ -162,9 +162,9 @@ public class Xol_lang_srl_tst {
fxt.Tst_messages(fxt.Lang().Msg_mgr(), fxt.msg_("sunday", "sunday1"), fxt.msg_("monday", "monday1"));
}
@Test public void Fallback_circular() { // PURPOSE: pt and pt-br cite each other as fallback in Messages*.php; DATE:2013-02-18
- Io_mgr._.SaveFilStr(Xol_lang_.xo_lang_fil_(fxt.App(), "pt") , "fallback_load('pt-br');");
- Io_mgr._.SaveFilStr(Xol_lang_.xo_lang_fil_(fxt.App(), "pt-br") , "fallback_load('pt');");
- Xol_lang lang = new Xol_lang(fxt.App(), Bry_.new_ascii_("pt"));
+ Io_mgr._.SaveFilStr(Xol_lang_.xo_lang_fil_(fxt.App().Fsys_mgr(), "pt") , "fallback_load('pt-br');");
+ Io_mgr._.SaveFilStr(Xol_lang_.xo_lang_fil_(fxt.App().Fsys_mgr(), "pt-br") , "fallback_load('pt');");
+ Xol_lang lang = new Xol_lang(fxt.App().Lang_mgr(), Bry_.new_ascii_("pt"));
lang.Init_by_load();
}
@Test public void Num_fmt() {
@@ -200,10 +200,10 @@ public class Xol_lang_srl_tst {
class Xol_lang_srl_fxt {
public void Clear() {
app = Xoa_app_fxt.app_();
- lang = new Xol_lang(app, Bry_.new_utf8_("fr"));
+ lang = new Xol_lang(app.Lang_mgr(), Bry_.new_utf8_("fr"));
Xoa_gfs_mgr.Msg_parser_init(); // required by fallback_load
} GfsCtx ctx = GfsCtx.new_(); Gfs_bldr bldr = new Gfs_bldr(); //Bry_bfr tmp_bfr = Bry_bfr.reset_(255);
- public Xoa_app App() {return app;} private Xoa_app app;
+ public Xoae_app App() {return app;} private Xoae_app app;
public Xol_lang Lang() {return lang;} private Xol_lang lang;
public Xow_ns ns_(int id, String s) {return new Xow_ns(id, Xow_ns_case_.Id_1st, Bry_.new_utf8_(s), false);}
public Xol_specials_itm special_(String key, String... words) {return new Xol_specials_itm(Bry_.new_utf8_(key), Bry_.Ary(words));}
diff --git a/400_xowa/src_140_lang/gplx/xowa/Xol_lnki_trail_mgr_tst.java b/400_xowa/src_140_lang/gplx/xowa/Xol_lnki_trail_mgr_tst.java
index 6c1cb4b76..1e7a70c15 100644
--- a/400_xowa/src_140_lang/gplx/xowa/Xol_lnki_trail_mgr_tst.java
+++ b/400_xowa/src_140_lang/gplx/xowa/Xol_lnki_trail_mgr_tst.java
@@ -24,11 +24,12 @@ public class Xol_lnki_trail_mgr_tst {
}
}
class Xol_lnki_trail_mgr_fxt {
+ Xol_lang lang; Xol_lnki_trail_mgr lnki_trail_mgr;
public void Clear() {
- app = Xoa_app_fxt.app_();
- lang = new Xol_lang(app, Bry_.new_utf8_("fr"));
+ Xoae_app app = Xoa_app_fxt.app_();
+ lang = new Xol_lang(app.Lang_mgr(), Bry_.new_utf8_("fr"));
lnki_trail_mgr = lang.Lnki_trail_mgr();
- } private Xoa_app app; Xol_lang lang; Xol_lnki_trail_mgr lnki_trail_mgr;
+ }
public void Test_add_bulk(String raw, String... expd_ary) {
lnki_trail_mgr.Add_bulk(Bry_.new_utf8_(raw));
int expd_len = expd_ary.length;
diff --git a/400_xowa/src_140_lang/gplx/xowa/Xol_msg_mgr.java b/400_xowa/src_140_lang/gplx/xowa/Xol_msg_mgr.java
index 7d0001638..5f13bc7df 100644
--- a/400_xowa/src_140_lang/gplx/xowa/Xol_msg_mgr.java
+++ b/400_xowa/src_140_lang/gplx/xowa/Xol_msg_mgr.java
@@ -17,10 +17,11 @@ along with this program. If not, see .
*/
package gplx.xowa; import gplx.*;
public class Xol_msg_mgr implements GfoInvkAble {
+ private final GfoInvkAble owner; private final boolean owner_is_lang;
public Xol_msg_mgr(GfoInvkAble owner, boolean owner_is_lang) {
this.owner = owner; this.owner_is_lang = owner_is_lang;
this.Clear();
- } GfoInvkAble owner; boolean owner_is_lang;
+ }
public void Clear() {
if (owner_is_lang)
itms = Ary_new();
@@ -59,7 +60,7 @@ public class Xol_msg_mgr implements GfoInvkAble {
Xol_msg_itm itm = Itm_by_id_or_null(id);
return itm == null ? null : itm.Val();
}
- public byte[] Val_by_id(Xow_wiki wiki, int id) { // NOTE: Val_by_id needs to exist on lang (not wiki_msg_mgr); {{#time}} can pass in lang, and will need to call lang's msg_mgr directly
+ public byte[] Val_by_id(Xowe_wiki wiki, int id) { // NOTE: Val_by_id needs to exist on lang (not wiki_msg_mgr); {{#time}} can pass in lang, and will need to call lang's msg_mgr directly
Xol_msg_itm itm = Itm_by_id_or_null(id);
if (itm == null) return null;
byte[] rv = itm.Val();
diff --git a/400_xowa/src_140_lang/gplx/xowa/Xol_msg_mgr_tst.java b/400_xowa/src_140_lang/gplx/xowa/Xol_msg_mgr_tst.java
index 87e49a7a3..e317262c1 100644
--- a/400_xowa/src_140_lang/gplx/xowa/Xol_msg_mgr_tst.java
+++ b/400_xowa/src_140_lang/gplx/xowa/Xol_msg_mgr_tst.java
@@ -41,7 +41,7 @@ class Xol_msg_mgr_fxt {
mgr.Clear();
wiki.Lang().Msg_mgr().Clear();
return this;
- } private Xoa_app app; Xow_wiki wiki; Xow_msg_mgr mgr;
+ } private Xoae_app app; Xowe_wiki wiki; Xow_msg_mgr mgr;
public void Test_val_by_key(String val, String expd) {
Xol_msg_itm itm = wiki.Lang().Msg_mgr().Itm_by_key_or_new(Bry_.new_ascii_("test"));
itm.Atrs_set(Bry_.new_ascii_(val), false, true);
diff --git a/400_xowa/src_160_file/gplx/xowa/Xoa_repo_mgr.java b/400_xowa/src_160_file/gplx/xowa/Xoa_repo_mgr.java
index 9bfe296fd..a32529d60 100644
--- a/400_xowa/src_160_file/gplx/xowa/Xoa_repo_mgr.java
+++ b/400_xowa/src_160_file/gplx/xowa/Xoa_repo_mgr.java
@@ -16,13 +16,14 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa; import gplx.*;
+import gplx.xowa.apps.fsys.*; import gplx.xowa.files.exts.*; import gplx.xowa.files.repos.*;
public class Xoa_repo_mgr implements GfoInvkAble {
- public Xoa_repo_mgr(Xoa_app app) {this.app = app;}
- public Xoa_app App() {return app;} private Xoa_app app;
+ private final Xoa_fsys_mgr app_fsys; private final Xof_rule_mgr ext_rule_mgr;
+ public Xoa_repo_mgr(Xoa_fsys_mgr app_fsys, Xof_rule_mgr ext_rule_mgr) {this.app_fsys = app_fsys; this.ext_rule_mgr = ext_rule_mgr;}
public int Count() {return hash.Count();}
public Xof_repo_itm Get_at(int i) {return (Xof_repo_itm)hash.FetchAt(i);}
public Xof_repo_itm Get_by(byte[] key) {return (Xof_repo_itm)hash.Fetch(key);}
- public Xof_repo_itm Get_primary(byte[] key) {
+ public Xof_repo_itm Get_by_primary(byte[] key) {
int len = hash.Count();
for (int i = 0; i < len; i++) {
Xof_repo_itm repo = (Xof_repo_itm)hash.FetchAt(i);
@@ -30,7 +31,7 @@ public class Xoa_repo_mgr implements GfoInvkAble {
}
return null;
}
- public Xof_repo_itm Get_by_wmf(byte[] key) {
+ public Xof_repo_itm Get_by_wmf_fsys(byte[] key) {
int len = hash.Count();
for (int i = 0; i < len; i++) {
Xof_repo_itm repo = (Xof_repo_itm)hash.FetchAt(i);
@@ -55,7 +56,7 @@ public class Xoa_repo_mgr implements GfoInvkAble {
byte[] key_bry = Bry_.new_utf8_(key);
Xof_repo_itm itm = (Xof_repo_itm)hash.Fetch(key_bry);
if (itm == null) {
- itm = new Xof_repo_itm(this, key_bry);
+ itm = new Xof_repo_itm(key_bry, app_fsys, ext_rule_mgr);
this.Add(itm);
}
itm.Root_str_(url_str).Wiki_key_(Bry_.new_utf8_(wiki));
diff --git a/400_xowa/src_160_file/gplx/xowa/Xof_download_wkr.java b/400_xowa/src_160_file/gplx/xowa/Xof_download_wkr.java
index 29bcebda2..5af0a8c95 100644
--- a/400_xowa/src_160_file/gplx/xowa/Xof_download_wkr.java
+++ b/400_xowa/src_160_file/gplx/xowa/Xof_download_wkr.java
@@ -33,25 +33,3 @@ class Xof_download_wkr_test implements Xof_download_wkr {
return IoEngine_xrg_downloadFil.Rslt_pass;
}
}
-class Xof_download_wkr_io implements Xof_download_wkr {
- IoEngine_xrg_downloadFil xrg = Io_mgr._.DownloadFil_args("", Io_url_.Null);
- public Xof_download_wkr_io(Xoa_app app) {}
- public IoEngine_xrg_downloadFil Download_xrg() {return xrg;}
- public String Download_err() {return download_err;} private String download_err = "";
- public byte Download(boolean src_is_web, String src_str, Io_url trg_url, String prog_fmt_hdr) {
- download_err = "";
- if (src_is_web) {
- xrg.Prog_fmt_hdr_(prog_fmt_hdr);
- xrg.Init(src_str, trg_url);
- xrg.Exec();
- return xrg.Rslt();
- }
- else {
- Io_url src_url = Io_url_.new_fil_(src_str);
- if (!Io_mgr._.ExistsFil(src_url)) return IoEngine_xrg_downloadFil.Rslt_fail_file_not_found;
- try {Io_mgr._.CopyFil(src_url, trg_url, true);}
- catch (Exception exc) {Err_.Noop(exc); return IoEngine_xrg_downloadFil.Rslt_fail_unknown;}
- return IoEngine_xrg_downloadFil.Rslt_pass;
- }
- }
-}
diff --git a/400_xowa/src_160_file/gplx/xowa/Xof_download_wkr_io.java b/400_xowa/src_160_file/gplx/xowa/Xof_download_wkr_io.java
new file mode 100644
index 000000000..c34f44eb3
--- /dev/null
+++ b/400_xowa/src_160_file/gplx/xowa/Xof_download_wkr_io.java
@@ -0,0 +1,40 @@
+/*
+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; import gplx.*;
+import gplx.ios.*;
+public class Xof_download_wkr_io implements Xof_download_wkr {
+ IoEngine_xrg_downloadFil xrg = Io_mgr._.DownloadFil_args("", Io_url_.Null);
+ public IoEngine_xrg_downloadFil Download_xrg() {return xrg;}
+ public String Download_err() {return download_err;} private String download_err = "";
+ public byte Download(boolean src_is_web, String src_str, Io_url trg_url, String prog_fmt_hdr) {
+ download_err = "";
+ if (src_is_web) {
+ xrg.Prog_fmt_hdr_(prog_fmt_hdr);
+ xrg.Init(src_str, trg_url);
+ xrg.Exec();
+ return xrg.Rslt();
+ }
+ else {
+ Io_url src_url = Io_url_.new_fil_(src_str);
+ if (!Io_mgr._.ExistsFil(src_url)) return IoEngine_xrg_downloadFil.Rslt_fail_file_not_found;
+ try {Io_mgr._.CopyFil(src_url, trg_url, true);}
+ catch (Exception exc) {Err_.Noop(exc); return IoEngine_xrg_downloadFil.Rslt_fail_unknown;}
+ return IoEngine_xrg_downloadFil.Rslt_pass;
+ }
+ }
+}
diff --git a/400_xowa/src_160_file/gplx/xowa/Xof_file_mgr.java b/400_xowa/src_160_file/gplx/xowa/Xof_file_mgr.java
index fce4f0ac2..dd9f33a71 100644
--- a/400_xowa/src_160_file/gplx/xowa/Xof_file_mgr.java
+++ b/400_xowa/src_160_file/gplx/xowa/Xof_file_mgr.java
@@ -16,35 +16,35 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa; import gplx.*;
-import gplx.xowa.xtns.math.*;
-import gplx.xowa.files.fsdb.caches.*;
-import gplx.dbs.*; import gplx.xowa2.files.commons.*;
+import gplx.dbs.*; import gplx.xowa2.files.commons.*; import gplx.xowa.xtns.math.*;
+import gplx.xowa.wmfs.*; import gplx.xowa.files.exts.*; import gplx.xowa.files.caches.*; import gplx.xowa.files.imgs.*;
public class Xof_file_mgr implements GfoInvkAble {
- public void Init_app(Xoa_app app, Gfo_usr_dlg usr_dlg) {
- this.app = app;
- img_mgr.Init_app(app); repo_mgr = new Xoa_repo_mgr(app);
- math_mgr = new Xof_math_mgr(app);
- math_mgr.Init(app);
- download_mgr = new Xoaf_download_mgr(app);
- cache_mgr = new Cache_mgr(app);
+ public Xoa_repo_mgr Repo_mgr() {return repo_mgr;} private Xoa_repo_mgr repo_mgr;
+ public Xof_img_mgr Img_mgr() {return img_mgr;} private final Xof_img_mgr img_mgr = new Xof_img_mgr();
+ public Xof_cache_mgr Cache_mgr() {return cache_mgr;} private Xof_cache_mgr cache_mgr;
+ public Xof_math_mgr Math_mgr() {return math_mgr;} private final Xof_math_mgr math_mgr = new Xof_math_mgr();
+ public Xof_rule_mgr Ext_rules() {return ext_rules;} private final Xof_rule_mgr ext_rules = new Xof_rule_mgr();
+ public Xoa_wmf_mgr Wmf_mgr() {return wmf_mgr;} private Xoa_wmf_mgr wmf_mgr;
+ public void Ctor_by_app(Xoae_app app) {
+ Gfo_usr_dlg usr_dlg = app.Usr_dlg();
+ this.cache_mgr = new Xof_cache_mgr(usr_dlg, app.Wiki_mgr(), repo_mgr);
+ this.repo_mgr = new Xoa_repo_mgr(app.Fsys_mgr(), ext_rules);
+ this.wmf_mgr = new Xoa_wmf_mgr(usr_dlg, app.Wiki_mgr());
+ img_mgr.Init_by_app(app.Wmf_mgr(), app.Prog_mgr());
+ math_mgr.Init_by_app(app);
}
- public Xoa_app App() {return app;} private Xoa_app app;
- public Xoa_repo_mgr Repo_mgr() {return repo_mgr;} private Xoa_repo_mgr repo_mgr;
- public Xof_img_mgr Img_mgr() {return img_mgr;} private Xof_img_mgr img_mgr = new Xof_img_mgr();
- public Xof_math_mgr Math_mgr() {return math_mgr;} private Xof_math_mgr math_mgr;
- public Xoft_rule_mgr Ext_rules() {return ext_rules;} private Xoft_rule_mgr ext_rules = new Xoft_rule_mgr();
- public Xoaf_download_mgr Download_mgr() {return download_mgr;} private Xoaf_download_mgr download_mgr;
- public Cache_mgr Cache_mgr() {return cache_mgr;} private Cache_mgr cache_mgr;
- public void Init_by_app() {
- if (!Env_.Mode_testing())
- cache_mgr.Db_init(app.User().Db_mgr());
+ public void Init_by_app(Xoae_app app) {
+ Io_url db_url = app.User().Fsys_mgr().Root_dir().OwnerDir().GenSubFil_ary("xowa.user.", app.User().Key_str(), ".sqlite3");
+ Db_conn_bldr_data conn_data = Db_conn_bldr.I.Get_or_new("xowa.user_db", db_url);
+ boolean version_is_1 = Bool_.Y;
+ cache_mgr.Init_for_db(conn_data.Conn(), conn_data.Created(), version_is_1);
}
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
if (ctx.Match(k, Invk_repos)) return repo_mgr;
else if (ctx.Match(k, Invk_img_mgr)) return img_mgr;
else if (ctx.Match(k, Invk_ext_rules)) return ext_rules;
else if (ctx.Match(k, Invk_math)) return math_mgr;
- else if (ctx.Match(k, Invk_download)) return download_mgr;
+ else if (ctx.Match(k, Invk_download)) return wmf_mgr; // NOTE: do not rename "download" to wmf_mgr
else if (ctx.Match(k, Invk_cache_mgr)) return cache_mgr;
else return GfoInvkAble_.Rv_unhandled;
} private static final String Invk_repos = "repos", Invk_img_mgr= "img_mgr", Invk_ext_rules = "ext_rules", Invk_math = "math", Invk_download = "download", Invk_cache_mgr = "cache_mgr";
diff --git a/400_xowa/src_160_file/gplx/xowa/Xofw_wiki_finder.java b/400_xowa/src_160_file/gplx/xowa/Xofw_wiki_finder.java
index 2e6e05fb4..c7a40b5d0 100644
--- a/400_xowa/src_160_file/gplx/xowa/Xofw_wiki_finder.java
+++ b/400_xowa/src_160_file/gplx/xowa/Xofw_wiki_finder.java
@@ -16,60 +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; import gplx.*;
-import gplx.xowa.wikis.*; import gplx.xowa.files.*;
+import gplx.xowa.wikis.*; import gplx.xowa.files.*; import gplx.xowa.files.repos.*;
public interface Xofw_wiki_finder {
void Find(ListAdp repo_pairs, Xof_xfer_itm file);
boolean Locate(Xofw_file_finder_rslt rv, ListAdp repo_pairs, byte[] ttl_bry);
}
-class Xofw_wiki_wkr_base implements Xofw_wiki_finder {
- public Xofw_wiki_wkr_base(Xow_wiki wiki, Xoa_wiki_mgr wiki_mgr) {this.wiki = wiki; this.wiki_mgr = wiki_mgr;} private Xow_wiki wiki; Xoa_wiki_mgr wiki_mgr;
- public void Find(ListAdp repo_pairs, Xof_xfer_itm file) {
- byte[] ttl_bry = file.Lnki_ttl();
- int repo_pairs_len = repo_pairs.Count();
- for (int i = 0; i < repo_pairs_len; i++) {
- Xof_repo_pair repo_pair = (Xof_repo_pair)repo_pairs.FetchAt(i);
- byte[] wiki_key = repo_pair.Src().Wiki_key();
- if (repo_pair.Src().Wmf_api()) continue;
- Xow_wiki repo_wiki = wiki_mgr.Get_by_key_or_null(wiki_key);
- if (repo_wiki == null) {continue;}
- Xoa_ttl ttl = Xoa_ttl.parse_(repo_wiki, ttl_bry);
- Xow_ns file_ns = repo_wiki.Ns_mgr().Ns_file();
- boolean found = repo_wiki.Db_mgr().Load_mgr().Load_by_ttl(tmp_db_page, file_ns, ttl.Page_db());
- if (!found) {continue;}
- byte[] redirect = Get_redirect(repo_wiki, file_ns, tmp_db_page);
- file.Set__ttl(ttl.Page_txt(), redirect);
- file.Trg_repo_idx_(i);
- return;
- }
- file.Trg_repo_idx_(-1);
- }
- public boolean Locate(Xofw_file_finder_rslt rv, ListAdp repo_pairs, byte[] ttl_bry) {
- Xoa_ttl ttl = Xoa_ttl.parse_(wiki, ttl_bry); // NOTE: parse_(ttl_bry) should be the same across all wikis; i.e.: there should be no aliases/namespaces
- Xow_ns file_ns = wiki.Ns_mgr().Ns_file(); // NOTE: file_ns should also be the same across all wikis; being used for data_mgr.Parse below
- byte[] ttl_db_key = ttl.Page_db();
- rv.Init(ttl_db_key);
- int repo_pairs_len = repo_pairs.Count();
- for (int i = 0; i < repo_pairs_len; i++) {
- Xof_repo_pair repo_pair = (Xof_repo_pair)repo_pairs.FetchAt(i);
- byte[] src_wiki_key = repo_pair.Src().Wiki_key();
- Xow_wiki src_wiki = wiki_mgr.Get_by_key_or_null(src_wiki_key);
- if (src_wiki == null) continue; // src_wiki defined as repo_pair in cfg, but it has not been downloaded; continue; EX: commons set up but not downloaded
- boolean found = src_wiki.Db_mgr().Load_mgr().Load_by_ttl(tmp_db_page, file_ns, ttl_db_key);
- if (!found) continue; // ttl does not exist in src_wiki; continue; EX: file does not exist in commons, but exists in en_wiki
- byte[] redirect = Get_redirect(src_wiki, file_ns, tmp_db_page);
- rv.Done(i, src_wiki_key, redirect);
- return true;
- }
- return false;
- } static final Xodb_page tmp_db_page = Xodb_page.tmp_();
- byte[] Get_redirect(Xow_wiki wiki, Xow_ns file_ns, Xodb_page db_page) {
- if (db_page.Type_redirect()) {
- wiki.Db_mgr().Load_mgr().Load_page(db_page, file_ns, false);
- byte[] src = db_page.Text();
- Xoa_ttl redirect_ttl = wiki.Redirect_mgr().Extract_redirect(src, src.length);
- return redirect_ttl == Xop_redirect_mgr.Redirect_null_ttl ? Xop_redirect_mgr.Redirect_null_bry : redirect_ttl.Page_db();
- }
- else
- return Xop_redirect_mgr.Redirect_null_bry;
- }
-}
diff --git a/400_xowa/src_160_file/gplx/xowa/Xofw_wiki_wkr_base.java b/400_xowa/src_160_file/gplx/xowa/Xofw_wiki_wkr_base.java
new file mode 100644
index 000000000..14e087e8b
--- /dev/null
+++ b/400_xowa/src_160_file/gplx/xowa/Xofw_wiki_wkr_base.java
@@ -0,0 +1,71 @@
+/*
+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; import gplx.*;
+import gplx.xowa.wikis.*; import gplx.xowa.files.*; import gplx.xowa.files.repos.*;
+public class Xofw_wiki_wkr_base implements Xofw_wiki_finder {
+ public Xofw_wiki_wkr_base(Xowe_wiki wiki, Xoa_wiki_mgr wiki_mgr) {this.wiki = wiki; this.wiki_mgr = wiki_mgr;} private Xowe_wiki wiki; Xoa_wiki_mgr wiki_mgr;
+ public void Find(ListAdp repo_pairs, Xof_xfer_itm file) {
+ byte[] ttl_bry = file.Lnki_ttl();
+ int repo_pairs_len = repo_pairs.Count();
+ for (int i = 0; i < repo_pairs_len; i++) {
+ Xof_repo_pair repo_pair = (Xof_repo_pair)repo_pairs.FetchAt(i);
+ byte[] wiki_key = repo_pair.Src().Wiki_key();
+ if (repo_pair.Src().Wmf_api()) continue;
+ Xowe_wiki repo_wiki = wiki_mgr.Get_by_key_or_null(wiki_key);
+ if (repo_wiki == null) {continue;}
+ Xoa_ttl ttl = Xoa_ttl.parse_(repo_wiki, ttl_bry);
+ Xow_ns file_ns = repo_wiki.Ns_mgr().Ns_file();
+ boolean found = repo_wiki.Db_mgr().Load_mgr().Load_by_ttl(tmp_db_page, file_ns, ttl.Page_db());
+ if (!found) {continue;}
+ byte[] redirect = Get_redirect(repo_wiki, file_ns, tmp_db_page);
+ file.Set__ttl(ttl.Page_txt(), redirect);
+ file.Trg_repo_idx_(i);
+ return;
+ }
+ file.Trg_repo_idx_(-1);
+ }
+ public boolean Locate(Xofw_file_finder_rslt rv, ListAdp repo_pairs, byte[] ttl_bry) {
+ Xoa_ttl ttl = Xoa_ttl.parse_(wiki, ttl_bry); // NOTE: parse_(ttl_bry) should be the same across all wikis; i.e.: there should be no aliases/namespaces
+ Xow_ns file_ns = wiki.Ns_mgr().Ns_file(); // NOTE: file_ns should also be the same across all wikis; being used for data_mgr.Parse below
+ byte[] ttl_db_key = ttl.Page_db();
+ rv.Init(ttl_db_key);
+ int repo_pairs_len = repo_pairs.Count();
+ for (int i = 0; i < repo_pairs_len; i++) {
+ Xof_repo_pair repo_pair = (Xof_repo_pair)repo_pairs.FetchAt(i);
+ byte[] src_wiki_key = repo_pair.Src().Wiki_key();
+ Xowe_wiki src_wiki = wiki_mgr.Get_by_key_or_null(src_wiki_key);
+ if (src_wiki == null) continue; // src_wiki defined as repo_pair in cfg, but it has not been downloaded; continue; EX: commons set up but not downloaded
+ boolean found = src_wiki.Db_mgr().Load_mgr().Load_by_ttl(tmp_db_page, file_ns, ttl_db_key);
+ if (!found) continue; // ttl does not exist in src_wiki; continue; EX: file does not exist in commons, but exists in en_wiki
+ byte[] redirect = Get_redirect(src_wiki, file_ns, tmp_db_page);
+ rv.Done(i, src_wiki_key, redirect);
+ return true;
+ }
+ return false;
+ } static final Xodb_page tmp_db_page = Xodb_page.tmp_();
+ byte[] Get_redirect(Xowe_wiki wiki, Xow_ns file_ns, Xodb_page db_page) {
+ if (db_page.Type_redirect()) {
+ wiki.Db_mgr().Load_mgr().Load_page(db_page, file_ns, false);
+ byte[] src = db_page.Text();
+ Xoa_ttl redirect_ttl = wiki.Redirect_mgr().Extract_redirect(src, src.length);
+ return redirect_ttl == Xop_redirect_mgr.Redirect_null_ttl ? Xop_redirect_mgr.Redirect_null_bry : redirect_ttl.Page_db();
+ }
+ else
+ return Xop_redirect_mgr.Redirect_null_bry;
+ }
+}
diff --git a/400_xowa/src_160_file/gplx/xowa/Xoo_mgr.java b/400_xowa/src_160_file/gplx/xowa/Xoo_mgr.java
index 455c3f670..ec7c28c2d 100644
--- a/400_xowa/src_160_file/gplx/xowa/Xoo_mgr.java
+++ b/400_xowa/src_160_file/gplx/xowa/Xoo_mgr.java
@@ -17,7 +17,7 @@ along with this program. If not, see .
*/
package gplx.xowa; import gplx.*;
class Xoo_mgr implements GfoInvkAble {
- public Xoo_mgr(Xoa_app app) {this.app = app;} private Xoa_app app;
+ public Xoo_mgr(Xoae_app app) {this.app = app;} private Xoae_app app;
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
if (ctx.Match(k, Invk_owner)) return app;
else return GfoInvkAble_.Rv_unhandled;
diff --git a/400_xowa/src_161_meta/gplx/xowa/Xof_meta_itm.java b/400_xowa/src_161_meta/gplx/xowa/Xof_meta_itm.java
index 676339490..aa9bbc755 100644
--- a/400_xowa/src_161_meta/gplx/xowa/Xof_meta_itm.java
+++ b/400_xowa/src_161_meta/gplx/xowa/Xof_meta_itm.java
@@ -17,7 +17,7 @@ along with this program. If not, see .
*/
package gplx.xowa; import gplx.*;
import gplx.core.flds.*;
-import gplx.xowa.files.*;
+import gplx.xowa.files.*; import gplx.xowa.files.repos.*;
public class Xof_meta_itm {
public Xof_meta_itm(Xof_meta_fil owner_fil, byte[] ttl) {this.owner_fil = owner_fil; this.ttl = ttl;}
public Xof_meta_fil Owner_fil() {return owner_fil;} private Xof_meta_fil owner_fil;
@@ -32,11 +32,11 @@ public class Xof_meta_itm {
Dirty();
// }
}
- public Xof_repo_itm Repo_itm(Xow_wiki wiki) {
+ public Xof_repo_itm Repo_itm(Xowe_wiki wiki) {
switch (vrtl_repo) {
case Xof_meta_itm.Repo_missing : //return null; // DELETE: used to return null, but this caused Redownload_missing to fail; no reason why missing shouldn't return a default repo; DATE:2013-01-26
case Xof_meta_itm.Repo_unknown :
- case Xof_meta_itm.Repo_same : return wiki.App().File_mgr().Repo_mgr().Get_primary(wiki.Domain_bry());
+ case Xof_meta_itm.Repo_same : return wiki.Appe().File_mgr().Repo_mgr().Get_by_primary(wiki.Domain_bry());
default : return wiki.File_mgr().Repo_mgr().Repos_get_at(vrtl_repo).Trg();
}
}
diff --git a/400_xowa/src_161_meta/gplx/xowa/Xof_meta_mgr.java b/400_xowa/src_161_meta/gplx/xowa/Xof_meta_mgr.java
index e2055854b..4de722d6a 100644
--- a/400_xowa/src_161_meta/gplx/xowa/Xof_meta_mgr.java
+++ b/400_xowa/src_161_meta/gplx/xowa/Xof_meta_mgr.java
@@ -19,8 +19,8 @@ package gplx.xowa; import gplx.*;
import gplx.core.flds.*;
public class Xof_meta_mgr implements GfoInvkAble {
Object[] root = new Object[16]; OrderedHash dirty_fils = OrderedHash_.new_bry_();
- public Xof_meta_mgr(Xow_wiki wiki) {this.wiki = wiki; this.root_dir = wiki.App().Fsys_mgr().File_dir().GenSubDir_nest("#meta", wiki.Domain_str());}
- public Xow_wiki Wiki() {return wiki;} private Xow_wiki wiki;
+ public Xof_meta_mgr(Xowe_wiki wiki) {this.wiki = wiki; this.root_dir = wiki.Appe().Fsys_mgr().File_dir().GenSubDir_nest("#meta", wiki.Domain_str());}
+ public Xowe_wiki Wiki() {return wiki;} private Xowe_wiki wiki;
public Io_url Root_dir() {return root_dir;} Io_url root_dir;
public int Depth() {return depth;} public Xof_meta_mgr Depth_(int v) {depth = v; return this;} private int depth = 3; // allows a full english wikipedia to have meta files of approximately 32 kb; otherwise would be 480 kb; most wikis will not get to this size, but worst case is wasting 16 kb in (16 * 16) files which is less than 4 mb
public boolean Append_only() {return append_only;} public Xof_meta_mgr Append_only_(boolean v) {append_only = v; return this;} private boolean append_only;
diff --git a/400_xowa/src_161_meta/gplx/xowa/Xof_meta_mgr_tst.java b/400_xowa/src_161_meta/gplx/xowa/Xof_meta_mgr_tst.java
index ff95000ec..a12a30769 100644
--- a/400_xowa/src_161_meta/gplx/xowa/Xof_meta_mgr_tst.java
+++ b/400_xowa/src_161_meta/gplx/xowa/Xof_meta_mgr_tst.java
@@ -62,8 +62,8 @@ class Xof_file_regy_fxt {
byte[] md5_(byte[] name) {return Xof_xfer_itm_.Md5_(name);}
public void Ini() {
Io_mgr._.InitEngine_mem();
- Xoa_app app = Xoa_app_fxt.app_();
- Xow_wiki wiki = Xoa_app_fxt.wiki_tst_(app);
+ Xoae_app app = Xoa_app_fxt.app_();
+ Xowe_wiki wiki = Xoa_app_fxt.wiki_tst_(app);
regy_mgr = new Xof_meta_mgr(wiki);
regy_mgr.Clear();
regy_mgr.Depth_(2);
diff --git a/400_xowa/src_162_xfer/gplx/xowa/Xof_img_wkr_api_size_base.java b/400_xowa/src_162_xfer/gplx/xowa/Xof_img_wkr_api_size_base.java
deleted file mode 100644
index e3f0817a7..000000000
--- a/400_xowa/src_162_xfer/gplx/xowa/Xof_img_wkr_api_size_base.java
+++ /dev/null
@@ -1,33 +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; import gplx.*;
-import gplx.ios.*;
-public abstract class Xof_img_wkr_api_size_base {
- public boolean Api_query_size(Xof_img_wkr_api_size_base_rslts rv, Xow_wiki wiki, byte[] ttl, int width, int height) {
- Gfo_usr_dlg usr_dlg = wiki.App().Usr_dlg();
- Xow_repo_mgr repo_mgr = wiki.File_mgr().Repo_mgr();
- int len = repo_mgr.Repos_len();
- for (int i = 0; i < len; i++) {
- Xof_repo_pair repo_pair = repo_mgr.Repos_get_at(i);
- if (Api_query_size_exec(rv, wiki, ttl, width, height, usr_dlg, repo_pair.Wiki_key())) return true;
- }
- usr_dlg.Warn_many(Xof_img_wkr_api_size_base_wmf.GRP_KEY, "download_failed", "download_failed: ~{0}", String_.new_utf8_(ttl));
- return false;
- }
- public abstract boolean Api_query_size_exec(Xof_img_wkr_api_size_base_rslts rv, Xow_wiki wiki, byte[] ttl, int width, int height, Gfo_usr_dlg usr_dlg, byte[] repo_wiki_key);
-}
diff --git a/400_xowa/src_162_xfer/gplx/xowa/Xof_img_wkr_api_size_base_fxt.java b/400_xowa/src_162_xfer/gplx/xowa/Xof_img_wkr_api_size_base_fxt.java
deleted file mode 100644
index 94d8cb87b..000000000
--- a/400_xowa/src_162_xfer/gplx/xowa/Xof_img_wkr_api_size_base_fxt.java
+++ /dev/null
@@ -1,41 +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; import gplx.*;
-public class Xof_img_wkr_api_size_base_fxt {
- Xoa_app app; Xow_wiki wiki; Xof_img_wkr_api_size_base_rslts rv = new Xof_img_wkr_api_size_base_rslts();
- public void Clear() {
- this.app = Xoa_app_fxt.app_();
- this.wiki = Xoa_app_fxt.wiki_tst_(app);
- }
- public void Bld_api_url_tst(String ttl_str, int w, int h, String expd) {
- String actl = Xof_img_wkr_api_size_base_wmf.Bld_api_url(wiki.Domain_bry(), Bry_.new_utf8_(ttl_str), w, h);
- Tfds.Eq(expd, actl);
- }
- public void Parse_size_tst(String xml_str, int expd_w, int expd_h) {
- byte[] xml_bry = Bry_.new_utf8_(xml_str);
- Xof_img_wkr_api_size_base_wmf.Parse_xml(rv, app.Usr_dlg(), xml_bry);
- Tfds.Eq(expd_w, rv.Orig_w());
- Tfds.Eq(expd_h, rv.Orig_h());
- }
- public void Parse_reg_tst(String xml_str, String expd_wiki, String expd_page) {
- byte[] xml_bry = Bry_.new_utf8_(xml_str);
- Xof_img_wkr_api_size_base_wmf.Parse_xml(rv, app.Usr_dlg(), xml_bry);
- Tfds.Eq(expd_wiki, String_.new_utf8_(rv.Reg_wiki()));
- Tfds.Eq(expd_page, String_.new_utf8_(rv.Reg_page()));
- }
-}
diff --git a/400_xowa/src_162_xfer/gplx/xowa/Xof_img_wkr_api_size_base_rslts.java b/400_xowa/src_162_xfer/gplx/xowa/Xof_img_wkr_api_size_base_rslts.java
deleted file mode 100644
index 590828204..000000000
--- a/400_xowa/src_162_xfer/gplx/xowa/Xof_img_wkr_api_size_base_rslts.java
+++ /dev/null
@@ -1,28 +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; import gplx.*;
-public class Xof_img_wkr_api_size_base_rslts {
- public int Orig_w() {return orig_w;} public Xof_img_wkr_api_size_base_rslts Orig_w_(int v) {orig_w = v; return this;} private int orig_w;
- public int Orig_h() {return orig_h;} public Xof_img_wkr_api_size_base_rslts Orig_h_(int v) {orig_h = v; return this;} private int orig_h;
- public byte[] Reg_wiki() {return reg_wiki;} public Xof_img_wkr_api_size_base_rslts Reg_wiki_(byte[] v) {reg_wiki = v; return this;} private byte[] reg_wiki;
- public byte[] Reg_page() {return reg_page;} public Xof_img_wkr_api_size_base_rslts Reg_page_(byte[] v) {reg_page = v; return this;} private byte[] reg_page;
- public void Clear() {
- orig_w = orig_h = 0;
- reg_wiki = reg_page = null;
- }
-}
diff --git a/400_xowa/src_162_xfer/gplx/xowa/Xof_img_wkr_api_size_base_wmf.java b/400_xowa/src_162_xfer/gplx/xowa/Xof_img_wkr_api_size_base_wmf.java
deleted file mode 100644
index 9de27bb9c..000000000
--- a/400_xowa/src_162_xfer/gplx/xowa/Xof_img_wkr_api_size_base_wmf.java
+++ /dev/null
@@ -1,87 +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; import gplx.*;
-public class Xof_img_wkr_api_size_base_wmf extends Xof_img_wkr_api_size_base {
- @Override public boolean Api_query_size_exec(Xof_img_wkr_api_size_base_rslts rv, Xow_wiki wiki, byte[] ttl, int width, int height, Gfo_usr_dlg usr_dlg, byte[] repo_wiki_key) {
- String src = Bld_api_url(repo_wiki_key, ttl, width, height);
-// xrg.Prog_fmt_hdr_(); // NOTE: do not uncomment; api will reuse whatever's in place
- byte[] xml = wiki.App().File_mgr().Download_mgr().Download_wkr().Download_xrg().Exec_as_bry(src);
- return xml == null ? false : Parse_xml(rv, usr_dlg, xml);
- }
- public static boolean Parse_xml(Xof_img_wkr_api_size_base_rslts rv, Gfo_usr_dlg usr_dlg, byte[] xml) {
- rv.Clear();
- int xml_len = xml.length;
- int pos = 0;
- pos = Bry_finder.Find_fwd(xml, Bry_xml_ii , pos, xml_len); if (pos == Bry_.NotFound) return Parse_xml_failed(usr_dlg, xml);
- pos += Bry_xml_ii.length;
-
- if (Parse_xml_val(parse_xml_rng, usr_dlg, xml, xml_len, pos, Bry_xml_width))
- rv.Orig_w_(Bry_.Xto_int_or(xml, parse_xml_rng.Val_0(), parse_xml_rng.Val_1(), 0));
-
- if (Parse_xml_val(parse_xml_rng, usr_dlg, xml, xml_len, pos, Bry_xml_height))
- rv.Orig_h_(Bry_.Xto_int_or(xml, parse_xml_rng.Val_0(), parse_xml_rng.Val_1(), 0));
-
- if (Parse_xml_val(parse_xml_rng, usr_dlg, xml, xml_len, pos, Bry_xml_descriptionurl)) {
- byte[] file_url = Bry_.Mid(xml, parse_xml_rng.Val_0(), parse_xml_rng.Val_1());
- url_parser.Parse(url, file_url, 0, file_url.length);
- rv.Reg_wiki_(url.Site());
- byte[] page = Xoa_ttl.Replace_spaces(url.Page());
- int colon_pos = Bry_finder.Find_fwd(page, Byte_ascii.Colon, 0, page.length);
- if (colon_pos != Bry_.NotFound)
- page = Bry_.Mid(page, colon_pos + 1, page.length);
- rv.Reg_page_(page);
- }
- return true;
- }
- private static Int_2_ref parse_xml_rng = new Int_2_ref(); static Xoa_url parse_xml_url = Xoa_url.blank_();
- private static Gfo_url_parser url_parser = new Gfo_url_parser(); static Gfo_url url = new Gfo_url();
- private static boolean Parse_xml_val(Int_2_ref rv, Gfo_usr_dlg usr_dlg, byte[] xml, int xml_len, int pos, byte[] key) {
- int bgn = 0, end = 0;
- bgn = Bry_finder.Find_fwd(xml, key , pos, xml_len); if (bgn == Bry_.NotFound) return false;
- bgn += key.length;
- end = Bry_finder.Find_fwd(xml, Byte_ascii.Quote , bgn, xml_len); if (end == Bry_.NotFound) return false;
- rv.Val_all_(bgn, end);
- return true;
- }
- private static boolean Parse_xml_failed(Gfo_usr_dlg usr_dlg, byte[] xml) {usr_dlg.Log_many(GRP_KEY, "api_failed", "api failed: ~{0}", String_.new_utf8_(xml)); return false;}
- public static String Bld_api_url(byte[] wiki_key, byte[] ttl, int width, int height) {
- bfr .Add(Xoh_href_parser.Href_http_bry) // "http://"
- .Add(wiki_key) // "commons.wikimedia.org"
- .Add(Bry_api) // "/w/api.php?action=query&format=xml&prop=imageinfo&iiprop=size|url&titles=File:"
- .Add(encoder.Encode(ttl)) // "A%20B.png"
- ;
- if (width > 0)
- bfr.Add(Bry_width).Add_int_variable(width); // "&iiurlwidth=800"
- if (height > 0 && width > 0) // NOTE: height cannot be used alone; width must also exist; "iiurlheight cannot be used without iiurlwidth"
- bfr.Add(Bry_height).Add_int_variable(height); // "&iiurlheight=600"
- return bfr.Xto_str_and_clear();
- }
- private static Url_encoder encoder = Url_encoder.new_http_url_().Itms_raw_diff(Byte_ascii.Space, Byte_ascii.Underline);
- Io_url trg = Io_url_.mem_fil_("mem/temp/api.txt");
- private static final Bry_bfr bfr = Bry_bfr.new_();
- private static final byte[]
- Bry_api = Bry_.new_ascii_("/w/api.php?action=query&format=xml&prop=imageinfo&iiprop=size|url&redirects&titles=File:") // NOTE: using File b/c it should be canonical
- , Bry_width = Bry_.new_ascii_("&iiurlwidth=")
- , Bry_height = Bry_.new_ascii_("&iiurlheight=")
- , Bry_xml_ii = Bry_.new_ascii_(".
*/
package gplx.xowa; import gplx.*;
-import gplx.core.primitives.*; import gplx.gfui.*; import gplx.xowa.files.*;
+import gplx.core.primitives.*; import gplx.gfui.*; import gplx.xowa.files.*; import gplx.xowa.files.repos.*;
+import gplx.xowa.wmfs.*; import gplx.xowa.wmfs.apis.*; import gplx.xowa.files.exts.*;
public class Xof_xfer_mgr {
- public Xof_xfer_mgr(Xof_file_mgr file_mgr) {this.file_mgr = file_mgr;} private Xof_file_mgr file_mgr;
+ public Xof_xfer_mgr(Xof_file_mgr file_mgr, Xowmf_mgr wmf_mgr) {this.file_mgr = file_mgr; this.wmf_mgr = wmf_mgr;} private final Xof_file_mgr file_mgr; private final Xowmf_mgr wmf_mgr;
public Xof_xfer_rslt Rslt() {return rslt;} private Xof_xfer_rslt rslt = new Xof_xfer_rslt();
public boolean Force_orig() {return force_orig;} public Xof_xfer_mgr Force_orig_(boolean v) {force_orig = v; return this;} private boolean force_orig;
public Xof_xfer_mgr Force_orig_y_() {return Force_orig_(Bool_.Y);} public Xof_xfer_mgr Force_orig_n_() {return Force_orig_(Bool_.N);}
@@ -36,12 +37,12 @@ public class Xof_xfer_mgr {
orig_w = 0; orig_h = 0; file_w = 0; file_h = 0;
} private byte lnki_type;
private Xof_xfer_itm xfer_itm; private double lnki_thumbtime = Xof_doc_thumb.Null; private boolean lnki_thumbable; private int lnki_w, lnki_h, file_w, file_h; private double lnki_upright;
- private Xof_ext ext; private Xoft_rule_itm ext_rule; private Xof_repo_itm src_repo, trg_repo; private boolean src_repo_is_wmf; private byte[] ttl, md5; private int orig_w, orig_h, orig_file_len;
+ private Xof_ext ext; private Xof_rule_itm ext_rule; private Xof_repo_itm src_repo, trg_repo; private boolean src_repo_is_wmf; private byte[] ttl, md5; private int orig_w, orig_h, orig_file_len;
private int lnki_page = Xof_doc_page.Null;
public Xof_meta_itm Meta_itm() {return meta_itm;} private Xof_meta_itm meta_itm;
public boolean Download_allowed_by_ext() {return orig_file_len < ext_rule.Make_max();}
public Xof_xfer_mgr Check_file_exists_before_xfer_n_() {check_file_exists_before_xfer = false; return this;} private boolean check_file_exists_before_xfer = true;
- public boolean Make_file(Xow_wiki wiki) {
+ public boolean Make_file(Xowe_wiki wiki) {
rslt.Clear(); this.wiki = wiki;
if ( src_repo.Wmf_api() // make sure wmf_api enabled
&& ( ( ext.Id() == Xof_ext_.Id_ogg // file is ogg; could be audio; DATE:2013-08-03
@@ -54,13 +55,14 @@ public class Xof_xfer_mgr {
else if (ext.Id_is_video()&& !meta_itm.Thumbs_indicates_oga()) Make_vid();
else Make_other();
return rslt.Pass();
- } private Xow_wiki wiki; Xof_img_wkr_api_size_base_rslts rslts = new Xof_img_wkr_api_size_base_rslts();
+ } private Xowe_wiki wiki; Xoapi_orig_rslts rslts = new Xoapi_orig_rslts();
private boolean Make_img() {
String src_str; Io_url trg_url;
// BLOCK: thumb
if (lnki_thumbable) { // lnki is thumb with known width >>> try to do thumb
if (lnki_w < 1 && lnki_h < 1) { // NOTE: only give default thumb if both w and h are < 1; if h > 0, then skip; EX:Paris;[[File:IMA-Ile-St-Louis.jpg|thumb|x220]]
- lnki_w = Xof_img_size.Upright_calc(wiki.File_mgr().Fsdb_mgr().Patch_upright(), lnki_upright, lnki_w, lnki_w, lnki_h, lnki_type);
+ wiki.File_mgr().Fsdb_mgr().Init_by_wiki(wiki);
+ lnki_w = Xof_img_size.Upright_calc(wiki.File_mgr().Patch_upright(), lnki_upright, lnki_w, lnki_w, lnki_h, lnki_type);
if (lnki_w < 1)
lnki_w = wiki.Html_mgr().Img_thumb_width(); // NOTE: used to be src_repo.Thumb_w()
}
@@ -81,7 +83,7 @@ public class Xof_xfer_mgr {
Io_url src_url = trg_url;
if (ext.Id_is_djvu()) { // NOTE: this block converts djvu -> tiff b/c vanilla imageMagick cannot do djvu -> jpeg
trg_url = this.Trg_url(trg_repo, Xof_repo_itm.Mode_thumb, lnki_w).GenNewExt(".tiff"); // NOTE: manually change ext to tiff; note that djvu has view type of jpeg
- wiki.App().File_mgr().Img_mgr().Wkr_convert_djvu_to_tiff().Exec(src_url, trg_url);
+ wiki.Appe().File_mgr().Img_mgr().Wkr_convert_djvu_to_tiff().Exec(src_url, trg_url);
if (!Cmd_query_size(trg_url)) return false;
// meta_itm.Update_orig_size(file_w, file_h); // NOTE that thumb size is always orig size
src_url = trg_url;
@@ -96,20 +98,21 @@ public class Xof_xfer_mgr {
return true;
} Int_2_ref calc_size = new Int_2_ref();
boolean Call_wmf_api() {
- boolean found = wiki.App().File_mgr().Download_mgr().Api_size_wkr().Api_query_size(rslts, wiki, ttl, lnki_w, lnki_h);
+ Xof_download_wkr download_wkr = wiki.App().Wmf_mgr().Download_wkr(); Xowe_repo_mgr repo_mgr = wiki.File_mgr().Repo_mgr();
+ boolean found = wiki.App().Wmf_mgr().Api_mgr().Api_orig().Api_query_size(rslts, download_wkr, repo_mgr, ttl, lnki_w, lnki_h);
if (found) {
- if (rslts.Reg_wiki() != null) {
- src_repo = wiki.App().File_mgr().Repo_mgr().Get_by_wmf(rslts.Reg_wiki());
- trg_repo = wiki.App().File_mgr().Repo_mgr().Get_primary(rslts.Reg_wiki());
- if (Bry_.Eq(rslts.Reg_wiki(), wiki.Domain_bry())) // wmf returned same wiki as current
+ if (rslts.Orig_wiki() != null) {
+ src_repo = wiki.Appe().File_mgr().Repo_mgr().Get_by_wmf_fsys(rslts.Orig_wiki());
+ trg_repo = wiki.Appe().File_mgr().Repo_mgr().Get_by_primary(rslts.Orig_wiki());
+ if (Bry_.Eq(rslts.Orig_wiki(), wiki.Domain_bry())) // wmf returned same wiki as current
xfer_itm.Trg_repo_idx_(Xof_meta_itm.Repo_same); // set repo to "same"
else { // wmf returned other wiki (which is 99% likely to be commons)
- Xof_repo_pair trg_repo_pair = wiki.File_mgr().Repo_mgr().Repos_get_by_wiki(rslts.Reg_wiki()); // need to do this b/c commons is not always first; see wikinews; DATE:2013-12-04
- int trg_repo_idx = trg_repo_pair == null ? 0 : (int)trg_repo_pair.Id(); // 0=commons
+ Xof_repo_pair trg_repo_pair = wiki.File_mgr().Repo_mgr().Repos_get_by_wiki(rslts.Orig_wiki()); // need to do this b/c commons is not always first; see wikinews; DATE:2013-12-04
+ int trg_repo_idx = trg_repo_pair == null ? 0 : (int)trg_repo_pair.Repo_idx(); // 0=commons
xfer_itm.Trg_repo_idx_(trg_repo_idx);
}
- if (!Bry_.Eq(rslts.Reg_page(), ttl)) {
- ttl = rslts.Reg_page();
+ if (!Bry_.Eq(rslts.Orig_page(), ttl)) {
+ ttl = rslts.Orig_page();
md5 = Xof_xfer_itm_.Md5_(ttl);
meta_itm.Ptr_ttl_(ttl);
}
@@ -259,8 +262,8 @@ public class Xof_xfer_mgr {
boolean Orig_max_download() {
long ext_max = ext_rule.View_max();
return (orig_file_len < ext_max) // file_len is less than defined max
- || (ext_max == Xoft_rule_itm.Max_wildcard); // max is defined as wildcard
-// return !(orig_file_len < ext_max || (ext_max == Xoft_rule_itm.Max_wildcard && orig_file_len < 1));
+ || (ext_max == Xof_rule_itm.Max_wildcard); // max is defined as wildcard
+// return !(orig_file_len < ext_max || (ext_max == Xof_rule_itm.Max_wildcard && orig_file_len < 1));
}
boolean Img_download(String src_str, Io_url trg_url, boolean cur_is_thumb) {
rslt.Atrs_src_trg_(src_str, trg_url); // NOTE: must be set at start; Img_rename_by_size may overwrite trg
@@ -324,7 +327,7 @@ public class Xof_xfer_mgr {
if (exists)
pass = true;
else {
- byte download_rslt = file_mgr.Download_mgr().Download_wkr().Download(src_repo_is_wmf, src_str, trg_url, file_mgr.Download_mgr().Download_wkr().Download_xrg().Prog_fmt_hdr());
+ byte download_rslt = wmf_mgr.Download_wkr().Download(src_repo_is_wmf, src_str, trg_url, wmf_mgr.Download_wkr().Download_xrg().Prog_fmt_hdr());
if (download_rslt == gplx.ios.IoEngine_xrg_downloadFil.Rslt_fail_host_not_found) {
wiki.File_mgr().Cfg_download().Enabled_(false);
throw Err_mgr._.fmt_("xowa.xfer_mgr", "download_failed", "download_failed: host not found");
diff --git a/400_xowa/src_162_xfer/gplx/xowa/Xof_xfer_queue.java b/400_xowa/src_162_xfer/gplx/xowa/Xof_xfer_queue.java
index e9b1e5a8d..c76c8386a 100644
--- a/400_xowa/src_162_xfer/gplx/xowa/Xof_xfer_queue.java
+++ b/400_xowa/src_162_xfer/gplx/xowa/Xof_xfer_queue.java
@@ -34,22 +34,22 @@ public class Xof_xfer_queue {
if (!dirty.Has(dirty_key.Val_(meta_mgr_key)))
dirty.AddReplace(meta_mgr_key, meta_mgr); // only add if new
}
- public void Exec(byte exec_tid, Gfo_usr_dlg wtr, Xow_wiki wiki, Xoa_page page) {
+ public void Exec(byte exec_tid, Gfo_usr_dlg wtr, Xowe_wiki wiki, Xoae_page page) {
if (wiki.File_mgr().Version() == Xow_file_mgr.Version_2)
Exec_v2(exec_tid, wtr, wiki, page);
else
Exec_v1(exec_tid, wtr, wiki, page);
}
- private void Exec_v1(byte exec_tid, Gfo_usr_dlg wtr, Xow_wiki wiki, Xoa_page page) {
+ private void Exec_v1(byte exec_tid, Gfo_usr_dlg wtr, Xowe_wiki wiki, Xoae_page page) {
Xof_meta_mgr meta_mgr = null;
int xfer_len = list.Count();
for (int i = 0; i < xfer_len; i++) {
- if (wiki.App().Gui_wtr().Canceled()) break;
+ if (wiki.Appe().Usr_dlg().Canceled()) break;
Xof_xfer_itm xfer_itm = (Xof_xfer_itm)list.FetchAt(i);
meta_mgr = xfer_itm.Meta_itm().Owner_fil().Owner_mgr();
Add_dirty_if_new(meta_mgr); // only add if new
String queue_msg = wtr.Prog_many(GRP_KEY, "download.bgn", "downloading ~{0} of ~{1}: ~{2};", i + ListAdp_.Base1, xfer_len, xfer_itm.Lnki_ttl());
- wiki.App().File_mgr().Download_mgr().Download_wkr().Download_xrg().Prog_fmt_hdr_(queue_msg);
+ wiki.App().Wmf_mgr().Download_wkr().Download_xrg().Prog_fmt_hdr_(queue_msg);
wiki.File_mgr().Repo_mgr().Xfer_by_meta(xfer_itm, this);
xfer_itm.Set__meta(xfer_itm.Meta_itm(), xfer_itm.Meta_itm().Repo_itm(wiki), wiki.Html_mgr().Img_thumb_width());
xfer_itm.Calc_by_meta();
@@ -65,9 +65,9 @@ public class Xof_xfer_queue {
}
this.Clear();
}
- private void Exec_v2(byte exec_tid, Gfo_usr_dlg wtr, Xow_wiki wiki, Xoa_page page) {
- wiki.File_mgr().Fsdb_mgr().Init_by_wiki__add_bin_wkrs(wiki);
- wiki.File_mgr().Fsdb_mgr().Fsdb_search_by_list(page, exec_tid, Xfer_itms_to_fsdb_itms(list, wiki.File_mgr().Fsdb_mgr().Patch_upright()));
+ private void Exec_v2(byte exec_tid, Gfo_usr_dlg wtr, Xowe_wiki wiki, Xoae_page page) {
+ wiki.File_mgr().Fsdb_mgr().Init_by_wiki(wiki);
+ wiki.File_mgr().Fsdb_mgr().Fsdb_search_by_list(exec_tid, Xfer_itms_to_fsdb_itms(list, wiki.File_mgr().Patch_upright()), page);
}
private ListAdp Xfer_itms_to_fsdb_itms(ListAdp list, int upright_patch) {
ListAdp rv = ListAdp_.new_();
@@ -75,7 +75,7 @@ public class Xof_xfer_queue {
for (int i = 0; i < list_len; i++) {
Xof_xfer_itm xfer_itm = (Xof_xfer_itm)list.FetchAt(i);
Xof_fsdb_itm fsdb_itm = new Xof_fsdb_itm();
- fsdb_itm.Init_by_lnki(xfer_itm.Lnki_ttl(), xfer_itm.Lnki_ext(), xfer_itm.Lnki_md5(), xfer_itm.Lnki_type(), xfer_itm.Lnki_w(), xfer_itm.Lnki_h(), upright_patch, xfer_itm.Lnki_upright(), xfer_itm.Lnki_thumbtime(), xfer_itm.Lnki_page());
+ fsdb_itm.Ctor_by_lnki(xfer_itm.Lnki_ttl(), xfer_itm.Lnki_ext(), xfer_itm.Lnki_md5(), xfer_itm.Lnki_type(), xfer_itm.Lnki_w(), xfer_itm.Lnki_h(), upright_patch, xfer_itm.Lnki_upright(), xfer_itm.Lnki_thumbtime(), xfer_itm.Lnki_page());
fsdb_itm.Html_uid_(xfer_itm.Html_uid());
fsdb_itm.Html_elem_tid_(xfer_itm.Html_elem_tid());
fsdb_itm.Gallery_mgr_h_(xfer_itm.Gallery_mgr_h());
diff --git a/400_xowa/src_162_xfer/gplx/xowa/Xof_xfer_queue_base_fxt.java b/400_xowa/src_162_xfer/gplx/xowa/Xof_xfer_queue_base_fxt.java
index 83057d4eb..f74303a7e 100644
--- a/400_xowa/src_162_xfer/gplx/xowa/Xof_xfer_queue_base_fxt.java
+++ b/400_xowa/src_162_xfer/gplx/xowa/Xof_xfer_queue_base_fxt.java
@@ -16,34 +16,35 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa; import gplx.*;
-import gplx.ios.*; import gplx.xowa.files.cnvs.*;
+import gplx.ios.*; import gplx.xowa.wikis.*; import gplx.xowa.files.cnvs.*; import gplx.xowa.files.repos.*;
+import gplx.xowa.wmfs.apis.*; import gplx.xowa.files.exts.*; import gplx.xowa.files.imgs.*;
public class Xof_xfer_queue_base_fxt {
- public Xof_img_wkr_api_size_base_mok Api_size() {return api_size;} private Xof_img_wkr_api_size_base_mok api_size = Xof_img_wkr_api_size_base_mok._;
+ public Xoapi_orig_mok Api_size() {return api_size;} private Xoapi_orig_mok api_size = Xoapi_orig_mok._;
public Xof_repo_itm Src_commons_repo() {return src_commons_repo;} private Xof_repo_itm src_commons_repo;
public Xof_repo_itm Src_en_wiki_repo() {return src_en_wiki_repo;} private Xof_repo_itm src_en_wiki_repo;
@gplx.Virtual public void Clear(boolean src_repo_is_wmf) {
Io_mgr._.InitEngine_mem();
if (app == null) {
app = Xoa_app_fxt.app_();
- en_wiki = Xoa_app_fxt.wiki_(app, Xow_wiki_.Domain_enwiki_str);
- commons = Xoa_app_fxt.wiki_(app, Xow_wiki_.Domain_commons_str);
+ en_wiki = Xoa_app_fxt.wiki_(app, Xow_domain_.Domain_str_enwiki);
+ commons = Xoa_app_fxt.wiki_(app, Xow_domain_.Domain_str_commons);
app.Wiki_mgr().Add(commons);
app.Wiki_mgr().Add(en_wiki);
Xof_file_mgr file_mgr = app.File_mgr();
file_mgr.Img_mgr().Wkr_resize_img_(Xof_img_wkr_resize_img_mok._);
file_mgr.Img_mgr().Wkr_query_img_size_(new Xof_img_wkr_query_img_size_test());
- file_mgr.Download_mgr().Api_size_wkr_(api_size);
+ app.Wmf_mgr().Api_mgr().Api_orig_(api_size);
byte[] src_commons = Bry_.new_ascii_("src_commons");
byte[] src_en_wiki = Bry_.new_ascii_("src_en_wiki");
byte[] trg_commons = Bry_.new_ascii_("trg_commons");
byte[] trg_en_wiki = Bry_.new_ascii_("trg_en_wiki");
- src_commons_repo = Ini_repo_add(file_mgr, src_commons, "mem/src/commons.wikimedia.org/", Xow_wiki_.Domain_commons_str, false);
- src_en_wiki_repo = Ini_repo_add(file_mgr, src_en_wiki, "mem/src/en.wikipedia.org/" , Xow_wiki_.Domain_enwiki_str, false);
- Ini_repo_add(file_mgr, trg_commons, "mem/trg/commons.wikimedia.org/", Xow_wiki_.Domain_commons_str, true).Primary_(true);
- Ini_repo_add(file_mgr, trg_en_wiki, "mem/trg/en.wikipedia.org/" , Xow_wiki_.Domain_enwiki_str, true).Primary_(true);
- Xow_repo_mgr wiki_repo_mgr = en_wiki.File_mgr().Repo_mgr();
+ src_commons_repo = Ini_repo_add(file_mgr, src_commons, "mem/src/commons.wikimedia.org/", Xow_domain_.Domain_str_commons, false);
+ src_en_wiki_repo = Ini_repo_add(file_mgr, src_en_wiki, "mem/src/en.wikipedia.org/" , Xow_domain_.Domain_str_enwiki, false);
+ Ini_repo_add(file_mgr, trg_commons, "mem/trg/commons.wikimedia.org/", Xow_domain_.Domain_str_commons, true).Primary_(true);
+ Ini_repo_add(file_mgr, trg_en_wiki, "mem/trg/en.wikipedia.org/" , Xow_domain_.Domain_str_enwiki, true).Primary_(true);
+ Xowe_repo_mgr wiki_repo_mgr = en_wiki.File_mgr().Repo_mgr();
Xof_repo_pair pair = null;
pair = wiki_repo_mgr.Add_repo(src_commons, trg_commons);
pair.Src().Fsys_is_wnt_(true).Wmf_fsys_(src_repo_is_wmf).Tarball_(!src_repo_is_wmf);
@@ -59,20 +60,20 @@ public class Xof_xfer_queue_base_fxt {
html_src = null;
html_w = html_h = -1;
}
- public Xoa_app App() {return app;} private Xoa_app app;
- public Xow_wiki En_wiki() {return en_wiki;} private Xow_wiki en_wiki;
- public Xow_wiki Commons() {return commons;} private Xow_wiki commons;
+ public Xoae_app App() {return app;} private Xoae_app app;
+ public Xowe_wiki En_wiki() {return en_wiki;} private Xowe_wiki en_wiki;
+ public Xowe_wiki Commons() {return commons;} private Xowe_wiki commons;
public void ini_page_create_commons(String ttl) {Init_page_create(commons, ttl, "");}
public void ini_page_create_commons_redirect(String ttl, String redirect) {Init_page_create(commons, ttl, "#REDIRECT [[" + redirect + "]]");}
public void ini_page_create_en_wiki(String ttl) {Init_page_create(en_wiki, ttl, "");}
public void ini_page_create_en_wiki_redirect(String ttl, String redirect) {Init_page_create(en_wiki, ttl, "#REDIRECT [[" + redirect + "]]");}
- public void Init_page_create(Xow_wiki wiki, String ttl, String txt) {
+ public void Init_page_create(Xowe_wiki wiki, String ttl, String txt) {
Xoa_ttl page_ttl = Xoa_ttl.parse_(wiki, Bry_.new_utf8_(ttl));
byte[] page_raw = Bry_.new_utf8_(txt);
wiki.Db_mgr().Save_mgr().Data_create(page_ttl, page_raw);
}
Xof_repo_itm Ini_repo_add(Xof_file_mgr file_mgr, byte[] key, String root, String wiki, boolean trg) {
- Xof_repo_itm repo = file_mgr.Repo_mgr().Set(String_.new_utf8_(key), root, wiki).Ext_rules_(Xoft_rule_grp.Grp_app_default).Dir_depth_(2);
+ Xof_repo_itm repo = file_mgr.Repo_mgr().Set(String_.new_utf8_(key), root, wiki).Ext_rules_(Xof_rule_grp.Grp_app_default).Dir_depth_(2);
if (trg) {
byte[][] ary = repo.Mode_names();
ary[0] = Bry_.new_ascii_("raw");
diff --git a/400_xowa/src_162_xfer/gplx/xowa/Xof_xfer_queue_html_cases_tst.java b/400_xowa/src_162_xfer/gplx/xowa/Xof_xfer_queue_html_cases_tst.java
index af2d2cb23..ea2083a66 100644
--- a/400_xowa/src_162_xfer/gplx/xowa/Xof_xfer_queue_html_cases_tst.java
+++ b/400_xowa/src_162_xfer/gplx/xowa/Xof_xfer_queue_html_cases_tst.java
@@ -17,7 +17,7 @@ along with this program. If not, see .
*/
package gplx.xowa; import gplx.*;
import org.junit.*;
-import gplx.xowa.files.*;
+import gplx.xowa.files.*; import gplx.xowa.files.imgs.*;
public class Xof_xfer_queue_html_cases_tst {
Xof_xfer_queue_html_fxt fxt = new Xof_xfer_queue_html_fxt();
@Before public void init() {
@@ -73,7 +73,7 @@ public class Xof_xfer_queue_html_cases_tst {
}
@Test public void Img_thumb_djvu() {// PURPOSE: exact djvu thumbs are not on server; always seems to retrieve 1 off;
fxt .ini_page_create_commons ("File:A.djvu");
- fxt .App().File_mgr().Img_mgr().Wkr_convert_djvu_to_tiff_(new Xof_img_wkr_convert_djvu_to_tiff_mok(199, 299));
+ fxt .App().File_mgr().Img_mgr().Wkr_convert_djvu_to_tiff_(Xof_img_wkr_convert_djvu_to_tiff_.new_mok(199, 299));
fxt .Lnki_thumb_("A.djvu", 200)
.Src( fxt.img_("mem/src/commons.wikimedia.org/7/76/A.djvu", 1990, 2990)
)
diff --git a/400_xowa/src_162_xfer/gplx/xowa/Xof_xfer_queue_html_fxt.java b/400_xowa/src_162_xfer/gplx/xowa/Xof_xfer_queue_html_fxt.java
index 9dcf44765..5ccebf962 100644
--- a/400_xowa/src_162_xfer/gplx/xowa/Xof_xfer_queue_html_fxt.java
+++ b/400_xowa/src_162_xfer/gplx/xowa/Xof_xfer_queue_html_fxt.java
@@ -16,10 +16,11 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa; import gplx.*;
-import gplx.core.primitives.*;
-import gplx.ios.*; import gplx.xowa.files.*;
+import gplx.core.primitives.*; import gplx.dbs.*;
+import gplx.ios.*; import gplx.xowa.wikis.*; import gplx.xowa.files.*;
public class Xof_xfer_queue_html_fxt extends Xof_xfer_queue_base_fxt {
@Override public void Clear(boolean src_repo_is_wmf) {
+ Db_conn_bldr.I.Reg_default_mem();
super.Clear(src_repo_is_wmf);
this.Api_size().Clear();
}
@@ -27,7 +28,7 @@ public class Xof_xfer_queue_html_fxt extends Xof_xfer_queue_base_fxt {
public Xof_xfer_queue_html_fxt Lnki_thumb_(String lnki_ttl, int lnki_w) {return Lnki_(lnki_ttl, Bool_.Y, lnki_w, Xof_img_size.Size_null_deprecated, Xop_lnki_tkn.Upright_null, Xof_doc_thumb.Null_as_int);}
public Xof_xfer_queue_html_fxt Lnki_thumb_(String lnki_ttl, int lnki_w, int lnki_h) {return Lnki_(lnki_ttl, Bool_.Y, lnki_w, lnki_h, Xop_lnki_tkn.Upright_null, Xof_doc_thumb.Null_as_int);}
public Xof_xfer_queue_html_fxt Lnki_(String lnki_ttl, boolean thumb, int lnki_w, int lnki_h, double upright, int seek_time) { // NOTE: only one xfer_itm; supports one Lnki_ per test only
- Xow_wiki wiki = this.En_wiki();
+ Xowe_wiki wiki = this.En_wiki();
xfer_itm = wiki.Html_mgr().Html_wtr().Lnki_wtr().File_wtr().Lnki_eval(wiki.Ctx(), queue, Bry_.new_utf8_(lnki_ttl), thumb ? Xop_lnki_type.Id_thumb : Xop_lnki_type.Id_null, lnki_w, lnki_h, upright, Xof_doc_thumb.X_int(seek_time), Xof_doc_page.Null, false, queue_add_ref);
return this;
} private Xof_xfer_itm xfer_itm = new Xof_xfer_itm(); Bool_obj_ref queue_add_ref = Bool_obj_ref.n_();
@@ -40,16 +41,16 @@ public class Xof_xfer_queue_html_fxt extends Xof_xfer_queue_base_fxt {
public Xof_xfer_queue_html_fxt Html_orig_src_(String v) {html_orig_src = v; return this;} private String html_orig_src;
public Xof_xfer_queue_html_fxt ini_page_api(String wiki_str, String ttl_str, String redirect_str, int orig_w, int orig_h) {return ini_page_api(wiki_str, ttl_str, redirect_str, orig_w, orig_h, true);}
public Xof_xfer_queue_html_fxt ini_page_api(String wiki_str, String ttl_str, String redirect_str, int orig_w, int orig_h, boolean pass) {
- String wiki_key = String_.Eq(wiki_str, "commons") ? Xow_wiki_.Domain_commons_str : Xow_wiki_.Domain_enwiki_str;
+ String wiki_key = String_.Eq(wiki_str, "commons") ? Xow_domain_.Domain_str_commons : Xow_domain_.Domain_str_enwiki;
this.Api_size().Ini(wiki_key, ttl_str, redirect_str, orig_w, orig_h, pass);
return this;
}
@gplx.Virtual public void tst() {
- Xow_wiki wiki = this.En_wiki();
+ Xowe_wiki wiki = this.En_wiki();
ini_src_fils();
- wiki.App().File_mgr().Download_mgr().Enabled_(true);
+ wiki.Appe().File_mgr().Wmf_mgr().Enabled_(true);
wiki.File_mgr().Cfg_download().Enabled_(true);
- queue.Exec(Xof_exec_tid.Tid_wiki_page, usr_dlg, wiki, Xoa_page.Empty);
+ queue.Exec(Xof_exec_tid.Tid_wiki_page, usr_dlg, wiki, Xoae_page.Empty);
tst_trg_fils();
if (this.html_orig_src != null) Tfds.Eq(this.html_orig_src , String_.new_utf8_(xfer_itm.Html_orig_src()));
if (this.Html_view_src() != null) Tfds.Eq(this.Html_view_src(), String_.new_utf8_(xfer_itm.Html_view_src()));
diff --git a/400_xowa/src_162_xfer/gplx/xowa/Xof_xfer_queue_html_wmf_api_tst.java b/400_xowa/src_162_xfer/gplx/xowa/Xof_xfer_queue_html_wmf_api_tst.java
index 78eeebae6..4911b753f 100644
--- a/400_xowa/src_162_xfer/gplx/xowa/Xof_xfer_queue_html_wmf_api_tst.java
+++ b/400_xowa/src_162_xfer/gplx/xowa/Xof_xfer_queue_html_wmf_api_tst.java
@@ -19,7 +19,7 @@ package gplx.xowa; import gplx.*;
import org.junit.*;
import gplx.xowa.files.*;
public class Xof_xfer_queue_html_wmf_api_tst {
- Xof_xfer_queue_html_fxt fxt = new Xof_xfer_queue_html_fxt();
+ private final Xof_xfer_queue_html_fxt fxt = new Xof_xfer_queue_html_fxt();
@Before public void init() {fxt.Clear(true); fxt.Src_commons_repo().Wmf_api_(true); fxt.Src_en_wiki_repo().Wmf_api_(true);}
@Test public void Thumb() {
fxt .ini_page_api("en_wiki", "A.png", "", 2200, 2000);
diff --git a/400_xowa/src_200_bldr/gplx/xowa/Io_sort_cmd_ns.java b/400_xowa/src_200_bldr/gplx/xowa/Io_sort_cmd_ns.java
index 4a58861c6..5b208526c 100644
--- a/400_xowa/src_200_bldr/gplx/xowa/Io_sort_cmd_ns.java
+++ b/400_xowa/src_200_bldr/gplx/xowa/Io_sort_cmd_ns.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; import gplx.*;
-import gplx.ios.*;
+import gplx.ios.*; import gplx.xowa.tdbs.*;
public class Io_sort_cmd_ns implements Io_make_cmd {
Xob_xdat_file_wtr fil_wtr; Bry_bfr reg_bfr = Bry_bfr.new_(), key_bfr_0 = Bry_bfr.new_(512), key_bfr_n = Bry_bfr.new_(512);
int fil_count = 0, itm_count = 0;
@@ -27,7 +27,7 @@ public class Io_sort_cmd_ns implements Io_make_cmd {
public void Sort_bgn() {
fil_count = itm_count = 0;
fil_wtr = Xob_xdat_file_wtr.new_file_(trg_fil_max, make_dir);
- reg_url = make_dir.GenSubFil(Xow_dir_info_.Name_reg_fil);
+ reg_url = make_dir.GenSubFil(Xotdb_dir_info_.Name_reg_fil);
}
public void Sort_do(Io_line_rdr rdr) {
int itm_bgn = rdr.Itm_pos_bgn(), itm_end = rdr.Itm_pos_end(), key_bgn = rdr.Key_pos_bgn(), key_end = rdr.Key_pos_end();
diff --git a/400_xowa/src_200_bldr/gplx/xowa/Xob_bldr.java b/400_xowa/src_200_bldr/gplx/xowa/Xob_bldr.java
index c6c2d2cea..9a2747cfa 100644
--- a/400_xowa/src_200_bldr/gplx/xowa/Xob_bldr.java
+++ b/400_xowa/src_200_bldr/gplx/xowa/Xob_bldr.java
@@ -20,12 +20,12 @@ import gplx.xowa.bldrs.*; import gplx.xowa.apps.*; import gplx.xowa.bldrs.xmls.*
import gplx.xowa.bldrs.cfgs.*; import gplx.xowa.bldrs.langs.*;
public class Xob_bldr implements GfoInvkAble {
private boolean pause_at_end = false;
- public Xob_bldr(Xoa_app app) {
+ public Xob_bldr(Xoae_app app) {
this.app = app;
cmd_mgr = new Xob_cmd_mgr(this);
wiki_cfg_bldr = new Xob_wiki_cfg_bldr(this);
}
- public Xoa_app App() {return app;} private Xoa_app app;
+ public Xoae_app App() {return app;} private Xoae_app app;
public Gfo_usr_dlg Usr_dlg() {return app.Usr_dlg();}
public Xob_cmd_mgr Cmd_mgr() {return cmd_mgr;} private Xob_cmd_mgr cmd_mgr;
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;
@@ -33,7 +33,6 @@ public class Xob_bldr implements GfoInvkAble {
public int Make_fil_len() {return make_fil_len;} public Xob_bldr Make_fil_len_(int v) {make_fil_len = v; return this;} private int make_fil_len = 64 * Io_mgr.Len_kb;
public Xob_xml_parser Parser() {if (parser == null) parser = new Xob_xml_parser(); return parser;} private Xob_xml_parser parser;
public Xob_wiki_cfg_bldr Wiki_cfg_bldr() {return wiki_cfg_bldr;} private Xob_wiki_cfg_bldr wiki_cfg_bldr;
- public Xob_i18n_parser I18n_parser() {return i18n_parser;} private Xob_i18n_parser i18n_parser = new Xob_i18n_parser();
public void StatusMgr_prog_fmt(long cur, long end, int pct_idx, String fmt, Object... ary) {
long now = Env_.TickCount(); if (now - StatusMgr_prog_prv < 100) return;
StatusMgr_prog_prv = now;
diff --git a/400_xowa/src_200_bldr/gplx/xowa/Xob_make_cmd_site.java b/400_xowa/src_200_bldr/gplx/xowa/Xob_make_cmd_site.java
index 240c78960..793daccd8 100644
--- a/400_xowa/src_200_bldr/gplx/xowa/Xob_make_cmd_site.java
+++ b/400_xowa/src_200_bldr/gplx/xowa/Xob_make_cmd_site.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; import gplx.*;
-import gplx.ios.*;
+import gplx.ios.*; import gplx.xowa.tdbs.*;
public class Xob_make_cmd_site implements Io_make_cmd {
Xob_xdat_file_wtr fil_wtr; Bry_bfr cur_bfr = Bry_bfr.new_(), reg_bfr = Bry_bfr.new_(), reg_key_0 = Bry_bfr.new_(512), reg_key_n = Bry_bfr.new_(512);
int make_fil_max = 65 * Io_mgr.Len_kb, fil_count = 0, itm_count = 0, itm_key_end = 0; Io_url reg_url;
@@ -25,7 +25,7 @@ public class Xob_make_cmd_site implements Io_make_cmd {
public byte Line_dlm() {return line_dlm;} public Xob_make_cmd_site Line_dlm_(byte v) {line_dlm = v; return this;} private byte line_dlm = Byte_ascii.Nil;
public void Sort_bgn() {
fil_count = itm_count = itm_key_end = 0;
- reg_url = make_dir.GenSubFil(Xow_dir_info_.Name_reg_fil);
+ reg_url = make_dir.GenSubFil(Xotdb_dir_info_.Name_reg_fil);
fil_wtr = Xob_xdat_file_wtr.new_file_(make_fil_max, make_dir);
}
public void Sort_do(Io_line_rdr rdr) {
diff --git a/400_xowa/src_200_bldr/gplx/xowa/Xob_stat_mgr.java b/400_xowa/src_200_bldr/gplx/xowa/Xob_stat_mgr.java
index c0c6af720..d288e33d1 100644
--- a/400_xowa/src_200_bldr/gplx/xowa/Xob_stat_mgr.java
+++ b/400_xowa/src_200_bldr/gplx/xowa/Xob_stat_mgr.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; import gplx.*;
-import gplx.core.strings.*;
+import gplx.core.strings.*; import gplx.xowa.tdbs.*;
public class Xob_stat_mgr {
public Xob_stat_type GetOrNew(byte tid) {
Xob_stat_type rv = (Xob_stat_type)regy.Fetch(tid);
@@ -30,7 +30,7 @@ public class Xob_stat_mgr {
String_bldr sb = String_bldr_.new_();
for (int i = 0; i < regy.Count(); i++) {
Xob_stat_type typ = (Xob_stat_type)regy.FetchAt(i);
- sb.Add(String_.PadEnd(Xow_dir_info_.Tid_name(typ.Tid()), 6, " "));
+ sb.Add(String_.PadEnd(Xotdb_dir_info_.Tid_name(typ.Tid()), 6, " "));
}
sb.Add_str_w_crlf("ns");
String[] nsAry = GetNmsAry(nsMgr);
diff --git a/400_xowa/src_200_bldr/gplx/xowa/Xob_stat_type.java b/400_xowa/src_200_bldr/gplx/xowa/Xob_stat_type.java
index 1e2755cb3..715737650 100644
--- a/400_xowa/src_200_bldr/gplx/xowa/Xob_stat_type.java
+++ b/400_xowa/src_200_bldr/gplx/xowa/Xob_stat_type.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; import gplx.*;
-import gplx.core.strings.*;
+import gplx.core.strings.*; import gplx.xowa.tdbs.*;
public class Xob_stat_type {
public byte Tid() {return tid;} private byte tid;
public Xob_stat_type(byte tid) {this.tid = tid;}
@@ -26,7 +26,7 @@ public class Xob_stat_type {
public void XtoStr(String_bldr sb) {
for (int i = 0; i < regy.Count(); i++) {
Xob_stat_itm itm = (Xob_stat_itm)regy.FetchAt(i);
- sb.Add(Xow_dir_info_.Tid_name(tid)).Add(Xob_stat_itm.Dlm);
+ sb.Add(Xotdb_dir_info_.Tid_name(tid)).Add(Xob_stat_itm.Dlm);
itm.XtoStr(sb);
sb.Add(Byte_ascii.NewLine);
}
diff --git a/400_xowa/src_200_bldr/gplx/xowa/Xob_xdat_file_wtr.java b/400_xowa/src_200_bldr/gplx/xowa/Xob_xdat_file_wtr.java
index 67d8cfa7b..13409fe28 100644
--- a/400_xowa/src_200_bldr/gplx/xowa/Xob_xdat_file_wtr.java
+++ b/400_xowa/src_200_bldr/gplx/xowa/Xob_xdat_file_wtr.java
@@ -16,14 +16,14 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa; import gplx.*;
-import gplx.ios.*;
+import gplx.ios.*; import gplx.xowa.tdbs.*;
public class Xob_xdat_file_wtr {
public static Xob_xdat_file_wtr new_file_(int fil_max, Io_url root_dir) {return new Xob_xdat_file_wtr(fil_max, root_dir, Io_stream_.Tid_file);}
- public static Xob_xdat_file_wtr new_by_tid_(int fil_max, Io_url root_dir, byte dir_tid, byte tid) {return new Xob_xdat_file_wtr(fil_max, root_dir.GenSubDir(Xow_dir_info_.Tid_name(dir_tid) + Xow_fsys_mgr.Wtr_dir(tid)), tid);}
+ public static Xob_xdat_file_wtr new_by_tid_(int fil_max, Io_url root_dir, byte dir_tid, byte tid) {return new Xob_xdat_file_wtr(fil_max, root_dir.GenSubDir(Xotdb_dir_info_.Tid_name(dir_tid) + Xotdb_dir_info.Wtr_dir(tid)), tid);}
Xob_xdat_file_wtr(int fil_max, Io_url root_dir, byte wtr_tid) {
this.fil_max = fil_max;
this.root_dir = root_dir;
- fil_ext = Xow_fsys_mgr.Wtr_ext(wtr_tid);
+ fil_ext = Xotdb_dir_info.Wtr_ext(wtr_tid);
bfr = Bry_bfr.new_(fil_max);
idx = new int[fil_max / 8]; // ASSUME: any given row must at least be 8 bytes long
Url_gen(fil_idx); // set 1st url
@@ -109,7 +109,7 @@ public class Xob_xdat_file_wtr {
public void Clear() {idx_pos = 0; bfr.Clear();}
public void Rls() {bfr.Rls(); idx = null;}
public void Url_gen_add() {Url_gen(++fil_idx);}
- private void Url_gen(int newIdx) {fil_url = Xow_fsys_mgr.Url_fil(root_dir, newIdx, fil_ext);} Io_url fil_url; Io_url root_dir;
+ private void Url_gen(int newIdx) {fil_url = Xotdb_fsys_mgr.Url_fil(root_dir, newIdx, fil_ext);} Io_url fil_url; Io_url root_dir;
private void Idx_resize(int newLen) {idx = (int[])Array_.Resize(idx, newLen);}
static final String GRP_KEY = "xowa.bldr.xdat_wtr";
private static final byte Dlm_fld = Byte_ascii.Pipe;
diff --git a/400_xowa/src_200_bldr/gplx/xowa/Xobd_rdr.java b/400_xowa/src_200_bldr/gplx/xowa/Xobd_rdr.java
index 303874a72..dc8a5f900 100644
--- a/400_xowa/src_200_bldr/gplx/xowa/Xobd_rdr.java
+++ b/400_xowa/src_200_bldr/gplx/xowa/Xobd_rdr.java
@@ -18,7 +18,7 @@ along with this program. If not, see .
package gplx.xowa; import gplx.*;
import gplx.ios.*; import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.xmls.*;
public class Xobd_rdr implements Xob_cmd {
- public Xobd_rdr(Xob_bldr bldr, Xow_wiki wiki) {this.bldr = bldr; this.wiki = wiki;} private Xob_bldr bldr; Xow_wiki wiki;
+ public Xobd_rdr(Xob_bldr bldr, Xowe_wiki wiki) {this.bldr = bldr; this.wiki = wiki;} private Xob_bldr bldr; Xowe_wiki wiki;
public String Cmd_key() {return KEY;} public static final String KEY = "dump_mgr";
public void Cmd_ini(Xob_bldr bldr) {
Xobd_wkr[] wkr_ary = (Xobd_wkr[])wkrs.Xto_ary(Xobd_wkr.class); int wkr_ary_len = wkr_ary.length;
diff --git a/400_xowa/src_200_bldr/gplx/xowa/Xobdc_utl.java b/400_xowa/src_200_bldr/gplx/xowa/Xobdc_utl.java
index 2296726fa..e259de128 100644
--- a/400_xowa/src_200_bldr/gplx/xowa/Xobdc_utl.java
+++ b/400_xowa/src_200_bldr/gplx/xowa/Xobdc_utl.java
@@ -16,8 +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; import gplx.*;
-import gplx.ios.*;
-import gplx.lists.*;
+import gplx.ios.*; import gplx.lists.*;
+import gplx.xowa.tdbs.*;
class Io_sort_filCmd_reg implements Io_sort_filCmd { // 123|bgn|end|1
public Io_sort_filCmd_reg() {}
public void Bfr_add(Io_line_rdr stream) {
@@ -40,11 +40,11 @@ class Io_sort_filCmd_reg implements Io_sort_filCmd { // 123|bgn|end|1
}
class Io_url_gen_nest implements gplx.ios.Io_url_gen {
public Io_url Cur_url() {return cur_url;} Io_url cur_url;
- public Io_url Nxt_url() {cur_url = Xow_fsys_mgr.Url_fil(root_dir, fil_idx++, ext); return cur_url;}
+ public Io_url Nxt_url() {cur_url = Xotdb_fsys_mgr.Url_fil(root_dir, fil_idx++, ext); return cur_url;}
public Io_url[] Prv_urls() {
Io_url[] rv = new Io_url[fil_idx];
for (int i = 0; i < fil_idx; i++) {
- rv[i] = Xow_fsys_mgr.Url_fil(root_dir, fil_idx++, ext);
+ rv[i] = Xotdb_fsys_mgr.Url_fil(root_dir, fil_idx++, ext);
}
return rv;
}
diff --git a/400_xowa/src_200_bldr/gplx/xowa/Xodb_page_raw_parser.java b/400_xowa/src_200_bldr/gplx/xowa/Xodb_page_raw_parser.java
index 17b12baf7..98f98574e 100644
--- a/400_xowa/src_200_bldr/gplx/xowa/Xodb_page_raw_parser.java
+++ b/400_xowa/src_200_bldr/gplx/xowa/Xodb_page_raw_parser.java
@@ -18,7 +18,7 @@ along with this program. If not, see .
package gplx.xowa; import gplx.*;
import gplx.core.brys.*; import gplx.ios.*;
public class Xodb_page_raw_parser {
- public void Init(Gfo_usr_dlg usr_dlg, Xow_wiki wiki, int load_len) {
+ public void Init(Gfo_usr_dlg usr_dlg, Xowe_wiki wiki, int load_len) {
this.wiki = wiki; ns_mgr = wiki.Ns_mgr();
rdr = new Io_line_rdr(usr_dlg, new Io_url[1]);
rdr.Line_dlm_(Byte_ascii.Tab).Load_len_(load_len).Key_gen_(Io_line_rdr_key_gen_all._);
@@ -27,11 +27,11 @@ public class Xodb_page_raw_parser {
public void Reset_one(Io_url url) {
rdr.Reset_one(url);
}
- public void Load(Gfo_usr_dlg usr_dlg, Xow_wiki wiki, Xow_ns ns_itm, Io_url[] urls, int load_len) {
+ public void Load(Gfo_usr_dlg usr_dlg, Xowe_wiki wiki, Xow_ns ns_itm, Io_url[] urls, int load_len) {
this.wiki = wiki; ns_mgr = wiki.Ns_mgr(); this.ns_itm = ns_itm;
rdr = new Io_line_rdr(usr_dlg, urls);
rdr.Line_dlm_(Byte_ascii.Tab).Load_len_(load_len).Key_gen_(Io_line_rdr_key_gen_all._);
- } Io_line_rdr rdr; Xow_wiki wiki; Xow_ns_mgr ns_mgr; Xow_ns ns_itm;
+ } Io_line_rdr rdr; Xowe_wiki wiki; Xow_ns_mgr ns_mgr; Xow_ns ns_itm;
public void Skip_first_line() {
rdr.Read_next();
int pos = Bry_finder.Find_fwd(rdr.Bfr(), Byte_ascii.NewLine);
diff --git a/400_xowa/src_210_bldr_core/gplx/xowa/Xob_itm_basic_base.java b/400_xowa/src_210_bldr_core/gplx/xowa/Xob_itm_basic_base.java
index 6ee8df14d..0cbc25c8a 100644
--- a/400_xowa/src_210_bldr_core/gplx/xowa/Xob_itm_basic_base.java
+++ b/400_xowa/src_210_bldr_core/gplx/xowa/Xob_itm_basic_base.java
@@ -17,9 +17,9 @@ along with this program. If not, see .
*/
package gplx.xowa; import gplx.*;
public abstract class Xob_itm_basic_base implements GfoInvkAble {
- protected Xoa_app app; protected Xob_bldr bldr; protected Xow_wiki wiki; protected Gfo_usr_dlg usr_dlg;
- public void Cmd_ctor(Xob_bldr bldr, Xow_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, Xow_wiki wiki) {
+ 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 public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
if (ctx.Match(k, Invk_owner)) return bldr.Cmd_mgr();
diff --git a/400_xowa/src_210_bldr_core/gplx/xowa/Xob_sql_dump_base.java b/400_xowa/src_210_bldr_core/gplx/xowa/Xob_sql_dump_base.java
index e5735e5cd..a9b93e01c 100644
--- a/400_xowa/src_210_bldr_core/gplx/xowa/Xob_sql_dump_base.java
+++ b/400_xowa/src_210_bldr_core/gplx/xowa/Xob_sql_dump_base.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; import gplx.*;
-import gplx.core.flds.*; import gplx.ios.*; import gplx.xowa.bldrs.*;
+import gplx.core.flds.*; import gplx.ios.*; import gplx.xowa.bldrs.*; import gplx.xowa.tdbs.*;
public abstract class Xob_sql_dump_base extends Xob_itm_dump_base implements Xob_cmd, GfoInvkAble {
public abstract String Cmd_key();
public Io_url Src_fil() {return src_fil;} Io_url src_fil;
@@ -29,10 +29,10 @@ public abstract class Xob_sql_dump_base extends Xob_itm_dump_base implements Xob
this.Init_dump(this.Cmd_key());
make_url_gen = Io_url_gen_.dir_(temp_dir.GenSubDir("make"));
if (src_fil == null) {
- src_fil = Xow_fsys_mgr.Find_file_or_null(wiki.Fsys_mgr().Root_dir(), "*" + Sql_file_name() + "*", ".gz", ".sql");
+ src_fil = Xotdb_fsys_mgr.Find_file_or_null(wiki.Fsys_mgr().Root_dir(), "*" + Sql_file_name() + "*", ".gz", ".sql");
if (src_fil == null) {
String msg = String_.Format(".sql file not found in dir: {0} {1}", Sql_file_name(), wiki.Fsys_mgr().Root_dir());
- app.Gui_wtr().Warn_many("", "", msg);
+ app.Usr_dlg().Warn_many("", "", msg);
app.Gui_mgr().Kit().Ask_ok("", "", msg);
fail = true;
return;
diff --git a/400_xowa/src_210_bldr_core/gplx/xowa/Xobc_deploy_copy.java b/400_xowa/src_210_bldr_core/gplx/xowa/Xobc_deploy_copy.java
index d58924464..00ca45ac1 100644
--- a/400_xowa/src_210_bldr_core/gplx/xowa/Xobc_deploy_copy.java
+++ b/400_xowa/src_210_bldr_core/gplx/xowa/Xobc_deploy_copy.java
@@ -16,22 +16,22 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa; import gplx.*;
-import gplx.xowa.bldrs.*;
+import gplx.xowa.bldrs.*; import gplx.xowa.tdbs.*;
public class Xobc_deploy_copy extends Xob_itm_basic_base implements Xob_cmd, GfoInvkAble {
- public Xobc_deploy_copy(Xob_bldr bldr, Xow_wiki wiki) {this.Cmd_ctor(bldr, wiki);}
+ public Xobc_deploy_copy(Xob_bldr bldr, Xowe_wiki wiki) {this.Cmd_ctor(bldr, wiki);}
public String Cmd_key() {return KEY;} public static final String KEY = "deploy.copy";
public void Cmd_ini(Xob_bldr bldr) {}
public void Cmd_bgn(Xob_bldr bldr) {}
public void Cmd_end() {}
public void Cmd_run() {
Io_url src_root_dir = wiki.Fsys_mgr().Root_dir();
- Xow_fsys_mgr url_mgr = wiki.Fsys_mgr();
- Copy_dir_root(src_root_dir, Xow_dir_info_.Name_cfg);
- Copy_dir_ns(url_mgr.Ns_dir(), Xow_dir_info_.Name_page);
- Copy_dir_ns(url_mgr.Ns_dir(), Xow_dir_info_.Name_title);
- Copy_dir_root(src_root_dir, Xow_dir_info_.Name_site, Xow_dir_info_.Name_category);
- Copy_dir_root(src_root_dir, Xow_dir_info_.Name_site, Xow_dir_info_.Name_id);
- Copy_dir_root(src_root_dir, Xow_dir_info_.Name_site, Xow_dir_info_.Name_search_ttl);
+ Xotdb_fsys_mgr url_mgr = wiki.Tdb_fsys_mgr();
+ Copy_dir_root(src_root_dir, Xotdb_dir_info_.Name_cfg);
+ Copy_dir_ns(url_mgr.Ns_dir(), Xotdb_dir_info_.Name_page);
+ Copy_dir_ns(url_mgr.Ns_dir(), Xotdb_dir_info_.Name_title);
+ Copy_dir_root(src_root_dir, Xotdb_dir_info_.Name_site, Xotdb_dir_info_.Name_category);
+ Copy_dir_root(src_root_dir, Xotdb_dir_info_.Name_site, Xotdb_dir_info_.Name_id);
+ Copy_dir_root(src_root_dir, Xotdb_dir_info_.Name_site, Xotdb_dir_info_.Name_search_ttl);
}
public void Cmd_print() {}
private void Copy_dir_ns(Io_url root, String name) {
@@ -47,7 +47,7 @@ public class Xobc_deploy_copy extends Xob_itm_basic_base implements Xob_cmd, Gfo
dir_name = name + Xobc_deploy_zip.Dir_zip_suffix;
}
}
- Copy_dir(src_sub_dir, trg_root_dir.GenSubDir_nest(Xow_dir_info_.Name_ns, ns_dir.NameOnly(), dir_name));
+ Copy_dir(src_sub_dir, trg_root_dir.GenSubDir_nest(Xotdb_dir_info_.Name_ns, ns_dir.NameOnly(), dir_name));
}
}
private void Copy_dir_root(Io_url src_root_dir, String... sub_dirs) {
diff --git a/400_xowa/src_210_bldr_core/gplx/xowa/Xobc_deploy_zip.java b/400_xowa/src_210_bldr_core/gplx/xowa/Xobc_deploy_zip.java
index af2c09ceb..67ad97c36 100644
--- a/400_xowa/src_210_bldr_core/gplx/xowa/Xobc_deploy_zip.java
+++ b/400_xowa/src_210_bldr_core/gplx/xowa/Xobc_deploy_zip.java
@@ -16,21 +16,21 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa; import gplx.*;
-import gplx.xowa.bldrs.*;
+import gplx.xowa.bldrs.*; import gplx.xowa.tdbs.*;
public class Xobc_deploy_zip extends Xob_itm_basic_base implements Xob_cmd {
- public Xobc_deploy_zip(Xob_bldr bldr, Xow_wiki wiki) {this.Cmd_ctor(bldr, wiki);}
+ public Xobc_deploy_zip(Xob_bldr bldr, Xowe_wiki wiki) {this.Cmd_ctor(bldr, wiki);}
public String Cmd_key() {return KEY;} public static final String KEY = "deploy.zip";
public void Cmd_ini(Xob_bldr bldr) {}
public void Cmd_bgn(Xob_bldr bldr) {}
- public void Cmd_run() {Exec(bldr, Xow_dir_info_.Name_page);}
+ public void Cmd_run() {Exec(bldr, Xotdb_dir_info_.Name_page);}
public void Cmd_end() {}
public void Cmd_print() {}
private void Exec(Xob_bldr bldr, String type_name) {
Log("initing wiki");
try {wiki.Init_assert();}
catch (Exception exc) {Log("failed to init wiki: ~{0}", Err_.Message_gplx_brief(exc));}
- Log("probing ns_dirs: ~{0}", wiki.Fsys_mgr().Ns_dir().Raw());
- Io_url[] ns_dirs = Io_mgr._.QueryDir_args(wiki.Fsys_mgr().Ns_dir()).DirOnly_().ExecAsUrlAry();
+ Log("probing ns_dirs: ~{0}", wiki.Tdb_fsys_mgr().Ns_dir().Raw());
+ Io_url[] ns_dirs = Io_mgr._.QueryDir_args(wiki.Tdb_fsys_mgr().Ns_dir()).DirOnly_().ExecAsUrlAry();
for (Io_url ns_dir : ns_dirs) {
Log("zipping dir: ~{0}", ns_dir.Raw());
String ns_num = ns_dir.NameOnly();
@@ -47,10 +47,10 @@ public class Xobc_deploy_zip extends Xob_itm_basic_base implements Xob_cmd {
Io_url fil = fils[i];
bldr.StatusMgr_prog_fmt(i, fils.length, -1, "zipping ~{0} ~{1} ~{2} of ~{3}", type_name, ns_name, Int_.Xto_str_pad_bgn(i, 6), fils_len_str);
Io_url trg_fil = Gen_trg(root_dir, fil, type_name);
- if (String_.Eq(fil.NameAndExt(), Xow_dir_info_.Name_reg_fil)) // do not zip reg.csv
+ if (String_.Eq(fil.NameAndExt(), Xotdb_dir_info_.Name_reg_fil)) // do not zip reg.csv
Io_mgr._.CopyFil(fil, trg_fil, true);
else
- zip_mgr.Zip_fil(fil, trg_fil.GenNewExt(Xow_dir_info_.Ext_zip));
+ zip_mgr.Zip_fil(fil, trg_fil.GenNewExt(Xotdb_dir_info_.Ext_zip));
}
if (delete_dirs_page) Io_mgr._.DeleteDirDeep(root_dir.GenSubDir(type_name));
}
diff --git a/400_xowa/src_210_bldr_core/gplx/xowa/Xobc_parse_dump_templates.java b/400_xowa/src_210_bldr_core/gplx/xowa/Xobc_parse_dump_templates.java
index 880ee6a77..1e9c84e20 100644
--- a/400_xowa/src_210_bldr_core/gplx/xowa/Xobc_parse_dump_templates.java
+++ b/400_xowa/src_210_bldr_core/gplx/xowa/Xobc_parse_dump_templates.java
@@ -18,7 +18,7 @@ along with this program. If not, see .
package gplx.xowa; import gplx.*;
import gplx.ios.*;
public class Xobc_parse_dump_templates extends Xob_itm_dump_base implements Xobd_wkr, GfoInvkAble {
- public Xobc_parse_dump_templates(Xob_bldr bldr, Xow_wiki wiki) {this.Cmd_ctor(bldr, wiki);}
+ public Xobc_parse_dump_templates(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) {}
diff --git a/400_xowa/src_240_install/gplx/xowa/Xoa_css_extractor.java b/400_xowa/src_240_install/gplx/xowa/Xoa_css_extractor.java
index ffacb4739..fea13c3e0 100644
--- a/400_xowa/src_240_install/gplx/xowa/Xoa_css_extractor.java
+++ b/400_xowa/src_240_install/gplx/xowa/Xoa_css_extractor.java
@@ -24,42 +24,42 @@ public class Xoa_css_extractor {
public Xoa_css_extractor Failover_dir_(Io_url v) {failover_dir = v; return this;} private Io_url failover_dir;
public Xoa_css_extractor Wiki_html_dir_(Io_url v) {wiki_html_dir = v; return this;} private Io_url wiki_html_dir;
public Xoa_css_extractor Mainpage_url_(String v) {mainpage_url = v; return this;} private String mainpage_url;
- public Xoa_css_extractor Protocol_prefix_(String v) {protocol_prefix = v; return this;} private String protocol_prefix = "http:";
+ public Xoa_css_extractor Protocol_prefix_(String v) {protocol_prefix = v; return this;} private String protocol_prefix = "https:";// NOTE: changed from http to https; DATE:2015-02-17
public Xoa_css_extractor Page_fetcher_(Xow_page_fetcher v) {page_fetcher = v; return this;} private Xow_page_fetcher page_fetcher;
public Xoa_css_extractor Css_img_downloader_(Xoa_css_img_downloader v) {this.css_img_downloader = v; return this;} private Xoa_css_img_downloader css_img_downloader;
public Xoa_css_extractor Opt_download_css_common_(boolean v) {opt_download_css_common = v; return this;} private boolean opt_download_css_common;
public Xoa_css_extractor Url_encoder_(Url_encoder v) {url_encoder = v; return this;} private Url_encoder url_encoder;
public Xoa_css_extractor Wiki_code_(byte[] v) {this.wiki_code = v; return this;} private byte[] wiki_code = null;
private byte[] mainpage_html; private boolean lang_is_ltr = true;
- public void Init_by_app(Xoa_app app) {
+ public void Init_by_app(Xoae_app app) {
this.usr_dlg = app.Usr_dlg();
- Xof_download_wkr download_wkr = app.File_mgr().Download_mgr().Download_wkr();
+ Xof_download_wkr download_wkr = app.Wmf_mgr().Download_wkr();
this.download_xrg = download_wkr.Download_xrg();
css_img_downloader = new Xoa_css_img_downloader().Ctor(usr_dlg, download_wkr, Bry_.new_utf8_(protocol_prefix));
failover_dir = app.Fsys_mgr().Bin_any_dir().GenSubDir_nest("html", "xowa", "import");
- url_encoder = app.Encoder_mgr().Url();
+ url_encoder = Xoa_app_.Utl_encoder_mgr().Url();
}
- public void Install_assert(Xow_wiki wiki, Io_url wiki_html_dir) {
+ public void Install_assert(Xowe_wiki wiki, Io_url wiki_html_dir) {
try {
Io_url css_common_url = wiki_html_dir.GenSubFil(Css_common_name);
Io_url css_wiki_url = wiki_html_dir.GenSubFil(Css_wiki_name);
Xoh_page_wtr_mgr wiki_article = wiki.Html_mgr().Page_wtr_mgr();
wiki_article.Css_common_bry_(css_common_url).Css_wiki_bry_(css_wiki_url);
- if (wiki.Domain_tid() == Xow_wiki_domain_.Tid_home || Env_.Mode_testing()) return; // NOTE: do not download if home_wiki; also needed for TEST
+ if (wiki.Domain_tid() == Xow_domain_.Tid_int_home || Env_.Mode_testing()) return; // NOTE: do not download if home_wiki; also needed for TEST
if (Io_mgr._.ExistsFil(css_wiki_url)) return; // css file exists; nothing to generate
- wiki.App().Usr_dlg().Log_many("", "", "generating css for '~{0}'", wiki.Domain_str());
+ wiki.Appe().Usr_dlg().Log_many("", "", "generating css for '~{0}'", wiki.Domain_str());
this.Install(wiki, wiki_html_dir);
}
catch (Exception e) { // if error, failover; paranoia catch for outliers like bad network connectivity fail, or MediaWiki: message not existing; DATE:2013-11-21
- wiki.App().Usr_dlg().Warn_many("", "", "failed while trying to generate css; failing over; wiki='~{0}' err=~{1}", wiki.Domain_str(), Err_.Message_gplx(e));
+ wiki.Appe().Usr_dlg().Warn_many("", "", "failed while trying to generate css; failing over; wiki='~{0}' err=~{1}", wiki.Domain_str(), Err_.Message_gplx(e));
Css_common_failover(); // only failover xowa_common.css; xowa_wiki.css comes from MediaWiki:Common.css / Vector.css
}
}
- public void Install(Xow_wiki wiki, Io_url wiki_html_dir) {
- opt_download_css_common = wiki.App().Setup_mgr().Dump_mgr().Css_commons_download();
- if (!wiki.App().User().Cfg_mgr().Security_mgr().Web_access_enabled()) opt_download_css_common = false; // if !web_access_enabled, don't download
+ public void Install(Xowe_wiki wiki, Io_url wiki_html_dir) {
+ opt_download_css_common = wiki.Appe().Setup_mgr().Dump_mgr().Css_commons_download();
+ if (!wiki.Appe().User().Cfg_mgr().Security_mgr().Web_access_enabled()) opt_download_css_common = false; // if !web_access_enabled, don't download
this.wiki_domain = wiki.Domain_bry();
- mainpage_url = "http://" + wiki.Domain_str(); // NOTE: cannot reuse protocol_prefix b/c "//" needs to be added manually; protocol_prefix is used for logo and images which have form of "//domain/image.png"
+ mainpage_url = "https://" + wiki.Domain_str(); // NOTE: cannot reuse protocol_prefix b/c "//" needs to be added manually; protocol_prefix is used for logo and images which have form of "//domain/image.png"; changed to https; DATE:2015-02-17
if (page_fetcher == null) page_fetcher = new Xow_page_fetcher_wiki();
page_fetcher.Wiki_(wiki);
this.wiki_html_dir = wiki_html_dir;
@@ -174,7 +174,7 @@ public class Xoa_css_extractor {
}
private byte[] Mainpage_download_html() {
String main_page_url_temp = mainpage_url;
- if (Bry_.Eq(wiki_domain, Xow_wiki_domain_.Url_wikidata)) // if wikidata, download css for a Q* page; Main_Page has less css; DATE:2014-09-30
+ if (Bry_.Eq(wiki_domain, Xow_domain_.Domain_bry_wikidata)) // if wikidata, download css for a Q* page; Main_Page has less css; DATE:2014-09-30
main_page_url_temp = main_page_url_temp + "/wiki/Q2";
String log_msg = usr_dlg.Prog_many("", "main_page.download", "downloading main page for '~{0}'", main_page_url_temp);
byte[] main_page_html = download_xrg.Prog_fmt_hdr_(log_msg).Exec_as_bry(main_page_url_temp);
diff --git a/400_xowa/src_240_install/gplx/xowa/Xob_dump_file.java b/400_xowa/src_240_install/gplx/xowa/Xob_dump_file.java
index b86205047..108ebaad3 100644
--- a/400_xowa/src_240_install/gplx/xowa/Xob_dump_file.java
+++ b/400_xowa/src_240_install/gplx/xowa/Xob_dump_file.java
@@ -18,7 +18,7 @@ along with this program. If not, see .
package gplx.xowa; import gplx.*;
import gplx.xowa.wikis.*;
public class Xob_dump_file {
- public Xow_wiki_domain Wiki_type() {return wiki_type;} private Xow_wiki_domain wiki_type;
+ public Xow_domain Wiki_type() {return wiki_type;} private Xow_domain wiki_type;
public String Dump_date() {return dump_date;} public void Dump_date_(String v) {dump_date = v;} String dump_date;
public String Dump_file_type() {return dump_file_type;} private String dump_file_type;
public String Server_url() {return server_url;} private String server_url;
@@ -29,7 +29,7 @@ public class Xob_dump_file {
public byte[] Wiki_alias() {return wiki_alias;} private byte[] wiki_alias;
public Xob_dump_file Ctor(String wiki_domain, String dump_date, String dump_file_type) {
this.dump_date = dump_date; this.dump_file_type = dump_file_type;
- this.wiki_type = Xow_wiki_domain_.parse_by_domain(Bry_.new_ascii_(wiki_domain));
+ this.wiki_type = Xow_domain_.parse(Bry_.new_ascii_(wiki_domain));
this.wiki_alias = Xow_wiki_alias.Build_alias(wiki_type);
byte[] dump_file_bry = Bry_.new_utf8_(dump_file_type);
byte dump_file_tid = Xow_wiki_alias.Parse__tid(dump_file_bry);
diff --git a/400_xowa/src_240_install/gplx/xowa/Xoi_cmd_base.java b/400_xowa/src_240_install/gplx/xowa/Xoi_cmd_base.java
index 9de1bee46..5788f61aa 100644
--- a/400_xowa/src_240_install/gplx/xowa/Xoi_cmd_base.java
+++ b/400_xowa/src_240_install/gplx/xowa/Xoi_cmd_base.java
@@ -41,9 +41,9 @@ abstract class Xoi_cmd_base implements Gfo_thread_cmd {
}
public boolean Async_running() {return running;} private boolean running;
public void Process_async() {
- Xoa_app app = install_mgr.App();
+ Xoae_app app = install_mgr.App();
Xob_bldr bldr = app.Bldr();
- Xow_wiki wiki = app.Wiki_mgr().Get_by_key_or_make(Bry_.new_ascii_(wiki_key));
+ Xowe_wiki wiki = app.Wiki_mgr().Get_by_key_or_make(Bry_.new_ascii_(wiki_key));
wiki.Init_assert();
bldr.Cmd_mgr().Clear();
Process_async_init(app, wiki, bldr);
@@ -54,13 +54,13 @@ abstract class Xoi_cmd_base implements Gfo_thread_cmd {
install_mgr.Cmd_mgr().Working_n_();
throw Err_.err_(e, "error during import: ~{0}", Err_.Message_hdr_or_message(e));
}
- app.Gui_wtr().Prog_none("", "clear", "");
- app.Gui_wtr().Note_none("", "clear", "");
+ app.Usr_dlg().Prog_none("", "clear", "");
+ app.Usr_dlg().Note_none("", "clear", "");
Process_async_done(app, wiki, bldr);
running = false;
}
- public abstract void Process_async_init(Xoa_app app, Xow_wiki wiki, Xob_bldr bldr);
- public abstract void Process_async_done(Xoa_app app, Xow_wiki wiki, Xob_bldr bldr);
+ public abstract void Process_async_init(Xoae_app app, Xowe_wiki wiki, Xob_bldr bldr);
+ public abstract void Process_async_done(Xoae_app app, Xowe_wiki wiki, Xob_bldr bldr);
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
if (ctx.Match(k, Invk_process_async)) Process_async();
else if (ctx.Match(k, Invk_owner)) return owner;
@@ -77,13 +77,13 @@ class Xoi_cmd_category2_categorylinks extends Xoi_cmd_wiki_download { public Xoi
public static final String KEY_category2 = "wiki.category2.download.categorylinks";
}
class Xoi_cmd_category2_build extends Xoi_cmd_base {
- public Xoi_cmd_category2_build(Xoi_setup_mgr install_mgr, String wiki_key) {this.Ctor(install_mgr, wiki_key); this.app = install_mgr.App(); this.wiki_key = wiki_key;} private Xoa_app app; private String wiki_key;
+ public Xoi_cmd_category2_build(Xoi_setup_mgr install_mgr, String wiki_key) {this.Ctor(install_mgr, wiki_key); this.app = install_mgr.App(); this.wiki_key = wiki_key;} private Xoae_app app; private String wiki_key;
@Override public void Cmd_ctor() {
- Xow_wiki wiki = app.Wiki_mgr().Get_by_key_or_make(Bry_.new_utf8_(wiki_key));
+ Xowe_wiki wiki = app.Wiki_mgr().Get_by_key_or_make(Bry_.new_utf8_(wiki_key));
wiki.Import_cfg().Category_version_(gplx.xowa.ctgs.Xoa_ctg_mgr.Version_2);
}
@Override public String Async_key() {return KEY;} public static final String KEY = "wiki.category2.build";
- @Override public void Process_async_init(Xoa_app app, Xow_wiki wiki, Xob_bldr bldr) {
+ @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, "import.sql.category_registry", "import.sql.categorylinks", "import.sql.hiddencat");
@@ -91,21 +91,21 @@ class Xoi_cmd_category2_build extends Xoi_cmd_base {
else
bldr.Cmd_mgr().Add_many(wiki, "ctg.hiddencat_sql", "ctg.hiddencat_ttl", "ctg.link_sql", "ctg.link_idx");
}
- @Override public void Process_async_done(Xoa_app app, Xow_wiki wiki, Xob_bldr bldr) {
- app.Gui_wtr().Prog_many("", "", "category2 setup done");
+ @Override public void Process_async_done(Xoae_app app, Xowe_wiki wiki, Xob_bldr bldr) {
+ app.Usr_dlg().Prog_many("", "", "category2 setup done");
}
}
class Xoi_cmd_search2_build extends Xoi_cmd_base {
public Xoi_cmd_search2_build(Xoi_setup_mgr install_mgr, String wiki_key) {this.Ctor(install_mgr, wiki_key);}
@Override public String Async_key() {return KEY;} public static final String KEY = "wiki.search2.build";
- @Override public void Process_async_init(Xoa_app app, Xow_wiki wiki, Xob_bldr bldr) {
+ @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, "import.sql.search_title.cmd");
}
}
- @Override public void Process_async_done(Xoa_app app, Xow_wiki wiki, Xob_bldr bldr) {
- app.Gui_wtr().Prog_many("", "", "search2 setup done");
+ @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();
}
}
diff --git a/400_xowa/src_240_install/gplx/xowa/Xoi_cmd_dumpfile.java b/400_xowa/src_240_install/gplx/xowa/Xoi_cmd_dumpfile.java
index 092fd5394..e47920038 100644
--- a/400_xowa/src_240_install/gplx/xowa/Xoi_cmd_dumpfile.java
+++ b/400_xowa/src_240_install/gplx/xowa/Xoi_cmd_dumpfile.java
@@ -45,7 +45,7 @@ class Xoi_cmd_dumpfile {
return this;
}
public Gfo_thread_cmd Exec(Xoi_cmd_mgr cmd_mgr) {
- Xow_wiki wiki = cmd_mgr.App().Wiki_mgr().Get_by_key_or_make(domain);
+ Xowe_wiki wiki = cmd_mgr.App().Wiki_mgr().Get_by_key_or_make(domain);
if (bz2_unzip) { // unzip requested; add unzip cmd
GfoMsg unzip_msg = GfoMsg_.new_parse_(Gfo_thread_cmd_unzip.KEY).Add("v", Gfo_thread_cmd_unzip.KEY).Add("src", bz2_url.Raw()).Add("trg", xml_url.Raw());
Gfo_thread_cmd_unzip unzip_cmd = (Gfo_thread_cmd_unzip)cmd_mgr.Cmd_add(unzip_msg);
diff --git a/400_xowa/src_240_install/gplx/xowa/Xoi_cmd_mgr.java b/400_xowa/src_240_install/gplx/xowa/Xoi_cmd_mgr.java
index 16cdb6cd8..993abfda1 100644
--- a/400_xowa/src_240_install/gplx/xowa/Xoi_cmd_mgr.java
+++ b/400_xowa/src_240_install/gplx/xowa/Xoi_cmd_mgr.java
@@ -19,8 +19,8 @@ package gplx.xowa; import gplx.*;
import gplx.threads.*;
public class Xoi_cmd_mgr implements GfoInvkAble {
ListAdp cmds = ListAdp_.new_();
- public Xoi_cmd_mgr(Xoi_setup_mgr install_mgr) {this.app = install_mgr.App(); this.install_mgr = install_mgr;} private Xoa_app app; Xoi_setup_mgr install_mgr;
- public Xoa_app App() {return app;}
+ public Xoi_cmd_mgr(Xoi_setup_mgr install_mgr) {this.app = install_mgr.App(); this.install_mgr = install_mgr;} private Xoae_app app; Xoi_setup_mgr install_mgr;
+ public Xoae_app App() {return app;}
public void Canceled_y_() {canceled = true;} private boolean canceled = false;
public boolean Working() {return working;} public void Working_n_() {working = false;} private boolean working;
private void Process_async(Gfo_thread_cmd cmd) {
@@ -90,7 +90,7 @@ public class Xoi_cmd_mgr implements GfoInvkAble {
if (dumpfile_cmd) {
if (String_.Eq(cmd.Async_key(), Xoi_cmd_wiki_download.Key_wiki_download)) continue; // skip download if wiki.dump_file
else if (String_.Eq(cmd.Async_key(), Xoi_cmd_wiki_unzip.KEY_dump)) {
- Xow_wiki wiki = app.Wiki_mgr().Get_by_key_or_make(Bry_.new_utf8_(wiki_key));
+ Xowe_wiki wiki = app.Wiki_mgr().Get_by_key_or_make(Bry_.new_utf8_(wiki_key));
if (wiki.Import_cfg().Src_fil_xml() != null) continue; // skip unzip if xml exists
}
else if (String_.Eq(cmd.Async_key(), Xoi_cmd_wiki_import.KEY)) {
@@ -118,7 +118,7 @@ public class Xoi_cmd_mgr implements GfoInvkAble {
Gfo_thread_cmd Cmd_new(GfoMsg m) {
String cmd_key = m.ReadStr("v");
if (String_.Eq(cmd_key, Gfo_thread_cmd_download.KEY)) return new Gfo_thread_cmd_download().Init("downloading", m.ReadStr("src"), Bry_fmtr_eval_mgr_.Eval_url(app.Url_cmd_eval(), m.ReadBry("trg"))).Url_eval_mgr_(app.Url_cmd_eval()).Owner_(this).Ctor(app.Usr_dlg(), app.Gui_mgr().Kit());
- else if (String_.Eq(cmd_key, Gfo_thread_cmd_unzip.KEY)) return new Gfo_thread_cmd_unzip().Url_eval_mgr_(app.Url_cmd_eval()).Owner_(this).Init(app.Usr_dlg(), app.Gui_mgr().Kit(), app.Launcher().App_decompress_bz2(), app.Launcher().App_decompress_zip(), app.Launcher().App_decompress_gz(), Bry_fmtr_eval_mgr_.Eval_url(app.Url_cmd_eval(), m.ReadBry("src")), Bry_fmtr_eval_mgr_.Eval_url(app.Url_cmd_eval(), m.ReadBry("trg")));
+ else if (String_.Eq(cmd_key, Gfo_thread_cmd_unzip.KEY)) return new Gfo_thread_cmd_unzip().Url_eval_mgr_(app.Url_cmd_eval()).Owner_(this).Init(app.Usr_dlg(), app.Gui_mgr().Kit(), app.Prog_mgr().App_decompress_bz2(), app.Prog_mgr().App_decompress_zip(), app.Prog_mgr().App_decompress_gz(), Bry_fmtr_eval_mgr_.Eval_url(app.Url_cmd_eval(), m.ReadBry("src")), Bry_fmtr_eval_mgr_.Eval_url(app.Url_cmd_eval(), m.ReadBry("trg")));
else if (String_.Eq(cmd_key, Gfo_thread_cmd_replace.KEY)) return new Gfo_thread_cmd_replace().Url_eval_mgr_(app.Url_cmd_eval()).Owner_(this).Init(app.Usr_dlg(), app.Gui_mgr().Kit(), Bry_fmtr_eval_mgr_.Eval_url(app.Url_cmd_eval(), m.ReadBry("fil")));
else if (String_.Eq(cmd_key, Xoi_cmd_wiki_image_cfg.KEY_dump)) return new Xoi_cmd_wiki_image_cfg(app, Bry_fmtr_eval_mgr_.Eval_url(app.Url_cmd_eval(), m.ReadBry("fil"))).Owner_(this);
else if (String_.Eq(cmd_key, Xoi_cmd_wiki_goto_page.KEY)) return new Xoi_cmd_wiki_goto_page(app, m.ReadStr("v")).Owner_(this);
diff --git a/400_xowa/src_240_install/gplx/xowa/Xoi_cmd_wiki.java b/400_xowa/src_240_install/gplx/xowa/Xoi_cmd_wiki.java
index 1ff99fdcc..7e9121e52 100644
--- a/400_xowa/src_240_install/gplx/xowa/Xoi_cmd_wiki.java
+++ b/400_xowa/src_240_install/gplx/xowa/Xoi_cmd_wiki.java
@@ -30,7 +30,7 @@ class Xoi_cmd_wiki_download extends Gfo_thread_cmd_download implements Gfo_threa
@gplx.Virtual public String Download_file_ext() {return ".xml.bz2";} // wiki.download is primarily used for dump files; default to .xml.bz2; NOTE: changed from ".xml"; DATE:2013-11-07
@Override public String Async_key() {return Key_wiki_download;} public static final String Key_wiki_download = "wiki.download";
@Override public byte Async_init() {
- Xoa_app app = install_mgr.App();
+ Xoae_app app = install_mgr.App();
Xob_dump_file dump_file = Xob_dump_file.new_(wiki_key, dump_date, dump_type);
boolean connected = Xob_dump_file_.Connect_first(dump_file, install_mgr.Dump_mgr().Server_urls());
if (connected)
@@ -41,7 +41,7 @@ class Xoi_cmd_wiki_download extends Gfo_thread_cmd_download implements Gfo_threa
Dump_servers_offline_msg_shown = true;
}
}
- Xow_wiki wiki = app.Wiki_mgr().Get_by_key_or_make(dump_file.Wiki_type().Domain_bry());
+ Xowe_wiki wiki = app.Wiki_mgr().Get_by_key_or_make(dump_file.Wiki_type().Domain_bry());
Io_url root_dir = wiki.Fsys_mgr().Root_dir();
Io_url[] trg_fil_ary = Io_mgr._.QueryDir_args(root_dir).FilPath_("*." + dump_type + Download_file_ext() + "*").ExecAsUrlAry();
Io_url trg = trg_fil_ary.length == 0 ? root_dir.GenSubFil(dump_file.File_name()) : trg_fil_ary[0];
@@ -55,8 +55,8 @@ class Xoi_cmd_wiki_unzip extends Gfo_thread_cmd_unzip implements Gfo_thread_cmd
public Xoi_cmd_wiki_unzip(Xoi_setup_mgr install_mgr, String wiki_key, String dump_date, String dump_type) {this.install_mgr = install_mgr; this.Owner_(install_mgr); this.wiki_key = wiki_key; this.dump_date = dump_date; this.dump_type = dump_type;} private Xoi_setup_mgr install_mgr; String wiki_key, dump_date, dump_type;
@Override public String Async_key() {return KEY_dump;}
@Override public byte Async_init() {
- Xoa_app app = install_mgr.App(); Gfui_kit kit = app.Gui_mgr().Kit();
- Xow_wiki wiki = app.Wiki_mgr().Get_by_key_or_make(Bry_.new_utf8_(wiki_key));
+ Xoae_app app = install_mgr.App(); Gfui_kit kit = app.Gui_mgr().Kit();
+ Xowe_wiki wiki = app.Wiki_mgr().Get_by_key_or_make(Bry_.new_utf8_(wiki_key));
Io_url wiki_dir = wiki.Import_cfg().Src_dir();
Io_url[] urls = Io_mgr._.QueryDir_args(wiki_dir).Recur_(false).FilPath_("*.xml.bz2").ExecAsUrlAry();
if (urls.length == 0) {
@@ -65,7 +65,7 @@ class Xoi_cmd_wiki_unzip extends Gfo_thread_cmd_unzip implements Gfo_thread_cmd
}
Io_url src = urls[urls.length - 1];
Io_url trg = app.Fsys_mgr().Wiki_dir().GenSubFil_nest(wiki_key, src.NameOnly()); // NOTE: NameOnly() will strip trailing .bz2; EX: a.xml.bz2 -> a.xml
- super.Init(app.Usr_dlg(), app.Gui_mgr().Kit(), app.Launcher().App_decompress_bz2(), app.Launcher().App_decompress_zip(), app.Launcher().App_decompress_gz(), src, trg);
+ super.Init(app.Usr_dlg(), app.Gui_mgr().Kit(), app.Prog_mgr().App_decompress_bz2(), app.Prog_mgr().App_decompress_zip(), app.Prog_mgr().App_decompress_gz(), src, trg);
this.Term_cmd_for_src_(Term_cmd_for_src_move);
this.Term_cmd_for_src_url_(app.Fsys_mgr().Wiki_dir().GenSubFil_nest("#dump", "done", src.NameAndExt()));
if (Io_mgr._.ExistsFil(trg)) {
@@ -81,7 +81,7 @@ class Xoi_cmd_wiki_unzip extends Gfo_thread_cmd_unzip implements Gfo_thread_cmd
}
static final String GRP_KEY = "xowa.thread.dump.unzip";
}
-class Xoi_cmd_wiki_image_cfg extends Gfo_thread_cmd_replace implements Gfo_thread_cmd { public Xoi_cmd_wiki_image_cfg(Xoa_app app, Io_url url) {this.app = app; super.Init(app.Usr_dlg(), app.Gui_mgr().Kit(), url);} private Xoa_app app;
+class Xoi_cmd_wiki_image_cfg extends Gfo_thread_cmd_replace implements Gfo_thread_cmd { public Xoi_cmd_wiki_image_cfg(Xoae_app app, Io_url url) {this.app = app; super.Init(app.Usr_dlg(), app.Gui_mgr().Kit(), url);} private Xoae_app app;
@Override public void Async_run() {
super.Async_run();
app.Cfg_mgr().Set_by_app("app.files.download.enabled", "y");
@@ -91,7 +91,7 @@ class Xoi_cmd_wiki_image_cfg extends Gfo_thread_cmd_replace implements Gfo_threa
public static final String KEY_dump = "wiki.image_cfg";
}
class Xoi_cmd_wiki_goto_page extends Gfo_thread_cmd_base implements Gfo_thread_cmd {
- public Xoi_cmd_wiki_goto_page(Xoa_app app, String page) {this.app = app; this.page = page; this.Ctor(app.Usr_dlg(), app.Gui_mgr().Kit());} private Xoa_app app; String page;
+ public Xoi_cmd_wiki_goto_page(Xoae_app app, String page) {this.app = app; this.page = page; this.Ctor(app.Usr_dlg(), app.Gui_mgr().Kit());} private Xoae_app app; String page;
@Override public void Async_run() {kit.New_cmd_sync(this).Invk(GfsCtx.new_(), 0, Invk_goto_page, GfoMsg_.Null);}
private void Goto_page(String page) {app.Gui_mgr().Browser_win().Page__navigate_by_url_bar(page);}
@Override public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
@@ -158,16 +158,16 @@ class Xoi_cmd_wiki_zip implements Gfo_thread_cmd {
public void Async_prog_run(int async_sleep_sum) {}
public byte Async_init() {return Gfo_thread_cmd_.Init_ok;}
public boolean Async_term() {
- wiki.Fsys_mgr().Scan_dirs();
- install_mgr.App().Gui_wtr().Log_many(GRP_KEY, "zip.end", "zip.end ~{0}", wiki_key);
- install_mgr.App().Gui_wtr().Prog_many(GRP_KEY, "zip.done", "zip done");
+ wiki.Tdb_fsys_mgr().Scan_dirs();
+ install_mgr.App().Usr_dlg().Log_many(GRP_KEY, "zip.end", "zip.end ~{0}", wiki_key);
+ install_mgr.App().Usr_dlg().Prog_many(GRP_KEY, "zip.done", "zip done");
return true;
}
public GfoInvkAble Owner() {return owner;} public Xoi_cmd_wiki_zip Owner_(GfoInvkAble v) {owner = v; return this;} GfoInvkAble owner;
public Gfo_thread_cmd Async_next_cmd() {return next_cmd;} public void Async_next_cmd_(Gfo_thread_cmd v) {next_cmd = v;} Gfo_thread_cmd next_cmd;
public void Async_run() {
running = true;
- install_mgr.App().Gui_wtr().Log_many(GRP_KEY, "zip.bgn", "zip.bgn ~{0}", wiki_key);
+ install_mgr.App().Usr_dlg().Log_many(GRP_KEY, "zip.bgn", "zip.bgn ~{0}", wiki_key);
ThreadAdp_.invk_(this, Invk_process_async).Start();
}
public boolean Async_running() {
@@ -175,7 +175,7 @@ class Xoi_cmd_wiki_zip implements Gfo_thread_cmd {
}
boolean running, delete_dirs_page = true, notify_done = true;
private void Process_async() {
- Xoa_app app = install_mgr.App();
+ Xoae_app app = install_mgr.App();
Xob_bldr bldr = app.Bldr();
wiki = app.Wiki_mgr().Get_by_key_or_make(Bry_.new_ascii_(wiki_key));
wiki.Init_assert();
@@ -183,10 +183,10 @@ class Xoi_cmd_wiki_zip implements Gfo_thread_cmd {
bldr.Pause_at_end_(false);
((Xobc_deploy_zip)bldr.Cmd_mgr().Add_cmd(wiki, "deploy.zip")).Delete_dirs_page_(delete_dirs_page);
bldr.Run();
- app.Gui_wtr().Prog_none(GRP_KEY, "clear", "");
- app.Gui_wtr().Note_none(GRP_KEY, "clear", "");
+ app.Usr_dlg().Prog_none(GRP_KEY, "clear", "");
+ app.Usr_dlg().Note_none(GRP_KEY, "clear", "");
running = false;
- } private Xow_wiki wiki;
+ } private Xowe_wiki wiki;
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
if (ctx.Match(k, Invk_process_async)) Process_async();
else if (ctx.Match(k, Invk_owner)) return owner;
diff --git a/400_xowa/src_240_install/gplx/xowa/Xoi_cmd_wiki_import.java b/400_xowa/src_240_install/gplx/xowa/Xoi_cmd_wiki_import.java
index 17c38df53..dd0042efd 100644
--- a/400_xowa/src_240_install/gplx/xowa/Xoi_cmd_wiki_import.java
+++ b/400_xowa/src_240_install/gplx/xowa/Xoi_cmd_wiki_import.java
@@ -27,14 +27,14 @@ class Xoi_cmd_wiki_import implements Gfo_thread_cmd {
public void Async_prog_run(int async_sleep_sum) {}
public byte Async_init() {return Gfo_thread_cmd_.Init_ok;}
public boolean Async_term() {
- install_mgr.App().Gui_wtr().Log_many(GRP_KEY, "import.end", "import.end ~{0} ~{1} ~{2}", wiki_key, wiki_date, dump_type);
+ install_mgr.App().Usr_dlg().Log_many(GRP_KEY, "import.end", "import.end ~{0} ~{1} ~{2}", wiki_key, wiki_date, dump_type);
return true;
}
public GfoInvkAble Owner() {return owner;} public Xoi_cmd_wiki_import Owner_(GfoInvkAble v) {owner = v; return this;} GfoInvkAble owner;
public Gfo_thread_cmd Async_next_cmd() {return next_cmd;} public void Async_next_cmd_(Gfo_thread_cmd v) {next_cmd = v;} Gfo_thread_cmd next_cmd;
public void Async_run() {
running = true;
- install_mgr.App().Gui_wtr().Log_many(GRP_KEY, "import.bgn", "import.bgn ~{0} ~{1} ~{2}", wiki_key, wiki_date, dump_type);
+ install_mgr.App().Usr_dlg().Log_many(GRP_KEY, "import.bgn", "import.bgn ~{0} ~{1} ~{2}", wiki_key, wiki_date, dump_type);
ThreadAdp_.invk_(this, Invk_process_async).Start();
}
public boolean Async_running() {
@@ -62,12 +62,12 @@ class Xoi_cmd_wiki_import implements Gfo_thread_cmd {
bldr.Cmd_mgr().Add_cmd(wiki, "import.sql.category_registry");
bldr.Cmd_mgr().Add_cmd(wiki, "import.sql.categorylinks");
}
- if (wiki.App().Setup_mgr().Dump_mgr().Search_version() == gplx.xowa.specials.search.Xosrh_core.Version_2)
+ if (wiki.Appe().Setup_mgr().Dump_mgr().Search_version() == gplx.xowa.specials.search.Xosrh_core.Version_2)
bldr.Cmd_mgr().Add_cmd(wiki, "import.sql.search_title.wkr");
bldr.Cmd_mgr().Add_cmd(wiki, "import.sql.term");
}
private void Process_async() {
- Xoa_app app = install_mgr.App();
+ Xoae_app app = install_mgr.App();
app.Usr_dlg().Prog_one("", "", "preparing import: ~{0}", wiki_key);
Xob_bldr bldr = app.Bldr();
wiki = app.Wiki_mgr().Get_by_key_or_make(Bry_.new_ascii_(wiki_key));
@@ -80,8 +80,8 @@ class Xoi_cmd_wiki_import implements Gfo_thread_cmd {
else
Process_txt(bldr);
bldr.Run();
- app.Gui_wtr().Prog_none(GRP_KEY, "clear", "");
- app.Gui_wtr().Note_none(GRP_KEY, "clear", "");
+ app.Usr_dlg().Prog_none(GRP_KEY, "clear", "");
+ app.Usr_dlg().Note_none(GRP_KEY, "clear", "");
app.User().Available_from_fsys();
wiki.Init_needed_(true);
wiki.Html_mgr().Page_wtr_mgr().Init_(true);
@@ -98,7 +98,7 @@ class Xoi_cmd_wiki_import implements Gfo_thread_cmd {
running = false;
wiki.Import_cfg().Src_fil_xml_(null).Src_fil_bz2_(null); // reset file else error when going from Import/Script to Import/List
app.Gui_mgr().Kit().New_cmd_sync(this).Invk(GfsCtx.new_(), 0, Invk_open_wiki, GfoMsg_.Null);
- } private Xow_wiki wiki;
+ } private Xowe_wiki wiki;
private void Open_wiki(String wiki_key) {
Xog_win_itm main_win = install_mgr.App().Gui_mgr().Browser_win();
if (main_win.Active_page() == null) return; // will be null when invoked through cmd-line
diff --git a/400_xowa/src_240_install/gplx/xowa/Xoi_cmd_wiki_tst.java b/400_xowa/src_240_install/gplx/xowa/Xoi_cmd_wiki_tst.java
index 4f76d89c3..a24b3b5a3 100644
--- a/400_xowa/src_240_install/gplx/xowa/Xoi_cmd_wiki_tst.java
+++ b/400_xowa/src_240_install/gplx/xowa/Xoi_cmd_wiki_tst.java
@@ -36,7 +36,7 @@ public class Xoi_cmd_wiki_tst {
private void Bld_import_list_itm2(Bry_bfr bfr, Wmf_latest_parser parser, Xob_dump_file dump_file, Bry_fmtr_arg_time time_fmtr, String[] ary, int i) {
String domain_str = ary[i];
byte[] domain_bry = Bry_.new_ascii_(domain_str);
- Xow_wiki_domain domain_itm = Xow_wiki_domain_.parse_by_domain(domain_bry);
+ Xow_domain domain_itm = Xow_domain_.parse(domain_bry);
byte[] wmf_key_bry = Bry_.Replace(Xow_wiki_alias.Build_alias(domain_itm), Byte_ascii.Dash, Byte_ascii.Underline);
String wmf_key = String_.new_utf8_(wmf_key_bry);
String url = "http://dumps.wikimedia.org/" + wmf_key + "/latest";
@@ -55,7 +55,7 @@ public class Xoi_cmd_wiki_tst {
Wmf_latest_itm latest_itm = parser.Get_by(pages_articles_key);
bfr.Add(domain_bry).Add_byte_pipe();
bfr.Add_str(dump_file.File_url()).Add_byte_pipe();
- bfr.Add(Xow_wiki_domain_.Key_by_tid(domain_itm.Wiki_tid())).Add_byte_pipe();
+ bfr.Add(Xow_domain_.Tid__get_bry(domain_itm.Domain_tid())).Add_byte_pipe();
long src_size = latest_itm.Size();
bfr.Add_long_variable(src_size).Add_byte_pipe();
bfr.Add_str(gplx.ios.Io_size_.Xto_str(src_size)).Add_byte_pipe();
@@ -85,7 +85,7 @@ public class Xoi_cmd_wiki_tst {
Tfds.WriteText(String_.Format("passed: {0}\n", itm));
bfr.Add_str(itm).Add_byte_pipe();
bfr.Add_str(dump_file.File_url()).Add_byte_pipe();
- bfr.Add(Xow_wiki_domain_.Key_by_tid(dump_file.Wiki_type().Wiki_tid())).Add_byte_pipe();
+ bfr.Add(Xow_domain_.Tid__get_bry(dump_file.Wiki_type().Wiki_tid())).Add_byte_pipe();
// Xol_lang_itm lang_itm = Xol_lang_itm_.Get_by_key(wiki_type.Lang_key());
// if (lang_itm == null) lang_itm = Xol_lang_itm_.Get_by_key(Xol_lang_.Key_en); // commons, species, meta, etc will have no lang
// bfr.Add(lang_itm.Local_name()).Add_byte_pipe();
diff --git a/400_xowa/src_240_install/gplx/xowa/Xoi_setup_mgr.java b/400_xowa/src_240_install/gplx/xowa/Xoi_setup_mgr.java
index 0d64b2310..0a04e5a63 100644
--- a/400_xowa/src_240_install/gplx/xowa/Xoi_setup_mgr.java
+++ b/400_xowa/src_240_install/gplx/xowa/Xoi_setup_mgr.java
@@ -19,15 +19,15 @@ package gplx.xowa; import gplx.*;
import gplx.gfui.*; import gplx.xowa.setup.addons.*;
import gplx.xowa.setup.maints.*;
public class Xoi_setup_mgr implements GfoInvkAble {
- public Xoi_setup_mgr(Xoa_app app) {
+ public Xoi_setup_mgr(Xoae_app app) {
this.app = app;
cmd_mgr = new Xoi_cmd_mgr(this);
maint_mgr = new Xoa_maint_mgr(app);
}
- public void Init_by_app(Xoa_app app) {
+ public void Init_by_app(Xoae_app app) {
addon_mgr.Init_by_app(app);
}
- public Xoa_app App() {return app;} private Xoa_app app;
+ public Xoae_app App() {return app;} private Xoae_app app;
public Xoi_cmd_mgr Cmd_mgr() {return cmd_mgr;} private Xoi_cmd_mgr cmd_mgr;
public Xoi_dump_mgr Dump_mgr() {return dump_mgr;} private Xoi_dump_mgr dump_mgr = new Xoi_dump_mgr();
public Xoi_addon_mgr Addon_mgr() {return addon_mgr;} private Xoi_addon_mgr addon_mgr = new Xoi_addon_mgr();
diff --git a/400_xowa/src_240_install/gplx/xowa/Xow_cfg_wiki_core.java b/400_xowa/src_240_install/gplx/xowa/Xow_cfg_wiki_core.java
index c87f46916..6a4e1bc05 100644
--- a/400_xowa/src_240_install/gplx/xowa/Xow_cfg_wiki_core.java
+++ b/400_xowa/src_240_install/gplx/xowa/Xow_cfg_wiki_core.java
@@ -17,19 +17,19 @@ along with this program. If not, see .
*/
package gplx.xowa; import gplx.*;
public class Xow_cfg_wiki_core {
- public Xow_cfg_wiki_core(Xow_wiki wiki) {this.wiki = wiki;} private Xow_wiki wiki;
+ public Xow_cfg_wiki_core(Xowe_wiki wiki) {this.wiki = wiki;} private Xowe_wiki wiki;
public void Save() {
}
public byte[] Build_gfs() {
Gfs_bldr wtr = new Gfs_bldr();
Xow_wiki_props props = wiki.Props();
- wtr.Add_proc_init_many(Xow_wiki.Invk_props).Add_nl();
+ wtr.Add_proc_init_many(Xowe_wiki.Invk_props).Add_nl();
wtr.Add_proc_cont_one(Xow_wiki_props.Invk_bldr_version_).Add_parens_str(props.Bldr_version()).Add_nl();
wtr.Add_proc_cont_one(Xow_wiki_props.Invk_main_page_).Add_parens_str(props.Main_page()).Add_nl();
wtr.Add_proc_cont_one(Xow_wiki_props.Invk_siteinfo_misc_).Add_parens_str(props.Siteinfo_misc()).Add_nl();
wtr.Add_proc_cont_one(Xow_wiki_props.Invk_siteinfo_mainpage_).Add_parens_str(props.Siteinfo_mainpage()).Add_nl();
wtr.Add_term_nl();
- wtr.Add_proc_init_many(Xow_wiki.Invk_ns_mgr).Add_nl();
+ wtr.Add_proc_init_many(Xowe_wiki.Invk_ns_mgr).Add_nl();
wtr.Add_proc_cont_one(Xow_ns_mgr.Invk_clear).Add_nl();
wtr.Add_proc_cont_one(Xow_ns_mgr.Invk_load).Add_paren_bgn().Add_nl();
wtr.Add_quote_xtn_bgn();
@@ -46,7 +46,7 @@ public class Xow_cfg_wiki_core {
return wtr.Xto_bry();
}
public void Load(String raw) {
- wiki.App().Gfs_mgr().Run_str_for(wiki, raw);
+ wiki.Appe().Gfs_mgr().Run_str_for(wiki, raw);
}
public static void Load_ns_(Xow_ns_mgr ns_mgr, byte[] src) {// 10|1|Template
int len = src.length; int pos = 0, fld_bgn = 0, fld_idx = 0, row_bgn = 0;
diff --git a/400_xowa/src_240_install/gplx/xowa/Xow_cfg_wiki_core_tst.java b/400_xowa/src_240_install/gplx/xowa/Xow_cfg_wiki_core_tst.java
index 2ecb3accb..111633104 100644
--- a/400_xowa/src_240_install/gplx/xowa/Xow_cfg_wiki_core_tst.java
+++ b/400_xowa/src_240_install/gplx/xowa/Xow_cfg_wiki_core_tst.java
@@ -81,8 +81,8 @@ public class Xow_cfg_wiki_core_tst {
);
}
class Xow_cfg_wiki_core_fxt {
- Xoa_app app; Xow_wiki wiki;
- public Xow_wiki Wiki() {return wiki;}
+ 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);
diff --git a/400_xowa/src_240_install/gplx/xowa/Xow_page_fetcher.java b/400_xowa/src_240_install/gplx/xowa/Xow_page_fetcher.java
index 888d1c996..d956bbba5 100644
--- a/400_xowa/src_240_install/gplx/xowa/Xow_page_fetcher.java
+++ b/400_xowa/src_240_install/gplx/xowa/Xow_page_fetcher.java
@@ -17,19 +17,19 @@ along with this program. If not, see .
*/
package gplx.xowa; import gplx.*;
public interface Xow_page_fetcher {
- Xow_page_fetcher Wiki_(Xow_wiki v);
+ Xow_page_fetcher Wiki_(Xowe_wiki v);
byte[] Fetch(int ns_id, byte[] ttl);
}
class Xow_page_fetcher_wiki implements Xow_page_fetcher {
- public Xow_page_fetcher Wiki_(Xow_wiki v) {this.wiki = v; return this;} private Xow_wiki wiki;
+ public Xow_page_fetcher Wiki_(Xowe_wiki v) {this.wiki = v; return this;} private Xowe_wiki wiki;
public byte[] Fetch(int ns_id, byte[] ttl_bry) {
Xoa_ttl ttl = Xoa_ttl.parse_(wiki, ns_id, ttl_bry);
- Xoa_page page = wiki.Data_mgr().Get_page(ttl, false); // go through data_mgr in case of redirects
+ Xoae_page page = wiki.Data_mgr().Get_page(ttl, false); // go through data_mgr in case of redirects
return page.Missing() ? null : page.Data_raw();
}
}
class Xow_page_fetcher_mok implements Xow_page_fetcher {
- public Xow_page_fetcher Wiki_(Xow_wiki v) {return this;}
+ public Xow_page_fetcher Wiki_(Xowe_wiki v) {return this;}
public void Clear() {pages.Clear();} private HashAdp pages = HashAdp_.new_();
public void Add(int ns_id, byte[] ttl, byte[] text) {
Xodb_page page = new Xodb_page().Ns_id_(ns_id).Ttl_wo_ns_(ttl).Text_(text);
diff --git a/400_xowa/src_300_html/gplx/xowa/Xoa_app_eval.java b/400_xowa/src_300_html/gplx/xowa/Xoa_app_eval.java
index 16ebe1258..492b6f40d 100644
--- a/400_xowa/src_300_html/gplx/xowa/Xoa_app_eval.java
+++ b/400_xowa/src_300_html/gplx/xowa/Xoa_app_eval.java
@@ -17,7 +17,6 @@ along with this program. If not, see .
*/
package gplx.xowa; import gplx.*;
public class Xoa_app_eval implements Bry_fmtr_eval_mgr {
- public Xoa_app_eval(Xoa_app app) {}
public boolean Enabled() {return enabled;} public void Enabled_(boolean v) {enabled = v;} private boolean enabled = true;
public byte[] Eval(byte[] cmd) {
Object rslt = GfsCore._.Exec_bry(cmd);
diff --git a/400_xowa/src_300_html/gplx/xowa/Xoa_app_eval_tst.java b/400_xowa/src_300_html/gplx/xowa/Xoa_app_eval_tst.java
index 881484009..05b52cdcf 100644
--- a/400_xowa/src_300_html/gplx/xowa/Xoa_app_eval_tst.java
+++ b/400_xowa/src_300_html/gplx/xowa/Xoa_app_eval_tst.java
@@ -30,11 +30,11 @@ class Xoa_app_eval_fxt {
if (app == null) {
app = Xoa_app_fxt.app_();
fmtr = Bry_fmtr.new_();
- eval = new Xoa_app_eval(app);
+ eval = new Xoa_app_eval();
fmtr.Eval_mgr_(eval);
Xoa_gfs_mgr.Msg_parser_init();
}
- } private Xoa_app app; Bry_fmtr fmtr; Xoa_app_eval eval;
+ } private Xoae_app app; Bry_fmtr fmtr; Xoa_app_eval eval;
public void Eval_test(String raw, String expd) {
Tfds.Eq(fmtr.Fmt_(raw).Bld_str_many(), expd);
}
diff --git a/400_xowa/src_300_html/gplx/xowa/Xoa_page.java b/400_xowa/src_300_html/gplx/xowa/Xoa_page.java
deleted file mode 100644
index 114cbea66..000000000
--- a/400_xowa/src_300_html/gplx/xowa/Xoa_page.java
+++ /dev/null
@@ -1,108 +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; import gplx.*;
-import gplx.xowa.gui.*; import gplx.xowa.gui.views.*; import gplx.xowa.html.*; import gplx.xowa.pages.*;
-import gplx.xowa.files.*; import gplx.xowa.xtns.cite.*; import gplx.xowa.xtns.wdatas.*; import gplx.xowa.parsers.lnkis.redlinks.*; import gplx.xowa.html.tocs.*;
-import gplx.xowa.html.modules.popups.*; import gplx.xowa.hdumps.pages.*; import gplx.xowa.xtns.wdatas.pfuncs.*;
-public class Xoa_page {
- private Xopg_hdump_data hdump_data;
- Xoa_page(Xow_wiki wiki, Xoa_ttl ttl) {
- this.wiki = wiki; this.ttl = ttl;
- this.app = wiki.App(); this.lang = wiki.Lang(); // default to wiki.lang; can be override later by wikitext
- hdump_data = new Xopg_hdump_data();
- hdr_mgr = new Xow_hdr_mgr(wiki, this);
- lnki_redlinks_mgr = new Xop_lnki_logger_redlinks_mgr(this);
- Ttl_(ttl);
- } Xoa_page() {} // called by Null
- public Xoa_app App() {return app;} private Xoa_app app;
- public Xow_wiki Wiki() {return wiki;} private Xow_wiki wiki;
- public Xol_lang Lang() {return lang;} public Xoa_page Lang_(Xol_lang v) {lang = v; return this;} private Xol_lang lang;
- public Xopg_revision_data Revision_data() {return rev_data;} private Xopg_revision_data rev_data = new Xopg_revision_data();
- public Xopg_html_data Html_data() {return html_data;} private Xopg_html_data html_data = new Xopg_html_data();
- public Xoa_ttl Ttl() {return ttl;} public Xoa_page Ttl_(Xoa_ttl v) {ttl = v; url.Wiki_bry_(wiki.Domain_bry()).Page_bry_(v.Full_url()); return this;} private Xoa_ttl ttl;
- public Xoa_url Url() {return url;} public Xoa_page Url_(Xoa_url v) {url = v; return this;} private Xoa_url url = Xoa_url.blank_();
- public Xog_tab_itm Tab() {return tab;} public void Tab_(Xog_tab_itm v) {tab = v;} private Xog_tab_itm tab;
- public Xopg_hdump_data Hdump_data() {return hdump_data;}
- public boolean Missing() {return missing;} public Xoa_page Missing_() {return Missing_(true);} public Xoa_page Missing_(boolean v) {missing = v; return this;} private boolean missing;
- public boolean Redirected() {return redirected;} public Xoa_page Redirected_(boolean v) {redirected = v; return this;} private boolean redirected;
- public ListAdp Redirected_ttls() {return redirected_ttls;} private ListAdp redirected_ttls = ListAdp_.new_();
- public byte[] Redirected_ttls__itm_0() {return (byte[])redirected_ttls.FetchAt(0);}
- public byte[] Redirected_src() {return redirected_src;} public void Redirected_src_(byte[] v) {this.redirected_src = v;} private byte[] redirected_src;
- public byte Edit_mode() {return edit_mode;} private byte edit_mode; public void Edit_mode_update_() {edit_mode = Xoa_page_.Edit_mode_update;}
- public Xop_root_tkn Root() {return root;} public Xoa_page Root_(Xop_root_tkn v) {root = v; return this;} private Xop_root_tkn root;
- public byte[] Data_raw() {return data_raw;} public Xoa_page Data_raw_(byte[] v) {data_raw = v; return this;} private byte[] data_raw = Bry_.Empty;
- public Xow_hdr_mgr Hdr_mgr() {return hdr_mgr;} private Xow_hdr_mgr hdr_mgr;
- public Xoh_cmd_mgr Html_cmd_mgr() {return html_cmd_mgr;} private Xoh_cmd_mgr html_cmd_mgr = new Xoh_cmd_mgr();
- public byte[][] Category_list() {return category_list;} public Xoa_page Category_list_(byte[][] v) {category_list = v; return this;} private byte[][] category_list = new byte[0][];
- public ListAdp Lnki_list() {return lnki_list;} public void Lnki_list_(ListAdp v) {this.lnki_list = v;} private ListAdp lnki_list = ListAdp_.new_();
- public Xof_xfer_queue File_queue() {return file_queue;} private Xof_xfer_queue file_queue = new Xof_xfer_queue();
- public ListAdp File_math() {return file_math;} private ListAdp file_math = ListAdp_.new_();
- public Xof_lnki_file_mgr Lnki_file_mgr() {return lnki_file_mgr;} private Xof_lnki_file_mgr lnki_file_mgr = new Xof_lnki_file_mgr();
- public Xop_lnki_logger_redlinks_mgr Lnki_redlinks_mgr() {return lnki_redlinks_mgr;} private Xop_lnki_logger_redlinks_mgr lnki_redlinks_mgr;
- public Ref_itm_mgr Ref_mgr() {return ref_mgr;} private Ref_itm_mgr ref_mgr = new Ref_itm_mgr();
- public Xopg_popup_mgr Popup_mgr() {return popup_mgr;} private Xopg_popup_mgr popup_mgr = new Xopg_popup_mgr();
- public ListAdp Slink_list() {return slink_list;} private ListAdp slink_list = ListAdp_.new_();
- public Wdata_external_lang_links_data Wdata_external_lang_links() {return wdata_external_lang_links;} private Wdata_external_lang_links_data wdata_external_lang_links = new Wdata_external_lang_links_data();
- public boolean Pages_recursed() {return pages_recursed;} public void Pages_recursed_(boolean v) {pages_recursed = v; } private boolean pages_recursed;
- public Xopg_tmpl_prepend_mgr Tmpl_prepend_mgr() {return tmpl_prepend_mgr;} private Xopg_tmpl_prepend_mgr tmpl_prepend_mgr = new Xopg_tmpl_prepend_mgr();
- public void Tmpl_stack_del() {--tmpl_stack_ary_len;}
- public boolean Tmpl_stack_add(byte[] key) {
- for (int i = 0; i < tmpl_stack_ary_len; i++) {
- if (Bry_.Match(key, tmpl_stack_ary[i])) return false;
- }
- int new_len = tmpl_stack_ary_len + 1;
- if (new_len > tmpl_stack_ary_max) {
- tmpl_stack_ary_max = new_len * 2;
- tmpl_stack_ary = (byte[][])Array_.Resize(tmpl_stack_ary, tmpl_stack_ary_max);
- }
- tmpl_stack_ary[tmpl_stack_ary_len] = key;
- tmpl_stack_ary_len = new_len;
- return true;
- } private byte[][] tmpl_stack_ary = Bry_.Ary_empty; private int tmpl_stack_ary_len = 0, tmpl_stack_ary_max = 0;
- public void Clear() { // NOTE: this is called post-fetch but pre-parse; do not clear items set by post-fetch, such as id, ttl, redirected_ttls, data_raw
- hdr_mgr.Clear();
- lnki_list.Clear();
- file_math.Clear();
- file_queue.Clear();
- ref_mgr.Grps_clear();
- html_cmd_mgr.Clear();
- hdump_data.Clear();
- wdata_external_lang_links.Reset();
- gplx.xowa.xtns.scribunto.Scrib_core.Core_page_changed(this);
- slink_list.Clear();
- html_data.Clear();
- lnki_file_mgr.Clear();
- pages_recursed = false;
- tmpl_stack_ary = Bry_.Ary_empty;
- tmpl_stack_ary_len = tmpl_stack_ary_max = 0;
- popup_mgr.Clear();
- rev_data.Clear();
- tmpl_prepend_mgr.Clear();
- }
- public static final Xoa_page Empty = new Xoa_page().Missing_();
- public static final Xoa_page Null = null;
- public static Xoa_page new_(Xow_wiki wiki, Xoa_ttl ttl) {
- return new Xoa_page(wiki, ttl);
- }
- public static Xoa_page test_(Xow_wiki wiki, Xoa_ttl ttl) {return new Xoa_page(wiki, ttl);}
- public static Xoa_page create_(Xow_wiki wiki, Xoa_ttl ttl) {
- Xoa_page rv = new Xoa_page(wiki, ttl);
- rv.edit_mode = Xoa_page_.Edit_mode_create;
- return rv;
- }
-}
diff --git a/400_xowa/src_300_html/gplx/xowa/Xoae_page.java b/400_xowa/src_300_html/gplx/xowa/Xoae_page.java
new file mode 100644
index 000000000..6f0dd131c
--- /dev/null
+++ b/400_xowa/src_300_html/gplx/xowa/Xoae_page.java
@@ -0,0 +1,104 @@
+/*
+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; import gplx.*;
+import gplx.xowa.gui.*; import gplx.xowa.gui.views.*; import gplx.xowa.html.*; import gplx.xowa.pages.*;
+import gplx.xowa.files.*; import gplx.xowa.xtns.cite.*; import gplx.xowa.xtns.wdatas.*; import gplx.xowa.parsers.lnkis.redlinks.*; import gplx.xowa.html.tocs.*;
+import gplx.xowa.html.modules.popups.*; import gplx.xowa.hdumps.pages.*; import gplx.xowa.xtns.wdatas.pfuncs.*;
+public class Xoae_page {
+ Xoae_page(Xowe_wiki wiki, Xoa_ttl ttl) {
+ this.wiki = wiki; this.ttl = ttl;
+ this.lang = wiki.Lang(); // default to wiki.lang; can be override later by wikitext
+ hdr_mgr = new Xow_hdr_mgr(this, Xoa_app_.Utl_encoder_mgr());
+ redlink_lnki_list = new Xopg_redlink_lnki_list(ttl.Ns().Id_module());
+ Ttl_(ttl);
+ } Xoae_page() {} // called by Null
+ public Xow_wiki Wiki() {return wiki;}
+ public Xoa_ttl Ttl() {return ttl;} public Xoae_page Ttl_(Xoa_ttl v) {ttl = v; url.Wiki_bry_(wiki.Domain_bry()).Page_bry_(v.Full_url()); return this;} private Xoa_ttl ttl;
+ public Xoa_url Url() {return url;} public Xoae_page Url_(Xoa_url v) {url = v; return this;} private Xoa_url url = Xoa_url.blank_();
+ public Xowe_wiki Wikie() {return wiki;} private Xowe_wiki wiki;
+ public Xopg_redlink_lnki_list Redlink_lnki_list() {return redlink_lnki_list;} private Xopg_redlink_lnki_list redlink_lnki_list;
+ public Xol_lang Lang() {return lang;} public Xoae_page Lang_(Xol_lang v) {lang = v; return this;} private Xol_lang lang;
+ public Xopg_revision_data Revision_data() {return rev_data;} private Xopg_revision_data rev_data = new Xopg_revision_data();
+ public Xopg_html_data Html_data() {return html_data;} private Xopg_html_data html_data = new Xopg_html_data();
+ public Xog_tab_itm Tab() {return tab;} public void Tab_(Xog_tab_itm v) {tab = v;} private Xog_tab_itm tab;
+ public Xopg_hdump_data Hdump_data() {return hdump_data;} private final Xopg_hdump_data hdump_data = new Xopg_hdump_data();
+ public boolean Missing() {return missing;} public Xoae_page Missing_() {return Missing_(true);} public Xoae_page Missing_(boolean v) {missing = v; return this;} private boolean missing;
+ public boolean Redirected() {return redirected;} public Xoae_page Redirected_(boolean v) {redirected = v; return this;} private boolean redirected;
+ public ListAdp Redirected_ttls() {return redirected_ttls;} private ListAdp redirected_ttls = ListAdp_.new_();
+ public byte[] Redirected_ttls__itm_0() {return (byte[])redirected_ttls.FetchAt(0);}
+ public byte[] Redirected_src() {return redirected_src;} public void Redirected_src_(byte[] v) {this.redirected_src = v;} private byte[] redirected_src;
+ public byte Edit_mode() {return edit_mode;} private byte edit_mode; public void Edit_mode_update_() {edit_mode = Xoa_page_.Edit_mode_update;}
+ public Xop_root_tkn Root() {return root;} public Xoae_page Root_(Xop_root_tkn v) {root = v; return this;} private Xop_root_tkn root;
+ public byte[] Data_raw() {return data_raw;} public Xoae_page Data_raw_(byte[] v) {data_raw = v; return this;} private byte[] data_raw = Bry_.Empty;
+ public Xow_hdr_mgr Hdr_mgr() {return hdr_mgr;} private Xow_hdr_mgr hdr_mgr;
+ public Xoh_cmd_mgr Html_cmd_mgr() {return html_cmd_mgr;} private Xoh_cmd_mgr html_cmd_mgr = new Xoh_cmd_mgr();
+ public byte[][] Category_list() {return category_list;} public Xoae_page Category_list_(byte[][] v) {category_list = v; return this;} private byte[][] category_list = new byte[0][];
+ public ListAdp Lnki_list() {return lnki_list;} public void Lnki_list_(ListAdp v) {this.lnki_list = v;} private ListAdp lnki_list = ListAdp_.new_();
+ public Xof_xfer_queue File_queue() {return file_queue;} private Xof_xfer_queue file_queue = new Xof_xfer_queue();
+ public ListAdp File_math() {return file_math;} private ListAdp file_math = ListAdp_.new_();
+ public Xof_lnki_file_mgr Lnki_file_mgr() {return lnki_file_mgr;} private Xof_lnki_file_mgr lnki_file_mgr = new Xof_lnki_file_mgr();
+ public Ref_itm_mgr Ref_mgr() {return ref_mgr;} private Ref_itm_mgr ref_mgr = new Ref_itm_mgr();
+ public Xopg_popup_mgr Popup_mgr() {return popup_mgr;} private Xopg_popup_mgr popup_mgr = new Xopg_popup_mgr();
+ public ListAdp Slink_list() {return slink_list;} private ListAdp slink_list = ListAdp_.new_();
+ public Wdata_external_lang_links_data Wdata_external_lang_links() {return wdata_external_lang_links;} private Wdata_external_lang_links_data wdata_external_lang_links = new Wdata_external_lang_links_data();
+ public boolean Pages_recursed() {return pages_recursed;} public void Pages_recursed_(boolean v) {pages_recursed = v; } private boolean pages_recursed;
+ public Xopg_tmpl_prepend_mgr Tmpl_prepend_mgr() {return tmpl_prepend_mgr;} private Xopg_tmpl_prepend_mgr tmpl_prepend_mgr = new Xopg_tmpl_prepend_mgr();
+ public void Tmpl_stack_del() {--tmpl_stack_ary_len;}
+ public boolean Tmpl_stack_add(byte[] key) {
+ for (int i = 0; i < tmpl_stack_ary_len; i++) {
+ if (Bry_.Match(key, tmpl_stack_ary[i])) return false;
+ }
+ int new_len = tmpl_stack_ary_len + 1;
+ if (new_len > tmpl_stack_ary_max) {
+ tmpl_stack_ary_max = new_len * 2;
+ tmpl_stack_ary = (byte[][])Array_.Resize(tmpl_stack_ary, tmpl_stack_ary_max);
+ }
+ tmpl_stack_ary[tmpl_stack_ary_len] = key;
+ tmpl_stack_ary_len = new_len;
+ return true;
+ } private byte[][] tmpl_stack_ary = Bry_.Ary_empty; private int tmpl_stack_ary_len = 0, tmpl_stack_ary_max = 0;
+ public void Clear() { // NOTE: this is called post-fetch but pre-parse; do not clear items set by post-fetch, such as id, ttl, redirected_ttls, data_raw
+ hdr_mgr.Clear();
+ lnki_list.Clear();
+ file_math.Clear();
+ file_queue.Clear();
+ ref_mgr.Grps_clear();
+ html_cmd_mgr.Clear();
+ hdump_data.Clear();
+ wdata_external_lang_links.Reset();
+ gplx.xowa.xtns.scribunto.Scrib_core.Core_page_changed(this);
+ slink_list.Clear();
+ html_data.Clear();
+ lnki_file_mgr.Clear();
+ pages_recursed = false;
+ tmpl_stack_ary = Bry_.Ary_empty;
+ tmpl_stack_ary_len = tmpl_stack_ary_max = 0;
+ popup_mgr.Clear();
+ rev_data.Clear();
+ tmpl_prepend_mgr.Clear();
+ }
+ public static final Xoae_page Null = null;
+ public static final Xoae_page Empty = new Xoae_page().Missing_();
+ public static Xoae_page test_(Xowe_wiki wiki, Xoa_ttl ttl) {return new Xoae_page(wiki, ttl);}
+ public static Xoae_page new_(Xowe_wiki wiki, Xoa_ttl ttl) {return new Xoae_page(wiki, ttl);}
+ public static Xoae_page create_(Xowe_wiki wiki, Xoa_ttl ttl) {
+ Xoae_page rv = new Xoae_page(wiki, ttl);
+ rv.edit_mode = Xoa_page_.Edit_mode_create;
+ return rv;
+ }
+}
diff --git a/400_xowa/src_300_html/gplx/xowa/Xoh_file_main_tst.java b/400_xowa/src_300_html/gplx/xowa/Xoh_file_main_tst.java
index 3c08d51ea..7117ce2d1 100644
--- a/400_xowa/src_300_html/gplx/xowa/Xoh_file_main_tst.java
+++ b/400_xowa/src_300_html/gplx/xowa/Xoh_file_main_tst.java
@@ -87,7 +87,7 @@ public class Xoh_file_main_tst {
}
class Xoh_fil_main_fxt {
Xoh_file_main_wkr wkr = new Xoh_file_main_wkr();
- Xoa_app app; Xow_wiki wiki; Xoh_file_page opt;
+ Xoae_app app; Xowe_wiki wiki; Xoh_file_page opt;
Xof_xfer_itm file = new Xof_xfer_itm();
Bry_bfr bfr = Bry_bfr.new_();
public Xoh_fil_main_fxt Ttl_str_(String v) {this.ttl_str = v; return this;} private String ttl_str;
diff --git a/400_xowa/src_300_html/gplx/xowa/Xoh_file_main_wkr.java b/400_xowa/src_300_html/gplx/xowa/Xoh_file_main_wkr.java
index 02f7e8f9f..af6b7cccf 100644
--- a/400_xowa/src_300_html/gplx/xowa/Xoh_file_main_wkr.java
+++ b/400_xowa/src_300_html/gplx/xowa/Xoh_file_main_wkr.java
@@ -18,11 +18,11 @@ along with this program. If not, see .
package gplx.xowa; import gplx.*;
import gplx.core.primitives.*;
import gplx.xowa.html.*; import gplx.xowa.html.lnkis.*;
-import gplx.xowa.files.*;
+import gplx.xowa.files.*; import gplx.xowa.files.repos.*;
public class Xoh_file_main_wkr implements Bry_fmtr_arg {
private Xof_xfer_itm xfer_itm; private Xoh_file_main_alts alts = new Xoh_file_main_alts(); private Xoh_file_page opt;
- byte[] file_size_bry; Xoa_ttl ttl; Xow_wiki wiki;
- public void Bld_html(Xow_wiki wiki, Xop_ctx ctx, Bry_bfr bfr, Xoa_ttl ttl, Xoh_file_page opt, Xof_xfer_queue queue) {
+ byte[] file_size_bry; Xoa_ttl ttl; Xowe_wiki wiki;
+ public void Bld_html(Xowe_wiki wiki, Xop_ctx ctx, Bry_bfr bfr, Xoa_ttl ttl, Xoh_file_page opt, Xof_xfer_queue queue) {
this.opt = opt; this.ttl = ttl; this.wiki = wiki;
Int_2_ref size_main = opt.Size_main();
int main_w = size_main.Val_0();
@@ -48,7 +48,7 @@ public class Xoh_file_main_wkr implements Bry_fmtr_arg {
}
opt.Html_main().Bld_bfr_many(bfr, this);
} private byte[] play_btn_icon; private Bool_obj_ref queue_add_ref = Bool_obj_ref.n_();
- public void Bld_html(Xow_wiki wiki, Bry_bfr bfr, Xof_xfer_itm xfer_itm, Xoa_ttl ttl, Xoh_file_page opt, byte[] file_size_bry, byte[] play_btn_icon, int elem_id_val) {
+ public void Bld_html(Xowe_wiki wiki, Bry_bfr bfr, Xof_xfer_itm xfer_itm, Xoa_ttl ttl, Xoh_file_page opt, byte[] file_size_bry, byte[] play_btn_icon, int elem_id_val) {
this.xfer_itm = xfer_itm;
this.wiki = wiki; this.ttl = ttl; this.opt = opt; this.file_size_bry = file_size_bry; this.play_btn_icon = play_btn_icon; this.elem_id_val = elem_id_val;
opt.Html_main().Bld_bfr_many(bfr, this);
@@ -57,7 +57,7 @@ public class Xoh_file_main_wkr implements Bry_fmtr_arg {
alts.Ctor(xfer_itm, opt);
Xof_ext ext = xfer_itm.Lnki_ext();
if (ext.Id_is_thumbable_img())
- opt.Html_main_img().Bld_bfr_many(bfr, xfer_itm.Orig_w(), xfer_itm.Orig_h(), xfer_itm.Html_orig_src(), file_size_bry, ext.Mime_type(), elem_id_val, xfer_itm.Html_w(), xfer_itm.Html_h(), xfer_itm.Html_view_src(), ttl.Full_txt(), wiki.App().Encoder_mgr().Url().Encode(ttl.Page_url()), alts);
+ opt.Html_main_img().Bld_bfr_many(bfr, xfer_itm.Orig_w(), xfer_itm.Orig_h(), xfer_itm.Html_orig_src(), file_size_bry, ext.Mime_type(), elem_id_val, xfer_itm.Html_w(), xfer_itm.Html_h(), xfer_itm.Html_view_src(), ttl.Full_txt(), Xoa_app_.Utl_encoder_mgr().Url().Encode(ttl.Page_url()), alts);
else if (ext.Id_is_video()) // NOTE: video must precede audio else File:***.ogg will not show thumbs
opt.Html_main_vid().Bld_bfr_many(bfr, elem_id_val, xfer_itm.Html_view_src(), Atr_class_image, ttl.Page_db(), xfer_itm.Html_view_src(), xfer_itm.Html_w(), xfer_itm.Html_h(), Bry_.Empty, xfer_itm.Html_orig_src(), xfer_itm.Html_w(), xfer_itm.Html_w(), play_btn_icon);
else if (ext.Id_is_audio())
diff --git a/400_xowa/src_300_html/gplx/xowa/Xop_link_parser.java b/400_xowa/src_300_html/gplx/xowa/Xop_link_parser.java
index 101c34e87..b87b8f55b 100644
--- a/400_xowa/src_300_html/gplx/xowa/Xop_link_parser.java
+++ b/400_xowa/src_300_html/gplx/xowa/Xop_link_parser.java
@@ -21,9 +21,9 @@ public class Xop_link_parser {
public byte[] Html_xowa_ttl() {return html_xowa_ttl;} private byte[] html_xowa_ttl;
public byte Html_anchor_cls() {return html_anchor_cls;} private byte html_anchor_cls;
public byte Html_anchor_rel() {return html_anchor_rel;} private byte html_anchor_rel;
- public byte[] Parse(Bry_bfr tmp_bfr, Xoa_url tmp_url, Xow_wiki wiki, byte[] raw, byte[] or) {
+ public byte[] Parse(Bry_bfr tmp_bfr, Xoa_url tmp_url, Xowe_wiki wiki, byte[] raw, byte[] or) {
html_xowa_ttl = null; html_anchor_cls = Xoh_lnki_consts.Tid_a_cls_image; html_anchor_rel = Xoh_lnki_consts.Tid_a_rel_none; // default member variables for html
- Xoa_app app = wiki.App(); int raw_len = raw.length;
+ Xoae_app app = wiki.Appe(); int raw_len = raw.length;
app.Url_parser().Parse(tmp_url, raw);
switch (tmp_url.Protocol_tid()) {
case Xoo_protocol_itm.Tid_http: case Xoo_protocol_itm.Tid_https: // "http:" or "https:"; check if to offline wiki and redirect
@@ -68,13 +68,13 @@ public class Xop_link_parser {
}
return raw;
}
- private static boolean Parse__ttl(Bry_bfr tmp_bfr, Xow_wiki wiki, byte[] wiki_bry, byte[] page_bry) {
+ private static boolean Parse__ttl(Bry_bfr tmp_bfr, Xowe_wiki wiki, byte[] wiki_bry, byte[] page_bry) {
Xoa_ttl page_ttl = Xoa_ttl.parse_(wiki, page_bry);
boolean page_ttl_is_valid = page_ttl != null;
if (page_ttl_is_valid) {
Xow_xwiki_itm xwiki_itm = page_ttl.Wik_itm();
if (xwiki_itm != null) { // is alias; set wiki, page
- wiki_bry = xwiki_itm.Domain();
+ wiki_bry = xwiki_itm.Domain_bry();
page_bry = Bry_.Mid(page_bry, xwiki_itm.Key_bry().length + 1, page_bry.length); // +1 for ":"
}
else // is regular page; use ttl.Full_db() to normalize; EX: -> _
diff --git a/400_xowa/src_310_url/gplx/xowa/Xoa_url.java b/400_xowa/src_310_url/gplx/xowa/Xoa_url.java
index 38e7f9667..addf9ab0c 100644
--- a/400_xowa/src_310_url/gplx/xowa/Xoa_url.java
+++ b/400_xowa/src_310_url/gplx/xowa/Xoa_url.java
@@ -17,16 +17,22 @@ along with this program. If not, see .
*/
package gplx.xowa; import gplx.*;
public class Xoa_url {
- public byte[] Raw() {return raw;} public Xoa_url Raw_(byte[] v) {raw = v; return this;} private byte[] raw = Bry_.Empty;
- public byte[] Wiki_bry() {return wiki_bry;} public Xoa_url Wiki_bry_(byte[] v) {wiki_bry = v; return this;} private byte[] wiki_bry;
- public byte[] Page_bry() {return page_bry;} public Xoa_url Page_bry_(byte[] v) {page_bry = v; return this;} private byte[] page_bry;
- public byte[] Anchor_bry() {return anchor_bry;} public Xoa_url Anchor_bry_(byte[] v) {anchor_bry = v; return this;} private byte[] anchor_bry = null;
- public String Anchor_str() {return anchor_bry == null ? null : String_.new_utf8_(anchor_bry);}
- public Gfo_url_arg[] Args() {return args;} public Xoa_url Args_(Gfo_url_arg[] v) {args = v; return this;} private Gfo_url_arg[] args = Gfo_url_arg.Ary_empty;
- public byte Protocol_tid() {return protocol_tid;} public Xoa_url Protocol_tid_(byte v) {protocol_tid = v; return this;} private byte protocol_tid;
- public byte[] Protocol_bry() {return protocol_bry;} public Xoa_url Protocol_bry_(byte[] v) {protocol_bry = v; return this;} private byte[] protocol_bry;
- public boolean Protocol_is_relative() {return protocol_is_relative;} public Xoa_url Protocol_is_relative_(boolean v) {protocol_is_relative = v; return this;} private boolean protocol_is_relative;
- public byte[] Lang_bry() {return lang_bry;} public Xoa_url Lang_bry_(byte[] v) {lang_bry = v; return this;} private byte[] lang_bry;
+ public byte[] Raw() {return raw;} public Xoa_url Raw_(byte[] v) {raw = v; return this;} private byte[] raw = Bry_.Empty;
+ public byte[] Wiki_bry() {return wiki_bry;} public Xoa_url Wiki_bry_(byte[] v) {wiki_bry = v; return this;} private byte[] wiki_bry;
+ public byte[] Page_bry() {return page_bry;} public Xoa_url Page_bry_(byte[] v) {page_bry = v; return this;} private byte[] page_bry;
+ public byte[] Anchor_bry() {return anchor_bry;} public Xoa_url Anchor_bry_(byte[] v) {anchor_bry = v; return this;} private byte[] anchor_bry = null;
+ public String Anchor_str() {return anchor_bry == null ? null : String_.new_utf8_(anchor_bry);}
+ public Gfo_url_arg[] Args() {return args;} public Xoa_url Args_(Gfo_url_arg[] v) {args = v; return this;} private Gfo_url_arg[] args = Gfo_url_arg.Ary_empty;
+ public byte Protocol_tid() {return protocol_tid;} public Xoa_url Protocol_tid_(byte v) {protocol_tid = v; return this;} private byte protocol_tid;
+ public byte[] Protocol_bry() {return protocol_bry;} public Xoa_url Protocol_bry_(byte[] v) {protocol_bry = v; return this;} private byte[] protocol_bry;
+ public boolean Protocol_is_relative() {return protocol_is_relative;} public Xoa_url Protocol_is_relative_(boolean v) {protocol_is_relative = v; return this;} private boolean protocol_is_relative;
+ public byte[] Use_lang() {return use_lang;} public Xoa_url Use_lang_(byte[] v) {use_lang = v; return this;} private byte[] use_lang;
+ public byte[] Lang_bry() {return lang_bry;} public Xoa_url Lang_bry_(byte[] v) {lang_bry = v; return this;} private byte[] lang_bry;
+ public boolean Redirect_force() {return redirect_force;} public Xoa_url Redirect_force_(boolean v) {redirect_force = v; return this;} private boolean redirect_force;
+ public boolean Search_fulltext() {return search_fulltext;} public Xoa_url Search_fulltext_(boolean v) {search_fulltext = v; return this;} private boolean search_fulltext;
+ public boolean Action_is_edit() {return action_is_edit;} public Xoa_url Action_is_edit_(boolean v) {action_is_edit = v; return this;} private boolean action_is_edit;
+ public byte Err() {return err;} public Xoa_url Err_(byte v) {err = v; return this;} private byte err;
+ public byte[][] Segs_ary() {return segs_ary;} public Xoa_url Segs_ary_(byte[][] v) {segs_ary = v; return this;} private byte[][] segs_ary;
public byte[] Page_for_lnki() {
int raw_len = raw.length;
int page_bgn = Page_bgn(raw_len);
@@ -35,13 +41,6 @@ public class Xoa_url {
else
return Bry_.Mid(raw, page_bgn, raw_len);// else take everything after "/wiki/";
}
- public byte[] Use_lang() {return use_lang;} public Xoa_url Use_lang_(byte[] v) {use_lang = v; return this;} private byte[] use_lang;
- public boolean Redirect_force() {return redirect_force;} public Xoa_url Redirect_force_(boolean v) {redirect_force = v; return this;} private boolean redirect_force;
- public boolean Search_fulltext() {return search_fulltext;} public Xoa_url Search_fulltext_(boolean v) {search_fulltext = v; return this;} private boolean search_fulltext;
- public boolean Action_is_edit() {return action_is_edit;} public Xoa_url Action_is_edit_(boolean v) {action_is_edit = v; return this;} private boolean action_is_edit;
- public byte Err() {return err;} public Xoa_url Err_(byte v) {err = v; return this;} private byte err;
- public byte[][] Segs_ary() {return segs_ary;} public Xoa_url Segs_ary_(byte[][] v) {segs_ary = v; return this;} private byte[][] segs_ary;
- public boolean Eq_page(Xoa_url comp) {return Bry_.Eq(wiki_bry, comp.wiki_bry) && Bry_.Eq(page_bry, comp.page_bry) && redirect_force == comp.Redirect_force();}
public void Init(byte[] raw) {
this.raw = raw;
segs_ary = null;
@@ -78,6 +77,7 @@ public class Xoa_url {
int wiki_pos = Bry_finder.Find_fwd(raw, Xoh_href_parser.Href_wiki_bry, 0, raw_len); // look for /wiki/
return wiki_pos == Bry_.NotFound ? Bry_.NotFound : wiki_pos + Xoh_href_parser.Href_wiki_bry.length;
}
+ public boolean Eq_page(Xoa_url comp) {return Bry_.Eq(wiki_bry, comp.wiki_bry) && Bry_.Eq(page_bry, comp.page_bry) && redirect_force == comp.Redirect_force();}
public byte[] Xto_full_bry() {return wiki_bry == null ? page_bry : Bry_.Add(wiki_bry, Xoa_consts.Url_wiki_intermediary, page_bry);}
public String Xto_full_str() {return String_.new_utf8_(this.Xto_full_bry());}
public String Xto_full_str_safe() {try {return Xto_full_str();} catch (Exception e) {return gplx.Err_.Message_gplx_brief(e);}}
diff --git a/400_xowa/src_310_url/gplx/xowa/Xoa_url_parser.java b/400_xowa/src_310_url/gplx/xowa/Xoa_url_parser.java
index 865d6d6c3..d3c944a93 100644
--- a/400_xowa/src_310_url/gplx/xowa/Xoa_url_parser.java
+++ b/400_xowa/src_310_url/gplx/xowa/Xoa_url_parser.java
@@ -17,7 +17,7 @@ along with this program. If not, see .
*/
package gplx.xowa; import gplx.*;
import gplx.core.primitives.*;
-import gplx.xowa.wikis.*; import gplx.xowa.wikis.xwikis.*; import gplx.xowa.net.*; import gplx.xowa.files.*;
+import gplx.xowa.langs.*; import gplx.xowa.wikis.*; import gplx.xowa.wikis.xwikis.*; import gplx.xowa.net.*; import gplx.xowa.files.*;
public class Xoa_url_parser {
private Url_encoder encoder = Url_encoder.new_html_href_mw_().Itms_raw_same_many(Byte_ascii.Underline); private Bry_bfr tmp_bfr = Bry_bfr.reset_(255);
public Gfo_url_parser Url_parser() {return url_parser;} private Gfo_url_parser url_parser = new Gfo_url_parser(); private Gfo_url gfo_url = new Gfo_url();
@@ -66,7 +66,7 @@ public class Xoa_url_parser {
byte[] sub_bry = segs_ary[1]; // lang/type seems to be 2nd seg; EX: "en", "fr"; "commons"
byte[] lang_bry = sub_bry;
if (upload_segs_hash.Has(sub_bry)) { // wikimedia links will have fmt of "/wikipedia/commons"; must change to wikimedia
- domain_bry = Xow_wiki_domain_.Seg_wikimedia_bry;
+ domain_bry = Xow_domain_.Seg_bry_wikimedia;
lang_bry = Xol_lang_itm_.Key__unknown;
}
tmp_bfr.Clear().Add(sub_bry).Add_byte(Byte_ascii.Dot) // add lang/type + .; EX: "en."; "fr."; "commons."
@@ -130,13 +130,13 @@ public class Xoa_url_parser {
: ary
;
}
- public static Xoa_url Parse_url(Xoa_app app, Xow_wiki cur_wiki, String raw) {
+ public static Xoa_url Parse_url(Xoae_app app, Xowe_wiki cur_wiki, String raw) {
byte[] raw_bry = Bry_.new_utf8_(raw);
return Parse_url(Xoa_url.blank_(), app, cur_wiki, raw_bry, 0, raw_bry.length, false);
}
- public static Xoa_url Parse_url(Xoa_app app, Xow_wiki cur_wiki, byte[] raw, int bgn, int end, boolean from_url_bar) {return Parse_url(Xoa_url.blank_(), app, cur_wiki, raw, bgn, end, from_url_bar);}
- public static Xoa_url Parse_url(Xoa_url rv, Xoa_app app, Xow_wiki cur_wiki, byte[] raw, int bgn, int end, boolean from_url_bar) {
- Xow_wiki wiki = null; Bry_bfr_mkr bfr_mkr = app.Utl_bry_bfr_mkr();
+ public static Xoa_url Parse_url(Xoae_app app, Xowe_wiki cur_wiki, byte[] raw, int bgn, int end, boolean from_url_bar) {return Parse_url(Xoa_url.blank_(), app, cur_wiki, raw, bgn, end, from_url_bar);}
+ public static Xoa_url Parse_url(Xoa_url rv, Xoae_app app, Xowe_wiki cur_wiki, byte[] raw, int bgn, int end, boolean from_url_bar) {
+ Xowe_wiki wiki = null; Bry_bfr_mkr bfr_mkr = app.Utl_bry_bfr_mkr();
byte[] cur_wiki_key = cur_wiki.Domain_bry();
byte[] page_bry = Bry_.Empty;
boolean page_is_main_page = false;
@@ -152,9 +152,9 @@ public class Xoa_url_parser {
if (Bry_.Len_gt_0(wiki_bry)) { // NOTE: wiki_bry is null when passing in Category:A from home_wiki
Xow_xwiki_itm xwiki_itm = app.User().Wiki().Xwiki_mgr().Get_by_key(wiki_bry); // check if url.Wiki_bry is actually wiki; note that checking User().Wiki().Xwiki_mgr() to find "offline" wikis
if ( xwiki_itm != null // null-check
- && Bry_.Eq(xwiki_itm.Domain(), wiki_bry) // check that xwiki.domain == wiki; avoids false lang matches like "so/page" or "C/page"; EX: "fr.wikipedia.org" vs "fr"; ca.s:So/Natura_del_so; DATE:2014-04-26; PAGE:no.b:C/Variabler; DATE:2014-10-14
+ && Bry_.Eq(xwiki_itm.Domain_bry(), wiki_bry)// check that xwiki.domain == wiki; avoids false lang matches like "so/page" or "C/page"; EX: "fr.wikipedia.org" vs "fr"; ca.s:So/Natura_del_so; DATE:2014-04-26; PAGE:no.b:C/Variabler; DATE:2014-10-14
)
- wiki = app.Wiki_mgr().Get_by_key_or_make(xwiki_itm.Domain());
+ wiki = app.Wiki_mgr().Get_by_key_or_make(xwiki_itm.Domain_bry());
}
if (rv.Page_bry() == null) { // 1 seg; EX: "Earth"; "fr.wikipedia.org"
if (wiki != null) { // wiki_bry is known wiki; EX: "fr.wikipedia.org"
@@ -183,7 +183,7 @@ public class Xoa_url_parser {
if (colon_pos != Bry_.NotFound) { // alias found
Xow_xwiki_itm xwiki = cur_wiki.Xwiki_mgr().Get_by_mid(page_bry, 0, colon_pos);
if (xwiki != null) {
- wiki = app.Wiki_mgr().Get_by_key_or_make(xwiki.Domain());
+ wiki = app.Wiki_mgr().Get_by_key_or_make(xwiki.Domain_bry());
page_bry = Bry_.Mid(page_bry, colon_pos + 1, page_bry.length);
if (rv.Segs_ary().length == 0) // handle xwiki without segs; EX: commons:Commons:Media_of_the_day; DATE:2014-02-19
rv.Segs_ary_(new byte[][] {Bry_wiki_name, page_bry}); // create segs of "/wiki/Page"
@@ -210,14 +210,14 @@ public class Xoa_url_parser {
page_bry = Xoa_page_.Main_page_bry_empty;
}
if (rv.Anchor_bry() != null) {
- byte[] anchor_bry = app.Encoder_mgr().Id().Encode(rv.Anchor_bry()); // reencode for anchors (which use . encoding, not % encoding); PAGE:en.w:Enlightenment_Spain#Enlightened_despotism_.281759%E2%80%931788.29
+ byte[] anchor_bry = Xoa_app_.Utl_encoder_mgr().Id().Encode(rv.Anchor_bry()); // reencode for anchors (which use . encoding, not % encoding); PAGE:en.w:Enlightenment_Spain#Enlightened_despotism_.281759%E2%80%931788.29
rv.Anchor_bry_(anchor_bry);
}
Xoa_ttl ttl = Xoa_ttl.parse_(wiki, page_bry);
if (ttl != null) { // can still be empty; EX: "en.wikipedia.org"
Xow_xwiki_itm lang_xwiki = ttl.Wik_itm();
if (lang_xwiki != null && lang_xwiki.Type_is_xwiki_lang(wiki.Lang().Lang_id())) { // format of http://en.wikipedia.org/wiki/fr:A
- wiki = app.Wiki_mgr().Get_by_key_or_make(lang_xwiki.Domain());
+ wiki = app.Wiki_mgr().Get_by_key_or_make(lang_xwiki.Domain_bry());
page_bry = ttl.Page_txt();
}
}
@@ -225,13 +225,13 @@ public class Xoa_url_parser {
rv.Page_bry_(page_bry);
return rv;
}
- private static Xow_wiki Parse_url__wiki(Xoa_app app, byte[] key) {
- Xow_wiki rv = null;
+ private static Xowe_wiki Parse_url__wiki(Xoae_app app, byte[] key) {
+ Xowe_wiki rv = null;
Xow_xwiki_itm xwiki = app.User().Wiki().Xwiki_mgr().Get_by_key(key);
if (xwiki == null)
rv = app.User().Wiki();
else
- rv = app.Wiki_mgr().Get_by_key_or_make(xwiki.Domain());
+ rv = app.Wiki_mgr().Get_by_key_or_make(xwiki.Domain_bry());
return rv;
}
private static byte[] Parse_url__combine(Bry_bfr_mkr bry_bfr_mkr, byte[] wiki, byte[][] segs, byte[] page) {
@@ -252,7 +252,7 @@ public class Xoa_url_parser {
}
return bfr.Mkr_rls().Xto_bry_and_clear();
}
- public static Xoa_url Parse_from_url_bar(Xoa_app app, Xow_wiki wiki, String s) {
+ public static Xoa_url Parse_from_url_bar(Xoae_app app, Xowe_wiki wiki, String s) {
byte[] bry = Bry_.new_utf8_(s);
bry = Parse_from_url_bar__strip_mobile(bry);
byte[] fmt = app.Gui_mgr().Url_macro_mgr().Fmt_or_null(bry);
@@ -299,5 +299,5 @@ public class Xoa_url_parser {
.Add_bry_byte(Bry_arg_fulltext, Id_arg_fulltext)
;
private static final Hash_adp_bry upload_segs_hash = Hash_adp_bry.ci_ascii_()
- .Add_bry_bry(Xow_wiki_domain_.Key_commons_bry);//.Add_bry_bry(Xow_wiki_domain_.Key_species_bry).Add_bry_bry(Xow_wiki_domain_.Key_meta_bry);
+ .Add_bry_bry(Xow_domain_.Tid_bry_commons);//.Add_bry_bry(Xow_domain_.Tid_bry_species_bry).Add_bry_bry(Xow_domain_.Tid_bry_meta_bry);
}
diff --git a/400_xowa/src_310_url/gplx/xowa/Xoa_url_parser_basic_tst.java b/400_xowa/src_310_url/gplx/xowa/Xoa_url_parser_basic_tst.java
index 4bbcd8dec..c9f747a33 100644
--- a/400_xowa/src_310_url/gplx/xowa/Xoa_url_parser_basic_tst.java
+++ b/400_xowa/src_310_url/gplx/xowa/Xoa_url_parser_basic_tst.java
@@ -139,9 +139,9 @@ class Xoa_url_parser_chkr implements Tst_chkr {
expd_anchor_is_edit = Bool_.__byte;
return this;
}
- public Xoa_app App() {return app;} private Xoa_app app;
- public Xow_wiki Wiki() {return wiki;} private Xow_wiki wiki;
- public Xow_wiki Wiki_wikisource() {return wiki_wikisource;} private Xow_wiki wiki_wikisource;
+ public Xoae_app App() {return app;} private Xoae_app app;
+ public Xowe_wiki Wiki() {return wiki;} private Xowe_wiki wiki;
+ public Xowe_wiki Wiki_wikisource() {return wiki_wikisource;} private Xowe_wiki wiki_wikisource;
public Class> TypeOf() {return Xoa_url.class;}
public Xoa_url_parser_chkr Expd_wiki(String v) {this.expd_wiki_str = v; return this;} private String expd_wiki_str;
public Xoa_url_parser_chkr Expd_page(String v) {this.expd_page = v; return this;} private String expd_page;
@@ -164,7 +164,7 @@ class Xoa_url_parser_chkr implements Tst_chkr {
return this;
}
public void Test_parse_w_wiki(String raw) {Test_parse_w_wiki(wiki, raw);}
- public void Test_parse_w_wiki(Xow_wiki w, String raw) {
+ public void Test_parse_w_wiki(Xowe_wiki w, String raw) {
Xoa_url url = Xoa_url_parser.Parse_url(app, w, raw);
Tst_mgr tst_mgr = new Tst_mgr();
tst_mgr.Tst_obj(this, url);
diff --git a/400_xowa/src_310_url/gplx/xowa/Xoh_href_parser.java b/400_xowa/src_310_url/gplx/xowa/Xoh_href_parser.java
index b6d44b39e..fdd25593a 100644
--- a/400_xowa/src_310_url/gplx/xowa/Xoh_href_parser.java
+++ b/400_xowa/src_310_url/gplx/xowa/Xoh_href_parser.java
@@ -28,8 +28,8 @@ public class Xoh_href_parser {
segs.Add_stubs(Seg__ary);
}
public Url_encoder Encoder() {return encoder;} private Url_encoder encoder;
- public void Parse(Xoh_href rv, String raw, Xow_wiki wiki, byte[] cur_page) {Parse(rv, Bry_.new_utf8_(raw), wiki, cur_page);}
- public void Parse(Xoh_href rv, byte[] raw, Xow_wiki wiki, byte[] cur_page) {
+ public void Parse(Xoh_href rv, String raw, Xowe_wiki wiki, byte[] cur_page) {Parse(rv, Bry_.new_utf8_(raw), wiki, cur_page);}
+ public void Parse(Xoh_href rv, byte[] raw, Xowe_wiki wiki, byte[] cur_page) {
int bgn = 0, raw_len = raw.length; int file_slash_end = 0;
url_parser.Parse(tmp_url, raw, 0, raw_len); // parse as regular tmp_url to get protocol
rv.Init(raw, tmp_url.Protocol_tid());
@@ -48,7 +48,7 @@ public class Xoh_href_parser {
bgn = file_slash_end = Bry_.While_fwd(raw, Byte_ascii.Slash, tmp_url.Protocol_bry().length, raw_len);
rv.Tid_(Xoh_href.Tid_xowa);
rv.Wiki_(wiki.Domain_bry()); // wiki is always the current wiki
- byte[] page = wiki.App().Encoder_mgr().Gfs().Decode(Bry_.Mid(raw, bgn, raw_len));
+ byte[] page = Xoa_app_.Utl_encoder_mgr().Gfs().Decode(Bry_.Mid(raw, bgn, raw_len));
rv.Page_(page); // page is everything after "/xcmd/"; individual cmds will do further parsing; note that it should be decoded; EX: %20 -> " "; also note that anchor (#) or query params (?) are not parsed; the entire String will be reparsed later
return;
}
@@ -72,10 +72,10 @@ public class Xoh_href_parser {
}
}
}
- public byte[] Build_to_bry(Xow_wiki wiki, Xoa_ttl ttl) {Build_to_bfr(tmp_bfr, wiki, ttl, Bool_.N); return tmp_bfr.Xto_bry_and_clear();}
- public void Build_to_bfr(Bry_bfr bfr, Xow_wiki wiki, byte[] raw) {Build_to_bfr(bfr, wiki, Xoa_ttl.parse_(wiki, raw), Bool_.N);}
- public void Build_to_bfr(Bry_bfr bfr, Xow_wiki wiki, Xoa_ttl ttl) {Build_to_bfr(bfr, wiki, ttl, Bool_.N);}
- public void Build_to_bfr(Bry_bfr bfr, Xow_wiki wiki, Xoa_ttl ttl, boolean force_site) {
+ public byte[] Build_to_bry(Xowe_wiki wiki, Xoa_ttl ttl) {Build_to_bfr(tmp_bfr, wiki, ttl, Bool_.N); return tmp_bfr.Xto_bry_and_clear();}
+ public void Build_to_bfr(Bry_bfr bfr, Xowe_wiki wiki, byte[] raw) {Build_to_bfr(bfr, wiki, Xoa_ttl.parse_(wiki, raw), Bool_.N);}
+ public void Build_to_bfr(Bry_bfr bfr, Xowe_wiki wiki, Xoa_ttl ttl) {Build_to_bfr(bfr, wiki, ttl, Bool_.N);}
+ public void Build_to_bfr(Bry_bfr bfr, Xowe_wiki wiki, Xoa_ttl ttl, boolean force_site) {
byte[] page = ttl.Full_txt_raw();
Xow_xwiki_itm xwiki = ttl.Wik_itm();
if (xwiki == null) // not an xwiki; EX: [[wikt:Word]]
@@ -97,14 +97,14 @@ public class Xoh_href_parser {
else {} // anchor: noop
}
else { // xwiki
- if (wiki.App().Xwiki_missing(xwiki.Domain())) { // xwiki is not offline; use http:
+ if (wiki.Appe().Xwiki_missing(xwiki.Domain_bry())) { // xwiki is not offline; use http:
bfr.Add(Href_http_bry); // add "http://"; EX: http://
- bfr.Add(xwiki.Domain()); // add xwiki; EX: en_dict
+ bfr.Add(xwiki.Domain_bry()); // add xwiki; EX: en_dict
bfr.Add(Href_wiki_bry); // add "/wiki/"; EX: /wiki/
}
else { // xwiki is avaiable; use /site/
bfr.Add(Href_site_bry); // add "/site/"; EX: /site/
- bfr.Add(xwiki.Domain()); // add xwiki; EX: en_dict
+ bfr.Add(xwiki.Domain_bry()); // add xwiki; EX: en_dict
bfr.Add(Href_wiki_bry); // add "/wiki/"; EX: /wiki/
}
}
@@ -128,20 +128,20 @@ public class Xoh_href_parser {
static final byte Seg_null_tid = 0, Seg_wiki_tid = 1, Seg_site_tid = 2, Seg_xcmd_tid = 3;
private static final byte[] Seg_null_bry = Bry_.new_ascii_("/null/"), Seg_wiki_bry = Bry_.new_ascii_(Href_wiki_str), Seg_site_bry = Bry_.new_ascii_(Href_site_str), Seg_xcmd_bry = Bry_.new_ascii_(Href_xcmd_str);
private static final byte[][] Seg__ary = new byte[][] {Seg_null_bry, Seg_wiki_bry, Seg_site_bry, Seg_xcmd_bry};
- private static void Parse_wiki(Xoh_href rv, Url_encoder encoder, Xow_wiki wiki, byte[] raw, int bgn, int len) {
+ private static void Parse_wiki(Xoh_href rv, Url_encoder encoder, Xowe_wiki wiki, byte[] raw, int bgn, int len) {
byte[] ttl_raw = Bry_.Mid(raw, bgn, len);
Xoa_ttl ttl = Xoa_ttl.parse_(wiki, ttl_raw);
if (ttl == null) {
- wiki.App().Gui_wtr().Warn_many("xowa.href.parser", "invalid_wiki", "wiki href does not have valid title: ~{0}", String_.new_utf8_(raw, bgn, len));
+ wiki.Appe().Usr_dlg().Warn_many("xowa.href.parser", "invalid_wiki", "wiki href does not have valid title: ~{0}", String_.new_utf8_(raw, bgn, len));
return;
}
if (ttl.Wik_itm() == null) { // standard href; EX: "/wiki/A"
rv.Tid_(Xoh_href.Tid_wiki);
- rv.Wiki_(wiki.Domain_bry()); // wiki is always the current wiki
+ rv.Wiki_(wiki.Domain_bry()); // wiki is always the current wiki
}
else { // embedded xwiki prefix; EX: "/wiki/fr:A"
rv.Tid_(Xoh_href.Tid_site);
- rv.Wiki_(ttl.Wik_itm().Domain()); // wiki is the xwiki prefix; EX: "en.wikpedia.org//wiki/fr:A" -> "fr.wikpedia.org/wiki/A"
+ rv.Wiki_(ttl.Wik_itm().Domain_bry()); // wiki is the xwiki prefix; EX: "en.wikpedia.org//wiki/fr:A" -> "fr.wikpedia.org/wiki/A"
}
byte[] page_bry = encoder.Decode(ttl.Full_txt()); // note that Full is everything except for ns, so it handles "fr:A" ("fr:" being treated as ns, so only "A" will be Full_txt)
if (Bry_.Len_eq_0(page_bry)) // handle xwiki hrefs like "fr:"; EX: "/wiki/wikipedia:" on en.wikisource.org/Main Page
@@ -151,14 +151,14 @@ public class Xoh_href_parser {
rv.Page_(page_bry); // add page; note that it should be decoded; EX: %20 -> " "; also note that anchor (#) or query params (?) are not parsed; the entire String will be reparsed later
if (ttl.Anch_bgn() != Bry_.NotFound) rv.Anchor_(ttl.Anch_txt());
}
- private static void Parse_site(Xoh_href rv, Url_encoder encoder, Xow_wiki wiki, byte[] raw, int bgn, int len) { // /site/; EX: /site/fr.wikipedia.org/wiki/A
+ private static void Parse_site(Xoh_href rv, Url_encoder encoder, Xowe_wiki wiki, byte[] raw, int bgn, int len) { // /site/; EX: /site/fr.wikipedia.org/wiki/A
int slash = Bry_finder.Find_fwd(raw, Byte_ascii.Slash, bgn, len); if (slash == Bry_.NotFound) throw Err_mgr._.fmt_("xowa.href.parser", "invalid_site", "site href is missing slash: ~{0}", String_.new_utf8_(raw, bgn, len));
rv.Tid_(Xoh_href.Tid_site);
byte[] wiki_bry = Bry_.Mid(raw, bgn, slash); // wiki is text between "/site/" and next "/"
- Xow_xwiki_itm xwiki = wiki.App().User().Wiki().Xwiki_mgr().Get_by_key(wiki_bry); // NOTE: site may refer to alias in user_wiki; ex: /site/wikisource.org which points to en.wikisource.org; this occurs during lnke substitution; EX: [//wikisource.org Wikisource]
+ Xow_xwiki_itm xwiki = wiki.Appe().User().Wiki().Xwiki_mgr().Get_by_key(wiki_bry); // NOTE: site may refer to alias in user_wiki; ex: /site/wikisource.org which points to en.wikisource.org; this occurs during lnke substitution; EX: [//wikisource.org Wikisource]
if (xwiki != null) {
- wiki_bry = xwiki.Domain();
- wiki = wiki.App().Wiki_mgr().Get_by_key_or_make(wiki_bry); // NOTE: xwiki links should use case_match of xwiki (en.wiktionary.org) not cur_wiki (en.wikipedia.org); EX:w:alphabet
+ wiki_bry = xwiki.Domain_bry();
+ wiki = wiki.Appe().Wiki_mgr().Get_by_key_or_make(wiki_bry); // NOTE: xwiki links should use case_match of xwiki (en.wiktionary.org) not cur_wiki (en.wikipedia.org); EX:w:alphabet
}
rv.Wiki_(wiki_bry);
int page_pos = slash + Href_wiki_len;
@@ -174,9 +174,9 @@ public class Xoh_href_parser {
// rv.Qarg_(qarg_bry);
// page_bry = Bry_.Mid(page_bry, 0, qarg_pos);
// }
- Parse_ttl_and_resolve_xwiki(wiki.App().Usr_dlg(), rv, wiki, encoder, page_bry, raw, bgn, len);
+ Parse_ttl_and_resolve_xwiki(wiki.Appe().Usr_dlg(), rv, wiki, encoder, page_bry, raw, bgn, len);
}
- private static void Parse_ttl_and_resolve_xwiki(Gfo_usr_dlg usr_dlg, Xoh_href rv, Xow_wiki wiki, Url_encoder encoder, byte[] page_bry, byte[] raw, int bgn, int len) {
+ private static void Parse_ttl_and_resolve_xwiki(Gfo_usr_dlg usr_dlg, Xoh_href rv, Xowe_wiki wiki, Url_encoder encoder, byte[] page_bry, byte[] raw, int bgn, int len) {
Xoa_ttl ttl = Xoa_ttl.parse_(wiki, page_bry);
if (ttl == null) {
usr_dlg.Warn_many("xowa.href.parser", "invalid_wiki", "wiki href does not have valid title: ~{0}", String_.new_utf8_(raw, bgn, len));
@@ -184,7 +184,7 @@ public class Xoh_href_parser {
return;
}
if (ttl.Wik_itm() != null) { // page_bry has xwiki; EX: "wikt:A"; note that since this is called by "/site/", there may be two xwikis; EX: "w:wikt:"; Note that more than 2 is not being handled
- wiki = wiki.App().Wiki_mgr().Get_by_key_or_make(ttl.Wik_itm().Domain());
+ wiki = wiki.Appe().Wiki_mgr().Get_by_key_or_make(ttl.Wik_itm().Domain_bry());
rv.Wiki_(wiki.Domain_bry());
if (Bry_.Len_eq_0(ttl.Page_txt())) // page_bry is just alias; EX: "wikt:"
page_bry = wiki.Props().Main_page();
@@ -196,7 +196,7 @@ public class Xoh_href_parser {
if (ttl.Anch_bgn() != Bry_.NotFound) // add anchor if it exists
rv.Anchor_(ttl.Anch_txt());
}
- private static void Parse_xcmd(Xoh_href rv, Url_encoder encoder, Xow_wiki wiki, byte[] raw, int bgn, int len) { // /xcmd/; note encoder is passed, but don't decode for now; most invk commands have an _ which will get changed to a " ";
+ private static void Parse_xcmd(Xoh_href rv, Url_encoder encoder, Xowe_wiki wiki, byte[] raw, int bgn, int len) { // /xcmd/; note encoder is passed, but don't decode for now; most invk commands have an _ which will get changed to a " ";
rv.Tid_(Xoh_href.Tid_xcmd);
rv.Wiki_(wiki.Domain_bry()); // wiki is always the current wiki
rv.Page_(Bry_.Mid(raw, bgn, len)); // page is everything after "/xcmd/"; individual cmds will do further parsing; note that it should be decoded; EX: %20 -> " "; also note that anchor (#) or query params (?) are not parsed; the entire String will be reparsed later
diff --git a/400_xowa/src_310_url/gplx/xowa/Xoh_href_parser_tst.java b/400_xowa/src_310_url/gplx/xowa/Xoh_href_parser_tst.java
index 7a3898348..c0d369c7f 100644
--- a/400_xowa/src_310_url/gplx/xowa/Xoh_href_parser_tst.java
+++ b/400_xowa/src_310_url/gplx/xowa/Xoh_href_parser_tst.java
@@ -164,7 +164,7 @@ public class Xoh_href_parser_tst {
@Test public void Parse_xwiki_cases_correctly() { // PURPOSE: xwiki links should use case_match of xwiki (en.wiktionary.org) not cur_wiki (en.wikipedia.org); EX:w:Alphabet
fxt .Prep_raw_("/site/en.wiktionary.org/wiki/alphabet")
.Init_xwiki_alias("en.wiktionary.org", "en.wiktionary.org");
- Xow_wiki en_wiktionary_org = fxt.App().Wiki_mgr().Get_by_key_or_make(Bry_.new_ascii_("en.wiktionary.org"));
+ Xowe_wiki en_wiktionary_org = fxt.App().Wiki_mgr().Get_by_key_or_make(Bry_.new_ascii_("en.wiktionary.org"));
en_wiktionary_org.Ns_mgr().Ns_main().Case_match_(Xow_ns_case_.Id_all);
fxt .Expd_tid_(Xoh_href.Tid_site)
.Expd_full_("en.wiktionary.org/wiki/alphabet")
@@ -186,7 +186,7 @@ public class Xoh_href_parser_tst {
// @Test public void Parse_question_w_arg() {fxt.Prep_raw_("/wiki/A%3F?action=edit").Expd_tid_(Xoh_href.Tid_wiki).Expd_full_("en.wikipedia.org/wiki/A??action=edit").Expd_page_("A??action=edit").Test_parse();}
}
class Xoh_href_parser_fxt {
- private Xow_wiki wiki; private Xoh_href_parser href_parser; private Bry_bfr tmp_bfr = Bry_bfr.reset_(255); private Xoh_href href = new Xoh_href();
+ private Xowe_wiki wiki; private Xoh_href_parser href_parser; private Bry_bfr tmp_bfr = Bry_bfr.reset_(255); private Xoh_href href = new Xoh_href();
private static final byte[] Page_1_ttl = Bry_.new_ascii_("Page 1");
public void Clear() {
expd_tid = Xoh_href.Tid_null;
@@ -196,9 +196,9 @@ class Xoh_href_parser_fxt {
wiki = Xoa_app_fxt.wiki_tst_(app);
wiki.Xwiki_mgr().Add_bulk(Bry_.new_ascii_("wikt|en.wiktionary.org"));
app.User().Wiki().Xwiki_mgr().Add_bulk(Bry_.new_ascii_("en.wiktionary.org|en.wiktionary.org"));
- href_parser = new Xoh_href_parser(app.Encoder_mgr().Href(), app.Url_parser().Url_parser());
+ href_parser = new Xoh_href_parser(Xoa_app_.Utl_encoder_mgr().Href(), app.Url_parser().Url_parser());
}
- public Xoa_app App() {return app;} private Xoa_app app;
+ public Xoae_app App() {return app;} private Xoae_app app;
public Xoh_href_parser_fxt Init_xwiki_alias(String alias, String domain) {
app.User().Wiki().Xwiki_mgr().Add_full(alias, domain);
return this;
diff --git a/400_xowa/src_400_parser/gplx/xowa/Xoa_ttl.java b/400_xowa/src_400_parser/gplx/xowa/Xoa_ttl.java
index 7db866caa..a6c98661d 100644
--- a/400_xowa/src_400_parser/gplx/xowa/Xoa_ttl.java
+++ b/400_xowa/src_400_parser/gplx/xowa/Xoa_ttl.java
@@ -87,15 +87,15 @@ public class Xoa_ttl { // PAGE:en.w:http://en.wikipedia.org/wiki/Help:Link; REF.
int ques_pos = Bry_finder.Find_bwd(full_txt, Byte_ascii.Question, full_txt_len, page_bgn);
return Bry_.Mid(full_txt, page_bgn, ques_pos == Bry_.NotFound ? full_txt_len : ques_pos);
}
- public static Xoa_ttl parse_(Xow_wiki wiki, int ns_id, byte[] ttl) {
+ public static Xoa_ttl parse_(Xowe_wiki wiki, int ns_id, byte[] ttl) {
Xow_ns ns = wiki.Ns_mgr().Ids_get_or_null(ns_id);
byte[] raw = Bry_.Add(ns.Name_db_w_colon(), ttl);
- return new_(wiki, wiki.App().Msg_log(), raw, 0, raw.length);
+ return new_(wiki, wiki.Appe().Msg_log(), raw, 0, raw.length);
}
- public static Xoa_ttl parse_(Xow_wiki wiki, byte[] raw) {return new_(wiki, wiki.App().Msg_log(), raw, 0, raw.length);}
+ public static Xoa_ttl parse_(Xowe_wiki wiki, byte[] raw) {return new_(wiki, wiki.Appe().Msg_log(), raw, 0, raw.length);}
private static final Object thread_lock = new Object();
- public static Xoa_ttl new_(Xow_wiki wiki, Gfo_msg_log msg_log, byte[] src, int bgn, int end) {
- Xoa_app app = wiki.App();
+ public static Xoa_ttl new_(Xowe_wiki wiki, Gfo_msg_log msg_log, byte[] src, int bgn, int end) {
+ Xoae_app app = wiki.Appe();
Bry_bfr_mkr bry_mkr = app.Utl_bry_bfr_mkr();
return parse(bry_mkr, app.Parser_amp_mgr(), wiki.Lang().Case_mgr(), wiki.Xwiki_mgr(), wiki.Ns_mgr(), msg_log, src, bgn, end);
} private Xoa_ttl() {}
diff --git a/400_xowa/src_400_parser/gplx/xowa/Xop_ctx.java b/400_xowa/src_400_parser/gplx/xowa/Xop_ctx.java
index 63870bae1..461486af3 100644
--- a/400_xowa/src_400_parser/gplx/xowa/Xop_ctx.java
+++ b/400_xowa/src_400_parser/gplx/xowa/Xop_ctx.java
@@ -22,17 +22,17 @@ import gplx.xowa.parsers.apos.*; import gplx.xowa.parsers.amps.*; import gplx.xo
import gplx.xowa.parsers.logs.*; import gplx.xowa.html.modules.popups.keeplists.*;
public class Xop_ctx {
private Xop_ctx_wkr[] wkrs = new Xop_ctx_wkr[] {};
- Xop_ctx(Xow_wiki wiki, Xoa_page page) {
- this.app = wiki.App(); this.msg_log = app.Msg_log();
+ Xop_ctx(Xowe_wiki wiki, Xoae_page page) {
+ this.app = wiki.Appe(); this.msg_log = app.Msg_log();
this.wiki = wiki; this.cur_page = page;
wkrs = new Xop_ctx_wkr[] {para, apos, xnde, list, lnki, hdr, amp, lnke, tblw, invk};
for (Xop_ctx_wkr wkr : wkrs) wkr.Ctor_ctx(this);
}
- public Xoa_app App() {return app;} private Xoa_app app;
- public Xow_wiki Wiki() {return wiki;} private Xow_wiki wiki;
+ public Xoae_app App() {return app;} private Xoae_app app;
+ public Xowe_wiki Wiki() {return wiki;} private Xowe_wiki wiki;
public Xol_lang Lang() {return wiki.Lang();}
public Xop_tkn_mkr Tkn_mkr() {return app.Tkn_mkr();}
- public Xoa_page Cur_page() {return cur_page;} public void Cur_page_(Xoa_page v) {cur_page = v;} private Xoa_page cur_page;
+ public Xoae_page Cur_page() {return cur_page;} public void Cur_page_(Xoae_page v) {cur_page = v;} private Xoae_page cur_page;
public byte Parse_tid() {return parse_tid;} public Xop_ctx Parse_tid_(byte v) {parse_tid = v; xnde_names_tid = v; return this;} private byte parse_tid = Xop_parser_.Parse_tid_null;
public byte Xnde_names_tid() {return xnde_names_tid;} public Xop_ctx Xnde_names_tid_(byte v) {xnde_names_tid = v; return this;} private byte xnde_names_tid = Xop_parser_.Parse_tid_null;
public Xop_amp_wkr Amp() {return amp;} private Xop_amp_wkr amp = new Xop_amp_wkr();
@@ -298,18 +298,18 @@ public class Xop_ctx {
if (stack_pos == -1) return;
ctx.Stack_pop_til(root, src, stack_pos, true, bgn_pos, cur_pos, Xop_tkn_itm_.Tid_txt);
}
- public static Xop_ctx new_(Xow_wiki wiki) {
- Xop_ctx rv = new Xop_ctx(wiki, Xoa_page.new_(wiki, Xoa_ttl.parse_(wiki, Xoa_page_.Main_page_bry))); // HACK: use "Main_Page" to put in valid page title
+ public static Xop_ctx new_(Xowe_wiki wiki) {
+ Xop_ctx rv = new Xop_ctx(wiki, Xoae_page.new_(wiki, Xoa_ttl.parse_(wiki, Xoa_page_.Main_page_bry))); // HACK: use "Main_Page" to put in valid page title
return rv;
}
- public static Xop_ctx new_sub_(Xow_wiki wiki) {return new_sub_(wiki, wiki.Ctx().cur_page);}
- public static Xop_ctx new_sub_(Xow_wiki wiki, Xoa_page page) { // TODO: new_sub_ should reuse ctx's page; callers who want new_page should call new_sub_page_; DATE:2014-04-10
+ public static Xop_ctx new_sub_(Xowe_wiki wiki) {return new_sub_(wiki, wiki.Ctx().cur_page);}
+ public static Xop_ctx new_sub_(Xowe_wiki wiki, Xoae_page page) { // TODO: new_sub_ should reuse ctx's page; callers who want new_page should call new_sub_page_; DATE:2014-04-10
Xop_ctx ctx = wiki.Ctx();
Xop_ctx rv = new Xop_ctx(wiki, page);
new_copy(ctx, rv);
return rv;
}
- public static Xop_ctx new_sub_page_(Xow_wiki wiki, Xop_ctx ctx, Hash_adp_bry lst_page_regy) {
+ public static Xop_ctx new_sub_page_(Xowe_wiki wiki, Xop_ctx ctx, Hash_adp_bry lst_page_regy) {
Xop_ctx rv = new Xop_ctx(wiki, ctx.cur_page);
new_copy(ctx, rv);
rv.lst_page_regy = lst_page_regy; // NOTE: must share ref for lst only (do not share for sub_(), else stack overflow)
diff --git a/400_xowa/src_400_parser/gplx/xowa/Xop_fxt.java b/400_xowa/src_400_parser/gplx/xowa/Xop_fxt.java
index e24c9ab95..97742319f 100644
--- a/400_xowa/src_400_parser/gplx/xowa/Xop_fxt.java
+++ b/400_xowa/src_400_parser/gplx/xowa/Xop_fxt.java
@@ -16,22 +16,23 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa; import gplx.*;
-import gplx.xowa.html.*; import gplx.xowa.parsers.apos.*; import gplx.xowa.parsers.hdrs.*; import gplx.xowa.parsers.lists.*; import gplx.xowa.parsers.paras.*;
+import gplx.xowa.langs.*; import gplx.xowa.html.*; import gplx.xowa.parsers.apos.*; import gplx.xowa.parsers.hdrs.*; import gplx.xowa.parsers.lists.*; import gplx.xowa.parsers.paras.*;
+import gplx.xowa.files.exts.*;
public class Xop_fxt {
public Xop_fxt() {
- Xoa_app app = Xoa_app_fxt.app_();
+ Xoae_app app = Xoa_app_fxt.app_();
wiki = Xoa_app_fxt.wiki_tst_(app);
ctor(app, wiki);
}
- public Xop_fxt(Xoa_app app, Xow_wiki wiki) {
+ public Xop_fxt(Xoae_app app, Xowe_wiki wiki) {
this.ctor(app, wiki);
}
- private void ctor(Xoa_app app, Xow_wiki wiki) {
+ private void ctor(Xoae_app app, Xowe_wiki wiki) {
this.app = app;
this.wiki = wiki;
app.Wiki_mgr().Add(wiki);
- app.File_mgr().Repo_mgr().Set("src:wiki", "mem/wiki/repo/src/", wiki.Domain_str()).Ext_rules_(Xoft_rule_grp.Grp_app_default).Dir_depth_(2);
- app.File_mgr().Repo_mgr().Set("trg:wiki", "mem/wiki/repo/trg/", wiki.Domain_str()).Ext_rules_(Xoft_rule_grp.Grp_app_default).Dir_depth_(2).Primary_(true);
+ app.File_mgr().Repo_mgr().Set("src:wiki", "mem/wiki/repo/src/", wiki.Domain_str()).Ext_rules_(Xof_rule_grp.Grp_app_default).Dir_depth_(2);
+ app.File_mgr().Repo_mgr().Set("trg:wiki", "mem/wiki/repo/trg/", wiki.Domain_str()).Ext_rules_(Xof_rule_grp.Grp_app_default).Dir_depth_(2).Primary_(true);
wiki.File_mgr().Repo_mgr().Add_repo(Bry_.new_utf8_("src:wiki"), Bry_.new_utf8_("trg:wiki"));
ctx = wiki.Ctx();
mock_wkr.Clear_commons(); // assume all files are in repo 0
@@ -46,12 +47,12 @@ public class Xop_fxt {
Xot_invk_tkn.Cache_enabled = false;// always disable cache for tests; can cause strange behavior when running entire suite and lnki_temp test turns on;
}
private Xofw_wiki_wkr_mock mock_wkr = new Xofw_wiki_wkr_mock();
- public Xoa_app App() {return app;} private Xoa_app app;
- public Xow_wiki Wiki() {return wiki;} private Xow_wiki wiki;
+ public Xoae_app App() {return app;} private Xoae_app app;
+ public Xowe_wiki Wiki() {return wiki;} private Xowe_wiki wiki;
public Xop_ctx Ctx() {return ctx;} private Xop_ctx ctx;
public Xop_parser Parser() {return parser;} private Xop_parser parser;
- public Xoa_page Page() {return ctx.Cur_page();}
- public void Lang_by_id_(int id) {ctx.Cur_page().Lang_(wiki.App().Lang_mgr().Get_by_key_or_new(Xol_lang_itm_.Get_by_id(id).Key()));}
+ public Xoae_page Page() {return ctx.Cur_page();}
+ public void Lang_by_id_(int id) {ctx.Cur_page().Lang_(wiki.Appe().Lang_mgr().Get_by_key_or_new(Xol_lang_itm_.Get_by_id(id).Key()));}
public Xoh_html_wtr_cfg Wtr_cfg() {return hdom_wtr.Cfg();} private Xoh_html_wtr hdom_wtr;
public Xop_fxt Reset() {
ctx.Clear();
@@ -169,20 +170,20 @@ public class Xop_fxt {
public Xop_fxt Init_ctg_create(String ctg, int... pages) {Xow_hive_mgr_fxt.Create_ctg(app, wiki.Hive_mgr(), ctg, pages); return this;}
public Xop_fxt Init_page_create(String ttl) {return Init_page_create(wiki, ttl, "");}
public Xop_fxt Init_page_create(String ttl, String txt) {return Init_page_create(wiki, ttl, txt);}
- public Xop_fxt Init_page_create(Xow_wiki wiki, String ttl, String txt) {Init_page_create_static(wiki, ttl, txt);return this;}
- public static void Init_page_create_static(Xow_wiki wiki, String ttl_str, String text_str) {
+ public Xop_fxt Init_page_create(Xowe_wiki wiki, String ttl, String txt) {Init_page_create_static(wiki, ttl, txt);return this;}
+ public static void Init_page_create_static(Xowe_wiki wiki, String ttl_str, String text_str) {
Xoa_ttl ttl = Xoa_ttl.parse_(wiki, Bry_.new_utf8_(ttl_str));
byte[] text = Bry_.new_utf8_(text_str);
wiki.Db_mgr().Save_mgr().Data_create(ttl, text);
}
- public static void Init_msg(Xow_wiki wiki, String key, String val) {
+ public static void Init_msg(Xowe_wiki wiki, String key, String val) {
wiki.Lang().Msg_mgr().Itm_by_key_or_new(key, val);
}
public Xop_fxt Init_page_update(String ttl, String txt) {return Init_page_update(wiki, ttl, txt);}
- public Xop_fxt Init_page_update(Xow_wiki wiki, String ttl, String txt) {
+ public Xop_fxt Init_page_update(Xowe_wiki wiki, String ttl, String txt) {
Xoa_ttl page_ttl = Xoa_ttl.parse_(wiki, Bry_.new_utf8_(ttl));
byte[] page_raw = Bry_.new_utf8_(txt);
- Xoa_page page = wiki.Data_mgr().Get_page(page_ttl, false);
+ Xoae_page page = wiki.Data_mgr().Get_page(page_ttl, false);
wiki.Db_mgr().Save_mgr().Data_update(page, page_raw);
return this;
}
@@ -334,16 +335,16 @@ public class Xop_fxt {
byte[] actl = Load_page(wiki, ttl);
Tfds.Eq(expd, String_.new_utf8_(actl));
}
- public static byte[] Load_page(Xow_wiki wiki, String ttl_str) {
+ public static byte[] Load_page(Xowe_wiki wiki, String ttl_str) {
byte[] ttl_bry = Bry_.new_utf8_(ttl_str);
Xoa_url page_url = Xoa_url.new_(wiki.Domain_bry(), ttl_bry);
Xoa_ttl ttl = Xoa_ttl.parse_(wiki, ttl_bry);
return wiki.GetPageByTtl(page_url, ttl).Data_raw();
}
- public static void Reg_xwiki_alias(Xow_wiki wiki, String alias, String domain) {
+ public static void Reg_xwiki_alias(Xowe_wiki wiki, String alias, String domain) {
byte[] domain_bry = Bry_.new_ascii_(domain);
wiki.Xwiki_mgr().Add_full(Bry_.new_ascii_(alias), domain_bry, Bry_.Add(domain_bry, Bry_.new_ascii_("/wiki/~{0}")));
- wiki.App().User().Wiki().Xwiki_mgr().Add_full(domain_bry, domain_bry);
+ wiki.Appe().User().Wiki().Xwiki_mgr().Add_full(domain_bry, domain_bry);
}
public static String html_img_none(String trg, String alt, String src, String ttl) {
return String_.Format(String_.Concat_lines_nl_skip_last("
"), trg, alt, src, ttl);
diff --git a/400_xowa/src_400_parser/gplx/xowa/Xop_lxr.java b/400_xowa/src_400_parser/gplx/xowa/Xop_lxr.java
index c64837f5d..16ed5f043 100644
--- a/400_xowa/src_400_parser/gplx/xowa/Xop_lxr.java
+++ b/400_xowa/src_400_parser/gplx/xowa/Xop_lxr.java
@@ -19,7 +19,7 @@ package gplx.xowa; import gplx.*;
import gplx.core.btries.*;
public interface Xop_lxr {
byte Lxr_tid();
- void Init_by_wiki(Xow_wiki wiki, Btrie_fast_mgr core_trie);
+ void Init_by_wiki(Xowe_wiki wiki, Btrie_fast_mgr core_trie);
void Init_by_lang(Xol_lang lang, Btrie_fast_mgr core_trie);
int Make_tkn(Xop_ctx ctx, Xop_tkn_mkr tkn_mkr, Xop_root_tkn root, byte[] src, int src_len, int bgn_pos, int cur_pos);
}
diff --git a/400_xowa/src_400_parser/gplx/xowa/Xop_lxr_mgr.java b/400_xowa/src_400_parser/gplx/xowa/Xop_lxr_mgr.java
index aba531191..f98e482ca 100644
--- a/400_xowa/src_400_parser/gplx/xowa/Xop_lxr_mgr.java
+++ b/400_xowa/src_400_parser/gplx/xowa/Xop_lxr_mgr.java
@@ -22,7 +22,7 @@ public class Xop_lxr_mgr {
private Xop_lxr[] ary;
public Xop_lxr_mgr(Xop_lxr[] ary) {this.ary = ary;}
public Btrie_fast_mgr Trie() {return trie;} private Btrie_fast_mgr trie = Btrie_fast_mgr.cs_();
- public void Init_by_wiki(Xow_wiki wiki) {
+ public void Init_by_wiki(Xowe_wiki wiki) {
int ary_len = ary.length;
for (int i = 0; i < ary_len; i++) {
Xop_lxr lxr = ary[i];
diff --git a/400_xowa/src_400_parser/gplx/xowa/Xop_lxr_misc.java b/400_xowa/src_400_parser/gplx/xowa/Xop_lxr_misc.java
index b659c65e0..4af06b4a4 100644
--- a/400_xowa/src_400_parser/gplx/xowa/Xop_lxr_misc.java
+++ b/400_xowa/src_400_parser/gplx/xowa/Xop_lxr_misc.java
@@ -19,7 +19,7 @@ package gplx.xowa; import gplx.*;
import gplx.core.btries.*; import gplx.xowa.parsers.lists.*;
class Xop_colon_lxr implements Xop_lxr {
public byte Lxr_tid() {return Xop_lxr_.Tid_colon;}
- public void Init_by_wiki(Xow_wiki wiki, Btrie_fast_mgr core_trie) {core_trie.Add(Byte_ascii.Colon, this);}
+ public void Init_by_wiki(Xowe_wiki wiki, Btrie_fast_mgr core_trie) {core_trie.Add(Byte_ascii.Colon, this);}
public void Init_by_lang(Xol_lang lang, Btrie_fast_mgr core_trie) {}
public int Make_tkn(Xop_ctx ctx, Xop_tkn_mkr tkn_mkr, Xop_root_tkn root, byte[] src, int src_len, int bgn_pos, int cur_pos) {
Xop_list_wkr listCtx = ctx.List();
diff --git a/400_xowa/src_400_parser/gplx/xowa/Xop_parser.java b/400_xowa/src_400_parser/gplx/xowa/Xop_parser.java
index e4056fbb3..80ebf43a4 100644
--- a/400_xowa/src_400_parser/gplx/xowa/Xop_parser.java
+++ b/400_xowa/src_400_parser/gplx/xowa/Xop_parser.java
@@ -18,8 +18,8 @@ along with this program. If not, see .
package gplx.xowa; import gplx.*;
import gplx.core.btries.*;
public class Xop_parser { // NOTE: parsers are reused; do not keep any read-write state
- private Xow_wiki wiki;
- public Xop_parser(Xow_wiki wiki, Xop_lxr_mgr tmpl_lxr_mgr, Xop_lxr_mgr wtxt_lxr_mgr) {
+ private Xowe_wiki wiki;
+ public Xop_parser(Xowe_wiki wiki, Xop_lxr_mgr tmpl_lxr_mgr, Xop_lxr_mgr wtxt_lxr_mgr) {
this.wiki = wiki;
this.tmpl_lxr_mgr = tmpl_lxr_mgr; this.tmpl_trie = tmpl_lxr_mgr.Trie();
this.wtxt_lxr_mgr = wtxt_lxr_mgr; this.wtxt_trie = wtxt_lxr_mgr.Trie();
@@ -28,7 +28,7 @@ public class Xop_parser { // NOTE: parsers are reused; do not keep any read-writ
public Xop_lxr_mgr Wtxt_lxr_mgr() {return wtxt_lxr_mgr;} private Xop_lxr_mgr wtxt_lxr_mgr;
public Btrie_fast_mgr Tmpl_trie() {return tmpl_trie;} private Btrie_fast_mgr tmpl_trie;
public Btrie_fast_mgr Wtxt_trie() {return wtxt_trie;} private Btrie_fast_mgr wtxt_trie;
- public void Init_by_wiki(Xow_wiki wiki) {
+ public void Init_by_wiki(Xowe_wiki wiki) {
tmpl_lxr_mgr.Init_by_wiki(wiki);
wtxt_lxr_mgr.Init_by_wiki(wiki);
}
@@ -41,7 +41,7 @@ public class Xop_parser { // NOTE: parsers are reused; do not keep any read-writ
Parse_text_to_html(bfr, ctx.Cur_page(), false, src);
return bfr.Mkr_rls().Xto_bry_and_clear();
}
- public void Parse_text_to_html(Bry_bfr trg, Xoa_page page, boolean para_enabled, byte[] src) {
+ public void Parse_text_to_html(Bry_bfr trg, Xoae_page page, boolean para_enabled, byte[] src) {
Xop_ctx ctx = Xop_ctx.new_sub_(wiki, page);
Xop_tkn_mkr tkn_mkr = ctx.Tkn_mkr();
Xop_root_tkn root = tkn_mkr.Root(src);
@@ -190,7 +190,7 @@ public class Xop_parser { // NOTE: parsers are reused; do not keep any read-writ
tkn.Src_end_(pos);
return tkn;
}
- public static Xop_parser new_wiki_(Xow_wiki wiki) {
+ public static Xop_parser new_wiki_(Xowe_wiki wiki) {
Xop_parser rv = new Xop_parser(wiki, Xop_lxr_mgr.new_tmpl_(), Xop_lxr_mgr.new_wiki_());
rv.Init_by_wiki(wiki);
rv.Init_by_lang(wiki.Lang());
diff --git a/400_xowa/src_400_parser/gplx/xowa/Xop_parser_.java b/400_xowa/src_400_parser/gplx/xowa/Xop_parser_.java
index b1eb53e25..286dbb6aa 100644
--- a/400_xowa/src_400_parser/gplx/xowa/Xop_parser_.java
+++ b/400_xowa/src_400_parser/gplx/xowa/Xop_parser_.java
@@ -20,9 +20,8 @@ import gplx.xowa.langs.vnts.*;
public class Xop_parser_ {
public static final byte Parse_tid_null = 0, Parse_tid_tmpl = 1, Parse_tid_page_tmpl = 2, Parse_tid_page_wiki = 3;
public static final int Doc_bgn_bos = -1, Doc_bgn_char_0 = 0;
- public static byte[] Parse_text_to_html(Xow_wiki wiki, Xoa_ttl ttl, byte[] src, boolean para_enabled) {
+ public static byte[] Parse_text_to_html(Xowe_wiki wiki, Xoae_page page, Xoa_ttl ttl, byte[] src, boolean para_enabled) { // NOTE: must pass in same page instance; do not do Xoa_page_.new_(), else img_idx will get reset to 0; DATE:2015-02-08
Bry_bfr bfr = wiki.Utl_bry_bfr_mkr().Get_b512();
- Xoa_page page = Xoa_page.new_(wiki, ttl);
Xop_ctx ctx = Xop_ctx.new_sub_(wiki, page);
Xop_tkn_mkr tkn_mkr = ctx.Tkn_mkr();
Xop_root_tkn root = tkn_mkr.Root(src);
diff --git a/400_xowa/src_400_parser/gplx/xowa/Xop_redirect_mgr.java b/400_xowa/src_400_parser/gplx/xowa/Xop_redirect_mgr.java
index 063cb4256..7b5c4654c 100644
--- a/400_xowa/src_400_parser/gplx/xowa/Xop_redirect_mgr.java
+++ b/400_xowa/src_400_parser/gplx/xowa/Xop_redirect_mgr.java
@@ -18,8 +18,8 @@ along with this program. If not, see .
package gplx.xowa; import gplx.*;
import gplx.xowa.html.*;
public class Xop_redirect_mgr {
- private final Xow_wiki wiki; private final Url_encoder url_decoder; private Hash_adp_bry redirect_hash;
- public Xop_redirect_mgr(Xow_wiki wiki) {this.wiki = wiki; this.url_decoder = wiki.App().Encoder_mgr().Url_ttl();} // NOTE: must be Url_ttl, not Url; PAGE:en.w:Template:Positionskarte+ -> Template:Location_map+, not Template:Location_map DATE:2014-08-21
+ private final Xowe_wiki wiki; private final Url_encoder url_decoder; private Hash_adp_bry redirect_hash;
+ public Xop_redirect_mgr(Xowe_wiki wiki) {this.wiki = wiki; this.url_decoder = Xoa_app_.Utl_encoder_mgr().Url_ttl();} // NOTE: must be Url_ttl, not Url; PAGE:en.w:Template:Positionskarte+ -> Template:Location_map+, not Template:Location_map DATE:2014-08-21
public void Clear() {redirect_hash = null;} // TEST:
public boolean Is_redirect(byte[] text, int text_len) {return this.Extract_redirect(text, text_len) != null;}
public Xoa_ttl Extract_redirect_loop(byte[] src) {
@@ -62,7 +62,7 @@ public class Xop_redirect_mgr {
, Xop_tkn_.Lnki_end // "]]"
);
}
- public static byte[] Bld_redirect_msg(Xoa_app app, Xow_wiki wiki, Xoa_page page) {
+ public static byte[] Bld_redirect_msg(Xoae_app app, Xowe_wiki wiki, Xoae_page page) {
ListAdp list = page.Redirected_ttls();
int list_len = list.Count();
if (list_len == 0) return Bry_.Empty;
diff --git a/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_comm_lxr.java b/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_comm_lxr.java
index 8ede2d2af..46d953f03 100644
--- a/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_comm_lxr.java
+++ b/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_comm_lxr.java
@@ -19,7 +19,7 @@ package gplx.xowa; import gplx.*;
import gplx.core.btries.*; import gplx.xowa.parsers.paras.*;
public class Xop_comm_lxr implements Xop_lxr {
public byte Lxr_tid() {return Xop_lxr_.Tid_comment;}
- public void Init_by_wiki(Xow_wiki wiki, Btrie_fast_mgr core_trie) {core_trie.Add(Bgn_ary, this);}
+ public void Init_by_wiki(Xowe_wiki wiki, Btrie_fast_mgr core_trie) {core_trie.Add(Bgn_ary, this);}
public void Init_by_lang(Xol_lang lang, Btrie_fast_mgr core_trie) {}
public int Make_tkn(Xop_ctx ctx, Xop_tkn_mkr tkn_mkr, Xop_root_tkn root, byte[] src, int src_len, int bgn_pos, int cur_pos) {
int lhs_end = cur_pos;
diff --git a/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_cr_tkn.java b/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_cr_tkn.java
index 87e5f8b1e..ae09e4f1b 100644
--- a/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_cr_tkn.java
+++ b/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_cr_tkn.java
@@ -23,7 +23,7 @@ public class Xop_cr_tkn extends Xop_tkn_itm_base {
}
class Xop_cr_lxr implements Xop_lxr {
public byte Lxr_tid() {return Xop_lxr_.Tid_cr;}
- public void Init_by_wiki(Xow_wiki wiki, Btrie_fast_mgr core_trie) {
+ public void Init_by_wiki(Xowe_wiki wiki, Btrie_fast_mgr core_trie) {
core_trie.Add(Byte_ascii.CarriageReturn, this);
}
public void Init_by_lang(Xol_lang lang, Btrie_fast_mgr core_trie) {}
diff --git a/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_eq_lxr.java b/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_eq_lxr.java
index d1b43aaf1..ae3e19919 100644
--- a/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_eq_lxr.java
+++ b/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_eq_lxr.java
@@ -20,7 +20,7 @@ import gplx.core.btries.*; import gplx.xowa.parsers.paras.*;
class Xop_eq_lxr implements Xop_lxr {
public Xop_eq_lxr(boolean tmpl_mode) {this.tmpl_mode = tmpl_mode;} boolean tmpl_mode;
public byte Lxr_tid() {return Xop_lxr_.Tid_eq;}
- public void Init_by_wiki(Xow_wiki wiki, Btrie_fast_mgr core_trie) {core_trie.Add(Byte_ascii.Eq, this);}
+ public void Init_by_wiki(Xowe_wiki wiki, Btrie_fast_mgr core_trie) {core_trie.Add(Byte_ascii.Eq, this);}
public void Init_by_lang(Xol_lang lang, Btrie_fast_mgr core_trie) {}
public int Make_tkn(Xop_ctx ctx, Xop_tkn_mkr tkn_mkr, Xop_root_tkn root, byte[] src, int src_len, int bgn_pos, int cur_pos) {
cur_pos = Bry_finder.Find_fwd_while(src, cur_pos, src_len, Byte_ascii.Eq); // gobble up eq; "==" should produce 1 eq_tkn with len of 2, not 2 eq_tkn with len of 1; DATE:2014-04-17
diff --git a/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_hr_lxr.java b/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_hr_lxr.java
index eb159d5e6..04c55f9b6 100644
--- a/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_hr_lxr.java
+++ b/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_hr_lxr.java
@@ -19,7 +19,7 @@ package gplx.xowa; import gplx.*;
import gplx.core.btries.*;
public class Xop_hr_lxr implements Xop_lxr {
public byte Lxr_tid() {return Xop_lxr_.Tid_hr;}
- public void Init_by_wiki(Xow_wiki wiki, Btrie_fast_mgr parse_trie) {parse_trie.Add(Hook_ary, this);} static final byte[] Hook_ary = new byte[] {Byte_ascii.NewLine, Byte_ascii.Dash, Byte_ascii.Dash, Byte_ascii.Dash, Byte_ascii.Dash};
+ public void Init_by_wiki(Xowe_wiki wiki, Btrie_fast_mgr parse_trie) {parse_trie.Add(Hook_ary, this);} static final byte[] Hook_ary = new byte[] {Byte_ascii.NewLine, Byte_ascii.Dash, Byte_ascii.Dash, Byte_ascii.Dash, Byte_ascii.Dash};
public void Init_by_lang(Xol_lang lang, Btrie_fast_mgr core_trie) {}
public int Make_tkn(Xop_ctx ctx, Xop_tkn_mkr tkn_mkr, Xop_root_tkn root, byte[] src, int src_len, int bgn_pos, int cur_pos) {
int nl_adj = -1; // -1 to ignore nl at bgn for hr_len
diff --git a/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_pipe_lxr.java b/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_pipe_lxr.java
index 4b465b0bd..1408a5b3e 100644
--- a/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_pipe_lxr.java
+++ b/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_pipe_lxr.java
@@ -19,7 +19,7 @@ package gplx.xowa; import gplx.*;
import gplx.core.btries.*; import gplx.xowa.parsers.tblws.*;
public class Xop_pipe_lxr implements Xop_lxr {
public byte Lxr_tid() {return Xop_lxr_.Tid_pipe;}
- public void Init_by_wiki(Xow_wiki wiki, Btrie_fast_mgr core_trie) {core_trie.Add(Byte_ascii.Pipe, this);}
+ public void Init_by_wiki(Xowe_wiki wiki, Btrie_fast_mgr core_trie) {core_trie.Add(Byte_ascii.Pipe, this);}
public void Init_by_lang(Xol_lang lang, Btrie_fast_mgr core_trie) {}
public int Make_tkn(Xop_ctx ctx, Xop_tkn_mkr tkn_mkr, Xop_root_tkn root, byte[] src, int src_len, int bgn_pos, int cur_pos) {
int cur_stack_tid = ctx.Cur_tkn_tid(), rv = -1;
diff --git a/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_space_tkn.java b/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_space_tkn.java
index b97f0d998..2704cba26 100644
--- a/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_space_tkn.java
+++ b/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_space_tkn.java
@@ -35,7 +35,7 @@ public class Xop_space_tkn extends Xop_tkn_itm_base {
}
class Xop_space_lxr implements Xop_lxr {
public byte Lxr_tid() {return Xop_lxr_.Tid_space;}
- public void Init_by_wiki(Xow_wiki wiki, Btrie_fast_mgr core_trie) {core_trie.Add(Byte_ascii.Space, this);}
+ public void Init_by_wiki(Xowe_wiki wiki, Btrie_fast_mgr core_trie) {core_trie.Add(Byte_ascii.Space, this);}
public void Init_by_lang(Xol_lang lang, Btrie_fast_mgr core_trie) {}
public int Make_tkn(Xop_ctx ctx, Xop_tkn_mkr tkn_mkr, Xop_root_tkn root, byte[] src, int src_len, int bgn_pos, int cur_pos) {
cur_pos = Bry_finder.Find_fwd_while(src, cur_pos, src_len, Byte_ascii.Space);
diff --git a/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_tab_tkn.java b/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_tab_tkn.java
index fae4b3473..08223f074 100644
--- a/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_tab_tkn.java
+++ b/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_tab_tkn.java
@@ -24,7 +24,7 @@ public class Xop_tab_tkn extends Xop_tkn_itm_base {
}
class Xop_tab_lxr implements Xop_lxr {
public byte Lxr_tid() {return Xop_lxr_.Tid_tab;}
- public void Init_by_wiki(Xow_wiki wiki, Btrie_fast_mgr core_trie) {
+ public void Init_by_wiki(Xowe_wiki wiki, Btrie_fast_mgr core_trie) {
core_trie.Add(Byte_ascii.Tab, this);
core_trie.Add(Xop_tab_tkn.Bry_tab_ent, this);
}
diff --git a/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_under_lxr.java b/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_under_lxr.java
index 181e7f687..386b7fbd4 100644
--- a/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_under_lxr.java
+++ b/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_under_lxr.java
@@ -21,7 +21,7 @@ import gplx.xowa.html.tocs.*;
class Xop_under_lxr implements Xop_lxr {
private Btrie_mgr words_trie_ci, words_trie_cs;
public byte Lxr_tid() {return Xop_lxr_.Tid_under;}
- public void Init_by_wiki(Xow_wiki wiki, Btrie_fast_mgr core_trie) {}
+ public void Init_by_wiki(Xowe_wiki wiki, Btrie_fast_mgr core_trie) {}
public void Init_by_lang(Xol_lang lang, Btrie_fast_mgr core_trie) {
Xol_kwd_mgr kwd_mgr = lang.Kwd_mgr();
int under_kwds_len = under_kwds.length;
@@ -56,7 +56,7 @@ class Xop_under_lxr implements Xop_lxr {
if (kwd_case_match) // cs; add word directly to trie
core_trie.Add(kwd_bry, word_lxr);
else { // NOTE: next part is imprecise; XOWA parser is cs, but kwd is ci; for now, just add all upper and all lower
- lang.App().Usr_dlg().Warn_many("", "", "under keyword does not start with __; id=~{0} key=~{1} word=~{2}", kwd_id, String_.new_utf8_(kwd_grp.Key()), String_.new_utf8_(kwd_bry));
+ Gfo_usr_dlg_._.Warn_many("", "", "under keyword does not start with __; id=~{0} key=~{1} word=~{2}", kwd_id, String_.new_utf8_(kwd_grp.Key()), String_.new_utf8_(kwd_bry));
core_trie.Add(lang.Case_mgr().Case_build_lower(kwd_bry), word_lxr);
core_trie.Add(lang.Case_mgr().Case_build_upper(kwd_bry), word_lxr);
}
@@ -93,7 +93,7 @@ class Xop_under_lxr implements Xop_lxr {
return rv;
}
public static void Make_tkn(Xop_ctx ctx, Xop_tkn_mkr tkn_mkr, Xop_root_tkn root, byte[] src, int src_len, int bgn_pos, int cur_pos, int kwd_id) {
- Xoa_page page = ctx.Cur_page();
+ Xoae_page page = ctx.Cur_page();
Xow_hdr_mgr hdr_mgr = page.Hdr_mgr();
switch (kwd_id) {
case Xol_kwd_grp_.Id_toc:
@@ -115,7 +115,7 @@ class Xop_word_lxr implements Xop_lxr {
private int kwd_id;
public Xop_word_lxr(int kwd_id) {this.kwd_id = kwd_id;}
public byte Lxr_tid() {return Xop_lxr_.Tid_word;}
- public void Init_by_wiki(Xow_wiki wiki, Btrie_fast_mgr core_trie) {}
+ public void Init_by_wiki(Xowe_wiki wiki, Btrie_fast_mgr core_trie) {}
public void Init_by_lang(Xol_lang lang, Btrie_fast_mgr core_trie) {}
public int Make_tkn(Xop_ctx ctx, Xop_tkn_mkr tkn_mkr, Xop_root_tkn root, byte[] src, int src_len, int bgn_pos, int cur_pos) {
Xop_under_lxr.Make_tkn(ctx, tkn_mkr, root, src, src_len, bgn_pos, cur_pos, kwd_id); // for now, all word_lxrs only call the under_lxr; DATE:2014-02-14
diff --git a/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_under_lxr_tst.java b/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_under_lxr_tst.java
index 46ff0319f..83b6a1af4 100644
--- a/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_under_lxr_tst.java
+++ b/400_xowa/src_409_tkn_misc/gplx/xowa/Xop_under_lxr_tst.java
@@ -140,20 +140,20 @@ public class Xop_under_lxr_tst {
fxt.Init_para_n_();
}
@Test public void Hook_alt() { // PURPOSE: ja wikis use alternate __; DATE:2014-03-04
- Xow_wiki wiki = fxt.Wiki(); Xol_lang lang = wiki.Lang();
+ Xowe_wiki wiki = fxt.Wiki(); Xol_lang lang = wiki.Lang();
fxt.Init_lang_kwds(lang, Xol_kwd_grp_.Id_toc, true, "__TOC__");
wiki.Parser().Init_by_lang(lang);
fxt.Test_parse_page_all_str("a__TOC__b", "ab");
}
@Test public void Ascii_ci() { // PURPOSE: case-insensitive ascii; DATE:2014-07-10
- Xow_wiki wiki = fxt.Wiki(); Xol_lang lang = wiki.Lang();
+ Xowe_wiki wiki = fxt.Wiki(); Xol_lang lang = wiki.Lang();
fxt.Init_lang_kwds(lang, Xol_kwd_grp_.Id_toc, false, "__TOC__");
wiki.Parser().Init_by_lang(lang);
fxt.Test_parse_page_all_str("a__TOC__b", "ab");
fxt.Test_parse_page_all_str("a__toc__b", "ab");
}
@Test public void Utf8_ci() { // PURPOSE: case-insensitive UTF8; DATE:2014-07-10
- Xow_wiki wiki = fxt.Wiki(); Xol_lang lang = wiki.Lang();
+ Xowe_wiki wiki = fxt.Wiki(); Xol_lang lang = wiki.Lang();
lang.Case_mgr_utf8_();
fxt.Init_lang_kwds(lang, Xol_kwd_grp_.Id_toc, false, "__AÉI__");
wiki.Parser().Init_by_lang(lang);
@@ -161,21 +161,21 @@ public class Xop_under_lxr_tst {
fxt.Test_parse_page_all_str("a__aéi__b", "ab");
}
@Test public void Utf8_ci_asymmetric() { // PURPOSE: case-insensitive UTF8; asymmetric; DATE:2014-07-10
- Xow_wiki wiki = fxt.Wiki(); Xol_lang lang = wiki.Lang();
+ Xowe_wiki wiki = fxt.Wiki(); Xol_lang lang = wiki.Lang();
lang.Case_mgr_utf8_();
fxt.Init_lang_kwds(lang, Xol_kwd_grp_.Id_toc, false, "__İÇİNDEKİLER__"); // __TOC__ for tr.w
wiki.Parser().Init_by_lang(lang);
fxt.Test_parse_page_all_str("a__İçindekiler__b", "ab");
}
@Test public void Cs() { // PURPOSE: cs (ascii / utf8 doesn't matter); DATE:2014-07-11
- Xow_wiki wiki = fxt.Wiki(); Xol_lang lang = wiki.Lang();
+ Xowe_wiki wiki = fxt.Wiki(); Xol_lang lang = wiki.Lang();
fxt.Init_lang_kwds(lang, Xol_kwd_grp_.Id_toc , Bool_.Y, "__TOC__");
wiki.Parser().Init_by_lang(lang);
fxt.Test_parse_page_all_str("a__TOC__b" , "ab"); // ci.pass
fxt.Test_parse_page_all_str("a__toc__b" , "a__toc__b"); // ci.pass
}
@Test public void Ascii_cs_ci() { // PURPOSE: test simultaneous cs and ci; DATE:2014-07-11
- Xow_wiki wiki = fxt.Wiki(); Xol_lang lang = wiki.Lang();
+ Xowe_wiki wiki = fxt.Wiki(); Xol_lang lang = wiki.Lang();
fxt.Init_lang_kwds(lang, Xol_kwd_grp_.Id_toc , Bool_.N, "__TOC__");
fxt.Init_lang_kwds(lang, Xol_kwd_grp_.Id_notoc , Bool_.Y, "__NOTOC__");
wiki.Parser().Init_by_lang(lang);
diff --git a/400_xowa/src_440_lnki/gplx/xowa/Xop_lnki_arg_parser.java b/400_xowa/src_440_lnki/gplx/xowa/Xop_lnki_arg_parser.java
index d31439034..b04ae9493 100644
--- a/400_xowa/src_440_lnki/gplx/xowa/Xop_lnki_arg_parser.java
+++ b/400_xowa/src_440_lnki/gplx/xowa/Xop_lnki_arg_parser.java
@@ -35,7 +35,7 @@ public class Xop_lnki_arg_parser {
if (Env_.Mode_testing())
continue; // TEST: allows partial parsing of $magicWords
else
- list = lang.App().Lang_mgr().Lang_en().Kwd_mgr().Get_at(val[0]);
+ list = lang.Lang_mgr().Lang_en().Kwd_mgr().Get_at(val[0]);
}
Xol_kwd_itm[] words = list.Itms();
int words_len = words.length;
@@ -47,7 +47,7 @@ public class Xop_lnki_arg_parser {
}
list = mgr.Get_at(Xol_kwd_grp_.Id_img_width);
if (list == null)
- list = lang.App().Lang_mgr().Lang_en().Kwd_mgr().Get_at(Xol_kwd_grp_.Id_img_width);
+ list = lang.Lang_mgr().Lang_en().Kwd_mgr().Get_at(Xol_kwd_grp_.Id_img_width);
Init_size_trie(tmp_bfr, list);
}
public byte Identify_tid(byte[] src, int bgn, int end, Xop_lnki_tkn lnki) {
diff --git a/400_xowa/src_440_lnki/gplx/xowa/Xop_lnki_lxr.java b/400_xowa/src_440_lnki/gplx/xowa/Xop_lnki_lxr.java
index 075f7b815..74bd38fdf 100644
--- a/400_xowa/src_440_lnki/gplx/xowa/Xop_lnki_lxr.java
+++ b/400_xowa/src_440_lnki/gplx/xowa/Xop_lnki_lxr.java
@@ -19,7 +19,7 @@ package gplx.xowa; import gplx.*;
import gplx.core.btries.*;
class Xop_lnki_lxr_bgn implements Xop_lxr {
public byte Lxr_tid() {return Xop_lxr_.Tid_lnki_bgn;}
- public void Init_by_wiki(Xow_wiki wiki, Btrie_fast_mgr core_trie) {core_trie.Add(Xop_tkn_.Lnki_bgn, this);}
+ public void Init_by_wiki(Xowe_wiki wiki, Btrie_fast_mgr core_trie) {core_trie.Add(Xop_tkn_.Lnki_bgn, this);}
public void Init_by_lang(Xol_lang lang, Btrie_fast_mgr core_trie) {}
public int Make_tkn(Xop_ctx ctx, Xop_tkn_mkr tkn_mkr, Xop_root_tkn root, byte[] src, int src_len, int bgn_pos, int cur_pos) {
Xop_tkn_itm prv_tkn = ctx.Stack_get_last();
@@ -39,7 +39,7 @@ class Xop_lnki_lxr_bgn implements Xop_lxr {
}
class Xop_lnki_lxr_end implements Xop_lxr {
public byte Lxr_tid() {return Xop_lxr_.Tid_lnki_end;}
- public void Init_by_wiki(Xow_wiki wiki, Btrie_fast_mgr core_trie) {core_trie.Add(Xop_tkn_.Lnki_end, this);}
+ public void Init_by_wiki(Xowe_wiki wiki, Btrie_fast_mgr core_trie) {core_trie.Add(Xop_tkn_.Lnki_end, this);}
public void Init_by_lang(Xol_lang lang, Btrie_fast_mgr core_trie) {}
public int Make_tkn(Xop_ctx ctx, Xop_tkn_mkr tkn_mkr, Xop_root_tkn root, byte[] src, int src_len, int bgn_pos, int cur_pos) {return ctx.Lnki().Make_tkn(ctx, tkn_mkr, root, src, src_len, bgn_pos, cur_pos);}
public static final Xop_lnki_lxr_end _ = new Xop_lnki_lxr_end();
diff --git a/400_xowa/src_440_lnki/gplx/xowa/Xop_lnki_wkr.java b/400_xowa/src_440_lnki/gplx/xowa/Xop_lnki_wkr.java
index 4b5edd5f4..2cd7951d6 100644
--- a/400_xowa/src_440_lnki/gplx/xowa/Xop_lnki_wkr.java
+++ b/400_xowa/src_440_lnki/gplx/xowa/Xop_lnki_wkr.java
@@ -27,7 +27,7 @@ public class Xop_lnki_wkr implements Xop_ctx_wkr, Xop_arg_wkr {
sites_regy_mgr = ctx.Wiki().Xtn_mgr().Xtn_sites().Regy_mgr(); if (!sites_regy_mgr.Xtn_mgr().Enabled()) sites_regy_mgr = null; // sets sites_xtn_mgr status for page; see below
}
public void Page_end(Xop_ctx ctx, Xop_root_tkn root, byte[] src, int src_len) {}
- public Xop_lnki_logger File_wkr() {return file_wkr;} public Xop_lnki_wkr File_wkr_(Xop_lnki_logger v) {file_wkr = v; return this;} private Xop_lnki_logger file_wkr;
+ public Xopg_redlink_logger File_wkr() {return file_wkr;} public Xop_lnki_wkr File_wkr_(Xopg_redlink_logger v) {file_wkr = v; return this;} private Xopg_redlink_logger file_wkr;
public void Auto_close(Xop_ctx ctx, Xop_tkn_mkr tkn_mkr, Xop_root_tkn root, byte[] src, int src_len, int bgn_pos, int cur_pos, Xop_tkn_itm tkn) {
Xop_lnki_tkn lnki = (Xop_lnki_tkn)tkn;
lnki.Tkn_tid_to_txt();
@@ -151,10 +151,12 @@ public class Xop_lnki_wkr implements Xop_ctx_wkr, Xop_arg_wkr {
case Xop_lnki_arg_parser.Tid_dim: break;// NOOP: Identify_tid does actual setting
case Xop_lnki_arg_parser.Tid_upright:
if (arg.KeyTkn_exists()) {
- int valTknBgn = arg.Val_tkn().Src_bgn(), valTknEnd = arg.Val_tkn().Src_end();
- number_parser.Parse(src, valTknBgn, valTknEnd);
+ int val_tkn_bgn = arg.Val_tkn().Src_bgn(), val_tkn_end = arg.Val_tkn().Src_end();
+ val_tkn_bgn = Bry_finder.Find_fwd_while_space_or_tab(src, val_tkn_bgn, val_tkn_end); // trim ws at bgn; needed for next step
+ if (val_tkn_end - val_tkn_bgn > 19) val_tkn_end = val_tkn_bgn + 19; // HACK: limit upright tkn to 19 digits; 20 or more will overflow long; WHEN: rewrite number_parser to handle doubles; PAGE:de.w:Feuerland DATE:2015-02-03
+ number_parser.Parse(src, val_tkn_bgn, val_tkn_end);
if (number_parser.HasErr())
- ctx.Msg_log().Add_itm_none(Xop_lnki_log.Upright_val_is_invalid, src, valTknBgn, valTknEnd);
+ ctx.Msg_log().Add_itm_none(Xop_lnki_log.Upright_val_is_invalid, src, val_tkn_bgn, val_tkn_end);
else
lnki.Upright_(number_parser.AsDec().Xto_double());
}
diff --git a/400_xowa/src_440_lnki/gplx/xowa/Xop_lnki_wkr_.java b/400_xowa/src_440_lnki/gplx/xowa/Xop_lnki_wkr_.java
index e5a74e4f6..20aedda0b 100644
--- a/400_xowa/src_440_lnki/gplx/xowa/Xop_lnki_wkr_.java
+++ b/400_xowa/src_440_lnki/gplx/xowa/Xop_lnki_wkr_.java
@@ -38,9 +38,9 @@ public class Xop_lnki_wkr_ {
return Parse_ttl(ctx, src, lnki, ttl_bgn, ttl_end);
}
public static boolean Parse_ttl(Xop_ctx ctx, byte[] src, Xop_lnki_tkn lnki, int ttl_bgn, int ttl_end) {
- Xoa_app app = ctx.App();
+ Xoae_app app = ctx.App();
byte[] ttl_bry = Bry_.Mid(src, ttl_bgn, ttl_end);
- ttl_bry = app.Encoder_mgr().Url_ttl().Decode(ttl_bry);
+ ttl_bry = Xoa_app_.Utl_encoder_mgr().Url_ttl().Decode(ttl_bry);
int ttl_bry_len = ttl_bry.length;
Xoa_ttl page_ttl = ctx.Cur_page().Ttl();
if (page_ttl.Ns().Subpages_enabled()
@@ -52,7 +52,7 @@ public class Xop_lnki_wkr_ {
ttl_bry = new_bry;
tmp_bfr.Mkr_rls();
}
- Xow_wiki wiki = ctx.Wiki();
+ Xowe_wiki wiki = ctx.Wiki();
Xoa_ttl ttl = Xoa_ttl.parse_(wiki, ttl_bry);
if (ttl == null) return false;
if ( wiki.Cfg_parser_lnki_xwiki_repos_enabled() // wiki has lnki.xwiki_repos
@@ -63,7 +63,7 @@ public class Xop_lnki_wkr_ {
lnki.Ns_id_(ttl.Ns().Id());
return true;
}
- private static Xoa_ttl Adj_ttl_for_file(Xow_wiki wiki, Xop_ctx ctx, Xoa_ttl ttl, byte[] ttl_bry) { // NOTE: remove the xwiki part; EX: [[en:File:A.png]] -> [[File:A.png]]
+ private static Xoa_ttl Adj_ttl_for_file(Xowe_wiki wiki, Xop_ctx ctx, Xoa_ttl ttl, byte[] ttl_bry) { // NOTE: remove the xwiki part; EX: [[en:File:A.png]] -> [[File:A.png]]
byte[] xwiki_bry = ttl.Wik_txt(); if (xwiki_bry == null) return ttl; // should not happen, but just in case
int xwiki_bry_len = xwiki_bry.length;
int ttl_bry_len = ttl_bry.length;
diff --git a/400_xowa/src_440_lnki/gplx/xowa/Xop_lnki_wkr__basic_tst.java b/400_xowa/src_440_lnki/gplx/xowa/Xop_lnki_wkr__basic_tst.java
index 5015d2455..fa83e7aae 100644
--- a/400_xowa/src_440_lnki/gplx/xowa/Xop_lnki_wkr__basic_tst.java
+++ b/400_xowa/src_440_lnki/gplx/xowa/Xop_lnki_wkr__basic_tst.java
@@ -339,9 +339,9 @@ public class Xop_lnki_wkr__basic_tst {
fxt.Test_parse_page_wiki("[[File:A.pdf|page=12]]" , fxt.tkn_lnki_().Page_(12));
}
@Test public void Visited() { // PURPOSE: show redirected titles as visited; EX:fr.w:Alpes_Pennines; DATE:2014-02-28
- Xow_wiki wiki = fxt.Wiki();
+ Xowe_wiki wiki = fxt.Wiki();
Xoa_ttl ttl = Xoa_ttl.parse_(wiki, Bry_.new_ascii_("Src")); // simulate requrest for "Src" page
- Xoa_page previous_page = Xoa_page.test_(wiki, ttl);
+ Xoae_page previous_page = Xoae_page.test_(wiki, ttl);
previous_page.Redirected_ttls().Add(Bry_.new_ascii_("Src")); // simulate redirect from "Src"
fxt.App().User().History_mgr().Add(previous_page); // simulate "Src" already being clicked once; this is the key call
fxt.Wtr_cfg().Lnki_visited_(true);
diff --git a/400_xowa/src_440_lnki/gplx/xowa/Xop_lnki_wkr__uncommon_tst.java b/400_xowa/src_440_lnki/gplx/xowa/Xop_lnki_wkr__uncommon_tst.java
index aaf497ab3..7fa0a8401 100644
--- a/400_xowa/src_440_lnki/gplx/xowa/Xop_lnki_wkr__uncommon_tst.java
+++ b/400_xowa/src_440_lnki/gplx/xowa/Xop_lnki_wkr__uncommon_tst.java
@@ -50,5 +50,8 @@ public class Xop_lnki_wkr__uncommon_tst {
@Test public void Large_size() { // PURPOSE: size larger than int should be discard, not be Int_.MaxValue: PAGE:id.w:Baho; DATE:2014-06-10
fxt.Test_html_wiki_frag("[[File:A.png|9999999999x30px]]", " width=\"0\" height=\"30\""); // width should not be Int_.MaxValue
}
+ @Test public void Upright_is_large() { // PURPOSE: handle large upright which overflows int; PAGE:de.w:Feuerland DATE:2015-02-03
+ fxt.Test_html_wiki_frag("[[File:A.png|upright=1.333333333333333333333333333333333333333333333333333333333333333333333]]", " width=\"0\" height=\"0\""); // failure would print out original lnki
+ }
}
diff --git a/400_xowa/src_440_lnki/gplx/xowa/Xop_lnki_wkr__xwiki_tst.java b/400_xowa/src_440_lnki/gplx/xowa/Xop_lnki_wkr__xwiki_tst.java
index e98acd6ad..7b658878d 100644
--- a/400_xowa/src_440_lnki/gplx/xowa/Xop_lnki_wkr__xwiki_tst.java
+++ b/400_xowa/src_440_lnki/gplx/xowa/Xop_lnki_wkr__xwiki_tst.java
@@ -66,8 +66,8 @@ public class Xop_lnki_wkr__xwiki_tst {
Tfds.Eq(0, fxt.Page().Slink_list().Count());
}
@Test public void Simple_and_english() { // PURPOSE: s.w xwiki links to en were not working b/c s.w and en had same super lang of English; PAGE:s.q:Anonymous DATE:2014-09-10
- Xoa_app app = Xoa_app_fxt.app_();
- Xow_wiki wiki = Xoa_app_fxt.wiki_(app, "simple.wikipedia.org");
+ Xoae_app app = Xoa_app_fxt.app_();
+ Xowe_wiki wiki = Xoa_app_fxt.wiki_(app, "simple.wikipedia.org");
fxt = new Xop_fxt(app, wiki); // change fxt to simple.wikipedia.org
Reg_xwiki_alias("en", "en.wikipedia.org"); // register "en" alias
fxt.Test_parse_page_wiki_str // test nothing printed
@@ -77,8 +77,8 @@ public class Xop_lnki_wkr__xwiki_tst {
Tfds.Eq(1, fxt.Page().Slink_list().Count()); // test 1 xwiki lang
}
@Test public void Species_and_commons() { // PURPOSE: species xwiki links to commons should not put link in wikidata langs; PAGE:species:Scarabaeidae DATE:2014-09-10
- Xoa_app app = Xoa_app_fxt.app_();
- Xow_wiki wiki = Xoa_app_fxt.wiki_(app, "species.wikimedia.org");
+ Xoae_app app = Xoa_app_fxt.app_();
+ Xowe_wiki wiki = Xoa_app_fxt.wiki_(app, "species.wikimedia.org");
fxt = new Xop_fxt(app, wiki); // change fxt to species.wikimedia.org
Reg_xwiki_alias("commons", "commons.wikimedia.org"); // register "en" alias
fxt.Test_parse_page_wiki_str // test something printed
@@ -88,8 +88,8 @@ public class Xop_lnki_wkr__xwiki_tst {
Tfds.Eq(0, fxt.Page().Slink_list().Count()); // no xwiki langs
}
@Test public void Wiktionary_and_wikipedia() { // PURPOSE: do not create xwiki links if same lang and differet type; PAGE:s.d:water DATE:2014-09-14
- Xoa_app app = Xoa_app_fxt.app_();
- Xow_wiki wiki = Xoa_app_fxt.wiki_(app, "simple.wiktionary.org");
+ Xoae_app app = Xoa_app_fxt.app_();
+ Xowe_wiki wiki = Xoa_app_fxt.wiki_(app, "simple.wiktionary.org");
fxt = new Xop_fxt(app, wiki); // change fxt to simple.wiktionary.org
Reg_xwiki_alias("w", "simple.wikipedia.org"); // register "w" alias
fxt.Test_parse_page_wiki_str // test something printed
@@ -99,8 +99,8 @@ public class Xop_lnki_wkr__xwiki_tst {
Tfds.Eq(0, fxt.Page().Slink_list().Count()); // test 0 xwiki lang
}
@Test public void Species_and_wikipedia() { // PURPOSE: species creates xwiki links to wikipedia; PAGE:species:Puccinia DATE:2014-09-14
- Xoa_app app = Xoa_app_fxt.app_();
- Xow_wiki wiki = Xoa_app_fxt.wiki_(app, "species.wikimedia.org");
+ Xoae_app app = Xoa_app_fxt.app_();
+ Xowe_wiki wiki = Xoa_app_fxt.wiki_(app, "species.wikimedia.org");
fxt = new Xop_fxt(app, wiki); // change fxt to species.wikimedia.org
Reg_xwiki_alias("fr", "fr.wikipedia.org"); // register "fr" alias
fxt.Test_parse_page_wiki_str // nothing printed
diff --git a/400_xowa/src_490_xnde/gplx/xowa/Xop_xatr_itm.java b/400_xowa/src_490_xnde/gplx/xowa/Xop_xatr_itm.java
index d22ed3457..05c9be1bc 100644
--- a/400_xowa/src_490_xnde/gplx/xowa/Xop_xatr_itm.java
+++ b/400_xowa/src_490_xnde/gplx/xowa/Xop_xatr_itm.java
@@ -40,7 +40,7 @@ public class Xop_xatr_itm {
public int Val_as_int_or(byte[] src, int or) {return val_bry == null ? Bry_.Xto_int_or_lax(src, val_bgn, val_end, or) : Bry_.Xto_int_or(val_bry, or);}
public boolean Val_as_bool_by_int(byte[] src) {return Val_as_int_or(src, 0) == 1;}
public boolean Val_as_bool(byte[] src) {return Bry_.Eq(Bry_.Lower_ascii(Val_as_bry(src)), Bool_.True_bry);}
- public static Xop_xatr_itm[] Xatr_parse(Xoa_app app, Xop_xnde_atr_parser parser, Hash_adp_bry hash, Xow_wiki wiki, byte[] src, Xop_xnde_tkn xnde) {
+ public static Xop_xatr_itm[] Xatr_parse(Xoae_app app, Xop_xnde_atr_parser parser, Hash_adp_bry hash, Xowe_wiki wiki, byte[] src, Xop_xnde_tkn xnde) {
Xop_xatr_itm[] xatr_ary = app.Xatr_parser().Parse(app.Msg_log(), src, xnde.Atrs_bgn(), xnde.Atrs_end());
for (int i = 0; i < xatr_ary.length; i++) {
Xop_xatr_itm xatr = xatr_ary[i];
diff --git a/400_xowa/src_490_xnde/gplx/xowa/Xop_xnde_atr_parser.java b/400_xowa/src_490_xnde/gplx/xowa/Xop_xnde_atr_parser.java
index 019c7a63d..a1b87e288 100644
--- a/400_xowa/src_490_xnde/gplx/xowa/Xop_xnde_atr_parser.java
+++ b/400_xowa/src_490_xnde/gplx/xowa/Xop_xnde_atr_parser.java
@@ -17,5 +17,5 @@ along with this program. If not, see .
*/
package gplx.xowa; import gplx.*;
public interface Xop_xnde_atr_parser {
- void Xatr_parse(Xow_wiki wiki, byte[] src, Xop_xatr_itm xatr, Object xatr_key_obj);
+ void Xatr_parse(Xowe_wiki wiki, byte[] src, Xop_xatr_itm xatr, Object xatr_key_obj);
}
diff --git a/400_xowa/src_490_xnde/gplx/xowa/Xop_xnde_lxr.java b/400_xowa/src_490_xnde/gplx/xowa/Xop_xnde_lxr.java
index 9403d4ea0..2c18b4496 100644
--- a/400_xowa/src_490_xnde/gplx/xowa/Xop_xnde_lxr.java
+++ b/400_xowa/src_490_xnde/gplx/xowa/Xop_xnde_lxr.java
@@ -19,7 +19,7 @@ package gplx.xowa; import gplx.*;
import gplx.core.btries.*;
class Xop_xnde_lxr implements Xop_lxr {
public byte Lxr_tid() {return Xop_lxr_.Tid_xnde;}
- public void Init_by_wiki(Xow_wiki wiki, Btrie_fast_mgr core_trie) {core_trie.Add(Byte_ascii.Lt, this);}
+ public void Init_by_wiki(Xowe_wiki wiki, Btrie_fast_mgr core_trie) {core_trie.Add(Byte_ascii.Lt, this);}
public void Init_by_lang(Xol_lang lang, Btrie_fast_mgr core_trie) {}
public int Make_tkn(Xop_ctx ctx, Xop_tkn_mkr tkn_mkr, Xop_root_tkn root, byte[] src, int src_len, int bgn_pos, int cur_pos) {return ctx.Xnde().Make_tkn(ctx, tkn_mkr, root, src, src_len, bgn_pos, cur_pos);}
public static final Xop_xnde_lxr _ = new Xop_xnde_lxr(); Xop_xnde_lxr() {}
diff --git a/400_xowa/src_490_xnde/gplx/xowa/Xop_xnde_tag_.java b/400_xowa/src_490_xnde/gplx/xowa/Xop_xnde_tag_.java
index 8399f93c8..35d641e72 100644
--- a/400_xowa/src_490_xnde/gplx/xowa/Xop_xnde_tag_.java
+++ b/400_xowa/src_490_xnde/gplx/xowa/Xop_xnde_tag_.java
@@ -16,6 +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; import gplx.*;
+import gplx.xowa.langs.*;
public class Xop_xnde_tag_ {
public static final int EndNdeMode_normal = 0, EndNdeMode_inline = 1, EndNdeMode_escape = 2; // escape is for hr which does not support
public static final int BgnNdeMode_normal = 0, BgnNdeMode_inline = 1;
diff --git a/400_xowa/src_490_xnde/gplx/xowa/Xop_xnde_wkr.java b/400_xowa/src_490_xnde/gplx/xowa/Xop_xnde_wkr.java
index 6c34a7e9a..e90292cf1 100644
--- a/400_xowa/src_490_xnde/gplx/xowa/Xop_xnde_wkr.java
+++ b/400_xowa/src_490_xnde/gplx/xowa/Xop_xnde_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; import gplx.*;
-import gplx.core.btries.*; import gplx.xowa.apps.fsys.*; import gplx.xowa.wikis.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.pfuncs.strings.*; import gplx.html.*;
+import gplx.core.btries.*; import gplx.xowa.apps.progs.*; import gplx.xowa.wikis.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.pfuncs.strings.*; import gplx.html.*;
import gplx.xowa.parsers.logs.*; import gplx.xowa.parsers.tblws.*;
public class Xop_xnde_wkr implements Xop_ctx_wkr {
public void Ctor_ctx(Xop_ctx ctx) {}
@@ -238,7 +238,7 @@ public class Xop_xnde_wkr implements Xop_ctx_wkr {
}
if (valid) {
ctx.Subs_add(root, tkn_mkr.Ignore(bgn_pos, gtPos, Xop_ignore_tkn.Ignore_tid_include_tmpl));
- return gtPos + Launcher_app_mgr.Adj_next_char;
+ return gtPos + Xoa_prog_mgr.Adj_next_char;
}
else {
return ctx.Lxr_make_txt_(gtPos);
@@ -272,7 +272,7 @@ public class Xop_xnde_wkr implements Xop_ctx_wkr {
private boolean pre2_pending = false;
private int Make_xtag_bgn(Xop_ctx ctx, Xop_tkn_mkr tkn_mkr, Xop_root_tkn root, byte[] src, int src_len, int bgn_pos, int gtPos, int name_bgn, int name_end, Xop_xnde_tag tag, int tag_end_pos, byte tag_end_byte, boolean force_xtn_for_nowiki, boolean pre2_hack) {
boolean inline = false;
- int open_tag_end = gtPos + Launcher_app_mgr.Adj_next_char, atrs_bgn = -1, atrs_end = -1;
+ int open_tag_end = gtPos + Xoa_prog_mgr.Adj_next_char, atrs_bgn = -1, atrs_end = -1;
// calc (a) inline; (b) atrs
switch (tag_end_byte) { // look at last char of tag; EX: for b, following are registered: "b/","b>","b\s","b\n","b\t"
case Byte_ascii.Slash: // "/" EX: "
, are allowed
@@ -308,9 +308,9 @@ public class Xop_xnde_wkr implements Xop_ctx_wkr {
return Make_xnde_xtn(ctx, tkn_mkr, root, src, src_len, tag, bgn_pos, gtPos + 1, name_bgn, name_end, atrs_bgn, atrs_end, atrs, inline, pre2_hack); // find end tag and do not parse anything inbetween
}
if (tag.Restricted()) {
- Xoa_page page = ctx.Cur_page();
+ Xoae_page page = ctx.Cur_page();
if ( page.Html_data().Html_restricted()
- && page.Wiki().Domain_tid() != Xow_wiki_domain_.Tid_home) {
+ && page.Wiki().Domain_tid() != Xow_domain_.Tid_int_home) {
int end_pos = gtPos + 1;
ctx.Subs_add(root, tkn_mkr.Bry_raw(bgn_pos, end_pos, Bry_.Add(gplx.html.Html_entity_.Lt_bry, Bry_.Mid(src, bgn_pos + 1, end_pos)))); // +1 to skip <
return end_pos;
@@ -698,7 +698,7 @@ public class Xop_xnde_wkr implements Xop_ctx_wkr {
if (Env_.Mode_testing())
throw Err_.err_(e, err_msg);
else
- ctx.Wiki().App().Usr_dlg().Warn_many("", "", err_msg);
+ ctx.Wiki().Appe().Usr_dlg().Warn_many("", "", err_msg);
}
}
break;
diff --git a/400_xowa/src_500_tmpl/gplx/xowa/Xop_curly_bgn_lxr.java b/400_xowa/src_500_tmpl/gplx/xowa/Xop_curly_bgn_lxr.java
index f3d1a1bfb..466f0e298 100644
--- a/400_xowa/src_500_tmpl/gplx/xowa/Xop_curly_bgn_lxr.java
+++ b/400_xowa/src_500_tmpl/gplx/xowa/Xop_curly_bgn_lxr.java
@@ -19,7 +19,7 @@ package gplx.xowa; import gplx.*;
import gplx.core.btries.*; import gplx.xowa.parsers.tblws.*;
public class Xop_curly_bgn_lxr implements Xop_lxr {
public byte Lxr_tid() {return Xop_lxr_.Tid_curly_bgn;}
- public void Init_by_wiki(Xow_wiki wiki, Btrie_fast_mgr core_trie) {core_trie.Add(Hook, this);} public static final byte[] Hook = new byte[] {Byte_ascii.Curly_bgn, Byte_ascii.Curly_bgn};
+ public void Init_by_wiki(Xowe_wiki wiki, Btrie_fast_mgr core_trie) {core_trie.Add(Hook, this);} public static final byte[] Hook = new byte[] {Byte_ascii.Curly_bgn, Byte_ascii.Curly_bgn};
public void Init_by_lang(Xol_lang lang, Btrie_fast_mgr core_trie) {}
public int Make_tkn(Xop_ctx ctx, Xop_tkn_mkr tkn_mkr, Xop_root_tkn root, byte[] src, int src_len, int bgn_pos, int cur_pos) {return ctx.Curly().MakeTkn_bgn(ctx, tkn_mkr, root, src, src_len, bgn_pos, cur_pos);}
public static final Xop_curly_bgn_lxr _ = new Xop_curly_bgn_lxr(); Xop_curly_bgn_lxr() {}
diff --git a/400_xowa/src_500_tmpl/gplx/xowa/Xop_curly_bgn_tkn.java b/400_xowa/src_500_tmpl/gplx/xowa/Xop_curly_bgn_tkn.java
index 355c2c8ac..8e9349f36 100644
--- a/400_xowa/src_500_tmpl/gplx/xowa/Xop_curly_bgn_tkn.java
+++ b/400_xowa/src_500_tmpl/gplx/xowa/Xop_curly_bgn_tkn.java
@@ -23,14 +23,14 @@ public class Xop_curly_bgn_tkn extends Xop_tkn_itm_base {
}
class Xop_curly_end_lxr implements Xop_lxr {
public byte Lxr_tid() {return Xop_lxr_.Tid_curly_end;}
- public void Init_by_wiki(Xow_wiki wiki, Btrie_fast_mgr core_trie) {core_trie.Add(Hook, this);} public static final byte[] Hook = new byte[] {Byte_ascii.Curly_end, Byte_ascii.Curly_end};
+ public void Init_by_wiki(Xowe_wiki wiki, Btrie_fast_mgr core_trie) {core_trie.Add(Hook, this);} public static final byte[] Hook = new byte[] {Byte_ascii.Curly_end, Byte_ascii.Curly_end};
public void Init_by_lang(Xol_lang lang, Btrie_fast_mgr core_trie) {}
public int Make_tkn(Xop_ctx ctx, Xop_tkn_mkr tkn_mkr, Xop_root_tkn root, byte[] src, int src_len, int bgn_pos, int cur_pos) {return ctx.Curly().MakeTkn_end(ctx, tkn_mkr, root, src, src_len, bgn_pos, cur_pos);}
public static final Xop_curly_end_lxr _ = new Xop_curly_end_lxr(); Xop_curly_end_lxr() {}
}
class Xop_brack_bgn_lxr implements Xop_lxr {
public byte Lxr_tid() {return Xop_lxr_.Tid_brack_bgn;}
- public void Init_by_wiki(Xow_wiki wiki, Btrie_fast_mgr core_trie) {core_trie.Add(Xop_tkn_.Lnki_bgn, this);}
+ public void Init_by_wiki(Xowe_wiki wiki, Btrie_fast_mgr core_trie) {core_trie.Add(Xop_tkn_.Lnki_bgn, this);}
public void Init_by_lang(Xol_lang lang, Btrie_fast_mgr core_trie) {}
public int Make_tkn(Xop_ctx ctx, Xop_tkn_mkr tkn_mkr, Xop_root_tkn root, byte[] src, int src_len, int bgn_pos, int cur_pos) {
Xop_tkn_itm tkn = tkn_mkr.Brack_bgn(bgn_pos, cur_pos);
@@ -41,7 +41,7 @@ class Xop_brack_bgn_lxr implements Xop_lxr {
}
class Xop_brack_end_lxr implements Xop_lxr {
public byte Lxr_tid() {return Xop_lxr_.Tid_brack_end;}
- public void Init_by_wiki(Xow_wiki wiki, Btrie_fast_mgr core_trie) {core_trie.Add(Xop_tkn_.Lnki_end, this);}
+ public void Init_by_wiki(Xowe_wiki wiki, Btrie_fast_mgr core_trie) {core_trie.Add(Xop_tkn_.Lnki_end, this);}
public void Init_by_lang(Xol_lang lang, Btrie_fast_mgr core_trie) {}
public int Make_tkn(Xop_ctx ctx, Xop_tkn_mkr tkn_mkr, Xop_root_tkn root, byte[] src, int src_len, int bgn_pos, int cur_pos) {
int acs_pos = ctx.Stack_idx_typ(Xop_tkn_itm_.Tid_brack_bgn);
diff --git a/400_xowa/src_500_tmpl/gplx/xowa/Xop_curly_wkr.java b/400_xowa/src_500_tmpl/gplx/xowa/Xop_curly_wkr.java
index a5372335c..97eaac947 100644
--- a/400_xowa/src_500_tmpl/gplx/xowa/Xop_curly_wkr.java
+++ b/400_xowa/src_500_tmpl/gplx/xowa/Xop_curly_wkr.java
@@ -131,7 +131,7 @@ public class Xop_curly_wkr implements Xop_ctx_wkr {
if (vnt_dash_adjust) {
Xop_tkn_itm text_tkn = root.Subs_get_or_null(root.Subs_len() - 2); // -2 to get tkn before newly-created tmpl / prm
if (text_tkn == null || text_tkn.Tkn_tid() != Xop_tkn_itm_.Tid_txt)
- ctx.Wiki().App().Usr_dlg().Warn_many("", "", "token before curly_bgn was not text tkn; src=~{0}", String_.new_utf8_(src, lxr_bgn_pos, lxr_end_pos));
+ ctx.Wiki().Appe().Usr_dlg().Warn_many("", "", "token before curly_bgn was not text tkn; src=~{0}", String_.new_utf8_(src, lxr_bgn_pos, lxr_end_pos));
else
text_tkn.Src_end_(text_tkn.Src_end() + 1); // +1 to extend txt_tkn with dash be 1 to include curly; EX: "-" "{{{" -> "-{" "{{"
}
diff --git a/400_xowa/src_500_tmpl/gplx/xowa/Xot_defn_tmpl.java b/400_xowa/src_500_tmpl/gplx/xowa/Xot_defn_tmpl.java
index d6a370b37..4e857f073 100644
--- a/400_xowa/src_500_tmpl/gplx/xowa/Xot_defn_tmpl.java
+++ b/400_xowa/src_500_tmpl/gplx/xowa/Xot_defn_tmpl.java
@@ -62,14 +62,14 @@ public class Xot_defn_tmpl implements Xot_defn {
public void Parse_tmpl(Xop_ctx ctx) {ctx.Wiki().Parser().Parse_text_to_defn(this, ctx, ctx.Tkn_mkr(), ns, name, data_raw);} boolean onlyinclude_parsed = false;
public boolean Tmpl_evaluate(Xop_ctx ctx, Xot_invk caller, Bry_bfr bfr) {
if (root == null) Parse_tmpl(ctx);
- Xoa_page page = ctx.Cur_page();
+ Xoae_page page = ctx.Cur_page();
if (!page.Tmpl_stack_add(full_name)) {
bfr.Add_str("Template loop detected:" + String_.new_utf8_(name) + "");
return false;
}
boolean rv = true;
if (onlyInclude_exists) {
- Xow_wiki wiki = ctx.Wiki();
+ Xowe_wiki wiki = ctx.Wiki();
if (!onlyinclude_parsed) {
onlyinclude_parsed = true;
byte[] new_data = Extract_onlyinclude(data_raw, wiki.Utl_bry_bfr_mkr());
diff --git a/400_xowa/src_500_tmpl/gplx/xowa/Xot_defn_tmpl_.java b/400_xowa/src_500_tmpl/gplx/xowa/Xot_defn_tmpl_.java
index 75655ec93..f7454146b 100644
--- a/400_xowa/src_500_tmpl/gplx/xowa/Xot_defn_tmpl_.java
+++ b/400_xowa/src_500_tmpl/gplx/xowa/Xot_defn_tmpl_.java
@@ -20,7 +20,7 @@ public class Xot_defn_tmpl_ {
public static Xot_invk CopyNew(Xop_ctx ctx, Xot_defn_tmpl orig_defn, Xot_invk orig, Xot_invk caller, byte[] src, byte[] frame_ttl) { // SEE:NOTE_1
Xop_tkn_mkr tkn_mkr = ctx.Tkn_mkr();
byte[] orig_src = orig_defn.Data_raw();
- Xow_wiki wiki = ctx.Wiki();
+ Xowe_wiki wiki = ctx.Wiki();
Xot_invk_temp rv = new Xot_invk_temp(orig.Defn_tid(), orig_src, orig.Name_tkn(), caller.Src_bgn(), caller.Src_end());
frame_ttl = wiki.Lang().Case_mgr().Case_reuse_1st_upper(frame_ttl); // NOTE: always uppercase 1st; EX:{{navbox -> "Template:Navbox"; PAGE:en.w:Achilles DATE:2014-06-21
rv.Frame_ttl_(wiki.Ns_mgr().Ns_template().Gen_ttl(Xoa_ttl.Replace_unders(frame_ttl))); // NOTE: always prepend "Template:" to frame_ttl; DATE:2014-06-13; NOTE: always use spaces; DATE:2014-08-14
diff --git a/400_xowa/src_500_tmpl/gplx/xowa/Xot_invk_tkn.java b/400_xowa/src_500_tmpl/gplx/xowa/Xot_invk_tkn.java
index fb3346a7e..f527aed0f 100644
--- a/400_xowa/src_500_tmpl/gplx/xowa/Xot_invk_tkn.java
+++ b/400_xowa/src_500_tmpl/gplx/xowa/Xot_invk_tkn.java
@@ -46,7 +46,7 @@ public class Xot_invk_tkn extends Xop_tkn_itm_base implements Xot_invk {
}
@Override public boolean Tmpl_evaluate(Xop_ctx ctx, byte[] src, Xot_invk caller, Bry_bfr bfr) { // this="{{t|{{{0}}}}}" caller="{{t|1}}"
boolean rv = false;
- Xot_defn defn = tmpl_defn; Xow_wiki wiki = ctx.Wiki(); Xol_lang lang = wiki.Lang();
+ Xot_defn defn = tmpl_defn; Xowe_wiki wiki = ctx.Wiki(); Xol_lang lang = wiki.Lang();
byte[] name_ary = defn.Name(), argx_ary = Bry_.Empty; Arg_itm_tkn name_key_tkn = name_tkn.Key_tkn();
byte[] name_ary_orig = Bry_.Empty;
int name_bgn = 0, name_ary_len = 0;
@@ -235,7 +235,7 @@ public class Xot_invk_tkn extends Xop_tkn_itm_base implements Xot_invk {
if (Env_.Mode_testing())
throw Err_.err_(e, "failed to evaluate function: page={0} defn={1} src={2} err={3}", String_.new_utf8_(ctx.Cur_page().Ttl().Full_txt()), String_.new_utf8_(defn.Name()), String_.new_utf8_(src, this.Src_bgn(), this.Src_end()), Err_.Message_gplx_brief(e));
else {
- wiki.App().Usr_dlg().Warn_many("", "", "failed to evaluate function: page=~{0} defn=~{1} src=~{2} err=~{3}", String_.new_utf8_(ctx.Cur_page().Ttl().Full_txt()), String_.new_utf8_(defn.Name()), String_.new_utf8_(src, this.Src_bgn(), this.Src_end()), Err_.Message_gplx_brief(e));
+ wiki.Appe().Usr_dlg().Warn_many("", "", "failed to evaluate function: page=~{0} defn=~{1} src=~{2} err=~{3}", String_.new_utf8_(ctx.Cur_page().Ttl().Full_txt()), String_.new_utf8_(defn.Name()), String_.new_utf8_(src, this.Src_bgn(), this.Src_end()), Err_.Message_gplx_brief(e));
rv = false;
}
}
@@ -331,7 +331,7 @@ public class Xot_invk_tkn extends Xop_tkn_itm_base implements Xot_invk {
bfr.Add(nde.Val_tkn().Dat_ary());
}
}
- private boolean Transclude(Xop_ctx ctx, Xow_wiki wiki, Bry_bfr bfr, byte[] name_ary, Xot_invk caller, byte[] src) {
+ private boolean Transclude(Xop_ctx ctx, Xowe_wiki wiki, Bry_bfr bfr, byte[] name_ary, Xot_invk caller, byte[] src) {
Xoa_ttl page_ttl = Xoa_ttl.parse_(wiki, name_ary); if (page_ttl == null) return false; // ttl not valid; EX: {{:[[abc]]}}
byte[] transclude_src = null;
if (page_ttl.Ns().Id_tmpl()) { // ttl is template; check tmpl_regy first before going to data_mgr
@@ -366,7 +366,7 @@ public class Xot_invk_tkn extends Xop_tkn_itm_base implements Xot_invk {
doc.Add_bfr_and_clear(tmp_bfr);
return rv;
}
- public static Xot_defn_tmpl Load_defn(Xow_wiki wiki, Xop_ctx ctx, Xot_invk_tkn invk_tkn, Xoa_ttl ttl, byte[] name_ary) {
+ public static Xot_defn_tmpl Load_defn(Xowe_wiki wiki, Xop_ctx ctx, Xot_invk_tkn invk_tkn, Xoa_ttl ttl, byte[] name_ary) {
Xow_page_cache_itm tmpl_page_itm = wiki.Cache_mgr().Page_cache().Get_or_load_as_itm(ttl);
byte[] tmpl_page_bry = tmpl_page_itm == null ? null : tmpl_page_itm.Wtxt();
Xot_defn_tmpl rv = null;
@@ -385,7 +385,7 @@ public class Xot_invk_tkn extends Xop_tkn_itm_base implements Xot_invk {
byte[] template_ns_name = ns_mgr.Ns_template().Name_bry();
bfr.Add(Xop_tkn_.Lnki_bgn).Add_byte(Byte_ascii.Colon).Add(template_ns_name).Add_byte(Byte_ascii.Colon).Add(name_ary).Add(Xop_tkn_.Lnki_end);
}
- private boolean SubEval(Xop_ctx ctx, Xow_wiki wiki, Bry_bfr bfr, byte[] name_ary, Xot_invk caller, byte[] src_for_tkn) {
+ private boolean SubEval(Xop_ctx ctx, Xowe_wiki wiki, Bry_bfr bfr, byte[] name_ary, Xot_invk caller, byte[] src_for_tkn) {
Xoa_ttl page_ttl = Xoa_ttl.parse_(wiki, name_ary); if (page_ttl == null) return false; // ttl not valid; EX: {{:[[abc]]}}
Xot_defn_tmpl transclude_tmpl = null;
switch (page_ttl.Ns().Id()) {
diff --git a/400_xowa/src_500_tmpl/gplx/xowa/Xot_tmpl_wtr.java b/400_xowa/src_500_tmpl/gplx/xowa/Xot_tmpl_wtr.java
index 6ba4e30ea..86d5f8879 100644
--- a/400_xowa/src_500_tmpl/gplx/xowa/Xot_tmpl_wtr.java
+++ b/400_xowa/src_500_tmpl/gplx/xowa/Xot_tmpl_wtr.java
@@ -64,7 +64,7 @@ public class Xot_tmpl_wtr {
if (xnde.Tag_close_bgn() == Int_.MinValue)
rslt_bfr.Add_mid(src, tkn.Src_bgn(), tkn.Src_end()); // write src from bgn/end
else { // NOTE: if nowiki then "deactivate" all xndes by swapping out < for < nowiki_xnde_frag; DATE:2013-01-27
- Bry_bfr tmp_bfr = ctx.Wiki().App().Utl_bry_bfr_mkr().Get_k004();
+ Bry_bfr tmp_bfr = ctx.Wiki().Appe().Utl_bry_bfr_mkr().Get_k004();
int nowiki_content_bgn = xnde.Tag_open_end(), nowiki_content_end = xnde.Tag_close_bgn();
boolean escaped = gplx.xowa.parsers.tmpls.Nowiki_escape_itm.Escape(tmp_bfr, src, nowiki_content_bgn, nowiki_content_end);
rslt_bfr.Add_bfr_or_mid(escaped, tmp_bfr, src, nowiki_content_bgn, nowiki_content_end);
diff --git a/tst/400_xowa/root/file/en.wikipedia.org/fsdb.main/fsdb.atr.00.sqlite3 b/tst/400_xowa/root/file/en.wikipedia.org/file/en.wikipedia.org/fsdb.main/fsdb.abc.sqlite3
similarity index 91%
rename from tst/400_xowa/root/file/en.wikipedia.org/fsdb.main/fsdb.atr.00.sqlite3
rename to tst/400_xowa/root/file/en.wikipedia.org/file/en.wikipedia.org/fsdb.main/fsdb.abc.sqlite3
index c65796724..717661bd5 100644
Binary files a/tst/400_xowa/root/file/en.wikipedia.org/fsdb.main/fsdb.atr.00.sqlite3 and b/tst/400_xowa/root/file/en.wikipedia.org/file/en.wikipedia.org/fsdb.main/fsdb.abc.sqlite3 differ
diff --git a/tst/400_xowa/root/file/en.wikipedia.org/file/en.wikipedia.org/fsdb.main/fsdb.atr.00.sqlite3 b/tst/400_xowa/root/file/en.wikipedia.org/file/en.wikipedia.org/fsdb.main/fsdb.atr.00.sqlite3
new file mode 100644
index 000000000..07f031fdd
Binary files /dev/null and b/tst/400_xowa/root/file/en.wikipedia.org/file/en.wikipedia.org/fsdb.main/fsdb.atr.00.sqlite3 differ
diff --git a/tst/400_xowa/root/file/en.wikipedia.org/wiki.orig#00.sqlite3 b/tst/400_xowa/root/file/en.wikipedia.org/file/en.wikipedia.org/fsdb.main/fsdb.bin.0000.sqlite3
similarity index 71%
rename from tst/400_xowa/root/file/en.wikipedia.org/wiki.orig#00.sqlite3
rename to tst/400_xowa/root/file/en.wikipedia.org/file/en.wikipedia.org/fsdb.main/fsdb.bin.0000.sqlite3
index cc7c821ab..76edb20db 100644
Binary files a/tst/400_xowa/root/file/en.wikipedia.org/wiki.orig#00.sqlite3 and b/tst/400_xowa/root/file/en.wikipedia.org/file/en.wikipedia.org/fsdb.main/fsdb.bin.0000.sqlite3 differ
diff --git a/tst/400_xowa/root/file/en.wikipedia.org/fsdb.user/fsdb.atr.00.sqlite3 b/tst/400_xowa/root/file/en.wikipedia.org/file/en.wikipedia.org/fsdb.user/fsdb.abc.sqlite3
similarity index 90%
rename from tst/400_xowa/root/file/en.wikipedia.org/fsdb.user/fsdb.atr.00.sqlite3
rename to tst/400_xowa/root/file/en.wikipedia.org/file/en.wikipedia.org/fsdb.user/fsdb.abc.sqlite3
index 1b5fbeb31..016d26feb 100644
Binary files a/tst/400_xowa/root/file/en.wikipedia.org/fsdb.user/fsdb.atr.00.sqlite3 and b/tst/400_xowa/root/file/en.wikipedia.org/file/en.wikipedia.org/fsdb.user/fsdb.abc.sqlite3 differ
diff --git a/tst/400_xowa/root/file/en.wikipedia.org/file/en.wikipedia.org/fsdb.user/fsdb.atr.00.sqlite3 b/tst/400_xowa/root/file/en.wikipedia.org/file/en.wikipedia.org/fsdb.user/fsdb.atr.00.sqlite3
new file mode 100644
index 000000000..351d05551
Binary files /dev/null and b/tst/400_xowa/root/file/en.wikipedia.org/file/en.wikipedia.org/fsdb.user/fsdb.atr.00.sqlite3 differ
diff --git a/tst/400_xowa/root/file/en.wikipedia.org/fsdb.main/fsdb.bin.0000.sqlite3 b/tst/400_xowa/root/file/en.wikipedia.org/file/en.wikipedia.org/fsdb.user/fsdb.bin.0000.sqlite3
similarity index 61%
rename from tst/400_xowa/root/file/en.wikipedia.org/fsdb.main/fsdb.bin.0000.sqlite3
rename to tst/400_xowa/root/file/en.wikipedia.org/file/en.wikipedia.org/fsdb.user/fsdb.bin.0000.sqlite3
index 7adda84d2..0b7176882 100644
Binary files a/tst/400_xowa/root/file/en.wikipedia.org/fsdb.main/fsdb.bin.0000.sqlite3 and b/tst/400_xowa/root/file/en.wikipedia.org/file/en.wikipedia.org/fsdb.user/fsdb.bin.0000.sqlite3 differ
diff --git a/tst/400_xowa/root/file/en.wikipedia.org/fsdb.main/fsdb.abc.sqlite3 b/tst/400_xowa/root/file/en.wikipedia.org/file/en.wikipedia.org/wiki.mnt.sqlite3
similarity index 92%
rename from tst/400_xowa/root/file/en.wikipedia.org/fsdb.main/fsdb.abc.sqlite3
rename to tst/400_xowa/root/file/en.wikipedia.org/file/en.wikipedia.org/wiki.mnt.sqlite3
index a72b7cd5f..671224deb 100644
Binary files a/tst/400_xowa/root/file/en.wikipedia.org/fsdb.main/fsdb.abc.sqlite3 and b/tst/400_xowa/root/file/en.wikipedia.org/file/en.wikipedia.org/wiki.mnt.sqlite3 differ
diff --git a/tst/400_xowa/root/file/en.wikipedia.org/fsdb.user/fsdb.bin.0000.sqlite3 b/tst/400_xowa/root/file/en.wikipedia.org/file/en.wikipedia.org/wiki.orig#00.sqlite3
similarity index 61%
rename from tst/400_xowa/root/file/en.wikipedia.org/fsdb.user/fsdb.bin.0000.sqlite3
rename to tst/400_xowa/root/file/en.wikipedia.org/file/en.wikipedia.org/wiki.orig#00.sqlite3
index fd0c21a8e..95d469ff9 100644
Binary files a/tst/400_xowa/root/file/en.wikipedia.org/fsdb.user/fsdb.bin.0000.sqlite3 and b/tst/400_xowa/root/file/en.wikipedia.org/file/en.wikipedia.org/wiki.orig#00.sqlite3 differ
diff --git a/tst/400_xowa/root/file/en.wikipedia.org/fsdb.user/fsdb.abc.sqlite3 b/tst/400_xowa/root/file/en.wikipedia.org/fsdb.user/fsdb.abc.sqlite3
deleted file mode 100644
index 455bbad29..000000000
Binary files a/tst/400_xowa/root/file/en.wikipedia.org/fsdb.user/fsdb.abc.sqlite3 and /dev/null differ
diff --git a/tst/400_xowa/root/wiki/en.wikipedia.org/en.wikipedia.org.002.sqlite3 b/tst/400_xowa/root/wiki/en.wikipedia.org/en.wikipedia.org.002.sqlite3
index 6778de16f..344a1a0ed 100644
Binary files a/tst/400_xowa/root/wiki/en.wikipedia.org/en.wikipedia.org.002.sqlite3 and b/tst/400_xowa/root/wiki/en.wikipedia.org/en.wikipedia.org.002.sqlite3 differ