mirror of
https://github.com/gnosygnu/xowa.git
synced 2026-03-02 03:49:30 +00:00
Cfg: Convert rest of pages
This commit is contained in:
@@ -18,20 +18,24 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
package gplx.xowa.files; import gplx.*; import gplx.xowa.*;
|
||||
public class Xof_cfg_download implements Gfo_invk {
|
||||
public Xof_cfg_download() {
|
||||
this.enabled = true; // CFG: set to false b/c some tests only do parsing [[File:A.png]] and repos are not set up
|
||||
this.enabled = true; // changed to true; DATE:2016-12-19; OLD: CFG: set to false b/c some tests only do parsing [[File:A.png]] and repos are not set up
|
||||
this.redownload = Redownload_none; // CFG: set to none to be as conservative as possible
|
||||
}
|
||||
public boolean Enabled() {return enabled;} public Xof_cfg_download Enabled_(boolean v) {enabled = v; return this;} private boolean enabled;
|
||||
public byte Redownload() {return redownload;} public Xof_cfg_download Redownload_(byte v) {redownload = v; return this;} private byte redownload;
|
||||
public void Init_by_wiki(Xow_wiki wiki) {
|
||||
wiki.App().Cfg().Bind_many_app(this, Cfg__retrieval_enabled);
|
||||
}
|
||||
|
||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
if (ctx.Match(k, Invk_enabled_)) enabled = m.ReadYn("v");
|
||||
if (ctx.Match(k, Cfg__retrieval_enabled)) enabled = m.ReadYn("v");
|
||||
|
||||
else if (ctx.Match(k, Invk_redownload)) return Redownload_to_str_(redownload);
|
||||
else if (ctx.Match(k, Invk_redownload_)) redownload = Redownload_parse_(m.ReadStr("v"));
|
||||
else if (ctx.Match(k, Invk_redownload_toggle)) redownload = redownload == Redownload_none ? Redownload_missing : Redownload_none;
|
||||
else return Gfo_invk_.Rv_unhandled;
|
||||
return this;
|
||||
} private static final String Invk_enabled_ = "enabled_", Invk_redownload = "redownload", Invk_redownload_ = "redownload_", Invk_redownload_toggle = "redownload_toggle";
|
||||
} private static final String Invk_redownload = "redownload", Invk_redownload_ = "redownload_", Invk_redownload_toggle = "redownload_toggle";
|
||||
byte Redownload_parse_(String s) {
|
||||
if (String_.Eq(s, "none")) return Redownload_none;
|
||||
else if (String_.Eq(s, "missing")) return Redownload_missing;
|
||||
@@ -47,4 +51,5 @@ public class Xof_cfg_download implements Gfo_invk {
|
||||
default: throw Err_.new_unhandled(v);
|
||||
}
|
||||
}
|
||||
private static final String Cfg__retrieval_enabled = "xowa.wiki.files.retrieval_enabled";
|
||||
}
|
||||
|
||||
@@ -26,13 +26,13 @@ public class Xof_file_mgr implements Gfo_invk {
|
||||
public Xof_cache_mgr Cache_mgr() {return cache_mgr;} private Xof_cache_mgr cache_mgr;
|
||||
public Xof_math_mgr Math_mgr() {return math_mgr;} private final Xof_math_mgr math_mgr = new Xof_math_mgr();
|
||||
public Xof_rule_mgr Ext_rules() {return ext_rules;} private final Xof_rule_mgr ext_rules = new Xof_rule_mgr();
|
||||
public Xoa_wmf_mgr Wmf_mgr() {return wmf_mgr;} private Xoa_wmf_mgr wmf_mgr;
|
||||
public void Ctor_by_app(Xoae_app app) {
|
||||
Gfo_usr_dlg usr_dlg = app.Usr_dlg();
|
||||
this.cache_mgr = new Xof_cache_mgr(usr_dlg, app.Wiki_mgr(), repo_mgr);
|
||||
this.repo_mgr = new Xoa_repo_mgr(app.Fsys_mgr(), ext_rules);
|
||||
this.wmf_mgr = new Xoa_wmf_mgr(usr_dlg, app.Wiki_mgr());
|
||||
img_mgr.Init_by_app(app.Wmf_mgr(), app.Prog_mgr());
|
||||
}
|
||||
public void Init_by_app(Xoae_app app) {
|
||||
math_mgr.Init_by_app(app);
|
||||
}
|
||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
@@ -40,8 +40,7 @@ public class Xof_file_mgr implements Gfo_invk {
|
||||
else if (ctx.Match(k, Invk_img_mgr)) return img_mgr;
|
||||
else if (ctx.Match(k, Invk_ext_rules)) return ext_rules;
|
||||
else if (ctx.Match(k, Invk_math)) return math_mgr;
|
||||
else if (ctx.Match(k, Invk_download)) return wmf_mgr; // NOTE: do not rename "download" to wmf_mgr
|
||||
else if (ctx.Match(k, Invk_cache_mgr)) return cache_mgr;
|
||||
else return Gfo_invk_.Rv_unhandled;
|
||||
} private static final String Invk_repos = "repos", Invk_img_mgr= "img_mgr", Invk_ext_rules = "ext_rules", Invk_math = "math", Invk_download = "download", Invk_cache_mgr = "cache_mgr";
|
||||
} private static final String Invk_repos = "repos", Invk_img_mgr= "img_mgr", Invk_ext_rules = "ext_rules", Invk_math = "math", Invk_cache_mgr = "cache_mgr";
|
||||
}
|
||||
|
||||
@@ -70,6 +70,9 @@ public class Xow_file_mgr implements Gfo_invk {
|
||||
public Xowe_repo_mgr Repo_mgr() {return repo_mgr;} private Xowe_repo_mgr repo_mgr;
|
||||
public Xof_meta_mgr Dbmeta_mgr() {return meta_mgr;} private Xof_meta_mgr meta_mgr;
|
||||
public Xof_cfg_download Cfg_download() {return cfg_download;} private Xof_cfg_download cfg_download = new Xof_cfg_download();
|
||||
public void Init_by_wiki(Xow_wiki wiki) {
|
||||
cfg_download.Init_by_wiki(wiki);
|
||||
}
|
||||
public void Cfg_set(String grp, String key, String val) { // TEST: should only be called by tests
|
||||
if (test_grps == null) test_grps = Hash_adp_.New();
|
||||
Db_cfg_hash grp_itm = (Db_cfg_hash)test_grps.Get_by(grp);
|
||||
|
||||
@@ -19,7 +19,7 @@ package gplx.xowa.files.caches; import gplx.*; import gplx.xowa.*; import gplx.x
|
||||
import gplx.core.primitives.*; import gplx.dbs.*; import gplx.dbs.cfgs.*;
|
||||
import gplx.xowa.files.fsdb.*; import gplx.xowa.files.repos.*; import gplx.xowa.files.imgs.*;
|
||||
import gplx.xowa.wikis.*; import gplx.xowa.wikis.domains.*; import gplx.xowa.users.data.*;
|
||||
public class Xou_cache_mgr {
|
||||
public class Xou_cache_mgr implements Gfo_invk {
|
||||
private final Xoa_wiki_mgr wiki_mgr; private final Xou_cache_tbl cache_tbl; private final Db_cfg_tbl cfg_tbl; private final Bry_bfr tmp_bfr = Bry_bfr_.Reset(512);
|
||||
private final Ordered_hash hash = Ordered_hash_.New_bry(); private final Xof_url_bldr url_bldr = Xof_url_bldr.new_v2(); private final Object thread_lock = new Object();
|
||||
private final Io_url cache_dir; private boolean db_load_needed = true;
|
||||
@@ -49,6 +49,10 @@ public class Xou_cache_mgr {
|
||||
, Keyval_.new_("oldest file", view_date == Long_.Max_value ? "" : DateAdp_.unixtime_utc_seconds_(view_date).XtoStr_fmt_iso_8561())
|
||||
);
|
||||
}
|
||||
public void Init_by_app(Xoa_app app) {
|
||||
app.Cfg().Bind_many_app(this, Cfg__fsys_size_min, Cfg__fsys_size_max, Run__fsys_clear);
|
||||
// app.Cfg().Exec_mgr().Add(this, Run__fsys_clear);
|
||||
}
|
||||
public Xou_cache_itm Get_or_null(Xof_fsdb_itm fsdb) {return Get_or_null(fsdb.Lnki_wiki_abrv(), fsdb.Lnki_ttl(), fsdb.Lnki_type(), fsdb.Lnki_upright(), fsdb.Lnki_w(), fsdb.Lnki_h(), fsdb.Lnki_time(), fsdb.Lnki_page(), fsdb.User_thumb_w());}
|
||||
public Xou_cache_itm Get_or_null(byte[] wiki, byte[] ttl, int type, double upright, int w, int h, double time, int page, int user_thumb_w) {
|
||||
if (!enabled) return null;
|
||||
@@ -175,6 +179,19 @@ public class Xou_cache_mgr {
|
||||
, Xof_lnki_time.Convert_to_xowa_page (orig_ext.Id(), cache.File_page())
|
||||
).Xto_url();
|
||||
}
|
||||
|
||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
if (ctx.Match(k, Cfg__fsys_size_min)) this.fsys_size_min = m.ReadLong("v");
|
||||
else if (ctx.Match(k, Cfg__fsys_size_max)) this.fsys_size_max = m.ReadLong("v");
|
||||
// else if (ctx.Match(k, Run__fsys_clear)) this.Reduce(0);
|
||||
else return Gfo_invk_.Rv_unhandled;
|
||||
return this;
|
||||
}
|
||||
private static final String
|
||||
Cfg__fsys_size_min = "xowa.wiki.files.cache.fsys_size_min"
|
||||
, Cfg__fsys_size_max = "xowa.wiki.files.cache.fsys_size_max"
|
||||
, Run__fsys_clear = "xowa.wiki.files.cache.clear"
|
||||
;
|
||||
}
|
||||
class Xou_cache_grp {
|
||||
private final List_adp list = List_adp_.New();
|
||||
|
||||
@@ -20,7 +20,7 @@ import gplx.core.primitives.*; import gplx.dbs.*;
|
||||
import gplx.core.ios.*; import gplx.xowa.wikis.domains.*; import gplx.xowa.files.*;
|
||||
import gplx.xowa.parsers.*; import gplx.xowa.parsers.lnkis.*;
|
||||
public class Xof_xfer_queue_html_fxt extends Xof_xfer_queue_base_fxt {
|
||||
private final Xof_xfer_queue queue = new Xof_xfer_queue();
|
||||
private final Xof_xfer_queue queue = new Xof_xfer_queue();
|
||||
@Override public void Clear(boolean src_repo_is_wmf) {
|
||||
Db_conn_bldr.Instance.Reg_default_mem();
|
||||
super.Clear(src_repo_is_wmf);
|
||||
@@ -50,7 +50,6 @@ public class Xof_xfer_queue_html_fxt extends Xof_xfer_queue_base_fxt {
|
||||
@gplx.Virtual public void tst() {
|
||||
Xowe_wiki wiki = this.En_wiki();
|
||||
ini_src_fils();
|
||||
wiki.Appe().File_mgr().Wmf_mgr().Enabled_(true);
|
||||
wiki.File_mgr().Cfg_download().Enabled_(true);
|
||||
queue.Exec(wiki, Xoae_page.New(wiki, wiki.Ttl_parse(Bry_.new_a7("A"))));
|
||||
tst_trg_fils();
|
||||
|
||||
@@ -18,8 +18,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
package gplx.xowa.files.xfers; import gplx.*; import gplx.xowa.*; import gplx.xowa.files.*;
|
||||
import org.junit.*; import gplx.xowa.parsers.lnkis.*;
|
||||
public class Xof_xfer_queue_html_wmf_api_tst {
|
||||
private final Xof_xfer_queue_html_fxt fxt = new Xof_xfer_queue_html_fxt();
|
||||
@Before public void init() {fxt.Clear(true); fxt.Src_commons_repo().Wmf_api_(true); fxt.Src_en_wiki_repo().Wmf_api_(true);}
|
||||
private final Xof_xfer_queue_html_fxt fxt = new Xof_xfer_queue_html_fxt();
|
||||
@Before public void init() {
|
||||
gplx.core.ios.IoEngine_system.Web_access_enabled = true; // NOTE: must set to true, else Wmf_api calls below will always return false
|
||||
fxt.Clear(true); fxt.Src_commons_repo().Wmf_api_(true); fxt.Src_en_wiki_repo().Wmf_api_(true);
|
||||
}
|
||||
@Test public void Thumb() {
|
||||
fxt .ini_page_api("en_wiki", "A.png", "", 2200, 2000);
|
||||
fxt .Lnki_thumb_("A.png", 220)
|
||||
|
||||
Reference in New Issue
Block a user