1
0
mirror of https://github.com/gnosygnu/xowa.git synced 2026-03-02 03:49:30 +00:00
This commit is contained in:
gnosygnu
2015-08-03 00:10:03 -04:00
parent 9d63f03b3d
commit 34c34f227c
514 changed files with 4972 additions and 3910 deletions

View File

@@ -173,7 +173,7 @@ public abstract class Xob_dump_mgr_base extends Xob_itm_basic_base implements Xo
Exec_commit(-1, -1, -1, Bry_.Empty);
Exec_end_hook();
Free();
usr_dlg.Note_many("", "", "done: ~{0} ~{1}", exec_count, DecimalAdp_.divide_safe_(exec_count, Env_.TickCount_elapsed_in_sec(time_bgn)).Xto_str("#,###.000"));
usr_dlg.Note_many("", "", "done: ~{0} ~{1}", exec_count, Decimal_adp_.divide_safe_(exec_count, Env_.TickCount_elapsed_in_sec(time_bgn)).To_str("#,###.000"));
}
private void Free() {
ctx.App().Free_mem(true);
@@ -294,9 +294,9 @@ class Xob_rate_mgr {
}
private void Save(int count, long bgn, long end) {
int dif = (int)(end - bgn) / 1000;
DecimalAdp rate = DecimalAdp_.divide_safe_(count, dif);
Decimal_adp rate = Decimal_adp_.divide_safe_(count, dif);
save_bfr
.Add_str(rate.Xto_str("#,##0.000")).Add_byte_pipe()
.Add_str(rate.To_str("#,##0.000")).Add_byte_pipe()
.Add_int_variable(count).Add_byte_pipe()
.Add_int_variable(dif).Add_byte_nl()
;

View File

@@ -18,6 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
package gplx.xowa.bldrs.cmds.ctgs; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.cmds.*;
import gplx.core.btries.*;
class Uca_trie {
private final Btrie_slim_mgr trie = Btrie_slim_mgr.cs();
public void Init() {
Init_itm(1, Bry_.ints_(1,1));
Init_itm(2, Bry_.ints_(1,1));
@@ -1043,7 +1044,7 @@ Init_itm(1021, Bry_.ints_(91,74,1,5,1,143));
Init_itm(1022, Bry_.ints_(91,72,1,5,1,143));
Init_itm(1023, Bry_.ints_(91,76,1,5,1,143));
Init_itm(1024, Bry_.ints_(92,52,1,134,143,1,143,5));
} private Btrie_slim_mgr trie = Btrie_slim_mgr.cs_();
}
public void Clear() {trie.Clear();}
public void Decode(Bry_bfr tmp, byte[] src, int bgn, int end) {
int i = bgn;

View File

@@ -27,7 +27,7 @@ public abstract class Xob_categorylinks_base extends Xob_sql_dump_base implement
parser.Fld_cmd_(this).Flds_req_(Fld_cl_from, Fld_cl_to, Fld_cl_timestamp, Fld_cl_collation, Fld_cl_sortkey, Fld_cl_type);
}
public void Exec(byte[] src, byte[] fld_key, int fld_idx, int fld_bgn, int fld_end, Bry_bfr file_bfr, Sql_file_parser_data data) {
if (Bry_.Eq(fld_key, Fld_cl_from)) cur_id = Bry_.Xto_int_or(src, fld_bgn, fld_end, -1);
if (Bry_.Eq(fld_key, Fld_cl_from)) cur_id = Bry_.To_int_or(src, fld_bgn, fld_end, -1);
else if (Bry_.Eq(fld_key, Fld_cl_to)) cur_ctg = Bry_.Mid(src, fld_bgn, fld_end);
else if (Bry_.Eq(fld_key, Fld_cl_collation)) cur_collation_is_uca = Bry_.Has_at_bgn(src, Collation_uca, fld_bgn, fld_end);
else if (Bry_.Eq(fld_key, Fld_cl_timestamp)) {

View File

@@ -29,7 +29,7 @@ public abstract class Xoctg_hiddencat_parser_base extends Xob_sql_dump_base impl
}
public void Exec(byte[] src, byte[] fld_key, int fld_idx, int fld_bgn, int fld_end, Bry_bfr file_bfr, Sql_file_parser_data data) {
switch (fld_idx) {
case Fld_id: cur_id = Bry_.Xto_int_or(src, fld_bgn, fld_end, -1); break;
case Fld_id: cur_id = Bry_.To_int_or(src, fld_bgn, fld_end, -1); break;
case Fld_key: cur_is_hiddencat = Bry_.Eq(Key_hiddencat, src, fld_bgn, fld_end); break;
case Fld_val:
if (!cur_is_hiddencat) {data.Cancel_row_y_(); return;}

View File

@@ -38,7 +38,7 @@ class Xob_bin_db_itm {
public static Xob_bin_db_itm new_v1(Fsm_bin_fil fil) {
byte[] name = Bry_.new_u8(fil.Url_rel()); // EX: "fsdb.bin.0000.sqlite3"
int ns_id = 0; // assume v1 dbs are all in main ns
int pt_id = Bry_.Xto_int_or(name, 9 , 13, Int_.MinValue); if (pt_id == Int_.MinValue) throw Err_.new_wo_type("bin_db_itm.parse: invalid pt_id", "name", fil.Url_rel(), "conn", fil.Conn().Conn_info().Xto_raw());
int pt_id = Bry_.To_int_or(name, 9 , 13, Int_.MinValue); if (pt_id == Int_.MinValue) throw Err_.new_wo_type("bin_db_itm.parse: invalid pt_id", "name", fil.Url_rel(), "conn", fil.Conn().Conn_info().Xto_raw());
return new Xob_bin_db_itm(fil.Id(), fil.Url(), ns_id, pt_id);
}
public static Xob_bin_db_itm new_v2(Fsm_bin_fil fil) {
@@ -50,8 +50,8 @@ class Xob_bin_db_itm {
int ns_end = Bry_finder.Find_fwd(name, ns_end_tkn, ns_bgn); if (ns_end == Bry_finder.Not_found) throw Err_.new_wo_type("bin_db_itm.parse: invalid ns_end", "name", fil.Url_rel(), "conn", fil.Conn().Conn_info().Xto_raw());
int pt_bgn = ns_end + ns_end_tkn_len;
int pt_end = Bry_finder.Find_fwd(name, pt_end_tkn, pt_bgn); if (pt_end == Bry_finder.Not_found) throw Err_.new_wo_type("bin_db_itm.parse: invalid pt_end", "name", fil.Url_rel(), "conn", fil.Conn().Conn_info().Xto_raw());
int ns_id = Bry_.Xto_int_or(name, ns_bgn, ns_end, Int_.MinValue); if (ns_id == Int_.MinValue) throw Err_.new_wo_type("bin_db_itm.parse: invalid ns_id", "name", fil.Url_rel(), "conn", fil.Conn().Conn_info().Xto_raw());
int pt_id = Bry_.Xto_int_or(name, pt_bgn, pt_end, Int_.MinValue); if (pt_id == Int_.MinValue) throw Err_.new_wo_type("bin_db_itm.parse: invalid pt_id", "name", fil.Url_rel(), "conn", fil.Conn().Conn_info().Xto_raw());
int ns_id = Bry_.To_int_or(name, ns_bgn, ns_end, Int_.MinValue); if (ns_id == Int_.MinValue) throw Err_.new_wo_type("bin_db_itm.parse: invalid ns_id", "name", fil.Url_rel(), "conn", fil.Conn().Conn_info().Xto_raw());
int pt_id = Bry_.To_int_or(name, pt_bgn, pt_end, Int_.MinValue); if (pt_id == Int_.MinValue) throw Err_.new_wo_type("bin_db_itm.parse: invalid pt_id", "name", fil.Url_rel(), "conn", fil.Conn().Conn_info().Xto_raw());
return new Xob_bin_db_itm(fil.Id(), fil.Url(), ns_id, pt_id);
}
}

View File

@@ -276,7 +276,7 @@ public class Xob_fsdb_make_cmd extends Xob_itm_basic_base implements Xob_cmd {
if (exit_after_commit) exit_now = true;
}
public void Cmd_end() {
usr_dlg.Note_many("", "", "fsdb_make.done: count=~{0} rate=~{1}", exec_count, DecimalAdp_.divide_safe_(exec_count, Env_.TickCount_elapsed_in_sec(time_bgn)).Xto_str("#,###.000"));
usr_dlg.Note_many("", "", "fsdb_make.done: count=~{0} rate=~{1}", exec_count, Decimal_adp_.divide_safe_(exec_count, Env_.TickCount_elapsed_in_sec(time_bgn)).To_str("#,###.000"));
if (src_fsdb_wkr != null) {
src_fsdb_wkr.Mnt_mgr().Mnts__get_main().Txn_end(); // NOTE: src_fsdb_wkr will be null if no src db defined
}

View File

@@ -50,10 +50,10 @@ public class Xob_image_cmd extends Xob_itm_dump_base implements Xob_cmd, GfoInvk
public void Exec(byte[] src, byte[] fld_key, int fld_idx, int fld_bgn, int fld_end, Bry_bfr file_bfr, Sql_file_parser_data data) {
switch (fld_idx) {
case Fld_img_name: cur_ttl = Bry_.Mid(src, fld_bgn, fld_end); break;
case Fld_img_size: cur_size = Bry_.Xto_int_or(src, fld_bgn, fld_end, -1); break;
case Fld_img_width: cur_width = Bry_.Xto_int_or(src, fld_bgn, fld_end, -1); break;
case Fld_img_height: cur_height = Bry_.Xto_int_or(src, fld_bgn, fld_end, -1); break;
case Fld_img_bits: cur_bits = Bry_.Xto_int_or(src, fld_bgn, fld_end, -1); break;
case Fld_img_size: cur_size = Bry_.To_int_or(src, fld_bgn, fld_end, -1); break;
case Fld_img_width: cur_width = Bry_.To_int_or(src, fld_bgn, fld_end, -1); break;
case Fld_img_height: cur_height = Bry_.To_int_or(src, fld_bgn, fld_end, -1); break;
case Fld_img_bits: cur_bits = Bry_.To_int_or(src, fld_bgn, fld_end, -1); break;
case Fld_img_media_type: cur_media_type = Bry_.Mid(src, fld_bgn, fld_end); break;
case Fld_img_minor_mime: cur_minor_mime = Bry_.Mid(src, fld_bgn, fld_end); break;
case Fld_img_timestamp: cur_timestamp = Bry_.Mid(src, fld_bgn, fld_end);

View File

@@ -19,6 +19,7 @@ package gplx.xowa.bldrs.css; import gplx.*; import gplx.xowa.*; import gplx.xowa
import gplx.ios.*; import gplx.xowa.html.*;
import gplx.xowa.wikis.*; import gplx.xowa.wikis.data.*;
import gplx.xowa.files.downloads.*;
import gplx.core.net.*;
public class Xoa_css_extractor {
public IoEngine_xrg_downloadFil Download_xrg() {return download_xrg;} private IoEngine_xrg_downloadFil download_xrg = Io_mgr.I.DownloadFil_args("", Io_url_.Empty);
public Xoa_css_extractor Wiki_domain_(byte[] v) {wiki_domain = v; return this;} private byte[] wiki_domain;
@@ -33,6 +34,7 @@ public class Xoa_css_extractor {
public Xoa_css_extractor Url_encoder_(Url_encoder v) {url_encoder = v; return this;} private Url_encoder url_encoder;
public Xoa_css_extractor Wiki_code_(byte[] v) {this.wiki_code = v; return this;} private byte[] wiki_code = null;
private byte[] mainpage_html; private boolean lang_is_ltr = true;
private final Gfo_url_parser url_parser = new Gfo_url_parser();
public void Init_by_app(Xoae_app app) {
this.usr_dlg = app.Usr_dlg();
Xof_download_wkr download_wkr = app.Wmf_mgr().Download_wkr();
@@ -234,6 +236,7 @@ public class Xoa_css_extractor {
int prv_pos = 0;
int css_find_bgn_len = Css_find_bgn.length;
byte[] protocol_prefix_bry = Bry_.new_u8(protocol_prefix);
Gfo_url gfo_url = new Gfo_url();
while (true) {
int url_bgn = Bry_finder.Find_fwd(raw, Css_find_bgn, prv_pos); if (url_bgn == Bry_.NotFound) break; // nothing left; stop
url_bgn += css_find_bgn_len;
@@ -241,7 +244,10 @@ public class Xoa_css_extractor {
byte[] css_url_bry = Bry_.Mid(raw, url_bgn, url_end);
css_url_bry = Bry_.Replace(css_url_bry, Css_amp_find, Css_amp_repl); // &amp; -> &
css_url_bry = url_encoder.Decode(css_url_bry); // %2C -> %7C -> |
css_url_bry = Bry_.Add(protocol_prefix_bry, css_url_bry);
url_parser.Parse(gfo_url, css_url_bry, 0, css_url_bry.length);
if ( gfo_url.Protocol_tid() == Gfo_protocol_itm.Tid_relative_1 // if rel url, add protocol_prefix DATE:2015-08-01
|| (Env_.Mode_testing() && gfo_url.Protocol_tid() == Gfo_protocol_itm.Tid_unknown)) // TEST:
css_url_bry = Bry_.Add(protocol_prefix_bry, css_url_bry);
rv.Add(String_.new_u8(css_url_bry));
prv_pos = url_end;
}

View File

@@ -39,7 +39,7 @@ public class Xoa_css_img_downloader {
int src_len = src.length;
int prv_pos = 0;
Bry_bfr bfr = Bry_bfr.new_(src_len);
Hash_adp img_hash = Hash_adp_bry.cs_();
Hash_adp img_hash = Hash_adp_bry.cs();
while (true) {
int url_pos = Bry_finder.Find_fwd(src, Bry_url, prv_pos);
if (url_pos == Bry_.NotFound) {bfr.Add_mid(src, prv_pos, src_len); break;} // no more "url("; exit;

View File

@@ -49,7 +49,7 @@ class Xob_css_parser {
}
}
private static final byte Tkn_import = 1, Tkn_url = 2;
private static final Btrie_slim_mgr tkns_trie = Btrie_slim_mgr.ci_ascii_()
private static final Btrie_slim_mgr tkns_trie = Btrie_slim_mgr.ci_a7()
.Add_str_byte("@import" , Tkn_import)
.Add_str_byte(" url(" , Tkn_url)
;

View File

@@ -76,7 +76,7 @@ class Xob_url_fixer_tkn {
private static Btrie_slim_mgr bgn_trie;
public static Btrie_slim_mgr Bgn_trie() {
if (bgn_trie == null) {
bgn_trie = Btrie_slim_mgr.ci_ascii_();
bgn_trie = Btrie_slim_mgr.ci_a7();
trie_add(bgn_trie, Tid_bgn_slash_1 , "/");
trie_add(bgn_trie, Tid_bgn_slash_2 , "//");
trie_add(bgn_trie, Tid_bgn_http , "http://");
@@ -88,7 +88,7 @@ class Xob_url_fixer_tkn {
private static Btrie_slim_mgr mid_trie;
public static Btrie_slim_mgr Mid_trie() {
if (mid_trie == null) {
mid_trie = Btrie_slim_mgr.ci_ascii_();
mid_trie = Btrie_slim_mgr.ci_a7();
trie_add(mid_trie, Tid_mid_rel_1 , "/../");
trie_add(mid_trie, Tid_mid_rel_2 , "/./");
trie_add(mid_trie, Tid_mid_slash , "/");

View File

@@ -20,7 +20,7 @@ import gplx.xowa.wikis.ttls.*;
public class Xob_ttl_filter_mgr {
private boolean exclude_is_empty = true, include_is_empty = true;
private final Xob_ttl_filter_mgr_srl srl = new Xob_ttl_filter_mgr_srl();
private Hash_adp_bry exclude_hash = Hash_adp_bry.cs_(), include_hash = Hash_adp_bry.cs_();
private Hash_adp_bry exclude_hash = Hash_adp_bry.cs(), include_hash = Hash_adp_bry.cs();
public void Clear() {
exclude_hash.Clear();
include_hash.Clear();

View File

@@ -37,7 +37,7 @@ public class Xob_ttl_filter_mgr_srl_tst {
}
class Xob_ttl_filter_mgr_srl_fxt {
private final Xob_ttl_filter_mgr_srl mgr = new Xob_ttl_filter_mgr_srl();
private final Hash_adp_bry hash = Hash_adp_bry.cs_();
private final Hash_adp_bry hash = Hash_adp_bry.cs();
public void Clear() {
hash.Clear();
}

View File

@@ -24,7 +24,7 @@ class Dg_file {
public Dg_rule[] Lines() {return lines;} private final Dg_rule[] lines;
}
class Dg_rule {// EX: < wikipedia ><-30>
private final Hash_adp_bry word_idx_hash = Hash_adp_bry.cs_();
private final Hash_adp_bry word_idx_hash = Hash_adp_bry.cs();
public Dg_rule(int file_id, int id, int idx, int tid, byte[] key, int score, Dg_word[] words) {
this.file_id = file_id;
this.id = id; this.idx = idx; this.tid = tid; this.key = key; this.score = score; this.words = words;

View File

@@ -20,7 +20,7 @@ import gplx.core.primitives.*; import gplx.core.btries.*;
import gplx.xowa.bldrs.filters.core.*;
public class Dg_match_mgr {
private int score_init, score_fail; private boolean log_enabled, case_match;
private final Btrie_slim_mgr btrie = Btrie_slim_mgr.cs_();
private final Btrie_slim_mgr btrie = Btrie_slim_mgr.cs();
private final Ordered_hash rules = Ordered_hash_.new_bry_();
private final Ordered_hash rule_group_hash = Ordered_hash_.new_bry_(), rule_tally_hash = Ordered_hash_.new_bry_();
private final Dg_parser parser = new Dg_parser();

View File

@@ -71,7 +71,7 @@ class Dg_parser {
if (src[brack_bgn] != Byte_ascii.Lt) {Warn("dg.invalid_line.wrong_term_dlm", rel_path, line_idx, src, line_bgn, line_end); break;}
brack_end = Bry_finder.Find_fwd(src, Byte_ascii.Gt, brack_bgn);
if (brack_end == Bry_finder.Not_found) {Warn("dg.invalid_line.score not found", rel_path, line_idx, src, line_bgn, line_end); break;}
int parse_score = Bry_.Xto_int_or(src, brack_bgn + 1, brack_end, Int_.MinValue);
int parse_score = Bry_.To_int_or(src, brack_bgn + 1, brack_end, Int_.MinValue);
if (parse_score == Int_.MinValue) {Warn("dg.invalid_line.score is invalid", rel_path, line_idx, src, line_bgn, line_end); break;}
score = parse_score;
break;

View File

@@ -331,7 +331,7 @@ public class Xol_mw_lang_parser {
, Tid_fallback = 5, Tid_rtl = 6
, Tid_separatorTransformTable = 7, Tid_digitTransformTable = 8, Tid_digitGroupingPattern = 9
;
private static Hash_adp_bry Tid_hash = Hash_adp_bry.cs_()
private static Hash_adp_bry Tid_hash = Hash_adp_bry.cs()
.Add_str_byte("namespaceNames", Tid_namespaceNames).Add_str_byte("namespaceAliases", Tid_namespaceAliases).Add_str_byte("specialPageAliases", Tid_specialPageAliases)
.Add_str_byte("messages", Tid_messages).Add_str_byte("magicWords", Tid_magicwords)
.Add_str_byte("fallback", Tid_fallback).Add_str_byte("rtl", Tid_rtl)
@@ -340,7 +340,7 @@ public class Xol_mw_lang_parser {
;
public static int Id_by_mw_name(byte[] src) {
if (mw_names == null) {
mw_names = Btrie_slim_mgr.cs_();
mw_names = Btrie_slim_mgr.cs();
mw_names.Add_obj("NS_MEDIA", Int_obj_val.new_(Xow_ns_.Id_media));
mw_names.Add_obj("NS_SPECIAL", Int_obj_val.new_(Xow_ns_.Id_special));
mw_names.Add_obj("NS_MAIN", Int_obj_val.new_(Xow_ns_.Id_main));

View File

@@ -18,7 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
package gplx.xowa.bldrs.xmls; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*;
import gplx.gfui.*; import gplx.xowa.bldrs.cmds.utils.*;
public class Xob_import_marker {
private final Hash_adp_bry in_progress_hash = Hash_adp_bry.cs_();
private final Hash_adp_bry in_progress_hash = Hash_adp_bry.cs();
public void Bgn(Xowe_wiki wiki) {
in_progress_hash.Add_as_key_and_val(wiki.Domain_bry());
Io_mgr.I.SaveFilStr(url_(wiki), "XOWA has created this file to indicate that an import is in progress. This file will be deleted once the import is completed.");

View File

@@ -59,7 +59,7 @@ public class Xob_xml_parser {
case Xob_xml_parser_.Id_id_bgn: if (page_id_needed) data_bgn = pos; break; // only flag if first <id>; note that 1st <id> always belongs to <page>;
case Xob_xml_parser_.Id_id_end:
if (page_id_needed) {
int page_id = Bry_.Xto_int_or(src, data_bgn, hook_bgn, -1); if (page_id == -1) usr_dlg.Warn_many(GRP_KEY, "page_id_invalid", "page_id_is_invalid: ~{0}", String_.new_u8(src, data_bgn, hook_bgn));
int page_id = Bry_.To_int_or(src, data_bgn, hook_bgn, -1); if (page_id == -1) usr_dlg.Warn_many(GRP_KEY, "page_id_invalid", "page_id_is_invalid: ~{0}", String_.new_u8(src, data_bgn, hook_bgn));
rv.Id_(page_id);
page_id_needed = false; // turn off for other <id> tags (<contributor>; <revision>)
}

View File

@@ -22,7 +22,7 @@ public class Xob_xml_parser_tst {
Io_mgr.I.InitEngine_mem();
Xoae_app app = Xoa_app_fxt.app_();
bldr = new Xob_bldr(app);
} private Xow_ns_mgr ns_mgr = Xow_ns_mgr_.default_(gplx.xowa.langs.cases.Xol_case_mgr_.Ascii());
} private Xow_ns_mgr ns_mgr = Xow_ns_mgr_.default_(gplx.xowa.langs.cases.Xol_case_mgr_.A7());
@Test public void Basic_docs_1() {
Xowd_page_itm doc = doc_(1, "a", "a a", Date_1);
fil = page_bldr.Add(doc).XtoByteStreamRdr();