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:
@@ -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