mirror of
https://github.com/gnosygnu/xowa.git
synced 2026-03-02 03:49:30 +00:00
'v3.4.3.1'
This commit is contained in:
@@ -20,6 +20,8 @@ import gplx.xowa.parsers.lnkis.cfgs.*;
|
||||
public class Xowc_parser implements GfoInvkAble {
|
||||
public Xowc_parser(Xowe_wiki wiki) {
|
||||
lnki_cfg = new Xoc_lnki_cfg(wiki);
|
||||
if (wiki.Domain_tid() == gplx.xowa.wikis.domains.Xow_domain_tid_.Int__home)
|
||||
display_title_restrict = false;
|
||||
}
|
||||
public Xoc_lnki_cfg Lnki_cfg() {return lnki_cfg;} private Xoc_lnki_cfg lnki_cfg;
|
||||
public Xowc_xtns Xtns() {return xtns;} private Xowc_xtns xtns = new Xowc_xtns();
|
||||
|
||||
@@ -42,7 +42,10 @@ public class Xocfg_bnd_mgr implements GfoInvkAble, Gfo_sort_able {
|
||||
private Xocfg_bnd_itm_srl Init(String key) {return new Xocfg_bnd_itm_srl(app, key);}
|
||||
public Xocfg_bnd_itm Get_at(int i) {return (Xocfg_bnd_itm)regy.Get_at(i);}
|
||||
public int Len() {return regy.Count();}
|
||||
public void Sort(gplx.core.lists.ComparerAble comparer) {regy.Sort_by(comparer);}
|
||||
public void Sort(gplx.core.lists.ComparerAble comparer) {
|
||||
if (regy == null) Init(); // NOTE: null when called during html.dump_to_file for home/wiki/Options/Shortcuts; DATE:2016-04-12
|
||||
regy.Sort_by(comparer);
|
||||
}
|
||||
private void Set_bulk(byte[] src) {
|
||||
try {
|
||||
bnd_mgr_srl.Load_by_bry(src);
|
||||
|
||||
@@ -35,7 +35,7 @@ class Xoa_site_cfg_loader__db implements Xoa_site_cfg_loader {
|
||||
public void Save_bry(int loader_tid, String db_key, byte[] val) {
|
||||
byte[] meta = Bry_.new_a7(Bld_meta(loader_tid));
|
||||
byte[] data = Bry_.Len_eq_0(val) ? meta : Bry_.Add(meta, Byte_ascii.Nl_bry, val);
|
||||
cfg_tbl.Assert_bry(Grp__xowa_wm_api, db_key, data);
|
||||
cfg_tbl.Upsert_bry(Grp__xowa_wm_api, db_key, data);
|
||||
}
|
||||
public static String Bld_meta(int loader_tid) {
|
||||
return String_.Format("//#xowa|{0}|{1}|{2}", Xoa_app_.Version, Xoa_site_cfg_loader_.Get_key(loader_tid), DateAdp_.Now().XtoUtc().XtoStr_fmt_yyyyMMdd_HHmmss());
|
||||
|
||||
@@ -20,7 +20,7 @@ import gplx.core.net.*; import gplx.xowa.bldrs.wms.*;
|
||||
import gplx.langs.jsons.*;
|
||||
import gplx.xowa.wikis.domains.*;
|
||||
public class Xoa_site_cfg_loader__inet implements Xoa_site_cfg_loader {
|
||||
private final Gfo_inet_conn inet_conn; private final Json_parser json_parser;
|
||||
private final Gfo_inet_conn inet_conn; private final Json_parser json_parser;
|
||||
private String api_url; private boolean call_api = true; private Json_doc jdoc;
|
||||
public Xoa_site_cfg_loader__inet(Gfo_inet_conn inet_conn, Json_parser json_parser) {this.inet_conn = inet_conn; this.json_parser = json_parser;}
|
||||
public int Tid() {return Xoa_site_cfg_loader_.Tid__inet;}
|
||||
@@ -47,17 +47,16 @@ public class Xoa_site_cfg_loader__inet implements Xoa_site_cfg_loader {
|
||||
int len = itm_ary.length;
|
||||
for (int i = 0; i < len; ++i) {
|
||||
Xoa_site_cfg_itm__base itm = itm_ary[i];
|
||||
byte[] itm_key = itm.Key_bry();
|
||||
if (db_hash.Has(itm_key)) continue;
|
||||
// if (db_hash.Has(itm_key)) continue; // TOMBSTONE: always add itm to url, even if in db; note that fallback gets saved to db; DATE:2016-04-13
|
||||
if (first)
|
||||
first = false;
|
||||
else
|
||||
bfr.Add_byte_pipe();
|
||||
bfr.Add(itm.Key_bry());
|
||||
}
|
||||
return Xowm_api_mgr.Bld_api_url(domain_str, Qarg__bgn + bfr.To_str_and_rls());
|
||||
}
|
||||
return first ? null : Xowm_api_mgr.Bld_api_url(domain_str, Qarg__bgn + bfr.To_str_and_rls());
|
||||
}
|
||||
private static final byte[] Bry__query = Bry_.new_a7("query");
|
||||
private static final byte[] Bry__query = Bry_.new_a7("query");
|
||||
public static final String
|
||||
Qarg__all = "action=query&format=json&rawcontinue=&meta=siteinfo&siprop=general|namespaces|statistics|interwikimap|namespacealiases|specialpagealiases|libraries|extensions|skins|magicwords|functionhooks|showhooks|extensiontags|protocols|defaultoptions|languages"
|
||||
, Qarg__bgn = "action=query&format=json&rawcontinue=&meta=siteinfo&siprop="
|
||||
|
||||
@@ -18,7 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
package gplx.xowa.apps.site_cfgs; import gplx.*; import gplx.xowa.*; import gplx.xowa.apps.*;
|
||||
import gplx.xowa.bldrs.wms.sites.*;
|
||||
public class Xoa_site_cfg_mgr {
|
||||
private final Xoa_site_cfg_loader__db loader__db = new Xoa_site_cfg_loader__db();
|
||||
private final Xoa_site_cfg_loader__db loader__db = new Xoa_site_cfg_loader__db();
|
||||
public Xoa_site_cfg_mgr(Xoa_app app) {
|
||||
this.itm_ary = new Xoa_site_cfg_itm__base[]
|
||||
{ new Xoa_site_cfg_itm__extensiontags()
|
||||
@@ -31,9 +31,9 @@ public class Xoa_site_cfg_mgr {
|
||||
, new Xoa_site_cfg_loader__fallback()
|
||||
};
|
||||
}
|
||||
public Xoa_site_cfg_loader[] Loader_ary() {return loader_ary;} private final Xoa_site_cfg_loader[] loader_ary;
|
||||
public Xoa_site_cfg_itm__base[] Itm_ary() {return itm_ary;} private final Xoa_site_cfg_itm__base[] itm_ary;
|
||||
public Hash_adp_bry Data_hash() {return data_hash;} private final Hash_adp_bry data_hash = Hash_adp_bry.cs();
|
||||
public Xoa_site_cfg_loader[] Loader_ary() {return loader_ary;} private final Xoa_site_cfg_loader[] loader_ary;
|
||||
public Xoa_site_cfg_itm__base[] Itm_ary() {return itm_ary;} private final Xoa_site_cfg_itm__base[] itm_ary;
|
||||
public Hash_adp_bry Data_hash() {return data_hash;} private final Hash_adp_bry data_hash = Hash_adp_bry.cs();
|
||||
public void Init_loader_bgn(Xow_wiki wiki) {
|
||||
data_hash.Clear();
|
||||
int loader_len = loader_ary.length;
|
||||
|
||||
@@ -22,7 +22,7 @@ import gplx.dbs.cfgs.*;
|
||||
import gplx.langs.jsons.*; import gplx.xowa.wikis.nss.*;
|
||||
import gplx.xowa.parsers.*; import gplx.xowa.bldrs.wms.*;
|
||||
public class Xoa_site_cfg_mgr_tst {
|
||||
private final Xoa_site_cfg_mgr_fxt fxt = new Xoa_site_cfg_mgr_fxt();
|
||||
private final Xoa_site_cfg_mgr_fxt fxt = new Xoa_site_cfg_mgr_fxt();
|
||||
@Before public void init() {fxt.Init();}
|
||||
@After public void term() {fxt.Term();}
|
||||
@Test public void Extensiontags__cfg() {
|
||||
@@ -56,21 +56,16 @@ public class Xoa_site_cfg_mgr_tst {
|
||||
fxt.Exec_load();
|
||||
fxt.Test_db(Xoa_site_cfg_loader__inet.Qarg__interwikimap, fxt.Make_data(Xoa_site_cfg_loader_.Tid__inet, 2, "w", "https://en.wikipedia.org", "c", "https://commons.wikimedia.org"));
|
||||
}
|
||||
@Test public void Inet__once() {
|
||||
fxt.Init_db(Xoa_site_cfg_loader__inet.Qarg__extensiontags, fxt.Make_data(Xoa_site_cfg_loader_.Tid__inet, 1, "math", "source"));
|
||||
fxt.Exec_load();
|
||||
fxt.Test_inet_qarg("interwikimap"); // should not have extensiontags
|
||||
}
|
||||
// @Test public void Print() {
|
||||
// String s = fxt.Make_api(fxt.Make_api_interwikimap("k1", "v1", "k2", "v2"), fxt.Make_api_extensiontags2("k3", "v3", "k4", "v4"));
|
||||
// Tfds.Dbg(s);
|
||||
// }
|
||||
}
|
||||
class Xoa_site_cfg_mgr_fxt {
|
||||
private final Xoae_app app; private final Xowe_wiki wiki;
|
||||
private final Xoa_site_cfg_mgr site_cfg_mgr;
|
||||
private final Db_cfg_tbl cfg_tbl;
|
||||
private final Json_printer printer = new Json_printer();
|
||||
private final Xoae_app app; private final Xowe_wiki wiki;
|
||||
private final Xoa_site_cfg_mgr site_cfg_mgr;
|
||||
private final Db_cfg_tbl cfg_tbl;
|
||||
private final Json_printer printer = new Json_printer();
|
||||
public Xoa_site_cfg_mgr_fxt() {
|
||||
// Xoa_app_.Usr_dlg_(Xoa_app_.usr_dlg_console_());
|
||||
Xoa_test_.Inet__init();
|
||||
|
||||
Reference in New Issue
Block a user