mirror of
https://github.com/gnosygnu/xowa.git
synced 2026-03-02 03:49:30 +00:00
'v3.3.4.1'
This commit is contained in:
@@ -19,7 +19,7 @@ package gplx.xowa.wikis.xwikis; import gplx.*; import gplx.xowa.*; import gplx.x
|
||||
import gplx.core.net.*; import gplx.core.brys.fmtrs.*;
|
||||
import gplx.xowa.langs.*; import gplx.xowa.wikis.domains.*;
|
||||
public class Xow_xwiki_itm implements gplx.CompareAble {
|
||||
private final boolean show_in_sitelangs_base;
|
||||
private final boolean show_in_sitelangs_base;
|
||||
public Xow_xwiki_itm(byte[] key_bry, byte[] url_fmt, int lang_id, int domain_tid, byte[] domain_bry, byte[] domain_name, byte[] abrv_wm) {
|
||||
this.key_bry = key_bry; this.key_str = String_.new_u8(key_bry);
|
||||
this.url_fmt = url_fmt; this.lang_id = lang_id;
|
||||
@@ -27,15 +27,15 @@ public class Xow_xwiki_itm implements gplx.CompareAble {
|
||||
this.domain_tid = domain_tid; this.domain_bry = domain_bry; this.domain_name = domain_name; this.abrv_wm = abrv_wm;
|
||||
this.show_in_sitelangs_base = Calc_show_in_sitelangs(key_bry, url_fmt, lang_id, domain_tid, domain_bry);
|
||||
}
|
||||
public byte[] Key_bry() {return key_bry;} private final byte[] key_bry; // EX: commons
|
||||
public String Key_str() {return key_str;} private final String key_str;
|
||||
public byte[] Url_fmt() {return url_fmt;} private final byte[] url_fmt; // EX: //commons.wikimedia.org/wiki/Category:$1
|
||||
public Bry_fmtr Url_fmtr(){return url_fmtr;} private final Bry_fmtr url_fmtr;
|
||||
public int Lang_id() {return lang_id;} private final int lang_id; // EX: Id__unknown
|
||||
public int Domain_tid() {return domain_tid;} private final int domain_tid; // EX: Tid_int_commons
|
||||
public byte[] Domain_bry() {return domain_bry;} private final byte[] domain_bry; // EX: commons.wikimedia.org
|
||||
public byte[] Domain_name() {return domain_name;} private final byte[] domain_name; // EX: Wikimedia Commons
|
||||
public byte[] Abrv_wm() {return abrv_wm;} private final byte[] abrv_wm; // EX: enwiki; needed for sitelinks
|
||||
public byte[] Key_bry() {return key_bry;} private final byte[] key_bry; // EX: commons
|
||||
public String Key_str() {return key_str;} private final String key_str;
|
||||
public byte[] Url_fmt() {return url_fmt;} private final byte[] url_fmt; // EX: //commons.wikimedia.org/wiki/Category:$1
|
||||
public Bry_fmtr Url_fmtr(){return url_fmtr;} private final Bry_fmtr url_fmtr;
|
||||
public int Lang_id() {return lang_id;} private final int lang_id; // EX: Id__unknown
|
||||
public int Domain_tid() {return domain_tid;} private final int domain_tid; // EX: Tid_int_commons
|
||||
public byte[] Domain_bry() {return domain_bry;} private final byte[] domain_bry; // EX: commons.wikimedia.org
|
||||
public byte[] Domain_name() {return domain_name;} private final byte[] domain_name; // EX: Wikimedia Commons
|
||||
public byte[] Abrv_wm() {return abrv_wm;} private final byte[] abrv_wm; // EX: enwiki; needed for sitelinks
|
||||
public boolean Offline() {return offline;} public Xow_xwiki_itm Offline_(boolean v) {offline = v; return this;} private boolean offline;
|
||||
public int compareTo(Object obj) {Xow_xwiki_itm comp = (Xow_xwiki_itm)obj; return Bry_.Compare(key_bry, comp.key_bry);}
|
||||
public boolean Show_in_sitelangs(byte[] cur_lang_key) {
|
||||
|
||||
@@ -71,7 +71,7 @@ public class Xow_xwiki_mgr {
|
||||
}
|
||||
public void Add_itm(Xow_xwiki_itm itm) {
|
||||
byte[] key_bry = itm.Key_bry();
|
||||
if (wiki.Ns_mgr().Names_get_or_null(key_bry) != null) return;// NOTE: do not add xwiki if key matches namespace; EX: en.wiktionary.org has ns of "Wiktionary"; do not add key of "wiktionary"; note that wikipedia does have an key to wiktionary
|
||||
if (wiki.Ns_mgr().Names_get_or_null(key_bry) != null) return;// NOTE: do not add xwiki if key matches Srch_rslt_cbk; EX: en.wiktionary.org has ns of "Wiktionary"; do not add key of "wiktionary"; note that wikipedia does have an key to wiktionary
|
||||
list.Add_if_dupe_use_nth(key_bry, itm); // NOTE: some wikis like commons will be added multiple times under different aliases (commons, c, commons.wikimedia.org); need to check domain and add only once DATE:2014-11-07
|
||||
hash.Add_if_dupe_use_nth(key_bry, itm);
|
||||
}
|
||||
|
||||
@@ -23,8 +23,8 @@ import gplx.xowa.wikis.domains.*; import gplx.xowa.wikis.xwikis.bldrs.*;
|
||||
public class Xow_xwiki_itm_parser extends Dsv_wkr_base {
|
||||
private Xow_domain_itm owner_domain_itm;
|
||||
private int cur_tid = -1; private byte[] cur_fld1, cur_fld2, cur_fld3;
|
||||
private final Gfo_url_parser url_parser = new Gfo_url_parser(); private final Gfo_url url = new Gfo_url();
|
||||
public Ordered_hash Xwiki_list() {return xwiki_list;} private final Ordered_hash xwiki_list = Ordered_hash_.New();
|
||||
private final Gfo_url_parser url_parser = new Gfo_url_parser(); private final Gfo_url url = new Gfo_url();
|
||||
public Ordered_hash Xwiki_list() {return xwiki_list;} private final Ordered_hash xwiki_list = Ordered_hash_.New();
|
||||
@Override public Dsv_fld_parser[] Fld_parsers() {return new Dsv_fld_parser[] {Dsv_fld_parser_.Bry_parser, Dsv_fld_parser_.Bry_parser, Dsv_fld_parser_.Bry_parser, Dsv_fld_parser_.Bry_parser};}
|
||||
@Override public boolean Write_bry(Dsv_tbl_parser parser, int fld_idx, byte[] src, int bgn, int end) {
|
||||
switch (fld_idx) {
|
||||
@@ -52,10 +52,10 @@ public class Xow_xwiki_itm_parser extends Dsv_wkr_base {
|
||||
domain_bry = cur_fld2;
|
||||
break;
|
||||
case Tid__wm_peer: // EX: "2|wikt|wikipedia"
|
||||
domain_bry = Bry_.Add(owner_domain_itm.Lang_actl_key(), Byte_ascii.Dot_bry, cur_fld2, gplx.xowa.apps.urls.Xoa_url_parser.Bry_dot_org);
|
||||
domain_bry = Bry_.Add(owner_domain_itm.Lang_actl_key(), Byte_ascii.Dot_bry, cur_fld2, gplx.xowa.apps.urls.Xow_url_parser.Bry_dot_org);
|
||||
break;
|
||||
case Tid__wm_lang: // EX: "3|en;english|en|English"
|
||||
domain_bry = Bry_.Add(cur_fld2, Byte_ascii.Dot_bry, owner_domain_itm.Domain_type().Key_bry(), gplx.xowa.apps.urls.Xoa_url_parser.Bry_dot_org);
|
||||
domain_bry = Bry_.Add(cur_fld2, Byte_ascii.Dot_bry, owner_domain_itm.Domain_type().Key_bry(), gplx.xowa.apps.urls.Xow_url_parser.Bry_dot_org);
|
||||
break;
|
||||
default: throw Err_.new_unhandled(cur_tid);
|
||||
}
|
||||
|
||||
@@ -43,7 +43,7 @@ public class Xow_xwiki_mgr_tst {
|
||||
, "https://en.wiktionary.org/wiki/~{0}")
|
||||
, fxt.xwiki_("s", "en.wikisource.org", "https://en.wikisource.org/wiki/~{0}"));
|
||||
}
|
||||
@Test public void Add_bulk_peers_skip_self() { // PURPOSE: skip "wikipedia" as alias since "Wikipedia" is namespace; needed for titles of "Wikipedia:Main page" (which would otherwise try to go to page "Main Page" in the main names of xwiki "Wikipedia"
|
||||
@Test public void Add_bulk_peers_skip_self() { // PURPOSE: skip "wikipedia" as alias since "Wikipedia" is Srch_rslt_cbk; needed for titles of "Wikipedia:Main page" (which would otherwise try to go to page "Main Page" in the main names of xwiki "Wikipedia"
|
||||
fxt.Init_peers();
|
||||
fxt.Test_add_bulk_peers
|
||||
( fxt.xwiki_null_("wikipedia")
|
||||
@@ -66,8 +66,8 @@ class Xow_xwiki_mgr_fxt {
|
||||
Xow_xwiki_mgr xwiki_mgr; Xoa_lang_mgr lang_mgr; String_bldr sb = String_bldr_.new_(); Xoae_app app; Xowe_wiki wiki;
|
||||
public void Clear() {
|
||||
if (xwiki_mgr == null) {
|
||||
app = Xoa_app_fxt.app_();
|
||||
wiki = Xoa_app_fxt.wiki_tst_(app);
|
||||
app = Xoa_app_fxt.Make__app__edit();
|
||||
wiki = Xoa_app_fxt.Make__wiki__edit(app);
|
||||
xwiki_mgr = wiki.Xwiki_mgr();
|
||||
lang_mgr = app.Lang_mgr();
|
||||
}
|
||||
|
||||
@@ -24,7 +24,6 @@ public class Xoa_sitelink_div_wtr {
|
||||
private final Xoa_sitelink_grp_wtr grp_wtr = new Xoa_sitelink_grp_wtr();
|
||||
public void Write(Bry_bfr bfr, Xowe_wiki wiki, Xoa_sitelink_mgr mgr, List_adp slink_list, byte[] qid) {
|
||||
Xoa_sitelink_grp_mgr grp_mgr = mgr.Grp_mgr(); Xoa_sitelink_itm_mgr itm_mgr = mgr.Itm_mgr();
|
||||
|
||||
// reset grps
|
||||
grp_wtr.Init_by_app(wiki.App());
|
||||
int grp_len = grp_mgr.Len();
|
||||
@@ -32,7 +31,6 @@ public class Xoa_sitelink_div_wtr {
|
||||
Xoa_sitelink_grp grp = grp_mgr.Get_at(i);
|
||||
grp.Reset();
|
||||
}
|
||||
|
||||
// add itms to each grp
|
||||
int slink_len = slink_list.Count();
|
||||
for (int i = 0; i < slink_len; i++) {
|
||||
@@ -51,7 +49,6 @@ public class Xoa_sitelink_div_wtr {
|
||||
}
|
||||
itm.Init_by_page(slink.Domain_info(), ttl_bry, ttl_is_empty, slink.Badges());
|
||||
}
|
||||
|
||||
// write html
|
||||
Xoapi_toggle_itm toggle_itm = wiki.Appe().Api_root().Html().Page().Toggle_mgr().Get_or_new("wikidata-langs");
|
||||
toggle_itm.Init(wiki.Msg_mgr().Val_by_id(Xol_msg_itm_.Id_page_lang_header));
|
||||
|
||||
@@ -19,8 +19,8 @@ package gplx.xowa.wikis.xwikis.sitelinks.htmls; import gplx.*; import gplx.xowa.
|
||||
import gplx.xowa.langs.*; import gplx.xowa.parsers.*;
|
||||
class Xoa_sitelink_div_wtr_fxt {
|
||||
public void Clear() {
|
||||
app = Xoa_app_fxt.app_();
|
||||
wiki = Xoa_app_fxt.wiki_tst_(app);
|
||||
app = Xoa_app_fxt.Make__app__edit();
|
||||
wiki = Xoa_app_fxt.Make__wiki__edit(app);
|
||||
Init_langs(wiki);
|
||||
}
|
||||
public static void Init_langs(Xowe_wiki wiki) {
|
||||
|
||||
Reference in New Issue
Block a user