mirror of
https://github.com/gnosygnu/xowa.git
synced 2026-03-02 03:49:30 +00:00
'v3.6.3.1'
This commit is contained in:
@@ -27,7 +27,7 @@ public class Pf_func_ {
|
||||
public static byte[] Eval_arg_or(Xop_ctx ctx, byte[] src, Xot_invk caller, Xot_invk self, int self_args_len, int i, byte[] or) {
|
||||
if (i >= self_args_len) return or;
|
||||
Arg_nde_tkn nde = self.Args_get_by_idx(i);
|
||||
Bry_bfr bfr = Bry_bfr.new_();
|
||||
Bry_bfr bfr = Bry_bfr_.New();
|
||||
Eval_arg_or(bfr, ctx, src, caller, self, nde, or);
|
||||
return bfr.To_bry_and_clear_and_trim();
|
||||
}
|
||||
@@ -38,7 +38,7 @@ public class Pf_func_ {
|
||||
}
|
||||
public static byte[] Eval_val_or(Xop_ctx ctx, byte[] src, Xot_invk caller, Xot_invk self, int self_args_len, int i, byte[] or) {
|
||||
if (i >= self_args_len) return or;
|
||||
Bry_bfr bfr = Bry_bfr.new_();
|
||||
Bry_bfr bfr = Bry_bfr_.New();
|
||||
Arg_nde_tkn nde = self.Args_get_by_idx(i);
|
||||
nde.Val_tkn().Tmpl_evaluate(ctx, src, caller, bfr);
|
||||
return bfr.To_bry_and_clear_and_trim();
|
||||
@@ -76,7 +76,7 @@ public class Pf_func_ {
|
||||
public static int[] Ary_get(Xow_domain_itm domain_itm, boolean wmf) {
|
||||
if (wmf && domain_itm != null && domain_itm.Domain_type().Tid() != Xow_domain_tid_.Int__home) return Ary_wmf;
|
||||
if (Ary_nonwmf == null) {
|
||||
List_adp list = List_adp_.new_();
|
||||
List_adp list = List_adp_.New();
|
||||
int len = Ary_wmf.length;
|
||||
for (int i = 0; i < len; ++i) {
|
||||
list.Add(Ary_wmf[i]);
|
||||
|
||||
@@ -34,7 +34,7 @@ public abstract class Pf_func_base implements Pf_func {
|
||||
Arg_itm_tkn name_val_tkn = self.Name_tkn().Val_tkn();
|
||||
int subs_len = name_val_tkn.Subs_len();
|
||||
if (subs_len > 0) {
|
||||
Bry_bfr tmp = Bry_bfr.new_();
|
||||
Bry_bfr tmp = Bry_bfr_.New();
|
||||
for (int i = 0; i < subs_len; i++)
|
||||
name_val_tkn.Subs_get(i).Tmpl_evaluate(ctx, src, caller, tmp);
|
||||
argx_dat = tmp.To_bry_and_clear_and_trim();
|
||||
@@ -60,7 +60,7 @@ public abstract class Pf_func_base implements Pf_func {
|
||||
}
|
||||
}
|
||||
else {
|
||||
Bry_bfr tmp = Bry_bfr.new_();
|
||||
Bry_bfr tmp = Bry_bfr_.New();
|
||||
for (int i = 0; i < subs_len; i++)
|
||||
name_val_tkn.Subs_get(i).Tmpl_evaluate(ctx, src, caller, tmp);
|
||||
argx_dat = tmp.To_bry_and_clear_and_trim();
|
||||
@@ -68,5 +68,5 @@ public abstract class Pf_func_base implements Pf_func {
|
||||
}
|
||||
return argx_dat;
|
||||
}
|
||||
public static final byte[] Eval_arg_or_null_is_null = null, Eval_arg_or_null_is_empty = Bry_.Empty;
|
||||
public static final byte[] Eval_arg_or_null_is_null = null, Eval_arg_or_null_is_empty = Bry_.Empty;
|
||||
}
|
||||
|
||||
@@ -23,8 +23,8 @@ public class Pfunc_expr_shunter {
|
||||
Btrie_fast_mgr trie = expression_();
|
||||
Val_stack val_stack = new Val_stack();
|
||||
Func_tkn_stack prc_stack = new Func_tkn_stack();
|
||||
public static final Decimal_adp Null_rslt = null;
|
||||
public Bry_bfr Err() {return err_bfr;} Bry_bfr err_bfr = Bry_bfr.new_();
|
||||
public static final Decimal_adp Null_rslt = null;
|
||||
public Bry_bfr Err() {return err_bfr;} Bry_bfr err_bfr = Bry_bfr_.New();
|
||||
public Decimal_adp Err_set(Xop_ctx ctx, int msgId) {return Err_set(ctx, msgId, Bry_.Empty);}
|
||||
public Decimal_adp Err_set(Xop_ctx ctx, int msg_id, byte[] arg) {
|
||||
byte[] msg_val = ctx.Wiki().Msg_mgr().Val_by_id(msg_id);
|
||||
@@ -32,7 +32,7 @@ public class Pfunc_expr_shunter {
|
||||
tmp_fmtr.Fmt_(msg_val).Bld_bfr_one(err_bfr, arg);
|
||||
err_bfr.Add(Err_end_ary);
|
||||
return Null_rslt;
|
||||
} static final byte[] Err_bgn_ary = Bry_.new_a7("<strong class=\"error\">"), Err_end_ary = Bry_.new_a7("</strong>"); Bry_fmtr tmp_fmtr = Bry_fmtr.tmp_();
|
||||
} static final byte[] Err_bgn_ary = Bry_.new_a7("<strong class=\"error\">"), Err_end_ary = Bry_.new_a7("</strong>"); Bry_fmtr tmp_fmtr = Bry_fmtr.tmp_();
|
||||
public void Rslt_set(byte[] bry) {
|
||||
err_bfr.Add(bry);
|
||||
}
|
||||
@@ -218,5 +218,5 @@ public class Pfunc_expr_shunter {
|
||||
return rv;
|
||||
}
|
||||
private static void Trie_add(Btrie_fast_mgr trie, Expr_tkn tkn) {trie.Add(tkn.Val_ary(), tkn);}
|
||||
public static final Pfunc_expr_shunter Instance = new Pfunc_expr_shunter(); Pfunc_expr_shunter() {}
|
||||
public static final Pfunc_expr_shunter Instance = new Pfunc_expr_shunter(); Pfunc_expr_shunter() {}
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ public class Xop_xowa_dbg extends Pf_func_base {
|
||||
bfr.Add(argx);
|
||||
Argx_list.Add(argx);
|
||||
}
|
||||
public static final List_adp Argx_list = List_adp_.new_();
|
||||
public static final List_adp Argx_list = List_adp_.New();
|
||||
@Override public int Id() {return Xol_kwd_grp_.Id_xowa_dbg;}
|
||||
@Override public Pf_func New(int id, byte[] name) {return new Xop_xowa_dbg().Name_(name);}
|
||||
}
|
||||
|
||||
@@ -48,12 +48,12 @@ public class Pfunc_gender extends Pf_func_base {
|
||||
int user_name_len = user_name.length;
|
||||
switch (user_name_len) {
|
||||
case 0: return Xol_gender_.Tid_unknown; // EX: {{gender:|m|f}}
|
||||
case 1: if (user_name[0] == Byte_ascii.Dot) return Xol_gender_.Tid_unknown; break; // EX: {{gender:.|m|f}}; TODO: should define default gender for wiki
|
||||
case 1: if (user_name[0] == Byte_ascii.Dot) return Xol_gender_.Tid_unknown; break; // EX: {{gender:.|m|f}}; TODO_OLD: should define default gender for wiki
|
||||
}
|
||||
Object o = gender_cache.Get_by_bry(user_name);
|
||||
return o == null ? user.Gender() : ((Int_obj_val)o).Val();
|
||||
}
|
||||
private static final Hash_adp_bry gender_cache = Hash_adp_bry.cs() // for tests
|
||||
private static final Hash_adp_bry gender_cache = Hash_adp_bry.cs() // for tests
|
||||
.Add_str_int("xowa_male" , Xol_gender_.Tid_male)
|
||||
.Add_str_int("xowa_female" , Xol_gender_.Tid_female)
|
||||
;
|
||||
|
||||
@@ -20,7 +20,7 @@ import gplx.xowa.langs.*; import gplx.xowa.langs.kwds.*;
|
||||
import gplx.xowa.wikis.pages.*; import gplx.xowa.parsers.*; import gplx.xowa.parsers.tmpls.*;
|
||||
public class Pfunc_rev_props extends Pf_func_base {
|
||||
public Pfunc_rev_props(int id) {this.id = id;}
|
||||
@Override public int Id() {return id;} private final int id;
|
||||
@Override public int Id() {return id;} private final int id;
|
||||
@Override public Pf_func New(int id, byte[] name) {return new Pfunc_rev_props(id).Name_(name);}
|
||||
@Override public void Func_evaluate(Bry_bfr bfr, Xop_ctx ctx, Xot_invk caller, Xot_invk self, byte[] src) {
|
||||
byte[] argx = Eval_argx(ctx, src, caller, self);
|
||||
@@ -41,7 +41,7 @@ public class Pfunc_rev_props extends Pf_func_base {
|
||||
bfr.Add_byte(Byte_ascii.Num_0);
|
||||
return;
|
||||
}
|
||||
Xoae_page argx_page = ctx.Wiki().Data_mgr().Get_page(argx_ttl, false);
|
||||
Xoae_page argx_page = ctx.Wiki().Data_mgr().Load_page_by_ttl(argx_ttl);
|
||||
if (!argx_page.Missing()) {
|
||||
bfr.Add_int_variable(argx_page.Data_raw().length);
|
||||
return;
|
||||
@@ -52,5 +52,5 @@ public class Pfunc_rev_props extends Pf_func_base {
|
||||
default: throw Err_.new_unhandled(id);
|
||||
}
|
||||
}
|
||||
public static final Pfunc_rev_props Instance = new Pfunc_rev_props(-1);
|
||||
public static final Pfunc_rev_props Instance = new Pfunc_rev_props(-1);
|
||||
}
|
||||
|
||||
@@ -18,10 +18,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
package gplx.xowa.xtns.pfuncs.scribunto; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.pfuncs.*;
|
||||
import gplx.xowa.xtns.scribunto.*;
|
||||
public class Pfunc_xtn_mgr extends Xox_mgr_base {
|
||||
@Override public byte[] Xtn_key() {return XTN_KEY;} public static final byte[] XTN_KEY = Bry_.new_a7("ParserFunctions");
|
||||
@Override public byte[] Xtn_key() {return XTN_KEY;} public static final byte[] XTN_KEY = Bry_.new_a7("ParserFunctions");
|
||||
@Override public void Xtn_init_by_app(Xoae_app app) {
|
||||
Scrib_xtn_mgr scrib_xtn = (Scrib_xtn_mgr)app.Xtn_mgr().Get_or_fail(Scrib_xtn_mgr.XTN_KEY);
|
||||
scrib_xtn.Lib_mgr().Add(new Pfunc_scrib_lib());
|
||||
}
|
||||
@Override public Xox_mgr Clone_new() {return new Pfunc_xtn_mgr();}
|
||||
@Override public Xox_mgr Xtn_clone_new() {return new Pfunc_xtn_mgr();}
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@ public class Pfunc_tag extends Pf_func_base {
|
||||
}
|
||||
}
|
||||
tmp.Add_byte(Byte_ascii.Gt);
|
||||
if (args_len > 0) // TODO: trim should not be called on content; WHEN: adding src[] back to tmpl_eval
|
||||
if (args_len > 0) // TODO_OLD: trim should not be called on content; WHEN: adding src[] back to tmpl_eval
|
||||
tmp.Add(Pf_func_.Eval_arg_or_empty(ctx, src, caller, self, args_len, 0));
|
||||
tmp.Add_byte(Byte_ascii.Lt).Add_byte(Byte_ascii.Slash).Add(tag_name).Add_byte(Byte_ascii.Gt);
|
||||
if (tag_is_ref) // <ref>; add <xtag_end> to handle nested refs; PAGE:en.w:Battle_of_Midway; DATE:2014-06-27
|
||||
@@ -58,7 +58,7 @@ public class Pfunc_tag extends Pf_func_base {
|
||||
, Xtag_bgn = 14 // <xtag_bgn id='
|
||||
, Id_len = 10
|
||||
;
|
||||
public static final byte[]
|
||||
public static final byte[]
|
||||
Xtag_bgn_lhs = Bry_.new_a7("<xtag_bgn id='")
|
||||
, Xtag_end_lhs = Bry_.new_a7("<xtag_end id='")
|
||||
, Xtag_rhs = Bry_.new_a7("'/>")
|
||||
|
||||
@@ -56,7 +56,7 @@ public class Pft_fmt_itm_ {
|
||||
, Tid_hijiri_month_name = 33
|
||||
;
|
||||
|
||||
public static final Pft_fmt_itm
|
||||
public static final Pft_fmt_itm
|
||||
Year_len4 = new Pft_fmt_itm_seg_int(DateAdp_.SegIdx_year , 4, Bool_.Y)
|
||||
, Year_len2 = new Pft_fmt_itm_seg_int(DateAdp_.SegIdx_year , 2, Bool_.Y)
|
||||
, Month_int_len2 = new Pft_fmt_itm_seg_int(DateAdp_.SegIdx_month , 2, Bool_.Y)
|
||||
@@ -110,7 +110,7 @@ public class Pft_fmt_itm_ {
|
||||
, Hijiri_day_idx = new Pft_fmt_itm_hijiri_day_idx()
|
||||
, Hijiri_month_name = new Pft_fmt_itm_hijiri_month_name()
|
||||
;
|
||||
public static final Btrie_fast_mgr Regy = Btrie_fast_mgr.cs()
|
||||
public static final Btrie_fast_mgr Regy = Btrie_fast_mgr.cs()
|
||||
.Add(Byte_ascii.Ltr_Y , Pft_fmt_itm_.Year_len4) // 2012
|
||||
.Add(Byte_ascii.Ltr_y , Pft_fmt_itm_.Year_len2) // 12
|
||||
.Add(Byte_ascii.Ltr_L , Pft_fmt_itm_.Year_isLeap) // 1,0
|
||||
@@ -161,7 +161,7 @@ public class Pft_fmt_itm_ {
|
||||
.Add("xmF" , Pft_fmt_itm_.Hijiri_month_name)
|
||||
.Add("xmn" , Pft_fmt_itm_.Hijiri_month_idx)
|
||||
.Add("xmY" , Pft_fmt_itm_.Hijiri_year_idx)
|
||||
// TODO: space; "
|
||||
// TODO_OLD: space; "
|
||||
;
|
||||
public static Pft_fmt_itm[] Parse(Xop_ctx ctx, byte[] fmt) {
|
||||
Btrie_fast_mgr trie = Pft_fmt_itm_.Regy;
|
||||
@@ -211,5 +211,5 @@ public class Pft_fmt_itm_ {
|
||||
}
|
||||
if (raw_bgn != String_.Pos_neg1) {fmt_itms.Add(fmt_len - raw_bgn == 1 ? new Pft_fmt_itm_raw_byt(fmt[fmt_len - 1]) : (Pft_fmt_itm)new Pft_fmt_itm_raw_ary(fmt, raw_bgn, fmt_len)); raw_bgn = String_.Pos_neg1;}
|
||||
return (Pft_fmt_itm[])fmt_itms.To_ary(Pft_fmt_itm.class);
|
||||
} private static List_adp fmt_itms = List_adp_.new_();
|
||||
} private static List_adp fmt_itms = List_adp_.New();
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ class Pft_fmt_itm_seg_int implements Pft_fmt_itm {
|
||||
class Pft_fmt_itm_raw implements Pft_fmt_itm {
|
||||
public int TypeId() {return Pft_fmt_itm_.Tid_raw;}
|
||||
public void Fmt(Bry_bfr bfr, Xowe_wiki wiki, Xol_lang_itm lang, DateAdp date, Pft_func_formatdate_bldr bldr) {
|
||||
// TODO: should flag .Raw() on bldr to skip transliterating numerals in foreign languages; DATE:2013-12-31
|
||||
// TODO_OLD: should flag .Raw() on bldr to skip transliterating numerals in foreign languages; DATE:2013-12-31
|
||||
}
|
||||
}
|
||||
class Pft_fmt_itm_seg_str implements Pft_fmt_itm {
|
||||
@@ -90,7 +90,7 @@ class Pft_fmt_itm_am_pm implements Pft_fmt_itm {
|
||||
else if (!am && lower) val = Ary_pm_lower;
|
||||
else if (!am && !lower) val = Ary_pm_upper;
|
||||
bfr.Add(val);
|
||||
} static final byte[] Ary_am_upper = Bry_.new_a7("AM"), Ary_pm_upper = Bry_.new_a7("PM"), Ary_am_lower = Bry_.new_a7("am"), Ary_pm_lower = Bry_.new_a7("pm");
|
||||
} static final byte[] Ary_am_upper = Bry_.new_a7("AM"), Ary_pm_upper = Bry_.new_a7("PM"), Ary_am_lower = Bry_.new_a7("am"), Ary_pm_lower = Bry_.new_a7("pm");
|
||||
public Pft_fmt_itm_am_pm(boolean lower) {this.lower = lower;} private boolean lower;
|
||||
}
|
||||
class Pft_fmt_itm_dow_base0 implements Pft_fmt_itm {
|
||||
@@ -120,7 +120,7 @@ class Pft_fmt_itm_rfc_5322 implements Pft_fmt_itm {
|
||||
bfr.Add_byte(Byte_ascii.Comma).Add_byte(Byte_ascii.Space);
|
||||
bfr.Add_str_a7(date.XtoStr_fmt("dd MMM yyyy HH:mm:ss")); // NOTE: always UTC time
|
||||
bfr.Add(CONST_timezone); // NOTE: always UTC time zone
|
||||
} static final byte[] CONST_timezone = Bry_.new_a7(" +0000");
|
||||
} static final byte[] CONST_timezone = Bry_.new_a7(" +0000");
|
||||
}
|
||||
class Pft_fmt_itm_timezone_offset implements Pft_fmt_itm {
|
||||
public Pft_fmt_itm_timezone_offset() {}
|
||||
|
||||
@@ -28,7 +28,7 @@ public class Pft_func_time extends Pf_func_base {
|
||||
Pft_fmt_itm[] fmt_ary = Pft_fmt_itm_.Parse(ctx, arg_fmt);
|
||||
byte[] arg_date = Pf_func_.Eval_arg_or_empty(ctx, src, caller, self, self_args_len, 0);
|
||||
byte[] arg_lang = Pf_func_.Eval_arg_or_empty(ctx, src, caller, self, self_args_len, 1);
|
||||
Bry_bfr error_bfr = Bry_bfr.new_();
|
||||
Bry_bfr error_bfr = Bry_bfr_.New();
|
||||
DateAdp date = ParseDate(arg_date, utc, error_bfr);
|
||||
if (date == null || error_bfr.Len() > 0)
|
||||
bfr.Add_str_a7("<strong class=\"error\">").Add_bfr_and_clear(error_bfr).Add_str_a7("</strong>");
|
||||
@@ -56,7 +56,7 @@ public class Pft_func_time extends Pf_func_base {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
public static final Pft_func_time _Lcl = new Pft_func_time(false), _Utc = new Pft_func_time(true);
|
||||
public static final Pft_func_time _Lcl = new Pft_func_time(false), _Utc = new Pft_func_time(true);
|
||||
}
|
||||
class DateAdpTranslator_xapp {
|
||||
public static void Translate(Xowe_wiki wiki, Xol_lang_itm lang, int type, int val, Bry_bfr bb) {
|
||||
|
||||
@@ -18,7 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
package gplx.xowa.xtns.pfuncs.times; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.pfuncs.*;
|
||||
import gplx.xowa.langs.*; import gplx.xowa.langs.msgs.*;
|
||||
class Pft_func_time_foreign_fxt {
|
||||
private final Xop_fxt fxt = new Xop_fxt();
|
||||
private final Xop_fxt fxt = new Xop_fxt();
|
||||
public void Clear() {
|
||||
fxt.Reset();
|
||||
Tfds.Now_set(DateAdp_.new_(2012, 1, 2, 3, 4, 5, 6));
|
||||
@@ -35,7 +35,7 @@ class Pft_func_time_foreign_fxt {
|
||||
fxt.Test_parse_tmpl_str_test(raw, "{{test}}", expd);
|
||||
}
|
||||
public void Test_Roman(int v, String expd) {
|
||||
Bry_bfr bfr = Bry_bfr.new_(16);
|
||||
Bry_bfr bfr = Bry_bfr_.New_w_size(16);
|
||||
Pfxtp_roman.ToRoman(v, bfr);
|
||||
String actl = bfr.To_str_and_clear();
|
||||
Tfds.Eq(expd, actl);
|
||||
|
||||
@@ -267,7 +267,7 @@ class Pxd_itm_int_ {
|
||||
Pxd_itm itm = tkns[i];
|
||||
switch (itm.Tkn_tid()) {
|
||||
case Pxd_itm_.Tid_dash:
|
||||
dash_itm = itm; // TODO: throw error if "--"; {{#time:U|@--1}}
|
||||
dash_itm = itm; // TODO_OLD: throw error if "--"; {{#time:U|@--1}}
|
||||
break;
|
||||
case Pxd_itm_.Tid_int:
|
||||
case Pxd_itm_.Tid_int_dmy_14:
|
||||
|
||||
@@ -41,7 +41,7 @@ class Pxd_parser {
|
||||
if (itm == null) return;
|
||||
Bry_fmtr fmtr = itm.Fmtr();
|
||||
fmtr.Bld_bfr(error_bfr, args);
|
||||
} private Bry_bfr error_bfr = Bry_bfr.new_(32);
|
||||
} private Bry_bfr error_bfr = Bry_bfr_.New_w_size(32);
|
||||
public DateAdp Parse(byte[] src, Bry_bfr error_bfr) {
|
||||
Tokenize(src); // NOTE: should check if Tokenize failed, but want to be liberal as date parser is not fully implemented; this will always default to 1st day of year; DATE:2014-03-27
|
||||
return Evaluate(src, error_bfr);
|
||||
@@ -171,15 +171,15 @@ class Pxd_parser_ {
|
||||
}
|
||||
return trie;
|
||||
} static Btrie_slim_mgr trie;
|
||||
private static final String[] Names_month_full = {"january", "february", "march", "april", "may", "june", "july", "august", "september", "october", "november", "december"};
|
||||
private static final String[] Names_month_abrv = {"jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"};
|
||||
private static final String[] Names_month_roman = {"I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X", "XI", "XII"};
|
||||
private static final String[] Names_day_suffix = {"st", "nd", "rd", "th"};
|
||||
private static final String[] Names_day_full = {"sunday", "monday", "tuesday", "wednesday" , "thursday", "friday", "saturday"};
|
||||
private static final String[] Names_day_abrv = {"sun", "mon", "tue", "wed" , "thu", "fri", "sat"};
|
||||
//TODO:
|
||||
//private static final String[] Names_day_text = {"weekday", "weekdays"};
|
||||
//private static final String[] Names_ordinal_num = {"first", "second", "third", "fourth", "fifth", "sixth", "seventh", "eighth", "ninth", "tenth", "eleventh", "twelfth"};
|
||||
private static final String[] Names_month_full = {"january", "february", "march", "april", "may", "june", "july", "august", "september", "october", "november", "december"};
|
||||
private static final String[] Names_month_abrv = {"jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"};
|
||||
private static final String[] Names_month_roman = {"I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X", "XI", "XII"};
|
||||
private static final String[] Names_day_suffix = {"st", "nd", "rd", "th"};
|
||||
private static final String[] Names_day_full = {"sunday", "monday", "tuesday", "wednesday" , "thursday", "friday", "saturday"};
|
||||
private static final String[] Names_day_abrv = {"sun", "mon", "tue", "wed" , "thu", "fri", "sat"};
|
||||
//TODO_OLD:
|
||||
//private static final String[] Names_day_text = {"weekday", "weekdays"};
|
||||
//private static final String[] Names_ordinal_num = {"first", "second", "third", "fourth", "fifth", "sixth", "seventh", "eighth", "ninth", "tenth", "eleventh", "twelfth"};
|
||||
|
||||
private static void Init_unit(int seg_idx, String... name_ary) {Init_unit(seg_idx, 1, name_ary);}
|
||||
private static void Init_unit(int seg_idx, int seg_val, String... name_ary) {
|
||||
@@ -189,7 +189,7 @@ class Pxd_parser_ {
|
||||
trie.Add_obj(name_bry, new Pxd_itm_unit(-1, name_bry, seg_idx, seg_val));
|
||||
}
|
||||
}
|
||||
public static final byte[]
|
||||
public static final byte[]
|
||||
Unit_name_month = Bry_.new_a7("month")
|
||||
, Unit_name_day = Bry_.new_a7("day")
|
||||
, Unit_name_hour = Bry_.new_a7("hour")
|
||||
|
||||
@@ -18,7 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
package gplx.xowa.xtns.pfuncs.times; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.pfuncs.*;
|
||||
import org.junit.*;
|
||||
public class Pxd_parser_tst {
|
||||
Bry_bfr bfr = Bry_bfr.new_(16); Pxd_parser parser = new Pxd_parser();
|
||||
Bry_bfr bfr = Bry_bfr_.New_w_size(16); Pxd_parser parser = new Pxd_parser();
|
||||
@Before public void init() {Tfds.Now_enabled_y_(); Tfds.Now_set(test_date);} DateAdp test_date = DateAdp_.parse_fmt("2012-02-27", "yyyy-MM-dd");
|
||||
@After public void teardown() {Tfds.Now_enabled_n_();}
|
||||
@Test public void Month_name_0__day__year() {tst_date_("Mar 2 2001" , "2001-03-02");} // y:Mar-02-2001;Mar.02.2001;Mar 02, 2001 n:Mar/02/2001;Feb,05,2011
|
||||
|
||||
@@ -46,15 +46,15 @@ public class Pfunc_filepath extends Pf_func_base {
|
||||
byte[] url = url_bldr.Init_for_trg_html(Xof_repo_itm_.Mode_orig, trg_repo, ttl_bry, xfer_itm.Orig_ttl_md5(), xfer_itm.Orig_ext(), Xof_img_size.Size__neg1, Xof_lnki_time.Null, Xof_lnki_page.Null).Xto_bry();
|
||||
bfr.Add(url);
|
||||
}
|
||||
private static final Xof_xfer_itm xfer_itm = new Xof_xfer_itm();
|
||||
private static final Xof_url_bldr url_bldr = new Xof_url_bldr();
|
||||
private static final Xof_xfer_itm xfer_itm = new Xof_xfer_itm();
|
||||
private static final Xof_url_bldr url_bldr = new Xof_url_bldr();
|
||||
private static Xoae_page Load_page(Xowe_wiki wiki, Xoa_ttl ttl) {
|
||||
Xoae_page page = wiki.Data_mgr().Get_page(ttl, false);
|
||||
Xoae_page page = wiki.Data_mgr().Load_page_by_ttl(ttl);
|
||||
if (page.Missing()) { // file not found in current wiki; try commons;
|
||||
Xowe_wiki commons_wiki = (Xowe_wiki)wiki.Appe().Wiki_mgr().Get_by_or_null(wiki.Commons_wiki_key());
|
||||
if (commons_wiki != null) { // commons_wiki not installed; exit; DATE:2013-06-08
|
||||
if (!Env_.Mode_testing()) commons_wiki.Init_assert();// must assert load else page_zip never detected; DATE:2013-03-10
|
||||
page = commons_wiki.Data_mgr().Get_page(ttl, false);
|
||||
page = commons_wiki.Data_mgr().Load_page_by_ttl(ttl);
|
||||
}
|
||||
}
|
||||
return page;
|
||||
|
||||
@@ -21,8 +21,8 @@ import gplx.xowa.wikis.tdbs.*;
|
||||
import gplx.xowa.files.*; import gplx.xowa.files.exts.*; import gplx.xowa.files.origs.*; import gplx.xowa.files.repos.*;
|
||||
import gplx.xowa.wikis.domains.*; import gplx.xowa.wikis.ttls.*;
|
||||
public class Pfunc_filepath_tst {
|
||||
private final Xop_fxt fxt = new Xop_fxt();
|
||||
private final Xofw_wiki_wkr_mock mock_wkr = new Xofw_wiki_wkr_mock();
|
||||
private final Xop_fxt fxt = new Xop_fxt();
|
||||
private final Xofw_wiki_wkr_mock mock_wkr = new Xofw_wiki_wkr_mock();
|
||||
private Xowe_wiki en_wiki, commons_wiki;
|
||||
@Before public void init() {
|
||||
fxt.Reset();
|
||||
@@ -49,7 +49,7 @@ public class Pfunc_filepath_tst {
|
||||
}
|
||||
@Test public void Wiki_is_commons() {
|
||||
fxt.Init_page_create(commons_wiki, "File:A.png", "");
|
||||
commons_wiki.Tdb_fsys_mgr().Tdb_dir_regy()[Xotdb_dir_info_.Tid_page].Ext_tid_(gplx.core.ios.Io_stream_.Tid_raw);
|
||||
commons_wiki.Tdb_fsys_mgr().Tdb_dir_regy()[Xotdb_dir_info_.Tid_page].Ext_tid_(gplx.core.ios.streams.Io_stream_.Tid_raw);
|
||||
mock_wkr.Redirect_("A.png", "A.png").Repo_idx_(1);
|
||||
fxt.Test_parse_tmpl_str_test("{{filepath:A.png}}", "{{test}}", "file:///mem/xowa/file/commons/trg/orig/7/0/1/c/A.png");
|
||||
}
|
||||
|
||||
@@ -24,11 +24,11 @@ public class Pfunc_rel2abs extends Pf_func_base {
|
||||
private static final byte[] Ary_dot_slash = Bry_.new_a7("./"), Ary_dot_dot = Bry_.new_a7(".."), Ary_dot_dot_slash = Bry_.new_a7("../");
|
||||
private static void qry_bgns_with_init() {
|
||||
qry_bgns_with = Btrie_fast_mgr.cs();
|
||||
qry_bgns_with.Add(Byte_ascii.Slash, Int_obj_ref.new_(Id_slash));
|
||||
qry_bgns_with.Add(Byte_ascii.Dot, Int_obj_ref.new_(Id_dot));
|
||||
qry_bgns_with.Add(Ary_dot_slash, Int_obj_ref.new_(Id_dot_slash));
|
||||
qry_bgns_with.Add(Ary_dot_dot, Int_obj_ref.new_(Id_dot_dot));
|
||||
qry_bgns_with.Add(Ary_dot_dot_slash, Int_obj_ref.new_(Id_dot_dot_slash));
|
||||
qry_bgns_with.Add(Byte_ascii.Slash, Int_obj_ref.New(Id_slash));
|
||||
qry_bgns_with.Add(Byte_ascii.Dot, Int_obj_ref.New(Id_dot));
|
||||
qry_bgns_with.Add(Ary_dot_slash, Int_obj_ref.New(Id_dot_slash));
|
||||
qry_bgns_with.Add(Ary_dot_dot, Int_obj_ref.New(Id_dot_dot));
|
||||
qry_bgns_with.Add(Ary_dot_dot_slash, Int_obj_ref.New(Id_dot_dot_slash));
|
||||
} static Btrie_fast_mgr qry_bgns_with;
|
||||
@Override public void Func_evaluate(Bry_bfr bfr, Xop_ctx ctx, Xot_invk caller, Xot_invk self, byte[] src) {// REF.MW:ParserFunctions_body.php
|
||||
byte[] qry = Eval_argx(ctx, src, caller, self);
|
||||
@@ -57,7 +57,7 @@ public class Pfunc_rel2abs extends Pf_func_base {
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
private static final Int_obj_ref ignore_rel2abs_tid = Int_obj_ref.zero_();
|
||||
private static final Int_obj_ref ignore_rel2abs_tid = Int_obj_ref.New_zero();
|
||||
public static byte[] Rel2abs(Bry_bfr tmp_bfr, byte[] qry, byte[] src) {return Rel2abs(tmp_bfr, qry, src, ignore_rel2abs_tid);}
|
||||
public static byte[] Rel2abs(Bry_bfr tmp_bfr, byte[] qry, byte[] src, Int_obj_ref rel2abs_tid) {
|
||||
if (qry_bgns_with == null) qry_bgns_with_init();
|
||||
|
||||
@@ -27,5 +27,5 @@ public class Pfunc_urlencode extends Pf_func_base { // EX: {{urlencode:a b}} ->
|
||||
gplx.langs.htmls.encoders.Gfo_url_encoder_.Http_url.Encode(urlEncodeBfr, argx);
|
||||
bfr.Add_bfr_and_preserve(urlEncodeBfr);
|
||||
urlEncodeBfr.Clear();
|
||||
} private Bry_bfr urlEncodeBfr = Bry_bfr.new_(128);
|
||||
} private Bry_bfr urlEncodeBfr = Bry_bfr_.New_w_size(128);
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ public class Pfunc_pagesincategory extends Pf_func_base {
|
||||
byte[] ctg_ttl_bry = Eval_argx(ctx, src, caller, self);
|
||||
if (Bry_.Len_eq_0(ctg_ttl_bry)) {bfr.Add_int_digits(1, 0); return;} // no title; EX: "{{PAGESINCATEGORY:}}"
|
||||
Xowe_wiki wiki = ctx.Wiki();
|
||||
Xowd_db_mgr core_data_mgr = wiki.Data__core_mgr();
|
||||
Xow_db_mgr core_data_mgr = wiki.Data__core_mgr();
|
||||
int ctg_id = core_data_mgr.Tbl__page().Select_id(Xow_ns_.Tid__category, Xoa_ttl.Replace_spaces(ctg_ttl_bry));
|
||||
if (ctg_id == Xowd_page_itm.Id_null) {bfr.Add_int_digits(1, 0); return;} // category doesn't exist; EX: "{{PAGESINCATEGORY:Unknown_category}}"
|
||||
Xowd_category_itm ctg_itm = core_data_mgr.Db__cat_core().Tbl__cat_core().Select(ctg_id);
|
||||
|
||||
@@ -36,7 +36,7 @@ public class Pfunc_pagesincategory_tst {
|
||||
class Pfunc_pagesincategory_tstr {
|
||||
private final Xop_fxt parser_tstr;
|
||||
private final Xoae_app app; private final Xowe_wiki wiki;
|
||||
private final Xowd_db_mgr core_data_mgr;
|
||||
private final Xow_db_mgr core_data_mgr;
|
||||
private final Xowd_page_tbl page_tbl; private final Xowd_cat_core_tbl cat_core_tbl;
|
||||
public Pfunc_pagesincategory_tstr() {
|
||||
Xoa_test_.Inet__init();
|
||||
|
||||
Reference in New Issue
Block a user