mirror of
https://github.com/gnosygnu/xowa.git
synced 2026-03-02 03:49:30 +00:00
'v3.6.3.1'
This commit is contained in:
@@ -16,7 +16,7 @@ You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.files.bins; import gplx.*; import gplx.xowa.*; import gplx.xowa.files.*;
|
||||
import gplx.core.ios.*;
|
||||
import gplx.core.ios.*; import gplx.core.ios.streams.*;
|
||||
public interface Io_download_mgr {
|
||||
Io_stream_rdr Download_as_rdr(String src);
|
||||
}
|
||||
|
||||
@@ -16,13 +16,13 @@ You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.files.bins; import gplx.*; import gplx.xowa.*; import gplx.xowa.files.*;
|
||||
import gplx.core.ios.*;
|
||||
import gplx.core.ios.*; import gplx.core.ios.streams.*;
|
||||
public class Io_download_mgr_ {
|
||||
public static Io_download_mgr new_system() {return new Io_download_mgr__system();}
|
||||
public static Io_download_mgr__memory new_memory() {return new Io_download_mgr__memory();}
|
||||
}
|
||||
class Io_download_mgr__system implements Io_download_mgr {
|
||||
private final IoEngine_xrg_downloadFil download_wkr = IoEngine_xrg_downloadFil.new_("", Io_url_.Empty);
|
||||
private final IoEngine_xrg_downloadFil download_wkr = IoEngine_xrg_downloadFil.new_("", Io_url_.Empty);
|
||||
public void Upload_data(String url, byte[] data) {throw Err_.new_unimplemented();}
|
||||
public Io_stream_rdr Download_as_rdr(String url) {
|
||||
download_wkr.Init(url, Io_url_.Empty);
|
||||
|
||||
@@ -16,9 +16,9 @@ You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.files.bins; import gplx.*; import gplx.xowa.*; import gplx.xowa.files.*;
|
||||
import gplx.core.ios.*;
|
||||
import gplx.core.ios.*; import gplx.core.ios.streams.*;
|
||||
public class Io_download_mgr__memory implements Io_download_mgr {
|
||||
private final Ordered_hash hash = Ordered_hash_.New();
|
||||
private final Ordered_hash hash = Ordered_hash_.New();
|
||||
public void Clear() {hash.Clear();}
|
||||
public void Upload_data(String url, byte[] data) {hash.Add(url, data);}
|
||||
public Io_stream_rdr Download_as_rdr(String url) {
|
||||
|
||||
@@ -16,7 +16,7 @@ You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.files.bins; import gplx.*; import gplx.xowa.*; import gplx.xowa.files.*;
|
||||
import gplx.core.primitives.*; import gplx.core.ios.*;
|
||||
import gplx.core.primitives.*; import gplx.core.ios.*; import gplx.core.ios.streams.*;
|
||||
import gplx.fsdb.meta.*;
|
||||
import gplx.xowa.files.repos.*; import gplx.xowa.files.fsdb.*; import gplx.xowa.files.cnvs.*; import gplx.xowa.files.caches.*;
|
||||
import gplx.xowa.bldrs.wms.*;
|
||||
@@ -34,7 +34,7 @@ public class Xof_bin_mgr {
|
||||
}
|
||||
public void Resizer_(Xof_img_wkr_resize_img v) {resizer = v;} private Xof_img_wkr_resize_img resizer;
|
||||
public void Wkrs__del(String key) {
|
||||
List_adp list = List_adp_.new_();
|
||||
List_adp list = List_adp_.New();
|
||||
for (Xof_bin_wkr wkr : wkrs) {
|
||||
if (String_.Eq(key, wkr.Key())) continue;
|
||||
list.Add(wkr);
|
||||
|
||||
@@ -16,12 +16,12 @@ You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.files.bins; import gplx.*; import gplx.xowa.*; import gplx.xowa.files.*;
|
||||
import gplx.core.ios.*;
|
||||
import gplx.core.ios.*; import gplx.core.ios.streams.*;
|
||||
import gplx.fsdb.meta.*; import gplx.xowa.files.fsdb.*;
|
||||
public class Xof_bin_skip_mgr {
|
||||
private Xof_bin_skip_wkr[] wkrs = new Xof_bin_skip_wkr[0]; private int wkrs_len;
|
||||
public Xof_bin_skip_mgr(Fsm_cfg_mgr cfg_mgr, String[] wkr_keys) {
|
||||
List_adp list = List_adp_.new_();
|
||||
List_adp list = List_adp_.New();
|
||||
for (int i = 0; i < wkrs_len; ++i) {
|
||||
Xof_bin_skip_wkr wkr = New_wkr(cfg_mgr, wkr_keys[i]);
|
||||
if (wkr != null) list.Add(wkr);
|
||||
@@ -69,7 +69,7 @@ class Xof_bin_skip_wkr__page_gt_1 implements Xof_bin_skip_wkr { // prior to v2.4
|
||||
public void Skip_term(Fsm_cfg_mgr cfg_mgr) {
|
||||
cfg_mgr.Patch__save(Fsm_cfg_mgr.Key_patch__page_gt_1);
|
||||
}
|
||||
public static final Xof_bin_skip_wkr__page_gt_1 Instance = new Xof_bin_skip_wkr__page_gt_1(); Xof_bin_skip_wkr__page_gt_1() {}
|
||||
public static final Xof_bin_skip_wkr__page_gt_1 Instance = new Xof_bin_skip_wkr__page_gt_1(); Xof_bin_skip_wkr__page_gt_1() {}
|
||||
}
|
||||
class Xof_bin_skip_wkr__small_size implements Xof_bin_skip_wkr {// downloads can randomly be broken; assume that anything with a small size is broken and redownload again; DATE:2015-04-21
|
||||
public String Key() {return Xof_bin_skip_wkr_.Key__small_size;}
|
||||
@@ -85,5 +85,5 @@ class Xof_bin_skip_wkr__small_size implements Xof_bin_skip_wkr {// downloads can
|
||||
return rv;
|
||||
}
|
||||
public void Skip_term(Fsm_cfg_mgr cfg_mgr) {}
|
||||
public static final Xof_bin_skip_wkr__small_size Instance = new Xof_bin_skip_wkr__small_size(); Xof_bin_skip_wkr__small_size() {}
|
||||
public static final Xof_bin_skip_wkr__small_size Instance = new Xof_bin_skip_wkr__small_size(); Xof_bin_skip_wkr__small_size() {}
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.files.bins; import gplx.*; import gplx.xowa.*; import gplx.xowa.files.*;
|
||||
import gplx.core.ios.*;
|
||||
import gplx.core.ios.*; import gplx.core.ios.streams.*;
|
||||
import gplx.xowa.files.fsdb.*;
|
||||
public interface Xof_bin_wkr {
|
||||
byte Tid();
|
||||
|
||||
@@ -16,15 +16,15 @@ You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.files.bins; import gplx.*; import gplx.xowa.*; import gplx.xowa.files.*;
|
||||
import gplx.dbs.*; import gplx.core.ios.*; import gplx.core.caches.*; import gplx.xowa.files.fsdb.*;
|
||||
import gplx.dbs.*; import gplx.core.ios.*; import gplx.core.ios.streams.*; import gplx.core.caches.*; import gplx.xowa.files.fsdb.*;
|
||||
import gplx.fsdb.*; import gplx.fsdb.data.*; import gplx.fsdb.meta.*;
|
||||
public class Xof_bin_wkr__fsdb_sql implements Xof_bin_wkr {
|
||||
private final Xof_bin_wkr_ids tmp_ids = new Xof_bin_wkr_ids();
|
||||
private final Xof_bin_wkr_ids tmp_ids = new Xof_bin_wkr_ids();
|
||||
private Xof_bin_skip_mgr skip_mgr;
|
||||
Xof_bin_wkr__fsdb_sql(Fsm_mnt_mgr mnt_mgr) {this.mnt_mgr = mnt_mgr;}
|
||||
public byte Tid() {return Xof_bin_wkr_.Tid_fsdb_xowa;}
|
||||
public String Key() {return Xof_bin_wkr_.Key_fsdb_wiki;}
|
||||
public Fsm_mnt_mgr Mnt_mgr() {return mnt_mgr;} private final Fsm_mnt_mgr mnt_mgr;
|
||||
public Fsm_mnt_mgr Mnt_mgr() {return mnt_mgr;} private final Fsm_mnt_mgr mnt_mgr;
|
||||
public boolean Resize_allowed() {return bin_wkr_resize;} public void Resize_allowed_(boolean v) {bin_wkr_resize = v;} private boolean bin_wkr_resize = false;
|
||||
public Xof_bin_skip_mgr Skip_mgr() {return skip_mgr;}
|
||||
public void Skip_mgr_init(Fsm_cfg_mgr cfg_mgr, String[] wkrs) {this.skip_mgr = new Xof_bin_skip_mgr(cfg_mgr, wkrs);}
|
||||
|
||||
@@ -16,16 +16,16 @@ You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.files.bins; import gplx.*; import gplx.xowa.*; import gplx.xowa.files.*;
|
||||
import gplx.core.ios.*; import gplx.core.envs.*;
|
||||
import gplx.core.ios.*; import gplx.core.ios.streams.*; import gplx.core.envs.*;
|
||||
import gplx.xowa.files.fsdb.*; import gplx.xowa.files.repos.*;
|
||||
public abstract class Xof_bin_wkr__fsys_base implements Xof_bin_wkr, GfoInvkAble {
|
||||
public abstract class Xof_bin_wkr__fsys_base implements Xof_bin_wkr, Gfo_invk {
|
||||
public Xof_bin_wkr__fsys_base() {}
|
||||
public abstract byte Tid();
|
||||
public abstract String Key();
|
||||
public boolean Resize_allowed() {return resize_allowed;} public void Resize_allowed_(boolean v) {resize_allowed = v;} private boolean resize_allowed = false;
|
||||
public Io_stream_rdr Get_as_rdr(Xof_fsdb_itm itm, boolean is_thumb, int w) {
|
||||
Io_url src_url = this.Get_src_url(Xof_repo_itm_.Mode_by_bool(is_thumb), String_.new_u8(itm.Orig_repo_name()), itm.Orig_ttl(), itm.Orig_ttl_md5(), itm.Orig_ext(), w, itm.Lnki_time(), itm.Lnki_page());
|
||||
return (src_url == Io_url_.Empty) ? gplx.core.ios.Io_stream_rdr_.Noop : gplx.core.ios.Io_stream_rdr_.file_(src_url);
|
||||
return (src_url == Io_url_.Empty) ? gplx.core.ios.streams.Io_stream_rdr_.Noop : gplx.core.ios.streams.Io_stream_rdr_.file_(src_url);
|
||||
}
|
||||
public boolean Get_to_fsys(Xof_fsdb_itm itm, boolean is_thumb, int w, Io_url bin_url) {
|
||||
return Get_to_fsys(itm.Orig_repo_name(), itm.Orig_ttl(), itm.Orig_ttl_md5(), itm.Orig_ext(), is_thumb, w, itm.Lnki_time(), itm.Lnki_page(), bin_url);
|
||||
@@ -40,7 +40,7 @@ public abstract class Xof_bin_wkr__fsys_base implements Xof_bin_wkr, GfoInvkAble
|
||||
public abstract void Url_(Io_url v);
|
||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
if (ctx.Match(k, Invk_url_)) this.Url_(m.ReadIoUrl("v"));
|
||||
else return GfoInvkAble_.Rv_unhandled;
|
||||
else return Gfo_invk_.Rv_unhandled;
|
||||
return this;
|
||||
} private static final String Invk_url_ = "url_";
|
||||
}
|
||||
|
||||
@@ -16,14 +16,14 @@ You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.files.bins; import gplx.*; import gplx.xowa.*; import gplx.xowa.files.*;
|
||||
import gplx.core.ios.*; import gplx.core.threads.*;
|
||||
import gplx.core.ios.*; import gplx.core.ios.streams.*; import gplx.core.threads.*;
|
||||
import gplx.xowa.apps.*;
|
||||
import gplx.xowa.files.fsdb.*; import gplx.xowa.files.repos.*;
|
||||
import gplx.xowa.wikis.domains.*;
|
||||
public class Xof_bin_wkr__http_wmf implements Xof_bin_wkr {
|
||||
private final Xow_repo_mgr repo_mgr; private final IoEngine_xrg_downloadFil download_wkr;
|
||||
private final Io_download_mgr download_mgr;
|
||||
private final Xof_url_bldr url_bldr = new Xof_url_bldr();
|
||||
private final Xow_repo_mgr repo_mgr; private final IoEngine_xrg_downloadFil download_wkr;
|
||||
private final Io_download_mgr download_mgr;
|
||||
private final Xof_url_bldr url_bldr = new Xof_url_bldr();
|
||||
public Xof_bin_wkr__http_wmf(Xow_repo_mgr repo_mgr, Io_download_mgr download_mgr, IoEngine_xrg_downloadFil download_wkr) {
|
||||
this.repo_mgr = repo_mgr; this.download_mgr = download_mgr; this.download_wkr = download_wkr;
|
||||
}
|
||||
@@ -78,7 +78,7 @@ public class Xof_bin_wkr__http_wmf implements Xof_bin_wkr {
|
||||
}
|
||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
if (ctx.Match(k, Invk_fail_timeout_)) fail_timeout = m.ReadInt("v");
|
||||
else return GfoInvkAble_.Rv_unhandled;
|
||||
else return Gfo_invk_.Rv_unhandled;
|
||||
return this;
|
||||
} private static final String Invk_fail_timeout_ = "fail_timeout_";
|
||||
public static Xof_bin_wkr__http_wmf new_(Xow_wiki wiki) {return new_(wiki, Io_download_mgr_.new_system());}
|
||||
|
||||
@@ -16,9 +16,9 @@ You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.files.bins; import gplx.*; import gplx.xowa.*; import gplx.xowa.files.*;
|
||||
import org.junit.*; import gplx.core.ios.*; import gplx.xowa.files.repos.*;
|
||||
import org.junit.*; import gplx.core.ios.*; import gplx.core.ios.streams.*; import gplx.xowa.files.repos.*;
|
||||
public class Xof_bin_wkr__http_wmf__tst {
|
||||
private final Xof_bin_wkr__http_wmf__fxt fxt = new Xof_bin_wkr__http_wmf__fxt();
|
||||
private final Xof_bin_wkr__http_wmf__fxt fxt = new Xof_bin_wkr__http_wmf__fxt();
|
||||
@Before public void init() {fxt.Clear();}
|
||||
@Test public void Basic() {
|
||||
fxt.Init__Http("mem/http/commons.wikimedia.org/thumb/7/70/A.png/220px-A.png", "test_data");
|
||||
@@ -42,10 +42,10 @@ public class Xof_bin_wkr__http_wmf__tst {
|
||||
}
|
||||
}
|
||||
class Xof_bin_wkr__http_wmf__fxt {
|
||||
private final Xof_bin_wkr__http_wmf wkr;
|
||||
private final Io_download_mgr__memory download_mgr;
|
||||
private final Xof_bin_wkr__http_wmf wkr;
|
||||
private final Io_download_mgr__memory download_mgr;
|
||||
private Io_stream_rdr get_as_rdr__rdr;
|
||||
public Xof_fsdb_itm_fxt Fsdb_itm_mkr() {return fsdb_itm_mkr;} private final Xof_fsdb_itm_fxt fsdb_itm_mkr = new Xof_fsdb_itm_fxt();
|
||||
public Xof_fsdb_itm_fxt Fsdb_itm_mkr() {return fsdb_itm_mkr;} private final Xof_fsdb_itm_fxt fsdb_itm_mkr = new Xof_fsdb_itm_fxt();
|
||||
public Xof_bin_wkr__http_wmf__fxt() {
|
||||
Xoae_app app = Xoa_app_fxt.Make__app__edit();
|
||||
Xowe_wiki wiki = Xoa_app_fxt.Make__wiki__edit(app);
|
||||
|
||||
Reference in New Issue
Block a user