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

'v3.8.1.1'

This commit is contained in:
gnosygnu
2016-07-31 21:41:19 -04:00
parent 8e91ac0bc4
commit b0fdf78a41
388 changed files with 3517 additions and 2553 deletions

View File

@@ -35,7 +35,8 @@ public class Xoav_app implements Xoa_app, Gfo_invk {
public Xoav_app(Gfo_usr_dlg usr_dlg, Xoa_app_mode mode, Xog_tab_mgr tab_mgr, String plat_name, Io_url root_dir, Io_url file_dir, Io_url css_dir, Io_url http_root) {
Xoa_app_.Usr_dlg_(usr_dlg); this.usr_dlg = usr_dlg; this.mode = mode;
this.fsys_mgr = new Xoa_fsys_mgr(plat_name, root_dir, root_dir.GenSubDir("wiki"), file_dir, css_dir, http_root);
this.lang_mgr = new Xoa_lang_mgr(this);
Xoa_gfs_mgr gfs_mgr = new Xoa_gfs_mgr(this, fsys_mgr, null);
this.lang_mgr = new Xoa_lang_mgr(this, gfs_mgr);
this.meta_mgr = new Xoa_meta_mgr(this);
this.gfs_mgr = new Xoa_gfs_mgr(this, fsys_mgr, null);
this.file__cache_mgr = new Xof_cache_mgr(usr_dlg, null, null);
@@ -83,7 +84,7 @@ public class Xoav_app implements Xoa_app, Gfo_invk {
public Xowmf_mgr Wmf_mgr() {return wmf_mgr;} private final Xowmf_mgr wmf_mgr = new Xowmf_mgr();
public Gfo_usr_dlg Usr_dlg() {return usr_dlg;} public void Usr_dlg_(Gfo_usr_dlg v) {usr_dlg = v; Xoa_app_.Usr_dlg_(usr_dlg);} private Gfo_usr_dlg usr_dlg = Gfo_usr_dlg_.Noop;
public Bry_bfr_mkr Utl__bfr_mkr() {return Xoa_app_.Utl__bfr_mkr();}
public Bry_bfr_mkr Utl__bfr_mkr() {return utl__bry_bfr_mkr;} private final Bry_bfr_mkr utl__bry_bfr_mkr = new Bry_bfr_mkr();
public Json_parser Utl__json_parser() {return utl__json_parser;} private final Json_parser utl__json_parser = new Json_parser();
public boolean Bldr__running() {return bldr__running;} public void Bldr__running_(boolean v) {this.bldr__running = v;} private boolean bldr__running;
public Xop_amp_mgr Utl_amp_mgr() {return utl_amp_mgr;} private Xop_amp_mgr utl_amp_mgr = Xop_amp_mgr.Instance;

View File

@@ -16,7 +16,7 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.apps.apis.xowa.xtns; import gplx.*; import gplx.xowa.*; import gplx.xowa.apps.*; import gplx.xowa.apps.apis.*; import gplx.xowa.apps.apis.xowa.*;
import gplx.xowa.xtns.wdatas.*;
import gplx.xowa.xtns.wbases.*;
public class Xoapi_wikibase implements Gfo_invk, Gfo_evt_mgr_owner {
public Xoapi_wikibase() {
evt_mgr = new Gfo_evt_mgr(this);

View File

@@ -38,7 +38,7 @@ public class Xoa_boot_mgr {
}
}
private void Init_env(String[] args) {
Gfo_usr_dlg_.Instance = usr_dlg = Xoa_app_.usr_dlg_console_();
Gfo_usr_dlg_.Instance = usr_dlg = Xoa_app_.New__usr_dlg__console();
Gfo_log_.Instance__set(new gplx.xowa.apps.shells.Gfo_log__console());
log_wtr = usr_dlg.Log_wkr(); log_wtr.Log_to_session_fmt("env.init: version=~{0}", Xoa_app_.Version);
GfuiEnv_.Init_swt(args, Xoa_app_.class);

View File

@@ -16,7 +16,7 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.apps.caches; import gplx.*; import gplx.xowa.*; import gplx.xowa.apps.*;
import gplx.xowa.xtns.wdatas.*;
import gplx.xowa.xtns.wbases.*;
public class Wdata_doc_cache {
private Hash_adp_bry hash = Hash_adp_bry.cs();
public void Add(byte[] qid, Wdata_doc doc) {hash.Add(qid, doc);}

View File

@@ -22,7 +22,7 @@ public class Xoa_cfg_db_txt implements Xoa_cfg_db {
private Bry_fmtr fmtr = Bry_fmtr.new_("app.cfgs.get('~{msg}', '~{wiki}').val = '~{val}';\n", "msg", "wiki", "val");
public void Cfg_reset_all(Xoa_cfg_mgr cfg_mgr) {
Io_url src_url = this.Cfg_url(cfg_mgr);
Io_url trg_url = src_url.GenNewNameAndExt("xowa_user_cfg." + DateAdp_.Now().XtoStr_fmt_yyyyMMdd_HHmmss() + ".gfs");
Io_url trg_url = src_url.GenNewNameAndExt("xowa_user_cfg." + Datetime_now.Get().XtoStr_fmt_yyyyMMdd_HHmmss() + ".gfs");
Io_mgr.Instance.MoveFil_args(src_url, trg_url, true).Exec();
if (cfg_mgr.App().Tid_is_edit())
((Xoae_app)cfg_mgr.App()).Gui_mgr().Kit().Ask_ok("", "", "Options cleared. Please restart XOWA.");

View File

@@ -64,7 +64,7 @@ public class Xoa_gfs_mgr implements Gfo_invk, Gfo_invk_root_wkr {
try {Run_url(url);}
catch (Exception e) { // gfs is corrupt; may happen if multiple XOWAs opened, and "Close all" chosen in OS; DATE:2014-07-01
if (!String_.Eq(type, "xowa")) // check if user.gfs
Io_mgr.Instance.MoveFil(url, url.GenNewNameOnly(url.NameOnly() + "-" + DateAdp_.Now().XtoStr_fmt_yyyyMMdd_HHmmss())); // move file
Io_mgr.Instance.MoveFil(url, url.GenNewNameOnly(url.NameOnly() + "-" + Datetime_now.Get().XtoStr_fmt_yyyyMMdd_HHmmss())); // move file
Gfo_usr_dlg_.Instance.Warn_many("", "", "invalid gfs; obsoleting: src=~{0} err=~{1}", url.Raw(), Err_.Message_gplx_full(e));
}
}

View File

@@ -20,17 +20,19 @@ public class Xoa_gfs_wtr_ {
public static byte[] Escape(String v) {return Escape(Bry_.new_u8(v));}
public static byte[] Escape(byte[] v) {
return Bry_find_.Find_fwd(v, Byte_ascii.Apos) == Bry_find_.Not_found ? v : Bry_.Replace(v, Byte_ascii.Apos_bry, Bry__apos_escaped);
} private static final byte[] Bry__apos_escaped = Bry_.new_a7("''");
} private static final byte[] Bry__apos_escaped = Bry_.new_a7("''");
public static void Write_prop(Bry_bfr bfr, byte[] prop, byte[] val) {
bfr.Add(prop).Add(Bry__val_bgn).Add(Xoa_gfs_wtr_.Escape(val)).Add(Bry__val_end); // EX: "a_('b');\n"
} private static final byte[] Bry__val_bgn = Bry_.new_a7("_('"), Bry__val_end = Bry_.new_a7("');\n");
} private static final byte[] Bry__val_bgn = Bry_.new_a7("_('"), Bry__val_end = Bry_.new_a7("');\n");
public static String Write_func_chain(String... ary) { // EX: "a.b.c"
Bry_bfr bfr = Xoa_app_.Utl__bfr_mkr().Get_b128(); // Bry_bfr.try_none: simple-ops
int len = ary.length;
for (int i = 0; i < len; ++i) {
if (i != 0) bfr.Add_byte(Byte_ascii.Dot);
bfr.Add_str_u8(ary[i]);
}
return bfr.To_str_and_rls();
Bry_bfr bfr = Bry_bfr_.New();
try {
int len = ary.length;
for (int i = 0; i < len; ++i) {
if (i != 0) bfr.Add_byte(Byte_ascii.Dot);
bfr.Add_str_u8(ary[i]);
}
return bfr.To_str_and_clear();
} finally {bfr.Mkr_rls();}
}
}

View File

@@ -26,7 +26,7 @@ public abstract class Xoa_site_cfg_itm__base {
public byte[] Key_bry() {return key_bry;} private byte[] key_bry;
public byte[] Parse_json(Xow_wiki wiki, Json_itm js_itm) {
Json_ary ary = Json_ary.cast(js_itm);
Bry_bfr bfr = Xoa_app_.Utl__bfr_mkr().Get_b512();
Bry_bfr bfr = wiki.Utl__bfr_mkr().Get_b512();
int len = ary.Len();
for (int i = 0; i < len; ++i)
Parse_json_ary_itm(bfr, wiki, i, ary.Get_at(i));

View File

@@ -38,7 +38,7 @@ class Xoa_site_cfg_loader__db implements Xoa_site_cfg_loader {
cfg_tbl.Upsert_bry(Grp__xowa_wm_api, db_key, data);
}
public static String Bld_meta(int loader_tid) {
return String_.Format("//#xowa|{0}|{1}|{2}", Xoa_app_.Version, Xoa_site_cfg_loader_.Get_key(loader_tid), DateAdp_.Now().XtoUtc().XtoStr_fmt_yyyyMMdd_HHmmss());
return String_.Format("//#xowa|{0}|{1}|{2}", Xoa_app_.Version, Xoa_site_cfg_loader_.Get_key(loader_tid), Datetime_now.Get().XtoUtc().XtoStr_fmt_yyyyMMdd_HHmmss());
}
public static final String Grp__xowa_wm_api = "xowa.site_cfg";
}

View File

@@ -21,13 +21,14 @@ import gplx.langs.jsons.*;
import gplx.xowa.wikis.domains.*;
public class Xoa_site_cfg_loader__inet implements Xoa_site_cfg_loader {
private final Gfo_inet_conn inet_conn; private final Json_parser json_parser;
private String api_url; private boolean call_api = true; private Json_doc jdoc;
private String api_url; private boolean call_api = true; private Json_doc jdoc;
private final Bry_bfr tmp_bfr = Bry_bfr_.New();
public Xoa_site_cfg_loader__inet(Gfo_inet_conn inet_conn, Json_parser json_parser) {this.inet_conn = inet_conn; this.json_parser = json_parser;}
public int Tid() {return Xoa_site_cfg_loader_.Tid__inet;}
public void Load_csv__bgn(Xoa_site_cfg_mgr mgr, Xow_wiki wiki) {
this.call_api = true;
this.jdoc = null;
this.api_url = Bld_url(wiki.Domain_str(), mgr.Data_hash(), mgr.Itm_ary());
this.api_url = Bld_url(tmp_bfr, wiki.Domain_str(), mgr.Data_hash(), mgr.Itm_ary());
}
public String Api_url() {return api_url;}
public byte[] Load_csv(Xoa_site_cfg_mgr mgr, Xow_wiki wiki, Xoa_site_cfg_itm__base itm) {
@@ -41,8 +42,7 @@ public class Xoa_site_cfg_loader__inet implements Xoa_site_cfg_loader {
Json_itm js_itm = jdoc.Get_grp_many(Bry__query, itm.Key_bry()); if (js_itm == null) return null;
return itm.Parse_json(wiki, js_itm);
}
public static String Bld_url(String domain_str, Hash_adp_bry db_hash, Xoa_site_cfg_itm__base[] itm_ary) {
Bry_bfr bfr = Xoa_app_.Utl__bfr_mkr().Get_b512();
public static String Bld_url(Bry_bfr tmp_bfr, String domain_str, Hash_adp_bry db_hash, Xoa_site_cfg_itm__base[] itm_ary) {
boolean first = true;
int len = itm_ary.length;
for (int i = 0; i < len; ++i) {
@@ -51,10 +51,10 @@ public class Xoa_site_cfg_loader__inet implements Xoa_site_cfg_loader {
if (first)
first = false;
else
bfr.Add_byte_pipe();
bfr.Add(itm.Key_bry());
tmp_bfr.Add_byte_pipe();
tmp_bfr.Add(itm.Key_bry());
}
return first ? null : Xowm_api_mgr.Bld_api_url(domain_str, Qarg__bgn + bfr.To_str_and_rls());
return first ? null : Xowm_api_mgr.Bld_api_url(domain_str, Qarg__bgn + tmp_bfr.To_str_and_clear());
}
private static final byte[] Bry__query = Bry_.new_a7("query");
public static final String

View File

@@ -66,8 +66,9 @@ class Xoa_site_cfg_mgr_fxt {
private final Xoa_site_cfg_mgr site_cfg_mgr;
private final Db_cfg_tbl cfg_tbl;
private final Json_printer printer = new Json_printer();
private final Bry_bfr tmp_bfr = Bry_bfr_.New();
public Xoa_site_cfg_mgr_fxt() {
// Xoa_app_.Usr_dlg_(Xoa_app_.usr_dlg_console_());
// Xoa_app_.Usr_dlg_(Xoa_app_.New__usr_dlg__console());
Xoa_test_.Inet__init();
this.app = Xoa_app_fxt.Make__app__edit();
this.wiki = Xoa_app_fxt.Make__wiki__edit(app);
@@ -76,14 +77,14 @@ class Xoa_site_cfg_mgr_fxt {
this.site_cfg_mgr = app.Site_cfg_mgr();
}
public void Init() {
Tfds.Now_enabled_y_(); Tfds.Now_freeze_y_();
Datetime_now.Manual_y_(); Datetime_now.Autoincrement_n_();
Io_mgr.Instance.InitEngine_mem();
cfg_tbl.Delete_grp(Xoa_site_cfg_loader__db.Grp__xowa_wm_api);
site_cfg_mgr.Init_loader_bgn(wiki);
app.Utl__inet_conn().Clear();
}
public void Term() {
Tfds.Now_enabled_n_();
Datetime_now.Manual_n_();
}
public void Init_db(String key, String data) {
cfg_tbl.Assert_bry(Xoa_site_cfg_loader__db.Grp__xowa_wm_api, key, Bry_.new_u8(data));
@@ -93,7 +94,7 @@ class Xoa_site_cfg_mgr_fxt {
Tfds.Eq_str_lines(expd, String_.new_u8(actl));
}
public void Init_inet(String data) {
String url = Xoa_site_cfg_loader__inet.Bld_url(wiki.Domain_str(), site_cfg_mgr.Data_hash(), site_cfg_mgr.Itm_ary());
String url = Xoa_site_cfg_loader__inet.Bld_url(tmp_bfr, wiki.Domain_str(), site_cfg_mgr.Data_hash(), site_cfg_mgr.Itm_ary());
app.Utl__inet_conn().Upload_by_bytes(url, Bry_.new_u8(data));
}
public void Init_fsys(String key, String data) {
@@ -123,7 +124,7 @@ class Xoa_site_cfg_mgr_fxt {
Tfds.Eq(expd, String_.Mid(api_url, String_.FindBwd(api_url, "=") + 1));
}
public String Make_api(byte[]... sections) {
Bry_bfr bfr = Xoa_app_.Utl__bfr_mkr().Get_b512();
Bry_bfr bfr = wiki.Utl__bfr_mkr().Get_b512();
bfr.Add_str_a7("{'query':");
int len = sections.length;
bfr.Add_str_a7("{");
@@ -136,7 +137,7 @@ class Xoa_site_cfg_mgr_fxt {
return printer.Print_by_bry(Bry_.new_u8(Json_doc.Make_str_by_apos(bfr.To_str_and_rls()))).To_str();
}
public byte[] Make_api_interwikimap(String... ary) {
Bry_bfr bfr = Xoa_app_.Utl__bfr_mkr().Get_b512();
Bry_bfr bfr = wiki.Utl__bfr_mkr().Get_b512();
bfr.Add_str_a7("'interwikimap':");
int len = ary.length;
bfr.Add_str_a7("[");
@@ -150,7 +151,7 @@ class Xoa_site_cfg_mgr_fxt {
return bfr.To_bry_and_clear();
}
public byte[] Make_api_extensiontags(String... ary) {
Bry_bfr bfr = Xoa_app_.Utl__bfr_mkr().Get_b512();
Bry_bfr bfr = wiki.Utl__bfr_mkr().Get_b512();
bfr.Add_str_a7("'extensiontags':");
int len = ary.length;
bfr.Add_str_a7("[");
@@ -162,7 +163,7 @@ class Xoa_site_cfg_mgr_fxt {
return bfr.To_bry_and_clear();
}
public String Make_data(int loader_tid, int flds, String... ary) {
Bry_bfr bfr = Xoa_app_.Utl__bfr_mkr().Get_b512();
Bry_bfr bfr = wiki.Utl__bfr_mkr().Get_b512();
if (loader_tid != Xoa_site_cfg_loader_.Tid__null) // null when constructing data for fsys
bfr.Add_str_u8(Xoa_site_cfg_loader__db.Bld_meta(loader_tid)).Add_byte_nl();
int len = ary.length;

View File

@@ -17,26 +17,24 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.apps.urls; import gplx.*; import gplx.xowa.*; import gplx.xowa.apps.*;
public class Xoa_url_encoder {
private final Bry_bfr bfr = Bry_bfr_.New();
public byte[] Encode(byte[] src) {
int src_len = src.length;
for (int i = 0; i < src_len; i++) {
byte b = src[i];
switch (b) {
case Byte_ascii.Space: bb.Add(Bry_underline); break;
case Byte_ascii.Amp: bb.Add(Bry_amp); break;
case Byte_ascii.Apos: bb.Add(Bry_apos); break;
case Byte_ascii.Eq: bb.Add(Bry_eq); break;
case Byte_ascii.Plus: bb.Add(Bry_plus); break;
default: bb.Add_byte(b); break;
// FUTURE: html_entities, etc:
case Byte_ascii.Space: bfr.Add(Bry__underline); break;
case Byte_ascii.Amp: bfr.Add(Bry__amp); break;
case Byte_ascii.Apos: bfr.Add(Bry__apos); break;
case Byte_ascii.Eq: bfr.Add(Bry__eq); break;
case Byte_ascii.Plus: bfr.Add(Bry__plus); break;
default: bfr.Add_byte(b); break;
}
}
return bb.To_bry_and_clear();
return bfr.To_bry_and_clear();
}
private static final byte[] Bry_amp = Bry_.new_a7("%26"), Bry_eq = Bry_.new_a7("%3D")
, Bry_plus = Bry_.new_a7("%2B"), Bry_apos = Bry_.new_a7("%27")
, Bry_underline = new byte[] {Byte_ascii.Underline}
;
Bry_bfr bb = Bry_bfr_.New();
public static final Xoa_url_encoder Instance = new Xoa_url_encoder(); Xoa_url_encoder() {}
private static final byte[] Bry__amp = Bry_.new_a7("%26"), Bry__eq = Bry_.new_a7("%3D")
, Bry__plus = Bry_.new_a7("%2B"), Bry__apos = Bry_.new_a7("%27")
, Bry__underline = new byte[] {Byte_ascii.Underline}
;
}