1
0
mirror of https://github.com/gnosygnu/xowa.git synced 2026-03-02 03:49:30 +00:00

Html: Write full page url to log file, not just page title [#387]

This commit is contained in:
gnosygnu
2019-03-20 01:44:22 -04:00
parent 4f22548121
commit 82bee2e877
10 changed files with 24 additions and 22 deletions

View File

@@ -164,7 +164,7 @@ class Xoh_toc_htmlr__basic__fxt {
private final Bry_bfr bfr = Bry_bfr_.New();
public void Clear() {wtr.Clear();}
public void Init__add(int hdr_num, String hdr_txt) {wtr.Add(hdr_num, Bry_.new_u8(hdr_txt));}
public void Init__init_page(String toc_title, boolean page_banner) {wtr.Init(gplx.xowa.htmls.core.htmls.tidy.Xow_tidy_mgr_interface_.Noop, Bry_.new_u8(toc_title), Bry_.Empty);}
public void Init__init_page(String toc_title, boolean page_banner) {wtr.Init(gplx.xowa.htmls.core.htmls.tidy.Xow_tidy_mgr_interface_.Noop, Xoa_url.Test(), Bry_.new_u8(toc_title));}
public void Test__html_itms(String... expd_ary) {
Gftest.Eq__ary(expd_ary, String_.Ary(Bry_split_.Split_lines(wtr.Test__to_html())));
}

View File

@@ -32,10 +32,10 @@ public class Xoh_toc_mgr {
htmlr.Clear();
toc_bgn = -1;
}
public void Init(Xow_tidy_mgr_interface tidy_mgr, byte[] toc_title, byte[] page_name) {
public void Init(Xow_tidy_mgr_interface tidy_mgr, Xoa_url page_url, byte[] toc_title) {
this.Clear();
htmlr.Init(toc_title);
txt_wkr.Init(tidy_mgr, page_name);
txt_wkr.Init(tidy_mgr, page_url);
}
public Xoh_toc_itm Add(int hdr_num, byte[] hdr_txt) {
Xoh_toc_itm itm = new Xoh_toc_itm();

View File

@@ -23,38 +23,38 @@ class Xoh_toc_wkr__txt {
private final Xop_amp_mgr amp_mgr = Xop_amp_mgr.Instance;
private final Hash_adp anch_hash = Hash_adp_bry.ci_u8(gplx.xowa.langs.cases.Xol_case_mgr_.U8());
private Xow_tidy_mgr_interface tidy_mgr;
private byte[] page_name;
private byte[] page_url_bry;
public void Clear() {
anch_bfr.Clear();
text_bfr.Clear();
anch_hash.Clear();
}
public void Init(Xow_tidy_mgr_interface tidy_mgr, byte[] page_name) {
public void Init(Xow_tidy_mgr_interface tidy_mgr, Xoa_url page_url) {
this.tidy_mgr = tidy_mgr;
this.page_name = page_name;
this.page_url_bry = page_url == null ? Bry_.new_a7("null_url") : page_url.To_bry();
}
public void Calc_anch_text(Xoh_toc_itm rv, byte[] src) { // text within hdr; EX: <h2>Abc</h2> -> Abc
int end = src.length;
src = Gfh_utl.Del_comments(text_bfr, src, 0, end);
end = src.length;
tag_rdr.Init(page_name, src, 0, end);
tag_rdr.Init(page_url_bry, src, 0, end);
try {
if (!Calc_anch_text_recurse(src, 0, end)) {
Gfo_usr_dlg_.Instance.Log_many("", "", "toc:invalid html; page=~{0} src=~{1}", page_name, src);
Gfo_usr_dlg_.Instance.Log_many("", "", "toc:invalid html; page=~{0} src=~{1}", page_url_bry, src);
// tidy html; note reusing text_bfr as temp bfr
text_bfr.Clear().Add(src);
tidy_mgr.Exec_tidy(text_bfr, Bool_.N, page_name);
tidy_mgr.Exec_tidy(text_bfr, Bool_.N, page_url_bry);
src = text_bfr.To_bry_and_clear();
end = src.length;
tag_rdr.Init(page_name, src, 0, end);
tag_rdr.Init(page_url_bry, src, 0, end);
// try to calc again; if fail, give up
if (!Calc_anch_text_recurse(src, 0, end))
throw Err_.new_wo_type("could not tidy html");
}
} catch (Exception e) {
Gfo_usr_dlg_.Instance.Warn_many("", "", "toc:failed while generating anch_text; page=~{0} src=~{1} err=~{2}", page_name, src, Err_.Message_gplx_log(e));
Gfo_usr_dlg_.Instance.Warn_many("", "", "toc:failed while generating anch_text; page=~{0} src=~{1} err=~{2}", page_url_bry, src, Err_.Message_gplx_log(e));
text_bfr.Clear().Add(src);
anch_encoder.Encode(anch_bfr, src);
}
@@ -138,7 +138,7 @@ class Xoh_toc_wkr__txt {
int rhs_bgn = -1, rhs_end = -1, new_pos = lhs_end;
if (lhs_is_pair) { // get rhs unless inline
if (tag_id == Gfh_tag_.Id__any) {
Gfo_usr_dlg_.Instance.Warn_many("", "", "unknown tag in toc: page=~{0} tag=~{1}", page_name, lhs_bry);
Gfo_usr_dlg_.Instance.Warn_many("", "", "unknown tag in toc: page=~{0} tag=~{1}", page_url_bry, lhs_bry);
Gfh_tag rhs = tag_rdr.Tag__peek_fwd_tail(lhs_bry);
if (rhs.Name_id() == Gfh_tag_.Id__eos) return false;
rhs_bgn = rhs.Src_bgn(); rhs_end = rhs.Src_end();

View File

@@ -56,7 +56,7 @@ class Xoh_toc_wkr__txt__fxt {
public void Clear() {
wkr.Clear();
tidy_mgr.Clear();
wkr.Init(tidy_mgr, Xoa_page_.Main_page_bry);
wkr.Init(tidy_mgr, Xoa_url.Test());
}
public void Init__tidy(String html, String tidy) {tidy_mgr.Add(Bry_.new_u8(html), Bry_.new_u8(tidy));}
public void Test__anch(String html, String expd_anch) {Test__both(html, expd_anch, null);}