mirror of
https://github.com/gnosygnu/xowa.git
synced 2026-03-02 03:49:30 +00:00
v2.7.3.1
This commit is contained in:
@@ -76,7 +76,7 @@ public class Xow_xtn_mgr implements GfoInvkAble {
|
||||
return this;
|
||||
}
|
||||
public Xox_mgr Get_at(int i) {return (Xox_mgr)regy.Get_at(i);}
|
||||
public Xox_mgr Get_or_fail(byte[] key) {Object rv = regy.Get_by(key); if (rv == null) throw Exc_.new_("unknown xtn", "key", String_.new_u8(key)); return (Xox_mgr)rv;}
|
||||
public Xox_mgr Get_or_fail(byte[] key) {Object rv = regy.Get_by(key); if (rv == null) throw Err_.new_wo_type("unknown xtn", "key", String_.new_u8(key)); return (Xox_mgr)rv;}
|
||||
private Xox_mgr Add(Xoae_app app, Xox_mgr xtn) {
|
||||
xtn.Xtn_ctor_by_app(app);
|
||||
regy.Add(xtn.Xtn_key(), xtn);
|
||||
|
||||
@@ -49,7 +49,7 @@ class Dpl_html_data {
|
||||
case Dpl_itm_keys.Key_none: return Itm_none;
|
||||
case Dpl_itm_keys.Key_ordered: return Itm_ordered;
|
||||
case Dpl_itm_keys.Key_unordered: return Itm_unordered;
|
||||
default: throw Exc_.new_unhandled(key);
|
||||
default: throw Err_.new_unhandled(key);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -177,7 +177,7 @@ class Dpl_stable_tid {
|
||||
case Dpl_itm_keys.Key_exclude: return Tid_exclude;
|
||||
case Dpl_itm_keys.Key_include: return Tid_include;
|
||||
case Dpl_itm_keys.Key_only: return Tid_only;
|
||||
default: throw Exc_.new_unhandled(key);
|
||||
default: throw Err_.new_unhandled(key);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ class Dpl_itm_keys {
|
||||
case Dpl_itm_keys.Key_false: return false;
|
||||
case Dpl_itm_keys.Key_true: return true;
|
||||
case Dpl_itm_keys.Key_null: return or;
|
||||
default: throw Exc_.new_unhandled(String_.new_u8(bry)); // shouldn't happen; should always go to or;
|
||||
default: throw Err_.new_unhandled(String_.new_u8(bry)); // shouldn't happen; should always go to or;
|
||||
}
|
||||
}
|
||||
public static final byte
|
||||
|
||||
@@ -24,7 +24,7 @@ class Dpl_redirect {
|
||||
case Dpl_itm_keys.Key_exclude: return Tid_exclude;
|
||||
case Dpl_itm_keys.Key_include: return Tid_include;
|
||||
case Dpl_itm_keys.Key_only: return Tid_only;
|
||||
default: throw Exc_.new_unhandled(key);
|
||||
default: throw Err_.new_unhandled(key);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ class Dpl_sort {
|
||||
case Dpl_itm_keys.Key_categorysortkey: return Tid_categorysortkey;
|
||||
case Dpl_itm_keys.Key_popularity: return Tid_popularity; // FUTURE: default to categoryadd if counters disabled
|
||||
case Dpl_itm_keys.Key_categoryadd: return Tid_categoryadd;
|
||||
default: throw Exc_.new_unhandled(key);
|
||||
default: throw Err_.new_unhandled(key);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -121,7 +121,7 @@ public class Gallery_html_wtr {
|
||||
}
|
||||
}
|
||||
class Gallery_html_wtr_ {
|
||||
public static final byte[] Cls_packed = Bry_.new_u8(" mw-gallery-packed");
|
||||
public static final byte[] Cls_packed = Bry_.new_a7(" mw-gallery-packed");
|
||||
public static final Bry_fmtr
|
||||
Mgr_all_fmtr = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
|
||||
( "<ul id=\"xowa_gallery_ul_~{gallery_id}\" class=\"gallery~{gallery_cls}\" style=\"~{gallery_style}\">~{itm_list}"
|
||||
|
||||
@@ -205,7 +205,7 @@ public class Gallery_itm_parser {
|
||||
else
|
||||
cur_itm.Page_end_(fld_end);
|
||||
break;
|
||||
default: throw Exc_.new_unhandled(fld_end);
|
||||
default: throw Err_.new_unhandled(fld_end);
|
||||
}
|
||||
}
|
||||
private byte Skip_ws() {
|
||||
|
||||
@@ -164,7 +164,7 @@ class Gallery_mgr_base_fxt {
|
||||
public void Test_html_frag(String raw, String... expd_frags) {fxt.Test_html_full_frag(raw, expd_frags);} // TODO: change to wiki_str; currently uids do not get reset if wiki
|
||||
public void Test_html_frag_n(String raw, String... expd_frags) {fxt.Test_html_full_frag_n(raw, expd_frags);}
|
||||
public void Test_html_modules_js(String expd) {
|
||||
fxt.Page().Html_data().Module_mgr().Itm__globals().Enabled_n_();
|
||||
fxt.Page().Html_data().Head_mgr().Itm__globals().Enabled_n_();
|
||||
fxt.Test_html_modules_js(expd);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ public class Gallery_mgr_packed_base extends Gallery_mgr_base {
|
||||
}
|
||||
@Override public void Itms_per_row_(int v) {}
|
||||
@Override public void Get_modules(Xoae_page page) {
|
||||
page.Html_data().Module_mgr().Itm__gallery().Enabled_y_();
|
||||
page.Html_data().Head_mgr().Itm__gallery().Enabled_y_();
|
||||
}
|
||||
@Override public int Get_thumb_padding() {return 0;}
|
||||
@Override public int Get_gb_padding() {return 2;}
|
||||
|
||||
@@ -69,7 +69,7 @@ public class Gallery_xnde implements Xox_xnde, Xop_xnde_atr_parser {
|
||||
boolean log_wkr_enabled = Log_wkr != Xop_log_basic_wkr.Null; if (log_wkr_enabled) Log_wkr.Log_end_xnde(ctx.Cur_page(), Xop_log_basic_wkr.Tid_gallery, src, xnde);
|
||||
ctx.Para().Process_block__xnde(xnde.Tag(), Xop_xnde_tag.Block_end); // cancel pre for <gallery>; DATE:2014-03-11
|
||||
} catch (Exception exc) {
|
||||
wiki.Appe().Usr_dlg().Warn_many("", "", "failed to write gallery; src=~{0} err=~{1}", String_.new_u8(src, xnde.Src_bgn(), xnde.Src_end()), Err_.Message_gplx(exc));
|
||||
wiki.Appe().Usr_dlg().Warn_many("", "", "failed to write gallery; src=~{0} err=~{1}", String_.new_u8(src, xnde.Src_bgn(), xnde.Src_end()), Err_.Message_gplx_full(exc));
|
||||
}
|
||||
} public static Xop_log_basic_wkr Log_wkr = Xop_log_basic_wkr.Null;
|
||||
public void Xtn_write(Bry_bfr bfr, Xoae_app app, Xop_ctx ctx, Xoh_html_wtr html_wtr, Xoh_wtr_ctx hctx, Xop_xnde_tkn xnde, byte[] src) {
|
||||
@@ -81,7 +81,7 @@ public class Gallery_xnde implements Xox_xnde, Xop_xnde_atr_parser {
|
||||
gallery_mgr.Write_html(bfr, wiki, ctx.Cur_page(), ctx, hctx, src, this);
|
||||
}
|
||||
} catch (Exception exc) {
|
||||
wiki.Appe().Usr_dlg().Warn_many("", "", "failed to write gallery; src=~{0} err=~{1}", String_.new_u8(src, xnde.Src_bgn(), xnde.Src_end()), Err_.Message_gplx(exc));
|
||||
wiki.Appe().Usr_dlg().Warn_many("", "", "failed to write gallery; src=~{0} err=~{1}", String_.new_u8(src, xnde.Src_bgn(), xnde.Src_end()), Err_.Message_gplx_full(exc));
|
||||
}
|
||||
}
|
||||
private void Init_atrs(Xowe_wiki wiki) {
|
||||
|
||||
@@ -82,7 +82,7 @@ class Hiero_html_wtr {
|
||||
));
|
||||
public byte[] Cartouche_img(Xoh_wtr_ctx hctx, boolean bgn, byte[] glyph) { // render open / close cartouche; note that MW has two branches, but they are both the same
|
||||
int height = (int)((Hiero_html_mgr.Max_height * Hiero_html_mgr.scale) / 100);
|
||||
Hiero_phoneme_itm phoneme_itm = phoneme_mgr.Get_by_key(glyph); if (phoneme_itm == null) throw Exc_.new_("missing phoneme", "glyph", String_.new_u8(glyph));
|
||||
Hiero_phoneme_itm phoneme_itm = phoneme_mgr.Get_by_key(glyph); if (phoneme_itm == null) throw Err_.new_wo_type("missing phoneme", "glyph", String_.new_u8(glyph));
|
||||
byte[] code = phoneme_itm.Gardiner_code();
|
||||
byte[] title = bgn ? Html_entity_.Lt_bry : Html_entity_.Gt_bry;
|
||||
return cartouche_img_fmtr.Bld_bry_many(temp_bfr, hiero_img_dir, code, height, title);
|
||||
|
||||
@@ -58,7 +58,7 @@ class Hiero_parser {
|
||||
case Hiero_parser_itm.Tid_tkn_spr:
|
||||
New_token(itm);
|
||||
break;
|
||||
default: throw Exc_.new_unhandled(itm.Tid()); // should never happen
|
||||
default: throw Err_.new_unhandled(itm.Tid()); // should never happen
|
||||
}
|
||||
pos = new_pos;
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ public class Hiero_xnde implements Xox_xnde, Xop_xnde_atr_parser {
|
||||
ctx.Para().Process_block__xnde(xnde.Tag(), Xop_xnde_tag.Block_bgn);
|
||||
xtn_mgr = (Hiero_xtn_mgr)wiki.Xtn_mgr().Get_or_fail(Hiero_xtn_mgr.Xtn_key_static);
|
||||
xtn_mgr.Xtn_init_assert(wiki);
|
||||
ctx.Cur_page().Html_data().Module_mgr().Itm__hiero().Enabled_y_();
|
||||
ctx.Cur_page().Html_data().Head_mgr().Itm__hiero().Enabled_y_();
|
||||
blocks = xtn_mgr.Parser().Parse(src, xnde.Tag_open_end(), xnde.Tag_close_bgn());
|
||||
boolean log_wkr_enabled = Log_wkr != Xop_log_basic_wkr.Null; if (log_wkr_enabled) Log_wkr.Log_end_xnde(ctx.Cur_page(), Xop_log_basic_wkr.Tid_hiero, src, xnde);
|
||||
ctx.Para().Process_block__xnde(xnde.Tag(), Xop_xnde_tag.Block_end);
|
||||
|
||||
@@ -32,7 +32,7 @@ class Imap_itm_ {
|
||||
case Tid_shape_rect : return Key_shape_rect;
|
||||
case Tid_shape_circle : return Key_shape_circle;
|
||||
case Tid_shape_poly : return Key_shape_poly;
|
||||
default : throw Exc_.new_unhandled(v);
|
||||
default : throw Err_.new_unhandled(v);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -81,7 +81,7 @@ class Imap_parser {
|
||||
case Imap_itm_.Tid_invalid: Parse_invalid(itm_bgn, itm_end); break;
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {usr_dlg.Warn_many("", "", "imap.parse:skipping line; page=~{0} line=~{1} err=~{2}", page_url.Xto_full_str_safe(), Bry_.Mid_safe(src, itm_bgn, itm_end), Err_.Message_gplx(e));}
|
||||
} catch (Exception e) {usr_dlg.Warn_many("", "", "imap.parse:skipping line; page=~{0} line=~{1} err=~{2}", page_url.Xto_full_str_safe(), Bry_.Mid_safe(src, itm_bgn, itm_end), Err_.Message_gplx_full(e));}
|
||||
++itm_idx;
|
||||
}
|
||||
rv.Init(xtn_mgr, imap_img_src, imap_img, imap_dflt, imap_desc, (Imap_itm_shape[])shapes.To_ary_and_clear(Imap_itm_shape.class), (Imap_err[])errs.To_ary_and_clear(Imap_err.class));
|
||||
|
||||
@@ -24,7 +24,7 @@ public class Imap_xnde implements Xox_xnde {
|
||||
xtn_mgr = wiki.Xtn_mgr().Xtn_imap();
|
||||
xtn_mgr.Xtn_assert();
|
||||
Xoae_page page = ctx.Cur_page();
|
||||
page.Html_data().Module_mgr().Itm__popups().Bind_hover_area_(true);
|
||||
page.Html_data().Head_mgr().Itm__popups().Bind_hover_area_(true);
|
||||
page.Html_data().Xtn_imap_exists_y_();
|
||||
ctx.Para().Process_block__xnde(xnde.Tag(), Xop_xnde_tag.Block_end);
|
||||
imap_data = xtn_mgr.Parser().Parse(wiki, ctx, root, src, xnde);
|
||||
|
||||
@@ -23,7 +23,7 @@ class Insider_xtn_skin_itm implements Xopg_xtn_skin_itm {
|
||||
private Insider_html_bldr html_bldr;
|
||||
public Insider_xtn_skin_itm(Insider_html_bldr html_bldr) {this.html_bldr = html_bldr;}
|
||||
public byte Tid() {return Xopg_xtn_skin_itm_tid.Tid_sidebar;}
|
||||
public byte[] Key() {return KEY;} public static final byte[] KEY = Bry_.new_u8("Insider");
|
||||
public byte[] Key() {return KEY;} public static final byte[] KEY = Bry_.new_a7("Insider");
|
||||
public List_adp Itms() {return itms;}
|
||||
public void Add(byte[] itm) {itms.Add(itm);}
|
||||
public void Write(Bry_bfr bfr, Xoae_page page) {
|
||||
|
||||
@@ -258,7 +258,7 @@ class Listing_xatrs {
|
||||
case Xop_xnde_tag_.Tid_listing_listing: rv = Xop_xnde_tag_.Tag_listing_listing; break;
|
||||
case Xop_xnde_tag_.Tid_listing_see: rv = Xop_xnde_tag_.Tag_listing_see; break;
|
||||
case Xop_xnde_tag_.Tid_listing_sleep: rv = Xop_xnde_tag_.Tag_listing_sleep; break;
|
||||
default: throw Exc_.new_unhandled(tid);
|
||||
default: throw Err_.new_unhandled(tid);
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ class Map_math {// REF.MW:MapSources_math.php
|
||||
if (until_step > 1 && error == 0)
|
||||
Set_coord();
|
||||
} catch (Exception e) {
|
||||
Exc_.Noop(e);
|
||||
Err_.Noop(e);
|
||||
error = -128;
|
||||
}
|
||||
return error == 0;
|
||||
|
||||
@@ -18,12 +18,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
package gplx.xowa.xtns.math; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*;
|
||||
import gplx.xowa.html.*;
|
||||
public class Math_nde implements Xox_xnde, Xop_xnde_atr_parser {
|
||||
public Xop_xnde_tkn Xnde() {throw Exc_.new_unimplemented();}
|
||||
public Xop_xnde_tkn Xnde() {throw Err_.new_unimplemented();}
|
||||
public void Xatr_parse(Xowe_wiki wiki, byte[] src, Xop_xatr_itm xatr, Object xatr_obj) {}
|
||||
public void Xtn_parse(Xowe_wiki wiki, Xop_ctx ctx, Xop_root_tkn root, byte[] src, Xop_xnde_tkn xnde) {
|
||||
Xof_math_mgr math_mgr = wiki.Appe().File_mgr().Math_mgr();
|
||||
if (math_mgr.Enabled() && math_mgr.Renderer_is_mathjax())
|
||||
ctx.Cur_page().Html_data().Module_mgr().Itm__mathjax().Enabled_y_();
|
||||
ctx.Cur_page().Html_data().Head_mgr().Itm__mathjax().Enabled_y_();
|
||||
}
|
||||
public void Xtn_write(Bry_bfr bfr, Xoae_app app, Xop_ctx ctx, Xoh_html_wtr html_wtr, Xoh_wtr_ctx hctx, Xop_xnde_tkn xnde, byte[] src) {
|
||||
app.File_mgr().Math_mgr().Html_wtr().Write(html_wtr, ctx, hctx, bfr, src, xnde);
|
||||
|
||||
@@ -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.xtns.math; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*;
|
||||
import gplx.core.strings.*; import gplx.xowa.apps.progs.*;
|
||||
import gplx.core.strings.*; import gplx.core.consoles.*; import gplx.xowa.apps.progs.*;
|
||||
public class Xof_math_mgr implements GfoInvkAble {
|
||||
private Xoae_app app;
|
||||
public ProcessAdp Cmd_convert_tex_to_dvi() {return cmd_convert_tex_to_dvi;} private ProcessAdp cmd_convert_tex_to_dvi = new ProcessAdp();
|
||||
@@ -32,7 +32,7 @@ public class Xof_math_mgr implements GfoInvkAble {
|
||||
public void Make_itm(Xof_math_itm rv, String wiki_key, byte[] math_bry) {
|
||||
Io_url math_dir = Make_math_dir(wiki_key);
|
||||
math_bry = app.Math_subst_regy().Subst(math_bry);
|
||||
String md5 = gplx.security.HashAlgo_.Md5.CalcHash(ConsoleDlg_.Null, gplx.ios.IoStream_.ary_(math_bry));
|
||||
String md5 = gplx.security.HashAlgo_.Md5.CalcHash(Console_adp_.Noop, gplx.ios.IoStream_.ary_(math_bry));
|
||||
Io_url png_fil = Make_png_fil(math_dir, md5);
|
||||
rv.Ctor(math_bry, md5, png_fil);
|
||||
}
|
||||
|
||||
@@ -404,7 +404,7 @@ public class Pf_func_ {
|
||||
case Xol_kwd_grp_.Id_cascadingSources:
|
||||
return new Pf_func_noop(id);
|
||||
case Xol_kwd_grp_.Id_bang: return Pf_func_bang._;
|
||||
default: throw Exc_.new_unhandled(id);
|
||||
default: throw Err_.new_unhandled(id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ class Paren_bgn_tkn implements Expr_tkn, Func_tkn {
|
||||
public int ArgCount() {return 0;}
|
||||
public int Precedence() {return -1;}
|
||||
public Func_tkn GetAlt() {return this;}
|
||||
public boolean Calc(Xop_ctx ctx, Pfunc_expr_shunter shunter, Val_stack val_stack) {throw Exc_.new_unimplemented();}
|
||||
public boolean Calc(Xop_ctx ctx, Pfunc_expr_shunter shunter, Val_stack val_stack) {throw Err_.new_unimplemented();}
|
||||
public static Paren_bgn_tkn _ = new Paren_bgn_tkn(); Paren_bgn_tkn() {}
|
||||
}
|
||||
class Paren_end_tkn implements Expr_tkn {
|
||||
|
||||
@@ -78,7 +78,7 @@ public class Pfunc_expr_shunter {
|
||||
try {num = Bry_.XtoDecimalByPos(src, numBgn, cur_pos);}
|
||||
catch (Exception exc) {
|
||||
// NOTE: PATCH.PHP: 65.5.5 can evaluate to 65.5; EX "{{Geological eras|-600|height=2|border=none}}" eventually does "|10-to={{#ifexpr:{{{1|-4567}}}<-65.5|-65.5|{{{1}}}}}.5" which is 65.5.5
|
||||
Exc_.Noop(exc);
|
||||
Err_.Noop(exc);
|
||||
int dot_count = 0;
|
||||
for (int i = numBgn; i < cur_pos; i++) {
|
||||
if (src[i] == Byte_ascii.Dot) {
|
||||
@@ -88,7 +88,7 @@ public class Pfunc_expr_shunter {
|
||||
try {
|
||||
num = Bry_.XtoDecimalByPos(src, numBgn, i);
|
||||
}
|
||||
catch (Exception exc_inner) {Exc_.Noop(exc_inner);}
|
||||
catch (Exception exc_inner) {Err_.Noop(exc_inner);}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -84,6 +84,6 @@ public class Pfunc_switch extends Pf_func_base {
|
||||
return tmp.Xto_bry_and_clear_and_trim();
|
||||
}
|
||||
}
|
||||
public static final byte[] Dflt_keyword = Bry_.new_u8("#default"); // NOTE: technically should pull from messages, but would need to cache Dflt_keyword on wiki level; checked all Messages files, and no one overrides it; DATE:2014-05-29
|
||||
public static final byte[] Dflt_keyword = Bry_.new_a7("#default"); // NOTE: technically should pull from messages, but would need to cache Dflt_keyword on wiki level; checked all Messages files, and no one overrides it; DATE:2014-05-29
|
||||
private static int Dflt_keyword_len = Dflt_keyword.length;
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ public class Pfunc_grammar extends Pf_func_base {
|
||||
Xol_lang lang = ctx.Cur_page().Lang();
|
||||
boolean pass = false;
|
||||
try {pass = lang.Grammar().Grammar_eval(bfr, lang, word, argx);}
|
||||
catch (Exception e) {Exc_.Noop(e);}
|
||||
catch (Exception e) {Err_.Noop(e);}
|
||||
if (!pass) Xot_invk_tkn.Print_not_found(bfr, ctx.Wiki().Ns_mgr(), this.Name());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ public class Pfunc_int_tst {
|
||||
fxt.Test_parse_en("{{int:january/en}}", "January");
|
||||
}
|
||||
@Test public void Lang_specified_by_page() {
|
||||
fxt.Test_parse_lang("fr", "{{int:Lang}}", "fr"); // NOTE: "Lang" msg is added by Xol_lang; message_mgr.Itm_by_key_or_new(Bry_.new_u8("Lang")).Atrs_set(key_bry, false, false);
|
||||
fxt.Test_parse_lang("fr", "{{int:Lang}}", "fr"); // NOTE: "Lang" msg is added by Xol_lang; message_mgr.Itm_by_key_or_new(Bry_.new_a7("Lang")).Atrs_set(key_bry, false, false);
|
||||
}
|
||||
@Test public void Lang_missing_msg_return_en() { // PURPOSE: if key does not exist in non-english language, use English; EX: la.w:Fasciculus:HannibalFrescoCapitolinec1510.jpg; DATE:2013-09-10
|
||||
fxt.Init_msg_gfs("en_only_key", "en_only_val", false, false);
|
||||
|
||||
@@ -23,31 +23,34 @@ public class Pf_formatnum_fa_tst {
|
||||
@Before public void init() {
|
||||
Xoae_app app = Xoa_app_fxt.app_();
|
||||
Xol_lang lang = new Xol_lang(app.Lang_mgr(), Bry_.new_a7("fa")).Init_by_load_assert();
|
||||
String gfs = String_.Concat_lines_nl
|
||||
( "numbers {"
|
||||
, " digits {"
|
||||
, " clear;"
|
||||
, " set('0', '۰');"
|
||||
, " set('1', '۱');"
|
||||
, " set('2', '۲');"
|
||||
, " set('3', '۳');"
|
||||
, " set('4', '۴');"
|
||||
, " set('5', '۵');"
|
||||
, " set('6', '۶');"
|
||||
, " set('7', '۷');"
|
||||
, " set('8', '۸');"
|
||||
, " set('9', '۹');"
|
||||
, " set('%', '٪');"
|
||||
, " set('.', '٫');"
|
||||
, " set(',', '٬');"
|
||||
, " }"
|
||||
, "}"
|
||||
);
|
||||
app.Gfs_mgr().Run_str_for(lang, gfs);
|
||||
app.Gfs_mgr().Run_str_for(lang, Persian_numbers_gfs);
|
||||
Xowe_wiki wiki = Xoa_app_fxt.wiki_(app, "fa.wikipedia.org", lang);
|
||||
fxt = new Xop_fxt(app, wiki);
|
||||
}
|
||||
@Test public void Basic() {
|
||||
@Test public void Basic() {
|
||||
fxt.Test_parse_tmpl_str_test("{{formatnum:۱۵۰|R}}" , "{{test}}", "150");
|
||||
}
|
||||
@Test public void English() { // PURPOSE: make sure regular numbers are still read; DATE:2015-07-18
|
||||
fxt.Test_parse_tmpl_str_test("{{formatnum:150|R}}" , "{{test}}", "150");
|
||||
}
|
||||
public static final String Persian_numbers_gfs = String_.Concat_lines_nl
|
||||
( "numbers {"
|
||||
, " digits {"
|
||||
, " clear;"
|
||||
, " set('0', '۰');"
|
||||
, " set('1', '۱');"
|
||||
, " set('2', '۲');"
|
||||
, " set('3', '۳');"
|
||||
, " set('4', '۴');"
|
||||
, " set('5', '۵');"
|
||||
, " set('6', '۶');"
|
||||
, " set('7', '۷');"
|
||||
, " set('8', '۸');"
|
||||
, " set('9', '۹');"
|
||||
, " set('%', '٪');"
|
||||
, " set('.', '٫');"
|
||||
, " set(',', '٬');"
|
||||
, " }"
|
||||
, "}"
|
||||
);
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@ public class Pfunc_rev_props extends Pf_func_base {
|
||||
bfr.Add_byte(Byte_ascii.Num_0);
|
||||
break;
|
||||
case Xol_kwd_grp_.Id_rev_protectionlevel: bfr.Add(rev_data.Protection_level()); break;
|
||||
default: throw Exc_.new_unhandled(id);
|
||||
default: throw Err_.new_unhandled(id);
|
||||
}
|
||||
}
|
||||
public Pfunc_rev_props(int id) {this.id = id;}
|
||||
|
||||
@@ -33,7 +33,7 @@ public class Pfunc_scrib_lib implements Scrib_lib {
|
||||
public boolean Procs_exec(int key, Scrib_proc_args args, Scrib_proc_rslt rslt) {
|
||||
switch (key) {
|
||||
case Proc_expr: return Expr(args, rslt);
|
||||
default: throw Exc_.new_unhandled(key);
|
||||
default: throw Err_.new_unhandled(key);
|
||||
}
|
||||
}
|
||||
private static final int Proc_expr = 0;
|
||||
@@ -47,6 +47,6 @@ public class Pfunc_scrib_lib implements Scrib_lib {
|
||||
if (pass)
|
||||
return rslt.Init_obj(expr_rslt);
|
||||
else
|
||||
throw Exc_.new_(expr_rslt);
|
||||
throw Err_.new_wo_type(expr_rslt);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ public class Pfunc_tag_tst {
|
||||
@Test public void Ws_all() {fxt.Test_html_full_str("{{#tag:pre|a| id = b }}" , "<pre id=\"b\">a</pre>");}
|
||||
@Test public void Ws_quoted() {fxt.Test_html_full_str("{{#tag:pre|a| id = ' b ' }}" , "<pre id=\"_b_\">a</pre>");}
|
||||
@Test public void Err_bad_key() {fxt.Test_html_full_str("{{#tag:pre|a|id=val|b}}" , "<pre id=\"val\">a</pre>");} // PURPOSE: b was failing b/c id was larger and key_end set to 4 (whereas b was len=1)
|
||||
// @Test public void Exc() {
|
||||
// @Test public void Err() {
|
||||
// fxt.Test_parse_tmpl_str_test("{{#tag:ref|George Robertson announced in January 2003 that he would be stepping down in December.<ref> {{cite news|title =NATO Secretary General to Leave His Post in December After 4 Years |first = Craig | last = Smith | work = The New York Times | date = January 23, 2003| url = http://www.nytimes.com/2003/01/23/world/nato-secretary-general-to-leave-his-post-in-december-after-4-years.html?scp=2&sq=lord+robertson&st=nyt|accessdate = 2009-03-29}}</ref> Jaap de Hoop Scheffer was selected as his successor, but could not assume the office until January 2004 because of his commitment in the Dutch Parliament.<ref> {{cite news|title = Jaap de Hoop Scheffer | work = Newsmakers | issue = 1 | publisher = Thomson Gale | date = January 1, 2005}}</ref> Robertson was asked to extend his term until Scheffer was ready, but declined, so Minuto-Rizzo, the Deputy Secretary General, took over in the interim.<ref name =\"ncsd\" /> |group=N|}}"
|
||||
// , "{{test}}" , "<pre id=\" b \">a</pre>");}
|
||||
@Test public void Nested_tmpl() { // PURPOSE: nested template must get re-evaluated; EX:de.wikipedia.org/wiki/Freiburg_im_Breisgau; DATE:2013-12-18;
|
||||
|
||||
@@ -27,7 +27,7 @@ public class Pft_func_date_int extends Pf_func_base {
|
||||
case Date_tid_lcl: date = DateAdp_.Now(); break;
|
||||
case Date_tid_utc: date = DateAdp_.Now().XtoUtc(); break;
|
||||
case Date_tid_rev: date = ctx.Cur_page().Revision_data().Modified_on(); break;
|
||||
default: throw Exc_.new_unhandled(date_tid);
|
||||
default: throw Err_.new_unhandled(date_tid);
|
||||
}
|
||||
switch (id) {
|
||||
case Xol_kwd_grp_.Id_utc_year:
|
||||
@@ -81,7 +81,7 @@ public class Pft_func_date_int extends Pf_func_base {
|
||||
.Add_int_fixed(date.Minute(), 2)
|
||||
.Add_int_fixed(date.Second(), 2);
|
||||
break;
|
||||
default: throw Exc_.new_unhandled(id);
|
||||
default: throw Err_.new_unhandled(id);
|
||||
}
|
||||
}
|
||||
public static final int Date_tid_utc = 0, Date_tid_lcl = 1, Date_tid_rev = 2;
|
||||
|
||||
@@ -26,7 +26,7 @@ public class Pft_func_date_name extends Pf_func_base {
|
||||
case Pft_func_date_int.Date_tid_lcl: date = DateAdp_.Now(); break;
|
||||
case Pft_func_date_int.Date_tid_utc: date = DateAdp_.Now().XtoUtc(); break;
|
||||
case Pft_func_date_int.Date_tid_rev: date = ctx.Cur_page().Revision_data().Modified_on(); break;
|
||||
default: throw Exc_.new_unhandled(date_tid);
|
||||
default: throw Err_.new_unhandled(date_tid);
|
||||
}
|
||||
byte[] val = ctx.Wiki().Msg_mgr().Val_by_id(base_idx + date.Segment(seg_idx));
|
||||
bfr.Add(val);
|
||||
|
||||
@@ -50,7 +50,7 @@ public class Pft_func_time extends Pf_func_base {
|
||||
return rv;
|
||||
}
|
||||
catch (Exception exc) {
|
||||
Exc_.Noop(exc);
|
||||
Err_.Noop(exc);
|
||||
error_bfr.Add_str_a7("Invalid time");
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -189,7 +189,7 @@ class Pxd_itm_unit extends Pxd_itm_base implements Pxd_itm_prototype {
|
||||
case DateAdp_.SegIdx_day : cur = cur.Add_day (val); break;
|
||||
case DateAdp_.SegIdx_month : cur = cur.Add_month (val); break;
|
||||
case DateAdp_.SegIdx_year : cur = cur.Add_year (val); break;
|
||||
default: throw Exc_.new_unhandled(this.Seg_idx());
|
||||
default: throw Err_.new_unhandled(this.Seg_idx());
|
||||
}
|
||||
bldr.Date_(cur);
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ public class Pfunc_filepath_tst {
|
||||
app.Wiki_mgr().Add(commons_wiki);
|
||||
app.File_mgr().Repo_mgr().Set("src_commons", "mem/xowa/file/commons/src/", commons_wiki.Domain_str());
|
||||
app.File_mgr().Repo_mgr().Set("trg_commons", "mem/xowa/file/commons/trg/", commons_wiki.Domain_str());
|
||||
en_wiki.File_mgr().Repo_mgr().Add_repo(Bry_.new_u8("src_commons"), Bry_.new_u8("trg_commons"));
|
||||
en_wiki.File_mgr().Repo_mgr().Add_repo(Bry_.new_a7("src_commons"), Bry_.new_a7("trg_commons"));
|
||||
Io_mgr.I.CreateDir(Io_url_.new_dir_("mem/xowa/wiki/commons.wikimedia.org/ns/000/page/")); // HACK: create page_dir so Scan_dirs_zip will not identify commons as zipped; FIX: remove; WHEN: after redoing commons.css download logic
|
||||
}
|
||||
@Test public void Wiki_is_local() {
|
||||
|
||||
@@ -46,7 +46,7 @@ public class Pfunc_urlfunc extends Pf_func_base { // EX: {{lc:A}} -> a
|
||||
case Tid_local: tmp_bfr.Add(ctx.Wiki().Props().ArticlePath());break;
|
||||
case Tid_full: tmp_bfr.Add(Bry_relative_url).Add(ctx.Wiki().Props().ServerName()).Add(ctx.Wiki().Props().ArticlePath()); break;
|
||||
case Tid_canonical: tmp_bfr.Add(ctx.Wiki().Props().Server()).Add(ctx.Wiki().Props().ArticlePath()); break;
|
||||
default: throw Exc_.new_unhandled(tid);
|
||||
default: throw Err_.new_unhandled(tid);
|
||||
}
|
||||
tmp_bfr.Add(ttl_ary);
|
||||
trg.Add_bfr_and_clear(tmp_bfr);
|
||||
|
||||
@@ -31,7 +31,7 @@ public class Pfunc_wiki_props extends Pf_func_base {
|
||||
case Xol_kwd_grp_.Id_site_directionmark: bfr.Add(props.DirectionMark()); break;
|
||||
case Xol_kwd_grp_.Id_site_currentversion: bfr.Add(props.Current_version()); break;
|
||||
case Xol_kwd_grp_.Id_site_contentlanguage: bfr.Add(ctx.Cur_page().Lang().Key_bry()); break;
|
||||
default: throw Exc_.new_unhandled(id);
|
||||
default: throw Err_.new_unhandled(id);
|
||||
}
|
||||
}
|
||||
@Override public Pf_func New(int id, byte[] name) {return new Pfunc_wiki_props(id).Name_(name);}
|
||||
|
||||
@@ -35,7 +35,7 @@ public class Pfunc_wiki_stats extends Pf_func_base {
|
||||
case Xol_kwd_grp_.Id_num_users: v = stats.NumUsers(); break;
|
||||
case Xol_kwd_grp_.Id_num_users_active: v = stats.NumUsersActive(); break;
|
||||
case Xol_kwd_grp_.Id_num_admins: v = stats.NumAdmins(); break;
|
||||
default: throw Exc_.new_unhandled(id);
|
||||
default: throw Err_.new_unhandled(id);
|
||||
}
|
||||
if (raw)
|
||||
rslt_bfr.Add_int_variable(v);
|
||||
|
||||
@@ -140,7 +140,7 @@ public class Pp_pages_nde implements Xox_xnde, Xop_xnde_atr_parser {
|
||||
rv = full_bfr.Xto_bry_and_clear();
|
||||
}
|
||||
catch (Exception e) {
|
||||
wiki.Appe().Usr_dlg().Warn_many("", "", "failed to write caption: page=~{0} lnki=~{1} err=~{2}", String_.new_u8(ctx.Cur_page().Ttl().Full_db()), String_.new_u8(index_page_src, lnki.Src_bgn(), lnki.Src_end()), Err_.Message_gplx_brief(e));
|
||||
wiki.Appe().Usr_dlg().Warn_many("", "", "failed to write caption: page=~{0} lnki=~{1} err=~{2}", ctx.Cur_page().Ttl().Full_db(), String_.new_u8(index_page_src, lnki.Src_bgn(), lnki.Src_end()), Err_.Message_gplx_full(e));
|
||||
rv = lnki.Ttl().Page_txt();
|
||||
}
|
||||
return rv;
|
||||
|
||||
@@ -67,7 +67,7 @@ class Articles_itm_fmtr implements Bry_fmtr_arg {
|
||||
class Articles_xtn_skin_itm implements Xopg_xtn_skin_itm {
|
||||
private List_adp itms = List_adp_.new_();
|
||||
public byte Tid() {return Xopg_xtn_skin_itm_tid.Tid_sidebar;}
|
||||
public byte[] Key() {return KEY;} public static final byte[] KEY = Bry_.new_u8("RelatedArticles");
|
||||
public byte[] Key() {return KEY;} public static final byte[] KEY = Bry_.new_a7("RelatedArticles");
|
||||
public void Add(Articles_itm itm) {itms.Add(itm);}
|
||||
public void Write(Bry_bfr bfr, Xoae_page page) {
|
||||
Xowe_wiki wiki = page.Wikie();
|
||||
|
||||
@@ -23,7 +23,7 @@ class Sites_xtn_skin_itm implements Xopg_xtn_skin_itm {
|
||||
private Sites_html_bldr html_bldr;
|
||||
public Sites_xtn_skin_itm(Sites_html_bldr html_bldr) {this.html_bldr = html_bldr;}
|
||||
public byte Tid() {return Xopg_xtn_skin_itm_tid.Tid_sidebar;}
|
||||
public byte[] Key() {return KEY;} public static final byte[] KEY = Bry_.new_u8("RelatedSites");
|
||||
public byte[] Key() {return KEY;} public static final byte[] KEY = Bry_.new_a7("RelatedSites");
|
||||
public void Add(Sites_regy_itm itm) {itms.Add(itm);}
|
||||
public void Write(Bry_bfr bfr, Xoae_page page) {
|
||||
html_bldr.Bld_all(bfr, page, itms);
|
||||
|
||||
@@ -38,7 +38,7 @@ public class Score_xnde implements Xox_xnde, Xop_xnde_atr_parser, Xoh_cmd_itm {
|
||||
case Xatr_id_output_ogg: output_ogg = xatr.Val_as_bool_by_int(src); break;
|
||||
case Xatr_id_file_midi: file_midi = xatr.Val_as_bry(src); break;
|
||||
case Xatr_id_file_ogg: file_ogg = xatr.Val_as_bry(src); break;
|
||||
default: throw Exc_.new_unhandled(xatr_key.Val());
|
||||
default: throw Err_.new_unhandled(xatr_key.Val());
|
||||
}
|
||||
}
|
||||
public void Xtn_parse(Xowe_wiki wiki, Xop_ctx ctx, Xop_root_tkn root, byte[] src, Xop_xnde_tkn xnde) {
|
||||
@@ -175,7 +175,7 @@ public class Score_xnde implements Xox_xnde, Xop_xnde_atr_parser, Xoh_cmd_itm {
|
||||
lilypond_version_proc.Run();
|
||||
return Get_lilypond_version(lilypond_version_proc.Rslt_out());
|
||||
}
|
||||
catch (Exception e) {Exc_.Noop(e); return Version_unknown;}
|
||||
catch (Exception e) {Err_.Noop(e); return Version_unknown;}
|
||||
}
|
||||
public static byte[] Get_lilypond_version(String rslt_str) {
|
||||
byte[] rslt = Bry_.new_u8(rslt_str); // expect 1st line to be of form "GNU LilyPond 2.16.2"
|
||||
|
||||
@@ -161,7 +161,7 @@ public class Scrib_core {
|
||||
Scrib_lua_mod mod = Mods_get_or_new(mod_name, mod_text);
|
||||
KeyVal[] func_args = Scrib_kv_utl_.base1_many_(mod.Init_chunk_func(), String_.new_u8(fnc_name));
|
||||
KeyVal[] func_rslt = engine.CallFunction(lib_mw.Mod().Fncs_get_id("executeModule"), func_args); // call init_chunk to get proc dynamically; DATE:2014-07-12
|
||||
if (func_rslt == null || func_rslt.length < 2) throw Exc_.new_("lua.error:function did not return a value", "fnc_name", String_.new_u8(fnc_name)); // must return at least 2 items for func_rslt[1] below; DATE:2014-09-22
|
||||
if (func_rslt == null || func_rslt.length < 2) throw Err_.new_wo_type("lua.error:function did not return a value", "fnc_name", String_.new_u8(fnc_name)); // must return at least 2 items for func_rslt[1] below; DATE:2014-09-22
|
||||
Scrib_lua_proc proc = (Scrib_lua_proc)func_rslt[1].Val(); // note that init_chunk should have: [0]:true/false result; [1]:proc
|
||||
func_args = Scrib_kv_utl_.base1_many_(proc);
|
||||
func_rslt = engine.CallFunction(lib_mw.Mod().Fncs_get_id("executeFunction"), func_args); // call function now
|
||||
@@ -199,8 +199,8 @@ public class Scrib_core {
|
||||
Xot_invk src_frame = frame_current;
|
||||
if (src_frame != null)
|
||||
excerpt = String_.new_u8(cur_src, src_frame.Src_bgn(), src_frame.Src_end());
|
||||
} catch (Exception e) {Exc_.Noop(e);}
|
||||
throw Exc_.new_(err, "ttl", page.Ttl().Page_db_as_str(), "excerpt", excerpt, "traceback", traceback);
|
||||
} catch (Exception e) {Err_.Noop(e);}
|
||||
throw Err_.new_wo_type(err, "ttl", page.Ttl().Page_db_as_str(), "excerpt", excerpt, "traceback", traceback);
|
||||
}
|
||||
public static void Core_invalidate_when_page_changes() {core_invalidate_when_page_changes = true;} private static boolean core_invalidate_when_page_changes;
|
||||
public static void Core_page_changed(Xoae_page page) {
|
||||
|
||||
@@ -59,10 +59,10 @@ public class Scrib_invoke_func extends Pf_func_base {
|
||||
catch (Exception e) {
|
||||
String invoke_error = Err_msg_make(e);
|
||||
Error(bfr, wiki.Msg_mgr(), invoke_error);
|
||||
bfr.Add(Html_tag_.Comm_bgn).Add_str(Err_.Message_gplx_brief(e)).Add(Html_tag_.Comm_end);
|
||||
bfr.Add(Html_tag_.Comm_bgn).Add_str(Err_.Message_gplx_full(e)).Add(Html_tag_.Comm_end);
|
||||
Scrib_err_filter_mgr err_filter_mgr = invoke_wkr == null ? null : invoke_wkr.Err_filter_mgr();
|
||||
if (err_filter_mgr == null || (err_filter_mgr.Count_gt_0() && err_filter_mgr.Match(String_.new_u8(mod_name), String_.new_u8(fnc_name), invoke_error)))
|
||||
ctx.App().Usr_dlg().Warn_many("", "", "invoke failed: ~{0} ~{1} ~{2}", String_.new_u8(ctx.Cur_page().Ttl().Raw()), String_.new_u8(src, self.Src_bgn(), self.Src_end()), Err_.Message_gplx_brief(e));
|
||||
ctx.App().Usr_dlg().Warn_many("", "", "invoke failed: ~{0} ~{1} ~{2}", ctx.Cur_page().Ttl().Raw(), String_.new_u8(src, self.Src_bgn(), self.Src_end()), Err_.Message_gplx_log(e));
|
||||
Scrib_core.Core_invalidate_when_page_changes(); // NOTE: invalidate core when page changes, not for rest of page, else page with many errors will be very slow due to multiple invalidations; PAGE:th.d:all; DATE:2014-10-03
|
||||
}
|
||||
}
|
||||
|
||||
@@ -187,7 +187,7 @@ class Scrib_lua_rsp_bldr {
|
||||
else if (Object_.Eq(v_type, Double_.Cls_ref_type)) Bld_double(bfr, Double_.cast_(v));
|
||||
else if (Object_.Eq(v_type, KeyVal[].class)) Bld_kv_ary(bfr, (KeyVal[])v);
|
||||
else if (Object_.Eq(v_type, Scrib_lua_proc.class)) Bld_fnc(bfr, (Scrib_lua_proc)v);
|
||||
else throw Exc_.new_unhandled(ClassAdp_.NameOf_obj(v));
|
||||
else throw Err_.new_unhandled(ClassAdp_.NameOf_obj(v));
|
||||
}
|
||||
private void Bld_bool(Bry_bfr bfr, boolean v) {bfr.Add_str_a7("b:").Add_int_fixed(v ? 1 : 0, 1).Add_byte(Byte_ascii.Semic);}
|
||||
private void Bld_int(Bry_bfr bfr, int v) {bfr.Add_str_a7("i:").Add_int_variable(v).Add_byte(Byte_ascii.Semic);}
|
||||
|
||||
@@ -48,17 +48,17 @@ public class Scrib_kv_utl_ {
|
||||
return rv;
|
||||
}
|
||||
public static String Val_to_str(KeyVal[] ary, int idx) {
|
||||
if (ary == null) throw Exc_.new_("ary is null");
|
||||
if (ary == null) throw Err_.new_wo_type("ary is null");
|
||||
int ary_len = ary.length;
|
||||
if (ary_len == 0 && idx == 0) return ""; // NOTE: Modules can throw exceptions in which return value is nothing; do not fail; return ""; EX: -logy; DATE:2013-10-14
|
||||
if (idx >= ary_len) throw Exc_.new_("idx is not in bounds", "idx", idx, "len", KeyVal_.Ary_x_to_str(ary));
|
||||
if (idx >= ary_len) throw Err_.new_wo_type("idx is not in bounds", "idx", idx, "len", KeyVal_.Ary_x_to_str(ary));
|
||||
Object o = ary[idx].Val();
|
||||
try {return (String)o;}
|
||||
catch (Exception e) {throw Exc_.new_cast(e, String.class, o);}
|
||||
catch (Exception e) {throw Err_.new_cast(e, String.class, o);}
|
||||
}
|
||||
public static KeyVal[] Val_to_KeyVal_ary(KeyVal[] ary, int idx) {
|
||||
if (ary == null) throw Exc_.new_("ary is null"); if (idx >= ary.length) throw Exc_.new_("idx is not in bounds", "idx", idx, "len", KeyVal_.Ary_x_to_str(ary));
|
||||
if (ary == null) throw Err_.new_wo_type("ary is null"); if (idx >= ary.length) throw Err_.new_wo_type("idx is not in bounds", "idx", idx, "len", KeyVal_.Ary_x_to_str(ary));
|
||||
try {return (KeyVal[])ary[idx].Val();}
|
||||
catch (Exception e) {throw Exc_.new_exc(e, "scrib", "cast as KeyVal[] failed", "ary", KeyVal_.Ary_x_to_str(ary));}
|
||||
catch (Exception e) {throw Err_.new_exc(e, "scrib", "cast as KeyVal[] failed", "ary", KeyVal_.Ary_x_to_str(ary));}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ public class Scrib_lua_mod {
|
||||
public Scrib_lua_proc Fncs_get_by_key(String key) {return (Scrib_lua_proc)hash.Get_by(key);}
|
||||
public void Fncs_add(Scrib_lua_proc prc) {hash.Add(prc.Key(), prc);}
|
||||
public int Fncs_get_id(String key) {
|
||||
Scrib_lua_proc fnc = Fncs_get_by_key(key); if (fnc == null) throw Exc_.new_("Scrb_fnc does not exist", "module", name, "func", key);
|
||||
Scrib_lua_proc fnc = Fncs_get_by_key(key); if (fnc == null) throw Err_.new_wo_type("Scrb_fnc does not exist", "module", name, "func", key);
|
||||
return fnc.Id();
|
||||
}
|
||||
public Scrib_lua_proc LoadString(String text) {
|
||||
@@ -44,7 +44,7 @@ public class Scrib_lua_mod {
|
||||
hash.Clear(); // NOTE: questionable. should probably be removed, as it forces all modules to be "loadString"'d again; DATE:2013-10-16
|
||||
this.LoadString(name); // assert lua_id;
|
||||
KeyVal[] rslt = core.Interpreter().ExecuteModule(lua_id);
|
||||
if (rslt.length == 0) throw Exc_.new_("module missing", "name", name, "lua_id", lua_id);
|
||||
if (rslt.length == 0) throw Err_.new_wo_type("module missing", "name", name, "lua_id", lua_id);
|
||||
KeyVal[] prcs_ary = (KeyVal[])rslt[0].Val();
|
||||
int prcs_len = prcs_ary.length;
|
||||
for (int i = 0; i < prcs_len; i++) {
|
||||
|
||||
@@ -27,19 +27,19 @@ public class Scrib_proc_args {
|
||||
public int Pull_int(int i) {Object rv = Get_or_fail(i);
|
||||
try {return Int_.coerce_(rv);} // coerce to handle "1" and 1; will still fail if "abc" is passed
|
||||
catch (Exception e) {
|
||||
Exc_.Noop(e);
|
||||
throw Exc_.new_("bad argument; int expected", "idx", i, "len", ary_len);
|
||||
Err_.Noop(e);
|
||||
throw Err_.new_wo_type("bad argument; int expected", "idx", i, "len", ary_len);
|
||||
}
|
||||
}
|
||||
public long Pull_long(int i) {return (long)Pull_double(i);}
|
||||
public double Pull_double(int i) {Object rv = Get_or_fail(i);
|
||||
try {return Int_.coerce_(rv);} // coerce to handle "1" and 1; will still fail if "abc" is passed
|
||||
catch (Exception e) {
|
||||
Exc_.Noop(e);
|
||||
Err_.Noop(e);
|
||||
try {return Double_.coerce_(rv);} // coerce to handle "1" and 1; will still fail if "abc" is passed
|
||||
catch (Exception e2) {
|
||||
Exc_.Noop(e2);
|
||||
throw Exc_.new_("bad argument; int expected", "idx", i, "len", ary_len);
|
||||
Err_.Noop(e2);
|
||||
throw Err_.new_wo_type("bad argument; int expected", "idx", i, "len", ary_len);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -137,10 +137,10 @@ public class Scrib_proc_args {
|
||||
return kv == null ? null : kv.Val();
|
||||
}
|
||||
private Object Get_or_fail(int i) {
|
||||
if (i < 0 || i >= ary_len) throw Exc_.new_("bad argument: nil", "idx", i, "len", ary_len);
|
||||
if (i < 0 || i >= ary_len) throw Err_.new_wo_type("bad argument: nil", "idx", i, "len", ary_len);
|
||||
KeyVal kv = ary[i];
|
||||
Object rv = kv == null ? null : kv.Val();
|
||||
if (rv == null) throw Exc_.new_("scrib arg is null", "idx", i, "len", ary_len);
|
||||
if (rv == null) throw Err_.new_wo_type("scrib arg is null", "idx", i, "len", ary_len);
|
||||
return rv;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -73,8 +73,8 @@ public class Scrib_xtn_mgr extends Xox_mgr_base {
|
||||
if (invoke_wkr == null) invoke_wkr = app.Log_mgr().Make_wkr_invoke();
|
||||
return invoke_wkr;
|
||||
}
|
||||
public static Exc err_(String fmt, Object... args) {return Exc_.new_(fmt, args).Stack_erase_1_();}
|
||||
public static Exc err_(Exception e, String fmt, Object... args) {return Exc_.new_exc(e, "xo", fmt, args).Stack_erase_1_();}
|
||||
public static Err err_(String fmt, Object... args) {return Err_.new_wo_type(fmt, args).Trace_ignore_add_1_();}
|
||||
public static Err err_(Exception e, String msg, Object... args) {return Err_.new_exc(e, "xo", msg, args).Trace_ignore_add_1_();}
|
||||
public static final int Ns_id_module = 828, Ns_id_module_talk = 829;
|
||||
public static final String Ns_name_module = "Module", Ns_name_module_talk = "Module talk";
|
||||
}
|
||||
|
||||
@@ -21,13 +21,13 @@ public class Scrib_engine_type {
|
||||
switch (v) {
|
||||
case Type_lua: return "lua";
|
||||
case Type_luaj: return "luaj";
|
||||
default: throw Exc_.new_unimplemented();
|
||||
default: throw Err_.new_unimplemented();
|
||||
}
|
||||
}
|
||||
public static byte Xto_byte(String s) {
|
||||
if (String_.Eq(s, "lua")) return Type_lua;
|
||||
else if (String_.Eq(s, "luaj")) return Type_luaj;
|
||||
else throw Exc_.new_unimplemented();
|
||||
else throw Err_.new_unimplemented();
|
||||
}
|
||||
public static final byte Type_lua = 0, Type_luaj = 1;
|
||||
public static KeyVal[] Options__list = KeyVal_.Ary(KeyVal_.new_("luaj"), KeyVal_.new_("lua"));
|
||||
|
||||
@@ -25,7 +25,7 @@ public class Luaj_server_func_recv extends OneArgFunction {
|
||||
public LuaValue call(LuaValue tbl_val) {
|
||||
LuaTable tbl = (LuaTable)tbl_val;
|
||||
String op = Luaj_value_.Get_val_as_str(tbl, "op");
|
||||
if (!String_.Eq(op, "call")) throw Exc_.new_("luaj_recvr only processes op calls");
|
||||
if (!String_.Eq(op, "call")) throw Err_.new_wo_type("luaj_recvr only processes op calls");
|
||||
return engine.Server_recv_call(tbl);
|
||||
}
|
||||
public static Luaj_server_func_recv _ = new Luaj_server_func_recv();
|
||||
|
||||
@@ -57,7 +57,7 @@ class Luaj_value_ {
|
||||
kv = KeyVal_.new_(((LuaString)itm_key).tojstring(), itm_val_obj);
|
||||
break;
|
||||
default:
|
||||
throw Exc_.new_unhandled(itm_key.type());
|
||||
throw Err_.new_unhandled(itm_key.type());
|
||||
}
|
||||
}
|
||||
temp.Add(kv);
|
||||
@@ -80,7 +80,7 @@ class Luaj_value_ {
|
||||
return v_num.todouble();
|
||||
case LuaValue.TTABLE: return X_tbl_to_kv_ary(server, (LuaTable)v);
|
||||
case LuaValue.TFUNCTION: return server.Get_id_by_closure(v);
|
||||
default: throw Exc_.new_unhandled(v.type());
|
||||
default: throw Err_.new_unhandled(v.type());
|
||||
}
|
||||
}
|
||||
public static LuaValue X_obj_to_val(Luaj_server server, Object o) {
|
||||
|
||||
@@ -87,7 +87,7 @@ public class Process_engine implements Scrib_engine {
|
||||
}
|
||||
} private static final byte[] Dispatch_hdr = Bry_.new_a7("0000000000000000"); // itm_len + itm_chk in 8-len HexDec
|
||||
private void Dispatch_bld_send(Bry_bfr bfr, Object[] ary) {
|
||||
int len = ary.length; if (len % 2 != 0) throw Exc_.new_("arguments must be factor of 2", "len", len);
|
||||
int len = ary.length; if (len % 2 != 0) throw Err_.new_wo_type("arguments must be factor of 2", "len", len);
|
||||
bfr.Add(Dispatch_hdr);
|
||||
bfr.Add_byte(Byte_ascii.Curly_bgn);
|
||||
for (int i = 0; i < len; i++) {
|
||||
|
||||
@@ -53,7 +53,7 @@ public class Process_recv_msg {
|
||||
return op;
|
||||
}
|
||||
catch (Exception e) {
|
||||
throw Scrib_xtn_mgr.err_(e, "failed to extract data: {0} {1}", Err_.Message_gplx_brief(e), String_.new_u8(rsp));
|
||||
throw Scrib_xtn_mgr.err_(e, "failed to extract data", "rsp", rsp);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ public class Process_send_wtr {
|
||||
case Byte_ascii.Quote: bfr.Add_byte(Byte_ascii.Backslash).Add_byte(b); break;
|
||||
case Byte_ascii.Nl: bfr.Add_byte(Byte_ascii.Backslash).Add_byte(Byte_ascii.Ltr_n); break;
|
||||
case Byte_ascii.Cr: bfr.Add_byte(Byte_ascii.Backslash).Add_byte(Byte_ascii.Ltr_r); break;
|
||||
case Byte_ascii.Nil: bfr.Add(CONST_escape_000); break;
|
||||
case Byte_ascii.Null: bfr.Add(CONST_escape_000); break;
|
||||
case Byte_ascii.Backslash: bfr.Add_byte(Byte_ascii.Backslash).Add_byte(Byte_ascii.Backslash); break;
|
||||
default: bfr.Add_byte(b); break;
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ public class Process_server implements Scrib_server {
|
||||
ProcessBuilder pb = new ProcessBuilder(process_args);
|
||||
pb.redirectErrorStream(false);
|
||||
try {process = pb.start();}
|
||||
catch (Exception e) {throw Exc_.new_exc(e, "core", "process init failed", "args", String_.AryXtoStr(process_args));}
|
||||
catch (Exception e) {throw Err_.new_exc(e, "core", "process init failed", "args", String_.AryXtoStr(process_args));}
|
||||
stream_write = process.getOutputStream();
|
||||
error_reader = new Process_server_gobbler_error(process.getErrorStream(), bry_error);
|
||||
error_reader.Start();
|
||||
@@ -45,7 +45,7 @@ public class Process_server implements Scrib_server {
|
||||
return Server_recv();
|
||||
}
|
||||
public void Server_send(byte[] cmd, Object[] cmd_objs) {
|
||||
if (process == null) throw Exc_.new_("process not started");
|
||||
if (process == null) throw Err_.new_wo_type("process not started");
|
||||
cmd_last = cmd;
|
||||
// stream_read.Data_reset();
|
||||
stream_read = new Process_server_gobbler_recv(process.getInputStream(), process_rdr).Start();
|
||||
@@ -53,7 +53,7 @@ public class Process_server implements Scrib_server {
|
||||
stream_write.write(cmd);
|
||||
stream_write.flush();
|
||||
}
|
||||
catch (Exception e) {throw Exc_.new_exc(e, "core", "failed to write to output");}
|
||||
catch (Exception e) {throw Err_.new_exc(e, "core", "failed to write to output");}
|
||||
} private byte[] cmd_last;
|
||||
public byte[] Server_recv() {
|
||||
long time_bgn = System.currentTimeMillis();
|
||||
@@ -96,7 +96,7 @@ class Process_server_gobbler_error extends Thread {
|
||||
if (terminating)
|
||||
return;
|
||||
else
|
||||
throw Exc_.new_exc(e, "core", "failed to write to output");
|
||||
throw Err_.new_exc(e, "core", "failed to write to output");
|
||||
}
|
||||
}
|
||||
public void Term() {
|
||||
|
||||
@@ -67,7 +67,7 @@ class Process_server_mock_rcvd_val implements Process_server_mock_rcvd {
|
||||
KeyVal kv = ary[i];
|
||||
Object kv_val = kv.Val();
|
||||
if (kv_val == null) {
|
||||
bfr.Add(gplx.json.Json_itm_.Const_null);
|
||||
bfr.Add(gplx.core.json.Json_itm_.Const_null);
|
||||
continue;
|
||||
}
|
||||
Class<?> kv_val_type = kv_val.getClass();
|
||||
@@ -75,7 +75,7 @@ class Process_server_mock_rcvd_val implements Process_server_mock_rcvd {
|
||||
if (print_key && !kv_val_is_array)
|
||||
bfr.Add_str(kv.Key()).Add_byte(Byte_ascii.Colon);
|
||||
if (ClassAdp_.Eq(kv_val_type, Bool_.Cls_ref_type))
|
||||
bfr.Add(Bool_.cast_(kv_val) ? gplx.json.Json_itm_.Const_true : gplx.json.Json_itm_.Const_false);
|
||||
bfr.Add(Bool_.cast_(kv_val) ? gplx.core.json.Json_itm_.Const_true : gplx.core.json.Json_itm_.Const_false);
|
||||
else if (kv_val_is_array) {
|
||||
KeyVal[] sub = (KeyVal[])kv_val;
|
||||
if (sub.length == 0) {bfr.Add_byte(Byte_ascii.Curly_bgn).Add_byte(Byte_ascii.Curly_end);}
|
||||
|
||||
@@ -24,10 +24,10 @@ public class Process_stream_rdr {
|
||||
int bytes_read = rdr.Read(bry_header, 0, 16);
|
||||
if (bytes_read < 16) {
|
||||
if (bytes_read == -1) return null; // stream closed; should only occur when shutting down
|
||||
else throw Exc_.new_("failed to read header");
|
||||
else throw Err_.new_wo_type("failed to read header");
|
||||
}
|
||||
int body_len = HexDecUtl.parse_or_(bry_header, 0,8, -1); if (body_len == -1) throw Exc_.new_("failed to read body_len");
|
||||
int chk_len= HexDecUtl.parse_or_(bry_header, 9, 16, -1); if (chk_len == -1 || chk_len != (body_len * 2) - 1) throw Exc_.new_("failed to read chk_len");
|
||||
int body_len = HexDecUtl.parse_or_(bry_header, 0,8, -1); if (body_len == -1) throw Err_.new_wo_type("failed to read body_len");
|
||||
int chk_len= HexDecUtl.parse_or_(bry_header, 9, 16, -1); if (chk_len == -1 || chk_len != (body_len * 2) - 1) throw Err_.new_wo_type("failed to read chk_len");
|
||||
byte[] trg_bry = (body_len > bry_body.length) ? new byte[body_len] : bry_body;
|
||||
return Read_body(trg_bry, body_len, rdr);
|
||||
}
|
||||
@@ -46,7 +46,7 @@ public class Process_stream_rdr {
|
||||
case Byte_ascii.Ltr_n: b = Byte_ascii.Nl; break;
|
||||
case Byte_ascii.Ltr_r: b = Byte_ascii.Cr; break;
|
||||
case Byte_ascii.Backslash: b = Byte_ascii.Backslash; break;
|
||||
default: throw Exc_.new_unhandled(b);
|
||||
default: throw Err_.new_unhandled(b);
|
||||
}
|
||||
}
|
||||
else { // regular mode
|
||||
|
||||
@@ -57,7 +57,7 @@ class Process_stream_rdr_fxt {
|
||||
case Byte_ascii.Backslash: bfr.Add_byte(Byte_ascii.Backslash); break;
|
||||
case Byte_ascii.Ltr_n: bfr.Add_byte(Byte_ascii.Nl); break;
|
||||
case Byte_ascii.Ltr_r: bfr.Add_byte(Byte_ascii.Cr); break;
|
||||
default: throw Exc_.new_unhandled(b);
|
||||
default: throw Err_.new_unhandled(b);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
||||
@@ -57,8 +57,8 @@ class Gfo_fld_crt implements Criteria {
|
||||
Object comp = owner.Fld_val_as_obj(fld_idx);
|
||||
return crt.Matches(comp);
|
||||
}
|
||||
public void Val_from_args(Hash_adp args) {throw Exc_.new_unimplemented();}
|
||||
public void Val_as_obj_(Object v) {throw Exc_.new_unimplemented();}
|
||||
public void Val_from_args(Hash_adp args) {throw Err_.new_unimplemented();}
|
||||
public void Val_as_obj_(Object v) {throw Err_.new_unimplemented();}
|
||||
public String XtoStr() {return String_.Concat(Byte_.Xto_str(fld_idx), " ", crt.XtoStr());}
|
||||
public static Gfo_fld_crt new_(byte fld_idx, Criteria crt) {
|
||||
Gfo_fld_crt rv = new Gfo_fld_crt();
|
||||
|
||||
@@ -27,6 +27,6 @@ public class Scrib_lib_html implements Scrib_lib {
|
||||
}
|
||||
public Scrib_proc_mgr Procs() {return procs;} private Scrib_proc_mgr procs = new Scrib_proc_mgr();
|
||||
public boolean Procs_exec(int key, Scrib_proc_args args, Scrib_proc_rslt rslt) {
|
||||
throw Exc_.new_unhandled(key);
|
||||
throw Err_.new_unhandled(key);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@ public class Scrib_lib_language implements Scrib_lib {
|
||||
case Proc_convertGrammar: return ConvertGrammar(args, rslt);
|
||||
case Proc_gender: return gender(args, rslt);
|
||||
case Proc_isRTL: return IsRTL(args, rslt);
|
||||
default: throw Exc_.new_unhandled(key);
|
||||
default: throw Err_.new_unhandled(key);
|
||||
}
|
||||
}
|
||||
private static final int
|
||||
@@ -99,7 +99,7 @@ public class Scrib_lib_language implements Scrib_lib {
|
||||
for (int i = 0; i < len; i++) {
|
||||
byte b = lang_code[i];
|
||||
switch (b) { // NOTE: snippet from MW follows; also \000 assumed to be Nil --> :/\\\000&<>'\"
|
||||
case Byte_ascii.Colon: case Byte_ascii.Slash: case Byte_ascii.Backslash: case Byte_ascii.Nil: case Byte_ascii.Amp: case Byte_ascii.Lt: case Byte_ascii.Gt: case Byte_ascii.Apos: case Byte_ascii.Quote:
|
||||
case Byte_ascii.Colon: case Byte_ascii.Slash: case Byte_ascii.Backslash: case Byte_ascii.Null: case Byte_ascii.Amp: case Byte_ascii.Lt: case Byte_ascii.Gt: case Byte_ascii.Apos: case Byte_ascii.Quote:
|
||||
valid = false;
|
||||
i = len;
|
||||
break;
|
||||
@@ -231,7 +231,7 @@ public class Scrib_lib_language implements Scrib_lib {
|
||||
lang.Grammar().Grammar_eval(bfr, lang, word, type);
|
||||
return rslt.Init_obj(bfr.To_str_and_rls());
|
||||
}
|
||||
public boolean gender(Scrib_proc_args args, Scrib_proc_rslt rslt) {throw Exc_.new_unimplemented();}
|
||||
public boolean gender(Scrib_proc_args args, Scrib_proc_rslt rslt) {throw Err_.new_unimplemented();}
|
||||
public boolean IsRTL(Scrib_proc_args args, Scrib_proc_rslt rslt) {
|
||||
Xol_lang lang = lang_(args);
|
||||
return rslt.Init_obj(!lang.Dir_ltr());
|
||||
@@ -239,7 +239,7 @@ public class Scrib_lib_language implements Scrib_lib {
|
||||
private Xol_lang lang_(Scrib_proc_args args) {
|
||||
byte[] lang_code = args.Cast_bry_or_null(0);
|
||||
Xol_lang lang = lang_code == null ? null : core.App().Lang_mgr().Get_by_key_or_load(lang_code);
|
||||
if (lang == null) throw Exc_.new_("lang_code is not valid", "lang_code", String_.new_u8(lang_code));
|
||||
if (lang == null) throw Err_.new_wo_type("lang_code is not valid", "lang_code", String_.new_u8(lang_code));
|
||||
return lang;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ public class Scrib_lib_message implements Scrib_lib {
|
||||
case Proc_plain: return Plain(args, rslt);
|
||||
case Proc_check: return Check(args, rslt);
|
||||
case Proc_init_message_for_lang: return Init_message_for_lang(args, rslt);
|
||||
default: throw Exc_.new_unhandled(key);
|
||||
default: throw Err_.new_unhandled(key);
|
||||
}
|
||||
}
|
||||
private static final int Proc_plain = 0, Proc_check = 1, Proc_init_message_for_lang = 2;
|
||||
@@ -67,7 +67,7 @@ class Scrib_lib_message_data {
|
||||
for (int i = 0; i < len; i++) {
|
||||
KeyVal kv = ary[i];
|
||||
byte[] kv_key = Bry_.new_a7(kv.Key());
|
||||
Object key_obj = key_hash.Get_by(kv_key); if (key_obj == null) throw Exc_.new_("msg_key is invalid", "key", kv_key);
|
||||
Object key_obj = key_hash.Get_by(kv_key); if (key_obj == null) throw Err_.new_wo_type("msg_key is invalid", "key", kv_key);
|
||||
byte key_tid = ((Byte_obj_val)key_obj).Val();
|
||||
switch (key_tid) {
|
||||
case Key_tid_keys:
|
||||
@@ -85,7 +85,7 @@ class Scrib_lib_message_data {
|
||||
for (int j = 0; j < args_ary_len; j++)
|
||||
args[j] = args_ary[j].Val_to_str_or_empty();
|
||||
break;
|
||||
default: throw Exc_.new_unhandled(key_tid);
|
||||
default: throw Err_.new_unhandled(key_tid);
|
||||
}
|
||||
}
|
||||
return this;
|
||||
@@ -123,7 +123,7 @@ class Scrib_lib_message_data {
|
||||
case Check_tid_exists : return Bry_.Len_gt_0(msg_val);
|
||||
case Check_tid_isBlank : return Bry_.Len_eq_0(msg_val); // REF.MW: $message === false || $message === ''
|
||||
case Check_tid_isDisabled : return Bry_.Len_eq_0(msg_val) || msg_val.length == 1 && msg_val[0] == Byte_ascii.Dash; // REF.MW: $message === false || $message === '' || $message === '-'
|
||||
default : throw Exc_.new_unhandled(chk_tid);
|
||||
default : throw Err_.new_unhandled(chk_tid);
|
||||
}
|
||||
}
|
||||
public byte[] Make_msg(byte[] cur_lang, Xowe_wiki wiki, Xop_ctx ctx, boolean exec_params, byte fmt_tid) {
|
||||
@@ -161,7 +161,7 @@ class Scrib_lib_message_data {
|
||||
public static byte parse_chk_(byte[] key) {return parse_or_fail(check_hash, key, "invalid check arg: {0}");}
|
||||
public static byte parse_or_fail(Hash_adp_bry hash, byte[] key, String fmt) {
|
||||
Object o = hash.Get_by_bry(key);
|
||||
if (o == null) throw Exc_.new_(fmt, "key", String_.new_u8(key)).Stack_erase_1_();
|
||||
if (o == null) throw Err_.new_wo_type(fmt, "key", String_.new_u8(key)).Trace_ignore_add_1_();
|
||||
return ((Byte_obj_val)o).Val();
|
||||
}
|
||||
public static final byte Fmt_tid_parse = 1, Fmt_tid_text = 2, Fmt_tid_plain = 3, Fmt_tid_escaped = 4, Fmt_tid_parseAsBlock = 5;
|
||||
|
||||
@@ -59,7 +59,7 @@ public class Scrib_lib_mw implements Scrib_lib {
|
||||
case Proc_newChildFrame: return NewChildFrame(args, rslt);
|
||||
case Proc_getFrameTitle: return GetFrameTitle(args, rslt);
|
||||
case Proc_setTTL: return SetTTL(args, rslt);
|
||||
default: throw Exc_.new_unhandled(key);
|
||||
default: throw Err_.new_unhandled(key);
|
||||
}
|
||||
}
|
||||
public static final int
|
||||
@@ -250,7 +250,7 @@ public class Scrib_lib_mw implements Scrib_lib {
|
||||
Xot_invk_mock frame = Xot_invk_mock.new_(parent_frame.Defn_tid(), 0, fnc_name, parser_func_args); // pass something as frame_ttl; choosng fnc_name; DATE:2014-09-21
|
||||
Xol_func_name_itm finder = cur_wiki.Lang().Func_regy().Find_defn(fnc_name, 0, fnc_name_len);
|
||||
Xot_defn defn = finder.Func();
|
||||
if (defn == Xot_defn_.Null) throw Exc_.new_("callParserFunction: function was not found", "function", String_.new_u8(fnc_name));
|
||||
if (defn == Xot_defn_.Null) throw Err_.new_wo_type("callParserFunction: function was not found", "function", String_.new_u8(fnc_name));
|
||||
Bry_bfr bfr = cur_wiki.Utl__bfr_mkr().Get_k004();
|
||||
Xop_ctx fnc_ctx = Xop_ctx.new_sub_(cur_wiki);
|
||||
fnc_ctx.Parse_tid_(Xop_parser_.Parse_tid_page_tmpl); // default xnde names to template; needed for test, but should be in place; DATE:2014-06-27
|
||||
@@ -340,7 +340,7 @@ public class Scrib_lib_mw implements Scrib_lib {
|
||||
public boolean NewChildFrame(Scrib_proc_args args, Scrib_proc_rslt rslt) {
|
||||
Ordered_hash frame_list = core.Frame_created_list();
|
||||
int frame_list_len = frame_list.Count();
|
||||
if (frame_list_len > 100) throw Exc_.new_("newChild: too many frames");
|
||||
if (frame_list_len > 100) throw Err_.new_wo_type("newChild: too many frames");
|
||||
String frame_id = args.Pull_str(0);
|
||||
Xot_invk frame = Scrib_frame_.Get_frame(core, frame_id);
|
||||
Object ttl_obj = args.Cast_obj_or_null(1); // NOTE: callers must pass named title else title will be false; EX: frame:newChild{'current', 'title0'} -> false; frame:newChild{'current', title='title0'} -> 'title0'; DATE:2014-05-20
|
||||
@@ -351,7 +351,7 @@ public class Scrib_lib_mw implements Scrib_lib {
|
||||
}
|
||||
else {
|
||||
ttl = Xoa_ttl.parse_(cur_wiki, Bry_.new_u8((String)ttl_obj));
|
||||
if (ttl == null) throw Exc_.new_("newChild: invalid title", "title", (String)ttl_obj);
|
||||
if (ttl == null) throw Err_.new_wo_type("newChild: invalid title", "title", (String)ttl_obj);
|
||||
}
|
||||
KeyVal[] args_ary = args.Pull_kv_ary(2);
|
||||
Xot_invk_mock new_frame = Xot_invk_mock.new_(core.Frame_current().Defn_tid(), 0, ttl.Full_txt(), args_ary); // NOTE: use spaces, not unders; REF.MW:$frame->getTitle()->getPrefixedText(); DATE:2014-08-14
|
||||
|
||||
@@ -36,7 +36,7 @@ public class Scrib_lib_site implements Scrib_lib {
|
||||
case Proc_usersInGroup: return UsersInGroup(args, rslt);
|
||||
case Proc_interwikiMap: return InterwikiMap(args, rslt);
|
||||
case Proc_init_site_for_wiki: return Init_site_for_wiki(args, rslt);
|
||||
default: throw Exc_.new_unhandled(key);
|
||||
default: throw Err_.new_unhandled(key);
|
||||
}
|
||||
}
|
||||
private static final int Proc_getNsIndex = 0, Proc_pagesInCategory = 1, Proc_pagesInNs = 2, Proc_usersInGroup = 3, Proc_interwikiMap = 4, Proc_init_site_for_wiki = 5;
|
||||
@@ -71,7 +71,7 @@ public class Scrib_lib_site implements Scrib_lib {
|
||||
else if (String_.Eq(filter, "!local"))
|
||||
local = 0;
|
||||
else if (filter != null)
|
||||
throw Exc_.new_("bad argument #1 to 'interwikiMap' (unknown filter '$filter')", "filter", filter);
|
||||
throw Err_.new_wo_type("bad argument #1 to 'interwikiMap' (unknown filter '$filter')", "filter", filter);
|
||||
// TODO: cache interwikimap results
|
||||
Xow_xwiki_mgr xwiki_mgr = core.Wiki().Xwiki_mgr();
|
||||
int xwiki_len = xwiki_mgr.Len();
|
||||
|
||||
@@ -35,7 +35,7 @@ public class Scrib_lib_text implements Scrib_lib {
|
||||
case Proc_killMarkers: return KillMarkers(args, rslt);
|
||||
case Proc_getEntityTable: return GetEntityTable(args, rslt);
|
||||
case Proc_init_text_for_wiki: return Init_text_for_wiki(args, rslt);
|
||||
default: throw Exc_.new_unhandled(key);
|
||||
default: throw Err_.new_unhandled(key);
|
||||
}
|
||||
}
|
||||
private static final int Proc_unstrip = 0, Proc_unstripNoWiki = 1, Proc_killMarkers = 2, Proc_getEntityTable = 3, Proc_init_text_for_wiki = 4;
|
||||
|
||||
@@ -45,7 +45,7 @@ public class Scrib_lib_title implements Scrib_lib {
|
||||
case Proc_getCurrentTitle: return GetCurrentTitle(args, rslt);
|
||||
case Proc_protectionLevels: return ProtectionLevels(args, rslt);
|
||||
case Proc_cascadingProtection: return CascadingProtection(args, rslt);
|
||||
default: throw Exc_.new_unhandled(key);
|
||||
default: throw Err_.new_unhandled(key);
|
||||
}
|
||||
}
|
||||
private static final int Proc_newTitle = 0, Proc_makeTitle = 1, Proc_getExpensiveData = 2, Proc_getUrl = 3, Proc_getContent = 4, Proc_getFileInfo = 5, Proc_getCurrentTitle = 6, Proc_protectionLevels = 7, Proc_cascadingProtection = 8;
|
||||
@@ -62,7 +62,7 @@ public class Scrib_lib_title implements Scrib_lib {
|
||||
Xowe_wiki wiki = core.Wiki();
|
||||
byte[] ns_bry = null;
|
||||
if (ns_obj != null) {
|
||||
ns_bry = Parse_ns(wiki, ns_obj); if (ns_bry == null) throw Exc_.new_("unknown ns", "ns", Object_.Xto_str_strict_or_empty(ns_bry));
|
||||
ns_bry = Parse_ns(wiki, ns_obj); if (ns_bry == null) throw Err_.new_wo_type("unknown ns", "ns", Object_.Xto_str_strict_or_empty(ns_bry));
|
||||
}
|
||||
if (ns_bry != null) {
|
||||
Bry_bfr bfr = wiki.Utl__bfr_mkr().Get_b512();
|
||||
@@ -78,7 +78,7 @@ public class Scrib_lib_title implements Scrib_lib {
|
||||
byte[] ttl_bry = args.Pull_bry(0);
|
||||
byte[] url_func_bry = args.Pull_bry(1);
|
||||
Object url_func_obj = url_func_hash.Get_by(url_func_bry);
|
||||
if (url_func_obj == null) throw Exc_.new_("url_function is not valid", "url_func", String_.new_u8(url_func_bry));
|
||||
if (url_func_obj == null) throw Err_.new_wo_type("url_function is not valid", "url_func", String_.new_u8(url_func_bry));
|
||||
byte url_func_tid = ((Byte_obj_val)url_func_obj).Val();
|
||||
byte[] qry_bry = args.Extract_qry_args(wiki, 2);
|
||||
// byte[] proto = Scrib_kv_utl_.Val_to_bry_or(values, 3, null); // NOTE: Scribunto has more conditional logic around argument 2 and setting protocols; DATE:2014-07-07
|
||||
|
||||
@@ -36,7 +36,7 @@ public class Scrib_lib_uri implements Scrib_lib {
|
||||
case Proc_fullUrl: return Url_func(args, rslt, Pfunc_urlfunc.Tid_full);
|
||||
case Proc_canonicalUrl: return Url_func(args, rslt, Pfunc_urlfunc.Tid_canonical);
|
||||
case Proc_init_uri_for_page: return Init_uri_for_page(args, rslt);
|
||||
default: throw Exc_.new_unhandled(key);
|
||||
default: throw Err_.new_unhandled(key);
|
||||
}
|
||||
}
|
||||
private static final int Proc_anchorEncode = 0, Proc_localUrl = 1, Proc_fullUrl = 2, Proc_canonicalUrl = 3, Proc_init_uri_for_page = 4;
|
||||
|
||||
@@ -41,7 +41,7 @@ public class Scrib_lib_ustring implements Scrib_lib {
|
||||
case Proc_gmatch_init: return Gmatch_init(args, rslt);
|
||||
case Proc_gmatch_callback: return Gmatch_callback(args, rslt);
|
||||
case Proc_gsub: return Gsub(args, rslt);
|
||||
default: throw Exc_.new_unhandled(key);
|
||||
default: throw Err_.new_unhandled(key);
|
||||
}
|
||||
}
|
||||
private static final int Proc_find = 0, Proc_match = 1, Proc_gmatch_init = 2, Proc_gmatch_callback = 3, Proc_gsub = 4;
|
||||
@@ -209,7 +209,7 @@ class Scrib_lib_ustring_gsub_mgr {
|
||||
tmp_repl_tid = Repl_tid_luacbk;
|
||||
repl_func = (Scrib_lua_proc)repl_obj;
|
||||
}
|
||||
else throw Exc_.new_unhandled(ClassAdp_.NameOf_type(repl_type));
|
||||
else throw Err_.new_unhandled(ClassAdp_.NameOf_type(repl_type));
|
||||
}
|
||||
private String Exec_repl(byte repl_tid, byte[] repl_bry, String text, String regx, int limit) {
|
||||
RegxAdp regx_mgr = Scrib_lib_ustring.RegxAdp_new_(core.Ctx(), regx);
|
||||
@@ -316,7 +316,7 @@ class Scrib_lib_ustring_gsub_mgr {
|
||||
tmp_bfr.Add_str(Scrib_kv_utl_.Val_to_str(rslts, 0));
|
||||
break;
|
||||
}
|
||||
default: throw Exc_.new_unhandled(repl_tid);
|
||||
default: throw Err_.new_unhandled(repl_tid);
|
||||
}
|
||||
}
|
||||
static final byte Repl_tid_null = 0, Repl_tid_string = 1, Repl_tid_table = 2, Repl_tid_luacbk = 3;
|
||||
|
||||
@@ -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.xtns.scribunto.libs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.scribunto.*;
|
||||
import gplx.json.*; import gplx.xowa.xtns.wdatas.*; import gplx.xowa.xtns.wdatas.parsers.*;
|
||||
import gplx.core.json.*; import gplx.xowa.xtns.wdatas.*; import gplx.xowa.xtns.wdatas.parsers.*;
|
||||
public class Scrib_lib_wikibase implements Scrib_lib {
|
||||
public Scrib_lib_wikibase(Scrib_core core) {this.core = core;} private Scrib_core core;
|
||||
public Scrib_lua_mod Mod() {return mod;} private Scrib_lua_mod mod;
|
||||
@@ -33,7 +33,7 @@ public class Scrib_lib_wikibase implements Scrib_lib {
|
||||
case Proc_getEntity: return GetEntity(args, rslt);
|
||||
case Proc_getEntityId: return GetEntityId(args, rslt);
|
||||
case Proc_getGlobalSiteId: return GetGlobalSiteId(args, rslt);
|
||||
default: throw Exc_.new_unhandled(key);
|
||||
default: throw Err_.new_unhandled(key);
|
||||
}
|
||||
}
|
||||
private static final int Proc_getEntity = 0, Proc_getEntityId = 1, Proc_getGlobalSiteId = 2;
|
||||
|
||||
@@ -17,7 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.xtns.scribunto.libs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.scribunto.*;
|
||||
import gplx.xowa.xtns.wdatas.*;
|
||||
import gplx.json.*; import gplx.xowa.xtns.wdatas.core.*;
|
||||
import gplx.core.json.*; import gplx.xowa.xtns.wdatas.core.*;
|
||||
public class Scrib_lib_wikibase_entity implements Scrib_lib {
|
||||
public Scrib_lib_wikibase_entity(Scrib_core core) {this.core = core;} private Scrib_core core;
|
||||
public Scrib_lua_mod Mod() {return mod;} private Scrib_lua_mod mod;
|
||||
@@ -32,7 +32,7 @@ public class Scrib_lib_wikibase_entity implements Scrib_lib {
|
||||
switch (key) {
|
||||
case Proc_getGlobalSiteId: return GetGlobalSiteId(args, rslt);
|
||||
case Proc_formatPropertyValues: return FormatPropertyValues(args, rslt);
|
||||
default: throw Exc_.new_unhandled(key);
|
||||
default: throw Err_.new_unhandled(key);
|
||||
}
|
||||
}
|
||||
private static final int Proc_getGlobalSiteId = 0, Proc_formatPropertyValues = 1;
|
||||
|
||||
@@ -17,7 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.xtns.scribunto.libs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.scribunto.*;
|
||||
import org.junit.*;
|
||||
import gplx.json.*; import gplx.xowa.xtns.wdatas.*; import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.xtns.wdatas.parsers.*;
|
||||
import gplx.core.json.*; import gplx.xowa.xtns.wdatas.*; import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.xtns.wdatas.parsers.*;
|
||||
public class Scrib_lib_wikibase_srl_tst {
|
||||
@Before public void init() {fxt.Clear();} private Scrib_lib_wikibase_srl_fxt fxt = new Scrib_lib_wikibase_srl_fxt();
|
||||
@Test public void Label() {
|
||||
|
||||
@@ -43,7 +43,7 @@ public class Scrib_regx_converter {
|
||||
bfr.Add(q_flag ? Bry_dollar_escaped : Bry_dollar_literal);
|
||||
break;
|
||||
case Byte_ascii.Paren_bgn: {
|
||||
if (i + 1 >= len) throw Exc_.new_("Unmatched open-paren at pattern character " + Int_.Xto_str(i));
|
||||
if (i + 1 >= len) throw Err_.new_wo_type("Unmatched open-paren at pattern character " + Int_.Xto_str(i));
|
||||
boolean capt_itm = src[i + 1] == Byte_ascii.Paren_end; // current is "()"
|
||||
++grps_len;
|
||||
capt_list.Add(KeyVal_.int_(grps_len, capt_itm));
|
||||
@@ -54,13 +54,13 @@ public class Scrib_regx_converter {
|
||||
}
|
||||
case Byte_ascii.Paren_end:
|
||||
if (grps_open.Count() == 0)
|
||||
throw Exc_.new_("Unmatched close-paren at pattern character " + Int_.Xto_str(i));
|
||||
throw Err_.new_wo_type("Unmatched close-paren at pattern character " + Int_.Xto_str(i));
|
||||
List_adp_.DelAt_last(grps_open);
|
||||
bfr.Add_byte(Byte_ascii.Paren_end);
|
||||
break;
|
||||
case Byte_ascii.Percent:
|
||||
++i;
|
||||
if (i >= len) throw Exc_.new_("malformed pattern (ends with '%')");
|
||||
if (i >= len) throw Err_.new_wo_type("malformed pattern (ends with '%')");
|
||||
Object percent_obj = percent_hash.Get_by_mid(src, i, i + 1);
|
||||
if (percent_obj != null) {
|
||||
bfr.Add((byte[])percent_obj);
|
||||
@@ -71,7 +71,7 @@ public class Scrib_regx_converter {
|
||||
switch (nxt) {
|
||||
case Byte_ascii.Ltr_b: // EX: "%b()"
|
||||
i += 2;
|
||||
if (i >= len) throw Exc_.new_("malformed pattern (missing arguments to \'%b\')");
|
||||
if (i >= len) throw Err_.new_wo_type("malformed pattern (missing arguments to \'%b\')");
|
||||
byte char_0 = src[i - 1];
|
||||
byte char_1 = src[i];
|
||||
if (char_0 == char_1) { // same char: easier regex; REF.MW: $bfr .= "{$d1}[^$d1]*$d1";
|
||||
@@ -98,7 +98,7 @@ public class Scrib_regx_converter {
|
||||
case Byte_ascii.Num_5: case Byte_ascii.Num_6: case Byte_ascii.Num_7: case Byte_ascii.Num_8: case Byte_ascii.Num_9:
|
||||
grps_len = nxt - Byte_ascii.Num_0;
|
||||
if (grps_len == 0 || grps_len > capt_list.Count() || grps_open_Has(grps_open, grps_len))
|
||||
throw Exc_.new_("invalid capture index %" + grps_len + " at pattern character " + Int_.Xto_str(i));
|
||||
throw Err_.new_wo_type("invalid capture index %" + grps_len + " at pattern character " + Int_.Xto_str(i));
|
||||
bfr.Add(Bry_bf2_seg_0).Add_int_variable(grps_len);//.Add(Bry_bf2_seg_1); // $bfr .= "\\g{m$grps_len}";
|
||||
break;
|
||||
default:
|
||||
@@ -153,11 +153,11 @@ public class Scrib_regx_converter {
|
||||
}
|
||||
if (stop) break;
|
||||
}
|
||||
if (i >= len) throw Exc_.new_("Missing close-bracket for character set beginning at pattern character $nxt_pos");
|
||||
if (i >= len) throw Err_.new_wo_type("Missing close-bracket for character set beginning at pattern character $nxt_pos");
|
||||
bfr.Add_byte(Byte_ascii.Brack_end);
|
||||
q_flag = true;
|
||||
break;
|
||||
case Byte_ascii.Brack_end: throw Exc_.new_("Unmatched close-bracket at pattern character " + Int_.Xto_str(i));
|
||||
case Byte_ascii.Brack_end: throw Err_.new_wo_type("Unmatched close-bracket at pattern character " + Int_.Xto_str(i));
|
||||
case Byte_ascii.Dot:
|
||||
q_flag = true;
|
||||
bfr.Add_byte(Byte_ascii.Dot);
|
||||
@@ -183,7 +183,7 @@ public class Scrib_regx_converter {
|
||||
}
|
||||
}
|
||||
}
|
||||
if (grps_open.Count() > 0) throw Exc_.new_("Unclosed capture beginning at pattern character " + Int_.cast_(grps_open.Get_at(0)));
|
||||
if (grps_open.Count() > 0) throw Err_.new_wo_type("Unclosed capture beginning at pattern character " + Int_.cast_(grps_open.Get_at(0)));
|
||||
// bfr.Add(Bry_regx_end); // NOTE: do not add PHP /us at end; u=PCRE_UTF8 which is not needed for Java; s=PCRE_DOTALL which will be specified elsewhere
|
||||
regx = bfr.Xto_str_and_clear();
|
||||
return regx;
|
||||
|
||||
@@ -21,7 +21,7 @@ import gplx.html.*; import gplx.xowa.html.*;
|
||||
public class Xtn_syntaxHighlight_nde implements Xox_xnde, Xop_xnde_atr_parser {
|
||||
private byte[] lang = Bry_.Empty; private byte[] style = null; private byte[] enclose = Bry_.Empty;
|
||||
private boolean line_enabled = false; private int start = 1; private Int_rng_mgr highlight_idxs = Int_rng_mgr_null._;
|
||||
public Xop_xnde_tkn Xnde() {throw Exc_.new_unimplemented();}
|
||||
public Xop_xnde_tkn Xnde() {throw Err_.new_unimplemented();}
|
||||
public void Xatr_parse(Xowe_wiki wiki, byte[] src, Xop_xatr_itm xatr, Object xatr_obj) {
|
||||
if (xatr_obj == null) return;
|
||||
byte xatr_tid = ((Byte_obj_val)xatr_obj).Val();
|
||||
|
||||
@@ -29,7 +29,7 @@ public class Blacklist_scrib_lib implements Scrib_lib {
|
||||
public boolean Procs_exec(int key, Scrib_proc_args args, Scrib_proc_rslt rslt) {
|
||||
switch (key) {
|
||||
case Proc_test: return Test(args, rslt);
|
||||
default: throw Exc_.new_unhandled(key);
|
||||
default: throw Err_.new_unhandled(key);
|
||||
}
|
||||
}
|
||||
private static final int Proc_test = 0;
|
||||
|
||||
@@ -17,7 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.xtns.wdatas; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*;
|
||||
import gplx.core.primitives.*;
|
||||
import gplx.json.*; import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.xtns.wdatas.parsers.*;
|
||||
import gplx.core.json.*; import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.xtns.wdatas.parsers.*;
|
||||
public class Wdata_doc {
|
||||
private Wdata_wiki_mgr mgr; private Int_obj_ref tmp_key;
|
||||
public Wdata_doc(byte[] qid, Wdata_wiki_mgr mgr, Json_doc jdoc) {this.qid = qid; this.mgr = mgr; this.jdoc = jdoc;}
|
||||
|
||||
@@ -17,13 +17,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.xtns.wdatas; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*;
|
||||
import gplx.core.primitives.*;
|
||||
import gplx.json.*; import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.xtns.wdatas.parsers.*;
|
||||
import gplx.core.json.*; import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.xtns.wdatas.parsers.*;
|
||||
public class Wdata_doc_bldr {
|
||||
private Ordered_hash descr_list, label_list, slink_list, alias_list, claim_list;
|
||||
public Wdata_doc_bldr() {this.Init();}
|
||||
public Wdata_doc_bldr Qid_(String v) {this.qid = Bry_.new_a7(v); return this;} private byte[] qid;
|
||||
public Wdata_doc_bldr Add_claims(Wdata_claim_itm_core... ary) {
|
||||
if (ary.length == 0) throw Exc_.new_("claims must be greater than 0");
|
||||
if (ary.length == 0) throw Err_.new_wo_type("claims must be greater than 0");
|
||||
Wdata_claim_itm_core itm = ary[0];
|
||||
Wdata_claim_grp grp = new Wdata_claim_grp(Int_obj_ref.new_(itm.Pid()), ary);
|
||||
claim_list.Add(grp.Id_ref(), grp);
|
||||
|
||||
@@ -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.xtns.wdatas; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*;
|
||||
import gplx.json.*; import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.xtns.wdatas.parsers.*;
|
||||
import gplx.core.json.*; import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.xtns.wdatas.parsers.*;
|
||||
public class Wdata_doc_wtr {
|
||||
private Json_doc_wtr wtr = new Json_doc_wtr();
|
||||
public byte[] Xto_bry(Wdata_doc wdoc) {
|
||||
@@ -155,7 +155,7 @@ public class Wdata_doc_wtr {
|
||||
wtr.Nde_end();
|
||||
break;
|
||||
}
|
||||
default: throw Exc_.new_unhandled(prop.Val_tid());
|
||||
default: throw Err_.new_unhandled(prop.Val_tid());
|
||||
}
|
||||
}
|
||||
wtr.Ary_end();
|
||||
|
||||
@@ -17,7 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.xtns.wdatas; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*;
|
||||
import gplx.core.primitives.*;
|
||||
import gplx.json.*; import gplx.xowa.wikis.*; import gplx.xowa.html.*; import gplx.xowa.parsers.logs.*; import gplx.xowa.apis.xowa.xtns.*; import gplx.xowa.apis.xowa.html.*; import gplx.xowa.users.*;
|
||||
import gplx.core.json.*; import gplx.xowa.wikis.*; import gplx.xowa.html.*; import gplx.xowa.parsers.logs.*; import gplx.xowa.apis.xowa.xtns.*; import gplx.xowa.apis.xowa.html.*; import gplx.xowa.users.*;
|
||||
import gplx.xowa.xtns.wdatas.parsers.*; import gplx.xowa.xtns.wdatas.pfuncs.*; import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.xtns.wdatas.hwtrs.*;
|
||||
public class Wdata_wiki_mgr implements GfoEvObj, GfoInvkAble {
|
||||
private final Wdata_doc_parser wdoc_parser_v1, wdoc_parser_v2;
|
||||
@@ -40,7 +40,7 @@ public class Wdata_wiki_mgr implements GfoEvObj, GfoInvkAble {
|
||||
public Json_parser Jdoc_parser() {return jdoc_parser;} private Json_parser jdoc_parser = new Json_parser();
|
||||
public void Init_by_app() {}
|
||||
public Wdata_doc_parser Wdoc_parser(Json_doc jdoc) {
|
||||
Json_itm_kv itm_0 = Json_itm_kv.cast_(jdoc.Root().Subs_get_at(0)); // get 1st node
|
||||
Json_itm_kv itm_0 = Json_itm_kv.cast_(jdoc.Root().Get_at(0)); // get 1st node
|
||||
return Bry_.Eq(itm_0.Key().Data_bry(), Wdata_doc_parser_v2.Bry_type)
|
||||
|| Bry_.Eq(itm_0.Key().Data_bry(), Wdata_doc_parser_v2.Bry_id)
|
||||
? wdoc_parser_v2 : wdoc_parser_v1; // if "type", must be v2
|
||||
|
||||
@@ -177,7 +177,7 @@ public class Wdata_wiki_mgr_fxt {
|
||||
}
|
||||
public void Test_write_json_as_html(String raw_str, String expd) {
|
||||
byte[] raw_bry = Bry_.new_a7(raw_str);
|
||||
raw_bry = gplx.json.Json_parser_tst.Replace_apos(raw_bry);
|
||||
raw_bry = gplx.core.json.Json_parser_tst.Replace_apos(raw_bry);
|
||||
Bry_bfr bfr = app.Utl__bfr_mkr().Get_b512();
|
||||
Wdata_wiki_mgr.Write_json_as_html(wdata_mgr.Jdoc_parser(), bfr, raw_bry);
|
||||
Tfds.Eq(expd, bfr.To_str_and_rls());
|
||||
|
||||
@@ -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.xtns.wdatas; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*;
|
||||
import gplx.json.*; import gplx.xowa.wikis.*; import gplx.xowa.wikis.xwikis.*; import gplx.xowa.xtns.wdatas.*; import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.xtns.wdatas.pfuncs.*;
|
||||
import gplx.core.json.*; import gplx.xowa.wikis.*; import gplx.xowa.wikis.xwikis.*; import gplx.xowa.xtns.wdatas.*; import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.xtns.wdatas.pfuncs.*;
|
||||
public class Wdata_xwiki_link_wtr implements Bry_fmtr_arg {
|
||||
public Wdata_xwiki_link_wtr Page_(Xoae_page page) {this.page = page; return this;} private Xoae_page page;
|
||||
public void XferAry(Bry_bfr bfr, int idx) {
|
||||
@@ -67,7 +67,7 @@ public class Wdata_xwiki_link_wtr implements Bry_fmtr_arg {
|
||||
if (external_links_mgr_enabled && external_links_mgr.Sort())
|
||||
slink_list.Sort_by(Xoa_ttl_sorter._);
|
||||
return doc.Qid();
|
||||
} catch (Exception e) {Exc_.Noop(e); return Qid_null;}
|
||||
} catch (Exception e) {Err_.Noop(e); return Qid_null;}
|
||||
}
|
||||
public static final byte[] Qid_null = Bry_.Empty; // NOTE: return Empty, not null else Bry_fmtr will fail
|
||||
}
|
||||
|
||||
@@ -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.xtns.wdatas; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*;
|
||||
import org.junit.*; import gplx.json.*; import gplx.xowa.wikis.*;
|
||||
import org.junit.*; import gplx.core.json.*; import gplx.xowa.wikis.*;
|
||||
public class Wdata_xwiki_link_wtr_tst {
|
||||
@Before public void init() {fxt.Init();} Wdata_wiki_mgr_fxt fxt = new Wdata_wiki_mgr_fxt();
|
||||
@Test public void Skip_xwiki_lang_for_self() { // PURPOSE: list of language links should not include self
|
||||
|
||||
@@ -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.xtns.wdatas.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
|
||||
import gplx.json.*;
|
||||
import gplx.core.json.*;
|
||||
public class Wdata_alias_itm implements Wdata_lang_sortable {
|
||||
public Wdata_alias_itm(byte[] lang, byte[][] vals) {this.lang = lang; this.vals = vals;}
|
||||
public byte[] Lang() {return lang;} private byte[] lang;
|
||||
|
||||
@@ -37,10 +37,10 @@ public class Wdata_date {
|
||||
switch (date[0]) {
|
||||
case Byte_ascii.Plus: break;
|
||||
case Byte_ascii.Dash: year_sign = -1; break;
|
||||
default: throw Exc_.new_unhandled(date[0]);
|
||||
default: throw Err_.new_unhandled(date[0]);
|
||||
}
|
||||
int year_end = Bry_finder.Find_fwd(date, Byte_ascii.Dash, 1);
|
||||
long year = Long_.parse_or_(String_.new_a7(date, 1, year_end), -1); if (year == -1) throw Exc_.new_("parse failed", "raw", String_.new_a7(date));
|
||||
long year = Long_.parse_or_(String_.new_a7(date, 1, year_end), -1); if (year == -1) throw Err_.new_wo_type("parse failed", "raw", String_.new_a7(date));
|
||||
int month = Bry_.Xto_int_or(date, year_end + 1, year_end + 3, -1);
|
||||
int day = Bry_.Xto_int_or(date, year_end + 4, year_end + 6, -1);
|
||||
int hour = Bry_.Xto_int_or(date, year_end + 7, year_end + 9, -1);
|
||||
|
||||
@@ -17,7 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.xtns.wdatas.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
|
||||
import org.junit.*;
|
||||
import gplx.json.*; import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.xtns.wdatas.parsers.*; import gplx.xowa.xtns.wdatas.hwtrs.*;
|
||||
import gplx.core.json.*; import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.xtns.wdatas.parsers.*; import gplx.xowa.xtns.wdatas.hwtrs.*;
|
||||
public class Wdata_date_tst {
|
||||
@Before public void init() {fxt.Clear();} private Wdata_date_fxt fxt = new Wdata_date_fxt();
|
||||
@Test public void Parse() {
|
||||
|
||||
@@ -44,11 +44,11 @@ public class Wdata_dict_rank {
|
||||
case Tid_preferred : return Str_preferred;
|
||||
case Tid_normal : return Str_normal;
|
||||
case Tid_deprecated : return Str_deprecated;
|
||||
default : throw Exc_.new_unhandled(tid);
|
||||
default : throw Err_.new_unhandled(tid);
|
||||
}
|
||||
}
|
||||
public static byte Xto_tid(byte[] v) {
|
||||
Object rv_obj = Dict.Get_by_bry(v); if (rv_obj == null) throw Exc_.new_("unknown rank", "val", String_.new_u8(v));
|
||||
Object rv_obj = Dict.Get_by_bry(v); if (rv_obj == null) throw Err_.new_wo_type("unknown rank", "val", String_.new_u8(v));
|
||||
return ((Byte_obj_val)rv_obj).Val();
|
||||
}
|
||||
}
|
||||
@@ -42,7 +42,7 @@ public class Wdata_dict_reference {
|
||||
case Tid_hash: return Str_hash;
|
||||
case Tid_snaks: return Str_snaks;
|
||||
case Tid_snaks_order: return Str_snaks_order;
|
||||
default: throw Exc_.new_unhandled(v);
|
||||
default: throw Err_.new_unhandled(v);
|
||||
}
|
||||
}
|
||||
public static byte[] Xto_bry(byte v) {
|
||||
@@ -50,7 +50,7 @@ public class Wdata_dict_reference {
|
||||
case Tid_hash: return Bry_hash;
|
||||
case Tid_snaks: return Bry_snaks;
|
||||
case Tid_snaks_order: return Bry_snaks_order;
|
||||
default: throw Exc_.new_unhandled(v);
|
||||
default: throw Err_.new_unhandled(v);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -55,7 +55,7 @@ public class Wdata_dict_snak_tid {
|
||||
}
|
||||
}
|
||||
public static byte Xto_tid(byte[] v) {
|
||||
Object rv_obj = Dict.Get_by_bry(v); if (rv_obj == null) throw Exc_.new_("unknown snak tid", "val", String_.new_u8(v));
|
||||
Object rv_obj = Dict.Get_by_bry(v); if (rv_obj == null) throw Err_.new_wo_type("unknown snak tid", "val", String_.new_u8(v));
|
||||
return ((Byte_obj_val)rv_obj).Val();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,7 +49,7 @@ public class Wdata_dict_value_entity_tid {
|
||||
}
|
||||
}
|
||||
public static byte Xto_tid(byte[] v) {
|
||||
Object rv_obj = Dict.Get_by_bry(v); if (rv_obj == null) throw Exc_.new_("unknown entity_tid", "val", v);
|
||||
Object rv_obj = Dict.Get_by_bry(v); if (rv_obj == null) throw Err_.new_wo_type("unknown entity_tid", "val", v);
|
||||
return ((Byte_obj_val)rv_obj).Val();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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.xtns.wdatas.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
|
||||
import gplx.json.*;
|
||||
import gplx.core.json.*;
|
||||
public class Wdata_langtext_itm implements Wdata_lang_sortable {
|
||||
public Wdata_langtext_itm(byte[] lang, byte[] text) {this.lang = lang; this.text = text;}
|
||||
public byte[] Lang() {return lang;} private final byte[] lang;
|
||||
|
||||
@@ -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.xtns.wdatas.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
|
||||
import gplx.json.*; import gplx.xowa.wikis.*;
|
||||
import gplx.core.json.*; import gplx.xowa.wikis.*;
|
||||
public class Wdata_sitelink_itm implements Wdata_lang_sortable {
|
||||
public Wdata_sitelink_itm(byte[] site, byte[] name, byte[][] badges) {this.site = site; this.name = name; this.badges = badges;}
|
||||
public byte[] Site() {return site;} private final byte[] site;
|
||||
|
||||
@@ -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.xtns.wdatas.hwtrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
|
||||
import gplx.json.*; import gplx.xowa.html.*; import gplx.xowa.apis.xowa.html.*;
|
||||
import gplx.core.json.*; import gplx.xowa.html.*; import gplx.xowa.apis.xowa.html.*;
|
||||
class Wdata_fmtr__json implements Bry_fmtr_arg {
|
||||
private final Bry_bfr tmp_bfr = Bry_bfr.reset_(255);
|
||||
private Xoapi_toggle_itm toggle_itm; private Wdata_toc_data toc_data; private Json_doc jdoc;
|
||||
|
||||
@@ -17,7 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.xtns.wdatas.hwtrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
|
||||
import org.junit.*;
|
||||
import gplx.json.*; import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.xtns.wdatas.parsers.*; import gplx.xowa.apis.xowa.html.*; import gplx.xowa.wikis.xwikis.*; import gplx.xowa.apis.xowa.xtns.*;
|
||||
import gplx.core.json.*; import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.xtns.wdatas.parsers.*; import gplx.xowa.apis.xowa.html.*; import gplx.xowa.wikis.xwikis.*; import gplx.xowa.apis.xowa.xtns.*;
|
||||
public class Wdata_hwtr_mgr_tst {
|
||||
@Before public void init() {fxt.init();} private Wdata_hwtr_mgr_fxt fxt = new Wdata_hwtr_mgr_fxt();
|
||||
@Test public void Stub() {}
|
||||
|
||||
@@ -60,7 +60,7 @@ class Wdata_slink_grp {
|
||||
case Idx_u: return msgs.Slink_tbl_hdr_u();
|
||||
case Idx_n: return msgs.Slink_tbl_hdr_n();
|
||||
case Idx_x: return msgs.Slink_tbl_hdr_x();
|
||||
default: throw Exc_.new_unhandled(tid);
|
||||
default: throw Err_.new_unhandled(tid);
|
||||
}
|
||||
}
|
||||
public static byte[] Name_by_tid(int idx) {
|
||||
@@ -74,7 +74,7 @@ class Wdata_slink_grp {
|
||||
case Idx_u: return Xow_domain_type_.Key_bry_wikiversity;
|
||||
case Idx_n: return Xow_domain_type_.Key_bry_wikinews;
|
||||
case Idx_x: return Name_special;
|
||||
default: throw Exc_.new_unhandled(idx);
|
||||
default: throw Err_.new_unhandled(idx);
|
||||
}
|
||||
}
|
||||
public static final int Idx__len = 9, Idx_w = 0, Idx_d = 1, Idx_s = 2, Idx_v = 3, Idx_q = 4, Idx_b = 5, Idx_u = 6, Idx_n = 7, Idx_x = 8;
|
||||
|
||||
@@ -66,7 +66,7 @@ class Wdata_visitor__html_wtr implements Wdata_claim_visitor {
|
||||
if (!Bry_.Eq(unit, Wdata_claim_itm_quantity.Unit_1))
|
||||
tmp_bfr.Add_byte_space().Add(unit);
|
||||
} catch (Exception e) {
|
||||
Gfo_usr_dlg_.I.Warn_many("", "", "failed to write quantity; ttl=~{0} pid=~{1} err=~{2}", String_.new_u8(ttl), itm.Pid(), Err_.Message_gplx_brief(e));
|
||||
Gfo_usr_dlg_.I.Warn_many("", "", "failed to write quantity; ttl=~{0} pid=~{1} err=~{2}", ttl, itm.Pid(), Err_.Message_gplx_full(e));
|
||||
}
|
||||
} private static final byte[] Time_plus_minus_spr = Bry_.new_a7(" / ");
|
||||
public void Visit_time(Wdata_claim_itm_time itm) {
|
||||
@@ -82,7 +82,7 @@ class Wdata_visitor__html_wtr implements Wdata_claim_visitor {
|
||||
if (calendar_display != null)
|
||||
tmp_bfr.Add_byte_space().Add(calendar_display);
|
||||
} catch (Exception e) {
|
||||
Gfo_usr_dlg_.I.Warn_many("", "", "failed to write time; ttl=~{0} pid=~{1} err=~{2}", String_.new_u8(ttl), itm.Pid(), Err_.Message_gplx_brief(e));
|
||||
Gfo_usr_dlg_.I.Warn_many("", "", "failed to write time; ttl=~{0} pid=~{1} err=~{2}", ttl, itm.Pid(), Err_.Message_gplx_full(e));
|
||||
}
|
||||
}
|
||||
public void Visit_globecoordinate(Wdata_claim_itm_globecoordinate itm) {
|
||||
@@ -100,7 +100,7 @@ class Wdata_visitor__html_wtr implements Wdata_claim_visitor {
|
||||
tmp_bfr.Add_byte(Byte_ascii.Paren_end);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Gfo_usr_dlg_.I.Warn_many("", "", "failed to write globecoordinate; ttl=~{0} pid=~{1} err=~{2}", String_.new_u8(ttl), itm.Pid(), Err_.Message_gplx_brief(e));
|
||||
Gfo_usr_dlg_.I.Warn_many("", "", "failed to write globecoordinate; ttl=~{0} pid=~{1} err=~{2}", ttl, itm.Pid(), Err_.Message_gplx_full(e));
|
||||
}
|
||||
}
|
||||
public void Visit_system(Wdata_claim_itm_system itm) {
|
||||
|
||||
@@ -17,7 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.xtns.wdatas.hwtrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
|
||||
import org.junit.*;
|
||||
import gplx.json.*; import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.xtns.wdatas.parsers.*; import gplx.xowa.apis.xowa.html.*;
|
||||
import gplx.core.json.*; import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.xtns.wdatas.parsers.*; import gplx.xowa.apis.xowa.html.*;
|
||||
public class Wdata_visitor__html_wtr_tst {
|
||||
@Before public void init() {fxt.init();} private Wdata_hwtr_mgr_fxt fxt = new Wdata_hwtr_mgr_fxt();
|
||||
@Test public void Monolingualtext() {
|
||||
|
||||
@@ -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.xtns.wdatas.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
|
||||
import gplx.json.*; import gplx.ios.*;
|
||||
import gplx.core.json.*; import gplx.ios.*;
|
||||
import gplx.xowa.xtns.wdatas.imports.*;
|
||||
abstract class Wdata_idx_mgr_base {
|
||||
public void Ctor(Xob_itm_dump_base wkr, Xob_bldr bldr, Xowe_wiki wiki, int dump_fil_len) {
|
||||
|
||||
@@ -17,7 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.xtns.wdatas.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
|
||||
import gplx.ios.*;
|
||||
import gplx.json.*;
|
||||
import gplx.core.json.*;
|
||||
import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.cmds.*; import gplx.xowa.bldrs.cmds.texts.sqls.*;
|
||||
import gplx.xowa.wikis.*; import gplx.xowa.wikis.data.*; import gplx.xowa.wikis.data.tbls.*;
|
||||
import gplx.xowa.apis.xowa.bldrs.imports.*;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user