mirror of
https://github.com/gnosygnu/xowa.git
synced 2026-03-02 03:49:30 +00:00
v3.1.4.2
This commit is contained in:
@@ -49,6 +49,7 @@ public class Xob_cmd_keys {
|
||||
, Key_util_cleanup = "util.cleanup" // "core.cleanup"
|
||||
, Key_util_download = "util.download" // "file.download"
|
||||
, Key_util_xml_dump = "util.xml_dump"
|
||||
, Key_util_random = "util.random"
|
||||
, Key_wbase_json_dump = "wbase.json_dump"
|
||||
, Key_wbase_qid = "wbase.qid" // "text.wdata.qid"
|
||||
, Key_wbase_pid = "wbase.pid" // "text.wdata.pid"
|
||||
|
||||
@@ -41,8 +41,7 @@ public abstract class Xob_ctg_v1_base extends Xob_itm_dump_base implements Xobd_
|
||||
int ttl_bgn = end, ttl_end = -1;
|
||||
int pos = end;
|
||||
while (true) {
|
||||
if (pos == src_len) {
|
||||
Log(Tid_eos, page, src, bgn);
|
||||
if (pos == src_len) { // fail: EOS
|
||||
return end;
|
||||
}
|
||||
Object o = trie.Match_bgn(src, pos, src_len);
|
||||
@@ -56,11 +55,9 @@ public abstract class Xob_ctg_v1_base extends Xob_itm_dump_base implements Xobd_
|
||||
if (ttl_end > ttl_bgn) // NOTE: ignore examples like [[Category: ]]
|
||||
Process_ctg(page, src, src_len, ttl_bgn, ttl_end);
|
||||
break;
|
||||
case Tid_brack_bgn:
|
||||
Log(Tid_brack_bgn, page, src, bgn);
|
||||
case Tid_brack_bgn: // fail: [[ is invalid
|
||||
return pos;
|
||||
case Tid_nl:
|
||||
Log(Tid_nl, page, src, bgn);
|
||||
case Tid_nl: // fail: \n is invalid
|
||||
return pos;
|
||||
}
|
||||
return pos + bry.length;
|
||||
@@ -68,19 +65,6 @@ public abstract class Xob_ctg_v1_base extends Xob_itm_dump_base implements Xobd_
|
||||
++pos;
|
||||
}
|
||||
}
|
||||
@gplx.Virtual public void Log(byte err_tid, Xowd_page_itm page, byte[] src, int ctg_bgn) {
|
||||
String title = String_.new_u8(page.Ttl_full_db());
|
||||
int ctg_end = ctg_bgn + 40; if (ctg_end > src.length) ctg_end = src.length;
|
||||
String ctg_str = String_.Replace(String_.new_u8(src, ctg_bgn, ctg_end), "\n", "");
|
||||
String err = "";
|
||||
switch (err_tid) {
|
||||
case Tid_eos: err = "eos"; break;
|
||||
case Tid_nl: err = "bad \\n"; break;
|
||||
case Tid_brack_bgn: err = "bad [["; break;
|
||||
}
|
||||
bldr.Usr_dlg().Log_many(GRP_KEY, "ctg_fail", "~{0}\n>> ~{1}\n~{2}\n~{3}\n\n", LogErr_hdr, err + " " + ctg_str, "http://" + wiki.Domain_str() + "/wiki/" + title, Bry_.MidByLenToStr(src, ctg_bgn, 100));
|
||||
log_idx++;
|
||||
} int log_idx = 0; final String LogErr_hdr = String_.Repeat("-", 80);
|
||||
@gplx.Virtual public void Process_ctg(Xowd_page_itm page, byte[] src, int src_len, int bgn, int end) {
|
||||
Process_ctg_row(fld_wtr, dump_fil_len, dump_url_gen, page.Id(), src, src_len, bgn, end);
|
||||
}
|
||||
|
||||
@@ -56,6 +56,4 @@ class Xobd_parser_wkr_ctg_tstr extends Xob_ctg_v1_txt { public List_adp Found()
|
||||
@Override public void Process_ctg(Xowd_page_itm page, byte[] src, int src_len, int bgn, int end) {
|
||||
found.Add(Bry_.Mid(src, bgn, end));
|
||||
}
|
||||
@Override public void Log(byte err_tid, Xowd_page_itm page, byte[] src, int ctg_bgn) {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -91,7 +91,7 @@ public class Xob_lnki_temp_wkr extends Xob_dump_mgr_base implements Xopg_redlink
|
||||
byte[] ttl_bry = ttl.Page_db();
|
||||
byte page_tid = Xow_page_tid.Identify(wiki.Domain_tid(), ns.Id(), ttl_bry);
|
||||
if (page_tid != Xow_page_tid.Tid_wikitext) return; // ignore js, css, lua, json
|
||||
Xoae_page page = ctx.Cur_page();
|
||||
Xoae_page page = ctx.Page();
|
||||
page.Clear_all();
|
||||
page.Bldr__ns_ord_(ns_ord);
|
||||
page.Ttl_(ttl).Revision_data().Id_(db_page.Id());
|
||||
@@ -102,7 +102,7 @@ public class Xob_lnki_temp_wkr extends Xob_dump_mgr_base implements Xopg_redlink
|
||||
else {
|
||||
parser.Parse_page_all_clear(root, ctx, ctx.Tkn_mkr(), page_src);
|
||||
if (gen_html && !page.Redirected())
|
||||
wiki.Html_mgr().Page_wtr_mgr().Gen(ctx.Cur_page().Root_(root), Xopg_page_.Tid_read);
|
||||
wiki.Html_mgr().Page_wtr_mgr().Gen(ctx.Page().Root_(root), Xopg_page_.Tid_read);
|
||||
if (gen_hdump)
|
||||
hdump_bldr.Insert(page.Root_(root));
|
||||
root.Clear();
|
||||
@@ -134,10 +134,10 @@ public class Xob_lnki_temp_wkr extends Xob_dump_mgr_base implements Xopg_redlink
|
||||
byte[] ttl_commons = Xto_commons(ns_file_is_case_match_all, commons_wiki, ttl);
|
||||
if ( Xof_lnki_page.Null_n(lnki_page) // page set
|
||||
&& Xof_lnki_time.Null_n(lnki_time)) // thumbtime set
|
||||
usr_dlg.Warn_many("", "", "page and thumbtime both set; this may be an issue with fsdb: page=~{0} ttl=~{1}", ctx.Cur_page().Ttl().Page_db_as_str(), String_.new_u8(ttl));
|
||||
usr_dlg.Warn_many("", "", "page and thumbtime both set; this may be an issue with fsdb: page=~{0} ttl=~{1}", ctx.Page().Ttl().Page_db_as_str(), String_.new_u8(ttl));
|
||||
if (lnki.Ns_id() == Xow_ns_.Tid__media)
|
||||
lnki_src_tid = Xob_lnki_src_tid.Tid_media;
|
||||
tbl.Insert_cmd_by_batch(ctx.Cur_page().Bldr__ns_ord(), ctx.Cur_page().Revision_data().Id(), ttl, ttl_commons, Byte_.By_int(ext.Id()), lnki.Lnki_type(), lnki_src_tid, lnki.W(), lnki.H(), lnki.Upright(), lnki_time, lnki_page);
|
||||
tbl.Insert_cmd_by_batch(ctx.Page().Bldr__ns_ord(), ctx.Page().Revision_data().Id(), ttl, ttl_commons, Byte_.By_int(ext.Id()), lnki.Lnki_type(), lnki_src_tid, lnki.W(), lnki.H(), lnki.Upright(), lnki_time, lnki_page);
|
||||
}
|
||||
@Override public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
if (ctx.Match(k, Invk_wdata_enabled_)) wdata_enabled = m.ReadYn("v");
|
||||
|
||||
31
400_xowa/src/gplx/xowa/bldrs/cmds/randoms/Xob_rnd_cmd.java
Normal file
31
400_xowa/src/gplx/xowa/bldrs/cmds/randoms/Xob_rnd_cmd.java
Normal file
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
XOWA: the XOWA Offline Wiki Application
|
||||
Copyright (C) 2012 gnosygnu@gmail.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
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.bldrs.cmds.randoms; import gplx.*; import gplx.xowa.*; import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.cmds.*;
|
||||
public class Xob_rnd_cmd implements Xob_cmd {
|
||||
// private final Xob_bldr bldr; private final Xowe_wiki wiki;
|
||||
public Xob_rnd_cmd(Xob_bldr bldr, Xowe_wiki wiki) {}//this.bldr = bldr; this.wiki = wiki;}
|
||||
public String Cmd_key() {return Xob_cmd_keys.Key_util_random;}
|
||||
public void Cmd_run() {
|
||||
}
|
||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {return this;}
|
||||
|
||||
public void Cmd_init(Xob_bldr bldr) {}
|
||||
public void Cmd_bgn(Xob_bldr bldr) {}
|
||||
public void Cmd_end() {}
|
||||
public void Cmd_term() {}
|
||||
}
|
||||
@@ -33,8 +33,6 @@ public class Xob_tmp_wtr {
|
||||
public void Flush(Gfo_usr_dlg usr_dlg) {
|
||||
if (bfr.Len() == 0) return; // nothing to flush
|
||||
Io_url url = url_gen.Nxt_url();
|
||||
if (bfr.Len() > fil_max) // NOTE: data can exceed proscribed len; EX: wikt:Category for Italian nouns is 1 MB+
|
||||
usr_dlg.Log_many("xowa.tmp_wtr", "flush", "--fil exceeds len: ~{0} ~{1} ~{2}", bfr.Len(), fil_max, url.Xto_api());
|
||||
Io_mgr.Instance.AppendFilBfr(url, bfr);
|
||||
}
|
||||
public void Rls() {bfr.Rls();}
|
||||
|
||||
Reference in New Issue
Block a user