diff --git a/400_xowa/src/gplx/xowa/xtns/flaggedRevs/scribunto/Flagged_revs_lib.java b/400_xowa/src/gplx/xowa/xtns/flaggedRevs/scribunto/Flagged_revs_lib.java index b46ebf908..82cc2d20b 100644 --- a/400_xowa/src/gplx/xowa/xtns/flaggedRevs/scribunto/Flagged_revs_lib.java +++ b/400_xowa/src/gplx/xowa/xtns/flaggedRevs/scribunto/Flagged_revs_lib.java @@ -19,6 +19,7 @@ import gplx.xowa.xtns.pfuncs.exprs.*; import gplx.xowa.xtns.scribunto.procs.*; public class Flagged_revs_lib implements Scrib_lib { private Scrib_core core; + public String Key() {return "mw.ext.FlaggedRevs";} public Scrib_lua_mod Mod() {return mod;} private Scrib_lua_mod mod; public Scrib_lib Init() {procs.Init_by_lib(this, Proc_names); return this;} public Scrib_lib Core_(Scrib_core v) {this.core = v; return this;} // TEST: diff --git a/400_xowa/src/gplx/xowa/xtns/jsonConfigs/scribunto/Jscfg_scrib_lib.java b/400_xowa/src/gplx/xowa/xtns/jsonConfigs/scribunto/Jscfg_scrib_lib.java index d4011dc36..44e5f9bec 100644 --- a/400_xowa/src/gplx/xowa/xtns/jsonConfigs/scribunto/Jscfg_scrib_lib.java +++ b/400_xowa/src/gplx/xowa/xtns/jsonConfigs/scribunto/Jscfg_scrib_lib.java @@ -20,6 +20,7 @@ public class Jscfg_scrib_lib implements Scrib_lib { private final Scrib_lib_text__json_util json_util = new Scrib_lib_text__json_util(); private final Jscfg_localizer localizer = new Jscfg_localizer(); private Scrib_core core; + public String Key() {return "JCLuaLibrary";} public Scrib_lua_mod Mod() {return mod;} private Scrib_lua_mod mod; public Scrib_lib Init() {procs.Init_by_lib(this, Proc_names); return this;} public void Core_(Scrib_core v) {this.core = v;} // TEST: diff --git a/400_xowa/src/gplx/xowa/xtns/pfuncs/scribunto/Pfunc_scrib_lib.java b/400_xowa/src/gplx/xowa/xtns/pfuncs/scribunto/Pfunc_scrib_lib.java index 28bbf2bbd..82ed3a3d6 100644 --- a/400_xowa/src/gplx/xowa/xtns/pfuncs/scribunto/Pfunc_scrib_lib.java +++ b/400_xowa/src/gplx/xowa/xtns/pfuncs/scribunto/Pfunc_scrib_lib.java @@ -19,6 +19,7 @@ import gplx.xowa.xtns.pfuncs.exprs.*; import gplx.xowa.xtns.scribunto.procs.*; public class Pfunc_scrib_lib implements Scrib_lib { private Scrib_core core; + public String Key() {return "mw.ext.ParserFunctions";} public Scrib_lua_mod Mod() {return mod;} private Scrib_lua_mod mod; public Scrib_lib Init() {procs.Init_by_lib(this, Proc_names); return this;} public void Core_(Scrib_core v) {this.core = v;} // TEST: diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/Scrib_core_fxt.java b/400_xowa/src/gplx/xowa/xtns/scribunto/Scrib_core_fxt.java index 2463e4049..94b1fde7f 100644 --- a/400_xowa/src/gplx/xowa/xtns/scribunto/Scrib_core_fxt.java +++ b/400_xowa/src/gplx/xowa/xtns/scribunto/Scrib_core_fxt.java @@ -114,7 +114,7 @@ public class Scrib_core_fxt { } public Scrib_core_fxt Test_GetExpandedArgument(Keyval[] args, String arg, String expd) {// NOTE: test is rigidly defined; (a) always same 3 arguments in frame; (b) expd={"val_1", "val_2", "val_3", ""} this.Expd_server_rcvd_add("0000003D00000079{[\"op\"]=\"call\",[\"id\"]=8,[\"nargs\"]=1,[\"args\"]={[1]=chunks[9]}}") - .Init_server_prep_add("a:4:{s:2:\"id\";s:32:\"mw_interface-getExpandedArgument\";s:2:\"op\";s:4:\"call\";s:5:\"nargs\";i:2;s:4:\"args\";a:2:{i:1;s:7:\"current\";i:2;s:" + String_.Len(arg) + ":\"" + arg + "\";}}"); + .Init_server_prep_add("a:4:{s:2:\"id\";s:32:\"mwInit|getExpandedArgument\";s:2:\"op\";s:4:\"call\";s:5:\"nargs\";i:2;s:4:\"args\";a:2:{i:1;s:7:\"current\";i:2;s:" + String_.Len(arg) + ":\"" + arg + "\";}}"); if (String_.Eq(expd, "")) this.Expd_server_rcvd_add("0000002D00000059{[\"op\"]=\"return\",[\"nvalues\"]=0,[\"values\"]={}}"); else diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/Scrib_core_tst.java b/400_xowa/src/gplx/xowa/xtns/scribunto/Scrib_core_tst.java index 74eea9297..4b5b86e8f 100644 --- a/400_xowa/src/gplx/xowa/xtns/scribunto/Scrib_core_tst.java +++ b/400_xowa/src/gplx/xowa/xtns/scribunto/Scrib_core_tst.java @@ -37,9 +37,9 @@ public class Scrib_core_tst { ; } @Test public void RegisterLibrary() { - fxt .Expd_server_rcvd_add("00000080000000FF{[\"op\"]=\"registerLibrary\",[\"name\"]=\"mw_interface\",[\"functions\"]={[\"prc_0\"]=\"mw_interface-prc_0\",[\"prc_1\"]=\"mw_interface-prc_1\"}}") + fxt .Expd_server_rcvd_add("00000074000000E7{[\"op\"]=\"registerLibrary\",[\"name\"]=\"mw_interface\",[\"functions\"]={[\"prc_0\"]=\"mwInit|prc_0\",[\"prc_1\"]=\"mwInit|prc_1\"}}") .Init_server_prep_add("a:3:{s:2:\"op\";s:6:\"return\";s:7:\"nvalues\";i:0;s:6:\"values\";a:0:{}}") - .Test_RegisterLibrary(String_.Ary("prc_0", "prc_1"), String_.Ary("mw_interface-prc_0", "mw_interface-prc_1")) + .Test_RegisterLibrary(String_.Ary("prc_0", "prc_1"), String_.Ary("mwInit|prc_0", "mwInit|prc_1")) ; } @Test public void LoadLibraryFromFile() { @@ -55,13 +55,13 @@ public class Scrib_core_tst { ; } @Test public void CallFunction_cbk() { // PURPOSE: 'simulates interpreter.CallFunction(mw_lib.Fncs_get_by_key("setup").Id(), "allowEnvFuncs", allow_env_funcs);' - fxt .Expd_server_rcvd_add("0000008C00000117{[\"op\"]=\"registerLibrary\",[\"name\"]=\"mw_interface\",[\"functions\"]={[\"loadPackage\"]=\"mw_interface-loadPackage\",[\"prc_1\"]=\"mw_interface-prc_1\"}}") + fxt .Expd_server_rcvd_add("00000080000000FF{[\"op\"]=\"registerLibrary\",[\"name\"]=\"mw_interface\",[\"functions\"]={[\"loadPackage\"]=\"mwInit|loadPackage\",[\"prc_1\"]=\"mwInit|prc_1\"}}") .Init_server_prep_add("a:3:{s:2:\"op\";s:6:\"return\";s:7:\"nvalues\";i:0;s:6:\"values\";a:0:{}}") - .Test_RegisterLibrary(String_.Ary("loadPackage", "prc_1"), String_.Ary("mw_interface-loadPackage", "mw_interface-prc_1")) + .Test_RegisterLibrary(String_.Ary("loadPackage", "prc_1"), String_.Ary("mwInit|loadPackage", "mwInit|prc_1")) ; fxt .Init_lib_fil("package.lua", "package_text") .Expd_server_rcvd_add("000000470000008D{[\"op\"]=\"call\",[\"id\"]=2,[\"nargs\"]=1,[\"args\"]={[1]={[\"key_0\"]=\"val_0\"}}}") - .Init_server_prep_add("a:4:{s:2:\"id\";s:24:\"mw_interface-loadPackage\";s:2:\"op\";s:4:\"call\";s:5:\"nargs\";i:1;s:4:\"args\";a:1:{i:1;s:7:\"package\";}}") + .Init_server_prep_add("a:4:{s:2:\"id\";s:18:\"mwInit|loadPackage\";s:2:\"op\";s:4:\"call\";s:5:\"nargs\";i:1;s:4:\"args\";a:1:{i:1;s:7:\"package\";}}") .Expd_server_rcvd_add("0000004A00000093{[\"op\"]=\"loadString\",[\"text\"]=\"package_text\",[\"chunkName\"]=\"@package.lua\"}") .Init_server_prep_add("a:3:{s:2:\"op\";s:6:\"return\";s:7:\"nvalues\";i:1;s:6:\"values\";a:1:{i:1;i:14;}}") .Expd_server_rcvd_add("0000003B00000075{[\"op\"]=\"return\",[\"nvalues\"]=1,[\"values\"]={[1]=chunks[14]}}") diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/Scrib_invoke_func_fxt.java b/400_xowa/src/gplx/xowa/xtns/scribunto/Scrib_invoke_func_fxt.java index e5e7cd6b8..b1c9e9af5 100644 --- a/400_xowa/src/gplx/xowa/xtns/scribunto/Scrib_invoke_func_fxt.java +++ b/400_xowa/src/gplx/xowa/xtns/scribunto/Scrib_invoke_func_fxt.java @@ -36,7 +36,7 @@ public class Scrib_invoke_func_fxt { fxt.Init_page_create("Module:Mod_0"); this.Init_lua_rcvd_loadModule(); } - public Scrib_invoke_func_fxt Init_cbk(String lib_name, Scrib_lib lib, String... proc_names) { + public Scrib_invoke_func_fxt Init_cbk(Scrib_lib lib, String... proc_names) { int len = proc_names.length; for (int i = 0; i < len; i++) { String proc_name = proc_names[i]; @@ -50,8 +50,8 @@ public class Scrib_invoke_func_fxt { public Scrib_invoke_func_fxt Init_server_print_key_y_() {server.Print_key_(true); return this;} public Scrib_invoke_func_fxt Init_server_print_key_n_() {server.Print_key_(false); return this;} public Scrib_invoke_func_fxt Init_lua_rcvd_raw(String raw) {server.Prep_add(raw); return this;} - public Scrib_invoke_func_fxt Init_lua_rcvd(String cbk_name, Keyval... ary) { - server.Prep_add(rsp_bldr.Bld_mw_cbk(cbk_name, ary)); + public Scrib_invoke_func_fxt Init_lua_rcvd(Scrib_lib lib, String cbk_name, Keyval... ary) { + server.Prep_add(rsp_bldr.Bld_mw_cbk(lib, cbk_name, ary)); return this; } public Scrib_invoke_func_fxt Init_lua_module() { @@ -63,13 +63,13 @@ public class Scrib_invoke_func_fxt { return this; } public Scrib_invoke_func_fxt Init_lua_rcvd_preprocess(String frame, String cmd) { - server.Prep_add(String_.Concat_any("a:4:{s:2:\"id\";s:23:\"mw_interface-preprocess\";s:2:\"op\";s:4:\"call\";s:5:\"nargs\";i:2;s:4:\"args\";a:2:{i:1;s:", String_.Len(frame), ":\"", frame, "\";i:2;s:", String_.Len(cmd), ":\"", cmd, "\";}}")); + server.Prep_add(String_.Concat_any("a:4:{s:2:\"id\";s:17:\"mwInit|preprocess\";s:2:\"op\";s:4:\"call\";s:5:\"nargs\";i:2;s:4:\"args\";a:2:{i:1;s:", String_.Len(frame), ":\"", frame, "\";i:2;s:", String_.Len(cmd), ":\"", cmd, "\";}}")); this.Init_lua_rcvd_rv(); return this; } - public Scrib_invoke_func_fxt Init_lua_rcvd_expandTemplate(String frame, String tmpl_ttl, Keyval... ary) { + public Scrib_invoke_func_fxt Init_lua_rcvd_expandTemplate(Scrib_lib lib, String frame, String tmpl_ttl, Keyval... ary) { ary = new Keyval[] {Keyval_.int_(1, "current"), Keyval_.int_(2, tmpl_ttl), Keyval_.int_(3, ary)}; - server.Prep_add(rsp_bldr.Bld_mw_cbk("expandTemplate", ary)); + server.Prep_add(rsp_bldr.Bld_mw_cbk(lib, "expandTemplate", ary)); this.Init_lua_rcvd_rv(); return this; } @@ -96,8 +96,8 @@ public class Scrib_invoke_func_fxt { } private void Test_lib_proc_internal(Scrib_lib lib, String func_name, Keyval[] args) { Init_lua_module(); - this.Init_cbk(Scrib_core.Key_mw_interface, lib, func_name); - this.Init_lua_rcvd(func_name, args); + this.Init_cbk(lib, func_name); + this.Init_lua_rcvd(lib, func_name, args); this.Init_lua_rcvd_rv(); } public void Test_log_rcvd(int i, String expd) { @@ -199,8 +199,8 @@ public class Scrib_invoke_func_fxt { } class Scrib_lua_rsp_bldr { Bry_bfr bfr = Bry_bfr_.Reset(255); - public String Bld_mw_cbk(String cbk_name, Keyval... ary) { - cbk_name = "mw_interface-" + cbk_name; + public String Bld_mw_cbk(Scrib_lib lib, String cbk_name, Keyval... ary) { + cbk_name = Scrib_proc.Build_key(lib, cbk_name); bfr.Add_str_a7("a:4:{s:2:\"id\";"); Bld_str(bfr, cbk_name); bfr.Add_str_a7("s:2:\"op\";s:4:\"call\";s:5:\"nargs\";i:3;s:4:\"args\";"); diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/Scrib_lib.java b/400_xowa/src/gplx/xowa/xtns/scribunto/Scrib_lib.java index 7b87f9422..831207347 100644 --- a/400_xowa/src/gplx/xowa/xtns/scribunto/Scrib_lib.java +++ b/400_xowa/src/gplx/xowa/xtns/scribunto/Scrib_lib.java @@ -16,6 +16,7 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt package gplx.xowa.xtns.scribunto; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.scribunto.procs.*; public interface Scrib_lib { + String Key(); Scrib_proc_mgr Procs(); Scrib_lib Init(); Scrib_lua_mod Register(Scrib_core core, Io_url script_dir); diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_html.java b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_html.java index 85b943729..1b8ec1b68 100644 --- a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_html.java +++ b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_html.java @@ -17,6 +17,7 @@ package gplx.xowa.xtns.scribunto.libs; import gplx.*; import gplx.xowa.*; import import gplx.xowa.xtns.scribunto.procs.*; public class Scrib_lib_html implements Scrib_lib { public Scrib_lib_html(Scrib_core core) {} + public String Key() {return "mw.html";} public Scrib_lua_mod Mod() {return mod;} private Scrib_lua_mod mod; public Scrib_lib Init() {procs.Init_by_lib(this, String_.Ary_empty); return this;} public Scrib_lib Clone_lib(Scrib_core core) {return new Scrib_lib_html(core);} diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_language.java b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_language.java index 53592b4ba..e5e110e8a 100644 --- a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_language.java +++ b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_language.java @@ -20,6 +20,7 @@ import gplx.xowa.xtns.pfuncs.times.*; import gplx.xowa.langs.numbers.*; import g import gplx.xowa.xtns.scribunto.procs.*; public class Scrib_lib_language implements Scrib_lib { public Scrib_lib_language(Scrib_core core) {this.core = core;} private Scrib_core core; + public String Key() {return "mw.language";} public Scrib_lua_mod Mod() {return mod;} private Scrib_lua_mod mod; public Scrib_lib Init() {procs.Init_by_lib(this, Proc_names); return this;} public Scrib_lib Clone_lib(Scrib_core core) {return new Scrib_lib_language(core);} diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_message.java b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_message.java index cc13d1b64..b215ee5a1 100644 --- a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_message.java +++ b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_message.java @@ -21,6 +21,7 @@ import gplx.xowa.parsers.*; import gplx.xowa.xtns.scribunto.procs.*; public class Scrib_lib_message implements Scrib_lib { public Scrib_lib_message(Scrib_core core) {this.core = core;} private Scrib_core core; + public String Key() {return "mw.message";} public Scrib_lua_mod Mod() {return mod;} private Scrib_lua_mod mod; public Scrib_lib Init() {procs.Init_by_lib(this, Proc_names); return this;} public Scrib_lib Clone_lib(Scrib_core core) {return new Scrib_lib_message(core);} diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_mw.java b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_mw.java index 52d89b887..9a68f8f97 100644 --- a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_mw.java +++ b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_mw.java @@ -21,6 +21,7 @@ import gplx.xowa.xtns.scribunto.procs.*; public class Scrib_lib_mw implements Scrib_lib { private Scrib_core core; private Scrib_fsys_mgr fsys_mgr; public Scrib_lib_mw(Scrib_core core) {this.core = core; this.fsys_mgr = core.Fsys_mgr();} + public String Key() {return "mwInit";} public Scrib_lua_mod Mod() {return mod;} public void Mod_(Scrib_lua_mod v) {this.mod = v;} private Scrib_lua_mod mod; public boolean Allow_env_funcs() {return allow_env_funcs;} private boolean allow_env_funcs = true; public Scrib_lib Init() {procs.Init_by_lib(this, Proc_names); return this;} diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_mw__invoke_tst.java b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_mw__invoke_tst.java index 1056c1b68..61c1e5489 100644 --- a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_mw__invoke_tst.java +++ b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_mw__invoke_tst.java @@ -124,7 +124,7 @@ public class Scrib_lib_mw__invoke_tst { private void Init_preprocess() { fxt.Init_tmpl("{{#invoke:Mod_0|Func_0|1|c|d}}"); // current fxt.Init_page("{{test|1|a|b|c}}"); // parent - fxt.Init_cbk(Scrib_core.Key_mw_interface, fxt.Core().Lib_mw(), Scrib_lib_mw.Invk_preprocess); + fxt.Init_cbk(fxt.Core().Lib_mw(), Scrib_lib_mw.Invk_preprocess); } private void Exec_preprocess(String frame, String arg_idx, String expd) { fxt.Parser_fxt().Wiki().Cache_mgr().Tmpl_result_cache().Clear(); diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_site.java b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_site.java index 85afb00dc..69a34fcb7 100644 --- a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_site.java +++ b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_site.java @@ -21,6 +21,7 @@ import gplx.xowa.xtns.scribunto.procs.*; import gplx.xowa.wikis.domains.*; import gplx.xowa.wikis.xwikis.interwikis.*; public class Scrib_lib_site implements Scrib_lib { public Scrib_lib_site(Scrib_core core) {this.core = core;} private final Scrib_core core; + public String Key() {return "mw.site";} public Scrib_lua_mod Mod() {return mod;} private Scrib_lua_mod mod; public Scrib_lib Init() {procs.Init_by_lib(this, Proc_names); return this;} public Scrib_lib Clone_lib(Scrib_core core) {return new Scrib_lib_site(core);} diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_text.java b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_text.java index 5c6b53bd8..754b4f03b 100644 --- a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_text.java +++ b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_text.java @@ -26,6 +26,7 @@ public class Scrib_lib_text implements Scrib_lib { this.core = core; this.trie = nowiki_util.Make_trie(gplx.xowa.parsers.xndes.Xop_xnde_tag_.Tag__nowiki.Name_bry()); } + public String Key() {return "mw.text";} public Scrib_lua_mod Mod() {return mod;} private Scrib_lua_mod mod; public Scrib_lib Init() {procs.Init_by_lib(this, Proc_names); return this;} public Scrib_lib Clone_lib(Scrib_core core) {return new Scrib_lib_text(core);} diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_title.java b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_title.java index 86ed2a948..083b2854e 100644 --- a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_title.java +++ b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_title.java @@ -23,6 +23,7 @@ import gplx.xowa.xtns.scribunto.procs.*; import gplx.xowa.wikis.pages.redirects.*; public class Scrib_lib_title implements Scrib_lib { public Scrib_lib_title(Scrib_core core) {this.core = core;} private Scrib_core core; + public String Key() {return "mw.title";} public Scrib_lua_mod Mod() {return mod;} private Scrib_lua_mod mod; public Scrib_lib Init() {procs.Init_by_lib(this, Proc_names); return this;} public Scrib_lib Clone_lib(Scrib_core core) {return new Scrib_lib_title(core);} diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_uri.java b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_uri.java index 35248b440..bfad3d606 100644 --- a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_uri.java +++ b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_uri.java @@ -20,6 +20,7 @@ import gplx.xowa.parsers.*; import gplx.xowa.xtns.scribunto.procs.*; public class Scrib_lib_uri implements Scrib_lib { public Scrib_lib_uri(Scrib_core core) {this.core = core;} private Scrib_core core; + public String Key() {return "mw.uri";} public Scrib_lua_mod Mod() {return mod;} private Scrib_lua_mod mod; public Scrib_lib Init() {procs.Init_by_lib(this, Proc_names); return this;} public Scrib_lib Clone_lib(Scrib_core core) {return new Scrib_lib_uri(core);} diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_ustring.java b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_ustring.java index 990bce14e..c1349f098 100644 --- a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_ustring.java +++ b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_ustring.java @@ -21,6 +21,7 @@ import gplx.xowa.xtns.scribunto.procs.*; import gplx.xowa.xtns.scribunto.libs.patterns.*; public class Scrib_lib_ustring implements Scrib_lib { public Scrib_lib_ustring(Scrib_core core) {this.core = core;} private Scrib_core core; + public String Key() {return "mw.ustring";} public Scrib_lua_mod Mod() {return mod;} private Scrib_lua_mod mod; public int String_len_max() {return string_len_max;} public Scrib_lib_ustring String_len_max_(int v) {string_len_max = v; return this;} private int string_len_max = Xoa_page_.Page_len_max; public int Pattern_len_max() {return pattern_len_max;} public Scrib_lib_ustring Pattern_len_max_(int v) {pattern_len_max = v; return this;} private int pattern_len_max = 10000; diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_ustring__shell_cmd__tst.java b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_ustring__shell_cmd__tst.java index 1668959b4..88fc7e483 100644 --- a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_ustring__shell_cmd__tst.java +++ b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_ustring__shell_cmd__tst.java @@ -22,44 +22,44 @@ public class Scrib_lib_ustring__shell_cmd__tst { fxt.Core().Lib_ustring().Init(); } private Scrib_invoke_func_fxt fxt = new Scrib_invoke_func_fxt(); @Test public void Gsub_proc() { - fxt.Init_cbk(Scrib_core.Key_mw_interface, fxt.Core().Lib_ustring(), Scrib_lib_ustring.Invk_gsub); + fxt.Init_cbk(fxt.Core().Lib_ustring(), Scrib_lib_ustring.Invk_gsub); Exec_gsub_regx_func_0("abcd", "([a])", "Abcd;1"); } @Test public void Gsub_proc_w_grouped() { // PURPOSE: gsub_proc should pass matched String, not entire String; DATE:2013-12-01 - fxt.Init_cbk(Scrib_core.Key_mw_interface, fxt.Core().Lib_ustring(), Scrib_lib_ustring.Invk_gsub); + fxt.Init_cbk(fxt.Core().Lib_ustring(), Scrib_lib_ustring.Invk_gsub); Exec_gsub_regx_func_1("[[a]]", "%[%[([^#|%]]-)%]%]" , "A;1"); fxt.Test_log_rcvd(3, "000000370000006D{[\"op\"]=\"call\",[\"id\"]=1,[\"nargs\"]=1,[\"args\"]={[1]=\"a\"}}"); // should be "a", not "[[a]]"; } @Test public void Gsub_proc_w_grouped_2() {// PURPOSE: gsub_proc failed when passing multiple matches; DATE:2013-12-01 - fxt.Init_cbk(Scrib_core.Key_mw_interface, fxt.Core().Lib_ustring(), Scrib_lib_ustring.Invk_gsub); + fxt.Init_cbk(fxt.Core().Lib_ustring(), Scrib_lib_ustring.Invk_gsub); Exec_gsub_regx_func_2("[[a]] [[b]]", "%[%[([^#|%]]-)%]%]" , "A B;2"); fxt.Test_log_rcvd(3, "000000370000006D{[\"op\"]=\"call\",[\"id\"]=1,[\"nargs\"]=1,[\"args\"]={[1]=\"a\"}}"); // should be "a", not "[[a]]"; fxt.Test_log_rcvd(4, "000000370000006D{[\"op\"]=\"call\",[\"id\"]=1,[\"nargs\"]=1,[\"args\"]={[1]=\"b\"}}"); // should be "b", not "[[b]]"; } @Test public void Gsub_int() { // PURPOSE: gsub with integer arg should not fail; DATE:2013-11-06 - fxt.Init_cbk(Scrib_core.Key_mw_interface, fxt.Core().Lib_ustring(), Scrib_lib_ustring.Invk_gsub); + fxt.Init_cbk(fxt.Core().Lib_ustring(), Scrib_lib_ustring.Invk_gsub); fxt.Init_lua_module(); - fxt.Init_lua_rcvd(Scrib_lib_ustring.Invk_gsub, Scrib_kv_utl_.base1_many_(1, "[1]", "2", 1)); // NOTE: text is integer (lua / php are type-less) + fxt.Init_lua_rcvd(fxt.Core().Lib_ustring(), Scrib_lib_ustring.Invk_gsub, Scrib_kv_utl_.base1_many_(1, "[1]", "2", 1)); // NOTE: text is integer (lua / php are type-less) fxt.Init_lua_rcvd_rv(); fxt.Test_invoke("2;1"); } private void Exec_gsub_regx_func_0(String text, String regx, String expd) { fxt.Init_lua_module(); - fxt.Init_lua_rcvd(Scrib_lib_ustring.Invk_gsub, Scrib_kv_utl_.base1_many_(text, regx, new Scrib_lua_proc("ignore_key", 1))); + fxt.Init_lua_rcvd(fxt.Core().Lib_ustring(), Scrib_lib_ustring.Invk_gsub, Scrib_kv_utl_.base1_many_(text, regx, new Scrib_lua_proc("ignore_key", 1))); fxt.Init_lua_rcvd_raw("a:3:{s:2:\"op\";s:6:\"return\";s:7:\"nvalues\";i:1;s:6:\"values\";a:1:{i:1;s:1:\"A\";}}"); fxt.Init_lua_rcvd_rv(); fxt.Test_invoke(expd); } private void Exec_gsub_regx_func_1(String text, String regx, String expd) { fxt.Init_lua_module(); - fxt.Init_lua_rcvd(Scrib_lib_ustring.Invk_gsub, Scrib_kv_utl_.base1_many_(text, regx, new Scrib_lua_proc("ignore_key", 1))); + fxt.Init_lua_rcvd(fxt.Core().Lib_ustring(), Scrib_lib_ustring.Invk_gsub, Scrib_kv_utl_.base1_many_(text, regx, new Scrib_lua_proc("ignore_key", 1))); fxt.Init_lua_rcvd_raw("a:3:{s:2:\"op\";s:6:\"return\";s:7:\"nvalues\";i:1;s:6:\"values\";a:1:{i:1;s:1:\"A\";}}"); fxt.Init_lua_rcvd_rv(); fxt.Test_invoke(expd); } private void Exec_gsub_regx_func_2(String text, String regx, String expd) { fxt.Init_lua_module(); - fxt.Init_lua_rcvd(Scrib_lib_ustring.Invk_gsub, Scrib_kv_utl_.base1_many_(text, regx, new Scrib_lua_proc("ignore_key", 1))); + fxt.Init_lua_rcvd(fxt.Core().Lib_ustring(), Scrib_lib_ustring.Invk_gsub, Scrib_kv_utl_.base1_many_(text, regx, new Scrib_lua_proc("ignore_key", 1))); fxt.Init_lua_rcvd_raw("a:3:{s:2:\"op\";s:6:\"return\";s:7:\"nvalues\";i:1;s:6:\"values\";a:1:{i:1;s:1:\"A\";}}"); fxt.Init_lua_rcvd_raw("a:3:{s:2:\"op\";s:6:\"return\";s:7:\"nvalues\";i:1;s:6:\"values\";a:1:{i:1;s:1:\"B\";}}"); fxt.Init_lua_rcvd_rv(); diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase.java b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase.java index 1cd71facb..d01d0c954 100644 --- a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase.java +++ b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase.java @@ -22,16 +22,17 @@ public class Scrib_lib_wikibase implements Scrib_lib { private final Scrib_core core; private Wbase_doc_mgr entity_mgr; private Wbase_entity_accessor entity_accessor; - private WikibaseLanguageIndependentLuaBindings wikibaseLanguageIndependentLuaBindings; + private Wdata_wiki_mgr wdata_mgr; private Scrib_lua_proc notify_page_changed_fnc; public Scrib_lib_wikibase(Scrib_core core) {this.core = core;} + public String Key() {return "mw.wikibase";} public Scrib_lua_mod Mod() {return mod;} private Scrib_lua_mod mod; public Scrib_proc_mgr Procs() {return procs;} private final Scrib_proc_mgr procs = new Scrib_proc_mgr(); public Scrib_lib Init() { procs.Init_by_lib(this, Proc_names); - this.entity_mgr = core.App().Wiki_mgr().Wdata_mgr().Doc_mgr; + this.wdata_mgr = core.App().Wiki_mgr().Wdata_mgr(); + this.entity_mgr = wdata_mgr.Doc_mgr; this.entity_accessor = new Wbase_entity_accessor(entity_mgr); - this.wikibaseLanguageIndependentLuaBindings = new WikibaseLanguageIndependentLuaBindings(entity_mgr); return this; } public Scrib_lib Clone_lib(Scrib_core core) {return new Scrib_lib_wikibase(core);} @@ -275,7 +276,7 @@ public function formatValues( $snaksSerialization ) { public boolean GetLabelByLanguage(Scrib_proc_args args, Scrib_proc_rslt rslt) { byte[] prefixedEntityId = args.Pull_bry(0); byte[] languageCode = args.Pull_bry(1); - return rslt.Init_obj(wikibaseLanguageIndependentLuaBindings.getLabelByLanguage(prefixedEntityId, languageCode)); + return rslt.Init_obj(wdata_mgr.Lua_bindings().getLabelByLanguage(prefixedEntityId, languageCode)); } public boolean GetSiteLinkPageName(Scrib_proc_args args, Scrib_proc_rslt rslt) { Wdata_doc wdoc = Get_wdoc_or_null(args, core, "GetSiteLinkPageName", true); if (wdoc == null) return rslt.Init_ary_empty(); // NOTE: prop should be of form "P123"; do not add "P"; PAGE:no.w:Anne_Enger; DATE:2015-10-27 @@ -293,8 +294,11 @@ public function formatValues( $snaksSerialization ) { return rslt.Init_obj(core.Wiki().Domain_abrv()); // ;siteGlobalID: This site's global ID (e.g. 'itwiki'), as used in the sites table. Default: $wgDBname.; REF:/xtns/Wikibase/docs/options.wiki } public boolean GetSetting(Scrib_proc_args args, Scrib_proc_rslt rslt) { + return Scrib_lib_wikibase.GetSetting(args, rslt, core, wdata_mgr); + } + public static boolean GetSetting(Scrib_proc_args args, Scrib_proc_rslt rslt, Scrib_core core, Wdata_wiki_mgr wdata_mgr) { byte[] key = args.Pull_bry(0); - Object rv = wikibaseLanguageIndependentLuaBindings.getSetting(key); + Object rv = wdata_mgr.Lua_bindings().getSetting(key); if (rv == null) throw Err_.new_("wbase", "getSetting key missing", "key", key, "url", core.Page().Url().To_str()); return rslt.Init_obj(rv); diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase_entity.java b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase_entity.java index d211fea99..bc8940f30 100644 --- a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase_entity.java +++ b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase_entity.java @@ -19,9 +19,18 @@ import gplx.langs.jsons.*; import gplx.xowa.xtns.wbases.core.*; import gplx.xowa.xtns.wbases.claims.*; import gplx.xowa.xtns.wbases.stores.*; import gplx.xowa.xtns.scribunto.procs.*; public class Scrib_lib_wikibase_entity implements Scrib_lib { // REF.MW:https://github.com/wikimedia/mediawiki-extensions-Wikibase/blob/master/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseEntityLibrary.php - public Scrib_lib_wikibase_entity(Scrib_core core) {this.core = core;} private Scrib_core core; + private Scrib_core core; + private Wdata_wiki_mgr wdata_mgr; + public Scrib_lib_wikibase_entity(Scrib_core core) { + this.core = core; + } + public String Key() {return "mw.wikibase.entity";} public Scrib_lua_mod Mod() {return mod;} private Scrib_lua_mod mod; - public Scrib_lib Init() {procs.Init_by_lib(this, Proc__names); return this;} + public Scrib_lib Init() { + procs.Init_by_lib(this, Proc__names); + this.wdata_mgr = core.App().Wiki_mgr().Wdata_mgr(); + return this; + } public Scrib_lib Clone_lib(Scrib_core core) {return new Scrib_lib_wikibase_entity(core);} public Scrib_lua_mod Register(Scrib_core core, Io_url script_dir) { Init(); @@ -103,13 +112,7 @@ public class Scrib_lib_wikibase_entity implements Scrib_lib { // REF.MW:https:// return rslt.Init_null(); } public boolean GetSetting(Scrib_proc_args args, Scrib_proc_rslt rslt) { - String key = args.Cast_str_or(0, ""); - if (String_.Eq(key, "fineGrainedLuaTracking")) {// REF.MW: https://gerrit.wikimedia.org/r/#/c/operations/mediawiki-config/+/412664/3/wmf-config/InitialiseSettings.php - return rslt.Init_obj(false); - } - else { - throw Err_.new_unimplemented(); - } + return Scrib_lib_wikibase.GetSetting(args, rslt, core, wdata_mgr); } public boolean IncrementStatsKey(Scrib_proc_args args, Scrib_proc_rslt rslt) { return rslt.Init_null(); diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/procs/Scrib_proc.java b/400_xowa/src/gplx/xowa/xtns/scribunto/procs/Scrib_proc.java index 283449e9d..0de0a1098 100644 --- a/400_xowa/src/gplx/xowa/xtns/scribunto/procs/Scrib_proc.java +++ b/400_xowa/src/gplx/xowa/xtns/scribunto/procs/Scrib_proc.java @@ -20,11 +20,13 @@ public class Scrib_proc { public Scrib_proc(Scrib_lib lib, String proc_name, int proc_id) { this.lib = lib; this.proc_name = proc_name; - this.proc_key = Scrib_core.Key_mw_interface + "-" + proc_name; + this.proc_key = Build_key(lib, proc_name); this.proc_id = proc_id; } public String Proc_name() {return proc_name;} private String proc_name; public int Proc_id() {return proc_id;} private int proc_id; public String Proc_key() {return proc_key;} private String proc_key; public boolean Proc_exec(Scrib_proc_args args, Scrib_proc_rslt rslt) {return lib.Procs_exec(proc_id, args, rslt);} + + public static String Build_key(Scrib_lib lib, String proc_name) {return lib.Key() + "|" + proc_name;} } diff --git a/400_xowa/src/gplx/xowa/xtns/titleBlacklists/Blacklist_scrib_lib.java b/400_xowa/src/gplx/xowa/xtns/titleBlacklists/Blacklist_scrib_lib.java index d1a9038b1..2c2636921 100644 --- a/400_xowa/src/gplx/xowa/xtns/titleBlacklists/Blacklist_scrib_lib.java +++ b/400_xowa/src/gplx/xowa/xtns/titleBlacklists/Blacklist_scrib_lib.java @@ -16,6 +16,7 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt package gplx.xowa.xtns.titleBlacklists; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.scribunto.*; import gplx.xowa.xtns.scribunto.libs.*; import gplx.xowa.xtns.scribunto.procs.*; public class Blacklist_scrib_lib implements Scrib_lib { + public String Key() {return "mw.ext.TitleBlacklist";} public Scrib_lua_mod Mod() {return mod;} private Scrib_lua_mod mod; public Scrib_lib Init() {procs.Init_by_lib(this, Proc_names); return this;} public Scrib_lib Clone_lib(Scrib_core core) {return new Blacklist_scrib_lib();} diff --git a/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_wiki_mgr.java b/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_wiki_mgr.java index f68804308..d90183e9b 100644 --- a/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_wiki_mgr.java +++ b/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_wiki_mgr.java @@ -18,15 +18,17 @@ import gplx.core.primitives.*; import gplx.langs.jsons.*; import gplx.xowa.wikis.nss.*; import gplx.xowa.langs.*; +import gplx.xowa.parsers.*; import gplx.xowa.wikis.domains.*; import gplx.xowa.htmls.*; import gplx.xowa.parsers.logs.*; import gplx.xowa.apps.apis.xowa.xtns.*; import gplx.xowa.apps.apis.xowa.html.*; import gplx.xowa.users.*; import gplx.xowa.xtns.wbases.core.*; import gplx.xowa.xtns.wbases.claims.*; import gplx.xowa.xtns.wbases.claims.enums.*; import gplx.xowa.xtns.wbases.claims.itms.*; import gplx.xowa.xtns.wbases.parsers.*; import gplx.xowa.xtns.wbases.pfuncs.*; import gplx.xowa.xtns.wbases.hwtrs.*; import gplx.xowa.xtns.wbases.stores.*; -import gplx.xowa.parsers.*; +import gplx.xowa.xtns.wbases.mediawiki.client.includes.dataAccess.scribunto.*; public class Wdata_wiki_mgr implements Gfo_evt_itm, Gfo_invk { private final Xoae_app app; private final Wdata_prop_val_visitor prop_val_visitor; private final Wdata_doc_parser wdoc_parser_v1 = new Wdata_doc_parser_v1(), wdoc_parser_v2 = new Wdata_doc_parser_v2(); private final Object thread_lock = new Object(); - private final Bry_bfr tmp_bfr = Bry_bfr_.New_w_size(32); + private final Bry_bfr tmp_bfr = Bry_bfr_.New_w_size(32); + private final WikibaseLanguageIndependentLuaBindings lua_bindings; public Wdata_wiki_mgr(Xoae_app app) { this.app = app; this.evt_mgr = new Gfo_evt_mgr(this); @@ -35,6 +37,7 @@ public class Wdata_wiki_mgr implements Gfo_evt_itm, Gfo_invk { this.Doc_mgr = new Wbase_doc_mgr(this, this.Qid_mgr); this.prop_mgr = new Wbase_prop_mgr(Wbase_prop_mgr_loader_.New_db(this)); this.prop_val_visitor = new Wdata_prop_val_visitor(app, this); + this.lua_bindings = new WikibaseLanguageIndependentLuaBindings(Doc_mgr); this.Enabled_(true); } public Gfo_evt_mgr Evt_mgr() {return evt_mgr;} private final Gfo_evt_mgr evt_mgr; @@ -42,6 +45,7 @@ public class Wdata_wiki_mgr implements Gfo_evt_itm, Gfo_invk { public final Wbase_pid_mgr Pid_mgr; public final Wbase_doc_mgr Doc_mgr; public Wbase_prop_mgr Prop_mgr() {return prop_mgr;} private final Wbase_prop_mgr prop_mgr; + public WikibaseLanguageIndependentLuaBindings Lua_bindings() {return lua_bindings;} public boolean Enabled() {return enabled;} private boolean enabled; public void Enabled_(boolean v) { this.enabled = v; diff --git a/400_xowa/src/gplx/xowa/xtns/wbases/mediawiki/client/config/WikibaseClientDefault.java b/400_xowa/src/gplx/xowa/xtns/wbases/mediawiki/client/config/WikibaseClientDefault.java index 54b129ef5..b4e553fbc 100644 --- a/400_xowa/src/gplx/xowa/xtns/wbases/mediawiki/client/config/WikibaseClientDefault.java +++ b/400_xowa/src/gplx/xowa/xtns/wbases/mediawiki/client/config/WikibaseClientDefault.java @@ -41,7 +41,7 @@ public class WikibaseClientDefault { rv.addSetting("entityAccessLimit", 250); rv.addSetting("allowDataAccessInUserLanguage", false); rv.addSetting("sharedCacheDuration", 60 * 60); - rv.addSetting("fineGrainedLuaTracking", true); + rv.addSetting("fineGrainedLuaTracking", true); // REF.MW: https://gerrit.wikimedia.org/r/#/c/operations/mediawiki-config/+/412664/3/wmf-config/InitialiseSettings.php return rv; } }