Wikibase: Change siteGlobalID to wiki-specific abbreviation, not wikidatawiki [#614]

pull/620/head
gnosygnu 5 years ago
parent c307946bd2
commit 59985227fb

@ -23,7 +23,7 @@ public class WikibaseClientDefault {
private void addSetting(String key, Object val) {
settingCache.Add(Bry_.new_u8(key), val);
}
public static WikibaseClientDefault New() {
public static WikibaseClientDefault New(byte[] wiki_abrv_wm) {
WikibaseClientDefault rv = new WikibaseClientDefault();
rv.addSetting("injectRecentChanges", true);
rv.addSetting("showExternalRecentChanges", true);
@ -42,7 +42,7 @@ public class WikibaseClientDefault {
rv.addSetting("allowDataAccessInUserLanguage", false);
rv.addSetting("sharedCacheDuration", 60 * 60);
rv.addSetting("fineGrainedLuaTracking", false); // PERF: setting deliberately to false else every call to entity.sitelinks['frwiki']); will generate another round-trip to Scrib; SEE:mw.wikibase.lua; REF.MW: https://gerrit.wikimedia.org/r/#/c/operations/mediawiki-config/+/412664/3/wmf-config/InitialiseSettings.php
rv.addSetting("siteGlobalID", "wikidatawiki");
rv.addSetting("siteGlobalID", String_.new_u8(wiki_abrv_wm));
return rv;
}
}

@ -18,9 +18,10 @@ import gplx.xowa.xtns.wbases.*; import gplx.xowa.xtns.wbases.claims.*; import gp
import gplx.xowa.mediawiki.extensions.Wikibase.lib.includes.Store.*; import gplx.xowa.mediawiki.extensions.Wikibase.client.config.*;
public class WikibaseLanguageIndependentLuaBindings {
private final EntityRetrievingTermLookup termLookup;
private final WikibaseClientDefault settings = WikibaseClientDefault.New();
public WikibaseLanguageIndependentLuaBindings(Wbase_doc_mgr entity_mgr) {
private final WikibaseClientDefault settings;
public WikibaseLanguageIndependentLuaBindings(Wbase_doc_mgr entity_mgr, byte[] wiki_abrv_wm) {
this.termLookup = new EntityRetrievingTermLookup(entity_mgr);
this.settings = WikibaseClientDefault.New(wiki_abrv_wm);
}
public byte[] getLabelByLanguage_or_null(byte[] prefixedEntityId, byte[] languageCode) {
return termLookup.getLabel_or_null(prefixedEntityId, languageCode);

@ -117,7 +117,9 @@ public class Xow_abrv_wm_ {
}
public static byte[] To_abrv(Xow_domain_itm domain_itm) {
int tid = domain_itm.Domain_type_id();
byte[] suffix = (byte[])int_hash.Get_by(Int_obj_ref.New(tid)); if (suffix == null) return null;
byte[] suffix = (byte[])int_hash.Get_by(Int_obj_ref.New(tid));
if (suffix == null) // Tid__home and Tid__other (wikia)
return domain_itm.Domain_bry(); // return domain; needed for WikibaseLanguageIndependentLuaBindings; DATE:2019-11-23
switch (tid) {
case Xow_domain_tid_.Tid__commons:
case Xow_domain_tid_.Tid__species:

@ -290,7 +290,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);
byte[] label = wdata_mgr.Lua_bindings().getLabelByLanguage_or_null(prefixedEntityId, languageCode);
byte[] label = core.Wiki().Xtn_mgr().Xtn_wikibase().Lua_bindings().getLabelByLanguage_or_null(prefixedEntityId, languageCode);
return label == null ? rslt.Init_str_empty() : rslt.Init_obj(label);
}
public boolean GetSiteLinkPageName(Scrib_proc_args args, Scrib_proc_rslt rslt) {
@ -319,7 +319,7 @@ public function formatValues( $snaksSerialization ) {
}
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 = wdata_mgr.Lua_bindings().getSetting(key);
Object rv = core.Wiki().Xtn_mgr().Xtn_wikibase().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);
@ -333,13 +333,13 @@ public function formatValues( $snaksSerialization ) {
public boolean GetEntityModuleName(Scrib_proc_args args, Scrib_proc_rslt rslt) {
String moduleName = "mw.wikibase.entity"; // FOOTNOTE:GetEntityModuleName
// String prefixedEntityId = Get_xid_from_args(args);
try {
// try {
// $type = $entityId->getEntityType();
// $moduleName = $this->getLuaEntityModules()[$type] ?? 'mw.wikibase.entity';
}
catch (Exception exc) {
moduleName = "mw.wikibase.entity";
}
// }
// catch (Exception exc) {
// moduleName = "mw.wikibase.entity";
// }
return rslt.Init_obj(moduleName);
}
private byte[] Get_xid_from_args(Scrib_proc_args args) {

@ -25,9 +25,6 @@ public class Basic__tst {
wdata_fxt.Init(fxt.Parser_fxt(), false);
wdata_fxt.Init_lang_fallbacks("zh-hant", "zh-hk");
}
// @Test public void GetGlobalSiteId() {
// fxt.Test_scrib_proc_str(lib, Scrib_lib_wikibase.Invk_getGlobalSiteId, Object_.Ary_empty, "enwiki");
// }
@Test public void IsValidEntityId() {
IsValidEntityIdCheck(Bool_.Y, "P1");
IsValidEntityIdCheck(Bool_.Y, "P123");
@ -196,7 +193,7 @@ public class Basic__tst {
fxt.Test_scrib_proc_obj(lib, Scrib_lib_wikibase.Invk_getSetting, Object_.Ary("allowArbitraryDataAccess"), true); // PAGE:en.w:Beccles DATE:2018-06-27
}
@Test public void GetSetting__siteGlobalID() {
fxt.Test_scrib_proc_obj(lib, Scrib_lib_wikibase.Invk_getSetting, Object_.Ary("siteGlobalID"), "wikidatawiki");
fxt.Test_scrib_proc_obj(lib, Scrib_lib_wikibase.Invk_getSetting, Object_.Ary("siteGlobalID"), "enwiki");
}
@Test public void IncrementStatsKey() {
fxt.Test_scrib_proc_obj(lib, Scrib_lib_wikibase.Invk_incrementStatsKey, Object_.Ary("wikibase.client.scribunto.wikibase.getEntityIdForCurrentPage.call"), null);

@ -28,7 +28,6 @@ public class Wdata_wiki_mgr implements Gfo_evt_itm, Gfo_invk {
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);
@ -37,7 +36,6 @@ 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;
@ -45,7 +43,6 @@ 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;

@ -17,13 +17,16 @@ package gplx.xowa.xtns.wbases; import gplx.*; import gplx.xowa.*; import gplx.xo
import gplx.langs.htmls.*;
import gplx.xowa.langs.*; import gplx.xowa.langs.bldrs.*;
import gplx.xowa.wikis.*;
import gplx.xowa.mediawiki.extensions.Wikibase.client.includes.dataAccess.scribunto.*;
public class Wdata_xtn_mgr extends Xox_mgr_base {
private static final String XTN_KEY_STR = "Wikibase"; public static final byte[] XTN_KEY = Bry_.new_a7(XTN_KEY_STR);
private WikibaseLanguageIndependentLuaBindings lua_bindings;
public WikibaseLanguageIndependentLuaBindings Lua_bindings() {return lua_bindings;}
@Override public boolean Enabled_default() {return false;}
@Override public byte[] Xtn_key() {return XTN_KEY;}
@Override public Xox_mgr Xtn_clone_new() {return new Wdata_xtn_mgr();}
@Override public void Xtn_init_by_wiki(Xowe_wiki wiki) {
if (!Enabled()) return;
// if (!Enabled()) return; // NOTE: for now, always enable; may change to selectively enable by wiki later; DATE:2019-11-23
this.lua_bindings = new WikibaseLanguageIndependentLuaBindings(wiki.Appe().Wiki_mgr().Wdata_mgr().Doc_mgr, wiki.Domain_itm().Abrv_wm());
}
public void Load_msgs(Xowe_wiki wdata_wiki, Xol_lang_itm lang) {
wdata_wiki.Msg_mgr().Lang_(lang);
@ -35,4 +38,5 @@ public class Wdata_xtn_mgr extends Xox_mgr_base {
Io_url url = app.Fsys_mgr().Bin_xtns_dir().GenSubFil_nest(nest_paths);
Xob_i18n_parser.Load_msgs(false, wiki.Lang(), url);
}
private static final String XTN_KEY_STR = "Wikibase"; public static final byte[] XTN_KEY = Bry_.new_a7(XTN_KEY_STR);
}

Loading…
Cancel
Save