mirror of
https://github.com/gnosygnu/xowa.git
synced 2024-10-27 20:34:16 +00:00
Wikibase: Use 2nd argument to GetSiteLinkPageName for wiki name [#665]
This commit is contained in:
parent
bae9ba9e7a
commit
3355d03c44
@ -382,12 +382,20 @@ public function formatValues( $snaksSerialization ) {
|
||||
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) {
|
||||
public boolean GetSiteLinkPageName(Scrib_proc_args args, Scrib_proc_rslt rslt) {
|
||||
// get wdoc from args; EX: "q2"
|
||||
Wdata_doc wdoc = Get_wdoc_or_null(args, core, "GetSiteLinkPageName", true); // NOTE: prop should be of form "P123"; do not add "P"; PAGE:no.w:Anne_Enger; DATE:2015-10-27
|
||||
if (wdoc == null) return rslt.Init_ary_empty();
|
||||
|
||||
Xow_domain_itm domain_itm = core.Wiki().Domain_itm();
|
||||
Wdata_sitelink_itm itm = wdoc.Get_slink_itm_or_null(domain_itm.Abrv_wm());
|
||||
// get wiki from args (EX: "enwiki"), or default to current wiki; ISSUE#:665; PAGE:commons.wikimedia.org/wiki/Category:Paddy_Ashdown; DATE:2020-02-19
|
||||
byte[] wiki_bry = args.Cast_bry_or_null(1);
|
||||
if (wiki_bry == null) {
|
||||
Xow_domain_itm domain_itm = core.Wiki().Domain_itm();
|
||||
wiki_bry = domain_itm.Abrv_wm();
|
||||
}
|
||||
|
||||
// get sitelink for wiki from wdoc
|
||||
Wdata_sitelink_itm itm = wdoc.Get_slink_itm_or_null(wiki_bry);
|
||||
return itm == null ? rslt.Init_ary_empty() : rslt.Init_many_objs(itm.Name(), itm.Lang());
|
||||
}
|
||||
public boolean GetDescription(Scrib_proc_args args, Scrib_proc_rslt rslt) {
|
||||
|
@ -201,6 +201,18 @@ public class Basic__tst {
|
||||
@Test public void GetEntityModuleName() {
|
||||
fxt.Test_scrib_proc_obj(lib, Scrib_lib_wikibase.Invk_getEntityModuleName, Object_.Ary("Q123"), "mw.wikibase.entity");
|
||||
}
|
||||
@Test public void GetSiteLinkPageName() {
|
||||
wdata_fxt.Init__docs__add(wdata_fxt.Wdoc_bldr("q2").Add_sitelink("enwiki", "Test_page").Xto_wdoc());
|
||||
fxt.Test_scrib_proc_str(lib, Scrib_lib_wikibase.Invk_getSiteLinkPageName, Object_.Ary("q2"), "Test_page");
|
||||
}
|
||||
@Test public void GetSiteLinkPageName_wiki() {// ISSUE#:665; PAGE:commons.wikimedia.org/wiki/Category:Paddy_Ashdown; DATE:2020-02-19
|
||||
wdata_fxt.Init_xwikis_add("frwiki");
|
||||
wdata_fxt.Init__docs__add(wdata_fxt.Wdoc_bldr("q2")
|
||||
.Add_sitelink("enwiki", "q2_enwiki")
|
||||
.Add_sitelink("frwiki", "q2_frwiki")
|
||||
.Xto_wdoc());
|
||||
fxt.Test_scrib_proc_str(lib, Scrib_lib_wikibase.Invk_getSiteLinkPageName, Object_.Ary("q2", "frwiki"), "q2_frwiki"); // fails if q2_enwiki
|
||||
}
|
||||
}
|
||||
class Wbase_snak_utl_ {
|
||||
public static Keyval[] Get_snaks_ary(Wdata_wiki_mgr_fxt wdata_fxt, Wbase_claim_base... ary) {
|
||||
|
Loading…
Reference in New Issue
Block a user