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:
@@ -38,13 +38,16 @@ public class Xof_orig_itm {
|
||||
this.w = w; this.h = h; this.redirect = redirect;
|
||||
return this;
|
||||
}
|
||||
|
||||
public int Db_row_size() {return Db_row_size_fixed + redirect.length + ttl.length;}
|
||||
private static final int Db_row_size_fixed = (5 * 4); // 3 ints; 2 bytes
|
||||
public static final byte Repo_comm = 0, Repo_wiki = 1, Repo_null = Byte_.Max_value_127; // SERIALIZED: "wiki_orig.orig_repo"
|
||||
public static final Xof_orig_itm Null = null;
|
||||
public static final Xof_orig_itm Null = null;
|
||||
public static final int File_len_null = -1; // file_len used for filters (EX: don't download ogg > 1 MB)
|
||||
public static String dump(Xof_orig_itm itm) {
|
||||
if (itm == null)
|
||||
return "NULL";
|
||||
Bry_bfr bfr = Bry_bfr.new_(255);
|
||||
Bry_bfr bfr = Bry_bfr_.New_w_size(255);
|
||||
bfr.Add_str_a7("repo").Add_byte_eq().Add_int_variable((int)itm.repo).Add_byte_semic();
|
||||
bfr.Add_str_a7("ttl").Add_byte_eq().Add(itm.ttl).Add_byte_semic();
|
||||
bfr.Add_str_a7("ext_id").Add_byte_eq().Add_int_variable(itm.ext_id).Add_byte_semic();
|
||||
|
||||
@@ -20,7 +20,7 @@ import gplx.core.primitives.*; import gplx.dbs.*;
|
||||
import gplx.xowa.files.repos.*; import gplx.xowa.files.fsdb.*; import gplx.xowa.bldrs.wms.apis.*; import gplx.xowa.files.downloads.*;
|
||||
public class Xof_orig_mgr {
|
||||
private Xof_orig_wkr[] wkrs; private int wkrs_len;
|
||||
private Xof_url_bldr url_bldr; private Xow_repo_mgr repo_mgr; private final Xof_img_size img_size = new Xof_img_size();
|
||||
private Xof_url_bldr url_bldr; private Xow_repo_mgr repo_mgr; private final Xof_img_size img_size = new Xof_img_size();
|
||||
public Xof_orig_mgr() {this.Wkrs__clear();}
|
||||
public void Init_by_wiki(Xow_wiki wiki, Xof_fsdb_mode fsdb_mode, Xof_orig_tbl[] orig_tbls, Xof_url_bldr url_bldr) {
|
||||
this.repo_mgr = wiki.File__repo_mgr(); this.url_bldr = url_bldr;
|
||||
@@ -82,7 +82,7 @@ public class Xof_orig_mgr {
|
||||
wkrs_len += v.length;
|
||||
}
|
||||
public void Wkrs_del(byte tid) {
|
||||
List_adp list = List_adp_.new_();
|
||||
List_adp list = List_adp_.New();
|
||||
for (int i = 0; i < wkrs_len; ++i) {
|
||||
Xof_orig_wkr wkr = wkrs[i];
|
||||
if (wkr.Tid() == tid) continue; // do not add deleted wkr
|
||||
|
||||
@@ -20,9 +20,9 @@ import gplx.core.primitives.*;
|
||||
import gplx.dbs.*; import gplx.dbs.utls.*;
|
||||
import gplx.xowa.files.fsdb.*; import gplx.xowa.files.repos.*;
|
||||
public class Xof_orig_tbl implements Rls_able {
|
||||
private final String tbl_name; private final Dbmeta_fld_list flds = Dbmeta_fld_list.new_();
|
||||
private final String fld_repo, fld_ttl, fld_status, fld_ext, fld_w, fld_h, fld_redirect;
|
||||
private final Db_conn conn; private final Xof_orig_tbl__in_wkr select_in_wkr = new Xof_orig_tbl__in_wkr();
|
||||
public final String tbl_name; public final Dbmeta_fld_list flds = new Dbmeta_fld_list();
|
||||
public final String fld_repo, fld_ttl, fld_status, fld_ext, fld_w, fld_h, fld_redirect;
|
||||
public final Db_conn conn; private final Xof_orig_tbl__in_wkr select_in_wkr = new Xof_orig_tbl__in_wkr();
|
||||
public Db_conn Conn() {return conn;}
|
||||
public Xof_orig_tbl(Db_conn conn, boolean schema_is_1) {
|
||||
this.conn = conn;
|
||||
@@ -47,7 +47,7 @@ public class Xof_orig_tbl implements Rls_able {
|
||||
Db_rdr rdr = conn.Stmt_select(tbl_name, flds, fld_ttl).Clear().Crt_bry_as_str(fld_ttl, ttl).Exec_select__rls_auto();
|
||||
try {
|
||||
if (rdr.Move_next())
|
||||
rv = Make_itm(rdr);
|
||||
rv = Load_by_rdr(rdr);
|
||||
}
|
||||
finally {rdr.Rls();}
|
||||
return rv;
|
||||
@@ -59,6 +59,9 @@ public class Xof_orig_tbl implements Rls_able {
|
||||
}
|
||||
public void Insert(byte repo, byte[] ttl, int ext, int w, int h, byte[] redirect) {
|
||||
Db_stmt stmt = conn.Stmt_insert(tbl_name, flds);
|
||||
this.Insert(stmt, repo, ttl, ext, w, h, redirect);
|
||||
}
|
||||
public void Insert(Db_stmt stmt, byte repo, byte[] ttl, int ext, int w, int h, byte[] redirect) {
|
||||
stmt.Clear()
|
||||
.Val_bry_as_str(fld_ttl, ttl).Val_byte(fld_repo, repo).Val_byte(fld_status, Status_found)
|
||||
.Val_int(fld_ext, ext).Val_int(fld_w, w).Val_int(fld_h, h).Val_bry_as_str(fld_redirect, redirect)
|
||||
@@ -72,7 +75,7 @@ public class Xof_orig_tbl implements Rls_able {
|
||||
.Crt_byte(fld_repo, repo).Crt_bry_as_str(fld_ttl, ttl)
|
||||
.Exec_update();
|
||||
}
|
||||
public Xof_orig_itm Make_itm(Db_rdr rdr) {
|
||||
public Xof_orig_itm Load_by_rdr(Db_rdr rdr) {
|
||||
byte repo = rdr.Read_byte(fld_repo);
|
||||
Xof_orig_itm rv = new Xof_orig_itm().Init
|
||||
( repo
|
||||
@@ -106,7 +109,7 @@ class Xof_orig_tbl__in_wkr extends Db_in_wkr__base {
|
||||
@Override protected void Read_data(Cancelable cancelable, Db_rdr rdr) {
|
||||
while (rdr.Move_next()) {
|
||||
if (cancelable.Canceled()) return;
|
||||
Xof_orig_itm itm = tbl.Make_itm(rdr);
|
||||
Xof_orig_itm itm = tbl.Load_by_rdr(rdr);
|
||||
if (itm == Xof_orig_itm.Null) continue;
|
||||
byte[] itm_ttl = itm.Ttl();
|
||||
rv.Add_if_dupe_use_1st(itm_ttl, itm); // guard against dupes; fails on en.w:Paris; DATE:2015-03-08
|
||||
|
||||
@@ -46,7 +46,7 @@ class Xof_orig_tbl_fxt {
|
||||
}
|
||||
public void Test_select_in(String[] itms, Xof_orig_itm... expd) {
|
||||
Ordered_hash rv = Ordered_hash_.New();
|
||||
List_adp list = List_adp_.new_();
|
||||
List_adp list = List_adp_.New();
|
||||
int itms_len = itms.length;
|
||||
for (int i = 0; i < itms_len; ++i) {
|
||||
String itm = itms[i];
|
||||
@@ -58,7 +58,7 @@ class Xof_orig_tbl_fxt {
|
||||
Tfds.Eq_str_lines(To_str_ary(expd), To_str_ary((Xof_orig_itm[])rv.To_ary(Xof_orig_itm.class)));
|
||||
}
|
||||
private static String To_str_ary(Xof_orig_itm... ary) {
|
||||
Bry_bfr bfr = Bry_bfr.reset_(255);
|
||||
Bry_bfr bfr = Bry_bfr_.Reset(255);
|
||||
int len = ary.length;
|
||||
for (int i = 0; i < len; ++i) {
|
||||
Xof_orig_itm itm = ary[i];
|
||||
|
||||
@@ -20,8 +20,8 @@ import gplx.core.flds.*;
|
||||
import gplx.dbs.*; import gplx.xowa.files.fsdb.*;
|
||||
import gplx.xowa.wikis.tdbs.metas.*;
|
||||
public class Xof_orig_wkr__xo_meta implements Xof_orig_wkr {
|
||||
private final Io_url wiki_meta_dir; private final byte dir_spr_byte; private final Bry_bfr url_bfr = Bry_bfr.new_(255);
|
||||
private final Gfo_fld_rdr meta_rdr = Gfo_fld_rdr.xowa_(); private final Xof_meta_thumb_parser parser = new Xof_meta_thumb_parser();
|
||||
private final Io_url wiki_meta_dir; private final byte dir_spr_byte; private final Bry_bfr url_bfr = Bry_bfr_.New_w_size(255);
|
||||
private final Gfo_fld_rdr meta_rdr = Gfo_fld_rdr.xowa_(); private final Xof_meta_thumb_parser parser = new Xof_meta_thumb_parser();
|
||||
public Xof_orig_wkr__xo_meta(Io_url wiki_meta_dir) {this.wiki_meta_dir = wiki_meta_dir; this.dir_spr_byte = wiki_meta_dir.Info().DirSpr_byte();}
|
||||
public byte Tid() {return Xof_orig_wkr_.Tid_xowa_meta;}
|
||||
public void Find_by_list(Ordered_hash rv, List_adp itms) {Xof_orig_wkr_.Find_by_list(this, rv, itms);}
|
||||
|
||||
@@ -33,7 +33,7 @@ class Xof_wiki_finder { // UNUSED
|
||||
private Xoae_page Get_page__by_wiki(Xowe_wiki wiki, int ns_id, byte[] ttl_bry) {
|
||||
Xoa_ttl ttl = Xoa_ttl.parse(wiki, ns_id, ttl_bry) ;
|
||||
Xoa_url url = Xoa_url.new_(wiki.Domain_bry(), ttl_bry);
|
||||
return wiki.Data_mgr().Load_page_by_ttl(url, ttl);
|
||||
return wiki.Data_mgr().Load_page_and_parse(url, ttl);
|
||||
}
|
||||
private int qry_count, qry_count_max = 1000;
|
||||
public boolean Find_page(Xof_wiki_finder_itm itm, int ns_id, byte[] ttl_bry) {
|
||||
@@ -65,7 +65,7 @@ class Xof_wiki_finder { // UNUSED
|
||||
}
|
||||
private boolean Find_page__by_wiki(Xowd_page_itm db_page, Xowe_wiki wiki, int ns_id, byte[] ttl_bry) {
|
||||
Xow_ns ns = wiki.Ns_mgr().Ids_get_or_null(ns_id);
|
||||
wiki.Db_mgr().Load_mgr().Load_page(db_page, ns, false);
|
||||
wiki.Db_mgr().Load_mgr().Load_page(db_page, ns);
|
||||
return db_page.Exists();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user