mirror of
https://github.com/gnosygnu/xowa.git
synced 2024-10-27 20:34:16 +00:00
Wikibase: Add namespacing to Scribunto libraries [#551]
This commit is contained in:
parent
2598dee844
commit
9bc0c2c75d
@ -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:
|
||||
|
@ -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:
|
||||
|
@ -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:
|
||||
|
@ -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
|
||||
|
@ -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]}}")
|
||||
|
@ -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\";");
|
||||
|
@ -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);
|
||||
|
@ -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);}
|
||||
|
@ -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);}
|
||||
|
@ -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);}
|
||||
|
@ -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;}
|
||||
|
@ -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();
|
||||
|
@ -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);}
|
||||
|
@ -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);}
|
||||
|
@ -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);}
|
||||
|
@ -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);}
|
||||
|
@ -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;
|
||||
|
@ -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();
|
||||
|
@ -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. <code>'itwiki'</code>), as used in the sites table. Default: <code>$wgDBname</code>.; 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);
|
||||
|
@ -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();
|
||||
|
@ -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;}
|
||||
}
|
||||
|
@ -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();}
|
||||
|
@ -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 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;
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user